diff --git a/gmodel-commit-history.pdf b/gmodel-commit-history.pdf new file mode 100644 index 0000000..d011e52 Binary files /dev/null and b/gmodel-commit-history.pdf differ diff --git a/src/trunk/Hudson-configuration.txt b/src/trunk/Hudson-configuration.txt new file mode 100644 index 0000000..b61c5d8 --- /dev/null +++ b/src/trunk/Hudson-configuration.txt @@ -0,0 +1,27 @@ +--------- +SBT build +--------- + +Schedule: + +*/10 * * * * + + +"Execute Shell" command: + +./sbt.sh clean compile + +---------------------------------- +Maven Tycho build (works on Linux) +---------------------------------- + +Schedule: + +*/10 * * * * + + +"Execute Shell" command: + +export M2_HOME="/usr/local/maven/apache-maven-3.0.3" +./mvn-clean-build.sh + diff --git a/src/trunk/mvn-clean-build.sh b/src/trunk/mvn-clean-build.sh new file mode 100755 index 0000000..92894ea --- /dev/null +++ b/src/trunk/mvn-clean-build.sh @@ -0,0 +1,7 @@ +# Remove Tycho p2 caches +rm -rf ~/.m2/repository/.cache +rm -rf ~/.m2/repository/.meta + +# Execute build +set MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=256m" +sh $M2_HOME/bin/mvn clean install diff --git a/src/trunk/org.gmodel.artifactpool.tests/.classpath b/src/trunk/org.gmodel.artifactpool.tests/.classpath new file mode 100644 index 0000000..2d1a430 --- /dev/null +++ b/src/trunk/org.gmodel.artifactpool.tests/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/trunk/org.gmodel.artifactpool.tests/.project b/src/trunk/org.gmodel.artifactpool.tests/.project new file mode 100644 index 0000000..c2ee89a --- /dev/null +++ b/src/trunk/org.gmodel.artifactpool.tests/.project @@ -0,0 +1,28 @@ + + + org.gmodel.artifactpool.tests + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/src/trunk/org.gmodel.artifactpool.tests/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.artifactpool.tests/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..1c09c98 --- /dev/null +++ b/src/trunk/org.gmodel.artifactpool.tests/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,8 @@ +#Fri Dec 10 16:47:18 CET 2010 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.artifactpool.tests/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.artifactpool.tests/META-INF/MANIFEST.MF new file mode 100644 index 0000000..ff3c7bd --- /dev/null +++ b/src/trunk/org.gmodel.artifactpool.tests/META-INF/MANIFEST.MF @@ -0,0 +1,8 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.artifactpool.tests +Bundle-SymbolicName: org.gmodel.artifactpool.tests +Bundle-Version: 0.0.0 +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Fragment-Host: org.gmodel.artifactpool +Require-Bundle: org.junit diff --git a/src/trunk/org.gmodel.artifactpool.tests/build.properties b/src/trunk/org.gmodel.artifactpool.tests/build.properties new file mode 100644 index 0000000..41eb6ad --- /dev/null +++ b/src/trunk/org.gmodel.artifactpool.tests/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/src/trunk/org.gmodel.artifactpool.tests/src/org/gmodel/artifactpool/HashMapArtifactPoolTest.java b/src/trunk/org.gmodel.artifactpool.tests/src/org/gmodel/artifactpool/HashMapArtifactPoolTest.java new file mode 100644 index 0000000..2031ef1 --- /dev/null +++ b/src/trunk/org.gmodel.artifactpool.tests/src/org/gmodel/artifactpool/HashMapArtifactPoolTest.java @@ -0,0 +1,79 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.artifactpool; + +import junit.framework.TestCase; + +public class HashMapArtifactPoolTest extends TestCase { + + private HashMapObjectPool pool; + + @Override + protected void setUp() throws Exception { + pool = new HashMapObjectPool(); + } + + public void testContains() { + Integer key = 1; + assertFalse(pool.contains(key)); + pool.put(key, "artifact"); + assertTrue(pool.contains(key)); + } + + public void testExpire() { + assertEquals(0, pool.size()); + Integer key = 1; + pool.put(key, "artifact"); + assertEquals(1, pool.size()); + pool.expire(); + assertEquals(0, pool.size()); + } + + public void testPutAndGet() { + Integer key = 1; + String value = "artifact"; + pool.put(key, value); + assertEquals(value, pool.get(key)); + } + + public void testRemove() { + Integer key = 1; + pool.put(key, "artifact"); + assertEquals(1, pool.size()); + pool.remove(1); + assertEquals(0, pool.size()); + } + + public void testLimitedCacheSize() { + for (int i = 0; i < 2000; i++) { + pool.put(i, "Value " + i); + } + + assertEquals(1000, pool.size()); + } + + +} diff --git a/src/trunk/org.gmodel.artifactpool/.classpath b/src/trunk/org.gmodel.artifactpool/.classpath new file mode 100644 index 0000000..2d1a430 --- /dev/null +++ b/src/trunk/org.gmodel.artifactpool/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/trunk/org.gmodel.artifactpool/.project b/src/trunk/org.gmodel.artifactpool/.project new file mode 100644 index 0000000..958202f --- /dev/null +++ b/src/trunk/org.gmodel.artifactpool/.project @@ -0,0 +1,28 @@ + + + org.gmodel.artifactpool + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/src/trunk/org.gmodel.artifactpool/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.artifactpool/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..f6d63a3 --- /dev/null +++ b/src/trunk/org.gmodel.artifactpool/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,8 @@ +#Thu Dec 09 15:46:04 CET 2010 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.artifactpool/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.artifactpool/META-INF/MANIFEST.MF new file mode 100644 index 0000000..9abea8a --- /dev/null +++ b/src/trunk/org.gmodel.artifactpool/META-INF/MANIFEST.MF @@ -0,0 +1,8 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.artifactpool +Bundle-SymbolicName: org.gmodel.artifactpool;singleton:=true +Bundle-Version: 1.0.0 +Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Export-Package: org.gmodel.artifactpool diff --git a/src/trunk/org.gmodel.artifactpool/build.properties b/src/trunk/org.gmodel.artifactpool/build.properties new file mode 100644 index 0000000..41eb6ad --- /dev/null +++ b/src/trunk/org.gmodel.artifactpool/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/src/trunk/org.gmodel.artifactpool/src/org/gmodel/artifactpool/ArtifactPool.java b/src/trunk/org.gmodel.artifactpool/src/org/gmodel/artifactpool/ArtifactPool.java new file mode 100644 index 0000000..d797af6 --- /dev/null +++ b/src/trunk/org.gmodel.artifactpool/src/org/gmodel/artifactpool/ArtifactPool.java @@ -0,0 +1,43 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: SMTL 1.0 + * + * The contents of this file are subject to the Sofismo Model Technology License Version + * 1.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.sofismo.ch/SMTL/ + * + * Software distributed under the License is distributed on an "AS IS" basis. + * See the License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is Gmodel Semantic Extensions Edition. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + + +package org.gmodel.artifactpool; + +public interface ArtifactPool { + + boolean contains(K key); + + void expire(); + + V get(K key); + + void put(K key, V artifact); + + void remove(K key); + + int size(); + +} diff --git a/src/trunk/org.gmodel.artifactpool/src/org/gmodel/artifactpool/HashMapArtifactPool.java b/src/trunk/org.gmodel.artifactpool/src/org/gmodel/artifactpool/HashMapArtifactPool.java new file mode 100644 index 0000000..86c2469 --- /dev/null +++ b/src/trunk/org.gmodel.artifactpool/src/org/gmodel/artifactpool/HashMapArtifactPool.java @@ -0,0 +1,87 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: SMTL 1.0 + * + * The contents of this file are subject to the Sofismo Model Technology License Version + * 1.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.sofismo.ch/SMTL/ + * + * Software distributed under the License is distributed on an "AS IS" basis. + * See the License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is Gmodel Semantic Extensions Edition. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.artifactpool; + +import java.util.LinkedHashMap; +import java.util.Map; + +public class HashMapArtifactPool implements ArtifactPool { + + private static final int MAX_SIZE = 100; + + private final Map cache; + + public HashMapArtifactPool() { + cache = new LinkedHashMap(MAX_SIZE, 0.75F, true) { + + private static final long serialVersionUID = 1L; + + @SuppressWarnings("unchecked") + protected boolean removeEldestEntry(Map.Entry eldest) { + return size() > MAX_SIZE; + } + }; + } + + public boolean contains(K key) { + synchronized(cache) { + return cache.containsKey(key); + } + } + + public void expire() { + synchronized(cache) { + cache.clear(); + } + } + + public V get(K key) { + synchronized(cache) { + return cache.get(key); + } + } + + public void put(K key, V artifact) { + synchronized(cache) { + if (!cache.containsKey(key)) { + cache.put(key, artifact); + } + } + } + + public void remove(K key) { + synchronized(cache) { + cache.remove(key); + } + } + + public int size() { + synchronized(cache) { + return cache.size(); + } + } + +} diff --git a/src/trunk/org.gmodel.artifactpool/src/org/gmodel/artifactpool/HashMapObjectPool.java b/src/trunk/org.gmodel.artifactpool/src/org/gmodel/artifactpool/HashMapObjectPool.java new file mode 100644 index 0000000..c32df36 --- /dev/null +++ b/src/trunk/org.gmodel.artifactpool/src/org/gmodel/artifactpool/HashMapObjectPool.java @@ -0,0 +1,88 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: SMTL 1.0 + * + * The contents of this file are subject to the Sofismo Model Technology License Version + * 1.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.sofismo.ch/SMTL/ + * + * Software distributed under the License is distributed on an "AS IS" basis. + * See the License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is Gmodel Semantic Extensions Edition. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.artifactpool; + +import java.util.LinkedHashMap; +import java.util.Map; + +public class HashMapObjectPool implements ObjectPool { + + private static final int MAX_SIZE = 1000; + + private final Map cache; + + public HashMapObjectPool() { + cache = new LinkedHashMap(MAX_SIZE, 0.75F, true) { + + private static final long serialVersionUID = 1L; + + @Override + @SuppressWarnings("unchecked") + protected boolean removeEldestEntry(final Map.Entry eldest) { + return size() > MAX_SIZE; + } + }; + } + + public boolean contains(final K key) { + synchronized(cache) { + return cache.containsKey(key); + } + } + + public void expire() { + synchronized(cache) { + cache.clear(); + } + } + + public V get(final K key) { + synchronized(cache) { + return cache.get(key); + } + } + + public void put(final K key, final V artifact) { + synchronized(cache) { + if (!cache.containsKey(key)) { + cache.put(key, artifact); + } + } + } + + public void remove(final K key) { + synchronized(cache) { + cache.remove(key); + } + } + + public int size() { + synchronized(cache) { + return cache.size(); + } + } + +} diff --git a/src/trunk/org.gmodel.artifactpool/src/org/gmodel/artifactpool/ObjectPool.java b/src/trunk/org.gmodel.artifactpool/src/org/gmodel/artifactpool/ObjectPool.java new file mode 100644 index 0000000..bcdba3f --- /dev/null +++ b/src/trunk/org.gmodel.artifactpool/src/org/gmodel/artifactpool/ObjectPool.java @@ -0,0 +1,43 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: SMTL 1.0 + * + * The contents of this file are subject to the Sofismo Model Technology License Version + * 1.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.sofismo.ch/SMTL/ + * + * Software distributed under the License is distributed on an "AS IS" basis. + * See the License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is Gmodel Semantic Extensions Edition. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + + +package org.gmodel.artifactpool; + +public interface ObjectPool { + + boolean contains(K key); + + void expire(); + + V get(K key); + + void put(K key, V artifact); + + void remove(K key); + + int size(); + +} diff --git a/src/trunk/org.gmodel.common/.classpath b/src/trunk/org.gmodel.common/.classpath new file mode 100644 index 0000000..d5c1aca --- /dev/null +++ b/src/trunk/org.gmodel.common/.classpath @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/trunk/org.gmodel.common/.project b/src/trunk/org.gmodel.common/.project new file mode 100644 index 0000000..878004b --- /dev/null +++ b/src/trunk/org.gmodel.common/.project @@ -0,0 +1,26 @@ + + + org.gmodel.common + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + \ No newline at end of file diff --git a/src/trunk/org.gmodel.common/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.common/META-INF/MANIFEST.MF new file mode 100644 index 0000000..c9f06c9 --- /dev/null +++ b/src/trunk/org.gmodel.common/META-INF/MANIFEST.MF @@ -0,0 +1,7 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.common +Bundle-SymbolicName: org.gmodel.common; singleton:=true +Bundle-Version: 1.0.0 +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Export-Package: org.gmodel.common.search diff --git a/src/trunk/org.gmodel.common/build.properties b/src/trunk/org.gmodel.common/build.properties new file mode 100644 index 0000000..e82731d --- /dev/null +++ b/src/trunk/org.gmodel.common/build.properties @@ -0,0 +1,3 @@ +source.. = src/ +bin.includes = META-INF/,\ + . \ No newline at end of file diff --git a/src/trunk/org.gmodel.common/src/org/gmodel/common/search/BasicSearchIdentity.java b/src/trunk/org.gmodel.common/src/org/gmodel/common/search/BasicSearchIdentity.java new file mode 100644 index 0000000..88eaf92 --- /dev/null +++ b/src/trunk/org.gmodel.common/src/org/gmodel/common/search/BasicSearchIdentity.java @@ -0,0 +1,85 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.common.search; + +import java.util.UUID; + +public class BasicSearchIdentity { + + private final String name; + private final String pluralName; + private final UUID uuid; + + public BasicSearchIdentity(final String name, final String pluralName, final UUID uuid) { + super(); + this.name = name; + this.pluralName = pluralName; + this.uuid = uuid; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((uuid == null) ? 0 : uuid.hashCode()); + return result; + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final BasicSearchIdentity other = (BasicSearchIdentity) obj; + if (uuid == null) { + if (other.uuid != null) { + return false; + } + } else if (!uuid.equals(other.uuid)) { + return false; + } + return true; + } + + public String getName() { + return name; + } + + public String getPluralName() { + return pluralName; + } + + public UUID getUUID() { + return uuid; + } + +} diff --git a/src/trunk/org.gmodel.common/src/org/gmodel/common/search/BasicSearchResult.java b/src/trunk/org.gmodel.common/src/org/gmodel/common/search/BasicSearchResult.java new file mode 100644 index 0000000..84a1138 --- /dev/null +++ b/src/trunk/org.gmodel.common/src/org/gmodel/common/search/BasicSearchResult.java @@ -0,0 +1,79 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.common.search; + +public class BasicSearchResult implements SearchResult { + + private static final String NOT_DEFINED_VALUE = "NOT DEFINED"; + private final BasicSearchIdentity instanceIdentity; + private final BasicSearchIdentity parentIdentity; + private final String categoryName; + private final String categoryTypeName; + private String errorCode; + + public BasicSearchResult(final String errorCode) { + this(NOT_DEFINED_VALUE, NOT_DEFINED_VALUE, null, null); + this.errorCode = errorCode; + } + + public BasicSearchResult(final String categoryName, final String categoryTypeName, final BasicSearchIdentity parentIdentity, final BasicSearchIdentity instanceIdentity) { + this.categoryName = categoryName; + this.categoryTypeName = categoryTypeName; + this.parentIdentity = parentIdentity; + this.instanceIdentity = instanceIdentity; + } + + public BasicSearchIdentity getArtifactIdentity() { + return parentIdentity; + } + + public String getErrorCode() { + return errorCode; + } + + public BasicSearchIdentity getInstanceIdentity() { + return instanceIdentity; + } + + public String getCategoryName() { + return this.categoryName; + } + + public String getCategoryTypeName() { + return this.categoryTypeName; + } + + public void setErrorCode(final String errorCode) { + this.errorCode = errorCode; + } + + @Override + public String toString() { + return "BasicSearchResult [instanceIdentity=" + instanceIdentity + + ", parentIdentity=" + parentIdentity + "]"; + } + +} diff --git a/src/trunk/org.gmodel.common/src/org/gmodel/common/search/SearchResult.java b/src/trunk/org.gmodel.common/src/org/gmodel/common/search/SearchResult.java new file mode 100644 index 0000000..b8afa83 --- /dev/null +++ b/src/trunk/org.gmodel.common/src/org/gmodel/common/search/SearchResult.java @@ -0,0 +1,41 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.common.search; + + +public interface SearchResult { + + String getCategoryTypeName(); + + String getCategoryName(); + + BasicSearchIdentity getArtifactIdentity(); + + BasicSearchIdentity getInstanceIdentity(); + + String getErrorCode(); + +} diff --git a/src/trunk/org.gmodel.connector.database.db2/.classpath b/src/trunk/org.gmodel.connector.database.db2/.classpath new file mode 100644 index 0000000..4b9f7b7 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.db2/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/trunk/org.gmodel.connector.database.db2/.project b/src/trunk/org.gmodel.connector.database.db2/.project new file mode 100644 index 0000000..fcf6ac8 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.db2/.project @@ -0,0 +1,26 @@ + + + org.gmodel.connector.database.db2 + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/src/trunk/org.gmodel.connector.database.db2/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.connector.database.db2/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..8f6dc3d --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.db2/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,70 @@ +#Wed May 13 15:07:03 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.connector.database.db2/.settings/org.eclipse.jdt.ui.prefs b/src/trunk/org.gmodel.connector.database.db2/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000..d20f2b5 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.db2/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,54 @@ +#Mon Jun 01 15:10:28 CEST 2009 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=false +sp_cleanup.format_source_code=false +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/src/trunk/org.gmodel.connector.database.db2/DB2.sql b/src/trunk/org.gmodel.connector.database.db2/DB2.sql new file mode 100644 index 0000000..d11c761 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.db2/DB2.sql @@ -0,0 +1,30 @@ +-- ------------------------------- -- +-- Gmodel setup script for IBM DB2 -- +-- ------------------------------- -- + +-- Create database +create database gmodel using codeset UTF-8 territory us collate using identity + +-- Connect to it +connect to gmodel user db2admin using db2admin + +-- Create tables +CREATE TABLE document ( + id varchar(36) NOT NULL PRIMARY KEY, + serialized_instance CLOB(3M) NOT NULL +) + +CREATE TABLE index ( + uuid varchar(36) NOT NULL PRIMARY KEY, + urr varchar(36) NOT NULL, + name varchar(256) NOT NULL, + plural_name varchar(256) NOT NULL, + type varchar(256) NOT NULL, + identity varchar(36) NOT NULL, + meta_element_id varchar(36) NOT NULL, + content_id varchar(36) NOT NULL, + FOREIGN KEY (content_id) + REFERENCES document(id) +) + +-- Example connection string: jdbc:db2j:net://localhost:50000/gmodel \ No newline at end of file diff --git a/src/trunk/org.gmodel.connector.database.db2/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.connector.database.db2/META-INF/MANIFEST.MF new file mode 100644 index 0000000..feaee0d --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.db2/META-INF/MANIFEST.MF @@ -0,0 +1,11 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.connector.database.db2 +Bundle-SymbolicName: org.gmodel.connector.database.db2;singleton:=true +Fragment-Host: org.gmodel.connector.database +Bundle-Version: 1.0.0 +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Import-Package: org.hibernate.cfg +Bundle-ClassPath: lib/db2jcc.jar, + lib/db2jcc_license_cu.jar, + . diff --git a/src/trunk/org.gmodel.connector.database.db2/build.properties b/src/trunk/org.gmodel.connector.database.db2/build.properties new file mode 100644 index 0000000..8495d39 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.db2/build.properties @@ -0,0 +1,6 @@ +source.. = src/ +bin.includes = META-INF/,\ + .,\ + fragment.xml,\ + lib/db2jcc_license_cu.jar,\ + lib/db2jcc.jar diff --git a/src/trunk/org.gmodel.connector.database.db2/fragment.xml b/src/trunk/org.gmodel.connector.database.db2/fragment.xml new file mode 100644 index 0000000..ab8a3b5 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.db2/fragment.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/trunk/org.gmodel.connector.database.db2/lib/db2jcc.jar b/src/trunk/org.gmodel.connector.database.db2/lib/db2jcc.jar new file mode 100644 index 0000000..e67839b Binary files /dev/null and b/src/trunk/org.gmodel.connector.database.db2/lib/db2jcc.jar differ diff --git a/src/trunk/org.gmodel.connector.database.db2/lib/db2jcc_license_cu.jar b/src/trunk/org.gmodel.connector.database.db2/lib/db2jcc_license_cu.jar new file mode 100644 index 0000000..9be564d Binary files /dev/null and b/src/trunk/org.gmodel.connector.database.db2/lib/db2jcc_license_cu.jar differ diff --git a/src/trunk/org.gmodel.connector.database.db2/pom.xml b/src/trunk/org.gmodel.connector.database.db2/pom.xml new file mode 100644 index 0000000..eb4f99a --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.db2/pom.xml @@ -0,0 +1,10 @@ + + 4.0.0 + + org.gmodel + org.gmodel.eclipse + 1.0.0 + + org.gmodel.connector.database.db2 + eclipse-plugin + diff --git a/src/trunk/org.gmodel.connector.database.db2/src/org/gmodel/connector/database/db2/DB2Connector.java b/src/trunk/org.gmodel.connector.database.db2/src/org/gmodel/connector/database/db2/DB2Connector.java new file mode 100644 index 0000000..58dbd4e --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.db2/src/org/gmodel/connector/database/db2/DB2Connector.java @@ -0,0 +1,52 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.connector.database.db2; + +import org.gmodel.connector.database.AbstractDatabaseConnector; + +public final class DB2Connector extends AbstractDatabaseConnector { + + private static final String DRIVER_CLASS = "com.ibm.db2.jcc.DB2Driver"; + + private static final String DIALECT = "org.hibernate.dialect.DB2Dialect"; + + private static final int DEFAULT_PORT = 50000; + + private static final String CONNECTION_URL_PREFIX = "jdbc:db2j:net://"; + + public DB2Connector() { + super("DB2", DRIVER_CLASS, DIALECT, DEFAULT_PORT); + } + + /** + * Example URL: jdbc:db2j:net://localhost:50000/gmodel + */ + @Override + public String createConnectionUrl(final String hostname, final int port, final String databaseName) { + return CONNECTION_URL_PREFIX + hostname + ":" + port + "/" + databaseName; + } + +} diff --git a/src/trunk/org.gmodel.connector.database.mysql/.classpath b/src/trunk/org.gmodel.connector.database.mysql/.classpath new file mode 100644 index 0000000..44de28d --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.mysql/.classpath @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/trunk/org.gmodel.connector.database.mysql/.project b/src/trunk/org.gmodel.connector.database.mysql/.project new file mode 100644 index 0000000..59fdd9f --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.mysql/.project @@ -0,0 +1,26 @@ + + + org.gmodel.connector.database.mysql + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/src/trunk/org.gmodel.connector.database.mysql/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.connector.database.mysql/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..8f6dc3d --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.mysql/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,70 @@ +#Wed May 13 15:07:03 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.connector.database.mysql/.settings/org.eclipse.jdt.ui.prefs b/src/trunk/org.gmodel.connector.database.mysql/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000..d20f2b5 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.mysql/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,54 @@ +#Mon Jun 01 15:10:28 CEST 2009 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=false +sp_cleanup.format_source_code=false +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/src/trunk/org.gmodel.connector.database.mysql/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.connector.database.mysql/META-INF/MANIFEST.MF new file mode 100644 index 0000000..c340c4b --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.mysql/META-INF/MANIFEST.MF @@ -0,0 +1,9 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.connector.database.mysql +Bundle-SymbolicName: org.gmodel.connector.database.mysql;singleton:=true +Fragment-Host: org.gmodel.connector.database +Bundle-Version: 1.0.0 +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Bundle-ClassPath: lib/mysql-connector-java-5.1.13-bin.jar, + . diff --git a/src/trunk/org.gmodel.connector.database.mysql/MySQL.sql b/src/trunk/org.gmodel.connector.database.mysql/MySQL.sql new file mode 100644 index 0000000..8e60f59 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.mysql/MySQL.sql @@ -0,0 +1,176 @@ +SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; + +-- +-- Database: `repository` +-- + +-- -------------------------------------------------------- + +-- +-- Table structure for table `artifact` +-- + +CREATE TABLE IF NOT EXISTS `artifact` ( + `urr` varchar(36) COLLATE utf8_unicode_ci NOT NULL, + `uuid` varchar(36) COLLATE utf8_unicode_ci NOT NULL, + `category` varchar(36) COLLATE utf8_unicode_ci NOT NULL, + `container` varchar(36) COLLATE utf8_unicode_ci NOT NULL, + `isAbstractValue` varchar(36) COLLATE utf8_unicode_ci NOT NULL, + `flavor` enum('VER','END','EDG','VIS','SUP') COLLATE utf8_unicode_ci NOT NULL, + `contentAsXml` longtext COLLATE utf8_unicode_ci, + PRIMARY KEY (`urr`), + KEY `ARTIFACT_uuid_urr` (`uuid`,`urr`), + KEY `categoryFK` (`category`), + KEY `containerFK` (`container`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `edge` +-- + +CREATE TABLE IF NOT EXISTS `edge` ( + `urr` varchar(36) COLLATE utf8_unicode_ci NOT NULL, + `minCardinalityValueFromEdgeEnd` varchar(36) COLLATE utf8_unicode_ci NOT NULL, + `minCardinalityValueToEdgeEnd` varchar(36) COLLATE utf8_unicode_ci NOT NULL, + `maxCardinalityValueFromEdgeEnd` varchar(36) COLLATE utf8_unicode_ci NOT NULL, + `maxCardinalityValueToEdgeEnd` varchar(36) COLLATE utf8_unicode_ci NOT NULL, + `isNavigableValueFromEdgeEnd` varchar(36) COLLATE utf8_unicode_ci NOT NULL, + `isNavigableValueToEdgeEnd` varchar(36) COLLATE utf8_unicode_ci NOT NULL, + `isContainerValueFromEdgeEnd` varchar(36) COLLATE utf8_unicode_ci NOT NULL, + `isContainerValueToEdgeEnd` varchar(36) COLLATE utf8_unicode_ci NOT NULL, + `fromEdgeEnd` varchar(36) COLLATE utf8_unicode_ci NOT NULL, + `toEdgeEnd` varchar(36) COLLATE utf8_unicode_ci NOT NULL, + PRIMARY KEY (`urr`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `identity` +-- + +CREATE TABLE IF NOT EXISTS `identity` ( + `uuid` varchar(36) COLLATE utf8_unicode_ci NOT NULL, + `name` varchar(100) COLLATE utf8_unicode_ci NOT NULL, + `pluralName` varchar(100) COLLATE utf8_unicode_ci NOT NULL, + `payLoad` text COLLATE utf8_unicode_ci, + PRIMARY KEY (`uuid`), + KEY `IDENTITY_name_uuid` (`name`,`uuid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `link` +-- + +CREATE TABLE IF NOT EXISTS `link` ( + `urr` varchar(36) COLLATE utf8_unicode_ci NOT NULL, + `category` varchar(36) COLLATE utf8_unicode_ci NOT NULL, + `flavor` enum('EDG','VIS','SUP') COLLATE utf8_unicode_ci NOT NULL, + `fromArtifact` varchar(36) COLLATE utf8_unicode_ci NOT NULL, + `toArtifact` varchar(36) COLLATE utf8_unicode_ci NOT NULL, + PRIMARY KEY (`urr`), + KEY `ARTIFACT_from_to_flavor` (`fromArtifact`,`toArtifact`,`flavor`,`category`), + KEY `ARTIFACT_to_flavor` (`toArtifact`,`flavor`,`category`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Constraints for dumped tables +-- + +-- +-- Constraints for table `edge` +-- +ALTER TABLE `edge` + ADD CONSTRAINT `edgeFK` FOREIGN KEY (`urr`) REFERENCES `link` (`urr`) ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- +-- Constraints for table `link` +-- +ALTER TABLE `link` + ADD CONSTRAINT `linkFK` FOREIGN KEY (`urr`) REFERENCES `artifact` (`urr`) ON DELETE NO ACTION ON UPDATE NO ACTION; + +DELIMITER $$ +-- +-- Procedures +-- +CREATE DEFINER=`gmodeldemo`@`localhost` PROCEDURE `getContainedInstances`( + IN uuid VARCHAR(36) +) +BEGIN + +SELECT SQL_NO_CACHE root.urr as root, root.contentAsXml as rootxml, t1.urr as lev1, t1.contentAsXml as xml1, t2.urr as lev2, t2.contentAsXml as xml2, t3.urr as lev3, t3.contentAsXml as xml3, t4.urr as lev4, t4.contentAsXml as xml4, +t5.urr as lev5, t5.contentAsXml as xml5, t6.urr as lev6, t6.contentAsXml as xml6, t7.urr as lev7, t7.contentAsXml as xml7 +FROM repository.artifact AS root +LEFT JOIN repository.artifact AS t1 +ON t1.container =root.urr AND t1.flavor='VER' +LEFT JOIN repository.artifact AS t2 +ON t2.container = t1.urr AND t2.flavor='VER' +LEFT JOIN repository.artifact AS t3 +ON t3.container = t2.urr AND t3.flavor='VER' +LEFT JOIN repository.artifact AS t4 +ON t4.container = t3.urr AND t4.flavor='VER' +LEFT JOIN repository.artifact AS t5 +ON t5.container = t4.urr AND t5.flavor='VER' +LEFT JOIN repository.artifact AS t6 +ON t6.container = t5.urr AND t6.flavor='VER' +LEFT JOIN repository.artifact AS t7 +ON t7.container = t6.urr AND t7.flavor='VER' +WHERE root.urr=uuid AND root.flavor='VER'; + +END$$ + +CREATE DEFINER=`gmodeldemo`@`localhost` PROCEDURE `getContainedInstanceUUIDs`( + IN uuid VARCHAR(36) +) +BEGIN + +SELECT SQL_NO_CACHE root.urr as root, t1.urr as lev1, t2.urr as lev2, t3.urr as lev3, t4.urr as lev4, +t5.urr as lev5, t6.urr as lev6, t7.urr as lev7 +FROM repository.artifact AS root +LEFT JOIN repository.artifact AS t1 +ON t1.container =root.urr AND t1.flavor='VER' +LEFT JOIN repository.artifact AS t2 +ON t2.container = t1.urr AND t2.flavor='VER' +LEFT JOIN repository.artifact AS t3 +ON t3.container = t2.urr AND t3.flavor='VER' +LEFT JOIN repository.artifact AS t4 +ON t4.container = t3.urr AND t4.flavor='VER' +LEFT JOIN repository.artifact AS t5 +ON t5.container = t4.urr AND t5.flavor='VER' +LEFT JOIN repository.artifact AS t6 +ON t6.container = t5.urr AND t6.flavor='VER' +LEFT JOIN repository.artifact AS t7 +ON t7.container = t6.urr AND t7.flavor='VER' +WHERE root.urr=uuid AND root.flavor='VER'; + +END$$ + +CREATE DEFINER=`gmodeldemo`@`localhost` PROCEDURE `getDependentInstanceUUIDs`( + IN uuid VARCHAR(36) +) +BEGIN + + +SELECT artifact.urr as urr +FROM repository.artifact as artifact +WHERE artifact.category = uuid + +UNION ALL + +SELECT link.urr as urr +FROM repository.link as link +WHERE link.fromArtifact = uuid OR link.toArtifact = uuid; + +END$$ + +DELIMITER ; diff --git a/src/trunk/org.gmodel.connector.database.mysql/build.properties b/src/trunk/org.gmodel.connector.database.mysql/build.properties new file mode 100644 index 0000000..e735d0a --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.mysql/build.properties @@ -0,0 +1,5 @@ +source.. = src/ +bin.includes = META-INF/,\ + .,\ + fragment.xml,\ + lib/mysql-connector-java-5.1.13-bin.jar diff --git a/src/trunk/org.gmodel.connector.database.mysql/fragment.xml b/src/trunk/org.gmodel.connector.database.mysql/fragment.xml new file mode 100644 index 0000000..deeb7b1 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.mysql/fragment.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/trunk/org.gmodel.connector.database.mysql/lib/mysql-connector-java-5.1.13-bin.jar b/src/trunk/org.gmodel.connector.database.mysql/lib/mysql-connector-java-5.1.13-bin.jar new file mode 100644 index 0000000..ef5d71e Binary files /dev/null and b/src/trunk/org.gmodel.connector.database.mysql/lib/mysql-connector-java-5.1.13-bin.jar differ diff --git a/src/trunk/org.gmodel.connector.database.mysql/pom.xml b/src/trunk/org.gmodel.connector.database.mysql/pom.xml new file mode 100644 index 0000000..26a1033 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.mysql/pom.xml @@ -0,0 +1,10 @@ + + 4.0.0 + + org.gmodel + org.gmodel.eclipse + 1.0.0 + + org.gmodel.connector.database.mysql + eclipse-plugin + diff --git a/src/trunk/org.gmodel.connector.database.mysql/src/org/gmodel/connector/database/mysql/MySQLConnector.java b/src/trunk/org.gmodel.connector.database.mysql/src/org/gmodel/connector/database/mysql/MySQLConnector.java new file mode 100644 index 0000000..fd82692 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.mysql/src/org/gmodel/connector/database/mysql/MySQLConnector.java @@ -0,0 +1,42 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.connector.database.mysql; + +import org.gmodel.connector.database.AbstractDatabaseConnector; + +public final class MySQLConnector extends AbstractDatabaseConnector { + + private static final String DRIVER_CLASS = "com.mysql.jdbc.Driver"; + + private static final String DIALECT = "org.hibernate.dialect.MySQLDialect"; + + private static final int DEFAULT_PORT = 3306; + + public MySQLConnector() { + super("MySQL", DRIVER_CLASS, DIALECT, DEFAULT_PORT); + } + +} diff --git a/src/trunk/org.gmodel.connector.database.postgresql/.classpath b/src/trunk/org.gmodel.connector.database.postgresql/.classpath new file mode 100644 index 0000000..a45f948 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.postgresql/.classpath @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/trunk/org.gmodel.connector.database.postgresql/.project b/src/trunk/org.gmodel.connector.database.postgresql/.project new file mode 100644 index 0000000..e000213 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.postgresql/.project @@ -0,0 +1,26 @@ + + + org.gmodel.connector.database.postgresql + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/src/trunk/org.gmodel.connector.database.postgresql/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.connector.database.postgresql/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..8f6dc3d --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.postgresql/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,70 @@ +#Wed May 13 15:07:03 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.connector.database.postgresql/.settings/org.eclipse.jdt.ui.prefs b/src/trunk/org.gmodel.connector.database.postgresql/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000..d20f2b5 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.postgresql/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,54 @@ +#Mon Jun 01 15:10:28 CEST 2009 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=false +sp_cleanup.format_source_code=false +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/src/trunk/org.gmodel.connector.database.postgresql/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.connector.database.postgresql/META-INF/MANIFEST.MF new file mode 100644 index 0000000..1e089fb --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.postgresql/META-INF/MANIFEST.MF @@ -0,0 +1,10 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.connector.database.postgresql +Bundle-SymbolicName: org.gmodel.connector.database.postgresql;singleton:=true +Fragment-Host: org.gmodel.connector.database +Bundle-Version: 1.0.0 +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Import-Package: org.hibernate.cfg +Bundle-ClassPath: lib/postgresql-8.4-701.jdbc3.jar, + . diff --git a/src/trunk/org.gmodel.connector.database.postgresql/PostgreSQL.sql b/src/trunk/org.gmodel.connector.database.postgresql/PostgreSQL.sql new file mode 100644 index 0000000..6521e42 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.postgresql/PostgreSQL.sql @@ -0,0 +1,48 @@ +-- ---------------------------------- -- +-- Gmodel setup script for PostgreSQL -- +-- ---------------------------------- -- + +CREATE DATABASE gmodel WITH ENCODING = 'UTF8'; + +\connect gmodel + +SET statement_timeout = 0; +SET client_encoding = 'UTF8'; +SET standard_conforming_strings = off; +SET check_function_bodies = false; +SET client_min_messages = warning; +SET escape_string_warning = off; + + +CREATE TABLE document ( + id character varying(36) NOT NULL, + serialized_instance bytea NOT NULL +); + + +ALTER TABLE public.document OWNER TO postgres; + +CREATE TABLE index ( + uuid character varying(36) NOT NULL, + urr character varying(36) NOT NULL, + name text NOT NULL, + plural_name text NOT NULL, + type text NOT NULL, + identity character varying(36) NOT NULL, + meta_element_id character varying(36) NOT NULL, + content_id character varying(36) NOT NULL +); + + +ALTER TABLE public.index OWNER TO postgres; + +ALTER TABLE ONLY document + ADD CONSTRAINT document_pkey PRIMARY KEY (id); + + +ALTER TABLE ONLY index + ADD CONSTRAINT index_pkey PRIMARY KEY (uuid); + + +ALTER TABLE ONLY index + ADD CONSTRAINT index_content_id_fkey FOREIGN KEY (content_id) REFERENCES document(id); diff --git a/src/trunk/org.gmodel.connector.database.postgresql/build.properties b/src/trunk/org.gmodel.connector.database.postgresql/build.properties new file mode 100644 index 0000000..e489bb3 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.postgresql/build.properties @@ -0,0 +1,5 @@ +source.. = src/ +bin.includes = META-INF/,\ + .,\ + fragment.xml,\ + lib/postgresql-8.4-701.jdbc3.jar diff --git a/src/trunk/org.gmodel.connector.database.postgresql/fragment.xml b/src/trunk/org.gmodel.connector.database.postgresql/fragment.xml new file mode 100644 index 0000000..8125ce6 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.postgresql/fragment.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/trunk/org.gmodel.connector.database.postgresql/lib/postgresql-8.4-701.jdbc3.jar b/src/trunk/org.gmodel.connector.database.postgresql/lib/postgresql-8.4-701.jdbc3.jar new file mode 100644 index 0000000..c64b709 Binary files /dev/null and b/src/trunk/org.gmodel.connector.database.postgresql/lib/postgresql-8.4-701.jdbc3.jar differ diff --git a/src/trunk/org.gmodel.connector.database.postgresql/pom.xml b/src/trunk/org.gmodel.connector.database.postgresql/pom.xml new file mode 100644 index 0000000..16a86df --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.postgresql/pom.xml @@ -0,0 +1,10 @@ + + 4.0.0 + + org.gmodel + org.gmodel.eclipse + 1.0.0 + + org.gmodel.connector.database.postgresql + eclipse-plugin + diff --git a/src/trunk/org.gmodel.connector.database.postgresql/src/org/gmodel/connector/database/postgresql/PostgreSQLConnector.java b/src/trunk/org.gmodel.connector.database.postgresql/src/org/gmodel/connector/database/postgresql/PostgreSQLConnector.java new file mode 100644 index 0000000..257de96 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.postgresql/src/org/gmodel/connector/database/postgresql/PostgreSQLConnector.java @@ -0,0 +1,42 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.connector.database.postgresql; + +import org.gmodel.connector.database.AbstractDatabaseConnector; + +public final class PostgreSQLConnector extends AbstractDatabaseConnector { + + private static final String DRIVER_CLASS = "org.postgresql.Driver"; + + private static final String DIALECT = "org.hibernate.dialect.PostgreSQLDialect"; + + private static final int DEFAULT_PORT = 5432; + + public PostgreSQLConnector() { + super("PostgreSQL", DRIVER_CLASS, DIALECT, DEFAULT_PORT); + } + +} diff --git a/src/trunk/org.gmodel.connector.database.ui/.classpath b/src/trunk/org.gmodel.connector.database.ui/.classpath new file mode 100644 index 0000000..2d1a430 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.ui/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/trunk/org.gmodel.connector.database.ui/.project b/src/trunk/org.gmodel.connector.database.ui/.project new file mode 100644 index 0000000..545d5ec --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.ui/.project @@ -0,0 +1,26 @@ + + + org.gmodel.connector.database.ui + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/src/trunk/org.gmodel.connector.database.ui/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.connector.database.ui/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..8f6dc3d --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.ui/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,70 @@ +#Wed May 13 15:07:03 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.connector.database.ui/.settings/org.eclipse.jdt.ui.prefs b/src/trunk/org.gmodel.connector.database.ui/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000..d20f2b5 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.ui/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,54 @@ +#Mon Jun 01 15:10:28 CEST 2009 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=false +sp_cleanup.format_source_code=false +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/src/trunk/org.gmodel.connector.database.ui/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.connector.database.ui/META-INF/MANIFEST.MF new file mode 100644 index 0000000..12f5500 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.ui/META-INF/MANIFEST.MF @@ -0,0 +1,7 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.connector.database.ui +Bundle-SymbolicName: org.gmodel.connector.database.ui +Bundle-Version: 1.0.0 +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Require-Bundle: org.gmodel.connector.database diff --git a/src/trunk/org.gmodel.connector.database.ui/build.properties b/src/trunk/org.gmodel.connector.database.ui/build.properties new file mode 100644 index 0000000..b107977 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.ui/build.properties @@ -0,0 +1,3 @@ +source.. = src/ +bin.includes = META-INF/,\ + . diff --git a/src/trunk/org.gmodel.connector.database.ui/pom.xml b/src/trunk/org.gmodel.connector.database.ui/pom.xml new file mode 100644 index 0000000..0d43272 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database.ui/pom.xml @@ -0,0 +1,10 @@ + + 4.0.0 + + org.gmodel + org.gmodel.eclipse + 1.0.0 + + org.gmodel.connector.database.ui + eclipse-plugin + diff --git a/src/trunk/org.gmodel.connector.database/.classpath b/src/trunk/org.gmodel.connector.database/.classpath new file mode 100644 index 0000000..2d1a430 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/trunk/org.gmodel.connector.database/.project b/src/trunk/org.gmodel.connector.database/.project new file mode 100644 index 0000000..3f598b2 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database/.project @@ -0,0 +1,26 @@ + + + org.gmodel.connector.database + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/src/trunk/org.gmodel.connector.database/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.connector.database/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..8f6dc3d --- /dev/null +++ b/src/trunk/org.gmodel.connector.database/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,70 @@ +#Wed May 13 15:07:03 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.connector.database/.settings/org.eclipse.jdt.ui.prefs b/src/trunk/org.gmodel.connector.database/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000..d20f2b5 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,54 @@ +#Mon Jun 01 15:10:28 CEST 2009 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=false +sp_cleanup.format_source_code=false +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/src/trunk/org.gmodel.connector.database/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.connector.database/META-INF/MANIFEST.MF new file mode 100644 index 0000000..0fee26c --- /dev/null +++ b/src/trunk/org.gmodel.connector.database/META-INF/MANIFEST.MF @@ -0,0 +1,16 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.connector.database +Bundle-SymbolicName: org.gmodel.connector.database;singleton:=true +Bundle-Version: 1.0.0 +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Require-Bundle: org.gmodel.hibernateosgi, + org.eclipse.osgi +Import-Package: org.eclipse.core.runtime, + org.eclipse.ui.plugin, + org.osgi.framework +Export-Package: org.gmodel.connector.database +Eclipse-RegisterBuddy: org.gmodel.hibernateosgi +Bundle-ClassPath: lib/db2jcc_license_cu.jar, + lib/db2jcc.jar, + . diff --git a/src/trunk/org.gmodel.connector.database/build.properties b/src/trunk/org.gmodel.connector.database/build.properties new file mode 100644 index 0000000..24d20ff --- /dev/null +++ b/src/trunk/org.gmodel.connector.database/build.properties @@ -0,0 +1,7 @@ +source.. = src/ +bin.includes = META-INF/,\ + .,\ + plugin.xml,\ + lib/,\ + lib/db2jcc_license_cu.jar,\ + lib/db2jcc.jar diff --git a/src/trunk/org.gmodel.connector.database/lib/db2jcc.jar b/src/trunk/org.gmodel.connector.database/lib/db2jcc.jar new file mode 100644 index 0000000..e67839b Binary files /dev/null and b/src/trunk/org.gmodel.connector.database/lib/db2jcc.jar differ diff --git a/src/trunk/org.gmodel.connector.database/lib/db2jcc_license_cu.jar b/src/trunk/org.gmodel.connector.database/lib/db2jcc_license_cu.jar new file mode 100644 index 0000000..9be564d Binary files /dev/null and b/src/trunk/org.gmodel.connector.database/lib/db2jcc_license_cu.jar differ diff --git a/src/trunk/org.gmodel.connector.database/plugin.xml b/src/trunk/org.gmodel.connector.database/plugin.xml new file mode 100644 index 0000000..d59fea5 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database/plugin.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/src/trunk/org.gmodel.connector.database/pom.xml b/src/trunk/org.gmodel.connector.database/pom.xml new file mode 100644 index 0000000..40bce22 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database/pom.xml @@ -0,0 +1,10 @@ + + 4.0.0 + + org.gmodel + org.gmodel.eclipse + 1.0.0 + + org.gmodel.connector.database + eclipse-plugin + diff --git a/src/trunk/org.gmodel.connector.database/schema/org.gmodel.connector.database.type.exsd b/src/trunk/org.gmodel.connector.database/schema/org.gmodel.connector.database.type.exsd new file mode 100644 index 0000000..57bb7fd --- /dev/null +++ b/src/trunk/org.gmodel.connector.database/schema/org.gmodel.connector.database.type.exsd @@ -0,0 +1,102 @@ + + + + + + + + + [Enter description of this extension point.] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [Enter the first release in which this extension point appears.] + + + + + + + + + [Enter extension point usage example here.] + + + + + + + + + [Enter API information here.] + + + + + + + + + [Enter information about supplied implementation of this extension point.] + + + + + diff --git a/src/trunk/org.gmodel.connector.database/src/org/gmodel/connector/database/AbstractDatabaseConnector.java b/src/trunk/org.gmodel.connector.database/src/org/gmodel/connector/database/AbstractDatabaseConnector.java new file mode 100644 index 0000000..94beeac --- /dev/null +++ b/src/trunk/org.gmodel.connector.database/src/org/gmodel/connector/database/AbstractDatabaseConnector.java @@ -0,0 +1,74 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.connector.database; + +public abstract class AbstractDatabaseConnector implements DatabaseConnector { + + private final String name; + private final String driverClass; + private final String dialect; + private final int defaultPort; + + public AbstractDatabaseConnector(final String name, + final String driverClass, + final String dialect, + final int defaultPort) { + + this.defaultPort = defaultPort; + this.dialect = dialect; + this.driverClass = driverClass; + this.name = name; + } + + public final String getName() { + return name; + } + + public final String getDriverClass() { + return driverClass; + } + + public final String getDialect() { + return dialect; + } + + public final int getDefaultPort() { + return defaultPort; + } + + public String createConnectionUrl(final String hostname, final int port, final String databaseName) { + return "jdbc:" + name.toLowerCase() + "://" + hostname + ":" + port + "/" + databaseName; + } + + public String getTestSqlStatement() { + return "SELECT 1"; + } + + @Override + public final String toString() { + return DatabaseConnector.class.getSimpleName() + ": " + getName(); + } +} diff --git a/src/trunk/org.gmodel.connector.database/src/org/gmodel/connector/database/ConnectionMetadata.java b/src/trunk/org.gmodel.connector.database/src/org/gmodel/connector/database/ConnectionMetadata.java new file mode 100644 index 0000000..042a7d0 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database/src/org/gmodel/connector/database/ConnectionMetadata.java @@ -0,0 +1,42 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.connector.database; + +public interface ConnectionMetadata { + + DatabaseConnector getConnector(); + + String getHostname(); + + int getPort(); + + String getDatabaseName(); + + String getUsername(); + + String getPassword(); + +} diff --git a/src/trunk/org.gmodel.connector.database/src/org/gmodel/connector/database/DatabaseConnector.java b/src/trunk/org.gmodel.connector.database/src/org/gmodel/connector/database/DatabaseConnector.java new file mode 100644 index 0000000..89663cf --- /dev/null +++ b/src/trunk/org.gmodel.connector.database/src/org/gmodel/connector/database/DatabaseConnector.java @@ -0,0 +1,48 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.connector.database; + +/** + * Basic abstraction for a database driver + */ +public interface DatabaseConnector { + + String getName(); + + String getDialect(); + + String getDriverClass(); + + int getDefaultPort(); + + /** + * SQL statement for testing the database connection + */ + String getTestSqlStatement(); + + String createConnectionUrl(String hostname, int port, String databaseName); + +} diff --git a/src/trunk/org.gmodel.connector.database/src/org/gmodel/connector/database/DatabaseConnectorSupport.java b/src/trunk/org.gmodel.connector.database/src/org/gmodel/connector/database/DatabaseConnectorSupport.java new file mode 100644 index 0000000..0015b60 --- /dev/null +++ b/src/trunk/org.gmodel.connector.database/src/org/gmodel/connector/database/DatabaseConnectorSupport.java @@ -0,0 +1,176 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.connector.database; + +import java.sql.Connection; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IConfigurationElement; +import org.eclipse.core.runtime.ISafeRunnable; +import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.SafeRunner; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.cfg.Configuration; + +// Change methods to instance methods, and inject this class into the RDBRepository +public class DatabaseConnectorSupport { + + private static final String TYPE_EXTENSION_ID = "org.gmodel.connector.database.type"; + + private static final Comparator BY_NAME_COMPARATOR = new Comparator() { + public int compare(final DatabaseConnector lhs, final DatabaseConnector rhs) { + final String lhsName = lhs.getName(); + final String rhsName = rhs.getName(); + return lhsName.compareTo(rhsName); + } + }; + + public static List getAvailableConnectors() { + final List result = new ArrayList(); + + final IConfigurationElement[] config = Platform.getExtensionRegistry() + .getConfigurationElementsFor(TYPE_EXTENSION_ID); + try { + for (final IConfigurationElement e : config) { + final Object o = e.createExecutableExtension("class"); + if (o instanceof DatabaseConnector) { + final ISafeRunnable runnable = new ISafeRunnable() { + public void handleException(final Throwable exception) { + System.out.println("Exception in client"); + } + + public void run() throws Exception { + final DatabaseConnector connector = (DatabaseConnector) o; + result.add(connector); + } + }; + SafeRunner.run(runnable); + } + } + } catch (final CoreException ex) { + System.out.println(ex.getMessage()); + } + + Collections.sort(result, BY_NAME_COMPARATOR); + return result; + } + + public static String testConnection(final DatabaseConnector connector, + final String hostname, + final int port, + final String databaseName, + final String username, + final String password) { + final Configuration configuration = buildConfiguration(connector, hostname, port, databaseName, username, password); + if (configuration == null) { + return "Could not make connection"; + } + try { + final Connection connection = getConnection(configuration); + final Statement statement = connection.createStatement(); + final String testSql = connector.getTestSqlStatement(); + statement.execute(testSql); + return null; + } catch (final Exception e) { + return e.getCause().getMessage(); + } + } + + public static DatabaseConnector getConnectorByName(final String name) { + if (name == null) { + return null; + } + final List list = getAvailableConnectors(); + for (final DatabaseConnector connector : list) { + if (name.equals(connector.getName())) { + return connector; + } + } + return null; + } + + public static Configuration buildConfiguration(final DatabaseConnector connector, + final String hostname, + final int port, + final String databaseName, + final String username, + final String password) { + + try { + final Configuration config = new Configuration(); + config.setProperty("hibernate.dialect", connector.getDialect()); + config.setProperty("hibernate.connection.driver_class", connector.getDriverClass()); + config.setProperty("hibernate.connection.url", connector.createConnectionUrl(hostname, port, databaseName)); + config.setProperty("hibernate.connection.username", username); + config.setProperty("hibernate.connection.password", password); + config.setProperty("hibernate.default_schema", databaseName); + config.setProperty("hibernate.jdbc.batch_size", "50"); + config.setProperty("hibernate.show_sql", "false"); + return config; + } catch (final Exception e) { + return null; + } + } + + public static DatabaseConnector getDefaultConnector() { + return new DatabaseConnectorSupport().new GenericConnector() { + private static final String CONNECTION_URL_PREFIX = "jdbc:db2j:net://"; + @Override + public String createConnectionUrl(final String hostname, final int port, final String databaseName) { + return CONNECTION_URL_PREFIX + hostname + ":" + port + "/" + databaseName; + } + }; + } + + @SuppressWarnings("deprecation") + private static Connection getConnection(final Configuration configuration) { + final SessionFactory factory = configuration.buildSessionFactory(); + + final Session session = factory.openSession(); + return session.connection(); + } + + class GenericConnector extends AbstractDatabaseConnector { + + private static final String DRIVER_CLASS = "com.ibm.db2.jcc.DB2Driver"; + + private static final String DIALECT = "org.hibernate.dialect.DB2Dialect"; + + private static final int DEFAULT_PORT = 50000; + + public GenericConnector() { + super("DB2", DRIVER_CLASS, DIALECT, DEFAULT_PORT); + } + + } + +} diff --git a/src/trunk/org.gmodel.connector/.classpath b/src/trunk/org.gmodel.connector/.classpath new file mode 100644 index 0000000..2d1a430 --- /dev/null +++ b/src/trunk/org.gmodel.connector/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/trunk/org.gmodel.connector/.project b/src/trunk/org.gmodel.connector/.project new file mode 100644 index 0000000..3c1a447 --- /dev/null +++ b/src/trunk/org.gmodel.connector/.project @@ -0,0 +1,28 @@ + + + org.gmodel.connector + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/src/trunk/org.gmodel.connector/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.connector/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..f6d63a3 --- /dev/null +++ b/src/trunk/org.gmodel.connector/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,8 @@ +#Thu Dec 09 15:46:04 CET 2010 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.connector/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.connector/META-INF/MANIFEST.MF new file mode 100644 index 0000000..9b569c3 --- /dev/null +++ b/src/trunk/org.gmodel.connector/META-INF/MANIFEST.MF @@ -0,0 +1,9 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.connector +Bundle-SymbolicName: org.gmodel.connector;singleton:=true +Bundle-Version: 1.0.0 +Require-Bundle: org.gmodel.serialization;bundle-version="1.0.0" +Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Export-Package: org.gmodel.connector diff --git a/src/trunk/org.gmodel.connector/build.properties b/src/trunk/org.gmodel.connector/build.properties new file mode 100644 index 0000000..41eb6ad --- /dev/null +++ b/src/trunk/org.gmodel.connector/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/src/trunk/org.gmodel.connector/pom.xml b/src/trunk/org.gmodel.connector/pom.xml new file mode 100644 index 0000000..dcdee53 --- /dev/null +++ b/src/trunk/org.gmodel.connector/pom.xml @@ -0,0 +1,10 @@ + + 4.0.0 + + org.gmodel + org.gmodel.eclipse + 1.0.0 + + org.gmodel.connector + eclipse-plugin + diff --git a/src/trunk/org.gmodel.connector/src/org/gmodel/connector/Component.java b/src/trunk/org.gmodel.connector/src/org/gmodel/connector/Component.java new file mode 100644 index 0000000..34eb5dc --- /dev/null +++ b/src/trunk/org.gmodel.connector/src/org/gmodel/connector/Component.java @@ -0,0 +1,34 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: SMTL 1.0 + * + * The contents of this file are subject to the Sofismo Model Technology License Version + * 1.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.sofismo.ch/SMTL/ + * + * Software distributed under the License is distributed on an "AS IS" basis. + * See the License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is Gmodel Semantic Extensions Edition. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.connector; + +import org.gmodel.serialization.serializer.ProtocolType; + +public interface Component { + + ProtocolType getProtocolType(); + +} diff --git a/src/trunk/org.gmodel.documentation/.project b/src/trunk/org.gmodel.documentation/.project new file mode 100644 index 0000000..17f663d --- /dev/null +++ b/src/trunk/org.gmodel.documentation/.project @@ -0,0 +1,9 @@ + + + org.gmodel.documentation + + + + + + diff --git a/src/trunk/org.gmodel.documentation/README.txt b/src/trunk/org.gmodel.documentation/README.txt new file mode 100644 index 0000000..36c7e81 --- /dev/null +++ b/src/trunk/org.gmodel.documentation/README.txt @@ -0,0 +1 @@ +This is a placeholder for a LaTeX project \ No newline at end of file diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/Changing Repository.docx b/src/trunk/org.gmodel.documentation/articles/0.1/Changing Repository.docx new file mode 100644 index 0000000..840757c Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/Changing Repository.docx differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/Introduction_to_the_gmodel_metalanguage/advanced_modelling_made_simple.synctex.gz b/src/trunk/org.gmodel.documentation/articles/0.1/Introduction_to_the_gmodel_metalanguage/advanced_modelling_made_simple.synctex.gz new file mode 100644 index 0000000..7eb4556 Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/Introduction_to_the_gmodel_metalanguage/advanced_modelling_made_simple.synctex.gz differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/Introduction_to_the_gmodel_metalanguage/emf_supersetreferences.png b/src/trunk/org.gmodel.documentation/articles/0.1/Introduction_to_the_gmodel_metalanguage/emf_supersetreferences.png new file mode 100644 index 0000000..00a4b9c Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/Introduction_to_the_gmodel_metalanguage/emf_supersetreferences.png differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/Introduction_to_the_gmodel_metalanguage/introduction_to_the_gmodel_metalanguage.aux b/src/trunk/org.gmodel.documentation/articles/0.1/Introduction_to_the_gmodel_metalanguage/introduction_to_the_gmodel_metalanguage.aux new file mode 100644 index 0000000..91c58a0 --- /dev/null +++ b/src/trunk/org.gmodel.documentation/articles/0.1/Introduction_to_the_gmodel_metalanguage/introduction_to_the_gmodel_metalanguage.aux @@ -0,0 +1,40 @@ +\relax +\@writefile{toc}{\contentsline {section}{\tocsection {}{1}{Introduction}}{1}} +\@writefile{toc}{\contentsline {section}{\tocsection {}{2}{Terminology}}{2}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{2.1}{Model Theory}}{2}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{2.2}{Denotational Semantics}}{3}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{2.3}{Natural Language and Exchange of Artefacts}}{3}} +\@writefile{toc}{\contentsline {section}{\tocsection {}{3}{the Gmodel kernel}}{4}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{3.1}{Instantiation}}{5}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{3.2}{Surface notation}}{6}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{3.3}{Model artefact storage}}{6}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{3.4}{Interoperability with other modelling technologies}}{6}} +\@writefile{toc}{\contentsline {section}{\tocsection {}{4}{Emulating EMF Ecore in Gmodel}}{6}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{4.1}{Representing the EMF Ecore metamodel in Gmodel artefacts}}{6}} +\@writefile{toc}{\contentsline {subsubsection}{\tocsubsubsection {}{4.1.1}{Defining the Ecore semantic domain}}{7}} +\@writefile{toc}{\contentsline {subsubsection}{\tocsubsubsection {}{4.1.2}{Representing the representation of Ecore in itself in Gmodel}}{7}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{4.2}{Representing EMF Ecore models in Gmodel}}{7}} +\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Representation of super set references between EMF Ecore concepts}}{8}} +\newlabel{default}{{1}{8}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{4.3}{Representing instances of EMF Ecore models in Gmodel}}{9}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{4.4}{Representing instances of instances of EMF Ecore models in Gmodel}}{9}} +\@writefile{toc}{\contentsline {section}{\tocsection {}{5}{Interoperability between EMF Ecore and Gmodel}}{9}} +\@writefile{toc}{\contentsline {section}{\tocsection {}{6}{Advanced applications of multi-level instantiation}}{9}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{6.1}{The bottomless pit of abstractions}}{9}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{6.2}{Modelling of value chains in the context of mass customisation}}{10}} +\@writefile{toc}{\contentsline {section}{\tocsection {}{7}{Practical application of denotational semantics}}{10}} +\@writefile{toc}{\contentsline {section}{\tocsection {}{8}{scope management via visibilities}}{11}} +\@writefile{toc}{\contentsline {section}{\tocsection {}{9}{Gmodel compared to other technologies}}{11}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{9.1}{Modelling technologies}}{11}} +\@writefile{toc}{\contentsline {subsubsection}{\tocsubsubsection {}{9.1.1}{Eclipse Modeling Framework Ecore}}{12}} +\@writefile{toc}{\contentsline {subsubsection}{\tocsubsubsection {}{9.1.2}{MetaEdit+}}{12}} +\@writefile{toc}{\contentsline {subsubsection}{\tocsubsubsection {}{9.1.3}{Research prototypes}}{12}} +\@writefile{toc}{\contentsline {subsubsection}{\tocsubsubsection {}{9.1.4}{Unified Modelling Language tools}}{12}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{9.2}{Programming languages}}{12}} +\newlabel{tocindent-1}{0pt} +\newlabel{tocindent0}{0pt} +\newlabel{tocindent1}{24.94171pt} +\newlabel{tocindent2}{32.18062pt} +\newlabel{tocindent3}{0pt} +\@writefile{toc}{\contentsline {section}{\tocsection {}{10}{Overall contribution of Gmodel to Model Driven Interoperability}}{13}} +\@writefile{toc}{\contentsline {section}{\tocsection {}{11}{Conclusions}}{13}} diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/Introduction_to_the_gmodel_metalanguage/introduction_to_the_gmodel_metalanguage.log b/src/trunk/org.gmodel.documentation/articles/0.1/Introduction_to_the_gmodel_metalanguage/introduction_to_the_gmodel_metalanguage.log new file mode 100644 index 0000000..1053df8 --- /dev/null +++ b/src/trunk/org.gmodel.documentation/articles/0.1/Introduction_to_the_gmodel_metalanguage/introduction_to_the_gmodel_metalanguage.log @@ -0,0 +1,323 @@ +This is pdfTeXk, Version 3.1415926-1.40.9 (Web2C 7.5.7) (format=pdflatex 2009.1.5) 29 JUL 2010 10:28 +entering extended mode +\write18 enabled. + %&-line parsing enabled. +**introduction_to_the_gmodel_metalanguage.tex +(./introduction_to_the_gmodel_metalanguage.tex +LaTeX2e <2005/12/01> +Babel and hyphenation patterns for english, usenglishmax, dumylang, noh +yphenation, german-x-2008-06-18, ngerman-x-2008-06-18, ancientgreek, ibycus, ar +abic, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danish, dutc +h, esperanto, estonian, farsi, finnish, french, galician, german, ngerman, mono +greek, greek, hungarian, icelandic, indonesian, interlingua, irish, italian, la +tin, lithuanian, mongolian, mongolian2a, bokmal, nynorsk, polish, portuguese, r +omanian, russian, sanskrit, serbian, slovak, slovenian, spanish, swedish, turki +sh, ukenglish, ukrainian, uppersorbian, welsh, loaded. +(/usr/local/texlive/2008/texmf-dist/tex/latex/amscls/amsart.cls +Document Class: amsart 2004/08/06 v2.20 +\linespacing=\dimen102 +\normalparindent=\dimen103 +\normaltopskip=\skip41 +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2000/07/18 v2.13 AMS math features +\@mathmargin=\skip42 + +For additional information on amsmath, use the `?' option. +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 + +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 +\@emptytoks=\toks14 +\ex@=\dimen104 +)) +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d +\pmbraise@=\dimen105 +) +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 1999/12/14 v2.01 operator names +) +\inf@bad=\count79 +LaTeX Info: Redefining \frac on input line 211. +\uproot@=\count80 +\leftroot@=\count81 +LaTeX Info: Redefining \overline on input line 307. +\classnum@=\count82 +\DOTSCASE@=\count83 +LaTeX Info: Redefining \ldots on input line 379. +LaTeX Info: Redefining \dots on input line 382. +LaTeX Info: Redefining \cdots on input line 467. +\Mathstrutbox@=\box26 +\strutbox@=\box27 +\big@size=\dimen106 +LaTeX Font Info: Redeclaring font encoding OML on input line 567. +LaTeX Font Info: Redeclaring font encoding OMS on input line 568. +\macc@depth=\count84 +\c@MaxMatrixCols=\count85 +\dotsspace@=\muskip10 +\c@parentequation=\count86 +\dspbrk@lvl=\count87 +\tag@help=\toks15 +\row@=\count88 +\column@=\count89 +\maxfields@=\count90 +\andhelp@=\toks16 +\eqnshift@=\dimen107 +\alignsep@=\dimen108 +\tagshift@=\dimen109 +\tagwidth@=\dimen110 +\totwidth@=\dimen111 +\lineht@=\dimen112 +\@envbody=\toks17 +\multlinegap=\skip43 +\multlinetaggap=\skip44 +\mathdisplay@stack=\toks18 +LaTeX Info: Redefining \[ on input line 2666. +LaTeX Info: Redefining \] on input line 2667. +) +LaTeX Font Info: Try loading font information for U+msa on input line 407. + +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2002/01/19 v2.2g AMS font definitions +) +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2001/10/25 v2.2f +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 132. +) +\copyins=\insert233 +\abstractbox=\box28 +\listisep=\skip45 +\c@part=\count91 +\c@section=\count92 +\c@subsection=\count93 +\c@subsubsection=\count94 +\c@paragraph=\count95 +\c@subparagraph=\count96 +\c@figure=\count97 +\c@table=\count98 +\abovecaptionskip=\skip46 +\belowcaptionskip=\skip47 +\captionindent=\dimen113 +\thm@style=\toks19 +\thm@bodyfont=\toks20 +\thm@headfont=\toks21 +\thm@notefont=\toks22 +\thm@headpunct=\toks23 +\thm@preskip=\skip48 +\thm@postskip=\skip49 +\thm@headsep=\skip50 +\dth@everypar=\toks24 +) +(/usr/local/texlive/2008/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2008/12/21 v4.2 Page Geometry + +(/usr/local/texlive/2008/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 1999/03/16 v1.13 key=value parser (DPC) +\KV@toks@=\toks25 +) +(/usr/local/texlive/2008/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2007/12/12 v1.6 Provides the ifpdf switch (HO) +Package ifpdf Info: pdfTeX in pdf mode detected. +) +(/usr/local/texlive/2008/texmf-dist/tex/generic/oberdiek/ifvtex.sty +Package: ifvtex 2008/11/04 v1.4 Switches for detecting VTeX and its modes (HO) +Package ifvtex Info: VTeX not detected. +) +\Gm@cnth=\count99 +\Gm@cntv=\count100 +\c@Gm@tempcnt=\count101 +\Gm@bindingoffset=\dimen114 +\Gm@wd@mp=\dimen115 +\Gm@odd@mp=\dimen116 +\Gm@even@mp=\dimen117 +\Gm@dimlist=\toks26 + +(/usr/local/texlive/2008/texmf-dist/tex/xelatex/xetexconfig/geometry.cfg)) +(/usr/local/texlive/2008/texmf-dist/tex/latex/ltxmisc/parskip.sty +Package: parskip 2001/04/09 non-zero parskip adjustments + + +LaTeX Warning: Command \@starttoc has changed. + Check if current package is valid. + +) (/usr/local/texlive/2008/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2008/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2006/02/20 v1.0o Standard LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2008/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 1999/03/16 v1.09 sin cos tan (DPC) +) +(/usr/local/texlive/2008/texmf/tex/latex/config/graphics.cfg +File: graphics.cfg 2007/01/18 v1.5 graphics configuration of teTeX/TeXLive +) +Package graphics Info: Driver file: pdftex.def on input line 90. + +(/usr/local/texlive/2008/texmf-dist/tex/latex/pdftex-def/pdftex.def +File: pdftex.def 2008/09/08 v0.04l Graphics/color for pdfTeX +\Gread@gobject=\count102 +)) +\Gin@req@height=\dimen118 +\Gin@req@width=\dimen119 +) +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsfonts/amssymb.sty +Package: amssymb 2002/01/22 v2.2d +) +(/usr/local/texlive/2008/texmf-dist/tex/latex/oberdiek/epstopdf.sty +Package: epstopdf 2008/05/06 v1.7 Conversion with epstopdf on the fly (HO) + +(/usr/local/texlive/2008/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2007/09/09 v1.2 Providing info/warning/message (HO) +) +(/usr/local/texlive/2008/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2007/09/30 v1.0 Managing graphics extensions (HO) +) +(/usr/local/texlive/2008/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2007/10/18 v3.0 Keyval support for LaTeX options (HO) +) +(/usr/local/texlive/2008/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty +Package: pdftexcmds 2007/12/12 v0.3 LuaTeX support for pdfTeX utility functions + (HO) +Package pdftexcmds Info: LuaTeX not detected on input line 139. +) +Package grfext Info: Graphics extension search list: +(grfext) [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE +G,.JBIG2,.JB2,.eps] +(grfext) \AppendGraphicsExtensions on input line 323. +) +(/usr/local/texlive/2008/texmf-dist/tex/latex/base/ifthen.sty +Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC) +) +(./introduction_to_the_gmodel_metalanguage.aux) +\openout1 = `introduction_to_the_gmodel_metalanguage.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 32. +LaTeX Font Info: ... okay on input line 32. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 32. +LaTeX Font Info: ... okay on input line 32. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 32. +LaTeX Font Info: ... okay on input line 32. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 32. +LaTeX Font Info: ... okay on input line 32. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 32. +LaTeX Font Info: ... okay on input line 32. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 32. +LaTeX Font Info: ... okay on input line 32. +LaTeX Font Info: Try loading font information for U+msa on input line 32. + +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2002/01/19 v2.2g AMS font definitions +) +LaTeX Font Info: Try loading font information for U+msb on input line 32. + +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsfonts/umsb.fd +File: umsb.fd 2002/01/19 v2.2g AMS font definitions +) +*geometry auto-detecting driver* +*geometry detected driver: pdftex* +-------------------- Geometry parameters +paper: a4paper +landscape: -- +twocolumn: -- +twoside: true +asymmetric: -- +h-parts: 71.70166pt, 0.7\paperwidth , 107.55254pt (default) +v-parts: 101.40665pt, 0.7\paperheight , 152.11pt (default) +hmarginratio: 2:3 +vmarginratio: 2:3 +lines: -- +heightrounded: -- +bindingoffset: 0.0pt +truedimen: -- +includehead: -- +includefoot: -- +includemp: -- +driver: pdftex +-------------------- Page layout dimensions and switches +\paperwidth 597.50787pt +\paperheight 845.04684pt +\textwidth 418.25368pt +\textheight 591.5302pt +\oddsidemargin -0.56833pt +\evensidemargin 35.28255pt +\topmargin 7.13666pt +\headheight 8.0pt +\headsep 14.0pt +\footskip 12.0pt +\marginparwidth 90.0pt +\marginparsep 11.0pt +\columnsep 10.0pt +\skip\footins 7.0pt plus 11.0pt +\hoffset 0.0pt +\voffset 0.0pt +\mag 1000 +\@twosidetrue \@mparswitchtrue +(1in=72.27pt, 1cm=28.45pt) +----------------------- +(/usr/local/texlive/2008/texmf-dist/tex/context/base/supp-pdf.tex +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count103 +\scratchdimen=\dimen120 +\scratchbox=\box29 +\nofMPsegments=\count104 +\nofMParguments=\count105 +\everyMPshowfont=\toks27 +\MPscratchCnt=\count106 +\MPscratchDim=\dimen121 +\MPnumerator=\count107 +\everyMPtoPDFconversion=\toks28 +) [1{/usr/local/texlive/2008/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] +[2] [3] + +LaTeX Font Warning: Font shape `OT1/cmss/m/it' in size <10> not available +(Font) Font shape `OT1/cmss/m/sl' tried instead on input line 154. + + +[4] [5] [6] +File: emf_supersetreferences.png Graphic file (type png) + + +Overfull \hbox (8.53766pt too wide) in paragraph at lines 208--209 + [] + [] + +[7] +Underfull \vbox (badness 4341) has occurred while \output is active [] + + [8 <./emf_supersetreferences.png>] +Overfull \hbox (2.72874pt too wide) in paragraph at lines 242--243 +[]\OT1/cmr/m/n/10.95 With the na-tive en-cod-ing of Ecore em-u-lated by Gmodel +arte-facts, build-ing a bi-directional + [] + +[9] [10] [11] [12] [13] (./introduction_to_the_gmodel_metalanguage.aux) ) +Here is how much of TeX's memory you used: + 2887 strings out of 493876 + 36758 string characters out of 1150569 + 94824 words of memory out of 3000000 + 5970 multiletter control sequences out of 10000+50000 + 11421 words of font info for 44 fonts, out of 3000000 for 5000 + 875 hyphenation exceptions out of 8191 + 34i,6n,31p,973b,293s stack positions out of 5000i,500n,10000p,200000b,50000s + + +Output written on introduction_to_the_gmodel_metalanguage.pdf (13 pages, 139544 + bytes). +PDF statistics: + 88 PDF objects out of 1000 (max. 8388607) + 0 named destinations out of 1000 (max. 131072) + 6 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/Introduction_to_the_gmodel_metalanguage/introduction_to_the_gmodel_metalanguage.pdf b/src/trunk/org.gmodel.documentation/articles/0.1/Introduction_to_the_gmodel_metalanguage/introduction_to_the_gmodel_metalanguage.pdf new file mode 100644 index 0000000..ab2767a Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/Introduction_to_the_gmodel_metalanguage/introduction_to_the_gmodel_metalanguage.pdf differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/Introduction_to_the_gmodel_metalanguage/introduction_to_the_gmodel_metalanguage.synctex.gz b/src/trunk/org.gmodel.documentation/articles/0.1/Introduction_to_the_gmodel_metalanguage/introduction_to_the_gmodel_metalanguage.synctex.gz new file mode 100644 index 0000000..5cf5b3a Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/Introduction_to_the_gmodel_metalanguage/introduction_to_the_gmodel_metalanguage.synctex.gz differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/Introduction_to_the_gmodel_metalanguage/introduction_to_the_gmodel_metalanguage.tex b/src/trunk/org.gmodel.documentation/articles/0.1/Introduction_to_the_gmodel_metalanguage/introduction_to_the_gmodel_metalanguage.tex new file mode 100644 index 0000000..0d93d80 --- /dev/null +++ b/src/trunk/org.gmodel.documentation/articles/0.1/Introduction_to_the_gmodel_metalanguage/introduction_to_the_gmodel_metalanguage.tex @@ -0,0 +1,339 @@ +\documentclass[11pt]{amsart} +%\documentclass[11pt]{article} + +\usepackage{geometry} % See geometry.pdf to learn the layout options. There are lots. +\geometry{a4paper} % ... or letterpaper or a5paper or ... +%\geometry{landscape} % Activate for for rotated page geometry +\usepackage[parfill]{parskip} % Activate to begin paragraphs with an empty line rather than an indent +\usepackage{graphicx} +\usepackage{amssymb} +\usepackage{epstopdf} +\DeclareGraphicsRule{.tif}{png}{.png}{`convert #1 `dirname #1`/`basename #1 .tif`.png} + +\usepackage{ifthen} +\newboolean{showcomments} +\setboolean{showcomments}{true} +\ifthenelse{\boolean{showcomments}} + {\newcommand{\mynote}[2]{ + \fbox{\bfseries\sffamily\scriptsize#1} + {\small$\blacktriangleright$\textsf{\emph{#2}}$\blacktriangleleft$} + } + } + {\newcommand{\mynote}[2]{} + } +\newcommand\tony[1]{\mynote{Tony}{#1}} +\newcommand\jorn[1]{\mynote{Jorn}{#1}} +\newcommand\todo[1]{\mynote{ToDo}{#1}} + + +\title{Introduction the Gmodel Meta-Language} +\author{Jorn Bettin, Tony Clark} +%\date{} % Activate to display a given date or no date +\begin{document} +\maketitle + +\textit{Gmodel is a meta-language that has been designed from the ground up to enable specification and instantiation of modelling languages. Although a number of meta-languages can be used for this purpose, most provide no or only limited support for modular specifications of sets of complementary modelling languages. Gmodel addresses modularity and extensibility as primary concerns, and is based on a small number of language elements that have their origin in model theory and denotational semantics.} + +\section{Introduction} +\textit {In order to increase awareness about the role that domain specific modeling languages can play in capturing, preserving, and exploiting knowledge in virtually all industries, it is necessary to establish a strong consensus on the fundamental values and principles that underpin the use of domain specific modeling languages.} +\begin{enumerate} + +\item \textit{Reaching a strong consensus on fundamental values and principles for designing and using domain specific languages} +\item \textit{Progress towards interoperability between tools} + +\end{enumerate} +-- KISS Initiative, 2009 + +The development of Gmodel relates to the second objective of the KISS initiative, and builds on the KISS results that have been achieved in 2009. In particular, Gmodel represents an attempt to provide explicit tool support for the full set of KISS principles: + +\begin{enumerate} + +\item \textit{The DSL must be meaningful to users} +\item \textit{The DSL should be cognitively efficient} +\item \textit{The DSL should have multiple notations where necessary} +\item \textit{DSLs should offer mechanisms for modularizing and integrating models} +\item \textit{The DSL should be supported by appropriate tooling} +\item \textit{There must be an economic imperative for the development of a DSL} +\item \textit{The DSL must not be polluted with implementation features} +\item \textit{Model processing must always be based on a formal DSL definition} +\item \textit{DSLs should be kept small through modularization and integration} + +\end{enumerate} + +Since the design of Gmodel rests on mathematical concepts from model theory and from the theory of denotational semantics, Gmodel can tap into established mathematical terminology, and the target audience for Gmodel includes modellers in all disciplines. Consistent with denotational semantics and with the third KISS principle, Gmodel completely separates the concern of representation from the concern of naming. This means that in contrast to most programming language specifications, the specification of Gmodel does not include a text-based concrete syntax. + +The authors of Gmodel believe that modelling has the greatest value when performed by domain experts, and if modelling language design takes into account established domain notations. The challenge consists in providing a meta-language that enables the most experienced domain experts to define the notation for modelling in their field, whilst at the same time providing tool support for enforcing (and ideally guaranteeing) the adherence to KISS modelling language design principles. + +\section{Terminology} + +Modellers are not in the business of inventing new terminology, they are in the business of identifying concepts and links between concepts that are useful for a particular community of people -- usually scientists or professionals in a particular field. This approach to modelling is consistent with the Oxford American dictionary definition of modelling: +\begin{description} + +\item [to model] devise a representation, especially a mathematical one of (a phenomenon or system) + +\end{description} + +The mathematical definitions in model theory make use of the concepts of sets and graphs. + +\begin{description} +\item [set] definition to be inserted +\item [ordered pair] definition to be inserted +\item [ordered set] definition to be inserted +\item [graph] definition to be inserted (edge, vertex) +\end{description} + +\subsection{Model Theory} + +Model theory provides a mathematical basis for the field of modelling, and it defines precise terminology for reasoning about models: +\begin{description} +\item [structure] definition to be inserted (domain, constant elements, relation symbols, function symbols) +\item [signature] definition to be inserted +\item [substructure] definition to be inserted +\item [term] definition to be inserted +\item [formula] definition to be inserted +\item [variable] definition to be inserted +\item [language] definition to be inserted +\item [cardinality] definition to be inserted +\item [sentence] definition to be inserted +\item [theory] definition to be inserted +\item [model] definition to be inserted +\end{description} + +This terminology and the associated mathematical theory has heavily influenced the design of Gmodel. + +\subsection{Denotational Semantics} + +The second source of influence on Gmodel is denotational semantics, in particular the following terminology is used in the specification of Gmodel: + +\begin{description} +\item [semantic domain] definition to be inserted +\item [semantic identity] definition to be inserted +\end{description} + +One advantage of using established mathematical terminology to describe Gmodel is a low risk of terminological confusion with concepts from the Meta Object Facility (MOF), a popular meta-language that is steeped in object orientation, and with concepts from related implementations such as the Eclipse Modeling Framework Ecore language. This benefit immediately becomes apparent when discussing the representation of Ecore in Gmodel. A second advantage of using the above terminology is the ability to reason about Gmodel in mathematical terms, without the need for any linguistic gymnastics. + +\subsection{Natural Language and Exchange of Artefacts} + +In addition to mathematics, Gmodel terminology draws on concepts that have shaped the development of natural language, and the way in which humans perform work and exchange artefacts -- including abstract ideas. In relation to the latter, and in accordance with the second KISS principle, the design of Gmodel takes into account human cognitive abilities and limitations. + +\begin{description} + +\item [language artefact] A \emph{container of information} that: + +\begin{enumerate} +\item{is \emph{created by a specific actor} (human or a system)} +\item{is \emph{consumed by at least one actor} (human or system)} +\item{represents a \emph{natural unit of work} (for the creating and consuming actors)} +\item{\emph{may contain links to other language artefacts}} +\item{\emph{has a state and a lifecycle}} +\end{enumerate} + +\item [model artefact] A language artefact that meets the following criteria: + +\begin{enumerate} +\item{It is \emph{created with the help of a software program} that enforces specific instantiation semantics (quality related constraints)} +\item{The information contained in a model artefact \emph{can be easily processed by software programs} (in particular transformation languages)} +\item{\emph{Referential integrity between model artefacts is preserved at all times} with the help of a software program (otherwise the necessary level of completeness and consistency is neither adequate for automated processing nor for domain experts making business decisions based on artefact content)} +\item{\emph{No circular links between model artefacts are allowed at any time} (a prerequisite for true modularity and maintainability of artefacts)} +\item{The \emph{lifecycle of a model artefact is described in a state machine} (allowing artefact completeness and quality assurance steps to be incorporated into the artefact definition)} +\end{enumerate} + +\item [instance] A set that \emph{seems to contain} one and only one element at any given point in time from the \emph{view point} of a specific \emph{actor} +\item [instantiation function] A function that returns an \emph{instance} -- sometimes instantiation functions are also called \emph{concretisation functions} +\item [visibility] Visibilities are links between model artefacts that set the \emph{architectural context} for artefact \emph{producers} by declaring the model artefacts that can be used as inputs for the creation of specific kinds of model artefacts +\item [producer] An \emph{actor} that creates \emph{language artefacts} +\item [consumer] An \emph{actor} that consumes \emph{language artefacts} +\item [value chain] definition to be inserted (system, actors, derivation) + +\end{description} + +\section{the Gmodel kernel} + +The Gmodel kernel is a semantic domain consisting of a set of semantic identities that reify the concepts of ordered pair, ordered set, and graph -- the latter consisting of a set of vertices and a set of edges. To facilitate extensibility and multi-level instantiation, the encoding of the Gmodel kernel is entirely expressed in Gmodel semantic identities, and each semantic identity in the kernel is defined as an instance of itself, and as a sub set of the next simpler semantic identity in the kernel. + +\mynote{ToDo}{This section would benefit from a simple model (diagram) of the kernel. It would also benefit from an example of the application of the kernel for a simple language (or perhaps just a ground model). In general, the descriptions in the paper are clear, but are at an abstract level. The paper would benefit from concrete examples of the key points. I don't think these need to be very extensive, but they need to be consistent with each other.} + +The generic term to refer to any semantic identity that is expressed in Gmodel is the \emph{set}. The simplest semantic identity is the \emph{ordered pair}. Ordered pairs are used to define \emph{ordered sets} and \emph{graphs}. Much of the power and simplicity of Gmodel has its origin the specific encoding chosen for graphs. Instead of consisting of a set of vertices and a set of edges, a Gmodel graph is encoded as a set of vertices and several complementary ordered sets of \emph{links}: +\begin{description} +\item [edges] links between two \emph{sets} with a dedicated \emph{edge end} for each connected set +\item [super set references] directed links from a \emph{sub set} to a \emph{super set} +\item [visibilities] directed links from one \emph{sub graph} to another \emph{sub graph} +\item [edge traces] directed links from one \emph{edge} to another \emph{edge} +\end{description} + +The Gmodel \emph{vertex} and all four types of \emph{links} are encoded as \emph{sub sets} of \emph{graph}. In order to serve as a meta-language, edge ends are decorated with variables for \emph{minimum cardinality} and \emph{maximum cardinality}, as well as variables that represent the direction of \emph{navigability} of edges and a notion of \emph{containment} relating to the connected set. + +\subsection{Instantiation} + +A modeller may use the \emph{instantiation} function of Gmodel kernel to create representations of vertices and links. Since vertices are encoded as a sub set of graph -- and hence enable the representation of nested abstractions, vertices are well positioned to serve as the unit of modularity in Gmodel. Using the terminology introduced above, vertices play the role of \emph{model artefacts}, and in the context of Gmodel (modelling), are simply referred to as \emph{artefacts}. + +Links between artefacts are also encoded as a sub set of graph, and therefore are also capable of representing nested abstractions by containing sets of vertices and sets of links. Links between two artefacts are always contained in the artefact that contains the first of the two artefacts connected by the link, which is one of the constraints that allows Gmodel to fulfil the fourth criteria of the definition of model artefact -- effectively enforcing much stronger rules regarding modularity than the minimum expectations set by KISS principles (4) and (9). + +The most powerful feature of Gmodel instantiation is the ability to decorate any Gmodel artefact with \emph{instantiation semantics} (or \emph{concretisation} semantics) relating to representations of less abstract (or more \emph{concrete}) sets, such that the artefact becomes \emph{instantiable}. The instantiation semantics available in the Gmodel kernel boil down to the variables for \emph{cardinalities}, \emph{navigability}, and \emph{containment} that are part of all \emph{edge ends} of Gmodel edges. Thus, on the one hand, by excluding any circular links between artefacts, Gmodel imposes heavy constrains on the models that can be created, but on the other hand, Gmodel allows an unlimited degree of freedom with respect to the number of instantiation levels. + +Gmodel does not mandate a layered metamodel architecture. Our modelling experience in software intensive industries has taught us that the model pattern known as the \emph{power type pattern} in object orientation occurs pervasively in highly configurable systems. The power type pattern is a technical kludge that forces the fragmentation of semantic identities, and it clearly demonstrates the limits of the object oriented paradigm -- which is currently still treated as dogma by many software engineers. By allowing multi-level instantiation, the need for the power type pattern is eliminated, and the fragmentation of semantic identities can be avoided. + +\subsection{Surface notation} The name Gmodel is motivated by the \emph{graph} concept, and all notations for visualising graphs are good candidates for a concrete syntax for Gmodel artefacts. In contrast, purely text-based representations are only practical for representing Gmodel artefacts with certain characteristics, such as artefacts with a low ratio of edges to vertices. Additionally, given that the main target audience for Gmodel consists of modellers in general -- as opposed to software engineers with a strong preference for working with formal text-based languages, there is no urgent need for developing a human readable purely text-based syntax. + +The Gmodel open source project has no intention of reinventing XML or burdening the world with yet another XML-based but not-quite-human-readable syntax. The Gmodel API can easily be used to build graphical editors for Gmodel artefacts that are complemented with appropriate form-based representations of variables and their values. At this point in time Gmodel provides two complementary graphical surface notations for visualising model artefacts. A generic graphical editor that allows artefacts to be created and modified is currently under development. + +\subsection{Model artefact storage} Gmodel internally uses a serialisation format that is not intended for human consumption, and it provides a binding of this serialisation format to relational database technologies. In particular Gmodel fulfils criteria (3) of the definition of model artefacts, and provides explicit support for the semantics of \emph{unkown} and the semantics of \emph{not applicable}. As needed, the serialisation format can be bound to alternative persistence mechanisms such as file systems, object databases or cloud database technologies. + +In order to work with model artefacts, Gmodel includes a repository API that currently offers basic artefact search functionality, which will be significantly enhanced in future releases. + +\subsection{Interoperability with other modelling technologies} There are two main ways of achieving interoperability between Gmodel and other modelling technologies. This article focuses on the level of profound semantic interoperability with other meta-languages that can be achieved by making use of multi-level instantiation to emulate "foreign" technologies. Gmodel also offers an alternative for partial and superficial interoperability via file based information exchange. Out of the box Gmodel includes integration with the Eclipse integrated development environment, and with the openArchitectureWare xPand template/transformation engine, putting text or code generation at the user's fingertips. + +\section{Emulating EMF Ecore in Gmodel} + +\subsection{Representing the EMF Ecore metamodel in Gmodel artefacts} + +Gmodel clearly distinguishes between \emph{semantic domains} and \emph{models}. The former simply contain sets of \emph{semantic identities}, whereas the latter contain \emph{representations of semantic identities} from the view point of a particular \emph{actor}. In Gmodel no model can be constructed without referencing elements in the relevant underlying semantic domains. + +\subsubsection{Defining the Ecore semantic domain} In Ecore the most generalised element is the EObject, and all other elements are part of a generalisation/specialisation hierarchy that starts with EObject. To respresent Ecore in Gmodel, the first step consists of instantiating the semantic domain \texttt{EcoreDomain}, which contains all the semantic identities that appear in Ecore. This step will be perceived as somewhat unusual by all those who are only familiar with the definition of text-based languages using EBNF-style grammars; as the concern of representation and the concern of naming are one and the same in such specifications. + +The number of semantic identities required to represent Ecore is significantly larger than the number of elements that appear in the Ecore generalisation/specialisation hierarchy. Every instance of an EDataType, every instance of an EReference, every instance of an EAttribute, etc. that occurs in the encoding of Ecore in itself requires a corresponding semantic identity. Loosely speaking, everything that has a name in the encoding of Ecore in itself corresponds to a semantic identity. + +\subsubsection{Representing the representation of Ecore in itself in Gmodel} + +To prepare for the representation of Ecore in itself (the metametamodel level in the classical four layered metamodel architecture) in Gmodel, we instantiate a \emph{model artefact} (with meta element \emph{vertex}) based on the semantic identity \texttt{Ecore} that has been defined as part of the EcoreDomain in the previous step. Loosely speaking we now have an empty model artefact called "\texttt{Ecore}". + +We can then proceed to add \emph{contained artefacts} (with meta element \emph{vertex}) to the \texttt{Ecore} artefact that correspond to the Ecore generalisation/specialisation hierarchy that starts with EObject. Once this is done we can represent the entire Ecore generalisation/specialisation hierarchy in the \texttt{Ecore} artefact using \emph{super set references}, and we can represent all instances of EReferences in the \texttt{Ecore} artefact within Gmodel. + +Lastly we add all relevant \emph{variables} to the elements of the \texttt{Ecore} artefact, making use of appropriate \emph{semantic identities} from the \texttt{EcoreDomain}. + +The whole process of representing Ecore in Gmodel is straightforward modelling in Gmodel, and requires no coding in a programming language. + +\begin{figure} +\begin{center} +\includegraphics[width=150mm]{emf_supersetreferences} +\caption{Representation of super set references between EMF Ecore concepts} +\label{default} +\end{center} +\end{figure} + +\subsection{Representing EMF Ecore models in Gmodel} + +The representation of Ecore models (the metamodel level in the classical four layered metamodel architecture) in Gmodel follows the same pattern as the representation of Ecore in itself in Gmodel. First, appropriate semantic identities must be defined, and then the \texttt{Ecore} model artefact can be instantiated to obtain an empty model artefact. Note that above we instantiated a vertex to obtain a model artefact with the \texttt{Ecore} semantic identity, and now we are instantiating this model artefact. + +Just as above, the next step consists of adding contained artefacts to the model artefact, this time however the meta elements of the contained artefacts correspond to Ecore concepts. Up to this point there is nothing special about using Gmodel. We could turn the table and proceed with very similar steps in EMF Ecore to obtain a reasonable representation of Gmodel -- "reasonable", because EMF actually lacks one instantiation level to provide a precise representation of Gmodel \emph{edges}. But instead of delving into the encoding details of Gmodel edges, the following step in encoding Ecore models is straightforward to follow, and clearly illustrates where multi-level instantiation plays a critical role. + +\mynote{ToDo}{relevant Gmodel artefact visualisation(s).} + +In Gmodel we can proceed to represent all instances of EReferences as demanded by the Ecore model we are emulating, and we can use the edges that Gmodel uses to connect EReference instances to the source and target instances of Eclass to record the cardinalities pertaining to the \emph{instantiability} of the model artefact. In a meta-language without multi-level instantiation we would already have hit rock-bottom at this point. We would have been able to express links between elements (which, depending on the meta-language, may be called "references", "associations", "relationships", "connections", "edges" or similar -- the name is immaterial), but we would not have been able to decorate these links with cardinalities etc., which constitute essential instantiation semantics for the next level of instantiation or concretisation. + +\subsection{Representing instances of EMF Ecore models in Gmodel} + +Given the explanations above, it is obvious how to proceed to instantiate Ecore models +(the model level in the classical four layered metamodel architecture) in Gmodel. + +\mynote{ToDo}{relevant Gmodel artefact visualisation(s).} + +\subsection{Representing instances of instances of EMF Ecore models in Gmodel} + +In Gmodel there is no reason to stop modelling at the "model" level. If the modeller has invested in decorating a model artefact with instantiation semantics, Gmodel is capable of applying these semantics -- regardless of the level of instantiaton or concretisation. + +In practical terms multi-level instantiation allows the modeller to instantiate operational data right down to the \emph{concrete} level (the instance level +in the classical four layered metamodel architecture) -- where Joe Bloggs owns life insurance policy number 123456. Given that industrial-strength relational database technology is the default storage format used by the Gmodel repository, navigating and maintaining large and databases or data warehouses is simply a matter using the Gmodel repository for naviation, and of using Gmodel's instantiation function. + +\mynote{ToDo}{relevant Gmodel artefact visualisation(s).} + +\section{Interoperability between EMF Ecore and Gmodel} + +With the native encoding of Ecore emulated by Gmodel artefacts, building a bi-directional bridge between the two technologies has become a trivial task. The Ecore API can be used to systematically read EMF models (at the metamodel level and the model level in the classical four layered metamodel architecture), and the retrieved in-memory representations can be mechanically mapped to corresponding in-memory representations in the Ecore emulation within Gmodel. + +Gmodel is a technology that allows the construction of model driven systems on a new scale, whereas EMF Ecore is a technology with an established user base and a vast array of useful transformation and generator components that facilitate the binding to popular Java implementation technologies. A bridge between Ecore and Gmodel can be driven by an event-based mechanism to create dynamic interoperability between the two technologies, opening up interesting avenues for model driven systems that exploit the strengths of both technologies. + +\mynote{ToDo}{Having set up EMF in Gmodel, I'd suggest having a concrete example (however small) of an EMF model transformed to Gmodel and back again.} + +\section{Advanced applications of multi-level instantiation} + +\subsection{The bottomless pit of abstractions} + +Gmodel incorporates the insight from experienced modellers that there is no absolute rock-bottom \emph{concrete} level of models. Life insurance policy number 123456 only looks like an instance from the view point of the average policy holder. From the view point of the insurer a specific version of the policy that is active for a certain interval is a more appropriate perception of \emph{instance}. And, in case in 2020 Joe Bloggs decides to shift his entire life into n virtual worlds (given the track record of software technology, who would want to put all eggs in one basket ;-), his view point will shift. Life insurance policy number 123456 in Second Life may be considered to be one instance, and the corresponding policy representation in Third Life may be considered to be a different instance -- perhaps the currency in which premiums are being paid is different in each of the virtual worlds. + +\subsection{Modelling of value chains in the context of mass customisation} + +If the above sounds far fetched, analysing the typical evolution of technology products over a period of several years provides further motivation for multi-level instantiation. Since the 1970s software has been used as a tool to not only automate industrial production, but also to extend the degree to which technology products can be configured and customised without having to resort to manual manufacturing techniques. Mass customisation has become commonplace in many industries. + +The evolution of a product over longer stretches of time can be modelled as a series of instantiation levels. Adding a new set of configuration options equates to adding additional \emph{variables} to an artefact that used to be perceived as an instance. What used to be called a product morphs into a \emph{product line}, and the new products are the instances of the product line, where each of the variables take on concrete \emph{values}. The view point of the customer usually remains unaffected, she still buys instances of a product. + +Within a non-trivial value chain, the variables associated with a product line tend to be replaced by concrete values in a series of stages, so called \emph{binding times}. Each binding time is associated with a specific actor that is responsible for making \emph{decisions} regarding the values relating to a specific set of variables. In our experience multi-level instantiation is by far the simplest modelling technique for representing non-trivial value chains. + +The alternative of using a purely object oriented design, in combination with the classical power type pattern, leads to system designs that are much more complex and much less maintainable than they could be. In particular the traditional distinction between design-time and run-time is a dangerous over-simplification that distracts from the need of proper \emph{value chain analysis} (also known as \emph{domain analysis} in the discipline of software product line engineering). + +\section{Practical application of denotational semantics} + +Since all model artefacts in Gmodel are constructed from semantic identities, and since semantic identities are the only Gmodel elements that have names, semantic identities offer a one-stop-shop for dealing with all aspects of naming. This greatly facilitates any required translation between different terminologies, and it even enables users to replace the names of the semantic identities in the Gmodel kernel. If a user prefers to call a vertex a node, or if she prefers to rename TRUE to FALSE and FALSE to TRUE, so be it. The role of modelling is representation and not naming. + +Separating the concern of \emph{modelling} from the concern of \emph{naming} adds value precisely because good terminology \emph{is} so important. Each pair of collaborating actors in a value chain tends to have a preferred terminology or \emph{jargon} for their specific interactions, and such jargon is often a valuable tool for \emph{disambiguation}. + +Without the systematic use of semantic identities, establishing interoperability across an entire value chain is significantly complicated. Names end up being used in the definition of protocols and artefacts, and the reliability of links between the participants in the value chain and communication across the links suffers accordingly. + +It is worthwhile to note that semantic identities are not only applicable at the atomic level to define identities such as \emph{TRUE} and \emph{FALSE}, but are just as applicable to statements such as \emph{minimum cardinality = 1} or to aggregates such as the entire \texttt{Ecore} model artefact. + +\section{scope management via visibilities} + +Modularity and scope management go hand in hand. One without the other is of very little value. Gmodel requires users to be explicit about scope. A model artefact may not reference any element in other model artefacts unless these artfacts have been declared to be \emph{visible} from the first artefact. In contrast to most programming languages, declarations of visibility are not part of an artefact, but they are part of the \emph{parent artefact} in the so called \emph{artefact containment tree}. + +The parent artefact has the responsibility of providing the \emph{architectural context} for all the artefacts that it contains. The authors of Gmodel consider it to be good modelling practice to associate every artefact with a producer, and to identify and name the binding time that is associated with the instantiation of an artefact. Experience from many large-scale software system development initiatives has consistently confirmed the usefulness of this approach to system analysis and modularisation. + +The encoding of Ecore in Gmodel required the declaration of a small number of visibilities, but there are much better practical examples that can be used to demonstrate the value of scope management via visibilities -- a topic that goes beyond the scope of this paper. + +Visibilities offer significant value to intensive users of EMF, as Ecore lacks a corresponding facility. By switching from the native implementation of Ecore to the Gmodel \texttt{Ecore} emulation, EMF users gain access to the use of visibilities, and hence obtain a powerful tool for actively managing/restricting the dependencies in large-scale Java component architectures. + + +\section{Gmodel compared to other technologies} + + +\subsection{Modelling technologies} + +The level of interoperability between current domain specific modelling tools is comparable to the level of interoperability between CASE tools in the 90s. To increase the popularity of model based approaches, this needs to change. The assumption that all parties in a global software supply chain will use identical tooling is simply not realistic. + +\subsubsection{Eclipse Modeling Framework Ecore} + +In this paper we have illustrated how Gmodel can be used to emulate the Ecore technology, and conversely we have highlighted some of the limits of Ecore, in particular the lack of support for multi-level instantiation. + +\subsubsection{MetaEdit+} + +MetaEdit+ is mature metamodelling and modelling environment that compares favourably with the Eclipse Modelling Framework. In particular the metametamodel of MetaEdit+ is simpler than the metametamodel used by EMF, without any sacrifice in expressive power. But just as EMF, MetaEdit+ follows the four layered metamodel architecture dogma and does not offer multi-level instantiation. As a result MetaEdit+ runs into the same limitation that EMF runs into when attempting to emulate "foreign" modelling technologies. + +Similar to Gmodel, MetaEdit+ relies on database technology rather than a file system for the storage of model artefacts, enabling modellers to build large-scale model driven systems, but without explicit scope management facilities. + +\subsubsection{Research prototypes} + +We are aware of at least three modelling technology prototypes with some form of multi-level instantiation capablity. It would be extremely interesting to compare the design of Gmodel with the design of these prototype technologies. + +\subsubsection{Unified Modelling Language tools} + +The main target audience of UML consists of software professionals who have an interest in visualising code, especially object oriented code. Most UML tools only offer very limited -- if any -- functionality for instantiating models that users have created. Since UML is based on the Meta Object Facility (and on Ecore or similar implementations), UML tools are affected by the kinds of limitations discussed in this paper in relation to Ecore. + +\subsection{Programming languages} + +There are several programming languages that offer multi-level instantiation, and there are also a number of programming languages that are based on denonational semantics, such as LISP or REBOL. Whilst these language have expressive power that is comparable to Gmodel, they don't offer the limitations and constraints that have consciously been built into Gmodel. + +Programming language designers approach language design from a view point that differs significantly from the view point of a modeller. + +\begin{enumerate} +\item{A programming language is designed to be executable on a specific platform, and the imlementations of programming languages are optimised with respect to using the resources offered by the platform} +\item{is \emph{consumed by at least one actor} (human or system)} +\item{represents a \emph{natural unit of work} (for the creating and consuming actors)} +\item{\emph{may contain links to other language artefacts}} +\item{\emph{has a state and a lifecycle}} +\end{enumerate} + +\section{Overall contribution of Gmodel to Model Driven Interoperability} + +\mynote{ToDo}{a clear statement of contribution. This is missing and should be at least a para by itself (if not a short section). I think that the contribution follows from the problem analysis and the ways in which Gmodel can solve the problems where other technologies cannot (or can do so in limited ways). Therefore, I'd suggest that the contribution includes: simplicity; using established abstractions; multiple meta-levels; modularity.} + +In contrast to many other modelling technologies Gmodel makes no assumption about the implementation and legacy technologies that modellers are going to drive from their model artefacts. The Gmodel kernel is highly portable. It is articulated using the concepts presented in this paper, and makes use of the Java programming language to bootstrap the nine kernel concepts of \emph{ordered pair, ordered set, graph, vertex, edge, edge end, super set reference, visibility}, and \emph{edge trace} -- but without exposing the Java type system in the core API, whilst restricting internal use of Java types to a handful: \texttt{boolean}, \texttt{int}, \texttt{List}, \texttt{Iterator}, \texttt{UUID}, and \texttt{String}. + +Furthermore, Gmodel is not limited to the four layered metamodel architecture. This opens up new approaches with respect to interoperability, since types -- and therefore interoperability patterns, can be encoded in Gmodel to any level of complexity. + +\mynote{ToDo}{Perhaps a comparison of Gmodel with other modelling technologies? Particularly UML - again material can be plundered from the original KISS paper. A current state and further work para?} + +\section{Conclusions} + + +\mynote{ToDo}{closing statements} + +\end{document} \ No newline at end of file diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple.zip b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple.zip new file mode 100644 index 0000000..67de2dc Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple.zip differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/acm_proc_article-sp.cls b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/acm_proc_article-sp.cls new file mode 100644 index 0000000..9ec6f3c --- /dev/null +++ b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/acm_proc_article-sp.cls @@ -0,0 +1,1670 @@ +% ACM_PROC_ARTICLE-SP.CLS - VERSION 3.2SP +% COMPATIBLE WITH THE "SIG-ALTERNATE" V2.4 +% Gerald Murray - April 22nd. 2009 +% +% ---- Start of 'updates' ---- +% +% April 22nd. 2009 - Fixed 'Natbib' incompatibility problem - Gerry +% April 22nd. 2009 - Fixed 'Babel' incompatibility problem - Gerry +% April 22nd. 2009 - Inserted various bug-fixes and improvements - Gerry +% +% To produce Type 1 fonts in the document plus allow for 'normal LaTeX accenting' in the critical areas; +% title, author block, section-heads, etc. etc. +% i.e. the whole purpose of this version update is to NOT resort to 'inelegant accent patches'. +% After much research, three extra .sty packages were added to the the tail (ae, aecompl, aeguill) to solve, +% in particular, the accenting problem(s). We _could_ ask authors (via instructions/sample file) to 'include' these in +% the source .tex file - in the preamble - but if everything is already provided ('behind the scenes' - embedded IN the .cls) +% then this is less work for authors and also makes everything appear 'vanilla'. +% NOTE: all 'patchwork accenting" has been commented out (here) and is no longer 'used' in the sample .tex file (either). +% Gerry June 2007 +% +% Rule widths changed to .5, author count (>6) fixed, roll-back for Type 3 problem. Gerry March 20th. 2007 +% Changes made to 'modernize' the fontnames but esp. for MikTeX users V2.4/2.5 - Nov. 30th. 2006 +% Updated the \email definition to allow for its use inside of 'shared affiliations' - Nov. 30th. 2006 +% Fixed the 'section number depth value' - Nov. 30th. 2006 +% +% Footnotes inside table cells using \minipage (Oct. 2002) +% Georgia fixed bug in sub-sub-section numbering in paragraphs (July 29th. 2002) +% JS/GM fix to vertical spacing before Proofs (July 30th. 2002) +% +% Allowance made to switch default fonts between those systems using +% normal/modern font names and those using 'Type 1' or 'Truetype' fonts. +% See LINE NUMBER 269 for details. +% Also provided for enumerated/annotated Corollaries 'surrounded' by +% enumerated Theorems (line 844). +% Gerry November 11th. 1999 +% +% This 'sp' version does NOT produce the permission block. +% +% Major change in January 2000 was to include a "blank line" in between +% new paragraphs. This involved major changes to the, then, acmproc-sp.cls 1.0SP +% file, precipitating a 'new' name: "acm_proc_article-sp.cls" V2.01SP. +% +% ---- End of 'updates' ---- +% +\def\fileversion{V3.2SP} % for ACM's tracking purposes +\def\filedate{April 22, 2009} % Gerry Murray's tracking data +\def\docdate {Wednesday 22nd. April 2009} % Gerry Murray (with deltas to doc} +\usepackage{epsfig} +\usepackage{amssymb} +\usepackage{amsmath} +\usepackage{amsfonts} +% Need this for accents in Arial/Helvetica +%\usepackage[T1]{fontenc} % Gerry March 12, 2007 - causes Type 3 problems (body text) +%\usepackage{textcomp} +% +% ACM_PROC_ARTICLE-SP DOCUMENT STYLE +% G.K.M. Tobin August-October 1999 +% adapted from ARTICLE document style by Ken Traub, Olin Shivers +% also using elements of esub2acm.cls +% LATEST REVISION V3.2SP - APRIL 2009 +% ARTICLE DOCUMENT STYLE -- Released 16 March 1988 +% for LaTeX version 2.09 +% Copyright (C) 1988 by Leslie Lamport +% +% +%%% ACM_PROC_ARTICLE-SP is a document style for producing two-column camera-ready pages for +%%% ACM conferences, according to ACM specifications. The main features of +%%% this style are: +%%% +%%% 1) Two columns. +%%% 2) Side and top margins of 4.5pc, bottom margin of 6pc, column gutter of +%%% 2pc, hence columns are 20pc wide and 55.5pc tall. (6pc =3D 1in, approx) +%%% 3) First page has title information, and an extra 6pc of space at the +%%% bottom of the first column for the ACM copyright notice. +%%% 4) Text is 9pt on 10pt baselines; titles (except main) are 9pt bold. +%%% +%%% +%%% There are a few restrictions you must observe: +%%% +%%% 1) You cannot change the font size; ACM wants you to use 9pt. +%%% 3) You must start your paper with the \maketitle command. Prior to the +%%% \maketitle you must have \title and \author commands. If you have a +%%% \date command it will be ignored; no date appears on the paper, since +%%% the proceedings will have a date on the front cover. +%%% 4) Marginal paragraphs, tables of contents, lists of figures and tables, +%%% and page headings are all forbidden. +%%% 5) The `figure' environment will produce a figure one column wide; if you +%%% want one that is two columns wide, use `figure*'. +%%% +% +%%% Copyright Space: +%%% This style automatically leaves 1" blank space at the bottom of page 1/ +%%% column 1. This space can optionally be filled with some text using the +%%% \toappear{...} command. If used, this command must be BEFORE the \maketitle +%%% command. If this command is defined AND [preprint] is on, then the +%%% space is filled with the {...} text (at the bottom); otherwise, it is +%%% blank. If you use \toappearbox{...} instead of \toappear{...} then a +%%% box will be drawn around the text (if [preprint] is on). +%%% +%%% A typical usage looks like this: +%%% \toappear{To appear in the Ninth AES Conference on Medievil Lithuanian +%%% Embalming Technique, June 1991, Alfaretta, Georgia.} +%%% This will be included in the preprint, and left out of the conference +%%% version. +%%% +%%% WARNING: +%%% Some dvi-ps converters heuristically allow chars to drift from their +%%% true positions a few pixels. This may be noticeable with the 9pt sans-serif +%%% bold font used for section headers. +%%% You may turn this hackery off via the -e option: +%%% dvips -e 0 foo.dvi >foo.ps +%%% +\typeout{Document Class 'acm_proc_article-sp' <22nd. April '09>. Modified by G.K.M. Tobin} +\typeout{Based in part upon document Style `acmconf' <22 May 89>. Hacked 4/91 by} +\typeout{shivers@cs.cmu.edu, 4/93 by theobald@cs.mcgill.ca} +\typeout{Excerpts were taken from (Journal Style) 'esub2acm.cls'.} +\typeout{****** Bugs/comments/suggestions to Gerry Murray -- murray@hq.acm.org ******} + +\oddsidemargin 4.5pc +\evensidemargin 4.5pc +\advance\oddsidemargin by -1in % Correct for LaTeX gratuitousness +\advance\evensidemargin by -1in % Correct for LaTeX gratuitousness +\marginparwidth 0pt % Margin pars are not allowed. +\marginparsep 11pt % Horizontal space between outer margin and + % marginal note + + % Top of page: +\topmargin 4.5pc % Nominal distance from top of page to top of + % box containing running head. +\advance\topmargin by -1in % Correct for LaTeX gratuitousness +\headheight 0pt % Height of box containing running head. +\headsep 0pt % Space between running head and text. + % Bottom of page: +\footskip 30pt % Distance from baseline of box containing foot + % to baseline of last line of text. +\@ifundefined{footheight}{\newdimen\footheight}{}% this is for LaTeX2e +\footheight 12pt % Height of box containing running foot. + + +%% Must redefine the top margin so there's room for headers and +%% page numbers if you are using the preprint option. Footers +%% are OK as is. Olin. +\advance\topmargin by -37pt % Leave 37pt above text for headers +\headheight 12pt % Height of box containing running head. +\headsep 25pt % Space between running head and text. + +\textheight 666pt % 9 1/4 column height +\textwidth 42pc % Width of text line. + % For two-column mode: +\columnsep 2pc % Space between columns +\columnseprule 0pt % Width of rule between columns. +\hfuzz 1pt % Allow some variation in column width, otherwise it's + % too hard to typeset in narrow columns. + +\footnotesep 5.6pt % Height of strut placed at the beginning of every + % footnote =3D height of normal \footnotesize strut, + % so no extra space between footnotes. + +\skip\footins 8.1pt plus 4pt minus 2pt % Space between last line of text and + % top of first footnote. +\floatsep 11pt plus 2pt minus 2pt % Space between adjacent floats moved + % to top or bottom of text page. +\textfloatsep 18pt plus 2pt minus 4pt % Space between main text and floats + % at top or bottom of page. +\intextsep 11pt plus 2pt minus 2pt % Space between in-text figures and + % text. +\@ifundefined{@maxsep}{\newdimen\@maxsep}{}% this is for LaTeX2e +\@maxsep 18pt % The maximum of \floatsep, + % \textfloatsep and \intextsep (minus + % the stretch and shrink). +\dblfloatsep 11pt plus 2pt minus 2pt % Same as \floatsep for double-column + % figures in two-column mode. +\dbltextfloatsep 18pt plus 2pt minus 4pt% \textfloatsep for double-column + % floats. +\@ifundefined{@dblmaxsep}{\newdimen\@dblmaxsep}{}% this is for LaTeX2e +\@dblmaxsep 18pt % The maximum of \dblfloatsep and + % \dbltexfloatsep. +\@fptop 0pt plus 1fil % Stretch at top of float page/column. (Must be + % 0pt plus ...) +\@fpsep 8pt plus 2fil % Space between floats on float page/column. +\@fpbot 0pt plus 1fil % Stretch at bottom of float page/column. (Must be + % 0pt plus ... ) +\@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be 0pt plus ...) +\@dblfpsep 8pt plus 2fil % Space between floats on float page. +\@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be + % 0pt plus ... ) +\marginparpush 5pt % Minimum vertical separation between two marginal + % notes. + +\parskip 0pt % Extra vertical space between paragraphs. + % Set to 0pt outside sections, to keep section heads + % uniformly spaced. The value of parskip is set + % to leading value _within_ sections. + % 12 Jan 2000 gkmt +\parindent 0pt % Width of paragraph indentation. +\partopsep 2pt plus 1pt minus 1pt% Extra vertical space, in addition to + % \parskip and \topsep, added when user + % leaves blank line before environment. + +\@lowpenalty 51 % Produced by \nopagebreak[1] or \nolinebreak[1] +\@medpenalty 151 % Produced by \nopagebreak[2] or \nolinebreak[2] +\@highpenalty 301 % Produced by \nopagebreak[3] or \nolinebreak[3] + +\@beginparpenalty -\@lowpenalty % Before a list or paragraph environment. +\@endparpenalty -\@lowpenalty % After a list or paragraph environment. +\@itempenalty -\@lowpenalty % Between list items. + +%\@namedef{ds@10pt}{\@latexerr{The `10pt' option is not allowed in the `acmconf' +\@namedef{ds@10pt}{\ClassError{The `10pt' option is not allowed in the `acmconf' % January 2008 + document style.}\@eha} +%\@namedef{ds@11pt}{\@latexerr{The `11pt' option is not allowed in the `acmconf' +\@namedef{ds@11pt}{\ClassError{The `11pt' option is not allowed in the `acmconf' % January 2008 + document style.}\@eha} +%\@namedef{ds@12pt}{\@latexerr{The `12pt' option is not allowed in the `acmconf' +\@namedef{ds@12pt}{\ClassError{The `12pt' option is not allowed in the `acmconf' % January 2008 + document style.}\@eha} + +\@options + +\lineskip 2pt % \lineskip is 1pt for all font sizes. +\normallineskip 2pt +\def\baselinestretch{1} + +\abovedisplayskip 9pt plus2pt minus4.5pt% +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus3pt% +\belowdisplayshortskip 5.4pt plus3pt minus3pt% +\let\@listi\@listI % Setting of \@listi added 9 Jun 87 + +\def\small{\@setsize\small{9pt}\viiipt\@viiipt +\abovedisplayskip 7.6pt plus 3pt minus 4pt% +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus2pt% +\belowdisplayshortskip 3.6pt plus2pt minus 2pt +\def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 +\topsep 4pt plus 2pt minus 2pt\parsep 2pt plus 1pt minus 1pt +\itemsep \parsep}} + +\def\footnotesize{\@setsize\footnotesize{9pt}\ixpt\@ixpt +\abovedisplayskip 6.4pt plus 2pt minus 4pt% +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus 1pt% +\belowdisplayshortskip 2.7pt plus 1pt minus 2pt +\def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 +\topsep 3pt plus 1pt minus 1pt\parsep 2pt plus 1pt minus 1pt +\itemsep \parsep}} + +\newcount\aucount +\newcount\originalaucount +\newdimen\auwidth +\auwidth=\textwidth +\newdimen\auskip +\newcount\auskipcount +\newdimen\auskip +\global\auskip=1pc +\newdimen\allauboxes +\allauboxes=\auwidth +\newtoks\addauthors +\newcount\addauflag +\global\addauflag=0 %Haven't shown additional authors yet + +\newtoks\subtitletext +\gdef\subtitle#1{\subtitletext={#1}} + +\gdef\additionalauthors#1{\addauthors={#1}} + +\gdef\numberofauthors#1{\global\aucount=#1 +\ifnum\aucount>3\global\originalaucount=\aucount \global\aucount=3\fi %g} % 3 OK - Gerry March 2007 +\global\auskipcount=\aucount\global\advance\auskipcount by 1 +\global\multiply\auskipcount by 2 +\global\multiply\auskip by \auskipcount +\global\advance\auwidth by -\auskip +\global\divide\auwidth by \aucount} + +% \and was modified to count the number of authors. GKMT 12 Aug 1999 +\def\alignauthor{% % \begin{tabular} +\end{tabular}% + \begin{tabular}[t]{p{\auwidth}}\centering}% + + +% *** NOTE *** NOTE *** NOTE *** NOTE *** +% If you have 'font problems' then you may need +% to change these, e.g. 'arialb' instead of "arialbd". +% Gerry Murray 11/11/1999 +% *** OR ** comment out block A and activate block B or vice versa. +% ********************************************** +% +% -- Start of block A -- (Type 1 or Truetype fonts) +%\newfont{\secfnt}{timesbd at 12pt} % was timenrb originally - now is timesbd +%\newfont{\secit}{timesbi at 12pt} %13 Jan 00 gkmt +%\newfont{\subsecfnt}{timesi at 11pt} % was timenrri originally - now is timesi +%\newfont{\subsecit}{timesbi at 11pt} % 13 Jan 00 gkmt -- was times changed to timesbi gm 2/4/2000 +% % because "normal" is italic, "italic" is Roman +%\newfont{\ttlfnt}{arialbd at 18pt} % was arialb originally - now is arialbd +%\newfont{\ttlit}{arialbi at 18pt} % 13 Jan 00 gkmt +%\newfont{\subttlfnt}{arial at 14pt} % was arialr originally - now is arial +%\newfont{\subttlit}{ariali at 14pt} % 13 Jan 00 gkmt +%\newfont{\subttlbf}{arialbd at 14pt} % 13 Jan 00 gkmt +%\newfont{\aufnt}{arial at 12pt} % was arialr originally - now is arial +%\newfont{\auit}{ariali at 12pt} % 13 Jan 00 gkmt +%\newfont{\affaddr}{arial at 10pt} % was arialr originally - now is arial +%\newfont{\affaddrit}{ariali at 10pt} %13 Jan 00 gkmt +%\newfont{\eaddfnt}{arial at 12pt} % was arialr originally - now is arial +%\newfont{\ixpt}{times at 9pt} % was timenrr originally - now is times +%\newfont{\confname}{timesi at 8pt} % was timenrri - now is timesi +%\newfont{\crnotice}{times at 8pt} % was timenrr originally - now is times +%\newfont{\ninept}{times at 9pt} % was timenrr originally - now is times +% ********************************************* +% -- End of block A -- +% +% +% -- Start of block B -- UPDATED FONT NAMES +% ********************************************* +% Gerry Murray 11/30/2006 +% ********************************************* +\newfont{\secfnt}{ptmb8t at 12pt} +\newfont{\secit}{ptmbi8t at 12pt} %13 Jan 00 gkmt +\newfont{\subsecfnt}{ptmri8t at 11pt} +\newfont{\subsecit}{ptmbi8t at 11pt} % +\newfont{\ttlfnt}{phvb8t at 18pt} +\newfont{\ttlit}{phvbo8t at 18pt} % GM 2/4/2000 +\newfont{\subttlfnt}{phvr8t at 14pt} +\newfont{\subttlit}{phvro8t at 14pt} % GM 2/4/2000 +\newfont{\subttlbf}{phvb8t at 14pt} % 13 Jan 00 gkmt +\newfont{\aufnt}{phvr8t at 12pt} +\newfont{\auit}{phvro8t at 12pt} % GM 2/4/2000 +\newfont{\affaddr}{phvr8t at 10pt} +\newfont{\affaddrit}{phvro8t at 10pt} % GM 2/4/2000 +\newfont{\eaddfnt}{phvr8t at 12pt} +\newfont{\ixpt}{ptmr8t at 9pt} +\newfont{\confname}{ptmri8t at 8pt} +\newfont{\crnotice}{ptmr8t at 8pt} +\newfont{\ninept}{ptmr8t at 9pt} +% +++++++++++++++++++++++++++++++++++++++++++++ +% -- End of block B -- + +%\def\email#1{{{\eaddfnt{\vskip 4pt#1}}}} +% If we have an email, inside a "shared affiliation" then we need the following instead +\def\email#1{{{\eaddfnt{\par #1}}}} % revised - GM - 11/30/2006 + +\def\addauthorsection{\ifnum\originalaucount>6 % was 3 - Gerry March 2007 + \section{Additional Authors}\the\addauthors + \fi} + +\newcount\savesection +\newcount\sectioncntr +\global\sectioncntr=1 + +\setcounter{secnumdepth}{3} + +\def\appendix{\par +\section*{APPENDIX} +\setcounter{section}{0} + \setcounter{subsection}{0} + \def\thesection{\Alph{section}} } + + +\leftmargini 22.5pt +\leftmarginii 19.8pt % > \labelsep + width of '(m)' +\leftmarginiii 16.8pt % > \labelsep + width of 'vii.' +\leftmarginiv 15.3pt % > \labelsep + width of 'M.' +\leftmarginv 9pt +\leftmarginvi 9pt + +\leftmargin\leftmargini +\labelsep 4.5pt +\labelwidth\leftmargini\advance\labelwidth-\labelsep + +\def\@listI{\leftmargin\leftmargini \parsep 3.6pt plus 2pt minus 1pt% +\topsep 7.2pt plus 2pt minus 4pt% +\itemsep 3.6pt plus 2pt minus 1pt} + +\let\@listi\@listI +\@listi + +\def\@listii{\leftmargin\leftmarginii + \labelwidth\leftmarginii\advance\labelwidth-\labelsep + \topsep 3.6pt plus 2pt minus 1pt + \parsep 1.8pt plus 0.9pt minus 0.9pt + \itemsep \parsep} + +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii\advance\labelwidth-\labelsep + \topsep 1.8pt plus 0.9pt minus 0.9pt + \parsep \z@ \partopsep 1pt plus 0pt minus 1pt + \itemsep \topsep} + +\def\@listiv{\leftmargin\leftmarginiv + \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} + +\def\@listv{\leftmargin\leftmarginv + \labelwidth\leftmarginv\advance\labelwidth-\labelsep} + +\def\@listvi{\leftmargin\leftmarginvi + \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} + +\def\labelenumi{\theenumi.} +\def\theenumi{\arabic{enumi}} + +\def\labelenumii{(\theenumii)} +\def\theenumii{\alph{enumii}} +\def\p@enumii{\theenumi} + +\def\labelenumiii{\theenumiii.} +\def\theenumiii{\roman{enumiii}} +\def\p@enumiii{\theenumi(\theenumii)} + +\def\labelenumiv{\theenumiv.} +\def\theenumiv{\Alph{enumiv}} +\def\p@enumiv{\p@enumiii\theenumiii} + +\def\labelitemi{$\bullet$} +\def\labelitemii{\bf --} +\def\labelitemiii{$\ast$} +\def\labelitemiv{$\cdot$} + +\def\verse{\let\\=\@centercr + \list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent + \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]} +\let\endverse\endlist + +\def\quotation{\list{}{\listparindent 1.5em + \itemindent\listparindent + \rightmargin\leftmargin \parsep 0pt plus 1pt}\item[]} +\let\endquotation=\endlist + +\def\quote{\list{}{\rightmargin\leftmargin}\item[]} +\let\endquote=\endlist + +\def\descriptionlabel#1{\hspace\labelsep \bf #1} +\def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin + \let\makelabel\descriptionlabel}} + +\let\enddescription\endlist + +\def\theequation{\arabic{equation}} + +\arraycolsep 4.5pt % Half the space between columns in an array environment. +\tabcolsep 5.4pt % Half the space between columns in a tabular environment. +\arrayrulewidth .5pt % Width of rules in array and tabular environment. % (was .4) updated Gerry March 20 2007 +\doublerulesep 1.8pt % Space between adjacent rules in array or tabular env. + +\tabbingsep \labelsep % Space used by the \' command. (See LaTeX manual.) + +\skip\@mpfootins =\skip\footins + +\fboxsep =2.7pt % Space left between box and text by \fbox and \framebox. +\fboxrule =.5pt % Width of rules in box made by \fbox and \framebox. % (was .4) updated Gerry March 20 2007 + +\def\thepart{\Roman{part}} % Roman numeral part numbers. +\def\thesection {\arabic{section}} +\def\thesubsection {\thesection.\arabic{subsection}} +%\def\thesubsubsection {\thesubsection.\arabic{subsubsection}} % GM 7/30/2002 +%\def\theparagraph {\thesubsubsection.\arabic{paragraph}} % GM 7/30/2002 +\def\thesubparagraph {\theparagraph.\arabic{subparagraph}} + +\def\@pnumwidth{1.55em} +\def\@tocrmarg {2.55em} +\def\@dotsep{4.5} +\setcounter{tocdepth}{3} + +%\def\tableofcontents{\@latexerr{\tableofcontents: Tables of contents are not +% allowed in the `acmconf' document style.}\@eha} + +\def\tableofcontents{\ClassError{% + \string\tableofcontents\space is not allowed in the `acmconf' document % January 2008 + style}\@eha} + +\def\l@part#1#2{\addpenalty{\@secpenalty} + \addvspace{2.25em plus 1pt} % space above part line + \begingroup + \@tempdima 3em % width of box holding part number, used by + \parindent \z@ \rightskip \@pnumwidth %% \numberline + \parfillskip -\@pnumwidth + {\large \bf % set line in \large boldface + \leavevmode % TeX command to enter horizontal mode. + #1\hfil \hbox to\@pnumwidth{\hss #2}}\par + \nobreak % Never break after part entry + \endgroup} + +\def\l@section#1#2{\addpenalty{\@secpenalty} % good place for page break + \addvspace{1.0em plus 1pt} % space above toc entry + \@tempdima 1.5em % width of box holding section number + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \bf % Boldface. + \leavevmode % TeX command to enter horizontal mode. + \advance\leftskip\@tempdima %% added 5 Feb 88 to conform to + \hskip -\leftskip %% 25 Jan 88 change to \numberline + #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par + \endgroup} + + +\def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}} +\def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}} +\def\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}} +\def\l@subparagraph{\@dottedtocline{5}{10em}{5em}} + +%\def\listoffigures{\@latexerr{\listoffigures: Lists of figures are not +% allowed in the `acmconf' document style.}\@eha} + +\def\listoffigures{\ClassError{% + \string\listoffigures\space is not allowed in the `acmconf' document % January 2008 + style}\@eha} + +\def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} + +%\def\listoftables{\@latexerr{\listoftables: Lists of tables are not +% allowed in the `acmconf' document style.}\@eha} +%\let\l@table\l@figure + +\def\listoftables{\ClassError{% + \string\listoftables\space is not allowed in the `acmconf' document % January 2008 + style}\@eha} + \let\l@table\l@figure + +\def\footnoterule{\kern-3\p@ + \hrule width .5\columnwidth % (was .4) updated Gerry March 20 2007 + \kern 2.6\p@} % The \hrule has default height of .4pt % (was .4) updated Gerry March 20 2007 +% ------ +\long\def\@makefntext#1{\noindent +%\hbox to .5em{\hss$^{\@thefnmark}$}#1} % original +\hbox to .5em{\hss\textsuperscript{\@thefnmark}}#1} % C. Clifton / GM Oct. 2nd. 2002 +% ------- + +\long\def\@maketntext#1{\noindent +#1} + +\long\def\@maketitlenotetext#1#2{\noindent + \hbox to 1.8em{\hss$^{#1}$}#2} + +\setcounter{topnumber}{2} +\def\topfraction{.7} +\setcounter{bottomnumber}{1} +\def\bottomfraction{.3} +\setcounter{totalnumber}{3} +\def\textfraction{.2} +\def\floatpagefraction{.5} +\setcounter{dbltopnumber}{2} +\def\dbltopfraction{.7} +\def\dblfloatpagefraction{.5} + +\long\def\@makecaption#1#2{ + \vskip \baselineskip + \setbox\@tempboxa\hbox{\textbf{#1: #2}} + \ifdim \wd\@tempboxa >\hsize % IF longer than one line: + \textbf{#1: #2}\par % THEN set as ordinary paragraph. + \else % ELSE center. + \hbox to\hsize{\hfil\box\@tempboxa\hfil}\par + \fi} + +\@ifundefined{figure}{\newcounter {figure}} % this is for LaTeX2e + +\def\fps@figure{tbp} +\def\ftype@figure{1} +\def\ext@figure{lof} +\def\fnum@figure{Figure \thefigure} +\def\figure{\@float{figure}} +%\let\endfigure\end@float +\def\endfigure{\end@float} % Gerry January 2008 +\@namedef{figure*}{\@dblfloat{figure}} +\@namedef{endfigure*}{\end@dblfloat} + +\@ifundefined{table}{\newcounter {table}} % this is for LaTeX2e + +\def\fps@table{tbp} +\def\ftype@table{2} +\def\ext@table{lot} +\def\fnum@table{Table \thetable} +\def\table{\@float{table}} +%\let\endtable\end@float +\def\endtable{\end@float} % Gerry January 2008 +\@namedef{table*}{\@dblfloat{table}} +\@namedef{endtable*}{\end@dblfloat} + +\newtoks\titleboxnotes +\newcount\titleboxnoteflag + +\def\maketitle{\par + \begingroup + \def\thefootnote{\fnsymbol{footnote}} + \def\@makefnmark{\hbox + to 0pt{$^{\@thefnmark}$\hss}} + \twocolumn[\@maketitle] +\@thanks + \endgroup + \setcounter{footnote}{0} + \let\maketitle\relax + \let\@maketitle\relax + \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\gdef\@subtitle{}\let\thanks\relax + \@copyrightspace} + +%% CHANGES ON NEXT LINES +\newif\if@ll % to record which version of LaTeX is in use + +\expandafter\ifx\csname LaTeXe\endcsname\relax % LaTeX2.09 is used +\else% LaTeX2e is used, so set ll to true +\global\@lltrue +\fi + +\if@ll + \NeedsTeXFormat{LaTeX2e} + \ProvidesClass{acm_proc_article-sp} [2009/04/22 - V3.2SP - based on esub2acm.sty <23 April 96>] + \RequirePackage{latexsym}% QUERY: are these two really needed? + \let\dooptions\ProcessOptions +\else + \let\dooptions\@options +\fi +%% END CHANGES + +\def\@height{height} +\def\@width{width} +\def\@minus{minus} +\def\@plus{plus} +\def\hb@xt@{\hbox to} +\newif\if@faircopy +\@faircopyfalse +\def\ds@faircopy{\@faircopytrue} + +\def\ds@preprint{\@faircopyfalse} + +\@twosidetrue +\@mparswitchtrue +\def\ds@draft{\overfullrule 5\p@} +%% CHANGE ON NEXT LINE +\dooptions + +\lineskip \p@ +\normallineskip \p@ +\def\baselinestretch{1} +\def\@ptsize{0} %needed for amssymbols.sty + +%% CHANGES ON NEXT LINES +\if@ll% allow use of old-style font change commands in LaTeX2e +\@maxdepth\maxdepth +% +\DeclareOldFontCommand{\rm}{\ninept\rmfamily}{\mathrm} +\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} +\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} +\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} +\DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}} +\DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}} +\fi +% +\if@ll + \renewcommand{\rmdefault}{cmr} % was 'ttm' +% Note! I have also found 'mvr' to work ESPECIALLY well. +% Gerry - October 1999 +% You may need to change your LV1times.fd file so that sc is +% mapped to cmcsc - -for smallcaps -- that is if you decide +% to change {cmr} to {times} above. (Not recommended) + \renewcommand{\@ptsize}{} + \renewcommand{\normalsize}{% + \@setfontsize\normalsize\@ixpt{10.5\p@}%\ninept% + \abovedisplayskip 6\p@ \@plus2\p@ \@minus\p@ + \belowdisplayskip \abovedisplayskip + \abovedisplayshortskip 6\p@ \@minus 3\p@ + \belowdisplayshortskip 6\p@ \@minus 3\p@ + \let\@listi\@listI + } +\else + \def\@normalsize{%changed next to 9 from 10 + \@setsize\normalsize{9\p@}\ixpt\@ixpt + \abovedisplayskip 6\p@ \@plus2\p@ \@minus\p@ + \belowdisplayskip \abovedisplayskip + \abovedisplayshortskip 6\p@ \@minus 3\p@ + \belowdisplayshortskip 6\p@ \@minus 3\p@ + \let\@listi\@listI + }% +\fi +\if@ll + \newcommand\scriptsize{\@setfontsize\scriptsize\@viipt{8\p@}} + \newcommand\tiny{\@setfontsize\tiny\@vpt{6\p@}} + \newcommand\large{\@setfontsize\large\@xiipt{14\p@}} + \newcommand\Large{\@setfontsize\Large\@xivpt{18\p@}} + \newcommand\LARGE{\@setfontsize\LARGE\@xviipt{20\p@}} + \newcommand\huge{\@setfontsize\huge\@xxpt{25\p@}} + \newcommand\Huge{\@setfontsize\Huge\@xxvpt{30\p@}} +\else + \def\scriptsize{\@setsize\scriptsize{8\p@}\viipt\@viipt} + \def\tiny{\@setsize\tiny{6\p@}\vpt\@vpt} + \def\large{\@setsize\large{14\p@}\xiipt\@xiipt} + \def\Large{\@setsize\Large{18\p@}\xivpt\@xivpt} + \def\LARGE{\@setsize\LARGE{20\p@}\xviipt\@xviipt} + \def\huge{\@setsize\huge{25\p@}\xxpt\@xxpt} + \def\Huge{\@setsize\Huge{30\p@}\xxvpt\@xxvpt} +\fi +\normalsize + +% make aubox hsize/number of authors up to 3, less gutter +% then showbox gutter showbox gutter showbox -- GKMT Aug 99 +\newbox\@acmtitlebox +\def\@maketitle{\newpage + \null + \setbox\@acmtitlebox\vbox{% +\baselineskip 20pt +\vskip 2em % Vertical space above title. + \begin{center} + {\ttlfnt \@title\par} % Title set in 18pt Helvetica (Arial) bold size. + \vskip 1.5em % Vertical space after title. +%This should be the subtitle. +{\subttlfnt \the\subtitletext\par}\vskip 1.25em%\fi + {\baselineskip 16pt\aufnt % each author set in \12 pt Arial, in a + \lineskip .5em % tabular environment + \begin{tabular}[t]{c}\@author + \end{tabular}\par} + \vskip 1.5em % Vertical space after author. + \end{center}} + \dimen0=\ht\@acmtitlebox + \advance\dimen0 by -12.75pc\relax % Increased space for title box -- KBT + \unvbox\@acmtitlebox + \ifdim\dimen0<0.0pt\relax\vskip-\dimen0\fi} + + +\newcount\titlenotecount +\global\titlenotecount=0 +\newtoks\tntoks +\newtoks\tntokstwo +\newtoks\tntoksthree +\newtoks\tntoksfour +\newtoks\tntoksfive + +\def\abstract{ +\ifnum\titlenotecount>0 % was =1 + \insert\footins{% + \reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + }% + \color@begingroup +\ifnum\titlenotecount=1 + \@maketntext{% + \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\@finalstrut\strutbox}% +\fi +\ifnum\titlenotecount=2 + \@maketntext{% + \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\@finalstrut\strutbox}% +\fi +\ifnum\titlenotecount=3 + \@maketntext{% + \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\@finalstrut\strutbox}% +\fi +\ifnum\titlenotecount=4 + \@maketntext{% + \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\S$}\rule\z@\footnotesep\ignorespaces\the\tntoksfour\@finalstrut\strutbox}% +\fi +\ifnum\titlenotecount=5 + \@maketntext{% + \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\S$}\rule\z@\footnotesep\ignorespaces\the\tntoksfour\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\P$}\rule\z@\footnotesep\ignorespaces\the\tntoksfive\@finalstrut\strutbox}% +\fi + \color@endgroup} %g} +\fi +\setcounter{footnote}{0} +\section*{ABSTRACT}\normalsize %\the\parskip \the\baselineskip%\ninept +} + +\def\endabstract{\if@twocolumn\else\endquotation\fi} + +\def\keywords{\if@twocolumn +\section*{Keywords} +\else \small +\quotation +\fi} + +% I've pulled the check for 2 cols, since proceedings are _always_ +% two-column 11 Jan 2000 gkmt +\def\terms{%\if@twocolumn +\section*{General Terms} +%\else \small +%\quotation\the\parskip +%\fi} +} + +% -- Classification needs to be a bit smart due to optionals - Gerry/Georgia November 2nd. 1999 +\newcount\catcount +\global\catcount=1 + +\def\category#1#2#3{% +\ifnum\catcount=1 +\section*{Categories and Subject Descriptors} +\advance\catcount by 1\else{\unskip; }\fi + \@ifnextchar [{\@category{#1}{#2}{#3}}{\@category{#1}{#2}{#3}[]}% +} + +\def\@category#1#2#3[#4]{% + \begingroup + \let\and\relax + #1 [\textbf{#2}]% + \if!#4!% + \if!#3!\else : #3\fi + \else + :\space + \if!#3!\else #3\kern\z@---\hskip\z@\fi + \textit{#4}% + \fi + \endgroup +} +% + +%%% This section (written by KBT) handles the 1" box in the lower left +%%% corner of the left column of the first page by creating a picture, +%%% and inserting the predefined string at the bottom (with a negative +%%% displacement to offset the space allocated for a non-existent +%%% caption). +%%% +\newtoks\copyrightnotice +\def\ftype@copyrightbox{8} +\def\@copyrightspace{ +\@float{copyrightbox}[b] +\begin{center} +\setlength{\unitlength}{1pc} +\begin{picture}(20,6) %Space for copyright notice +\put(0,-0.95){\crnotice{\@toappear}} +\end{picture} +\end{center} +\end@float} + +\def\@toappear{} % Default setting blank - commands below change this. +\long\def\toappear#1{\def\@toappear{\parbox[b]{20pc}{\baselineskip 9pt#1}}} +\def\toappearbox#1{\def\@toappear{\raisebox{5pt}{\framebox[20pc]{\parbox[b]{19pc}{#1}}}}} + +\newtoks\conf +\newtoks\confinfo +\def\conferenceinfo#1#2{\global\conf={#1}\global\confinfo{#2}} + + +%\def\marginpar{\@latexerr{The \marginpar command is not allowed in the +% `acmconf' document style.}\@eha} + +\def\marginpar{\ClassError{% + \string\marginpar\space is not allowed in the `acmconf' document % January 2008 + style}\@eha} + +\mark{{}{}} % Initializes TeX's marks + +\def\today{\ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space\number\day, \number\year} + +\def\@begintheorem#1#2{% + \trivlist + \item[% + \hskip 10\p@ + \hskip \labelsep + {{\sc #1}\hskip 5\p@\relax#2.}% + ] + \it +} +\def\@opargbegintheorem#1#2#3{% + \trivlist + \item[% + \hskip 10\p@ + \hskip \labelsep + {\sc #1\ #2\ % This mod by Gerry to enumerate corollaries + \setbox\@tempboxa\hbox{(#3)} % and bracket the 'corollary title' + \ifdim \wd\@tempboxa>\z@ % and retain the correct numbering of e.g. theorems + \hskip 5\p@\relax % if they occur 'around' said corollaries. + \box\@tempboxa % Gerry - Nov. 1999. + \fi.}% + ] + \it +} +\newif\if@qeded +\global\@qededfalse + +% -- original +%\def\proof{% +% \vspace{-\parskip} % GM July 2000 (for tighter spacing) +% \global\@qededfalse +% \@ifnextchar[{\@xproof}{\@proof}% +%} +% -- end of original + +% (JSS) Fix for vertical spacing bug - Gerry Murray July 30th. 2002 +\def\proof{% +\vspace{-\lastskip}\vspace{-\parsep}\penalty-51% +\global\@qededfalse +\@ifnextchar[{\@xproof}{\@proof}% +} + +\def\endproof{% + \if@qeded\else\qed\fi + \endtrivlist +} +\def\@proof{% + \trivlist + \item[% + \hskip 10\p@ + \hskip \labelsep + {\sc Proof.}% + ] + \ignorespaces +} +\def\@xproof[#1]{% + \trivlist + \item[\hskip 10\p@\hskip \labelsep{\sc Proof #1.}]% + \ignorespaces +} +\def\qed{% + \unskip + \kern 10\p@ + \begingroup + \unitlength\p@ + \linethickness{.4\p@}% + \framebox(6,6){}% + \endgroup + \global\@qededtrue +} + +\def\newdef#1#2{% + \expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}% + \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}% + \global\@namedef{#1}{\@defthm{#1}{#2}}% + \global\@namedef{end#1}{\@endtheorem}% + }% +} +\def\@defthm#1#2{% + \refstepcounter{#1}% + \@ifnextchar[{\@ydefthm{#1}{#2}}{\@xdefthm{#1}{#2}}% +} +\def\@xdefthm#1#2{% + \@begindef{#2}{\csname the#1\endcsname}% + \ignorespaces +} +\def\@ydefthm#1#2[#3]{% + \trivlist + \item[% + \hskip 10\p@ + \hskip \labelsep + {\it #2% +% \savebox\@tempboxa{#3}% + \saveb@x\@tempboxa{#3}% % January 2008 + \ifdim \wd\@tempboxa>\z@ + \ \box\@tempboxa + \fi.% + }]% + \ignorespaces +} +\def\@begindef#1#2{% + \trivlist + \item[% + \hskip 10\p@ + \hskip \labelsep + {\it #1\ \rm #2.}% + ]% +} +\def\theequation{\arabic{equation}} + +\newcounter{part} +\newcounter{section} +\newcounter{subsection}[section] +\newcounter{subsubsection}[subsection] +\newcounter{paragraph}[subsubsection] +\def\thepart{\Roman{part}} +\def\thesection{\arabic{section}} +\def\thesubsection{\thesection.\arabic{subsection}} +\def\thesubsubsection{\thesubsection.\arabic{subsubsection}} %removed \subsecfnt 29 July 2002 gkmt +\def\theparagraph{\thesubsubsection.\arabic{paragraph}} %removed \subsecfnt 29 July 2002 gkmt + +\newif\if@uchead +\@ucheadfalse + +%% CHANGES: NEW NOTE +%% NOTE: OK to use old-style font commands below, since they were +%% suitably redefined for LaTeX2e +%% END CHANGES +\setcounter{secnumdepth}{3} +\def\part{% + \@startsection{part}{9}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@} + {4\p@}{\normalsize\@ucheadtrue}% +} + +% Rationale for changes made in next four definitions: +% "Before skip" is made elastic to provide some give in setting columns (vs. +% parskip, which is non-elastic to keep section headers "anchored" to their +% subsequent text. +% +% "After skip" is minimized -- BUT setting it to 0pt resulted in run-in heads, despite +% the documentation asserted only after-skip < 0pt would have result. +% +% Baselineskip added to style to ensure multi-line section titles, and section heads +% followed by another section head rather than text, are decently spaced vertically. +% 12 Jan 2000 gkmt +\def\section{% + \@startsection{section}{1}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@}% + {0.5pt}{\baselineskip=14pt\secfnt\@ucheadtrue}% +} + +\def\subsection{% + \@startsection{subsection}{2}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@} + {0.5pt}{\baselineskip=14pt\secfnt}% +} +\def\subsubsection{% + \@startsection{subsubsection}{3}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@}% + {0.5pt}{\baselineskip=14pt\subsecfnt}% +} + +%\def\paragraph{% +% \vskip 12pt\@startsection{paragraph}{3}{\z@}{6\p@ \@plus \p@}% original +% {-5\p@}{\subsecfnt}% +%} +% If one wants sections, subsections and subsubsections numbered, +% but not paragraphs, one usually sets secnumepth to 3. +% For that, the "depth" of paragraphs must be given correctly +% in the definition (``4'' instead of ``3'' as second argument +% of @startsection): +\def\paragraph{% + \vskip 12pt\@startsection{paragraph}{4}{\z@}{6\p@ \@plus \p@}% % GM and Wolfgang May - 11/30/06 + {-5\p@}{\subsecfnt}% +} + +\let\@period=. +\def\@startsection#1#2#3#4#5#6{% + \if@noskipsec %gkmt, 11 aug 99 + \global\let\@period\@empty + \leavevmode + \global\let\@period.% + \fi + \par + \@tempskipa #4\relax + \@afterindenttrue + \ifdim \@tempskipa <\z@ + \@tempskipa -\@tempskipa + \@afterindentfalse + \fi + %\if@nobreak 11 Jan 00 gkmt + %\everypar{} + %\else + \addpenalty\@secpenalty + \addvspace\@tempskipa + %\fi + \parskip=0pt + \@ifstar + {\@ssect{#3}{#4}{#5}{#6}} + {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}% +} + + +\def\@ssect#1#2#3#4#5{% + \@tempskipa #3\relax + \ifdim \@tempskipa>\z@ + \begingroup + #4{% + \@hangfrom{\hskip #1}% + \interlinepenalty \@M #5\@@par}% + \endgroup + \else + \def\@svsechd{#4{\hskip #1\relax #5}}% + \fi + \vskip -10.5pt %gkmt, 7 jan 00 -- had been -14pt, now set to parskip + \@xsect{#3}\parskip=10.5pt} % within the starred section, parskip = leading 12 Jan 2000 gkmt + + +\def\@sect#1#2#3#4#5#6[#7]#8{% + \ifnum #2>\c@secnumdepth + \let\@svsec\@empty + \else + \refstepcounter{#1}% + \edef\@svsec{% + \begingroup + %\ifnum#2>2 \noexpand\rm \fi % changed to next 29 July 2002 gkmt + \ifnum#2>2 \noexpand#6 \fi + \csname the#1\endcsname + \endgroup + \ifnum #2=1\relax .\fi + \hskip 1em + }% + \fi + \@tempskipa #5\relax + \ifdim \@tempskipa>\z@ + \begingroup + #6\relax + \@hangfrom{\hskip #3\relax\@svsec}% + \begingroup + \interlinepenalty \@M + \if@uchead + \uppercase{#8}% + \else + #8% + \fi + \par + \endgroup + \endgroup + \csname #1mark\endcsname{#7}% + \vskip -10.5pt % -14pt gkmt, 11 aug 99 -- changed to -\parskip 11 Jan 2000 + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7% + }% + \else + \def\@svsechd{% + #6% + \hskip #3\relax + \@svsec + \if@uchead + \uppercase{#8}% + \else + #8% + \fi + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7% + }% + }% + \fi + \@xsect{#5}\parskip=10.5pt% within the section, parskip = leading 12 Jan 2000 gkmt +} +\def\@xsect#1{% + \@tempskipa #1\relax + \ifdim \@tempskipa>\z@ + \par + \nobreak + \vskip \@tempskipa + \@afterheading + \else + \global\@nobreakfalse + \global\@noskipsectrue + \everypar{% + \if@noskipsec + \global\@noskipsecfalse + \clubpenalty\@M + \hskip -\parindent + \begingroup + \@svsechd + \@period + \endgroup + \unskip + \@tempskipa #1\relax + \hskip -\@tempskipa + \else + \clubpenalty \@clubpenalty + \everypar{}% + \fi + }% + \fi + \ignorespaces +} + +\def\@trivlist{% + \@topsepadd\topsep + \if@noskipsec + \global\let\@period\@empty + \leavevmode + \global\let\@period.% + \fi + \ifvmode + \advance\@topsepadd\partopsep + \else + \unskip + \par + \fi + \if@inlabel + \@noparitemtrue + \@noparlisttrue + \else + \@noparlistfalse + \@topsep\@topsepadd + \fi + \advance\@topsep \parskip + \leftskip\z@skip + \rightskip\@rightskip + \parfillskip\@flushglue + \@setpar{\if@newlist\else{\@@par}\fi} + \global\@newlisttrue + \@outerparskip\parskip +} + +%%% Actually, 'abbrev' works just fine as the default - Gerry Feb. 2000 +%%% Bibliography style. + +\parindent 0pt +\typeout{Using 'Abbrev' bibliography style} +\newcommand\bibyear[2]{% + \unskip\quad\ignorespaces#1\unskip + \if#2..\quad \else \quad#2 \fi +} +\newcommand{\bibemph}[1]{{\em#1}} +\newcommand{\bibemphic}[1]{{\em#1\/}} +\newcommand{\bibsc}[1]{{\sc#1}} +\def\@normalcite{% + \def\@cite##1##2{[##1\if@tempswa , ##2\fi]}% +} +\def\@citeNB{% + \def\@cite##1##2{##1\if@tempswa , ##2\fi}% +} +\def\@citeRB{% + \def\@cite##1##2{##1\if@tempswa , ##2\fi]}% +} +\def\start@cite#1#2{% + \edef\citeauthoryear##1##2##3{% + ###1% + \ifnum#2=\z@ \else\ ###2\fi + }% + \ifnum#1=\thr@@ + \let\@@cite\@citeyear + \else + \let\@@cite\@citenormal + \fi + \@ifstar{\@citeNB\@@cite}{\@normalcite\@@cite}% +} +%\def\cite{\start@cite23} +\DeclareRobustCommand\cite{\start@cite23} % January 2008 +\def\citeNP{\cite*} % No Parentheses e.g. 5 +%\def\citeA{\start@cite10} +\DeclareRobustCommand\citeA{\start@cite10} % January 2008 +\def\citeANP{\citeA*} +%\def\shortcite{\start@cite23} +\DeclareRobustCommand\shortcite{\start@cite23} % January 2008 +\def\shortciteNP{\shortcite*} +%\def\shortciteA{\start@cite20} +\DeclareRobustCommand\shortciteA{\start@cite20} % January 2008 +\def\shortciteANP{\shortciteA*} +%\def\citeyear{\start@cite30} +\DeclareRobustCommand\citeyear{\start@cite30} % January 2008 +\def\citeyearNP{\citeyear*} +%\def\citeN{% +\DeclareRobustCommand\citeN{% % January 2008 + \@citeRB + \def\citeauthoryear##1##2##3{##1\ [##3% + \def\reserved@a{##1}% + \def\citeauthoryear####1####2####3{% + \def\reserved@b{####1}% + \ifx\reserved@a\reserved@b + ####3% + \else + \errmessage{Package acmart Error: author mismatch + in \string\citeN^^J^^J% + See the acmart package documentation for explanation}% + \fi + }% + }% + \@ifstar\@citeyear\@citeyear +} +%\def\shortciteN{% +\DeclareRobustCommand\shortciteN{% % January 2008 + \@citeRB + \def\citeauthoryear##1##2##3{##2\ [##3% + \def\reserved@a{##2}% + \def\citeauthoryear####1####2####3{% + \def\reserved@b{####2}% + \ifx\reserved@a\reserved@b + ####3% + \else + \errmessage{Package acmart Error: author mismatch + in \string\shortciteN^^J^^J% + See the acmart package documentation for explanation}% + \fi + }% + }% + \@ifstar\@citeyear\@citeyear % changed from "\@ifstart" 12 Jan 2000 gkmt +} + +\def\@citenormal{% + \@ifnextchar [{\@tempswatrue\@citex;}% +% original {\@tempswafalse\@citex,[]}% was ; Gerry 2/24/00 +{\@tempswafalse\@citex[]}% % GERRY FIX FOR BABEL 3/20/2009 +} + +\def\@citeyear{% + \@ifnextchar [{\@tempswatrue\@citex,}% +% original {\@tempswafalse\@citex,[]}% +{\@tempswafalse\@citex[]}% % GERRY FIX FOR BABEL 3/20/2009 +} + +\def\@citex#1[#2]#3{% + \let\@citea\@empty + \@cite{% + \@for\@citeb:=#3\do{% + \@citea +% original \def\@citea{#1 }% + \def\@citea{#1, }% % GERRY FIX FOR BABEL 3/20/2009 -- SO THAT YOU GET [1, 2] IN THE BODY TEXT + \edef\@citeb{\expandafter\@iden\@citeb}% + \if@filesw + \immediate\write\@auxout{\string\citation{\@citeb}}% + \fi + \@ifundefined{b@\@citeb}{% + {\bf ?}% + \@warning{% + Citation `\@citeb' on page \thepage\space undefined% + }% + }% + {\csname b@\@citeb\endcsname}% + }% + }{#2}% +} +%\let\@biblabel\@gobble % Dec. 2008 - Gerry +% ---- +\def\@biblabelnum#1{[#1]} % Gerry's solution #1 - for Natbib +\let\@biblabel=\@biblabelnum % Gerry's solution #1 - for Natbib +\def\newblock{\relax} % Gerry Dec. 2008 +% --- +\newdimen\bibindent +\setcounter{enumi}{1} +\bibindent=0em +\def\thebibliography#1{% +\ifnum\addauflag=0\addauthorsection\global\addauflag=1\fi + \section[References]{% <=== OPTIONAL ARGUMENT ADDED HERE + {References} % was uppercased but this affects pdf bookmarks (SP/GM October 2004) + \@mkboth{{\refname}}{{\refname}}% + }% + \list{[\arabic{enumi}]}{% + \settowidth\labelwidth{[#1]}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \advance\leftmargin\bibindent + \parsep=0pt\itemsep=1pt % GM July 2000 + \itemindent -\bibindent + \listparindent \itemindent + \usecounter{enumi} + }% + \let\newblock\@empty + \raggedright % GM July 2000 + \sloppy + \sfcode`\.=1000\relax +} + + +\gdef\balancecolumns +{\vfill\eject +\global\@colht=\textheight +\global\ht\@cclv=\textheight +} + +\newcount\colcntr +\global\colcntr=0 +%\newbox\savebox +\newbox\saveb@x % January 2008 + +\gdef \@makecol {% +\global\advance\colcntr by 1 +\ifnum\colcntr>2 \global\colcntr=1\fi + \ifvoid\footins + \setbox\@outputbox \box\@cclv + \else + \setbox\@outputbox \vbox{% +\boxmaxdepth \@maxdepth + \@tempdima\dp\@cclv + \unvbox \@cclv + \vskip-\@tempdima + \vskip \skip\footins + \color@begingroup + \normalcolor + \footnoterule + \unvbox \footins + \color@endgroup + }% + \fi + \xdef\@freelist{\@freelist\@midlist}% + \global \let \@midlist \@empty + \@combinefloats + \ifvbox\@kludgeins + \@makespecialcolbox + \else + \setbox\@outputbox \vbox to\@colht {% +\@texttop + \dimen@ \dp\@outputbox + \unvbox \@outputbox + \vskip -\dimen@ + \@textbottom + }% + \fi + \global \maxdepth \@maxdepth +} +\def\titlenote{\@ifnextchar[\@xtitlenote{\stepcounter\@mpfn +\global\advance\titlenotecount by 1 +\ifnum\titlenotecount=1 + \raisebox{9pt}{$\ast$} +\fi +\ifnum\titlenotecount=2 + \raisebox{9pt}{$\dagger$} +\fi +\ifnum\titlenotecount=3 + \raisebox{9pt}{$\ddagger$} +\fi +\ifnum\titlenotecount=4 +\raisebox{9pt}{$\S$} +\fi +\ifnum\titlenotecount=5 +\raisebox{9pt}{$\P$} +\fi + \@titlenotetext +}} + +\long\def\@titlenotetext#1{\insert\footins{% +\ifnum\titlenotecount=1\global\tntoks={#1}\fi +\ifnum\titlenotecount=2\global\tntokstwo={#1}\fi +\ifnum\titlenotecount=3\global\tntoksthree={#1}\fi +\ifnum\titlenotecount=4\global\tntoksfour={#1}\fi +\ifnum\titlenotecount=5\global\tntoksfive={#1}\fi + \reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + }% + \color@begingroup + \color@endgroup}} + +%%%%%%%%%%%%%%%%%%%%%%%%% +\ps@plain +\baselineskip=11pt +\let\thepage\relax % For NO page numbers - Gerry Nov. 30th. 1999 +\def\setpagenumber#1{\global\setcounter{page}{#1}} +%\pagenumbering{arabic} % Arabic page numbers but commented out for NO page numbes - Gerry Nov. 30th. 1999 +\twocolumn % Double column. +\flushbottom % Even bottom -- alas, does not balance columns at end of document +\pagestyle{plain} + +% Need Copyright Year and Copyright Data to be user definable (in .tex file). +% Gerry Nov. 30th. 1999 +\newtoks\copyrtyr +\newtoks\acmcopyr +\newtoks\boilerplate +\def\CopyrightYear#1{\global\copyrtyr{#1}} +\def\crdata#1{\global\acmcopyr{#1}} +\def\permission#1{\global\boilerplate{#1}} +% +\newtoks\copyrightetc +\global\copyrightetc{\ } % Need to have 'something' so that adequate space is left for pasting in a line if "confinfo" is supplied. + +\toappear{\the\boilerplate\par +{\confname{\the\conf}} \the\confinfo\par \the\copyrightetc} +% End of ACM_PROC_ARTICLE-SP.CLS -- V3.2SP - 04/22/2009 -- +% Gerry Murray -- Wednesday April 22nd. 2009 +% +% The following section (i.e. 3 .sty inclusions) was added in May 2007 so as to fix the problems that many +% authors were having with accents. Sometimes accents would occur, but the letter-character would be of a different +% font. Conversely the letter-character font would be correct but, e.g. a 'bar' would appear superimposed on the +% character instead of, say, an unlaut/diaresis. Sometimes the letter-character would NOT appear at all. +% Using [T1]{fontenc} outright was not an option as this caused 99% of the authors to 'produce' a Type-3 (bitmapped) +% PDF file - useless for production. +% +% For proper (font) accenting we NEED these packages to be part of the .cls file i.e. 'ae', 'aecompl' and 'aeguil' +% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +%% This is file `ae.sty' +\def\fileversion{1.3} +\def\filedate{2001/02/12} +\NeedsTeXFormat{LaTeX2e} +%\ProvidesPackage{ae}[\filedate\space\fileversion\space % GM +% Almost European Computer Modern] % GM - keeping the log file clean(er) +\newif\if@ae@slides \@ae@slidesfalse +\DeclareOption{slides}{\@ae@slidestrue} +\ProcessOptions +\fontfamily{aer} +\RequirePackage[T1]{fontenc} +\if@ae@slides + \renewcommand{\sfdefault}{laess} + \renewcommand{\rmdefault}{laess} % no roman + \renewcommand{\ttdefault}{laett} +\else + \renewcommand{\sfdefault}{aess} + \renewcommand{\rmdefault}{aer} + \renewcommand{\ttdefault}{aett} +\fi +\endinput +%% +%% End of file `ae.sty'. +% +% +\def\fileversion{0.9} +\def\filedate{1998/07/23} +\NeedsTeXFormat{LaTeX2e} +%\ProvidesPackage{aecompl}[\filedate\space\fileversion\space % GM +%T1 Complements for AE fonts (D. Roegel)] % GM -- keeping the log file clean(er) + +\def\@ae@compl#1{{\fontencoding{T1}\fontfamily{cmr}\selectfont\symbol{#1}}} +\def\guillemotleft{\@ae@compl{19}} +\def\guillemotright{\@ae@compl{20}} +\def\guilsinglleft{\@ae@compl{14}} +\def\guilsinglright{\@ae@compl{15}} +\def\TH{\@ae@compl{222}} +\def\NG{\@ae@compl{141}} +\def\ng{\@ae@compl{173}} +\def\th{\@ae@compl{254}} +\def\DJ{\@ae@compl{208}} +\def\dj{\@ae@compl{158}} +\def\DH{\@ae@compl{208}} +\def\dh{\@ae@compl{240}} +\def\@perthousandzero{\@ae@compl{24}} +\def\textperthousand{\%\@perthousandzero} +\def\textpertenthousand{\%\@perthousandzero\@perthousandzero} +\endinput +% +% +%% This is file `aeguill.sty' +% This file gives french guillemets (and not guillemots!) +% built with the Polish CMR fonts (default), WNCYR fonts, the LASY fonts +% or with the EC fonts. +% This is useful in conjunction with the ae package +% (this package loads the ae package in case it has not been loaded) +% and with or without the french(le) package. +% +% In order to get the guillemets, it is necessary to either type +% \guillemotleft and \guillemotright, or to use an 8 bit encoding +% (such as ISO-Latin1) which selects these two commands, +% or, if you use the french package (but not the frenchle package), +% to type << or >>. +% +% By default, you get the Polish CMR guillemets; if this package is loaded +% with the `cm' option, you get the LASY guillemets; with `ec,' you +% get the EC guillemets, and with `cyr,' you get the cyrillic guillemets. +% +% In verbatim mode, you always get the EC/TT guillemets. +% +% The default option is interesting in conjunction with PDF, +% because there is a Type 1 version of the Polish CMR fonts +% and these guillemets are very close in shape to the EC guillemets. +% There are no free Type 1 versions of the EC fonts. +% +% Support for Polish CMR guillemets was kindly provided by +% Rolf Niepraschk in version 0.99 (2000/05/22). +% Bernd Raichle provided extensive simplifications to the code +% for version 1.00. +% +% This package is released under the LPPL. +% +% Changes: +% Date version +% 2001/04/12 1.01 the frenchle and french package are now distinguished. +% +\def\fileversion{1.01} +\def\filedate{2001/04/12} +\NeedsTeXFormat{LaTeX2e} +%\ProvidesPackage{aeguill}[2001/04/12 1.01 % % GM +%AE fonts with french guillemets (D. Roegel)] % GM - keeping the log file clean(er) +%\RequirePackage{ae} % GM May 2007 - already embedded here + +\newcommand{\@ae@switch}[4]{#4} +\DeclareOption{ec}{\renewcommand\@ae@switch[4]{#1}} +\DeclareOption{cm}{\renewcommand\@ae@switch[4]{#2}} +\DeclareOption{cyr}{\renewcommand\@ae@switch[4]{#3}} +\DeclareOption{pl}{\renewcommand\@ae@switch[4]{#4}} +\ExecuteOptions{pl} +\ProcessOptions + +% +% Load necessary packages +% +\@ae@switch{% ec + % do nothing +}{% cm + \RequirePackage{latexsym}% GM - May 2007 - already 'mentioned as required' up above +}{% cyr + \RequirePackage[OT2,T1]{fontenc}% +}{% pl + \RequirePackage[OT4,T1]{fontenc}% +} + +% The following command will be compared to \frenchname, +% as defined in french.sty and frenchle.sty. +\def\aeguillfrenchdefault{french}% + +\let\guill@verbatim@font\verbatim@font +\def\verbatim@font{\guill@verbatim@font\ecguills{cmtt}% + \let\guillemotleft\@oguills\let\guillemotright\@fguills} + +\begingroup \catcode`\<=13 \catcode`\>=13 +\def\x{\endgroup + \def\ae@lfguill{<<}% + \def\ae@rfguill{>>}% +}\x + +\newcommand{\ecguills}[1]{% + \def\selectguillfont{\fontencoding{T1}\fontfamily{#1}\selectfont}% + \def\@oguills{{\selectguillfont\symbol{19}}}% + \def\@fguills{{\selectguillfont\symbol{20}}}% + } + +\newcommand{\aeguills}{% + \ae@guills + % We redefine \guillemotleft and \guillemotright + % in order to catch them when they are used + % with \DeclareInputText (in latin1.def for instance) + % We use \auxWARNINGi as a safe indicator that french.sty is used. + \gdef\guillemotleft{\ifx\auxWARNINGi\undefined + \@oguills % neither french.sty nor frenchle.sty + \else + \ifx\aeguillfrenchdefault\frenchname + \ae@lfguill % french.sty + \else + \@oguills % frenchle.sty + \fi + \fi}% + \gdef\guillemotright{\ifx\auxWARNINGi\undefined + \@fguills % neither french.sty nor frenchle.sty + \else + \ifx\aeguillfrenchdefault\frenchname + \ae@rfguill % french.sty + \else + \@fguills % frenchle.sty + \fi + \fi}% + } + +% +% Depending on the class option +% define the internal command \ae@guills +\@ae@switch{% ec + \newcommand{\ae@guills}{% + \ecguills{cmr}}% +}{% cm + \newcommand{\ae@guills}{% + \def\selectguillfont{\fontencoding{U}\fontfamily{lasy}% + \fontseries{m}\fontshape{n}\selectfont}% + \def\@oguills{\leavevmode\nobreak + \hbox{\selectguillfont (\kern-.20em(\kern.20em}\nobreak}% + \def\@fguills{\leavevmode\nobreak + \hbox{\selectguillfont \kern.20em)\kern-.2em)}% + \ifdim\fontdimen\@ne\font>\z@\/\fi}}% +}{% cyr + \newcommand{\ae@guills}{% + \def\selectguillfont{\fontencoding{OT2}\fontfamily{wncyr}\selectfont}% + \def\@oguills{{\selectguillfont\symbol{60}}}% + \def\@fguills{{\selectguillfont\symbol{62}}}} +}{% pl + \newcommand{\ae@guills}{% + \def\selectguillfont{\fontencoding{OT4}\fontfamily{cmr}\selectfont}% + \def\@oguills{{\selectguillfont\symbol{174}}}% + \def\@fguills{{\selectguillfont\symbol{175}}}} +} + + +\AtBeginDocument{% + \ifx\GOfrench\undefined + \aeguills + \else + \let\aeguill@GOfrench\GOfrench + \gdef\GOfrench{\aeguill@GOfrench \aeguills}% + \fi + } + +\endinput +% + + diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/emf_supersetreferences.png b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/emf_supersetreferences.png new file mode 100644 index 0000000..00a4b9c Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/emf_supersetreferences.png differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/flies.eps b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/flies.eps new file mode 100644 index 0000000..29e33db --- /dev/null +++ b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/flies.eps @@ -0,0 +1,8871 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: Adobe Illustrator(R) 8.0 +%%AI8_CreatorVersion: 8.0.1 +%%For: (Mark W Richards) (Association for Computing Machinery) +%%Title: (newflies.eps) +%%CreationDate: (2/9/00) (11:16 AM) +%%BoundingBox: 153 339 459 453 +%%HiResBoundingBox: 153 339.2998 459 452.6997 +%%DocumentProcessColors: Black +%%DocumentSuppliedResources: procset Adobe_level2_AI5 1.2 0 +%%+ procset Adobe_ColorImage_AI6 1.3 0 +%%+ procset Adobe_Illustrator_AI5 1.3 0 +%%+ procset Adobe_cshow 2.0 8 +%%+ procset Adobe_shading_AI8 1.0 0 +%AI5_FileFormat 4.0 +%AI3_ColorUsage: Black&White +%AI3_IncludePlacedImages +%AI7_ImageSettings: 1 +%%CMYKProcessColor: 1 1 1 1 ([Registration]) +%%AI6_ColorSeparationSet: 1 1 (AI6 Default Color Separation Set) +%%+ Options: 1 16 0 1 0 1 1 1 0 1 1 1 1 18 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 2 3 4 +%%+ PPD: 1 21 0 0 60 45 2 2 1 0 0 1 0 0 0 0 0 0 0 0 0 0 () +%AI3_TemplateBox: 306.5 395.5 306.5 395.5 +%AI3_TileBox: 13 13 599 779 +%AI3_DocumentPreview: Header +%AI5_ArtSize: 612 792 +%AI5_RulerUnits: 0 +%AI5_ArtFlags: 1 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI8_OpenToView: 83 583 2 1016 675 18 0 1 8 65 0 0 +%AI5_OpenViewLayers: 7 +%%PageOrigin:13 13 +%%AI3_PaperRect:-13 779 599 -13 +%%AI3_Margin:13 -13 -13 13 +%AI7_GridSettings: 7.2 8 7.2 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 +%AI7_Thumbnail: 128 48 8 +%%BeginBinary +%0000330000660000990000CC0033000033330033660033990033CC0033FF +%0066000066330066660066990066CC0066FF009900009933009966009999 +%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 +%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 +%3333663333993333CC3333FF3366003366333366663366993366CC3366FF +%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 +%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 +%6600666600996600CC6600FF6633006633336633666633996633CC6633FF +%6666006666336666666666996666CC6666FF669900669933669966669999 +%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 +%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF +%9933009933339933669933999933CC9933FF996600996633996666996699 +%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 +%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF +%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 +%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 +%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF +%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC +%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 +%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 +%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 +%000011111111220000002200000022222222440000004400000044444444 +%550000005500000055555555770000007700000077777777880000008800 +%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB +%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF +%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF +%524C45FDFCFFFD2BFF5227527D52FD7BFFF85227FF7D527D52FD78FFF852 +%52FD04FF7D52A8FD76FF7D527DFFA827FFFFFF7DF8FD3AFF7DF87DFD1DFF +%7D52FD1AFF7D527D52FFA8FF52A8277D7DFD38FFF8527DFD0AFF527D52FD +%11FFA852FD06FF27F8A8FD10FF277D7DFFFFFF527D52F87DFF52FD29FF7D +%FD0427F8FD07FF7D277D277DFD06FF5227277D527DFD12FFF8FD05FFA8F8 +%FD12FFA85252FD04FF527DFFFF27FF27FD28FF52277DA87DA87D527DFD04 +%FF27525252F8FD05FF277D527D275227FD12FF52FD05FFF8A8FD13FF27FF +%7D7DA8FF7D52FF52FF7DFF52FD27FF27A8527D7DA8FF7DFFA827FFFF2752 +%7D527D7DFF7DA8FF277DFFFF7D52F8FD13FFF8FD04FFF8FD16FFA8A8277D +%277DFFA8A87D527D52FD0AFFA8FD1CFF522752FFA8A87DFFA8FF7DF8277D +%525227F827FFA87D7DFF52FFFFFF27FD13FF27F8FFFFF87DFD15FF52FF52 +%7D7DA8FFFF7DA852275227FD0AFFF8FD1CFF27FF7DFF7DFF7D52A87D7D27 +%27277D522752FF52A8FFFD047DFF527DFD14FFA8F8F852FD17FFA8A827FF +%527D52A8275227F85252FD07FF52F8A8FD1CFFA87DFF7D52A8A8FFFFA852 +%52F87D527D277D52FF52FF527D527DFF7DFD14FFA8FD04F827FD16FFFD04 +%27F8F8FD04277D272727F8FD04FFF827FD20FF52FF52A852FFFFA8FFA8F8 +%27527D7D7D27FFFFA8FFA87D7DFFFF52FD15FFFD04F87DFD13FFA8272752 +%52277D277D5227525227F827FD04F87DF8A8FD22FF52A87D5252A852A8A8 +%F8525252277D52A8A8527DFFA852FF52A8FD14FF27277D527D2727FD11FF +%F827277D27527D527D27F8527D522752FF7D27F8F8F87DFD19FF7D277DFD +%07FFA87D7DFF7D277D7DA82727527D277DF87D7D7D527D27277D27FD14FF +%F8525227A852F852F8FD0FFF52FF52527D52A8527D52A8A8FD04527D277D +%52F8F8F8FD18FF52A852A852A8FD07FFF8FFFF52A8A87D525252F852F852 +%F8FFA8A8A8527D527DFD13FF5227522752FF522727F87D27FD0EFFF8F852 +%27FF7D2727277D277D52A827277D7DFF7DFD04F8FD15FFA852A8FF7D7D7D +%52FD08FF2752FF7D2752F8272727F8522727A8FF7DFFFF27A852FD12FF52 +%7D7D52F827277D5227F852A827FD0EFFA8F8277D527D277D5227F87DFD09 +%F8A87DF8F8FD12FFF8A8FF7DFF527D52A8FD09FF7DFF52A87D277D277D27 +%7D52277D7D527D7D7DF8FD12FF27FF277DF87DF87D522727F827FF7D27FD +%10FF27F827F8F827527DF82727F827F82727FD05FF7DF827FD0EFF52277D +%A852FFFFFF527DFD0BFF7DFFFF527D52F8F827F8F8277D7D7DFF2727FD12 +%FF27FFA87D5252527D27F827F82752277DA87DFD10FF52FF52FFFFA8A8F8 +%527D27F85252A8FD07FF27A8FD0CFF527DFF7D52FFA8FFA8A8A8FD0BFFA8 +%7DA8A827F827525252277DF8A8A8A827FD12FF7DFF52FF52FF522727277D +%27F82727FF7DA8527DFD0EFF52FF7DA8FFA8FF7D52A8FD057DFD15FF527D +%FFFF7D7DFF7D7DA8527DFD0CFF7D277DF827F8FF27FFF8272727FF52FD13 +%FFA852FF527DFF7D5252522752F852F8527D52FF527DFD0DFF7D527DFFFF +%5252A87D52FF52277DFD15FF527DFFA8A87D7DFFA87D527D52FD0EFF7DA8 +%27277DA8A8525252A827FD13FF272727FF7D52A8FF7D52277D27277D527D +%FFFF7DFF527DFD0BFF27FFFF52FFFF7D52A8FF27FF7D7DFD15FF27A87D7D +%FF7D52FFFF7D7DFF52FD0FFF7D27F8F8277DFFF8F8F827FD13FFA8277DA8 +%52527DA8A8F85252FF527D527D527D52A8FFFF27FD0BFF5252A87D52FFFF +%5252FFFF7DA8FD15FF27A852A852FF527D52FD04A852FD10FFA852F85252 +%F8275252FD14FF7DFF52277D7D277D52F85227522752F852A8527D52A852 +%A8F8FD09FF52A8FFA852277D7D52FFFF7D7DFD0BFF7DFD09FF27A8FF27FF +%7D527D7DFF7DA8FFA8FD13FFF8F8F827F87DFD14FF277DFF7DFFA8FFA8FF +%FF277D52A8F8A8F87DFF7DFFA8527D7DA8A8FD08FF7D7DA852FF7D7DFF7D +%FF7DFD0DFFF8FD08FFF8A827272752F87D527D5227527D27FD13FFFD05F8 +%7DFD14FFA8FFA87D7D52FF52FF522727FF527D27F827A87DFD04FF7DFF7D +%FD08FF527D52FFFFA827FF7D27FD0EFF27F87DFD05FF277DF8F8F827277D +%527DF8F8F827F87DFD13FFA8FD04F8FD14FFA827FF527D52A8FF7D52A827 +%5252F8F87D277DA8A852A852A8FFA8A87DFD07FF7DA87D52A8FFA8527DFD +%10FFA8F8F8A8FF525252F8522752F8F8F852527DA852527D525227FD12FF +%F8A852F8FD14FF52A8FFFF27FF52A827FF7D27277D527D52F852FF7DA852 +%A8FD04FF7DFD07FF527D7D7DFF7D52FD15FFF87DF8F8527D277D2727277D +%277D27F852F8527D5227F827FD0FFFF827FFFFA8F8FD13FF52A8FFFFA8FF +%FF7DFFA8FF527D5227527D52277DA8FF7D7DA8FF7D527D52FD06FF7D527D +%7D7DA8FD17FFF8F8F87DA87D527DF8A827A8FF7D7D7DF87D277D277D27FD +%0FFFF8FD04FF5252FD12FFF827277D7D7D52277DFFFFFF277D527D27FFFF +%FF277D527D7D7D52A87D27FD06FFF87D27A8FD19FFF8F8F85227FF275227 +%277D277D277DFF7D527D527D7D27FD0EFF2727FD05FFF8FD12FF52527D52 +%7D527DFD05FF5252522752FD05FF7D52A8527D527D52FD22FFF8A8F8F852 +%277D27F85252277D277D52522752525227FD10FFF8FD06FFF8FD12FFF827 +%52F852FD08FFA852F8FD0AFF7D7D7DFD22FFF827FF7DFF277D27F8527D27 +%7D52F8F8FD04277DFD11FF27FD08FFF8FD1EFF275227FD2CFF7DF87DFD06 +%FFF87D27F8277D52FF7D7DFF7D7DA8FD68FF7D7DFD09FF27A8527DFFFF7D +%A852FFFF7DFFA8FD67FF52FD0AFF7D5252527D527D5252A87D5252FFA8FD +%72FF7DFFA8FF7D527D52FFFFFF7DA827FD73FF52FF7DFFFF27A87D7DA87D +%FF7D52FD73FF27FF7D27A827FF527DFFFF527DFD74FFA8A852527D52A852 +%52A8A8527DFD75FF2727FFFF7D7DFFFF527DF8FD76FF7DA852FD04FF2752 +%7DFD78FF277D277DA8277D27FD7AFFA87D27F827F8FDFCFFFDA8FFFF +%%EndBinary +%%EndComments +%%BeginProlog +%%BeginResource: procset Adobe_level2_AI5 1.2 0 +%%Title: (Adobe Illustrator (R) Version 5.0 Level 2 Emulation) +%%Version: 1.2 0 +%%CreationDate: (04/10/93) () +%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved) +userdict /Adobe_level2_AI5 26 dict dup begin + put + /packedarray where not + { + userdict begin + /packedarray + { + array astore readonly + } bind def + /setpacking /pop load def + /currentpacking false def + end + 0 + } if + pop + userdict /defaultpacking currentpacking put true setpacking + /initialize + { + Adobe_level2_AI5 begin + } bind def + /terminate + { + currentdict Adobe_level2_AI5 eq + { + end + } if + } bind def + mark + /setcustomcolor where not + { + /findcmykcustomcolor + { + (AI8_CMYK_CustomColor) + 6 packedarray + } bind def + /findrgbcustomcolor + { + (AI8_RGB_CustomColor) + 5 packedarray + } bind def + /setcustomcolor + { + exch + aload pop dup + (AI8_CMYK_CustomColor) eq + { + pop pop + 4 + { + 4 index mul + 4 1 roll + } repeat + 5 -1 roll pop + setcmykcolor + } + { + dup (AI8_RGB_CustomColor) eq + { + pop pop + 3 + { + 1 exch sub + 3 index mul + 1 exch sub + 3 1 roll + } repeat + 4 -1 roll pop + setrgbcolor + } + { + pop + 4 + { + 4 index mul 4 1 roll + } repeat + 5 -1 roll pop + setcmykcolor + } ifelse + } ifelse + } + def + } if + /setAIseparationgray + { + false setoverprint + 0 setgray + /setseparationgray where{ + pop setseparationgray + }{ + /setcolorspace where{ + pop + [/Separation (All) /DeviceCMYK {dup dup dup}] setcolorspace + 1 exch sub setcolor + }{ + setgray + }ifelse + }ifelse + } def + + /gt38? mark {version cvr cvx exec} stopped {cleartomark true} {38 gt exch pop} ifelse def + userdict /deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt put + userdict /level2? + systemdict /languagelevel known dup + { + pop systemdict /languagelevel get 2 ge + } if + put +/level2ScreenFreq +{ + begin + 60 + HalftoneType 1 eq + { + pop Frequency + } if + HalftoneType 2 eq + { + pop GrayFrequency + } if + HalftoneType 5 eq + { + pop Default level2ScreenFreq + } if + end +} bind def +userdict /currentScreenFreq + level2? {currenthalftone level2ScreenFreq} {currentscreen pop pop} ifelse put +level2? not + { + /setcmykcolor where not + { + /setcmykcolor + { + exch .11 mul add exch .59 mul add exch .3 mul add + 1 exch sub setgray + } def + } if + /currentcmykcolor where not + { + /currentcmykcolor + { + 0 0 0 1 currentgray sub + } def + } if + /setoverprint where not + { + /setoverprint /pop load def + } if + /selectfont where not + { + /selectfont + { + exch findfont exch + dup type /arraytype eq + { + makefont + } + { + scalefont + } ifelse + setfont + } bind def + } if + /cshow where not + { + /cshow + { + [ + 0 0 5 -1 roll aload pop + ] cvx bind forall + } bind def + } if + } if + cleartomark + /anyColor? + { + add add add 0 ne + } bind def + /testColor + { + gsave + setcmykcolor currentcmykcolor + grestore + } bind def + /testCMYKColorThrough + { + testColor anyColor? + } bind def + userdict /composite? + 1 0 0 0 testCMYKColorThrough + 0 1 0 0 testCMYKColorThrough + 0 0 1 0 testCMYKColorThrough + 0 0 0 1 testCMYKColorThrough + and and and + put + composite? not + { + userdict begin + gsave + /cyan? 1 0 0 0 testCMYKColorThrough def + /magenta? 0 1 0 0 testCMYKColorThrough def + /yellow? 0 0 1 0 testCMYKColorThrough def + /black? 0 0 0 1 testCMYKColorThrough def + grestore + /isCMYKSep? cyan? magenta? yellow? black? or or or def + /customColor? isCMYKSep? not def + end + } if + end defaultpacking setpacking +%%EndResource +%%BeginProcSet: Adobe_ColorImage_AI6 1.3 0 +userdict /Adobe_ColorImage_AI6 known not +{ + userdict /Adobe_ColorImage_AI6 53 dict put +} if +userdict /Adobe_ColorImage_AI6 get begin +/initialize { + Adobe_ColorImage_AI6 begin + Adobe_ColorImage_AI6 { + dup type /arraytype eq { + dup xcheck { + bind + } if + } if + pop pop + } forall +} def +/terminate { end } def +currentdict /Adobe_ColorImage_AI6_Vars known not { + /Adobe_ColorImage_AI6_Vars 41 dict def +} if +Adobe_ColorImage_AI6_Vars begin + /plateindex -1 def + /_newproc null def + /_proc1 null def + /_proc2 null def + /sourcearray 4 array def + /_ptispace null def + /_ptiname null def + /_pti0 0 def + /_pti1 0 def + /_ptiproc null def + /_ptiscale 0 def + /_pticomps 0 def + /_ptibuf 0 string def + /_gtigray 0 def + /_cticmyk null def + /_rtirgb null def + /XIEnable true def + /XIType 0 def + /XIEncoding 0 def + /XICompression 0 def + /XIChannelCount 0 def + /XIBitsPerPixel 0 def + /XIImageHeight 0 def + /XIImageWidth 0 def + /XIImageMatrix null def + /XIRowBytes 0 def + /XIFile null def + /XIBuffer1 null def + /XIBuffer2 null def + /XIBuffer3 null def + /XIDataProc null def + /XIColorSpace /DeviceGray def + /XIColorValues 0 def + /XIPlateList false def +end +/ci6colorimage /colorimage where {/colorimage get}{null} ifelse def +/ci6image systemdict /image get def +/ci6curtransfer systemdict /currenttransfer get def +/ci6curoverprint /currentoverprint where {/currentoverprint get}{{_of}} ifelse def +/ci6foureq { + 4 index ne { + pop pop pop false + }{ + 4 index ne { + pop pop false + }{ + 4 index ne { + pop false + }{ + 4 index eq + } ifelse + } ifelse + } ifelse +} def +/ci6testplate { + Adobe_ColorImage_AI6_Vars begin + /plateindex -1 def + /setcmykcolor where { + pop + gsave + 1 0 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub + 0 1 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub + 0 0 1 0 setcmykcolor systemdict /currentgray get exec 1 exch sub + 0 0 0 1 setcmykcolor systemdict /currentgray get exec 1 exch sub + grestore + 1 0 0 0 ci6foureq { + /plateindex 0 def + }{ + 0 1 0 0 ci6foureq { + /plateindex 1 def + }{ + 0 0 1 0 ci6foureq { + /plateindex 2 def + }{ + 0 0 0 1 ci6foureq { + /plateindex 3 def + }{ + 0 0 0 0 ci6foureq { + /plateindex 5 def + } if + } ifelse + } ifelse + } ifelse + } ifelse + pop pop pop pop + } if + plateindex + end +} def +/ci6concatprocs { + /packedarray where { + pop dup type /packedarraytype eq 2 index type + /packedarraytype eq or + }{ + false + } ifelse + { + /_proc2 exch cvlit def + /_proc1 exch cvlit def + _proc1 aload pop + _proc2 aload pop + _proc1 length + _proc2 length add + packedarray cvx + }{ + /_proc2 exch cvlit def + /_proc1 exch cvlit def + /_newproc _proc1 length _proc2 length add array def + _newproc 0 _proc1 putinterval + _newproc _proc1 length _proc2 putinterval + _newproc cvx + } ifelse +} def +/ci6istint { + type /arraytype eq +} def +/ci6isspot { + dup type /arraytype eq { + dup length 1 sub get /Separation eq + }{ + pop false + } ifelse +} def +/ci6spotname { + dup ci6isspot {dup length 2 sub get}{pop ()} ifelse +} def +/ci6altspace { + aload pop pop pop ci6colormake +} def +/ci6numcomps { + dup /DeviceGray eq { + pop 1 + }{ + dup /DeviceRGB eq { + pop 3 + }{ + /DeviceCMYK eq { + 4 + }{ + 1 + } ifelse + } ifelse + } ifelse +} def +/ci6marksplate { + dup /DeviceGray eq { + pop plateindex 3 eq + }{ + dup /DeviceRGB eq { + pop plateindex 5 ne + }{ + dup /DeviceCMYK eq { + pop plateindex 5 ne + }{ + dup ci6isspot { + /findcmykcustomcolor where { + pop + dup length 2 sub get + 0.1 0.1 0.1 0.1 5 -1 roll + findcmykcustomcolor 1 setcustomcolor + systemdict /currentgray get exec + 1 ne + }{ + pop plateindex 5 ne + } ifelse + }{ + pop plateindex 5 ne + } ifelse + } ifelse + } ifelse + } ifelse +} def +/ci6colormake { + dup ci6numcomps + exch 1 index 2 add 1 roll + dup 1 eq {pop}{array astore} ifelse + exch +} def +/ci6colorexpand { + dup ci6spotname exch + dup ci6istint { + ci6altspace + exch 4 1 roll + }{ + 1 3 1 roll + } ifelse +} def +/ci6colortint { + dup /DeviceGray eq { + 3 1 roll 1 exch sub mul 1 exch sub exch + }{ + dup /DeviceRGB eq { + 3 1 roll {1 exch sub 1 index mul 1 exch sub exch} forall pop 3 array astore exch + }{ + dup /DeviceCMYK eq { + 3 1 roll {1 index mul exch} forall pop 4 array astore exch + }{ + 3 1 roll mul exch + } ifelse + } ifelse + } ifelse +} def +/ci6colortocmyk { + dup /DeviceGray eq { + pop 1 exch sub 0 0 0 4 -1 roll 4 array astore + }{ + dup /DeviceRGB eq { + pop aload pop _rgbtocmyk 4 array astore + }{ + dup /DeviceCMYK eq { + pop + }{ + ci6altspace ci6colortint ci6colortocmyk + } ifelse + } ifelse + } ifelse +} def +/ci6makeimagedict { + 7 dict begin + /ImageType 1 def + /Decode exch def + /DataSource exch def + /ImageMatrix exch def + /BitsPerComponent exch def + /Height exch def + /Width exch def + currentdict end +} def +/ci6stringinvert { + 0 1 2 index length 1 sub { + dup 2 index exch get 255 exch sub 2 index 3 1 roll put + } for +} def +/ci6stringknockout { + 0 1 2 index length 1 sub { + 255 2 index 3 1 roll put + } for +} def +/ci6stringapply { + 0 1 4 index length 1 sub { + dup + 4 index exch get + 3 index 3 1 roll + 3 index exec + } for + pop exch pop +} def +/ci6walkrgbstring { + 0 3 index + dup length 1 sub 0 3 3 -1 roll { + 3 getinterval {} forall + 5 index exec + 3 index + } for + + 5 {pop} repeat +} def +/ci6walkcmykstring +{ + 0 3 index + dup length 1 sub 0 4 3 -1 roll { + 4 getinterval {} forall + + 6 index exec + + 3 index + + } for + + 5 { pop } repeat + +} def +/ci6putrgbtograystr +{ + .11 mul exch + + .59 mul add exch + + .3 mul add + + cvi 3 copy put + + pop 1 add +} def +/ci6putcmyktograystr +{ + exch .11 mul add + + exch .59 mul add + + exch .3 mul add + + dup 255 gt { pop 255 } if + + 255 exch sub cvi 3 copy put + + pop 1 add +} def +/ci6rgbtograyproc { + Adobe_ColorImage_AI6_Vars begin + sourcearray 0 get exec + XIBuffer3 + dup 3 1 roll + + /ci6putrgbtograystr load exch + ci6walkrgbstring + end +} def +/ci6cmyktograyproc { + Adobe_ColorImage_AI6_Vars begin + sourcearray 0 get exec + XIBuffer3 + dup 3 1 roll + + /ci6putcmyktograystr load exch + ci6walkcmykstring + end +} def +/ci6separatecmykproc { + Adobe_ColorImage_AI6_Vars begin + sourcearray 0 get exec + + XIBuffer3 + + 0 2 index + + plateindex 4 2 index length 1 sub { + get 255 exch sub + + 3 copy put pop 1 add + + 2 index + } for + pop pop exch pop + end +} def + +/ci6compositeimage { + dup 1 eq { + pop pop image + }{ + /ci6colorimage load null ne { + ci6colorimage + }{ + 3 1 roll pop + sourcearray 0 3 -1 roll put + 3 eq {/ci6rgbtograyproc}{/ci6cmyktograyproc} ifelse load + image + } ifelse + } ifelse +} def +/ci6knockoutimage { + gsave + 0 ci6curtransfer exec 1 ci6curtransfer exec + eq { + 0 ci6curtransfer exec 0.5 lt + }{ + 0 ci6curtransfer exec 1 ci6curtransfer exec gt + } ifelse + {{pop 0}}{{pop 1}} ifelse + systemdict /settransfer get exec + ci6compositeimage + grestore +} def +/ci6drawimage { + ci6testplate -1 eq { + pop ci6compositeimage + }{ + dup type /arraytype eq { + dup length plateindex gt {plateindex get}{pop false} ifelse + }{ + { + true + }{ + dup 1 eq {plateindex 3 eq}{plateindex 3 le} ifelse + } ifelse + } ifelse + { + dup 1 eq { + pop pop ci6image + }{ + dup 3 eq { + ci6compositeimage + }{ + pop pop + sourcearray 0 3 -1 roll put + /ci6separatecmykproc load + ci6image + } ifelse + } ifelse + }{ + ci6curoverprint { + 7 {pop} repeat + }{ + ci6knockoutimage + } ifelse + } ifelse + } ifelse +} def +/ci6proctintimage { + /_ptispace exch store /_ptiname exch store /_pti1 exch store /_pti0 exch store /_ptiproc exch store + /_pticomps _ptispace ci6numcomps store + /_ptiscale _pti1 _pti0 sub store + level2? { + _ptiname length 0 gt version cvr 2012 ge and { + [/Separation _ptiname _ptispace {_ptiproc}] setcolorspace + [_pti0 _pti1] ci6makeimagedict ci6image + }{ + [/Indexed _ptispace 255 {255 div _ptiscale mul _pti0 add _ptiproc}] setcolorspace + [0 255] ci6makeimagedict ci6image + } ifelse + }{ + _pticomps 1 eq { + { + dup + { + 255 div _ptiscale mul _pti0 add _ptiproc 255 mul cvi put + } ci6stringapply + } ci6concatprocs ci6image + }{ + { + dup length _pticomps mul dup _ptibuf length ne {/_ptibuf exch string store}{pop} ifelse + _ptibuf { + exch _pticomps mul exch 255 div _ptiscale mul _pti0 add _ptiproc + _pticomps 2 add -2 roll + _pticomps 1 sub -1 0 { + 1 index add 2 index exch + 5 -1 roll + 255 mul cvi put + } for + pop pop + } ci6stringapply + } ci6concatprocs false _pticomps + /ci6colorimage load null eq {7 {pop} repeat}{ci6colorimage} ifelse + } ifelse + } ifelse +} def +/ci6graytintimage { + /_gtigray 5 -1 roll store + {1 _gtigray sub mul 1 exch sub} 4 1 roll + /DeviceGray ci6proctintimage +} def +/ci6cmyktintimage { + /_cticmyk 5 -1 roll store + {_cticmyk {1 index mul exch} forall pop} 4 1 roll + /DeviceCMYK ci6proctintimage +} def +/ci6rgbtintimage { + /_rtirgb 5 -1 roll store + {_rtirgb {1 exch sub 1 index mul 1 exch sub exch} forall pop} 4 1 roll + /DeviceRGB ci6proctintimage +} def +/ci6tintimage { + ci6testplate -1 eq { + ci6colorexpand + 3 -1 roll 5 -1 roll {0}{0 exch} ifelse 4 2 roll + dup /DeviceGray eq { + pop ci6graytintimage + }{ + dup /DeviceRGB eq { + pop ci6rgbtintimage + }{ + pop ci6cmyktintimage + } ifelse + } ifelse + }{ + dup ci6marksplate { + plateindex 5 lt { + ci6colortocmyk plateindex get + dup 0 eq ci6curoverprint and { + 7 {pop} repeat + }{ + 1 exch sub + exch {1 0}{0 1} ifelse () ci6graytintimage + } ifelse + }{ + pop exch {0}{0 exch} ifelse 0 3 1 roll () ci6graytintimage + } ifelse + }{ + ci6curoverprint { + 8 {pop} repeat + }{ + pop pop pop + {pop 1} 0 1 () /DeviceGray ci6proctintimage + } ifelse + } ifelse + } ifelse +} def +/XINullImage { +} def +/XIImageMask { + XIImageWidth XIImageHeight false + [XIImageWidth 0 0 XIImageHeight neg 0 0] + /XIDataProc load + imagemask +} def +/XIImageTint { + XIImageWidth XIImageHeight XIBitsPerPixel + [XIImageWidth 0 0 XIImageHeight neg 0 0] + /XIDataProc load + XIType 3 eq XIColorValues XIColorSpace ci6tintimage +} def +/XIImage { + XIImageWidth XIImageHeight XIBitsPerPixel + [XIImageWidth 0 0 XIImageHeight neg 0 0] + /XIDataProc load + false XIChannelCount XIPlateList ci6drawimage +} def +/XG { + pop pop +} def +/XF { + 13 {pop} repeat +} def +/Xh { + Adobe_ColorImage_AI6_Vars begin + gsave + /XIType exch def + /XIImageHeight exch def + /XIImageWidth exch def + /XIImageMatrix exch def + 0 0 moveto + XIImageMatrix concat + XIImageWidth XIImageHeight scale + + /_lp /null ddef + _fc + /_lp /imagemask ddef + end +} def +/XH { + Adobe_ColorImage_AI6_Vars begin + grestore + end +} def +/XIEnable { + Adobe_ColorImage_AI6_Vars /XIEnable 3 -1 roll put +} def +/XC { + Adobe_ColorImage_AI6_Vars begin + ci6colormake + /XIColorSpace exch def + /XIColorValues exch def + end +} def +/XIPlates { + Adobe_ColorImage_AI6_Vars begin + /XIPlateList exch def + end +} def +/XI +{ + Adobe_ColorImage_AI6_Vars begin + gsave + /XIType exch def + cvi dup + 256 idiv /XICompression exch store + 256 mod /XIEncoding exch store + pop pop + /XIChannelCount exch def + /XIBitsPerPixel exch def + /XIImageHeight exch def + /XIImageWidth exch def + pop pop pop pop + /XIImageMatrix exch def + XIBitsPerPixel 1 eq { + XIImageWidth 8 div ceiling cvi + }{ + XIImageWidth XIChannelCount mul + } ifelse + /XIRowBytes exch def + XIEnable { + /XIBuffer3 XIImageWidth string def + XICompression 0 eq { + /XIBuffer1 XIRowBytes string def + XIEncoding 0 eq { + {currentfile XIBuffer1 readhexstring pop} + }{ + {currentfile XIBuffer1 readstring pop} + } ifelse + }{ + /XIBuffer1 256 string def + /XIBuffer2 XIRowBytes string def + {currentfile XIBuffer1 readline pop (%) anchorsearch {pop} if} + /ASCII85Decode filter /DCTDecode filter + /XIFile exch def + {XIFile XIBuffer2 readstring pop} + } ifelse + /XIDataProc exch def + + XIType 1 ne { + 0 setgray + } if + XIType 1 eq { + XIImageMask + }{ + XIType 2 eq XIType 3 eq or { + XIImageTint + }{ + XIImage + } ifelse + } ifelse + }{ + XINullImage + } ifelse + /XIPlateList false def + grestore + end +} def +end +%%EndProcSet +%%BeginResource: procset Adobe_Illustrator_AI5 1.3 0 +%%Title: (Adobe Illustrator (R) Version 8.0 Full Prolog) +%%Version: 1.3 0 +%%CreationDate: (3/7/1994) () +%%Copyright: ((C) 1987-1998 Adobe Systems Incorporated All Rights Reserved) +currentpacking true setpacking +userdict /Adobe_Illustrator_AI5_vars 112 dict dup begin +put +/_?cmyk false def +/_eo false def +/_lp /none def +/_pf +{ +} def +/_ps +{ +} def +/_psf +{ +} def +/_pss +{ +} def +/_pjsf +{ +} def +/_pjss +{ +} def +/_pola 0 def +/_doClip 0 def +/cf currentflat def +/_lineorientation 0 def +/_charorientation 0 def +/_yokoorientation 0 def +/_tm matrix def +/_renderStart +[ +/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0 +] def +/_renderEnd +[ +null null null null /i1 /i1 /i1 /i1 +] def +/_render -1 def +/_shift [0 0] def +/_ax 0 def +/_ay 0 def +/_cx 0 def +/_cy 0 def +/_leading +[ +0 0 +] def +/_ctm matrix def +/_mtx matrix def +/_sp 16#020 def +/_hyphen (-) def +/_fontSize 0 def +/_fontAscent 0 def +/_fontDescent 0 def +/_fontHeight 0 def +/_fontRotateAdjust 0 def +/Ss 256 string def +Ss 0 (fonts/) putinterval +/_cnt 0 def +/_scale [1 1] def +/_nativeEncoding 0 def +/_useNativeEncoding 0 def +/_tempEncode 0 def +/_pntr 0 def +/_tDict 2 dict def +/_hfname 100 string def +/_hffound false def +/Tx +{ +} def +/Tj +{ +} def +/CRender +{ +} def +/_AI3_savepage +{ +} def +/_gf null def +/_cf 4 array def +/_rgbf 3 array def +/_if null def +/_of false def +/_fc +{ +} def +/_gs null def +/_cs 4 array def +/_rgbs 3 array def +/_is null def +/_os false def +/_sc +{ +} def +/_pd 1 dict def +/_ed 15 dict def +/_pm matrix def +/_fm null def +/_fd null def +/_fdd null def +/_sm null def +/_sd null def +/_sdd null def +/_i null def +/_lobyte 0 def +/_hibyte 0 def +/_cproc null def +/_cscript 0 def +/_hvax 0 def +/_hvay 0 def +/_hvwb 0 def +/_hvcx 0 def +/_hvcy 0 def +/_bitfont null def +/_bitlobyte 0 def +/_bithibyte 0 def +/_bitkey null def +/_bitdata null def +/_bitindex 0 def +/discardSave null def +/buffer 256 string def +/beginString null def +/endString null def +/endStringLength null def +/layerCnt 1 def +/layerCount 1 def +/perCent (%) 0 get def +/perCentSeen? false def +/newBuff null def +/newBuffButFirst null def +/newBuffLast null def +/clipForward? false def +end +userdict /Adobe_Illustrator_AI5 known not { + userdict /Adobe_Illustrator_AI5 100 dict put +} if +userdict /Adobe_Illustrator_AI5 get begin +/initialize +{ + Adobe_Illustrator_AI5 dup begin + Adobe_Illustrator_AI5_vars begin + /_aicmykps where {pop /_?cmyk _aicmykps def}if + discardDict + { + bind pop pop + } forall + dup /nc get begin + { + dup xcheck 1 index type /operatortype ne and + { + bind + } if + pop pop + } forall + end + newpath +} def +/terminate +{ + end + end +} def +/_ +null def +/ddef +{ + Adobe_Illustrator_AI5_vars 3 1 roll put +} def +/xput +{ + dup load dup length exch maxlength eq + { + dup dup load dup + length 2 mul dict copy def + } if + load begin + def + end +} def +/npop +{ + { + pop + } repeat +} def +/hswj +{ + dup stringwidth 3 2 roll + { + _hvwb eq { exch _hvcx add exch _hvcy add } if + exch _hvax add exch _hvay add + } cforall +} def +/vswj +{ + 0 0 3 -1 roll + { + dup 255 le + _charorientation 1 eq + and + { + dup cstring stringwidth 5 2 roll + _hvwb eq { exch _hvcy sub exch _hvcx sub } if + exch _hvay sub exch _hvax sub + 4 -1 roll sub exch + 3 -1 roll sub exch + } + { + _hvwb eq { exch _hvcy sub exch _hvcx sub } if + exch _hvay sub exch _hvax sub + _fontHeight sub + } ifelse + } cforall +} def +/swj +{ + 6 1 roll + /_hvay exch ddef + /_hvax exch ddef + /_hvwb exch ddef + /_hvcy exch ddef + /_hvcx exch ddef + _lineorientation 0 eq { hswj } { vswj } ifelse +} def +/sw +{ + 0 0 0 6 3 roll swj +} def +/vjss +{ + 4 1 roll + { + dup cstring + dup length 1 eq + _charorientation 1 eq + and + { + -90 rotate + currentpoint + _fontRotateAdjust add + moveto + gsave + false charpath currentpoint + 5 index setmatrix stroke + grestore + _fontRotateAdjust sub + moveto + _sp eq + { + 5 index 5 index rmoveto + } if + 2 copy rmoveto + 90 rotate + } + { + currentpoint + _fontHeight sub + 5 index sub + 3 index _sp eq + { + 9 index sub + } if + + currentpoint + exch 4 index stringwidth pop 2 div sub + exch _fontAscent sub + moveto + + gsave + 2 index false charpath + 6 index setmatrix stroke + grestore + + moveto pop pop + } ifelse + } cforall + 6 npop +} def +/hjss +{ + 4 1 roll + { + dup cstring + gsave + false charpath currentpoint + 5 index setmatrix stroke + grestore + moveto + _sp eq + { + 5 index 5 index rmoveto + } if + 2 copy rmoveto + } cforall + 6 npop +} def +/jss +{ + _lineorientation 0 eq { hjss } { vjss } ifelse +} def +/ss +{ + 0 0 0 7 3 roll jss +} def +/vjsp +{ + 4 1 roll + { + dup cstring + dup length 1 eq + _charorientation 1 eq + and + { + -90 rotate + currentpoint + _fontRotateAdjust add + moveto + false charpath + currentpoint + _fontRotateAdjust sub + moveto + _sp eq + { + 5 index 5 index rmoveto + } if + 2 copy rmoveto + 90 rotate + } + { + currentpoint + _fontHeight sub + 5 index sub + 3 index _sp eq + { + 9 index sub + } if + + currentpoint + exch 4 index stringwidth pop 2 div sub + exch _fontAscent sub + moveto + + 2 index false charpath + + moveto pop pop + } ifelse + } cforall + 6 npop +} def +/hjsp +{ + 4 1 roll + { + dup cstring + false charpath + _sp eq + { + 5 index 5 index rmoveto + } if + 2 copy rmoveto + } cforall + 6 npop +} def +/jsp +{ + matrix currentmatrix + _lineorientation 0 eq {hjsp} {vjsp} ifelse +} def +/sp +{ + matrix currentmatrix + 0 0 0 7 3 roll + _lineorientation 0 eq {hjsp} {vjsp} ifelse +} def +/pl +{ + transform + 0.25 sub round 0.25 add exch + 0.25 sub round 0.25 add exch + itransform +} def +/setstrokeadjust where +{ + pop true setstrokeadjust + /c + { + curveto + } def + /C + /c load def + /v + { + currentpoint 6 2 roll curveto + } def + /V + /v load def + /y + { + 2 copy curveto + } def + /Y + /y load def + /l + { + lineto + } def + /L + /l load def + /m + { + moveto + } def +} +{ + /c + { + pl curveto + } def + /C + /c load def + /v + { + currentpoint 6 2 roll pl curveto + } def + /V + /v load def + /y + { + pl 2 copy curveto + } def + /Y + /y load def + /l + { + pl lineto + } def + /L + /l load def + /m + { + pl moveto + } def +} ifelse +/d +{ + setdash +} def +/cf +{ +} def +/i +{ + dup 0 eq + { + pop cf + } if + setflat +} def +/j +{ + setlinejoin +} def +/J +{ + setlinecap +} def +/M +{ + setmiterlimit +} def +/w +{ + setlinewidth +} def +/XR +{ + 0 ne + /_eo exch ddef +} def +/H +{ +} def +/h +{ + closepath +} def +/N +{ + _pola 0 eq + { + _doClip 1 eq + { + _eo {eoclip} {clip} ifelse /_doClip 0 ddef + } if + newpath + } + { + /CRender + { + N + } ddef + } ifelse +} def +/n +{ + N +} def +/F +{ + _pola 0 eq + { + _doClip 1 eq + { + gsave _pf grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _fc + /_doClip 0 ddef + } + { + _pf + } ifelse + } + { + /CRender + { + F + } ddef + } ifelse +} def +/f +{ + closepath + F +} def +/S +{ + _pola 0 eq + { + _doClip 1 eq + { + gsave _ps grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc + /_doClip 0 ddef + } + { + _ps + } ifelse + } + { + /CRender + { + S + } ddef + } ifelse +} def +/s +{ + closepath + S +} def +/B +{ + _pola 0 eq + { + _doClip 1 eq + gsave F grestore + { + gsave S grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc + /_doClip 0 ddef + } + { + S + } ifelse + } + { + /CRender + { + B + } ddef + } ifelse +} def +/b +{ + closepath + B +} def +/W +{ + /_doClip 1 ddef +} def +/* +{ + count 0 ne + { + dup type /stringtype eq + { + pop + } if + } if + newpath +} def +/u +{ +} def +/U +{ +} def +/q +{ + _pola 0 eq + { + gsave + } if +} def +/Q +{ + _pola 0 eq + { + grestore + } if +} def +/*u +{ + _pola 1 add /_pola exch ddef +} def +/*U +{ + _pola 1 sub /_pola exch ddef + _pola 0 eq + { + CRender + } if +} def +/D +{ + pop +} def +/*w +{ +} def +/*W +{ +} def +/` +{ + /_i save ddef + clipForward? + { + nulldevice + } if + 6 1 roll 4 npop + concat pop + userdict begin + /showpage + { + } def + 0 setgray + 0 setlinecap + 1 setlinewidth + 0 setlinejoin + 10 setmiterlimit + [] 0 setdash + /setstrokeadjust where {pop false setstrokeadjust} if + newpath + 0 setgray + false setoverprint +} def +/~ +{ + end + _i restore +} def +/_rgbtocmyk +{ + 3 + { + 1 exch sub 3 1 roll + } repeat + 3 copy 1 4 1 roll + 3 + { + 3 index 2 copy gt + { + exch + } if + pop 4 1 roll + } repeat + pop pop pop + 4 1 roll + 3 + { + 3 index sub + 3 1 roll + } repeat + 4 -1 roll +} def +/setrgbfill +{ + _rgbf astore pop + /_fc + { + _lp /fill ne + { + _of setoverprint + _rgbf aload pop setrgbcolor + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + hvashow + } ddef + /_pjsf + { + _fc + hvawidthshow + } ddef + /_lp /none ddef +} def +/setrgbstroke +{ + _rgbs astore pop + /_sc + { + _lp /stroke ne + { + _os setoverprint + _rgbs aload pop setrgbcolor + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/O +{ + 0 ne + /_of exch ddef + /_lp /none ddef +} def +/R +{ + 0 ne + /_os exch ddef + /_lp /none ddef +} def +/g +{ + /_gf exch ddef + /_fc + { + _lp /fill ne + { + _of setoverprint + _gf setgray + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + hvashow + } ddef + /_pjsf + { + _fc + hvawidthshow + } ddef + /_lp /none ddef +} def +/G +{ + /_gs exch ddef + /_sc + { + _lp /stroke ne + { + _os setoverprint + _gs setgray + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/k +{ + _cf astore pop + /_fc + { + _lp /fill ne + { + _of setoverprint + _cf aload pop setcmykcolor + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + hvashow + } ddef + /_pjsf + { + _fc + hvawidthshow + } ddef + /_lp /none ddef +} def +/K +{ + _cs astore pop + /_sc + { + _lp /stroke ne + { + _os setoverprint + _cs aload pop setcmykcolor + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/Xa +{ + _?cmyk { + 3 npop k + }{ + setrgbfill 4 npop + } ifelse +} def +/XA +{ + _?cmyk { + 3 npop K + }{ + setrgbstroke 4 npop + } ifelse +} def +/Xs +{ + /_gf exch ddef + 5 npop + /_fc + { + _lp /fill ne + { + _of setoverprint + _gf setAIseparationgray + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + hvashow + } ddef + /_pjsf + { + _fc + hvawidthshow + } ddef + /_lp /none ddef +} def +/XS +{ + /_gs exch ddef + 5 npop + /_sc + { + _lp /stroke ne + { + _os setoverprint + _gs setAIseparationgray + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/Xx +{ + exch + /_gf exch ddef + 0 eq { + findcmykcustomcolor + }{ + _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse + { + 4 1 roll 3 npop + findcmykcustomcolor + }{ + 8 -4 roll 4 npop + findrgbcustomcolor + } ifelse + } ifelse + /_if exch ddef + /_fc + { + _lp /fill ne + { + _of setoverprint + _if _gf 1 exch sub setcustomcolor + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + hvashow + } ddef + /_pjsf + { + _fc + hvawidthshow + } ddef + /_lp /none ddef +} def +/XX +{ + exch + /_gs exch ddef + 0 eq { + findcmykcustomcolor + }{ + _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse + { + 4 1 roll 3 npop + findcmykcustomcolor + }{ + 8 -4 roll 4 npop + findrgbcustomcolor + } ifelse + } ifelse + /_is exch ddef + /_sc + { + _lp /stroke ne + { + _os setoverprint + _is _gs 1 exch sub setcustomcolor + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/x +{ + /_gf exch ddef + findcmykcustomcolor + /_if exch ddef + /_fc + { + _lp /fill ne + { + _of setoverprint + _if _gf 1 exch sub setcustomcolor + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + hvashow + } ddef + /_pjsf + { + _fc + hvawidthshow + } ddef + /_lp /none ddef +} def +/X +{ + /_gs exch ddef + findcmykcustomcolor + /_is exch ddef + /_sc + { + _lp /stroke ne + { + _os setoverprint + _is _gs 1 exch sub setcustomcolor + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/XK +{ + 3 -1 roll pop + 0 eq + { + 1 exch sub + 3 {dup 3 1 roll mul 5 1 roll} repeat + mul 4 1 roll + K + } + { + 1 exch sub 4 1 roll + 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat + 4 -1 roll pop + XA + } ifelse +} def +/Xk +{ + 3 -1 roll pop + 0 eq + { + 1 exch sub + 3 {dup 3 1 roll mul 5 1 roll} repeat + mul 4 1 roll + k + } + { + 1 exch sub 4 1 roll + 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat + 4 -1 roll pop + Xa + } ifelse +} def +/A +{ + pop +} def +/annotatepage +{ +userdict /annotatepage 2 copy known {get exec} {pop pop} ifelse +} def +/XT { + pop pop +} def +/Xt { + pop +} def +/discard +{ + save /discardSave exch store + discardDict begin + /endString exch store + gt38? + { + 2 add + } if + load + stopped + pop + end + discardSave restore +} bind def +userdict /discardDict 7 dict dup begin +put +/pre38Initialize +{ + /endStringLength endString length store + /newBuff buffer 0 endStringLength getinterval store + /newBuffButFirst newBuff 1 endStringLength 1 sub getinterval store + /newBuffLast newBuff endStringLength 1 sub 1 getinterval store +} def +/shiftBuffer +{ + newBuff 0 newBuffButFirst putinterval + newBuffLast 0 + currentfile read not + { + stop + } if + put +} def +0 +{ + pre38Initialize + mark + currentfile newBuff readstring exch pop + { + { + newBuff endString eq + { + cleartomark stop + } if + shiftBuffer + } loop + } + { + stop + } ifelse +} def +1 +{ + pre38Initialize + /beginString exch store + mark + currentfile newBuff readstring exch pop + { + { + newBuff beginString eq + { + /layerCount dup load 1 add store + } + { + newBuff endString eq + { + /layerCount dup load 1 sub store + layerCount 0 eq + { + cleartomark stop + } if + } if + } ifelse + shiftBuffer + } loop + } if +} def +2 +{ + mark + { + currentfile buffer {readline} stopped { + % assume error was due to overfilling the buffer + }{ + not + { + stop + } if + endString eq { + cleartomark stop + } if + }ifelse + } loop +} def +3 +{ + /beginString exch store + /layerCnt 1 store + mark + { + currentfile buffer {readline} stopped { + % assume error was due to overfilling the buffer + }{ + not + { + stop + } if + dup beginString eq + { + pop /layerCnt dup load 1 add store + } + { + endString eq + { + layerCnt 1 eq + { + cleartomark stop + } + { + /layerCnt dup load 1 sub store + } ifelse + } if + } ifelse + }ifelse + } loop +} def +end +userdict /clipRenderOff 15 dict dup begin +put +{ + /n /N /s /S /f /F /b /B +} +{ + { + _doClip 1 eq + { + /_doClip 0 ddef _eo {eoclip} {clip} ifelse + } if + newpath + } def +} forall +/Tr /pop load def +/Bb {} def +/BB /pop load def +/Bg {12 npop} def +/Bm {6 npop} def +/Bc /Bm load def +/Bh {4 npop} def +end +/Lb +{ + 6 npop + 7 2 roll + 5 npop + 0 eq + { + 0 eq + { + (%AI5_BeginLayer) 1 (%AI5_EndLayer--) discard + } + { + + /clipForward? true def + + /Tx /pop load def + /Tj /pop load def + + currentdict end clipRenderOff begin begin + } ifelse + } + { + 0 eq + { + save /discardSave exch store + } if + } ifelse +} bind def +/LB +{ + discardSave dup null ne + { + restore + } + { + pop + clipForward? + { + currentdict + end + end + begin + + /clipForward? false ddef + } if + } ifelse +} bind def +/Pb +{ + pop pop + 0 (%AI5_EndPalette) discard +} bind def +/Np +{ + 0 (%AI5_End_NonPrinting--) discard +} bind def +/Ln /pop load def +/Ap +/pop load def +/Ar +{ + 72 exch div + 0 dtransform dup mul exch dup mul add sqrt + dup 1 lt + { + pop 1 + } if + setflat +} def +/Mb +{ + q +} def +/Md +{ +} def +/MB +{ + Q +} def +/nc 4 dict def +nc begin +/setgray +{ + pop +} bind def +/setcmykcolor +{ + 4 npop +} bind def +/setrgbcolor +{ + 3 npop +} bind def +/setcustomcolor +{ + 2 npop +} bind def +currentdict readonly pop +end +/XP +{ + 4 npop +} bind def +/XD +{ + pop +} bind def +end +setpacking +%%EndResource +%%BeginResource: procset Adobe_cshow 2.0 8 +%%Title: (Writing System Operators) +%%Version: 2.0 8 +%%CreationDate: (1/23/89) () +%%Copyright: ((C) 1992-1996 Adobe Systems Incorporated All Rights Reserved) +currentpacking true setpacking +userdict /Adobe_cshow 14 dict dup begin put +/initialize +{ + Adobe_cshow begin + Adobe_cshow + { + dup xcheck + { + bind + } if + pop pop + } forall + end + Adobe_cshow begin +} def +/terminate +{ +currentdict Adobe_cshow eq + { + end + } if +} def +/cforall +{ + /_lobyte 0 ddef + /_hibyte 0 ddef + /_cproc exch ddef + /_cscript currentfont /FontScript known { currentfont /FontScript get } { -1 } ifelse ddef + { + /_lobyte exch ddef + _hibyte 0 eq + _cscript 1 eq + _lobyte 129 ge _lobyte 159 le and + _lobyte 224 ge _lobyte 252 le and or and + _cscript 2 eq + _lobyte 161 ge _lobyte 254 le and and + _cscript 3 eq + _lobyte 161 ge _lobyte 254 le and and + _cscript 25 eq + _lobyte 161 ge _lobyte 254 le and and + _cscript -1 eq + or or or or and + { + /_hibyte _lobyte ddef + } + { + _hibyte 256 mul _lobyte add + _cproc + /_hibyte 0 ddef + } ifelse + } forall +} def +/cstring +{ + dup 256 lt + { + (s) dup 0 4 3 roll put + } + { + dup 256 idiv exch 256 mod + (hl) dup dup 0 6 5 roll put 1 4 3 roll put + } ifelse +} def +/clength +{ + 0 exch + { 256 lt { 1 } { 2 } ifelse add } cforall +} def +/hawidthshow +{ + { + dup cstring + show + _hvax _hvay rmoveto + _hvwb eq { _hvcx _hvcy rmoveto } if + } cforall +} def +/vawidthshow +{ + { + dup 255 le + _charorientation 1 eq + and + { + -90 rotate + 0 _fontRotateAdjust rmoveto + cstring + _hvcx _hvcy _hvwb _hvax _hvay 6 -1 roll awidthshow + 0 _fontRotateAdjust neg rmoveto + 90 rotate + } + { + currentpoint + _fontHeight sub + exch _hvay sub exch _hvax sub + 2 index _hvwb eq { exch _hvcy sub exch _hvcx sub } if + 3 2 roll + cstring + dup stringwidth pop 2 div neg _fontAscent neg rmoveto + show + moveto + } ifelse + } cforall +} def +/hvawidthshow +{ + 6 1 roll + /_hvay exch ddef + /_hvax exch ddef + /_hvwb exch ddef + /_hvcy exch ddef + /_hvcx exch ddef + _lineorientation 0 eq { hawidthshow } { vawidthshow } ifelse +} def +/hvwidthshow +{ + 0 0 3 -1 roll hvawidthshow +} def +/hvashow +{ + 0 0 0 6 -3 roll hvawidthshow +} def +/hvshow +{ + 0 0 0 0 0 6 -1 roll hvawidthshow +} def +currentdict readonly pop end +setpacking +%%EndResource +%%BeginResource: procset Adobe_shading_AI8 1.0 0 +%%Title: (Adobe Illustrator 8 Shading Procset) +%%Version: 1.0 0 +%%CreationDate: (12/17/97) () +%%Copyright: ((C) 1987-1997 Adobe Systems Incorporated All Rights Reserved) +userdict /defaultpacking currentpacking put true setpacking +userdict /Adobe_shading_AI8 10 dict dup begin put +/initialize { + Adobe_shading_AI8 begin + Adobe_shading_AI8 bdprocs + Mesh /initialize get exec +} def +/terminate { + currentdict Adobe_shading_AI8 eq { + end + } if +} def +/bdprocs { + { + dup xcheck 1 index type /arraytype eq and { + bind + } if + pop pop + } forall +} def +/X! {pop} def +/X# {pop pop} def +/Mesh 40 dict def +Mesh begin +/initialize { + Mesh bdprocs + Mesh begin + /emulate? /AI8MeshEmulation where { + pop AI8MeshEmulation + }{ + systemdict /shfill known not + } ifelse def + end +} def +/bd { + shadingdict begin +} def +/paint { + emulate? { + end + }{ + /_lp /none ddef _fc /_lp /none ddef + + /AIColorSpace AIColorSpace tocolorspace store + /ColorSpace AIColorSpace topsspace store + + version_ge_3010.106 not systemdict /setsmoothness known and { + 0.0001 setsmoothness + } if + + composite? { + /DataSource getdatasrc def + Matrix concat + currentdict end + shfill + }{ + AIColorSpace makesmarks AIPlateList markingplate and not isoverprint and { + end + }{ + /ColorSpace /DeviceGray store + /Decode [0 1 0 1 0 1] store + /DataSource getplatesrc def + Matrix concat + currentdict end + shfill + } ifelse + } ifelse + } ifelse +} def +/shadingdict 12 dict def +shadingdict begin + /ShadingType 6 def + /BitsPerCoordinate 16 def + /BitsPerComponent 8 def + /BitsPerFlag 8 def +end +/datafile null def +/databuf 256 string def +/dataptr 0 def +/srcspace null def +/srcchannels 0 def +/dstchannels 0 def +/dstplate 0 def +/srctodstcolor null def +/getplatesrc { + /srcspace AIColorSpace store + /srcchannels AIColorSpace getnchannels store + /dstchannels 1 store + /dstplate getplateindex store + /srctodstcolor srcspace makesmarks { + dstplate 4 eq { + {1 exch sub} + }{ + {srcspace tocmyk 3 dstplate sub index 1 exch sub 5 1 roll 4 {pop} repeat} + } ifelse + }{ + {srcchannels {pop} repeat 1} + } ifelse store + /datafile getdatasrc store + /rdpatch168 load DataLength () /SubFileDecode filter +} def +/getdatasrc { + /rdcmntline load /ASCII85Decode filter +} def +/rdpatch168 { + /dataptr 0 store + 49 rdcount + 4 { + dup {pop srcchannels getint8} if + dup {pop srctodstcolor dstchannels putint8 true} if + } repeat + {databuf 0 dataptr getinterval}{()} ifelse +} def +/rdpatch3216 { + /dataptr 0 store + 97 rdcount + 4 { + dup {pop srcchannels getint16} if + dup {pop srctodstcolor dstchannels putint16 true} if + } repeat + {databuf 0 dataptr getinterval}{()} ifelse +} def +/rdcount { + dup 0 gt { + datafile databuf dataptr 4 -1 roll getinterval readstring + exch length dataptr add /dataptr exch store + }{ + true + } ifelse +} def +/getint8 { + mark true 3 -1 roll + { + dup {pop datafile read} if + dup {pop 255 div true} if + } repeat + { + counttomark 1 add -1 roll pop true + }{ + cleartomark false + } ifelse +} def +/putint8 { + dup dataptr add /dataptr exch store + dataptr exch + { + 1 sub exch + 255 mul cvi + databuf 2 index + 3 -1 roll put + } repeat + pop +} def +/getint16 { + mark true 3 -1 roll + { + dup {pop datafile read} if + dup {pop 256 mul datafile read} if + dup {pop add 65535 div true} if + } repeat + { + counttomark 1 add -1 roll pop true + }{ + cleartomark false + } ifelse +} def +/putint16 { + dup 2 mul dataptr add /dataptr exch store + dataptr exch + { + 2 sub exch + 65535 mul cvi dup + 256 idiv databuf 3 index 3 -1 roll put + 256 mod databuf 2 index 1 add 3 -1 roll put + } repeat + pop +} def +/srcbuf 256 string def +/rdcmntline { + currentfile srcbuf readline pop + (%) anchorsearch {pop} if +} def +/getplateindex { + 0 [cyan? magenta? yellow? black? customColor?] {{exit} if 1 add} forall +} def +/aicsarray 4 array def +/aicsaltvals 4 array def +/aicsaltcolr aicsaltvals def +/tocolorspace { + dup type /arraytype eq { + mark exch aload pop + aicsarray 0 3 -1 roll put + aicsarray 1 3 -1 roll put + dup aicsarray 2 3 -1 roll put + gettintxform aicsarray 3 3 -1 roll put + counttomark aicsaltvals 0 3 -1 roll getinterval /aicsaltcolr exch store + aicsaltcolr astore pop pop + aicsarray + } if +} def +/subtintxform {aicsaltcolr {1 index mul exch} forall pop} def +/addtintxform {aicsaltcolr {1 sub 1 index mul 1 add exch} forall pop} def +/gettintxform { + /DeviceRGB eq {/addtintxform}{/subtintxform} ifelse load +} def +/getnchannels { + dup type /arraytype eq {0 get} if + colorspacedict exch get begin Channels end +} def +/makesmarks { + composite? { + pop true + }{ + dup dup type /arraytype eq {0 get} if + colorspacedict exch get begin MarksPlate end + } ifelse +} def +/markingplate { + composite? { + pop true + }{ + dup type /arraytype eq { + dup length getplateindex gt {getplateindex get}{pop false} ifelse + } if + } ifelse +} def +/tocmyk { + dup dup type /arraytype eq {0 get} if + colorspacedict exch get begin ToCMYK end +} def +/topsspace { + dup dup type /arraytype eq {0 get} if + colorspacedict exch get begin ToPSSpace end +} def +/colorspacedict 5 dict dup begin + /DeviceGray 4 dict dup begin + /Channels 1 def + /MarksPlate {pop black?} def + /ToCMYK {pop 1 exch sub 0 0 0 4 -1 roll} def + /ToPSSpace {} def + end def + /DeviceRGB 4 dict dup begin + /Channels 3 def + /MarksPlate {pop isCMYKSep?} def + /ToCMYK {pop _rgbtocmyk} def + /ToPSSpace {} def + end def + /DeviceCMYK 4 dict dup begin + /Channels 4 def + /MarksPlate {pop isCMYKSep?} def + /ToCMYK {pop} def + /ToPSSpace {} def + end def + /Separation 4 dict dup begin + /Channels 1 def + /MarksPlate { + /findcmykcustomcolor where { + pop dup 1 exch ToCMYK 5 -1 roll 1 get + findcmykcustomcolor 1 setcustomcolor + systemdict /currentgray get exec + 1 ne + }{ + pop false + } ifelse + } def + /ToCMYK { + dup 2 get mark exch 4 2 roll + 3 get exec + counttomark -1 roll tocmyk + 5 -1 roll pop + } def + /ToPSSpace {} def + end def + /Process 4 dict dup begin + /Channels 1 def + /MarksPlate { + isCMYKSep? { + 1 exch ToCMYK 4 array astore getplateindex get 0 ne + }{ + pop false + } ifelse + } def + /ToCMYK { + dup 2 get mark exch 4 2 roll + 3 get exec + counttomark -1 roll tocmyk + 5 -1 roll pop + } def + /ToPSSpace { + 4 array copy dup 0 /Separation put + } def + end def +end def +/isoverprint { + /currentoverprint where {pop currentoverprint}{_of} ifelse +} def +/version_ge_3010.106 { + version {cvr} stopped { + pop + false + }{ + 3010.106 ge + } ifelse +} def +end +end +defaultpacking setpacking +%%EndResource +%%EndProlog +%%BeginSetup +userdict /_useSmoothShade false put +userdict /_aicmykps false put +userdict /_forceToCMYK false put +Adobe_level2_AI5 /initialize get exec +Adobe_cshow /initialize get exec +Adobe_ColorImage_AI6 /initialize get exec +Adobe_shading_AI8 /initialize get exec +Adobe_Illustrator_AI5 /initialize get exec +%AI5_Begin_NonPrinting +Np +%AI3_BeginPattern: (Brick) +(Brick) 0 0 72 72 [ +%AI3_Tile +(0 O 0 R 0.3 0.85 0.85 0 k + 0.3 0.85 0.85 0 K +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +0 0 m +0 72 L +72 72 L +72 0 L +0 0 L +f %AI6_EndPatternLayer +) & +(0 O 0 R 1 g + 1 G +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 0.3 w 4 M []0 d %AI3_Note: 0 D +0 XR +0 68.4097 m +72 68.4097 l +S 0 61.209 m +72 61.209 L +S 0 54.0088 m +72 54.0088 L +S 0 46.8076 m +72 46.8076 L +S 0 39.6084 m +72 39.6084 L +S 0 32.4072 m +72 32.4072 L +S 0 25.207 m +72 25.207 L +S 0 18.0059 m +72 18.0059 L +S 0 10.8057 m +72 10.8057 L +S 0 3.6064 m +72 3.6064 L +S 68.4102 68.4097 m +68.4102 61.2217 l +S 54.0098 68.4097 m +54.0098 61.2217 L +S 39.6094 68.4097 m +39.6094 61.2217 L +S 25.21 68.4097 m +25.21 61.2217 L +S 10.8105 68.4097 m +10.8105 61.2217 L +S 68.4102 53.9717 m +68.4102 46.7842 l +S 54.0098 53.9717 m +54.0098 46.7842 L +S 39.6094 53.9717 m +39.6094 46.7842 L +S 25.21 53.9717 m +25.21 46.7842 L +S 10.8105 53.9717 m +10.8105 46.7842 L +S 68.4102 39.5967 m +68.4102 32.4092 l +S 54.0098 39.5967 m +54.0098 32.4092 L +S 39.6094 39.5967 m +39.6094 32.4092 L +S 25.21 39.5967 m +25.21 32.4092 L +S 10.8105 39.5967 m +10.8105 32.4092 L +S 68.4102 25.2217 m +68.4102 18.0342 l +S 54.0098 25.2217 m +54.0098 18.0342 L +S 39.6094 25.2217 m +39.6094 18.0342 L +S 25.21 25.2217 m +25.21 18.0342 L +S 10.8105 25.2217 m +10.8105 18.0342 L +S 68.4102 10.7842 m +68.4102 3.5967 l +S 54.0098 10.7842 m +54.0098 3.5967 L +S 39.6094 10.7842 m +39.6094 3.5967 L +S 25.21 10.7842 m +25.21 3.5967 L +S 10.8105 10.7842 m +10.8105 3.5967 L +S 61.1973 3.5967 m +61.1973 0 L +S 46.7969 3.5967 m +46.7969 0 L +S 32.3965 3.5967 m +32.3965 0 L +S 17.9971 3.5967 m +17.9971 0 L +S 3.5967 3.5967 m +3.5967 0 l +S 61.1973 18.0342 m +61.1973 10.8467 L +S 46.7969 18.0342 m +46.7969 10.8467 L +S 32.3965 18.0342 m +32.3965 10.8467 L +S 17.9971 18.0342 m +17.9971 10.8467 L +S 3.5967 18.0342 m +3.5967 10.8467 l +S 61.1973 32.4092 m +61.1973 25.2217 L +S 46.7969 32.4092 m +46.7969 25.2217 L +S 17.9971 32.4092 m +17.9971 25.2217 L +S 3.5967 32.4092 m +3.5967 25.2217 l +S 61.1973 46.7842 m +61.1973 39.5967 L +S 46.7969 46.7842 m +46.7969 39.5967 L +S 32.3965 46.7842 m +32.3965 39.5967 L +S 17.9971 46.7842 m +17.9971 39.5967 L +S 3.5967 46.7842 m +3.5967 39.5967 l +S 61.1973 61.2217 m +61.1973 54.0347 L +S 46.7969 61.2217 m +46.7969 54.0347 L +S 32.3965 61.2217 m +32.3965 54.0347 L +S 17.9971 61.2217 m +17.9971 54.0347 L +S 3.5967 61.2217 m +3.5967 54.0347 l +S 61.1973 71.959 m +61.1973 68.4717 L +S 46.7969 71.959 m +46.7969 68.4717 L +S 32.3965 71.959 m +32.3965 68.4717 L +S 17.9971 71.959 m +17.9971 68.4717 L +S 3.5967 71.959 m +3.5967 68.4717 l +S 32.3965 32.4092 m +32.3965 25.2217 L +S %AI6_EndPatternLayer +) & +] E +%AI3_EndPattern +%AI3_BeginPattern: (Confetti) +(Confetti) 4.85 3.617 76.85 75.617 [ +%AI3_Tile +(0 O 0 R 1 g + 1 G +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +4.85 3.617 m +4.85 75.617 L +76.85 75.617 L +76.85 3.617 L +4.85 3.617 L +f %AI6_EndPatternLayer +) & +(0 O 0 R 0 g + 0 G +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 0.3 w 4 M []0 d %AI3_Note: 0 D +0 XR +10.6 64.867 m +7.85 62.867 l +S 9.1 8.617 m +6.85 6.867 l +S 78.1 68.617 m +74.85 67.867 l +S 76.85 56.867 m +74.35 55.117 l +S 79.6 51.617 m +76.6 51.617 l +S 76.35 44.117 m +73.6 45.867 l +S 78.6 35.867 m +76.6 34.367 l +S 76.1 23.867 m +73.35 26.117 l +S 78.1 12.867 m +73.85 13.617 l +S 68.35 14.617 m +66.1 12.867 l +S 76.6 30.617 m +73.6 30.617 l +S 62.85 58.117 m +60.956 60.941 l +S 32.85 59.617 m +31.196 62.181 l +S 47.891 64.061 m +49.744 66.742 l +S 72.814 2.769 m +73.928 5.729 l +S 67.976 2.633 m +67.35 5.909 l +S 61.85 27.617 m +59.956 30.441 l +S 53.504 56.053 m +51.85 58.617 l +S 52.762 1.779 m +52.876 4.776 l +S 45.391 5.311 m +47.244 7.992 l +S 37.062 3.375 m +35.639 5.43 l +S 55.165 34.828 m +57.518 37.491 l +S 20.795 3.242 m +22.12 5.193 l +S 14.097 4.747 m +15.008 8.965 l +S 9.736 1.91 m +8.073 4.225 l +S 31.891 5.573 m +32.005 8.571 l +S 12.1 70.367 m +15.6 68.867 l +S 9.35 54.867 m +9.6 58.117 l +S 12.85 31.867 m +14.35 28.117 l +S 10.1 37.367 m +12.35 41.117 l +S 34.1 71.117 m +31.85 68.617 l +S 38.35 71.117 m +41.6 68.367 l +S 55.1 71.117 m +58.35 69.117 l +S 57.35 65.117 m +55.35 61.867 l +S 64.35 66.367 m +69.35 68.617 l +S 71.85 62.867 m +69.35 61.117 l +S 23.6 70.867 m +23.6 67.867 l +S 20.6 65.867 m +17.35 65.367 l +S 24.85 61.367 m +25.35 58.117 l +S 25.85 65.867 m +29.35 66.617 l +S 14.1 54.117 m +16.85 56.117 l +S 12.35 11.617 m +12.6 15.617 l +S 12.1 19.867 m +14.35 22.367 l +S 26.1 9.867 m +23.6 13.367 l +S 34.6 47.117 m +32.1 45.367 l +S 62.6 41.867 m +59.85 43.367 l +S 31.6 35.617 m +27.85 36.367 l +S 36.35 26.117 m +34.35 24.617 l +S 33.85 14.117 m +31.1 16.367 l +S 37.1 9.867 m +35.1 11.117 l +S 34.35 20.867 m +31.35 20.867 l +S 44.6 56.617 m +42.1 54.867 l +S 47.35 51.367 m +44.35 51.367 l +S 44.1 43.867 m +41.35 45.617 l +S 43.35 33.117 m +42.6 30.617 l +S 43.85 23.617 m +41.1 25.867 l +S 44.35 15.617 m +42.35 16.867 l +S 67.823 31.1 m +64.823 31.1 l +S 27.1 32.617 m +29.6 30.867 l +S 31.85 55.117 m +34.85 55.117 l +S 19.6 40.867 m +22.1 39.117 l +S 16.85 35.617 m +19.85 35.617 l +S 20.1 28.117 m +22.85 29.867 l +S 52.1 42.617 m +54.484 44.178 l +S 52.437 50.146 m +54.821 48.325 l +S 59.572 54.133 m +59.35 51.117 l +S 50.185 10.055 m +53.234 9.928 l +S 51.187 15.896 m +53.571 14.075 l +S 58.322 19.883 m +59.445 16.823 l +S 53.1 32.117 m +50.6 30.367 l +S 52.85 24.617 m +49.6 25.617 l +S 61.85 9.117 m +59.1 10.867 l +S 69.35 34.617 m +66.6 36.367 l +S 67.1 23.617 m +65.1 22.117 l +S 24.435 46.055 m +27.484 45.928 l +S 25.437 51.896 m +27.821 50.075 l +S 62.6 47.117 m +65.321 46.575 l +S 19.85 19.867 m +20.35 16.617 l +S 21.85 21.867 m +25.35 22.617 l +S 37.6 62.867 m +41.6 62.117 l +S 38.323 42.1 m +38.823 38.6 l +S 69.35 52.617 m +66.85 53.867 l +S 14.85 62.117 m +18.1 59.367 l +S 9.6 46.117 m +7.1 44.367 l +S 20.6 51.617 m +18.6 50.117 l +S 46.141 70.811 m +47.994 73.492 l +S 69.391 40.561 m +71.244 43.242 l +S 38.641 49.311 m +39.35 52.117 l +S 25.141 16.811 m +25.85 19.617 l +S 36.6 32.867 m +34.6 31.367 l +S 6.1 68.617 m +2.85 67.867 l +S 4.85 56.867 m +2.35 55.117 l +S 7.6 51.617 m +4.6 51.617 l +S 6.6 35.867 m +4.6 34.367 l +S 6.1 12.867 m +1.85 13.617 l +S 4.6 30.617 m +1.6 30.617 l +S 72.814 74.769 m +73.928 77.729 l +S 67.976 74.633 m +67.35 77.909 l +S 52.762 73.779 m +52.876 76.776 l +S 37.062 75.375 m +35.639 77.43 l +S 20.795 75.242 m +22.12 77.193 l +S 9.736 73.91 m +8.073 76.225 l +S 10.1 23.617 m +6.35 24.367 l +S 73.217 18.276 m +71.323 21.1 l +S 28.823 39.6 m +29.505 42.389 l +S 49.6 38.617 m +47.6 37.117 l +S 60.323 73.6 m +62.323 76.6 l +S 60.323 1.6 m +62.323 4.6 l +S %AI6_EndPatternLayer +) & +] E +%AI3_EndPattern +%AI3_BeginPattern: (Leaves - Fall ) +(Leaves - Fall ) 0 0 64.0781 78.9336 [ +%AI3_Tile +(0 O 0 R 0.05 0.2 1 0 k + 0.05 0.2 1 0 K +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +64.0781 78.9336 m +64.0781 0 L +0 0 L +0 78.9336 L +64.0781 78.9336 L +f %AI6_EndPatternLayer +) & +(0 O 0 R 0.83 0 1 0 k + 0.83 0 1 0 K +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 1 D +0 XR +29.7578 0.9902 m +30.4346 1.1914 30.7246 1.3428 V +29.2559 4.0547 33.707 8.3359 34.627 9.0762 C +35.2275 8.8506 35.3477 6.3184 34.6699 4.9805 C +35.5137 5.1035 37.7031 3.7256 38.4609 2.4365 C +38.5254 3.125 40.0957 6.0664 40.9219 6.4434 C +40.002 6.8408 39.3359 8.3135 38.5742 9.7617 C +39.5957 9.9287 40.9961 9.0078 42.4668 8.1025 C +42.9814 8.9043 44.3555 9.875 45.6143 10.3916 C +44.5264 11.0781 44.0313 11.8203 43.5352 13.2793 C +42.4922 12.7139 40.3057 12.5645 39.7764 12.8516 C +40.291 13.9648 42.5371 14.5078 43.2676 14.4551 C +43.0137 15.3164 42.8652 17.4697 43.0391 20.0625 C +41.3789 18.7461 39.834 17.4297 38.1738 17.4883 C +38.4434 16.0664 37.8076 14.2607 37.4307 13.7676 C +36.8574 14.5117 36.4463 15.3389 36.8008 17.3164 C +35.3486 17.8008 34.1113 18.3467 32.7373 19.6045 C +32.7373 17.7734 32.166 16.5723 31.2969 15.2959 C +32.5576 14.8076 33.8301 13.6045 33.8252 12.5664 C +32.9775 12.7178 31.2852 13.4619 30.793 14.4551 C +30.0742 13.707 28.3906 12.3984 26.7871 12.3945 C +27.9746 11.5391 28.8945 10.5059 28.9893 8.5938 C +30.2422 9.5645 32.6953 10.1797 34.0752 9.582 C +29.2344 5.3457 29.7031 2.3125 29.7578 0.9902 C +f 13.8525 29.9844 m +13.3281 29.5127 13.1309 29.25 V +15.623 27.4326 13.3691 21.6074 12.8555 20.5439 C +12.2168 20.4883 10.8096 23.2285 10.8457 24.7266 C +9.7129 23.9707 8.0488 24.0918 6.4463 24.3779 C +7.0186 23.2891 6.6172 21.3447 5.8164 20.5439 C +6.8184 20.5801 8.1699 19.8652 9.4785 18.8838 C +8.6436 18.0645 6.8164 18.2246 4.9004 18.8838 C +4.9004 17.5107 4.0781 15.7734 3.2412 14.5918 C +4.5576 14.6484 5.7031 13.9629 6.5605 12.9316 C +7.2256 14.5 9.2598 15.6133 10.166 15.5645 C +10.1826 14.1992 8.6094 12.1094 7.5879 11.7109 C +8.1875 11.041 9.207 9.5107 10.166 7.0947 C +10.9648 9.0205 12.1348 10.2627 13.3672 11.1953 C +12.2256 12.7578 12.3994 13.6289 12.7988 15.1074 C +13.541 14.5664 14.5723 14.1338 14.7441 12.1309 C +16.4609 12.416 17.5957 12.3447 19.0938 11.4434 C +18.6387 13.1055 18.6348 14.707 18.9551 16.4063 C +17.1055 16.2666 15.5449 16.4795 14.5156 17.9688 C +15.3457 18.1953 17.6055 18.2549 18.4795 17.3223 C +18.8066 18.3047 19.7012 19.7109 21.1475 20.4043 C +19.707 20.6641 18.7227 21.7637 17.8135 23.4492 C +17.1006 22.0332 14.873 20.3691 13.3711 20.3145 C +15.373 24.3779 15.373 27.2959 13.8525 29.9844 C +f 41.2324 26.0742 m +41.5518 26.7021 41.7549 26.959 V +44.1523 25.0176 48.958 28.3262 49.8535 29.0957 C +49.7432 29.7266 47.6182 30.8643 45.9004 29.834 C +46.3408 31.123 45.4395 33.084 44.2402 34.126 C +45.9805 34.0254 48.126 35.3867 48.6484 36.1289 C +48.8701 35.1514 50.0527 33.8809 51.3379 32.8672 C +51.6895 33.8398 50.9941 35.958 50.0781 37.5605 C +51.3125 38.0605 52.4248 38.9912 52.8828 40.25 C +53.3398 38.9336 54.3428 38.2598 55.6875 37.5039 C +54.5273 36.0762 53.7471 33.9023 54.0273 33.0391 C +55.3496 33.374 56.9209 36.0918 57.0439 37.1816 C +57.9189 36.415 59.4727 35.7285 62.0537 35.4219 C +60.3535 34.3438 59.9902 32.3516 59.4063 30.9219 C +58.2588 31.3682 56.0898 31.4277 55.1152 30.8643 C +55.8281 30.2852 57.168 29.7344 59.1777 29.7207 C +59.1777 28.1758 59.6406 27.043 60.8945 25.8281 C +59.1719 25.8418 57.0723 25.3555 55.5762 24.9629 C +55.3281 26.292 54.4844 27.8887 53.3398 28.2891 C +53.334 27.4277 53.5996 25.1797 54.4844 24.5117 C +53.6201 23.9443 52.3672 22.5674 51.9102 20.8496 C +51.2881 22.1758 50.4268 23.4805 48.5645 23.9238 C +49.749 24.9766 50.584 26.9941 50.25 28.4609 C +45.1973 24.4785 42.5215 25.7773 41.2324 26.0742 C +f 27.7578 38.7324 m +28.4346 38.9316 28.7246 39.084 V +27.2559 41.7969 31.707 46.0776 32.627 46.8169 C +33.2275 46.5918 33.3477 44.0586 32.6699 42.7227 C +33.5137 42.8457 35.7031 41.4678 36.4609 40.1787 C +36.5254 40.8652 38.0957 43.8066 38.9219 44.1846 C +38.002 44.582 37.3359 46.0547 36.5742 47.5039 C +37.5957 47.6709 38.9961 46.7485 40.4668 45.8438 C +40.9814 46.6445 42.3555 47.6177 43.6143 48.1328 C +42.5264 48.8198 42.0313 49.5615 41.5352 51.0205 C +40.4922 50.4556 38.3057 50.3057 37.7764 50.5938 C +38.291 51.7056 40.5371 52.2485 41.2676 52.1958 C +41.0137 53.0576 40.8652 55.2109 41.0391 57.8037 C +39.3789 56.4878 37.834 55.1719 36.1738 55.2285 C +36.4434 53.8076 35.8076 52.002 35.4307 51.5088 C +34.8574 52.2529 34.4463 53.0796 34.8008 55.0576 C +33.3486 55.5425 32.1113 56.0879 30.7373 57.3467 C +30.7373 55.5146 30.166 54.314 29.2969 53.0366 C +30.5576 52.5488 31.8301 51.3467 31.8252 50.3076 C +30.9775 50.46 29.2852 51.2036 28.793 52.1958 C +28.0742 51.4497 26.3906 50.1396 24.7871 50.1357 C +25.9746 49.2817 26.8945 48.2466 26.9893 46.335 C +28.2422 47.3057 30.6953 47.9209 32.0752 47.3237 C +27.2344 43.0869 27.7031 40.0547 27.7578 38.7324 C +f 13.5195 70.3916 m +12.9941 69.9209 12.7988 69.6587 V +15.2891 67.8418 13.0352 62.0146 12.5225 60.9517 C +11.8828 60.8955 10.4766 63.6367 10.5117 65.1348 C +9.3809 64.3789 7.7148 64.4995 6.1133 64.7856 C +6.6855 63.6987 6.2842 61.7529 5.4834 60.9517 C +6.4854 60.9878 7.8359 60.2729 9.1455 59.2925 C +8.3105 58.4717 6.4834 58.6338 4.5674 59.2925 C +4.5674 57.9189 3.7461 56.1816 2.9082 54.9995 C +4.2246 55.0576 5.3691 54.3706 6.2275 53.3408 C +6.8926 54.9097 8.9258 56.0215 9.832 55.9727 C +9.8496 54.6079 8.2764 52.5176 7.2539 52.1187 C +7.8545 51.4497 8.873 49.9189 9.832 47.5039 C +10.6309 49.4297 11.8008 50.6719 13.0342 51.6045 C +11.8926 53.1655 12.0664 54.0366 12.4648 55.5146 C +13.209 54.9746 14.2393 54.5415 14.4102 52.5386 C +16.127 52.8247 17.2637 52.7529 18.7598 51.8525 C +18.3057 53.5137 18.3027 55.1147 18.623 56.8149 C +16.7725 56.6748 15.2129 56.8887 14.1826 58.377 C +15.0117 58.6035 17.2725 58.6626 18.1465 57.731 C +18.4736 58.7129 19.3691 60.1187 20.8145 60.8125 C +19.375 61.0728 18.3896 62.1719 17.4805 63.8579 C +16.7676 62.4429 14.541 60.7769 13.0371 60.7227 C +15.041 64.7856 15.041 67.7046 13.5195 70.3916 C +f 41.2324 64.4824 m +41.5518 65.1113 41.7549 65.3682 V +44.1523 63.4272 48.958 66.7354 49.8535 67.5034 C +49.7432 68.1362 47.6182 69.2725 45.9004 68.2422 C +46.3408 69.5313 45.4395 71.4922 44.2402 72.5342 C +45.9805 72.4341 48.126 73.7954 48.6484 74.5371 C +48.8701 73.5601 50.0527 72.29 51.3379 71.2754 C +51.6895 72.249 50.9941 74.3662 50.0781 75.9683 C +51.3125 76.4692 52.4248 77.3994 52.8828 78.6582 C +53.3398 77.3423 54.3428 76.667 55.6875 75.9111 C +54.5273 74.4844 53.7471 72.3101 54.0273 71.4473 C +55.3496 71.7822 56.9209 74.5 57.0439 75.5903 C +57.9189 74.8232 59.4727 74.1372 62.0537 73.8311 C +60.3535 72.7534 59.9902 70.7612 59.4063 69.3301 C +58.2588 69.7773 56.0898 69.8364 55.1152 69.2725 C +55.8281 68.6934 57.168 68.1431 59.1777 68.1284 C +59.1777 66.583 59.6406 65.4512 60.8945 64.2373 C +59.1719 64.249 57.0723 63.7632 55.5762 63.3721 C +55.3281 64.7002 54.4844 66.2974 53.3398 66.6973 C +53.334 65.8364 53.5996 63.5874 54.4844 62.9214 C +53.6201 62.353 52.3672 60.9751 51.9102 59.2583 C +51.2881 60.583 50.4268 61.8882 48.5645 62.333 C +49.749 63.3862 50.584 65.4033 50.25 66.8691 C +45.1973 62.8872 42.5215 64.1851 41.2324 64.4824 C +f %AI6_EndPatternLayer +) & +] E +%AI3_EndPattern +%AI3_BeginPattern: (Stripes) +(Stripes) 8.45 4.6001 80.45 76.6001 [ +%AI3_Tile +(0 O 0 R 1 0.07 1 0 k + 1 0.07 1 0 K +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 3.6 w 4 M []0 d %AI3_Note: 0 D +0 XR +8.2 8.2 m +80.7 8.2 L +S 8.2 22.6001 m +80.7 22.6001 L +S 8.2 37.0002 m +80.7 37.0002 L +S 8.2 51.4 m +80.7 51.4 L +S 8.2 65.8001 m +80.7 65.8001 L +S 8.2 15.4 m +80.7 15.4 L +S 8.2 29.8001 m +80.7 29.8001 L +S 8.2 44.2 m +80.7 44.2 L +S 8.2 58.6001 m +80.7 58.6001 L +S 8.2 73.0002 m +80.7 73.0002 L +S %AI6_EndPatternLayer +) & +] E +%AI3_EndPattern +%AI5_End_NonPrinting-- +%AI5_Begin_NonPrinting +Np +%AI8_BeginBrushPattern +(New Pattern 1) +0 A +u 1 Ap +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7834.75 8587 m +-7834.75 8563 L +-7884.75 8563 L +-7884.75 8587 L +-7834.75 8587 L +n u 0 Ap +0 O +1 g +-7854.75 8585 m +-7866.96 8588.0527 -7875.4434 8578.0605 -7884.75 8570.9512 C +F -7844.75 8585 m +-7861.1279 8589.0947 -7870.8008 8569.7227 -7884.75 8565.3154 C +F -7884.75 8565 m +-7864.75 8560 -7854.75 8590 -7834.75 8585 C +F -7874.75 8565 m +-7858.3721 8560.9053 -7848.6992 8580.2773 -7834.75 8584.6846 C +F -7864.75 8565 m +-7852.54 8561.9473 -7844.0566 8571.9395 -7834.75 8579.0488 C +F -7844.75 8565 m +-7841.1279 8564.0947 -7837.835 8564.3408 -7834.75 8565.3154 C +F -7874.75 8585 m +-7878.3721 8585.9053 -7881.665 8585.6592 -7884.75 8584.6846 C +F -7844.7817 8565.125 m +-7850.9009 8563.6162 -7854.7817 8565.125 V +-7858.877 8563.6484 -7864.7817 8565.125 V +-7869.7446 8563.4492 -7874.7817 8565.125 V +-7880.7969 8563.5742 -7884.7817 8565.125 V +-7884.7817 8584.8096 L +-7881.6958 8585.7842 -7878.2969 8585.9912 -7874.3799 8584.9082 C +-7868.2134 8586.4912 -7864.4634 8584.9082 V +-7859.4634 8586.4912 -7854.3799 8584.8242 V +-7850.0474 8586.4082 -7844.3799 8584.9082 V +-7838.8799 8586.3242 -7834.7817 8585.125 V +-7834.7817 8565.4404 L +-7837.5254 8564.4287 -7840.6514 8563.9287 -7844.7817 8565.125 C +f 0 R +0 G +1 J 1 j 0.5 w -7864.75 8585 m +-7872.54 8586.9473 -7878.813 8583.585 -7884.75 8579.0488 C +S -7854.75 8585 m +-7866.96 8588.0527 -7875.4434 8578.0605 -7884.75 8570.9512 C +S -7844.75 8585 m +-7861.1279 8589.0947 -7870.8008 8569.7227 -7884.75 8565.3154 C +S -7884.75 8565 m +-7864.75 8560 -7854.75 8590 -7834.75 8585 C +S -7874.75 8565 m +-7858.3721 8560.9053 -7848.6992 8580.2773 -7834.75 8584.6846 C +S -7864.75 8565 m +-7852.54 8561.9473 -7844.0566 8571.9395 -7834.75 8579.0488 C +S -7854.75 8565 m +-7846.96 8563.0527 -7840.687 8566.415 -7834.75 8570.9512 C +S -7844.75 8565 m +-7841.1279 8564.0947 -7837.835 8564.3408 -7834.75 8565.3154 C +S -7874.75 8585 m +-7878.3721 8585.9053 -7881.665 8585.6592 -7884.75 8584.6846 C +S U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 2) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884 8586 m +-7819.187 8586 L +-7819.187 8521.9023 L +-7884 8521.9023 L +-7884 8586 L +n u 0 O +0 g +-7849.6978 8544.4297 m +-7851.6094 8521.9023 L +-7853.5215 8544.4297 L +-7852.9033 8544.3066 -7852.2642 8544.2402 -7851.6094 8544.2402 c +-7850.9551 8544.2402 -7850.3159 8544.3066 -7849.6978 8544.4297 C +f -7861.2402 8552.3975 m +-7884 8554.3301 L +-7861.1138 8556.2734 L +-7861.2856 8555.5469 -7861.3848 8554.793 -7861.3848 8554.0156 c +-7861.3848 8553.4629 -7861.3281 8552.9248 -7861.2402 8552.3975 C +f -7856.519 8545.5723 m +-7870.1626 8536.8047 L +-7860.2153 8549.377 L +-7859.3574 8547.791 -7858.0718 8546.4766 -7856.519 8545.5723 C +f -7853.481 8563.6074 m +-7851.5786 8586 L +-7849.6768 8563.5967 L +-7850.3018 8563.7227 -7850.9473 8563.791 -7851.6094 8563.791 c +-7852.25 8563.791 -7852.873 8563.7246 -7853.481 8563.6074 C +f -7841.9609 8555.5068 m +-7819.187 8553.5732 L +-7842.083 8551.6289 L +-7842.083 8551.8506 L +-7841.9258 8552.5488 -7841.834 8553.2695 -7841.834 8554.0156 c +-7841.834 8554.5234 -7841.8848 8555.0195 -7841.9609 8555.5068 C +f -7860.1138 8558.8262 m +-7870.1641 8571.5293 L +-7856.2778 8562.6055 L +-7857.8823 8561.7305 -7859.2114 8560.416 -7860.1138 8558.8262 C +f -7842.9961 8549.3945 m +-7832.875 8536.6055 L +-7846.7666 8545.5313 L +-7845.1768 8546.4414 -7843.8633 8547.7793 -7842.9961 8549.3945 C +f -7846.6895 8562.4512 m +-7832.873 8571.3281 L +-7842.9658 8558.5732 L +-7843.8198 8560.1895 -7845.1152 8561.5313 -7846.6895 8562.4512 C +f -7842.8887 8558.6133 m +-7842.3862 8557.6641 -7842.043 8556.6211 -7841.875 8555.5195 c +-7841.7993 8555.0293 -7841.748 8554.5273 -7841.748 8554.0156 c +-7841.748 8553.2637 -7841.8398 8552.5352 -7841.998 8551.8311 c +-7842.1958 8550.957 -7842.5049 8550.124 -7842.918 8549.3545 c +-7843.7954 8547.7246 -7845.1191 8546.374 -7846.7241 8545.4561 c +-7847.6294 8544.9375 -7848.6226 8544.5537 -7849.6802 8544.3457 c +-7850.3047 8544.2207 -7850.9497 8544.1523 -7851.6094 8544.1523 c +-7852.2695 8544.1523 -7852.915 8544.2207 -7853.5391 8544.3457 c +-7854.623 8544.5605 -7855.6382 8544.957 -7856.5625 8545.4961 c +-7858.1313 8546.4102 -7859.4282 8547.7363 -7860.291 8549.335 c +-7860.7969 8550.2695 -7861.145 8551.2969 -7861.3262 8552.3828 c +-7861.415 8552.916 -7861.4727 8553.459 -7861.4727 8554.0156 c +-7861.4727 8554.8008 -7861.3711 8555.5605 -7861.1978 8556.293 c +-7860.981 8557.207 -7860.6406 8558.0732 -7860.187 8558.8701 c +-7859.2793 8560.4727 -7857.939 8561.8008 -7856.3174 8562.6826 c +-7855.4487 8563.1553 -7854.5 8563.498 -7853.4961 8563.6934 c +-7852.8848 8563.8115 -7852.2554 8563.8779 -7851.6094 8563.8779 c +-7850.9414 8563.8779 -7850.29 8563.8086 -7849.6602 8563.6826 c +-7848.5786 8563.4668 -7847.5664 8563.0654 -7846.6455 8562.5273 c +-7845.0566 8561.5977 -7843.751 8560.2441 -7842.8887 8558.6133 c +f U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 3) +0 A +u 1 Ap +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7874.75 8587 m +-7874.75 8563 L +-7884.75 8563 L +-7884.75 8587 L +-7874.75 8587 L +n u u 0 Ap +0 O +1 g +-7875.4058 8578.5361 m +-7874.9878 8577.4355 -7874.75 8576.2471 -7874.75 8575 c +-7874.75 8573.1377 -7875.2681 8571.4004 -7876.1543 8569.9072 c +-7877.897 8566.9736 -7881.0898 8565 -7884.75 8565 C +-7884.75 8585 L +-7884.4297 8585 -7884.1143 8584.9814 -7883.8018 8584.9521 c +-7881.9121 8584.7754 -7880.1807 8584.0645 -7878.7441 8582.9824 c +-7877.2471 8581.8545 -7876.0801 8580.3184 -7875.4058 8578.5361 c +f 0 R +0 G +1 J 1 j 0.5 w -7884.75 8565.3174 m +-7881.7207 8566.2744 -7878.8926 8567.9326 -7876.1543 8569.9072 C +S -7884.75 8570.9512 m +-7881.5991 8573.3564 -7878.543 8576.0869 -7875.4058 8578.5361 C +S -7878.7441 8582.9824 m +-7880.8105 8581.8916 -7882.7993 8580.5342 -7884.75 8579.043 C +S -7883.8018 8584.9521 m +-7884.1191 8584.8682 -7884.4375 8584.7852 -7884.75 8584.6865 C +S -7878.7441 8582.9824 m +-7880.1807 8584.0645 -7881.9121 8584.7744 -7883.8018 8584.9521 C +S -7875.4058 8578.5361 m +-7874.9878 8577.4355 -7874.75 8576.2471 -7874.75 8575 c +-7874.75 8573.1377 -7875.2681 8571.4004 -7876.1543 8569.9072 C +S -7884.75 8585 m +-7884.4297 8585 -7884.1143 8584.9814 -7883.8018 8584.9521 C +S -7878.7441 8582.9824 m +-7877.2471 8581.8545 -7876.0801 8580.3184 -7875.4058 8578.5361 C +S -7876.1543 8569.9072 m +-7877.8975 8566.9736 -7881.0898 8565 -7884.75 8565 C +S U U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 5) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7726.3994 8587 m +-7726.3994 8573.4199 L +-7885 8573.4199 L +-7885 8587 L +-7726.3994 8587 L +n u u 0 O +0.285 0.228 0.171 0 k +-7741.0786 8585.4844 m +-7741.043 8586.6895 L +-7727.5103 8587.5176 -7726.8418 8586.2822 v +-7726.7441 8586.1016 -7726.647 8585.7148 -7726.561 8585.1934 C +-7728.584 8585.8242 -7738.291 8585.5713 -7741.0786 8585.4844 C +f 0.44 0.352 0.264 0 k +-7741.4063 8574.0234 m +-7741.3711 8575.2676 L +-7738.4912 8575.0488 -7728.1914 8574.3164 -7726.543 8574.8652 C +-7726.7031 8574.2188 -7726.9199 8573.7646 -7727.2046 8573.6152 c +-7728.8306 8572.7656 -7741.4063 8574.0234 Y +f 0.145 0.116 0.087 0 k +-7741.3711 8575.2676 m +-7741.0786 8585.4844 L +-7738.291 8585.5713 -7728.584 8585.8242 -7726.561 8585.1934 C +-7726.1519 8582.7773 -7725.9258 8577.3604 -7726.543 8574.8652 C +-7728.1914 8574.3164 -7738.4912 8575.0488 -7741.3711 8575.2676 C +f U u 0.155 0.124 0.093 0 k +-7766.9375 8579.2734 m +-7765.897 8579.6563 L +-7747.0728 8575.1465 L +-7747.481 8574.3145 L +-7766.3633 8576.7246 L +-7767.252 8577.0059 L +-7767.6504 8576.8936 -7768.1934 8576.8242 V +-7767.6094 8577.2373 -7767.1426 8578.1406 -7766.9375 8579.2734 C +f u 0.085 0.068 0.051 0 k +-7771.7993 8583.666 m +-7772.5977 8583.7217 -7769.749 8583.6641 Y +-7770.3481 8583.0176 -7770.771 8581.8203 -7770.8105 8580.4375 c +-7770.8169 8580.2246 -7770.8105 8580.0176 -7770.7993 8579.8135 C +-7771.041 8579.707 -7771.0918 8579.7734 -7771.6289 8579.5645 C +-7771 8583.6113 -7771.7993 8583.666 v +f 0.305 0.244 0.183 0 k +-7770.3442 8576.8672 m +-7770.5527 8576.8105 -7770.4937 8578.9307 Y +-7769.4785 8579.7588 L +-7767.8359 8578.9434 L +-7766.9375 8579.2734 L +-7767.1426 8578.1406 -7767.6094 8577.2373 -7768.1934 8576.8242 C +-7768.6094 8576.7715 -7769.874 8576.7998 -7770.3442 8576.8672 C +f U 0.115 0.092 0.069 0 k +-7766.9375 8579.2734 m +-7767.8359 8578.9434 L +-7769.4785 8579.7588 L +-7770.4937 8578.9307 L +-7770.793 8579.708 -7770.7993 8579.8135 V +-7769.5137 8580.3789 -7768.1831 8580.7402 -7766.8398 8580.9258 C +-7766.79 8580.7275 -7766.7842 8580.543 -7766.79 8580.3369 c +-7766.7998 8579.9717 -7766.8218 8579.6182 -7766.9375 8579.2734 C +f 0.41 0.328 0.246 0 k +-7747.4512 8575.3965 m +-7749.377 8576.6426 -7758.3862 8582.0986 -7766.8398 8580.9258 C +-7766.9038 8582.0928 -7767.248 8583.0908 -7767.75 8583.6631 C +-7767.1895 8583.6621 L +-7746.7402 8586.7559 L +-7747.0366 8576.4258 L +-7747.0728 8575.1465 L +-7747.2046 8575.2373 -7747.4512 8575.3965 v +f 0.395 0.316 0.237 0 k +-7770.8105 8580.4375 m +-7770.771 8581.8203 -7770.3481 8583.0176 -7769.749 8583.6641 C +-7767.6807 8583.6631 L +-7767.1782 8583.0908 -7766.8218 8582.0713 -7766.8398 8580.9258 C +-7768.1831 8580.7402 -7769.5137 8580.3789 -7770.7993 8579.8135 C +-7770.8105 8580.0176 -7770.8169 8580.2246 -7770.8105 8580.4375 c +f U u 0 0 0 0.11 k +-7741.2642 8574.2012 m +-7740.2407 8574.0352 L +-7741.2642 8574.2012 L +-7741.2642 8574.2012 L +f 0 0 0 0.34 k +-7747.481 8574.3145 m +-7747.0728 8575.1465 L +-7745.6714 8574.918 L +-7744.5234 8574.7314 L +-7742.6758 8574.4307 L +-7741.2642 8574.2012 L +-7740.2407 8574.0352 L +-7740.2954 8573.7168 -7740.3672 8573.498 -7740.4648 8573.4199 C +-7747.481 8574.3145 L +f 0 0 0 0.32 k +-7745.8042 8579.207 m +-7746.041 8586.8613 L +-7740.7144 8587 L +-7739.7266 8583.5146 -7740.1816 8579.1543 V +-7745.8042 8579.207 L +f U 0.025 0.02 0.015 0 k +-7739.3223 8576.3848 m +-7736.373 8576.9199 -7733.2402 8577.1602 -7730.3159 8576.3613 c +-7730.2856 8576.3496 -7730.2754 8576.3184 -7730.2871 8576.2969 c +-7730.2881 8576.2656 -7730.3198 8576.2559 -7730.3418 8576.2559 c +-7733.2422 8577.0645 -7736.375 8576.8242 -7739.3042 8576.2783 c +-7739.3262 8576.2793 -7739.3574 8576.291 -7739.3672 8576.3223 c +-7739.3662 8576.3438 -7739.355 8576.375 -7739.3223 8576.3848 c +-7739.3223 8576.3848 l +f -7737.8374 8575.3076 m +-7737.7295 8575.3789 -7737.6313 8575.4941 -7737.5234 8575.502 c +-7733.7886 8575.832 -7730.1631 8575.7813 -7726.4746 8575.6641 c +-7726.4526 8575.6641 -7726.4209 8575.6426 -7726.4214 8575.6211 c +-7726.4214 8575.5879 -7726.4551 8575.5684 -7726.4766 8575.5684 c +-7729.3223 8575.6816 -7732.1401 8575.6992 -7735.0039 8575.5352 c +-7735.9336 8575.4766 -7736.9082 8575.7402 -7737.7778 8575.2207 c +-7737.7993 8575.2109 -7737.8306 8575.2109 -7737.8506 8575.2334 c +-7737.8618 8575.2559 -7737.8594 8575.2871 -7737.8374 8575.3076 c +-7737.8374 8575.3076 l +f -7733.373 8577.3672 m +-7731.5098 8578.6797 -7729.3022 8579.374 -7727.1001 8579.8867 c +-7727.0679 8579.8965 -7727.0474 8579.8848 -7727.0366 8579.8535 c +-7727.0273 8579.8203 -7727.0488 8579.8008 -7727.0703 8579.79 c +-7729.2617 8579.2656 -7731.459 8578.6035 -7733.3105 8577.2803 c +-7733.3433 8577.2598 -7733.375 8577.2715 -7733.3848 8577.293 c +-7733.4058 8577.3145 -7733.3945 8577.3457 -7733.373 8577.3672 c +-7733.373 8577.3672 l +f -7738.9321 8584.0566 m +-7736.7295 8584.5703 -7734.5298 8585.0303 -7732.2798 8585.2754 c +-7732.2598 8585.2852 -7732.229 8585.2637 -7732.229 8585.2422 c +-7732.2183 8585.209 -7732.2407 8585.1777 -7732.2729 8585.1787 c +-7734.5122 8584.8809 -7736.7305 8584.5176 -7738.9126 8583.9502 c +-7738.9351 8583.9512 -7738.9673 8583.9629 -7738.9766 8583.9941 c +-7738.9751 8584.0156 -7738.9648 8584.0479 -7738.9321 8584.0566 c +-7738.9321 8584.0566 l +f -7738.439 8583.3604 m +-7736.3457 8584.1973 -7734.1016 8583.9297 -7731.9023 8583.9629 c +-7731.8706 8583.9609 -7731.8496 8583.9395 -7731.8506 8583.9082 c +-7731.8521 8583.875 -7731.873 8583.8555 -7731.8945 8583.8555 c +-7734.0928 8583.8438 -7736.3374 8584.0996 -7738.4209 8583.2529 c +-7738.4434 8583.2539 -7738.4746 8583.2656 -7738.4834 8583.2969 c +-7738.4834 8583.3184 -7738.4722 8583.3506 -7738.439 8583.3604 c +-7738.439 8583.3604 l +f -7737.707 8584.7051 m +-7736.3833 8584.752 -7735.1504 8584.5469 -7733.8271 8584.209 c +-7733.3594 8584.0996 -7732.9199 8584.2266 -7732.4609 8584.2129 c +-7731.897 8584.1973 l +-7731.874 8584.1963 -7731.8633 8584.1855 -7731.8535 8584.1738 c +-7731.834 8584.1523 -7731.8442 8584.1211 -7731.8662 8584.0996 c +-7732.0625 8583.9453 l +-7732.0742 8583.9453 -7732.085 8583.9355 -7732.0962 8583.9355 c +-7732.5 8583.9473 l +-7733.9551 8584.1914 -7735.457 8584.6719 -7736.8926 8584.0742 c +-7736.9258 8584.0645 -7736.957 8584.0859 -7736.9673 8584.1074 c +-7736.9673 8584.1396 -7736.9551 8584.1602 -7736.9336 8584.1709 c +-7735.647 8584.6992 -7734.1714 8584.4756 -7732.8818 8584.0547 c +-7732.0918 8584.043 L +-7732.124 8584.0332 L +-7731.9282 8584.1875 L +-7731.8984 8584.0898 L +-7732.4639 8584.1064 l +-7732.9321 8584.1406 -7733.3848 8583.9834 -7733.8398 8584.1035 c +-7735.1543 8584.4609 -7736.3975 8584.625 -7737.71 8584.5986 c +-7737.7422 8584.5996 -7737.7642 8584.6211 -7737.7617 8584.6533 c +-7737.7617 8584.6855 -7737.7402 8584.7061 -7737.707 8584.7051 c +-7737.707 8584.7051 l +f -7738.5718 8585.0605 m +-7735.8711 8586.2207 -7732.9023 8585.5703 -7730.1279 8585.1816 c +-7729.7832 8585.2891 l +-7729.7617 8585.2988 -7729.7417 8585.2871 -7729.7207 8585.2656 c +-7729.71 8585.2441 -7729.7217 8585.2129 -7729.7422 8585.2021 c +-7730.0801 8585.0098 l +-7732.7754 8584.3926 -7735.5391 8584.7813 -7738.271 8584.7852 c +-7738.3022 8584.7871 -7738.3232 8584.8086 -7738.3223 8584.8398 c +-7738.3198 8584.8721 -7738.2983 8584.8926 -7738.2681 8584.8926 c +-7735.6738 8584.9355 -7733.0303 8584.4434 -7730.4727 8585.0742 c +-7729.7954 8585.2891 L +-7729.7534 8585.1914 L +-7730.1406 8585.0859 l +-7732.9058 8585.4424 -7735.8418 8586.1348 -7738.5313 8584.9746 c +-7738.5537 8584.9648 -7738.585 8584.9648 -7738.5962 8584.998 c +-7738.6055 8585.0195 -7738.605 8585.0508 -7738.5718 8585.0605 c +-7738.5718 8585.0605 l +f -7735.6895 8578.3945 m +-7734.3945 8578.9004 -7732.9834 8578.6465 -7731.6802 8578.3438 c +-7731.647 8578.3418 -7731.6367 8578.3203 -7731.6382 8578.2891 c +-7731.6504 8578.2568 -7731.6714 8578.2461 -7731.7031 8578.248 c +-7732.998 8578.5303 -7734.377 8578.8154 -7735.6504 8578.2969 c +-7735.6826 8578.2871 -7735.7144 8578.2988 -7735.7246 8578.3311 c +-7735.7222 8578.3525 -7735.7114 8578.3848 -7735.6895 8578.3945 c +-7735.6895 8578.3945 l +f -7736.1401 8580.2207 m +-7734.2266 8580.6895 -7732.3145 8581.1035 -7730.355 8581.3242 c +-7730.3242 8581.334 -7730.3022 8581.3125 -7730.293 8581.2803 c +-7730.2954 8581.2598 -7730.3159 8581.2285 -7730.3374 8581.2285 c +-7732.2959 8581.0078 -7734.209 8580.582 -7736.1206 8580.1133 c +-7736.1426 8580.1152 -7736.1738 8580.126 -7736.1831 8580.1582 c +-7736.1831 8580.1797 -7736.1719 8580.2109 -7736.1401 8580.2207 c +-7736.1401 8580.2207 l +f -7736.9336 8582.6348 m +-7734.499 8583.4609 -7731.8647 8583.0547 -7729.3457 8583.0879 c +-7729.313 8583.0879 -7729.293 8583.0664 -7729.293 8583.0332 c +-7729.2954 8583.0117 -7729.3159 8582.9922 -7729.3481 8582.9922 c +-7731.8574 8582.916 -7734.481 8583.3848 -7736.8945 8582.5264 c +-7736.9282 8582.5273 -7736.959 8582.5391 -7736.9688 8582.5605 c +-7736.9678 8582.5918 -7736.9561 8582.624 -7736.9336 8582.6348 c +-7736.9336 8582.6348 l +f -7732.0542 8583.8496 m +-7730.6582 8584.5449 -7729.0503 8584.4033 -7727.5342 8584.4668 c +-7727.502 8584.4648 -7727.4824 8584.4434 -7727.4824 8584.4121 c +-7727.4834 8584.3906 -7727.5054 8584.3594 -7727.5366 8584.3594 c +-7729.0137 8584.2207 -7730.6489 8584.5234 -7732.0039 8583.7617 c +-7732.0366 8583.7529 -7732.0679 8583.7637 -7732.0786 8583.7861 c +-7732.0879 8583.8076 -7732.0767 8583.8398 -7732.0542 8583.8496 c +-7732.0542 8583.8496 l +f -7731.3418 8580.4248 m +-7730.3926 8580.3975 -7729.4336 8580.3701 -7728.4839 8580.3428 c +-7728.4526 8580.3418 -7728.4312 8580.3203 -7728.4336 8580.2881 c +-7728.4336 8580.2559 -7728.4551 8580.2354 -7728.4878 8580.2363 c +-7729.437 8580.2637 -7730.397 8580.291 -7731.3457 8580.3184 c +-7731.377 8580.3184 -7731.3975 8580.3418 -7731.3975 8580.373 c +-7731.397 8580.4043 -7731.374 8580.4258 -7731.3418 8580.4248 c +-7731.3418 8580.4248 l +f -7729.1592 8578.0361 m +-7728.6895 8578.0645 -7728.209 8578.0723 -7727.7383 8578.0918 c +-7727.7168 8578.0908 -7727.6855 8578.0684 -7727.6865 8578.0371 c +-7727.687 8578.0039 -7727.71 8577.9844 -7727.7417 8577.9844 c +-7728.2114 8577.9873 -7728.6816 8577.9375 -7729.1514 8577.9395 c +-7729.1831 8577.9297 -7729.2031 8577.9512 -7729.2134 8577.9844 c +-7729.2129 8578.0156 -7729.1914 8578.0371 -7729.1592 8578.0361 c +-7729.1592 8578.0361 l +f -7736.9702 8580.2344 m +-7736.5688 8580.5107 -7736.125 8580.6797 -7735.645 8580.751 c +-7735.6113 8580.7607 -7735.5918 8580.7383 -7735.5806 8580.7168 c +-7735.5703 8580.6855 -7735.5928 8580.6543 -7735.6152 8580.6543 c +-7736.0854 8580.5723 -7736.5176 8580.4023 -7736.9209 8580.1475 c +-7736.9521 8580.1377 -7736.9849 8580.1387 -7736.9946 8580.1709 c +-7737.0039 8580.1934 -7736.9922 8580.2246 -7736.9702 8580.2344 c +-7736.9702 8580.2344 l +f -7738.1904 8586.085 m +-7735.7344 8586.5273 -7733.2983 8587.001 -7730.7993 8586.7266 c +-7730.7778 8586.7266 -7730.7568 8586.7041 -7730.7578 8586.6719 c +-7730.7578 8586.6406 -7730.7798 8586.6191 -7730.8022 8586.6191 c +-7733.291 8586.873 -7735.7344 8586.4844 -7738.1719 8585.9775 c +-7738.1934 8585.9785 -7738.2256 8585.9902 -7738.2344 8586.0215 c +-7738.2344 8586.043 -7738.2222 8586.0752 -7738.1904 8586.085 c +-7738.1904 8586.085 l +f 0.195 0.156 0.117 0 k +-7738.166 8574.6445 m +-7735.7969 8574.2676 -7733.4058 8574.3477 -7731.0298 8574.5898 c +-7730.998 8574.5879 -7730.9766 8574.5664 -7730.9766 8574.5352 c +-7730.9785 8574.5137 -7731 8574.4824 -7731.0215 8574.4824 c +-7733.4082 8574.2422 -7735.791 8574.1602 -7738.1694 8574.5391 c +-7738.2026 8574.5391 -7738.2222 8574.5605 -7738.2217 8574.5938 c +-7738.2207 8574.625 -7738.1992 8574.6465 -7738.166 8574.6445 c +-7738.166 8574.6445 l +f 0.335 0.268 0.201 0 k +-7737.4351 8574.1113 m +-7734.9282 8574.1152 -7732.4146 8574.2773 -7729.918 8573.8965 c +-7729.8862 8573.8945 -7729.8647 8573.873 -7729.8662 8573.8418 c +-7729.8672 8573.8086 -7729.8896 8573.7891 -7729.9209 8573.7891 c +-7732.418 8574.1699 -7734.9297 8574.0293 -7737.4375 8574.0059 c +-7737.46 8574.0059 -7737.481 8574.0273 -7737.4785 8574.0596 c +-7737.4785 8574.0918 -7737.457 8574.1123 -7737.4351 8574.1113 c +-7737.4351 8574.1113 l +f 0.205 0.164 0.123 0 k +-7738.9766 8574.3262 m +-7737.5039 8574.668 -7736.0078 8574.4023 -7734.5391 8574.2207 c +-7734.5078 8574.2207 -7734.4873 8574.1973 -7734.499 8574.166 c +-7734.5 8574.1348 -7734.5215 8574.1133 -7734.5537 8574.125 c +-7736.0103 8574.2842 -7737.4961 8574.583 -7738.9473 8574.2188 c +-7738.9785 8574.2207 -7739.0103 8574.2324 -7739.0098 8574.2637 c +-7739.019 8574.2852 -7738.998 8574.3164 -7738.9766 8574.3262 c +-7738.9766 8574.3262 l +f -7732.3535 8573.7949 m +-7731.1978 8573.9219 -7730.0273 8573.8145 -7728.8926 8573.5898 c +-7728.8711 8573.5781 -7728.8506 8573.5566 -7728.8618 8573.5244 c +-7728.8623 8573.5029 -7728.8945 8573.4824 -7728.916 8573.4941 c +-7730.0503 8573.7402 -7731.1914 8573.7939 -7732.3462 8573.6885 c +-7732.3794 8573.6895 -7732.3984 8573.7109 -7732.4087 8573.7324 c +-7732.4082 8573.7646 -7732.3862 8573.7852 -7732.3535 8573.7949 c +-7732.3535 8573.7949 l +f 0.335 0.268 0.201 0 k +-7739.2681 8576.4473 m +-7737.9214 8577.1885 -7736.3066 8576.5977 -7734.855 8576.6416 c +-7734.8223 8576.6406 -7734.8022 8576.6191 -7734.8022 8576.5859 c +-7734.8042 8576.5654 -7734.8262 8576.5449 -7734.8574 8576.5449 c +-7736.2886 8576.4902 -7737.8823 8577.0801 -7739.2168 8576.3506 c +-7739.2383 8576.3398 -7739.2695 8576.3516 -7739.291 8576.374 c +-7739.3008 8576.3955 -7739.2886 8576.4277 -7739.2681 8576.4473 c +-7739.2681 8576.4473 l +f -7737.8945 8578.5645 m +-7735.6719 8579.0449 -7733.3896 8578.6162 -7731.1504 8578.5625 c +-7731.1177 8578.5615 -7731.0977 8578.5391 -7731.0977 8578.5078 c +-7731.1001 8578.4863 -7731.1318 8578.4668 -7731.1519 8578.4668 c +-7733.3833 8578.4775 -7735.6519 8578.9805 -7737.875 8578.457 c +-7737.8975 8578.457 -7737.9287 8578.4688 -7737.9375 8578.502 c +-7737.9375 8578.5225 -7737.9258 8578.5547 -7737.8945 8578.5645 c +-7737.8945 8578.5645 l +f -7732.0273 8575.1406 m +-7730.3496 8575.9688 -7728.499 8576.502 -7726.603 8576.3613 c +-7726.5718 8576.3613 -7726.5513 8576.3389 -7726.5527 8576.3066 c +-7726.5527 8576.2754 -7726.5742 8576.2539 -7726.6074 8576.2559 c +-7728.481 8576.416 -7730.3198 8575.8604 -7731.9873 8575.0547 c +-7732.0078 8575.0449 -7732.041 8575.0449 -7732.0503 8575.0781 c +-7732.061 8575.0996 -7732.061 8575.1309 -7732.0273 8575.1406 c +-7732.0273 8575.1406 l +f u 0.5 0.85 1 0.45 k +-7885 8581.9082 m +-7885.0254 8582.4883 -7884.5664 8583.1875 -7883.167 8583.9902 C +-7882.8521 8584.0029 -7881.3945 8584.0234 -7879.0889 8584.0488 C +-7879.0889 8581.8223 L +-7881.1382 8581.8457 -7883.1177 8581.8867 -7885 8581.9082 C +f -7884.5088 8580.9688 m +-7879.0889 8580.8447 L +-7879.0889 8579.8145 L +-7882.644 8579.959 L +-7883.8145 8580.3301 -7884.5088 8580.9688 V +f 0.5 0.85 1 0.32 k +-7879.0889 8580.8252 m +-7884.4746 8580.9434 L +-7884.7695 8581.2148 -7884.9849 8581.5566 -7885 8581.9277 C +-7883.1177 8581.9063 -7881.1382 8581.8848 -7879.0889 8581.8613 C +-7879.0889 8580.8252 L +f 0.5 0.85 1 0.45 k +-7774.1504 8580.6172 m +-7852.3584 8581.541 -7879.1079 8581.8418 V +-7879.1079 8584.0488 L +-7862.8145 8584.2324 -7803.9902 8584.707 Y +-7769.749 8583.6641 L +-7770.457 8580.5684 L +-7774.1504 8580.6172 L +f 0.5 0.85 1 0.12 k +-7879.1079 8579.8145 m +-7879.1079 8580.8447 L +-7770.4258 8579 L +-7770.3833 8576.8633 L +-7803.6553 8576.7129 L +-7879.1079 8579.8145 L +f u 0.065 0.052 0.039 0 k +-7747.0728 8575.1465 m +-7747.0366 8576.4258 L +-7747.2954 8575.1172 L +-7765.897 8579.6563 L +-7766.9375 8579.2734 L +-7766.8794 8579.6055 -7766.8398 8579.957 -7766.8306 8580.3223 c +-7766.8242 8580.5283 -7766.8281 8580.7285 -7766.8398 8580.9258 C +-7758.3862 8582.0986 -7748.9634 8577.6719 -7747.0366 8576.4258 C +-7746.7402 8586.7559 L +-7746.041 8586.8613 L +-7745.8042 8579.207 L +-7740.1816 8579.1543 L +-7740.0898 8577.0137 -7740.0718 8575.0215 -7740.2407 8574.0352 C +-7747.0728 8575.1465 L +f 0.4 0.7 1 0 k +-7770.457 8580.5879 m +-7770.4258 8578.9805 L +-7879.1079 8580.8252 L +-7879.1079 8581.8613 L +-7852.3584 8581.5605 -7770.457 8580.5879 Y +f U U 0.025 0.02 0.015 0 k +-7734.7344 8583.0293 m +-7734.7344 8583.0625 -7734.7129 8583.082 -7734.6802 8583.082 c +-7731.6714 8583.1133 -7729.4214 8582.9453 -7726.415 8582.8594 C +-7726.4087 8582.7656 L +-7729.3262 8582.8701 -7731.7607 8583.0078 -7734.6841 8582.9746 C +-7734.7168 8582.9766 -7734.7358 8582.998 -7734.7344 8583.0293 C +f -7726.3994 8582.7656 m +-7726.4082 8582.7441 L +-7726.4087 8582.7656 L +-7726.4063 8582.7656 -7726.4033 8582.7656 -7726.3994 8582.7656 C +f -7730.4487 8581.4238 m +-7731.4458 8581.292 -7732.3394 8581.7656 -7733.2114 8582.1973 C +-7733.2441 8582.208 -7733.2534 8582.2402 -7733.2422 8582.2715 C +-7733.2305 8582.293 -7733.1982 8582.3027 -7733.1777 8582.291 c +-7732.3262 8581.8301 -7731.4312 8581.4199 -7730.4678 8581.5195 c +-7729.1079 8581.6621 -7727.9038 8582.375 -7726.5254 8582.4531 C +-7726.4463 8582.3594 L +-7728.04 8582.2656 -7728.8647 8581.623 -7730.4487 8581.4238 c +f U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 6) +0 A +u 1 Ap +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884.75 8563 m +-7884.75 8587 L +-7874.75 8587 L +-7874.75 8563 L +-7884.75 8563 L +n 0 Ap +0 O +1 g +-7874.75 8565 m +-7875.0703 8565 -7875.3857 8565.0186 -7875.6982 8565.0479 c +-7877.5879 8565.2256 -7879.3198 8565.9346 -7880.7559 8567.0176 c +-7882.2529 8568.1465 -7883.4199 8569.6816 -7884.0942 8571.4639 c +-7884.5122 8572.5645 -7884.75 8573.7529 -7884.75 8575 c +-7884.75 8576.8623 -7884.2319 8578.5996 -7883.3457 8580.0918 c +-7881.6025 8583.0273 -7878.4102 8585 -7874.75 8585 C +-7874.75 8565 L +f 0 R +0 G +1 J 1 j 0.5 w -7874.75 8584.6816 m +-7877.7793 8583.7256 -7880.6074 8582.0674 -7883.3457 8580.0918 C +S -7874.75 8579.0488 m +-7877.8999 8576.6436 -7880.957 8573.9131 -7884.0942 8571.4639 C +S -7880.7559 8567.0176 m +-7878.6904 8568.1084 -7876.7017 8569.4668 -7874.75 8570.957 C +S -7875.6982 8565.0479 m +-7875.3809 8565.1309 -7875.063 8565.2148 -7874.75 8565.3145 C +S -7880.7559 8567.0176 m +-7879.3193 8565.9355 -7877.5879 8565.2256 -7875.6982 8565.0479 C +S -7884.0942 8571.4639 m +-7884.5122 8572.5645 -7884.75 8573.7529 -7884.75 8575 c +-7884.75 8576.8623 -7884.231 8578.5996 -7883.3457 8580.0918 C +S -7874.75 8565 m +-7875.0703 8565 -7875.3857 8565.0186 -7875.6982 8565.0479 C +S -7880.7559 8567.0176 m +-7882.2529 8568.1465 -7883.4199 8569.6816 -7884.0942 8571.4639 C +S -7883.3457 8580.0918 m +-7881.6025 8583.0273 -7878.4102 8585 -7874.75 8585 C +S U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 8) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7883.9521 8584.3125 m +-7776.7954 8584.3125 L +-7776.7954 8570.1855 L +-7883.9521 8570.1855 L +-7883.9521 8584.3125 L +n u 0 O +0 0 0 1 k +-7882.2832 8583.623 m +-7882.8535 8586 -7882.8184 8582.0039 V +-7883.0479 8578.8027 L +-7883.6167 8576.4551 L +-7883.4502 8574.123 L +-7881.9502 8573.4551 -7865.2832 8572.123 V +-7858.6167 8570.7891 -7849.6167 8570.7891 V +-7784.3936 8571.4766 -7779.4912 8572.8848 v +-7820.3882 8570.875 -7822.9688 8571.5117 v +-7783.8569 8573.1602 -7780.8545 8574.4316 v +-7818.79 8572.5469 -7822.167 8574.1777 v +-7787.249 8575.9102 -7783.021 8577.5313 v +-7789.7217 8576.8828 -7791.5127 8577.082 v +-7788.3896 8577.5703 l +-7793.4194 8577.502 l +-7796.3218 8577.1289 l +-7788.4521 8578.2422 -7787.9033 8578.8086 v +-7784.3154 8578.1309 -7798.5186 8578.3848 v +-7832.1177 8574.4551 -7882.2832 8583.623 V +f /BBAccumRotation (5.805971) XT +0 R +0 0 0 0.5 K +0.025 w -7883.9502 8573.123 m +-7863.667 8571.2949 -7843.9727 8570.2207 v +-7801.1514 8570.502 -7796.5737 8570.9004 v +-7784.1631 8571.0313 -7776.7959 8572.0273 v +S /BBAccumRotation (5.805971) XT +0 0 0 1 K +-7821.8369 8570.4082 m +-7825.2959 8570.0273 -7851.2607 8570.2793 Y +-7861.627 8570.1602 -7883.9502 8573.123 Y +S /BBAccumRotation (5.805971) XT +-7820.9873 8573.6641 m +-7790.3608 8574.582 -7783.6606 8575.2324 v +S /BBAccumRotation (5.805971) XT +0 0 0 0.5 K +-7829.6201 8578.2051 m +-7794.3706 8579.6172 -7791.4058 8580.1406 v +S /BBAccumRotation (5.805971) XT +U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 10) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884 8586 m +-7833.8921 8586 L +-7833.8921 8529.9756 L +-7884 8529.9756 L +-7884 8586 L +n u 0 O +0.1 1 1 0 k +-7846.9014 8551.5752 m +-7848.7178 8545.0957 -7858.8247 8548.4658 Y +-7858.791 8548.5303 L +-7868.8999 8545.1611 -7870.7144 8551.6396 V +-7876.6758 8569.0068 -7871.4922 8575.7451 V +-7864.7529 8585.3369 -7860.6055 8585.3369 V +-7857.0103 8585.2705 L +-7852.8638 8585.2705 -7846.125 8575.6816 Y +-7840.9409 8568.9424 -7846.9014 8551.5752 Y +f u 0 0 0 1 k +-7851.3926 8529.9756 m +-7852.1167 8531.4199 -7852.9238 8532.4756 V +-7852.4058 8532.0635 -7851.5151 8531.1924 -7851.3926 8529.9756 C +f -7865.064 8532.4854 m +-7865.8711 8531.4307 -7866.5942 8529.9863 Y +-7866.4727 8531.2021 -7865.582 8532.0732 -7865.064 8532.4854 C +f U 0 0.61 0.74 0 k +-7850.5977 8554.4609 m +-7851.9038 8549.7959 -7859.1816 8552.2217 Y +-7859.1567 8552.2686 L +-7866.436 8549.8428 -7867.7417 8554.5078 V +-7872.0337 8567.0117 -7868.3018 8571.8633 V +-7863.4487 8578.7686 -7860.4634 8578.7686 V +-7857.875 8578.7227 L +-7854.8887 8578.7227 -7850.0366 8571.8174 Y +-7846.3042 8566.9639 -7850.5977 8554.4609 Y +f u 1 Ap +0.73 0.43 1 0.22 k +0 R +0 0 0 1 K +-7854.6226 8557.2754 m +-7853.813 8557.2754 -7853.1558 8556.6182 -7853.1558 8555.8096 c +-7853.1558 8555 -7853.813 8554.3428 -7854.6226 8554.3428 c +-7855.4321 8554.3428 -7856.0889 8555 -7856.0889 8555.8096 c +-7856.0889 8556.6182 -7855.4321 8557.2754 -7854.6226 8557.2754 c +b -7854.3638 8568.9971 m +-7853.0806 8568.9971 -7852.0415 8568.1201 -7852.0415 8567.042 c +-7852.0415 8565.9619 -7853.0806 8565.0869 -7854.3638 8565.0869 c +-7855.645 8565.0869 -7856.6846 8565.9619 -7856.6846 8567.042 c +-7856.6846 8568.1201 -7855.645 8568.9971 -7854.3638 8568.9971 c +b -7853.834 8580.7861 m +-7852.2817 8580.7861 -7851.0239 8580.1299 -7851.0239 8579.3213 c +-7851.0239 8578.5117 -7852.2817 8577.8545 -7853.834 8577.8545 c +-7855.3862 8577.8545 -7856.645 8578.5117 -7856.645 8579.3213 c +-7856.645 8580.1299 -7855.3862 8580.7861 -7853.834 8580.7861 c +b -7849.6104 8552.5264 m +-7848.8687 8552.5264 -7848.2671 8551.8154 -7848.2671 8550.9365 c +-7848.2671 8550.0596 -7848.8687 8549.3477 -7849.6104 8549.3477 c +-7850.353 8549.3477 -7850.9546 8550.0596 -7850.9546 8550.9365 c +-7850.9546 8551.8154 -7850.353 8552.5264 -7849.6104 8552.5264 c +b -7848.0034 8574.083 m +-7848.8818 8573.7354 -7849.1494 8572.335 -7848.603 8570.9541 c +-7848.0566 8569.5752 -7846.9014 8568.7363 -7846.0234 8569.085 c +-7845.145 8569.4326 -7844.877 8570.833 -7845.4233 8572.2139 c +-7845.9702 8573.5947 -7847.125 8574.4316 -7848.0034 8574.083 c +b u -7863.0566 8557.1592 m +-7863.8662 8557.1592 -7864.5239 8556.502 -7864.5239 8555.6934 c +-7864.5239 8554.8828 -7863.8662 8554.2266 -7863.0566 8554.2266 c +-7862.248 8554.2266 -7861.5913 8554.8828 -7861.5913 8555.6934 c +-7861.5913 8556.502 -7862.248 8557.1592 -7863.0566 8557.1592 c +b -7863.3159 8568.8799 m +-7864.5991 8568.8799 -7865.6382 8568.0049 -7865.6382 8566.9248 c +-7865.6382 8565.8447 -7864.5991 8564.9697 -7863.3159 8564.9697 c +-7862.0342 8564.9697 -7860.9951 8565.8447 -7860.9951 8566.9248 c +-7860.9951 8568.0049 -7862.0342 8568.8799 -7863.3159 8568.8799 c +b -7863.8457 8580.6709 m +-7865.3975 8580.6709 -7866.6558 8580.0146 -7866.6558 8579.2041 c +-7866.6558 8578.3936 -7865.3975 8577.7383 -7863.8457 8577.7383 c +-7862.293 8577.7383 -7861.0352 8578.3936 -7861.0352 8579.2041 c +-7861.0352 8580.0146 -7862.293 8580.6709 -7863.8457 8580.6709 c +b -7868.0679 8552.4092 m +-7868.811 8552.4092 -7869.4121 8551.6982 -7869.4121 8550.8213 c +-7869.4121 8549.9443 -7868.811 8549.2334 -7868.0679 8549.2334 c +-7867.3262 8549.2334 -7866.7241 8549.9443 -7866.7241 8550.8213 c +-7866.7241 8551.6982 -7867.3262 8552.4092 -7868.0679 8552.4092 c +b -7869.6758 8573.9678 m +-7868.7983 8573.6201 -7868.5298 8572.2188 -7869.0762 8570.8379 c +-7869.6226 8569.457 -7870.7778 8568.6201 -7871.6558 8568.9678 c +-7872.5342 8569.3164 -7872.8032 8570.7178 -7872.2568 8572.0967 c +-7871.7104 8573.4775 -7870.5552 8574.3154 -7869.6758 8573.9678 c +b U U 0 Ap +0 0 0 1 k +-7859.1318 8552.6553 m +-7859.1318 8585.3145 l +F u -7843.3906 8538.5303 m +-7844.0815 8537.8369 -7847.019 8538.7021 Y +-7848.229 8538.874 -7848.0562 8541.2939 Y +-7847.019 8543.3682 -7847.7104 8543.1943 Y +-7848.2998 8543.1943 -7849.855 8543.1143 -7850.7822 8543.0635 C +-7851.1226 8541.6689 -7852.6128 8540.4756 -7854.7217 8539.7695 C +-7852.7578 8536.4775 -7854.5176 8535.7949 -7856.2935 8535.79 C +-7856.3096 8535.7021 -7856.332 8535.6162 -7856.3599 8535.5332 C +-7854.1089 8535.5791 -7853.6392 8533.2588 Y +-7853.4048 8533.0635 -7853.1606 8532.7861 -7852.9238 8532.4756 C +-7853.1416 8532.6475 -7853.2944 8532.7393 Y +-7854.2583 8532.7393 -7855.8774 8534.4941 -7856.4966 8535.207 C +-7856.9194 8534.4434 -7857.853 8533.9111 -7858.9434 8533.9111 c +-7860.0698 8533.9111 -7861.0322 8534.4795 -7861.4312 8535.2852 C +-7861.9985 8534.624 -7863.6968 8532.751 -7864.6943 8532.751 C +-7864.8462 8532.6572 -7865.064 8532.4854 V +-7864.8281 8532.7939 -7864.583 8533.0732 -7864.3481 8533.2686 C +-7863.8638 8535.6563 -7861.5254 8535.5342 V +-7861.5449 8535.5889 -7861.5674 8535.6436 -7861.5806 8535.7021 C +-7864.9238 8535.6924 -7863.937 8538.3174 -7863.2104 8539.6602 C +-7865.5918 8540.376 -7867.2646 8541.7012 -7867.5239 8543.25 C +-7868.4473 8543.2998 -7869.6729 8543.3584 -7870.1802 8543.3584 C +-7870.8726 8543.5313 -7869.835 8541.458 V +-7869.6626 8539.0391 -7870.8726 8538.8662 V +-7873.8096 8538.002 -7874.501 8538.6934 V +-7875.1919 8539.5566 -7876.0562 8538.3467 V +-7875.1919 8540.0752 -7873.291 8539.5566 V +-7870.6982 8538.8662 -7871.3906 8540.5938 V +-7871.9087 8544.0498 -7870.1802 8544.7402 V +-7868.0342 8545.8545 -7866.2822 8546.0889 V +-7865.9087 8546.4141 -7865.4639 8546.7109 -7864.958 8546.9766 C +-7867.5562 8547.0469 -7870.2246 8547.9209 -7871.0752 8550.9561 C +-7871.5151 8552.2432 -7872.0518 8554.2432 V +-7873.1025 8554.8252 -7874.3022 8556.0078 -7875.541 8558.2627 C +-7876.394 8561.4502 -7877.167 8556.7129 V +-7878.3975 8553.6494 -7879.6504 8553.5381 V +-7878.4702 8555.2871 -7878.9038 8556.416 V +-7877.2998 8560.917 -7875.6138 8559.8994 V +-7874.0986 8559.2197 -7872.688 8556.8154 V +-7873.0698 8558.4971 -7873.4326 8560.417 -7873.6743 8562.3906 C +-7874.4888 8562.3975 L +-7876.3506 8561.4795 -7876.3262 8564.959 V +-7877.1226 8568.9453 -7876.3594 8571.6826 V +-7875.647 8574.1504 -7878.1274 8572.9307 V +-7879.2842 8573.3242 -7879.9839 8572.7881 V +-7882.3882 8571.4131 -7884 8573.124 V +-7882.147 8572.8799 -7881.4482 8573.417 V +-7879.9785 8573.5615 -7879.897 8574.1787 V +-7876.9561 8574.8555 -7876.188 8574.0771 V +-7874.417 8573.2139 -7875.1304 8570.3604 V +-7875.8799 8562.4814 -7874.3198 8564.4053 V +-7874.1182 8564.4219 -7873.8784 8564.5176 V +-7874.1519 8568.4326 -7873.8018 8572.3252 -7871.9961 8574.8516 C +-7875.4536 8567.333 -7870.2974 8552.3037 Y +-7868.9609 8547.5303 -7863.127 8548.1016 -7860.145 8548.7344 C +-7860.0718 8550.1299 -7859.8374 8551.9492 -7859.1318 8552.6553 C +-7858.2134 8550.6963 -7858.2358 8549.0732 V +-7857.0762 8548.7217 -7850.2817 8546.8447 -7847.4487 8550.3369 C +-7848.4312 8547.8135 -7850.8262 8547.0186 -7853.2007 8546.9189 C +-7852.667 8546.6318 -7852.2041 8546.3047 -7851.8257 8545.9502 C +-7850.041 8545.7861 -7847.7104 8544.5771 Y +-7845.9814 8543.8857 -7846.5015 8540.4307 Y +-7847.1919 8538.7021 -7844.5991 8539.3936 Y +-7842.7002 8539.9111 -7841.835 8538.1836 Y +-7842.7002 8539.3936 -7843.3906 8538.5303 Y +f -7837.9082 8572.9521 m +-7838.6074 8573.4893 -7839.7632 8573.0938 Y +-7842.2446 8574.3135 -7841.5327 8571.8467 Y +-7840.769 8569.1104 -7841.564 8565.1221 Y +-7841.541 8561.6445 -7843.4014 8562.5596 Y +-7844.0342 8562.5557 L +-7844.3198 8560.6123 -7844.7046 8558.7549 -7845.0898 8557.1699 C +-7843.7129 8559.4199 -7842.2778 8560.0635 Y +-7840.5913 8561.082 -7838.9878 8556.5791 Y +-7839.4214 8555.4502 -7838.2417 8553.7021 Y +-7839.4937 8553.8125 -7840.7246 8556.876 Y +-7841.4976 8561.6152 -7842.3511 8558.4268 Y +-7843.5776 8556.1904 -7844.769 8555.0098 -7845.814 8554.4229 C +-7846.2026 8553.0635 -7846.4858 8552.2393 Y +-7846.7002 8551.4727 -7847.0337 8550.8486 -7847.4487 8550.3369 C +-7847.3799 8550.5127 -7847.3174 8550.6982 -7847.2632 8550.8916 C +-7841.3022 8568.2588 -7846.4858 8574.9971 V +-7853.2246 8584.5869 -7857.3721 8584.5869 V +-7860.9663 8584.6514 L +-7865.1138 8584.6514 -7871.853 8575.0615 Y +-7871.9038 8574.9961 -7871.9463 8574.9219 -7871.9961 8574.8516 C +-7871.7378 8575.4141 -7871.437 8575.9404 -7871.0752 8576.4092 C +-7864.3359 8586 -7860.189 8586 V +-7856.5942 8585.9346 L +-7852.4482 8585.9346 -7845.709 8576.3447 Y +-7843.5801 8573.5771 -7843.3306 8569.0176 -7843.7769 8564.6055 C +-7843.6553 8564.5752 -7843.5698 8564.5684 Y +-7842.0112 8562.6475 -7842.7598 8570.5244 Y +-7843.4746 8573.3789 -7841.7026 8574.2402 Y +-7840.9351 8575.0186 -7837.9946 8574.3428 Y +-7837.9136 8573.7256 -7836.4434 8573.5811 Y +-7835.7446 8573.0449 -7833.8921 8573.2881 Y +-7835.5024 8571.5771 -7837.9082 8572.9521 Y +f U U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 34) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884.0254 8586.0264 m +-7828.0542 8586.0264 L +-7828.0542 8524.5342 L +-7884.0254 8524.5342 L +-7884.0254 8586.0264 L +n u u 0 O +0.0745 0.9 0.9019 0.18 k +0 R +0 0 0 1 K +1 J 1 j 0.0518 w -7857.5991 8562.7217 m +-7857.3594 8573.5215 -7862.8794 8583.8398 v +-7862.4009 8586 -7860.959 8586 v +-7861.2002 8582.6406 -7860.2393 8582.1611 v +-7855.9199 8570.1602 -7856.6382 8562.2402 v +-7857.5991 8562.7217 l +b -7857.5991 8562.7217 m +-7859.2793 8568 -7871.0391 8569.2012 v +-7875.3594 8569.6807 -7875.5991 8571.1211 v +-7869.1206 8561.5195 -7868.1602 8561.7607 v +-7881.3594 8556.001 -7884 8550.7197 v +-7878.959 8553.6006 -7875.5991 8551.4404 v +-7867.6802 8551.2012 -7862.6406 8553.3613 v +-7858.8008 8555.2813 -7866.7202 8539.2012 v +-7862.8794 8550.9609 -7859.2793 8524.5605 v +-7858.3198 8529.8408 -7856.8799 8531.2813 v +-7850.8799 8538.9609 -7851.8398 8541.1211 v +-7852.3198 8544.9609 -7847.7598 8538.7207 v +-7848 8548.3213 -7850.4009 8551.6807 v +-7852.5591 8555.2813 -7846.5591 8553.1211 v +-7840.5591 8551.2012 -7835.2793 8552.8809 v +-7829.7598 8554.3203 -7828.0801 8551.4404 v +-7839.8398 8563.9209 -7845.5991 8563.6807 v +-7843.9194 8567.2813 l +-7841.519 8572.0811 -7842 8573.2813 v +-7857.2681 8563.8828 -7857.5991 8562.7217 v +b -7857.5991 8562.7217 m +-7854.959 8544.2402 -7857.5991 8536.5605 v +-7859.998 8526.001 -7859.2793 8524.5605 v +S -7856.1602 8551.4404 m +-7850.1602 8546.6406 -7848.959 8541.3604 v +S -7856.1602 8550.7197 m +-7865.0391 8543.041 -7866.7202 8539.2012 v +S -7828.0801 8551.4404 m +-7829.2793 8553.6006 -7857.3594 8561.7607 y +-7862.4009 8556.2422 -7873.9199 8553.8408 v +-7881.5986 8552.8809 -7884 8550.7197 v +S -7874.6382 8569.6807 m +-7863.1191 8560.5615 -7857.3594 8561.7607 y +-7843.1992 8568 -7842 8573.2813 v +S U U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 36) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7883.8496 8585.9961 m +-7833.96 8585.9961 L +-7833.96 8534.9258 L +-7883.8496 8534.9258 L +-7883.8496 8585.9961 L +n u 0 O +0.025 0.1 0.475 0 k +-7862.1504 8553.9043 m +-7864.4766 8552.8125 -7866.6914 8552.4434 -7868.373 8552.9238 c +-7869.0518 8553.1172 -7869.645 8553.4473 -7870.123 8553.9238 c +-7870.6006 8554.4023 -7870.9297 8554.9951 -7871.123 8555.6729 c +-7872.0088 8558.7715 -7870.0103 8563.6777 -7865.9233 8567.7666 c +-7861.834 8571.8535 -7856.9297 8573.8516 -7853.8286 8572.9668 c +-7853.1519 8572.7715 -7852.5586 8572.4424 -7852.0806 8571.9658 c +-7851.603 8571.4883 -7851.2754 8570.8955 -7851.082 8570.2168 c +-7850.5176 8568.2461 -7851.1226 8565.5449 -7852.6855 8562.7891 c +-7853.582 8561.21 -7854.791 8559.6133 -7856.2793 8558.123 c +-7858.1504 8556.2539 -7860.1914 8554.8242 -7862.1504 8553.9043 c +f u 0.0035 0.014 0.0665 0 k +-7861.2183 8552.9727 m +-7863.8306 8552.0215 -7866.3975 8551.9688 -7868.373 8552.9238 C +-7866.6914 8552.4434 -7864.4766 8552.8125 -7862.1504 8553.9043 c +-7861.6191 8554.1543 -7861.0806 8554.4434 -7860.543 8554.7676 C +-7858.8984 8554.0537 L +-7859.667 8553.6172 -7860.4434 8553.2539 -7861.2183 8552.9727 c +f 0.015 0.06 0.285 0 k +-7858.8984 8554.0537 m +-7860.543 8554.7676 L +-7859.0962 8555.6348 -7857.6426 8556.7607 -7856.2793 8558.123 c +-7856.1538 8558.25 -7856.0327 8558.3779 -7855.9102 8558.5059 C +-7855.2153 8556.8633 L +-7856.3706 8555.7236 -7857.6191 8554.7813 -7858.8984 8554.0537 C +f U u 0.039 0.156 0.741 0 k +-7849.687 8541.4043 m +-7849.9746 8541.6914 -7861.2183 8552.9727 Y +-7860.4434 8553.2539 -7859.667 8553.6172 -7858.8984 8554.0537 C +-7845.4146 8540.5703 L +-7847.061 8540.0996 -7848.6406 8540.3555 -7849.687 8541.4043 c +f 0.025 0.1 0.475 0 k +-7845.4146 8540.5703 m +-7858.8984 8554.0537 L +-7857.584 8554.8027 -7856.2969 8555.7754 -7855.1143 8556.957 c +-7855.084 8556.9863 -7855.0586 8557.0156 -7855.0278 8557.0449 C +-7841.3408 8543.3574 L +-7841.5264 8543.1328 -7841.7202 8542.9141 -7841.9302 8542.7012 c +-7843.0103 8541.623 -7844.2305 8540.9082 -7845.4146 8540.5703 C +f U u 0.0115 0.046 0.2185 0 k +-7835.9346 8550.3926 m +-7833.5337 8547.9893 -7833.335 8544.0898 -7835.1382 8540.6973 C +-7836.2954 8541.1182 L +-7834.0938 8544.4961 -7833.8398 8548.2949 -7835.9346 8550.3926 c +f 0.015 0.06 0.285 0 k +-7843.5337 8535.5957 m +-7842.582 8534.9258 L +-7845.2046 8534.3516 -7847.8306 8534.9141 -7849.6206 8536.7061 c +-7848.1719 8535.2578 -7845.9082 8534.9307 -7843.5337 8535.5957 C +f 0.0295 0.118 0.5605 0 k +-7843.5337 8535.5957 m +-7845.9082 8534.9307 -7848.1719 8535.2578 -7849.6206 8536.7061 c +-7851.019 8538.1055 -7851.3706 8540.2637 -7850.7954 8542.5469 C +-7848.8672 8539.5449 -7845.4082 8540.5537 V +-7843.585 8535.6309 L +-7843.5337 8535.5957 L +f *u +0.048 0.192 0.912 0 k +1 D +-7835.9346 8550.3926 m +-7837.2817 8551.7383 -7839.332 8552.1133 -7841.5234 8551.627 C +-7851.6714 8561.7734 L +-7851.7695 8561.5684 -7851.7695 8561.5684 -7851.6714 8561.7734 c +-7850.2246 8564.8145 -7849.9702 8567.916 -7851.082 8570.2168 C +-7850.5176 8568.2461 -7851.1226 8565.5449 -7852.6855 8562.7891 c +-7853.5054 8561.3438 -7854.5918 8559.8848 -7855.9102 8558.5059 C +-7855.2153 8556.8633 L +-7855.1816 8556.8945 -7855.1465 8556.9238 -7855.1143 8556.957 c +-7855.084 8556.9883 -7855.0566 8557.0176 -7855.0273 8557.0469 c +-7855.0278 8557.0469 -7855.0278 8557.0469 -7855.0278 8557.0449 C +-7841.3408 8543.3574 L +-7836.3262 8541.1289 L +-7836.2954 8541.1182 L +-7834.0938 8544.4961 -7833.8398 8548.2949 -7835.9346 8550.3926 c +f *U +0.0215 0.086 0.4085 0 k +0 D +-7842.582 8534.9258 m +-7843.5337 8535.5957 L +-7841.6846 8536.1113 -7839.7656 8537.2285 -7838.1138 8538.8828 c +-7837.4063 8539.5889 -7836.7998 8540.3418 -7836.2954 8541.1182 C +-7835.1382 8540.6973 L +-7835.6553 8539.7246 -7836.3374 8538.793 -7837.1802 8537.9512 c +-7838.7695 8536.3594 -7840.6758 8535.3428 -7842.582 8534.9258 C +f 0.0205 0.082 0.3895 0 k +-7836.2954 8541.1182 m +-7836.7998 8540.3418 -7837.4063 8539.5889 -7838.1138 8538.8828 c +-7839.7656 8537.2285 -7841.6846 8536.1113 -7843.5337 8535.5957 C +-7843.585 8535.6309 L +-7845.4082 8540.5537 L +-7844.2114 8540.9219 -7842.9878 8541.6436 -7841.9302 8542.7012 c +-7841.7202 8542.9141 -7841.5264 8543.1328 -7841.3408 8543.3574 C +-7836.3262 8541.1289 L +-7836.2954 8541.1182 L +f U u 0.445 0.356 0.267 0 k +-7883.8496 8585.9961 m +-7861.957 8562.9688 L +-7862.2007 8562.6494 -7862.5752 8562.6133 -7862.8887 8562.6592 C +-7867.1802 8567.2891 -7878.3145 8579.4561 -7882.7266 8584.2793 C +-7883.5649 8585.3516 -7884 8585.9932 -7883.8496 8585.9961 C +f 0.15 0.12 0.09 0 k +-7883.834 8585.9961 m +-7882.6606 8585.7031 -7861.6934 8564.0029 Y +-7861.6934 8563.502 -7861.7993 8563.1758 -7861.957 8562.9688 C +-7883.8496 8585.9961 L +-7883.8442 8585.9961 -7883.8418 8586 -7883.834 8585.9961 c +f 0.2 0.16 0.12 0 k +-7882.7266 8584.2793 m +-7878.3145 8579.4561 -7867.1802 8567.2891 -7862.8887 8562.6592 C +-7863.2002 8562.7041 -7863.4526 8562.8301 Y +-7864.603 8563.1328 -7878.5742 8578.9619 -7882.7266 8584.2793 C +f U U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 37) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7882.9502 8585.2324 m +-7833.0391 8585.2324 L +-7833.0391 8521.1152 L +-7882.9502 8521.1152 L +-7882.9502 8585.2324 L +n u 0 O +0 0 0 1 k +0 R +0 0 0 1 K +0 w -7833.2358 8521.1152 m +-7833.6064 8521.248 -7833.9858 8521.2832 -7834.3833 8521.2031 c +-7834.4863 8521.168 l +-7834.5254 8521.1602 -7834.5703 8521.1787 -7834.6025 8521.1992 c +-7834.9434 8521.3926 l +-7838.7129 8523.2959 -7842.0962 8525.8965 -7844.5 8529.4473 c +-7845.9634 8531.5918 -7847.123 8533.8789 -7848.7993 8535.8564 c +-7849.1729 8536.209 -7849.1758 8536.7725 -7848.834 8537.1309 c +-7848.4951 8537.501 -7847.918 8537.5078 -7847.561 8537.165 c +-7847.4038 8537.21 l +-7847.2642 8537.1289 -7847.0742 8537.0703 -7847.0234 8536.957 c +-7845.853 8534.2031 -7845.1895 8531.5137 -7843.4336 8529.1387 c +-7841.1719 8526.0947 -7838.1777 8523.9941 -7835.0298 8522.0234 c +-7834.3672 8521.6055 L +-7834.4966 8521.6348 L +-7833.7695 8521.6426 l +-7833.791 8521.6113 -7833.8008 8521.5957 -7833.8223 8521.5645 C +-7833.6064 8521.5234 -7833.377 8521.4746 -7833.1626 8521.4336 c +-7833.0762 8521.4238 -7833.0186 8521.3389 -7833.0391 8521.2383 c +-7833.0503 8521.1523 -7833.1382 8521.1084 -7833.2358 8521.1152 c +-7833.2358 8521.1152 l +b -7849.2222 8534.9951 m +-7849.5742 8534.8066 -7849.9658 8534.6719 -7850.248 8534.3887 c +-7856.4521 8528.1719 -7866.6802 8527.2734 -7874.0488 8533.6855 C +-7874.1582 8533.7813 -7874.1582 8533.957 -7874.063 8534.0645 C +-7871.0527 8532.9434 -7862.8838 8534.375 -7859.3223 8537.4121 C +-7859.2534 8537.4668 -7859.1465 8537.4531 -7859.1055 8537.3711 C +-7859.0503 8537.3047 -7859.0664 8537.1953 -7859.1328 8537.1563 C +-7862.5625 8534.0859 -7867.0674 8532.29 -7871.6729 8532.748 C +-7868.8535 8531.1855 -7865.6313 8530.4941 -7862.3984 8530.6885 c +-7857.7144 8530.9717 -7853.4634 8533.1191 -7849.3711 8535.2793 c +-7849.291 8535.3193 -7849.1978 8535.293 -7849.1553 8535.2109 C +-7849.1016 8535.1309 -7849.1426 8535.0352 -7849.2222 8534.9951 c +b -7858.647 8536.3359 m +-7860.2266 8540.3613 -7862.3911 8544.3203 -7865.8018 8547.0762 c +-7865.9648 8547.2119 -7865.9946 8547.4492 -7865.8711 8547.6055 c +-7865.7344 8547.7676 -7865.5049 8547.7793 -7865.3481 8547.6563 c +-7861.123 8545.5967 -7858.1904 8541.1309 -7858.1626 8536.4014 c +-7858.1626 8536.4014 l +-7858.1328 8536.2676 -7858.2354 8536.1348 -7858.3633 8536.1221 c +-7858.5039 8536.1055 -7858.6318 8536.1973 -7858.647 8536.3359 c +-7858.647 8536.3359 l +b -7852.9414 8541.0176 m +-7853.042 8541.1816 -7853.1152 8541.3838 -7853.2617 8541.4824 c +-7856.0806 8543.3906 -7858.9785 8544.6309 -7861.8848 8546.1328 c +-7862.0503 8546.209 -7862.1118 8546.418 -7862.0313 8546.5703 c +-7861.9512 8546.7227 -7861.7559 8546.7793 -7861.5898 8546.7041 c +-7858.439 8545.3232 -7854.313 8544.5 -7852.6729 8541.1797 c +-7852.6289 8541.1113 -7852.6455 8541.0146 -7852.7266 8540.9648 c +-7852.7959 8540.9199 -7852.897 8540.9492 -7852.9414 8541.0176 c +-7852.9414 8541.0176 l +b -7852.6602 8541.918 m +-7852.4438 8542.4297 -7852.1431 8542.8896 -7852.0503 8543.4355 c +-7851.2183 8548.2773 -7851.1152 8553.042 -7852.248 8557.6875 c +-7852.248 8557.6875 l +-7852.3418 8557.9531 -7852.2114 8558.2441 -7851.9438 8558.3389 c +-7851.6777 8558.4336 -7851.3882 8558.3125 -7851.2935 8558.0479 c +-7849.293 8552.8115 -7849.897 8546.7373 -7852.3711 8541.7832 c +-7852.4063 8541.7002 -7852.498 8541.6689 -7852.582 8541.6914 c +-7852.6641 8541.7275 -7852.6978 8541.835 -7852.6602 8541.918 c +-7852.6602 8541.918 l +b -7851.5352 8557.5938 m +-7848.8984 8555.2275 -7846.6816 8552.252 -7845.853 8548.7363 c +-7845.853 8548.7363 l +-7845.7246 8548.1816 -7846.0742 8547.623 -7846.6416 8547.4902 c +-7847.1992 8547.375 -7847.7578 8547.7246 -7847.8862 8548.2793 c +-7848.5649 8551.5313 -7849.8711 8554.6729 -7851.7954 8557.3867 c +-7851.7954 8557.3867 l +-7851.8462 8557.4551 -7851.834 8557.5576 -7851.7695 8557.6201 c +-7851.6992 8557.6699 -7851.5977 8557.6582 -7851.5352 8557.5938 c +-7851.5352 8557.5938 l +b -7836.3711 8550.1826 m +-7837.7114 8545.8301 -7840.2598 8542.0693 -7843.689 8539.1533 C +-7843.729 8539.0723 -7843.8242 8539.0322 -7843.9038 8539.0859 C +-7843.9863 8539.127 -7844.0122 8539.2207 -7843.9722 8539.3018 C +-7843.957 8539.7891 -7843.7144 8540.2334 -7843.4458 8540.5313 c +-7838.4063 8546.1621 -7834.9902 8554.7197 -7837.3433 8561.9551 C +-7837.0762 8556.4512 -7838.7241 8550.3008 -7842.1362 8545.6738 c +-7843.1606 8544.2695 -7844.7422 8544.1211 -7846.3081 8544.2031 C +-7846.4023 8544.1895 -7846.4834 8544.2432 -7846.4961 8544.3369 c +-7846.5098 8544.4189 -7846.4551 8544.5137 -7846.3623 8544.5254 C +-7843.1479 8545.7695 -7841.4878 8549.2246 -7840.084 8552.1943 c +-7838.415 8555.7441 -7837.7017 8559.6387 -7838.0054 8563.5 C +-7838.0454 8563.6777 -7838.1138 8565.3975 -7837.9775 8565.4102 C +-7837.8306 8565.4395 -7837.709 8565.3438 -7837.6802 8565.1943 C +-7837.645 8565.0449 -7834.6426 8555.7988 -7836.3711 8550.1826 c +b -7844.4863 8537.4912 m +-7843.3945 8533.6211 -7841.1094 8530.251 -7838.4824 8527.2383 c +-7838.3306 8527.1045 -7838.3145 8526.8867 -7838.4502 8526.7354 c +-7838.5752 8526.6006 -7838.8047 8526.582 -7838.957 8526.7178 c +-7842.3306 8529.332 -7843.4487 8533.541 -7844.7954 8537.375 c +-7844.7954 8537.375 l +-7844.8262 8537.4648 -7844.7754 8537.5586 -7844.6982 8537.5869 c +-7844.6094 8537.6191 -7844.5166 8537.5684 -7844.4863 8537.4912 c +-7844.4863 8537.4912 l +b -7838.5313 8562.1094 m +-7838.5991 8562.0566 -7838.707 8562.083 -7838.748 8562.1504 C +-7838.9634 8562.4746 -7840.6914 8564.5195 -7841.3926 8565.1406 c +-7846.1719 8569.3945 -7849.5137 8573.9609 -7857.5391 8577.7227 c +-7864.4512 8580.9639 -7867.1113 8583.5957 -7874.3862 8581.8262 c +-7877.687 8581.0293 -7879.0313 8580.5313 -7880.4351 8575.4551 C +-7881.9473 8569.2988 -7880.8672 8571.7832 -7881.084 8564.4385 c +-7881.2222 8559.6973 -7884 8548.4551 -7871.5254 8534.2598 C +-7871.4199 8534.1484 -7871.4336 8533.9961 -7871.5337 8533.9072 C +-7871.6328 8533.8027 -7871.7959 8533.8164 -7871.8862 8533.916 C +-7877.5786 8538.7168 -7881.0234 8545.6582 -7882.3145 8552.9424 c +-7883.2871 8558.4668 -7882.9199 8563.25 -7882.666 8569.6367 c +-7882.5688 8572.0938 -7883.6855 8579.0723 -7878.9102 8583.0625 c +-7875.3926 8586 -7870.3911 8585.5469 -7866.3545 8584.1563 c +-7860.6992 8582.2119 -7855.9727 8579.1465 -7850.8711 8575.6094 c +-7847.2656 8573.125 -7839.2881 8563.2852 -7838.4785 8562.3262 C +-7838.4351 8562.2588 -7838.4502 8562.1504 -7838.5313 8562.1094 C +b -7873.0503 8549.3057 m +-7872.168 8548.5029 -7871.7017 8549.8457 -7871.4297 8550.6016 c +-7871.1626 8551.3574 -7870.189 8551.25 -7870.5127 8551.5732 c +-7870.8369 8551.8975 -7870.8369 8551.9521 -7871.3232 8551.5195 c +-7871.8086 8551.0879 -7871.8086 8551.7363 -7872.5649 8551.25 c +-7873.3198 8550.7627 -7873.645 8549.8457 -7873.0503 8549.3057 c +b -7865.6519 8553.9492 m +-7865.3657 8553.5918 -7864.6802 8553.5723 -7864.4648 8553.8945 c +-7864.25 8554.2197 -7863.3306 8554.2734 -7863.4937 8554.5967 c +-7863.6543 8554.9219 -7863.6016 8555.1387 -7864.0874 8554.9219 c +-7864.5737 8554.7051 -7864.4121 8555.2998 -7864.897 8555.084 c +-7865.3833 8554.8672 -7865.8687 8554.2197 -7865.6519 8553.9492 c +b -7857.6074 8559.0791 m +-7857.1206 8558.7559 -7855.8794 8559.5117 -7856.4727 8559.5117 c +-7857.0674 8559.5117 -7856.311 8560.2676 -7856.8521 8560.4834 c +-7857.3906 8560.6992 -7857.2832 8560.4297 -7857.6074 8560.6445 c +-7857.9297 8560.8613 -7858.3633 8561.2393 -7858.5239 8560.4297 c +-7858.6855 8559.6191 -7858.3633 8559.6191 -7857.9849 8559.3496 c +-7857.6074 8559.0791 -7857.6074 8559.0791 y +b -7872.2402 8559.3496 m +-7871.1074 8559.2422 -7871.8633 8559.998 -7871.269 8560.4834 c +-7870.6738 8560.9697 -7869.918 8561.6172 -7870.729 8561.4004 c +-7871.5391 8561.1855 -7872.9961 8561.6719 -7872.9434 8560.5381 c +-7872.8887 8559.4033 -7872.6328 8559.3867 -7872.2402 8559.3496 c +b -7866.5703 8567.6113 m +-7866.1016 8567.3438 -7866.6802 8567.7197 -7866.0303 8567.6113 c +-7865.3833 8567.5039 -7864.7886 8567.6113 -7865.2207 8567.8281 c +-7865.6519 8568.0439 -7866.3008 8568.1523 -7866.4634 8567.9893 c +-7866.625 8567.8281 -7866.9473 8567.8281 -7866.5703 8567.6113 c +b -7857.0674 8567.1797 m +-7857.4785 8566.1797 -7856.0962 8566.4238 -7855.4473 8566.7461 c +-7854.7998 8567.0723 -7853.8262 8566.4775 -7854.4209 8566.9102 c +-7855.0137 8567.3418 -7854.7998 8566.9102 -7855.3926 8567.2334 c +-7855.9873 8567.5566 -7856.6895 8568.0977 -7857.0674 8567.1797 c +b -7872.6738 8573.0664 m +-7872.7222 8572.0752 -7871.8086 8572.957 -7871.269 8573.0117 c +-7870.729 8573.0664 -7870.0801 8573.0664 -7870.2432 8573.2813 c +-7870.4038 8573.498 -7870.459 8573.498 -7871.1626 8573.7129 c +-7871.8633 8573.9297 -7872.6191 8574.1445 -7872.6738 8573.0664 c +b -7873.1582 8567.6113 m +-7874.0664 8567.9746 -7874.293 8567.8809 -7874.5625 8568.2051 c +-7874.834 8568.5293 -7875.1558 8569.2314 -7875.5352 8568.0977 c +-7875.9121 8566.9629 -7875.4282 8565.7764 -7875.0479 8565.9375 c +-7874.6714 8566.0996 -7874.293 8566.7461 -7873.8618 8566.9629 c +-7873.4297 8567.1797 -7872.6191 8567.3945 -7873.1582 8567.6113 c +b U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 41) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884 8586 m +-7803 8586 L +-7803 8481 L +-7884 8481 L +-7884 8586 L +n u u u 0 O +0 0 0 1 k +-7865.8057 8498.4258 m +-7866.0742 8496.6621 -7867.1602 8495.291 -7868.5239 8495.3965 c +-7869.8862 8495.502 -7870.707 8497.0234 -7870.7432 8498.8066 c +-7870.748 8499.0693 -7870.6743 8500.2441 -7870.6304 8500.4775 C +-7870.6382 8500.582 -7870.6191 8500.6738 -7870.6104 8500.7803 c +-7870.5142 8502.0254 -7869.3574 8503.3604 -7867.9414 8503.25 c +-7866.5249 8503.1406 -7865.4897 8501.8613 -7865.6367 8500.4727 c +-7865.644 8500.4072 -7865.6958 8499.626 -7865.707 8499.5625 C +-7865.6816 8499.2852 -7865.7598 8498.7256 -7865.8057 8498.4258 c +f -7876.2646 8507.7334 m +-7876.9946 8515.916 -7871.5015 8515.1191 v +-7868.3682 8514.0186 -7869.4414 8511.1211 v +-7869.6426 8509.752 -7871.7847 8508.498 v +-7872.146 8508.25 -7872.7632 8507.1016 v +-7873.1294 8505.5977 -7874.5186 8505.2979 v +-7876.0762 8505.251 -7876.2646 8507.7334 v +f -7850.7646 8516.4971 m +F -7850.0762 8514.3408 m +-7850.7847 8513.1934 -7853.8848 8513.6279 Y +-7854.811 8513.6885 -7855.3799 8513.1113 Y +-7857.8394 8509.0918 -7861.0386 8509.8857 -7861.4082 8509.9932 C +-7861.4097 8509.9863 L +-7864.999 8510.6045 -7865.2666 8515.6035 V +-7865.4912 8516.3828 -7866.335 8516.7695 V +-7869.2695 8517.8613 -7869.3481 8519.208 V +-7869.8999 8521.1152 -7867.6006 8521.7422 V +-7865.6792 8522.2568 -7863.7886 8519.8945 V +-7862.6113 8518.6797 -7859.5762 8517.9395 V +-7859.5728 8517.9531 L +-7856.3594 8517.0459 -7854.6392 8517.5889 Y +-7851.8521 8518.7676 -7850.4063 8517.4014 Y +-7848.6826 8515.7559 -7850.0762 8514.3408 Y +f -7863.9834 8497.8789 m +-7864.5854 8496.2002 -7864.2822 8494.4775 -7863.0327 8493.9229 c +-7861.7842 8493.3672 -7860.3384 8494.3164 -7859.4585 8495.8672 c +-7859.3286 8496.0957 -7858.8359 8497.165 -7858.7632 8497.3906 C +-7858.7065 8497.4785 -7858.6792 8497.5684 -7858.6362 8497.667 c +-7858.1289 8498.8086 -7858.5122 8500.5303 -7859.8105 8501.1074 c +-7861.1089 8501.6855 -7862.6279 8501.0527 -7863.1582 8499.7617 c +-7863.1831 8499.7002 -7863.5078 8498.9883 -7863.5298 8498.9268 C +-7863.6831 8498.6963 -7863.8809 8498.166 -7863.9834 8497.8789 c +f -7849.7129 8500.9316 m +-7845.1802 8507.7822 -7850.3911 8509.6943 v +-7853.6714 8510.2168 -7854.103 8507.1572 v +-7854.5786 8505.8564 -7853.29 8503.7354 v +-7853.0903 8503.3447 -7853.0938 8502.04 v +-7853.4858 8500.5449 -7852.4082 8499.6182 v +-7851.0591 8498.8359 -7849.7129 8500.9316 v +f U u -7824.7358 8550.1074 m +-7824.3687 8548.3623 -7824.9048 8546.6963 -7826.2183 8546.3164 c +-7827.5322 8545.9375 -7828.8345 8547.0752 -7829.4937 8548.7324 c +-7829.5903 8548.9775 -7829.9326 8550.1025 -7829.9746 8550.3369 C +-7830.0176 8550.4326 -7830.0322 8550.5244 -7830.0625 8550.6279 c +-7830.4087 8551.8271 -7829.7935 8553.4805 -7828.4282 8553.875 c +-7827.063 8554.2695 -7825.645 8553.4365 -7825.2969 8552.085 c +-7825.2793 8552.0205 -7825.0552 8551.2705 -7825.0425 8551.207 C +-7824.9214 8550.9551 -7824.7983 8550.4053 -7824.7358 8550.1074 c +f -7838.2705 8554.6172 m +-7841.8242 8562.0244 -7836.3999 8563.2061 v +-7833.0801 8563.2754 -7833.0688 8560.1846 v +-7832.7778 8558.8311 -7834.3433 8556.9072 v +-7834.5942 8556.5459 -7834.7695 8555.2539 v +-7834.5854 8553.7188 -7835.7793 8552.9492 v +-7837.2222 8552.3594 -7838.2705 8554.6172 v +f -7817.4648 8571.7695 m +F -7816.063 8569.9912 m +-7816.3247 8568.6689 -7819.3799 8567.9883 Y +-7820.27 8567.7197 -7820.5986 8566.9795 Y +-7821.4922 8562.3535 -7824.7666 8561.9746 -7825.1494 8561.9453 C +-7825.1494 8561.9395 L +-7828.7271 8561.2588 -7830.731 8565.8467 V +-7831.2153 8566.4961 -7832.1416 8566.5625 V +-7835.272 8566.5557 -7835.8169 8567.7891 V +-7837.0039 8569.3809 -7835.0713 8570.7764 V +-7833.4526 8571.9316 -7830.853 8570.3818 V +-7829.3242 8569.6582 -7826.2222 8570.0293 V +-7826.2231 8570.042 L +-7822.896 8570.3213 -7821.4766 8571.4326 Y +-7819.2793 8573.5146 -7817.4463 8572.7432 Y +-7815.2554 8571.8057 -7816.063 8569.9912 Y +f -7822.8374 8550.2354 m +-7822.813 8548.4512 -7821.9258 8546.9453 -7820.5601 8546.8633 c +-7819.1943 8546.7803 -7818.1743 8548.1768 -7817.895 8549.9385 c +-7817.854 8550.1973 -7817.7666 8551.3711 -7817.7778 8551.6094 C +-7817.7559 8551.7109 -7817.7617 8551.8037 -7817.7559 8551.9121 c +-7817.6807 8553.1592 -7818.644 8554.6367 -7820.0625 8554.7217 c +-7821.4814 8554.8066 -7822.6826 8553.6826 -7822.7246 8552.2871 c +-7822.7271 8552.2217 -7822.7822 8551.4404 -7822.7798 8551.375 C +-7822.8433 8551.1045 -7822.8423 8550.54 -7822.8374 8550.2354 c +f -7811.0186 8557.5625 m +-7809.1777 8565.5684 -7814.7271 8565.5303 v +-7817.9834 8564.8691 -7817.3154 8561.8516 v +-7817.3032 8560.4668 -7815.353 8558.9326 v +-7815.0278 8558.6377 -7814.5742 8557.415 v +-7814.417 8555.876 -7813.083 8555.3877 v +-7811.5454 8555.1279 -7811.0186 8557.5625 v +f U U 1 Ap +-7884 8586 m +-7884 8481 L +-7803 8481 L +-7803 8586 L +-7884 8586 L +n U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 42) +0 A +u 0 Ap +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7857.4609 8559.085 m +-7885 8559.085 L +-7885 8586.624 L +-7857.4609 8586.624 L +-7857.4609 8559.085 L +n 0 O +0 0.55 1 0.12 k +-7871.7598 8577.3623 m +-7871.7598 8587 L +-7870.6343 8587 L +-7870.6343 8577.3623 L +-7871.7598 8577.3623 L +f 0 0.55 1 0.3 k +-7875.4233 8572.876 m +-7874.3096 8571.1553 -7870.8809 8569.457 -7866.4966 8569.457 c +-7862.1152 8569.457 -7858.6138 8571.1064 -7857.5718 8572.874 C +-7857.5718 8572.874 L +-7858.6138 8574.6006 -7862.1152 8576.2979 -7866.4966 8576.2979 c +-7870.875 8576.2979 -7874.3242 8574.5615 -7875.4233 8572.876 C +f U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 45) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7885 8543.918 m +-7885 8587 L +-7798.2217 8587 L +-7798.2217 8543.918 L +-7885 8543.918 L +n u u 0 O +0 0 0 1 k +-7825.2217 8573.2363 m +-7825.2217 8581.0742 L +-7813.2217 8574.1445 L +-7801.2217 8567.2168 L +-7813.2217 8560.2891 L +-7825.2217 8553.3613 L +-7825.2217 8561.4824 L +-7883.9351 8547.7168 L +-7870.9878 8566.8027 L +-7885 8587 L +-7825.2217 8573.2363 L +f 0 1 1 0.1 k +0 R +0 0 0 1 K +-7823.2217 8570.2363 m +-7823.2217 8578.0742 L +-7811.2217 8571.1445 L +-7799.2217 8564.2168 L +-7811.2217 8557.2891 L +-7823.2217 8550.3613 L +-7823.2217 8558.4824 L +-7881.9351 8544.7168 L +-7867.2754 8564.3594 L +-7881.9351 8584 L +-7823.2217 8570.2363 L +b U U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 50) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884 8586 m +-7756.877 8586 L +-7756.877 8538.415 L +-7884 8538.415 L +-7884 8586 L +n u *u +0 O +0.9529 0.949 0.1961 0.0745 k +-7857.793 8570.417 m +-7857.8232 8570.2676 L +-7859.9849 8564.3643 -7860.9438 8561.6377 -7861.2754 8560.2891 c +-7861.3657 8560.2891 L +-7861.6953 8561.6074 -7862.7754 8564.335 -7864.9673 8570.2676 c +-7864.9966 8570.417 L +-7857.793 8570.417 l +f 1 D +-7868.1182 8578.9678 m +-7869.6191 8582.5371 -7870.3994 8584.709 -7868.1182 8584.917 c +-7868.1182 8585.9678 L +-7870.6992 8585.9375 -7873.5806 8585.917 -7876.3418 8585.917 c +-7880.0649 8585.917 -7882.5273 8585.9375 -7884 8585.9678 c +-7884 8584.917 L +-7882.1064 8584.709 -7881.0542 8582.5674 -7873.5513 8565.5029 c +-7861.6953 8538.415 L +-7859.8638 8538.415 L +-7848.1582 8565.5029 L +-7840.8047 8582.5078 -7839.7246 8584.709 -7837.8887 8584.917 c +-7837.8887 8585.9678 L +-7839.5142 8585.9375 -7841.916 8585.917 -7845.5767 8585.917 c +-7848.5488 8585.917 -7851.6694 8585.9375 -7854.7026 8585.9678 c +-7854.7026 8584.917 L +-7852.481 8584.709 -7853.3218 8582.5078 -7854.7617 8578.9678 C +-7868.1182 8578.9678 l +f *U +*u +0 D +-7813.0762 8554.0811 m +-7813.0762 8550.4717 -7815.3535 8548.0947 -7819.1294 8548.0947 c +-7820.2383 8548.0947 -7821.0767 8548.2158 -7821.5273 8548.2451 c +-7821.5273 8560.5479 L +-7820.8672 8560.6084 -7820.208 8560.6084 -7819.729 8560.6084 c +-7818.2002 8560.6084 -7816.7026 8560.127 -7815.6841 8559.4053 c +-7814.3945 8558.5332 -7813.0762 8556.7881 -7813.0762 8554.1416 C +-7813.0762 8554.0811 l +f 1 D +-7832.0806 8558.3926 m +-7832.0806 8542.6445 -7832.0806 8540.4287 -7834.542 8540.2783 c +-7834.542 8539.3184 L +-7833.042 8539.2588 -7830.3174 8539.1992 -7827.5664 8539.1689 c +-7825.6538 8539.1084 -7822.3945 8539.0186 -7820.1479 8538.9775 c +-7816.582 8538.9775 -7813.585 8539.4258 -7811.0049 8540.2627 c +-7806.353 8541.8477 -7801.9702 8545.8525 -7801.9702 8553.6602 c +-7801.9702 8558.7432 -7804.4014 8562.3193 -7806.5034 8564.0605 c +-7807.583 8565.0215 -7808.8135 8565.832 -7809.7744 8566.3125 c +-7809.7744 8566.4629 L +-7807.5234 8569.4912 -7805.6025 8572.0625 -7799.3906 8580.6426 c +-7797.5 8583.0645 -7795.9102 8584.7383 -7794.7402 8584.9775 c +-7794.7402 8586 L +-7796.6602 8586 -7799 8585.8848 -7801.1294 8585.8848 c +-7803.3511 8585.8848 -7804.8521 8586 -7806.4424 8586 c +-7807.6729 8586 -7808.7241 8585.9404 -7809.5039 8585.2725 c +-7813.0151 8579.8477 -7816.9121 8573.7559 -7820.1182 8568.7139 c +-7820.5078 8568.7139 -7820.957 8568.7139 -7821.5273 8568.7139 c +-7821.5273 8571.2852 L +-7821.5273 8582.5264 -7821.437 8584.7686 -7819.1895 8584.9775 c +-7819.1895 8585.9697 L +-7820.6279 8585.9404 -7823.9194 8585.915 -7826.6992 8585.915 c +-7829.9287 8585.915 -7832.8921 8585.9404 -7834.5122 8585.9697 c +-7834.5122 8584.9775 L +-7832.0518 8584.7686 -7832.0806 8582.5264 -7832.0806 8565.5918 C +-7832.0806 8558.3926 l +f *U +*u +0 D +-7781.4561 8565.5928 m +-7781.4561 8582.4941 -7781.4561 8584.6484 -7784.2832 8584.9775 C +-7784.2832 8585.9697 l +-7782.3887 8585.9404 -7779.0542 8585.915 -7775.7822 8585.915 c +-7772.6294 8585.915 -7769.5688 8585.9404 -7767.2881 8585.9697 C +-7767.2881 8584.9775 l +-7770.2578 8584.9775 -7770.2881 8582.5244 -7770.2881 8565.5928 C +-7770.2881 8548.1514 L +-7762.8193 8548.1514 l +-7759.999 8548.1514 -7758.5298 8548.96 -7757.8994 8551.2627 C +-7756.9072 8551.2627 l +-7756.9072 8546.4697 -7756.877 8542.415 -7756.877 8539.1709 c +-7761.3486 8539.2012 -7766.748 8539.2314 -7772.0601 8539.2314 C +-7779.7446 8539.2314 l +-7784.5537 8539.2314 -7789.9966 8539.2012 -7794.9614 8539.1709 c +-7794.9614 8542.3848 -7794.9326 8546.4697 -7794.9326 8551.2627 C +-7793.9072 8551.2627 l +-7793.3657 8549.1094 -7791.771 8548.1514 -7788.9438 8548.1514 C +-7781.4561 8548.1514 l +-7781.4561 8565.5928 L +f *U +U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 62) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7885 8587 m +-7885 8548.7305 L +-7846.7305 8548.7305 L +-7846.7305 8587 L +-7885 8587 L +n 0 O +1 0.14 0.09 0 k +-7846.7305 8569.9043 m +-7846.7305 8561.3408 L +-7885 8561.3408 L +-7885 8569.9043 L +-7846.7305 8569.9043 L +f -7846.7305 8573.0967 m +-7846.7305 8572.4229 L +-7885 8572.4229 L +-7885 8573.0967 L +-7846.7305 8573.0967 L +f U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 63) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7885 8587 m +-7885 8548.7305 L +-7846.7305 8548.7305 L +-7846.7305 8587 L +-7885 8587 L +n 0 O +1 0.14 0.09 0 k +-7846.7305 8565.8262 m +-7846.7305 8574.3896 L +-7859.3408 8574.3896 L +-7859.3408 8587 L +-7867.9038 8587 L +-7867.9063 8565.8262 L +-7867.9038 8565.8262 L +-7867.9038 8565.8252 L +-7846.7305 8565.8262 L +f -7846.7305 8563.3076 m +-7870.4233 8563.3076 L +-7870.4233 8587 L +-7871.0967 8587 L +-7871.0977 8562.6328 L +-7846.7305 8562.6328 L +-7846.7305 8563.3076 L +f U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 64) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7885 8586.999 m +-7885 8548.7285 L +-7846.7305 8548.7285 L +-7846.7305 8586.999 L +-7885 8586.999 L +n 0 O +1 0.14 0.09 0 k +-7846.7305 8561.3389 m +-7872.3896 8561.3389 L +-7872.3896 8586.999 L +-7863.8262 8587 L +-7863.8262 8569.9033 L +-7846.7305 8569.9033 L +-7846.7305 8561.3389 L +f -7846.7305 8572.4219 m +-7861.3081 8572.4219 L +-7861.3081 8587 L +-7860.6338 8587 L +-7860.6338 8573.0957 L +-7846.7305 8573.0957 L +-7846.7305 8572.4219 L +f U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 65) +0 A +u 1 Ap +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7857.0625 8559.4609 m +-7884.6025 8559.4609 L +-7884.6025 8587 L +-7857.0625 8587 L +-7857.0625 8559.4609 L +n 0 O +0 0.55 1 0.12 k +-7856.8418 8572.7002 m +-7885 8572.7002 L +-7885 8573.8252 L +-7856.8418 8573.8252 L +-7856.8418 8572.7002 L +f u 0 0.55 1 0.3 k +-7883.9814 8560.5215 m +-7884.4102 8562.5254 -7883.1865 8566.1514 -7880.0874 8569.251 c +-7876.9878 8572.3496 -7873.3457 8573.6602 -7871.3594 8573.1455 C +-7871.3594 8573.1455 L +-7870.875 8571.1895 -7872.1519 8567.5117 -7875.25 8564.4141 c +-7878.3457 8561.3184 -7882.0122 8560.1064 -7883.9814 8560.5215 C +f 0 0.39 0.7 0.12 k +-7883.9814 8585.9912 m +-7884.4102 8583.9883 -7883.1865 8580.3613 -7880.0874 8577.2617 c +-7876.9878 8574.1641 -7873.3457 8572.8535 -7871.3594 8573.3672 C +-7871.3594 8573.3672 L +-7870.875 8575.3242 -7872.1519 8579.001 -7875.25 8582.0996 c +-7878.3457 8585.1953 -7882.0122 8586.4063 -7883.9814 8585.9912 C +f U u 0 0.55 1 0.3 k +-7870.1782 8585.9912 m +-7870.6074 8583.9883 -7869.3838 8580.3613 -7866.2842 8577.2617 c +-7863.1855 8574.1641 -7859.543 8572.8535 -7857.5576 8573.3672 C +-7857.5566 8573.3672 L +-7857.0718 8575.3242 -7858.3496 8579.001 -7861.4473 8582.0996 c +-7864.543 8585.1953 -7868.209 8586.4063 -7870.1782 8585.9912 C +f 0 0.39 0.7 0.12 k +-7870.1782 8560.5215 m +-7870.6074 8562.5254 -7869.3838 8566.1514 -7866.2842 8569.251 c +-7863.1855 8572.3496 -7859.543 8573.6602 -7857.5576 8573.1455 C +-7857.5566 8573.1455 L +-7857.0718 8571.1895 -7858.3496 8567.5117 -7861.4473 8564.4141 c +-7864.543 8561.3184 -7868.209 8560.1064 -7870.1782 8560.5215 C +f U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 67) +0 A +u 0 Ap +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7857.4609 8559.085 m +-7885 8559.085 L +-7885 8586.624 L +-7857.4609 8586.624 L +-7857.4609 8559.085 L +n 0 O +0 0.55 1 0.12 k +-7871.7598 8577.3623 m +-7871.7598 8587 L +-7870.6343 8587 L +-7870.6343 8577.3623 L +-7871.7598 8577.3623 L +f 0 0.55 1 0.3 k +-7875.4233 8572.876 m +-7874.3096 8571.1553 -7870.8809 8569.457 -7866.4966 8569.457 c +-7862.1152 8569.457 -7858.6138 8571.1064 -7857.5718 8572.874 C +-7857.5718 8572.874 L +-7858.6138 8574.6006 -7862.1152 8576.2979 -7866.4966 8576.2979 c +-7870.875 8576.2979 -7874.3242 8574.5615 -7875.4233 8572.876 C +f U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 69) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7857.4609 8559.4609 m +-7885 8559.4609 L +-7885 8587 L +-7857.4609 8587 L +-7857.4609 8559.4609 L +n 0 O +0 0.55 1 0.3 k +-7875.4233 8573.252 m +-7874.3096 8571.5313 -7870.8809 8569.833 -7866.4966 8569.833 c +-7862.1152 8569.833 -7858.6138 8571.4824 -7857.5718 8573.25 C +-7857.5718 8573.25 L +-7858.6138 8574.9766 -7862.1152 8576.6738 -7866.4966 8576.6738 c +-7870.875 8576.6738 -7874.3242 8574.9375 -7875.4233 8573.252 C +f U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 83) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884 8585.9355 m +-7670.4009 8585.9355 L +-7670.4009 8578.1348 L +-7884 8578.1348 L +-7884 8585.9355 L +n 0 O +0 0 0 1 k +-7884 8582.0352 m +-7873.9858 8584.5273 -7867.187 8585.875 -7855.2007 8585.9355 c +-7842.2183 8586 -7777.2002 8585.9355 y +-7712.1816 8586 -7699.2002 8585.9355 v +-7687.2129 8585.875 -7680.415 8584.5273 -7670.4009 8582.0352 C +-7680.415 8579.543 -7687.2129 8578.1953 -7699.2002 8578.1348 c +-7712.1816 8578.0693 -7777.2002 8578.1348 y +-7842.2183 8578.0693 -7855.2007 8578.1348 v +-7867.187 8578.1953 -7873.9858 8579.543 -7884 8582.0352 C +f U %AI8_EndBrushPattern +%AI5_End_NonPrinting-- +%AI5_Begin_NonPrinting +Np +4 Bn +%AI5_BeginGradient: (Black, White) +(Black, White) 0 2 Bd +[ +< +FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 +D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 +AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 +87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 +5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 +37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 +0F0E0D0C0B0A09080706050403020100 +> +0 %_Br +[ +0 0 50 100 %_BS +%_0 0 50 100 Bs +1 0 50 0 %_BS +%_1 0 50 0 Bs +BD +%AI5_EndGradient +%AI5_BeginGradient: (Chrome) +(Chrome) 0 6 Bd +[ +0 +< +464646454545444444444343434342424241414141404040403F3F3F3E3E3E3E3D3D3D3C3C3C3C3B +3B3B3B3A3A3A39393939383838383737373636363635353535343434333333333232323131313130 +3030302F2F2F2E2E2E2E2D2D2D2D2C2C2C2B2B2B2B2A2A2A2A292929282828282727272626262625 +2525252424242323232322222222212121202020201F1F1F1F1E1E1E1D1D1D1D1C1C1C1B1B1B1B1A +1A1A1A1919191818181817171717161616151515151414141413131312121212111111101010100F +0F0F0F0E0E0E0D0D0D0D0C0C0C0C0B0B0B0A0A0A0A09090909080808070707070606060505050504 +04040403030302020202010101010000 +> +< +FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 +D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 +AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 +87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 +5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 +37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 +0F0E0D0C0B0A09080706050403020100 +> +< +1F1E1E1E1E1E1E1E1E1E1D1D1D1D1D1D1D1D1C1C1C1C1C1C1C1C1B1B1B1B1B1B1B1B1B1A1A1A1A1A +1A1A1A19191919191919191818181818181818181717171717171717161616161616161615151515 +15151515151414141414141414131313131313131312121212121212121211111111111111111010 +1010101010100F0F0F0F0F0F0F0F0F0E0E0E0E0E0E0E0E0D0D0D0D0D0D0D0D0C0C0C0C0C0C0C0C0C +0B0B0B0B0B0B0B0B0A0A0A0A0A0A0A0A090909090909090909080808080808080807070707070707 +07060606060606060606050505050505050504040404040404040303030303030303030202020202 +02020201010101010101010000000000 +> +1 %_Br +0 +0.275 +1 +< +6B6A696867666564636261605F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544 +434241403F3E3D3C3B3A393837363534333231302F2E2D2C2B2A292827262524232221201F +> +1 %_Br +0 +< +00000101010102020202030303040404040505050606060607070707080808090909090A0A0A0A0B +0B0B0C0C0C0C0D0D0D0D0E0E0E0F0F0F0F1010101111111112121212131313141414141515151516 +161617171717181818181919191A1A1A1A1B1B1B1C1C1C1C1D1D1D1D1E1E1E1F1F1F1F2020202021 +212122222222232323232424242525252526262627272727282828282929292A2A2A2A2B2B2B2B2C +2C2C2D2D2D2D2E2E2E2E2F2F2F303030303131313232323233333333343434353535353636363637 +373738383838393939393A3A3A3B3B3B3B3C3C3C3D3D3D3D3E3E3E3E3F3F3F404040404141414142 +42424343434344444444454545464646 +> +< +000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 +28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F +505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 +78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F +A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 +C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF +F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF +> +< +00000101020203030304040505050606070708080809090A0A0B0B0B0C0C0D0D0D0E0E0F0F101010 +1111121212131314141515151616171718181819191A1A1A1B1B1C1C1D1D1D1E1E1F1F1F20202121 +222222232324242525252626272727282829292A2A2A2B2B2C2C2D2D2D2E2E2F2F2F303031313232 +32333334343435353636373737383839393A3A3A3B3B3C3C3C3D3D3E3E3F3F3F4040414142424243 +4344444445454646474747484849494A4A4A4B4B4C4C4C4D4D4E4E4F4F4F50505151515252535354 +54545555565657575758585959595A5A5B5B5C5C5C5D5D5E5E5E5F5F606061616162626363646464 +6565666666676768686969696A6A6B6B +> +1 %_Br +1 +0 %_Br +< +FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 +D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 +AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 +87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 +5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 +37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 +0F0E0D0C0B0A09080706050403020100 +> +< +4D4C4C4C4B4B4B4A4A4A4A4949494848484747474746464645454544444444434343424242414141 +414040403F3F3F3E3E3E3E3D3D3D3C3C3C3B3B3B3B3A3A3A39393938383838373737363636353535 +35343434333333323232323131313030302F2F2F2F2E2E2E2D2D2D2C2C2C2C2B2B2B2A2A2A292929 +2928282827272726262626252525242424232323232222222121212020201F1F1F1F1E1E1E1D1D1D +1C1C1C1C1B1B1B1A1A1A191919191818181717171616161615151514141413131313121212111111 +101010100F0F0F0E0E0E0D0D0D0D0C0C0C0B0B0B0A0A0A0A09090908080807070707060606050505 +04040404030303020202010101010000 +> +0 +0 +1 %_Br +[ +1 0 50 92 %_BS +%_1 0 50 92 Bs +0 0.275 1 0.12 1 50 59 %_BS +%_0 0.275 1 0.12 1 50 59 Bs +0 0.275 1 0.42 1 50 50 %_BS +%_0 0.275 1 0.42 1 50 50 Bs +1 0 50 49 %_BS +%_1 0 50 49 Bs +1 0 50 41 %_BS +%_1 0 50 41 Bs +1 0.3 0 0 1 50 0 %_BS +%_1 0.3 0 0 1 50 0 Bs +BD +%AI5_EndGradient +%AI5_BeginGradient: (Rainbow) +(Rainbow) 0 6 Bd +[ +< +FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 +D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 +AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 +87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 +5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 +37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 +0F0E0D0C0B0A09080706050403020100 +> +1 +0 +0 +1 %_Br +1 +< +0708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E +2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F50515253545556 +5758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E +7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6 +A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCE +CFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6 +F7F8F9FAFBFCFDFEFF +> +0 +0 +1 %_Br +1 +< +00000000000000000000000000000000000001010101010101010101010101010101010101010101 +01010101010101010101010101010202020202020202020202020202020202020202020202020202 +02020202020202020202030303030303030303030303030303030303030303030303030303030303 +03030303030304040404040404040404040404040404040404040404040404040404040404040404 +04040505050505050505050505050505050505050505050505050505050505050505050505050606 +06060606060606060606060606060606060606060606060606060606060606060607070707070707 +07070707070707070707070707070707 +> +< +FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 +D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 +AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 +87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 +5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 +37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 +0F0E0D0C0B0A09080706050403020100 +> +0 +1 %_Br +< +000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 +28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F +505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 +78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F +A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 +C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF +F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF +> +0 +1 +0 +1 %_Br +0 +< +FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 +D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 +AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 +87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 +5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 +37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 +0F0E0D0C0B0A09080706050403020100 +> +1 +0 +1 %_Br +[ +0 1 0 0 1 50 100 %_BS +%_0 1 0 0 1 50 100 Bs +1 1 0 0 1 50 80 %_BS +%_1 1 0 0 1 50 80 Bs +1 0.0279 0 0 1 50 60 %_BS +%_1 0.0279 0 0 1 50 60 Bs +1 0 1 0 1 50 40 %_BS +%_1 0 1 0 1 50 40 Bs +0 0 1 0 1 50 20 %_BS +%_0 0 1 0 1 50 20 Bs +0 1 1 0 1 50 0 %_BS +%_0 1 1 0 1 50 0 Bs +BD +%AI5_EndGradient +%AI5_BeginGradient: (Yellow & Orange Radial) +(Yellow & Orange Radial) 1 2 Bd +[ +0 +< +0001010203040506060708090A0B0C0C0D0E0F10111213131415161718191A1B1C1D1D1E1F202122 +232425262728292A2B2B2C2D2E2F303132333435363738393A3B3C3D3E3E3F404142434445464748 +494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F60606162636465666768696A6B6C6D6E6F +707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C +> +< +FFFFFFFFFEFEFEFEFEFEFEFDFDFDFDFDFDFCFCFCFCFCFCFBFBFBFBFBFBFAFAFAFAFAFAF9F9F9F9F9 +F9F8F8F8F8F8F8F7F7F7F7F7F7F6F6F6F6F6F6F5F5F5F5F5F5F4F4F4F4F4F3F3F3F3F3F3F2F2F2F2 +F2F2F1F1F1F1F1F0F0F0F0F0F0EFEFEFEFEFEFEEEEEEEEEEEDEDEDEDEDEDECECECECECEBEBEBEBEB +EBEAEAEAEAEAE9E9E9E9E9E9E8E8E8E8E8E8E7E7E7E7E7E6E6E6E6E6E6 +> +0 +1 %_Br +[ +0 0 1 0 1 52 19 %_BS +%_0 0 1 0 1 52 19 Bs +0 0.55 0.9 0 1 50 100 %_BS +%_0 0.55 0.9 0 1 50 100 Bs +BD +%AI5_EndGradient +%AI5_End_NonPrinting-- +%AI5_BeginPalette +0 0 Pb +1 1 1 1 ([Registration]) 0 Xs +([Registration]) Pc +0 0 0 0 k +(C=0 M=0 Y=0 K=0) Pc +0 0 0 1 k +(C=0 M=0 Y=0 K=100) Pc +0 0.1 1 0 k +(C=0 M=10 Y=100 K=0) Pc +0 0.5 0 0 k +(C=0 M=50 Y=0 K=0) Pc +0 0.5 1 0 k +(C=0 M=50 Y=100 K=0) Pc +1 0.55 1 0 k +(C=100 M=55 Y=100 K=0) Pc +1 0.9 0.1 0 k +(C=100 M=90 Y=10 K=0) Pc +0.15 1 1 0 k +(C=15 M=100 Y=100 K=0) Pc +0.45 0.9 0 0 k +(C=45 M=90 Y=0 K=0) Pc +0.5 0.4 0.3 0 k +(C=50 M=40 Y=30 K=0) Pc +0.5 0.85 1 0 k +(C=50 M=85 Y=100 K=0) Pc +0.75 0.05 1 0 k +(C=75 M=5 Y=100 K=0) Pc +0.75 0.9 0 0 k +(C=75 M=90 Y=0 K=0) Pc +0.8 0.05 0 0 k +(C=80 M=5 Y=0 K=0) Pc +Bb +2 (Black, White) -7885 8587 0 0 1 0 0 1 0 0 Bg +0 BB +(Black, White) Pc +Bb +2 (Chrome) -7885 8587 0 0 1 0 0 1 0 0 Bg +0 BB +(Chrome) Pc +Bb +2 (Rainbow) -7885 8587 0 0 1 0 0 1 0 0 Bg +0 BB +(Rainbow) Pc +Bb +0 0 0 0 Bh +2 (Yellow & Orange Radial) -7885 8587 0 0 1 0 0 1 0 0 Bg +0 BB +(Yellow & Orange Radial) Pc +(Brick) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p +(Brick) Pc +(Confetti) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p +(Confetti) Pc +(Leaves - Fall ) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p +(Leaves - Fall ) Pc +(Stripes) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p +(Stripes) Pc +PB +%AI5_EndPalette +%AI5_Begin_NonPrinting +Np +%AI8_BeginPluginObject +(Adobe Scatter Brush Tool) +(Dog Tracks) +(1 /New Pattern 41/ 1 0 0 0 1 / 0 1 1 0 1 1 0 0 0 0 -90 -90 0 1 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Scatter Brush Tool) +(Fall Leaf) +(1 /New Pattern 34/ 1 0.0745 0.9 0.9019 0.18 / 0 0.602793 1 1 0.1 1 1 -) - +(1 1 1 -180 180 1 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Scatter Brush Tool) +(Ladybug) +(1 /New Pattern 10/ 5 0.898039 0 0 / 0 1 1 0 0.803911 1.2 1 -1.55 1.55 ) - +(1 -180 180 1 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Scatter Brush Tool) +(Push Pin) +(1 /New Pattern 36/ 1 0.025 0.1 0.475 0 / 0 1 1 0 0.401676 1 1 -1.06145) - +( 1.06 1 -180 180 1 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Scatter Brush Tool) +(Strawberry) +(1 /New Pattern 37/ 1 0 0 0 1 / 0 0.803911 1 1 0.803911 1 1 -0.5 0.5 1 ) - +(-75 75.419 1 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Scatter Brush Tool) +(Twinkle Star ) +(1 /New Pattern 2/ 0 1 / 1 0.5 1 1 0.25 1 1 -0.5 0.5 1 0 0 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe PatternOnPath Brush Tool) +(Double Lines) +(1 / New Pattern 62/ New Pattern 63/ New Pattern 64/ / / 1 1 0.14 0.09 ) - +(0 / 1 0 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe PatternOnPath Brush Tool) +(Laurel) +(1 / New Pattern 65/ New Pattern 42/ New Pattern 67/ / New Pattern 69/ ) - +(1 0 0.55 1 0.3 / 1 0 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe PatternOnPath Brush Tool) +(Rope ) +(1 / New Pattern 1/ / / New Pattern 3/ New Pattern 6/ 5 0 0 0 / 1 0 1 ) - +(0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe ArtOnPath Brush Tool) +(Arrow) +(1 / New Pattern 45/ / / / / 5 0.898039 0 0 / 2 0 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe ArtOnPath Brush Tool) +(Marker) +(1 / New Pattern 8/ / / / / 0 0 / 1 1 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe ArtOnPath Brush Tool) +(Paintbrush) +(1 / New Pattern 5/ / / / / 1 0.5 0.85 1 0.45 / 0 0 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe ArtOnPath Brush Tool) +(Tapered Stroke) +(1 / New Pattern 83/ / / / / 1 0 0 0 1 / 1 1 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe ArtOnPath Brush Tool) +(Type) +(1 / New Pattern 50/ / / / / 1 0.952941 0.94902 0.196078 0.0745098 / 1) - +( 0 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Calligraphic Brush Tool) +(6 pt Flat ) +(1 4 8 10 10 90 90 2 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Calligraphic Brush Tool) +(10 pt Oval) +(1 1 19 15 15 130 130 2 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Calligraphic Brush Tool) +(12 pt Oval ) +(1 7 17 45 45 0 0 2 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Calligraphic Brush Tool) +(20 pt Oval) +(1 20 20 20 100 40 80 0 2 1 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Calligraphic Brush Tool) +(25 pt Round ) +(1 10 40 100 100 0 0 2 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Calligraphic Brush Tool) +(50 pt Flat) +(1 40 60 0 0 44 44 0 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Brush Manager Order) +(Adobe Brush Manager Order) +( Adobe Calligraphic Brush Tool/ 6 pt Flat / Adobe Calligraphic Brush T) - +(ool/ 10 pt Oval/ Adobe Calligraphic Brush Tool/ 12 pt Oval / Adobe Cal) - +(ligraphic Brush Tool/ 20 pt Oval/ Adobe Calligraphic Brush Tool/ 25 pt) - +( Round / Adobe Calligraphic Brush Tool/ 50 pt Flat/ Adobe Scatter Brus) - +(h Tool/ Dog Tracks/ Adobe Scatter Brush Tool/ Fall Leaf/ Adobe Scatter) - +( Brush Tool/ Ladybug/ Adobe Scatter Brush Tool/ Push Pin/ Adobe Scatte) - +(r Brush Tool/ Strawberry/ Adobe Scatter Brush Tool/ Twinkle Star / Ado) - +(be ArtOnPath Brush Tool/ Marker/ Adobe ArtOnPath Brush Tool/ Tapered S) - +(troke/ Adobe ArtOnPath Brush Tool/ Arrow/ Adobe ArtOnPath Brush Tool/ ) - +(Paintbrush/ Adobe ArtOnPath Brush Tool/ Type/ Adobe PatternOnPath Brus) - +(h Tool/ Double Lines/ Adobe PatternOnPath Brush Tool/ Laurel/ Adobe Pa) - +(tternOnPath Brush Tool/ Rope /) . +%AI8_EndPluginObject +%AI5_End_NonPrinting-- +%AI5_Begin_NonPrinting +Np +%AI8_PluginGroupInfo +(Adobe Path Blends) (Adobe Blends Plugin) (Live Blends.aip) +%AI8_PluginGroupInfo +(Adobe PatternOnPath Brush Tool) (Adobe Pattern Brush Plugin) (ArtOnPath.aip) +%AI8_PluginGroupInfo +(Adobe ArtOnPath Brush Tool) (Adobe Art Brush Plugin) (ArtOnPath.aip) +%AI8_PluginGroupInfo +(Adobe Calligraphic Brush Tool) (Adobe Calligraphic Brush Plugin) (Calligraphic Brush Tool.aip) +%AI8_PluginGroupInfo +(Adobe Scatter Brush Tool) (Adobe Scatter Brush Plugin) (Scatter Brush Tool.aip) +%AI5_End_NonPrinting-- +%%EndSetup +%AI5_BeginLayer +1 1 1 1 0 0 1 0 79 128 255 0 50 Lb +(Layer 1) Ln +0 A +u 0 O +0 g +0 R +0 G +800 Ar +1 J 0 j 0.1 w 10 M [1 1 ]0 d %AI3_Note: 0 D +0 XR +%AI5_File: +%AI5_BeginRaster +() 1 XG +[ 0.6 0 0 0.6 153 452.6997 ] 510 189 0 Xh +[ 0.6 0 0 0.6 153 452.6997 ] 0 0 510 189 510 189 8 1 0 0 0 0 +%%BeginBinary +XI +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF000000FF0000000000000000000000000000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF00000000FF00FF00FF00000000FF00FF00FF00000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000000000000000000000FF00000000000000FF00FF0000 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000000000FF00FF00FF00FFFFFFFF000000FF00FFFFFFFF +%00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000FF00FF00FF000000FF00FFFFFFFFFFFF00000000FFFF +%FFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF00000000FF00FF00FF0000FF0000FFFFFFFFFFFFFF000000 +%00FFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000000000FF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%000000FFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000FF00FF000000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF0000FFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF000000000000FF00FF00FF00FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF0000FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF00FFFFFFFFFF0000000000FF00FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF0000FFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF00000000FF00FFFFFFFFFF000000000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000FFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF00FF00FF000000FF00FFFFFFFFFF00FF00000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFF00FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF0000FF00FF00FF00FFFFFFFFFFFFFFFFFFFFFF00000000 +%FFFFFFFFFFFFFFFFFFFFFFFF00FF00FF000000FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF0000000000FF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFF +%0000FFFFFFFFFFFFFFFFFFFFFF0000FF00FF000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FF0000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000FF000000FF00FF00FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF000000FFFFFFFFFFFF00FF0000FF00FF000000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF0000000000FF0000FF0000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF000000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF00FF00FFFFFF00000000FF0000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000FFFFFFFFFFFF00FF00FF00FF00000000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF00000000000000FF00FF0000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF0000000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF000000FF0000FFFFFFFFFF00FF0000000000FFFFFFFF +%FF00FFFFFFFFFFFF00000000FF00FF00000000FFFFFF000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFF00FF0000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF0000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000FF00FFFF00FF00FFFFFFFFFFFFFF00FF00000000 +%00FFFF0000000000FFFFFF0000FF00FFFF00FF00FFFFFF000000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFF000000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%00000000FF000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000FF00FF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFF +%000000FFFFFFFFFFFF0000FF00000000FFFFFF0000FFFFFF00000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000FF00 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF00000000FF0000000000FFFF0000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000 +%0000FF00FF00FF0000FF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF000000FF0000FF00FF00FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF000000FFFFFFFFFF00FF00FF0000FFFFFF0000FFFFFF0000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 +%0000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF00000000FF00FFFFFFFFFF0000000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF00 +%00FF0000FF0000000000000000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF00FF00FFFF00FF00FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000000000FFFF0000000000FFFF00FFFFFFFF000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF00FFFF00FFFF00FF +%00FF00FF00FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000000000FF000000FF00FF00FF0000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF0000FF +%0000FFFFFF00FF00FFFF0000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF0000FF0000FF00FFFFFFFFFFFFFFFF00FF000000 +%000000FF00FFFFFFFFFF00FF0000FFFFFFFF00000000FF0000FFFFFF0000 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FF0000FF0000FF00 +%FF00FF00FF00FFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF000000FF00FF000000000000000000000000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FF00FFFF00 +%00FF0000FF0000FF0000FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF0000FF0000FF00FFFFFF00000000FF00FFFFFF +%FFFF0000000000FFFFFF00FF00FFFFFFFFFFFFFFFF0000FFFF00FFFFFFFF +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF00FF00FFFF00FFFF00FF +%00FF00FFFFFF00FF00FFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000000000FFFFFF00FF00FFFFFF00FF00FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF00FF00FF00FF00 +%FF0000FF00FF0000FFFF0000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF000000FF0000FF000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000FF00FFFFFFFFFFFFFFFFFFFFFF0000FF00FFFFFF +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF0000FFFFFF00FFFF00FFFF +%FF00FF00FF00FF00FF00FF00FF00FF000000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF00FFFFFFFF00000000000000000000FF0000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF00FF00FFFF00FF00 +%00FF00FF000000FF0000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF000000FFFF0000FFFFFFFFFF00FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF00FF0000FFFFFFFFFFFFFFFFFFFF0000FF00FFFF +%FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF0000FFFF00FF00FF00FF +%00FFFF00FFFFFFFF00FF00FFFF00FF00FF00000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF00000000000000FFFFFF00FF00FF0000000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FF0000FF000000FF00FF +%FF00FFFF00FFFF00FF000000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF0000FF000000FFFFFFFF0000FF000000FF00 +%000000FF00FF00FFFFFFFF00FF00000000FFFFFFFFFFFFFFFFFF000000FF +%FFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFF00FFFF00FF0000FF +%FFFF00FF00FF00FFFF00FF00FF00FF00FF00FFFF000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFF000000FF00FF00FFFF00FF00FFFF0000FF00FF00FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF0000FF00FFFFFFFF0000 +%00FF00FF000000FF0000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FF000000FFFF00FFFFFFFFFF +%FFFFFF00FF00FF00000000FFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFF0000 +%FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFF00FF00FFFF00FF00FF +%00FFFF00FFFFFFFF00FF00FF00FF00FF00FF0000000000000000FFFFFFFF +%FFFFFFFFFFFF00FF00FF00FF00FF0000FF00FF00FF00FF0000000000FFFF +%FFFFFFFFFFFFFFFFFFFFFF000000000000FF00FF00FF00FF000000FF00FF +%00FFFFFF00FF00FF00FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFF00000000FF00FF +%FF00FFFFFFFF00FF0000FF00FFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFF00 +%00FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FF0000FF00FFFFFF00FF +%FF00FFFF00FF00FFFF00FFFFFF00FFFF0000FFFFFFFFFFFF00FF0000FFFF +%FFFFFFFFFFFF0000FF00FF00FF0000000000000000FF0000FF000000FFFF +%FFFFFFFFFFFFFFFF000000FFFFFFFFFF00000000FF00FF00FFFFFFFF0000 +%FFFFFF00FF00FFFFFF00FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFF00FF00FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFF0000FFFFFFFFFFFFFF +%00FFFFFFFF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFF00FF00FF00FF00 +%FFFFFF00FFFFFFFFFF00FFFFFFFF000000FFFFFFFF00FF00FFFFFF000000 +%FFFFFFFFFFFF0000000000FF00FFFFFFFFFFFFFFFF00FF0000FF000000FF +%FFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFF0000FFFFFF00FFFFFFFFFF +%FFFFFF0000FFFFFF00FFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFF00FF00FFFFFFFFFFFF +%FFFFFFFFFFFFFF000000FFFFFFFFFFFF000000FFFFFFFF0000FFFFFFFFFF +%FF00FFFFFF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF0000FF00FFFFFFFF00 +%FFFFFFFF00FFFF00FF00FFFFFFFF00FF00FFFFFFFFFF00FF000000FFFF00 +%00FFFFFFFF0000FF00FFFFFFFFFFFF00FF000000FFFFFFFF0000000000FF +%FFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFF00FFFF00FFFFFFFFFFFF0000FF +%FFFFFF00FFFFFFFF00FFFF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF00FFFF00FFFFFFFFFFFFFFFF000000FFFFFF0000FFFFFF +%FFFF00FFFFFF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFFFF00FF00FFFF00 +%FFFFFFFF00FFFFFFFFFF00FFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFF00FF +%0000FFFFFF00000000FF0000000000000000FF0000000000FFFFFFFF00FF +%FFFFFFFF0000FFFFFF00FFFFFFFFFF00FF00FFFF00FFFFFFFFFFFFFF00FF +%FFFFFF00FFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFF0000FFFFFFFF +%FF00FF00FF00FFFF0000FF00FFFFFFFFFFFFFFFFFFFF000000FFFF0000FF +%FFFFFF00FFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF00FF0000FFFFFF00 +%FFFFFFFF00FFFF00FFFFFFFFFF00FF0000FFFFFFFFFF00FF00FFFFFFFFFF +%FF0000FF00000000000000FF00FF00FFFFFF00FF0000FF00000000000000 +%FFFFFF0000FFFFFFFF00FFFFFFFF00FFFF00FFFFFF00FFFFFFFFFF00FFFF +%FFFF0000FFFFFFFFFFFF0000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFF00FF00FF000000 +%000000FF00FF0000FF00000000000000FFFFFFFFFF00FFFFFFFF00FFFF00 +%00FFFF0000FFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFFFF00FFFFFF00 +%FFFFFFFFFF00FFFF00FF00FFFF00FFFFFFFFFFFFFF00FFFF00FFFFFFFFFF +%FFFF00FF000000FFFF00FF00FF00FF0000000000FF0000FF00FF00FF0000 +%FFFF0000FFFFFFFFFFFF00FFFFFFFF00FFFF00FFFF00FFFFFFFFFF00FFFF +%FFFFFF00FFFFFFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +%00000000FFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFF000000FFFFFFFFFF +%FFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFF00000000FF00000000FF0000FF +%FF00FFFF00FFFFFF00FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFF00FFFFFF +%00FFFFFFFF00FFFF00FF00FF00FFFF00FFFFFFFFFFFF00FF00FFFFFFFFFF +%FF00FF000000000000FF00FF00FF00FFFFFFFFFF00FF00000000FF000000 +%00FF00FFFFFFFFFFFFFF0000FFFF00FF00FF00FFFF00FFFFFFFFFF00FFFF +%FFFF00FFFFFFFFFFFFFF0000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +%0000000000FFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF0000FFFFFF000000FFFF +%FFFF00FF00FF0000FF000000FFFFFFFFFFFFFFFFFFFFFF00FF0000FFFFFF +%000000FFFF00FFFF0000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFFFFFF00FFFF +%00FFFFFFFF00FFFFFFFFFFFF00FFFF00FF00FF00FF00FFFF00FFFFFFFFFF +%00FFFFFF0000FF00FF00FF00FF00FF0000000000FF00FF00FF000000FF00 +%0000FFFFFFFFFFFF00FF00FF00FFFFFF0000FF00FF00FFFFFFFF0000FFFF +%FFFF00FFFFFFFFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%000000000000FFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFF00FF00FF00FF +%000000FF00FFFFFF00FF00FFFFFFFFFFFFFFFFFFFF00FFFF00FF0000FFFF +%FFFF0000FFFF00FFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFF00FF +%FFFFFFFFFFFF00FFFF00FFFF00FFFF00FF00FF00FF00FFFF00FFFFFFFFFF +%FF00FF00FF0000FF00FF00FF000000FF0000FF0000FF00FF0000FFFF00FF +%00FFFFFFFFFFFF00FF00FF0000FFFFFF00FF00FFFFFF00FFFFFFFF00FFFF +%FFFF00FFFFFFFFFFFF0000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000000000FFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFF00FF00FFFF +%FFFFFFFFFFFFFF00FFFF0000FFFFFFFFFFFFFFFFFFFFFF00FFFFFFFF0000 +%FFFFFF0000FF00FFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFF00FF +%FF00FFFFFFFF00FFFF00FFFF00FF00FF00FF00FF00FF00FF00FF00FFFFFF +%00FFFF000000FF000000000000FF00FFFFFFFFFFFF000000FF000000FF00 +%00FFFFFF00FF00FF0000FFFFFFFFFFFF00FF00FFFF00FFFFFFFF00FFFFFF +%FF0000FFFFFFFFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF00000000000000FFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFF00FF00FF +%FFFFFFFFFFFFFFFFFF00FFFFFF00FF00FF00FFFFFFFFFFFF00FFFFFFFFFF +%0000FFFFFF000000FFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFFFFFFFFFF00 +%FF00FFFFFFFF00FFFFFF00FF0000FF00FF00FF00FF00FFFF00FFFFFF00FF +%00FFFF00FF00000000FFFFFF000000000000FF00FFFFFFFF00FF000000FF +%00FFFFFFFF00FF00FF00FF00FFFFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF +%FF00FFFFFFFFFFFF0000FFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF00000000000000FFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFF00FF00 +%FFFFFFFFFFFFFF0000FFFF00FFFFFFFFFFFF00FF00000000FF00FFFFFFFF +%FFFF0000FF000000FFFF0000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF00FFFFFFFFFF +%00FFFFFFFFFFFFFFFFFF00FF0000FFFF00FFFF00FF00FF00FF00FF00FFFF +%00FFFFFF000000FFFF000000000000FF0000FF00000000000000FFFF0000 +%00FFFF0000FF00FF00FFFF00FFFFFFFF00FFFFFFFFFF00FFFFFF00FFFFFF +%FF00FFFFFFFFFFFF00FFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFF00FF00FF +%00FFFFFFFFFFFFFFFF000000FF00FF000000FF00FF00FF00000000000000 +%FFFF00FF00000000FF00FFFF0000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFFFFFFFF +%FF0000FFFFFFFF00FFFFFFFF00FF00FFFF00FFFFFF00FFFF00FF00FF00FF +%00FFFF0000FF0000000000FFFF00FF00FF0000FF00FF0000FF000000FF00 +%00FF00FFFF00FFFFFFFFFF00FFFFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF +%FF00FFFFFFFFFFFF00FFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000000000000000000000FF00FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFF00FF +%0000FFFFFFFFFFFF00FF00FF00FFFFFFFFFFFFFFFFFF0000FF00FFFF00FF +%000000000000000000FF0000FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF00FFFFFFFF +%FFFF00FFFFFFFF00FFFFFF000000FFFF00FFFFFFFFFFFFFFFF00FFFF00FF +%00FF0000000000000000000000FF00FF00FF00FFFF00FF000000FF0000FF +%00FFFF0000FFFFFF00FFFF00FFFFFFFFFFFF00FFFFFF00FFFF0000FFFFFF +%00FFFFFFFFFFFF0000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF0000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFF00 +%FFFF00FFFFFFFFFFFF00FF00FF00FFFFFFFFFFFF0000FFFFFF00FFFF0000 +%0000000000FF00FF0000FFFF00000000000000FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFFFFFF +%FFFFFF00FFFFFFFFFFFFFFFF00FFFFFF00FFFFFFFF00FFFFFFFF00FFFF00 +%FF00FF00000000000000FFFFFF0000FFFF00FFFFFFFF0000FF0000FF0000 +%0000FF00FFFFFFFF00FFFF0000FFFFFF00FF00FFFFFF00FFFF00FF00FFFF +%00FFFFFFFFFFFF00FFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF00000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFF +%FF00FF0000000000000000000000FFFFFFFF0000FFFFFFFF0000FFFF0000 +%0000FF00FF00FF0000FF00000000000000000000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFFFF +%FFFFFF00FFFFFFFF00FFFFFFFF00FFFF00FFFFFFFFFF00FFFF00FFFFFFFF +%0000FF0000000000FF000000FF00FF00FF00FF00FFFFFFFF00000000FF00 +%00FF00FFFFFFFFFF0000FF00FFFFFFFFFFFF00FFFF0000FFFF00FFFFFFFF +%FFFFFFFFFFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF00000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000 +%000000FF00FF00000000FF00000000FFFF0000FF0000FF000000FF0000FF +%00FF00FF00FFFF0000000000000000FF00000000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFFFF +%FFFFFF00FF00FFFFFF00FFFFFF00FFFF00FFFFFFFF00FFFFFF00FFFFFF00 +%FFFFFF000000000000FF00FFFF0000FF0000FFFF00FF0000FF0000000000 +%FF00FFFFFFFFFFFFFFFFFFFF00FFFFFFFF00FFFFFF00FFFFFFFF00FFFF00 +%FFFFFFFFFFFF00FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF00FF0000 +%FF000000000000FF00000000000000000000FF00FF00FF00FF0000000000 +%FF00FF00FFFF00000000FF0000000000FFFF0000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF00000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFFFF +%FF00FF0000FFFF00FFFF0000FF00FFFFFF00FFFFFFFF00FFFF00FFFFFFFF +%00FFFF00000000000000FF00FF000000FFFF00FFFFFF00FF00FF0000FF00 +%0000FFFFFFFFFFFF0000FF00FFFFFFFFFFFF00FFFF0000FF00FF00FFFF00 +%FFFFFFFFFFFF00FFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FF00FF0000FF +%0000FF00FF00FF00000000000000000000FF000000FF00000000FF00FFFF +%00FF00FF0000000000000000FF0000FF0000000000FF00FFFF000000FFFF +%FFFFFFFFFF00000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFF +%00FF00FF0000FF00FF00FFFFFF00FFFFFFFFFFFFFFFF00FFFF00FFFFFF00 +%00FFFF0000000000FF00FFFF0000FFFFFFFF00FF00FF00FF00FF00000000 +%FF00FFFFFFFFFFFFFFFFFFFF00FFFFFFFF00FFFFFF00FFFF00FF00FFFF00 +%FFFFFFFFFF00FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF00FF0000FF0000FF00 +%00FF0000000000000000000000000000000000FFFF0000000000FFFF00FF +%FF00FF00FF0000000000FF00000000000000000000000000000000000000 +%FFFFFFFF00000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF +%FF00FFFFFFFF00FFFF000000FF0000FFFF00FFFFFFFF00FFFF00FFFFFFFF +%00FFFF000000FF00FFFF00FF0000FFFF00FFFF00FF00FFFFFF00FF00FF00 +%0000FFFFFFFFFFFFFF00FF00FFFFFFFF00FF00FFFF00FFFF00FF00FF00FF +%FFFFFFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF00000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FF0000FF00FF0000FF00 +%FF0000000000FF000000000000FF00FF00FF00FF000000FF00FF00FF0000 +%0000FF00000000000000000000FF00000000000000000000000000000000 +%00FFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF +%00FF00FFFF00FFFF00FF00FFFFFF00FFFF00FFFFFFFF00FFFF00FFFFFF00 +%FFFFFF00000000FF00FF00FF0000FF00FF00FF0000FFFF00FFFF000000FF +%0000FFFFFF00FF00FF00FF00FF0000FFFF00FFFFFFFFFFFFFFFF00FF00FF +%FFFFFFFF00FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF00000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF00000000FF0000FF00FF00FF00000000FF0000 +%00000000FFFF00FFFF00FF00FF0000FF00FFFF0000FF0000FF00000000FF +%00FF000000000000000000FFFF0000000000000000000000000000000000 +%00FFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00 +%FF00FFFFFFFF00FFFFFF000000FF00FFFFFF00FF00FF00FF0000FF00FF00 +%00FFFF000000FF00FF00FF0000FF00FF00FFFF000000FFFF00FF00000000 +%0000FF00FF00FFFF00FF00FF00FF00FF0000FFFF00FFFF00FFFFFF00FFFF +%FFFFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF00000000000000000000000000000000000000000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF000000FF00000000FF0000FF000000FF00FF0000FF +%00FF00FF0000FFFF00FF00FF0000FFFF00000000FF0000FF0000FF000000 +%FF00000000000000FFFFFF00000000FF00FF0000FF000000000000000000 +%00FF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%FFFF00FFFFFF00FFFFFFFFFFFFFF00FFFFFF00FF00FF00FF0000FFFFFF00 +%FFFFFF0000000000FF00FF000000FF00FF000000FF00FF00FF0000000000 +%000000FF00FF00FFFF00000000FF00FF0000FFFF00FFFF00FF00FF00FFFF +%FFFFFF00FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF00000000000000FF0000000000000000FF0000000000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF000000000000FF00FF000000FF0000FF0000FF00FF0000 +%0000FF00FFFFFF00FF00FF0000FF00000000FF0000FF000000000000FFFF +%000000FF000000FFFF00FFFFFFFFFF000000000000000000000000000000 +%000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%00FFFFFFFFFFFF00FFFFFF00FFFF00FFFFFF00FF00FF00FF00FF00FF00FF +%000000000000FF0000FFFF0000FF00FF00FFFF00000000FF00FF00000000 +%FF00FF0000FFFF000000FF00FF00FF00FF00FF00FF000000FF00FF00FFFF +%FFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF00000000FF0000FF0000FF00FF000000000000FF00000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF0000000000FF00FF000000FF00FFFF00FF0000FF0000FF0000 +%FF00FF000000FFFFFFFF0000FF0000000000000000000000FF00FF00FF00 +%0000FF0000FFFF0000FFFFFFFFFFFFFF00FF00FF00000000000000000000 +%0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +%0000FFFFFFFFFF00FFFFFFFF00FFFF00FF000000FFFFFF00FF00FFFFFF00 +%FFFFFF00FF0000FFFF000000FF00FF00FF00000000FF0000FF0000000000 +%000000FF0000FF00FF00FF0000FFFF0000FF00FF00FFFF00FFFF0000FFFF +%FFFF00FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%00000000000000FF00FFFF00FF00FF00FFFF0000000000FF000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF00000000FF000000FF00FF0000FF00FF000000FF00FF00FF00FF +%00FFFFFFFFFF00FF000000FF0000FF0000000000FFFF00FF00FF000000FF +%00FF0000FFFFFF00FF00FFFFFFFFFF0000000000FF000000000000000000 +%0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF00FF00FF0000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%00FF00FFFFFFFF00FFFFFFFF00FFFF0000FF00FF00FFFF0000FF00FFFF00 +%FF00FF000000FF0000000000FF00000000FF00FF0000FF0000FF00000000 +%0000FF00FFFFFFFFFFFFFF00FFFFFF00FFFFFF00FF000000000000FFFF00 +%FF00FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%0000000000000000000000FF00FF00FF0000FF000000000000FF0000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF000000FFFFFFFF00FF00FF0000FFFF00FFFF0000FF00FF00FFFF0000 +%FFFFFF00FF00FF0000FF00000000FF0000FF0000FF00FF00FF0000000000 +%000000FF00FFFF0000FFFFFFFFFFFF00FF0000FF00FF0000000000000000 +%00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FF00FF00FF00000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%0000FF00FFFFFFFF00FFFFFF0000FF00FF00FF00FFFFFF00FFFF00FFFFFF +%00FFFF00FFFF000000FF000000FF00FFFFFFFFFF000000FF0000FF000000 +%000000FF00FF00FFFFFFFF00FFFFFF00FFFF0000FFFF00FFFF00FF00FFFF +%00FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%FF00000000FF00FF0000FF00FF00FF0000FF0000000000FF0000000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000FF0000FF00FF00000000FFFF0000FF0000FF00FF0000FF0000FF +%FFFF00FFFFFF000000000000FFFFFF00FFFF0000FFFF00FF00FF00000000 +%FFFF000000FF00FFFF00FFFFFFFFFFFF00FF00FF00000000000000000000 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFF00FF00FF00FF00FF000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000FFFFFFFF00FFFFFFFF00FFFF0000FF0000FFFF00FFFF00FFFFFF +%00FFFF00000000FFFF00FFFFFF00FFFFFFFFFFFFFFFF0000FF0000000000 +%00FFFFFFFFFFFFFFFFFFFF00FFFFFF00FFFF00FFFFFFFFFF000000FF0000 +%0000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000 +%FF0000000000000000FF00FFFF00FF00FF00FF0000000000FF0000000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF0000FF00FFFFFF00FFFF00FF000000FF00FF00FF0000FF00FFFFFFFF00 +%00FFFFFF0000FFFFFF00FF0000FFFF00FFFF000000FFFF00FF0000000000 +%FFFFFF000000FFFF00FF0000FF00FF00FF00FF00FF000000000000000000 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF0000FF00FFFF0000FFFFFFFFFF000000FF0000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF00000000FFFFFF00FFFFFFFF0000FF00FF00FF00FFFF00FFFFFF00FFFF +%00FFFF00000000FFFF00FFFF00000000FF00000000000000FFFFFF000000 +%FFFFFFFF00FF00FFFFFFFF00FFFFFFFFFFFF00FFFFFFFF00FF00FF00FF00 +%FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FF +%00FF000000FF00FF0000FF00FFFFFFFFFF0000000000FF0000FF00000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF0000000000FFFF00FF00000000FFFF0000FF0000FF00FF0000FF000000 +%FF000000FFFFFF00FF00FF00FFFFFF0000FFFF00000000FF00FF0000FF00 +%00FF00FF00000000FFFF00FF00FF00FFFFFF00FF00000000000000000000 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000FF0000FFFF00FFFF00FF0000FF00FFFF00FF00 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF0000FF00FFFFFFFFFFFFFFFF00FF0000FFFF00FFFFFF00FFFF00FFFF +%00FFFF0000FFFF00FF0000000000FF00FF00FFFF00000000000000000000 +%FFFFFFFF00FFFFFFFFFFFFFFFFFF00FFFFFF00FFFFFFFF0000FFFF0000FF +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00000000 +%000000000000FFFFFFFFFFFF00FFFFFFFF00FF00000000FF00000000FF00 +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000FF00FFFF00FF0000FF00FF00FF00FFFF00FF00FF0000FF0000FF +%00FFFF00FFFF00FF00FF00FF00FFFFFFFFFF000000FF000000FFFF000000 +%0000FF00FF00FFFF00FFFFFF0000FFFF0000FF00FF000000000000000000 +%00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000FF00FFFF00FFFF00FF00FF00FF00FFFF00FF0000 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF0000FF00FFFF00FFFFFFFFFFFF00FFFFFFFF00FFFFFFFFFF00FFFF +%00FF0000FF0000FF000000000000FFFFFFFFFFFFFF00000000FFFF00FF00 +%00FFFFFF00FF00FFFFFF00FFFFFF00FFFF00FFFFFFFFFF0000FF0000FF00 +%FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000 +%000000FF0000FFFFFFFFFF00FF00FFFF000000FF00000000000000FF0000 +%FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000000000FF00FF0000FF00FFFF0000FF0000FF00FF00FFFF00FF00 +%FFFF00FF00FFFF00FF00FF0000FFFF0000FF0000FF00FFFFFFFF00FFFF00 +%FFFFFF0000FFFFFFFF00FFFFFFFFFFFFFFFF00FF00000000000000000000 +%000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFFFFFF00FF00 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF000000FF00FF00FFFFFFFFFF00FF00FFFFFF00FFFF00FFFF00FF00 +%FF0000FF00FF000000FF000000FF000000FF0000000000FF00FF000000FF +%0000FFFFFF00FFFFFFFF00FFFFFF00FFFF00FFFFFFFF0000FFFFFF0000FF +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FF00FF000000 +%00FF0000FF00FFFFFFFFFFFF0000FFFF00FFFF000000000000000000FFFF +%00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF00000000000000FF00FF00FF0000FF0000FFFF0000FF00FF00000000FF +%0000FF0000FFFFFF00FF00FF0000FF00FFFF000000FF00FFFFFFFF0000FF +%00FF0000FF00FF0000FF00FFFFFFFFFF0000FF0000000000000000000000 +%000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF000000FFFF0000FFFFFFFFFFFF000000FF00FFFF0000FF00FF00 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF00FF00FF00FF00FFFFFFFFFF0000FFFFFFFF00FFFFFFFF00FFFF +%000000000000FF00000000FF0000000000000000000000000000FFFF0000 +%FF00FFFF00FFFFFFFFFF00FFFF00FFFF00FFFFFFFFFF0000FF0000FFFF00 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF0000FF00FF0000 +%00000000FF00FFFFFFFFFF00FFFFFFFF0000000000FF00000000FF0000FF +%FF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF00000000000000FF00FF00000000FF00FFFF00FF00FF0000FF000000 +%FF00000000000000FF00FF0000FF00000000FF00FF00FF00FF0000000000 +%FF00FF0000FFFFFF0000FF000000FFFFFF0000FF00000000000000000000 +%0000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF00FFFFFF0000FFFFFFFFFFFFFF0000FFFF00FFFF00FFFF00FF0000 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF000000FF0000FFFFFFFFFFFF0000FFFFFF0000FF0000FF00FF +%000000FFFF000000FF00FF0000FF00FF000000FFFFFF0000FF0000FF00FF +%00FF00FFFF00FFFFFFFF00FFFF00FFFF00FFFFFFFFFF00FFFF00FFFF0000 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF0000FF00FF00FF0000 +%FF00FF0000FFFFFFFFFFFF0000FFFF00FFFFFF000000FF000000FFFFFF00 +%FFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF000000000000000000FF00FF00FF00FF0000FF00FF00000000FF +%00FFFFFFFF000000000000FFFF00FF000000000000FF00FF00FF00000000 +%00000000FFFFFF00FF00FF00FF00000000FF00FF00000000000000000000 +%00FFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF00FF000000FFFFFFFFFFFFFFFF00FFFF00FFFFFF00FF00FFFF00FF00 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF00FF00FF00FFFFFFFFFFFFFF00FFFFFFFF00FFFFFF00FFFF +%000000FFFF0000FF0000FF00FF00FF00FF00FFFF00FF00FF00FF0000FF00 +%00FF00FF0000FFFF00FFFF00FF00FF00FFFFFFFFFF0000FF00FFFFFF0000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF0000FFFFFF00FF00FF00 +%0000000000FF00FF00FF00FFFFFF00FF000000FF00FF000000FFFF00FFFF +%00FFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF00000000000000FF00FF0000FF00FFFF00FF00FF00FF00FF00FF +%00FF00FF00FFFFFF000000000000FFFF000000FF00000000000000000000 +%00000000000000FFFF00FF00FF00FF00FF00FF0000FF0000000000000000 +%0000FF0000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%0000FF00FFFFFFFFFFFFFFFFFFFF00FFFFFFFFFF00FFFF00FF00FF00FF00 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF00FF00FF00FFFFFFFFFFFF00FFFFFFFF00FFFF00FF00FF +%0000FF0000FFFF000000000000FF00FF0000FF00FF0000000000000000FF +%FFFFFF00FF00FFFFFFFF00FF00FFFF00FFFFFFFFFF00FF0000FFFF0000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF0000FFFFFFFFFF00000000 +%0000000000FFFF00FF00FF00FF00FF0000FFFF0000000000000000000000 +%FF00FFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF000000000000FF00FF00FF00FF0000FF00FF0000FF0000 +%00FF0000FFFF0000FFFFFF000000FFFF00000000FFFF0000000000000000 +%00000000FF00000000FF000000FF00000000000000000000000000000000 +%00FFFFFFFF000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%FF0000FFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFF00000000FF00FF0000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF00FF00FF00FFFFFFFFFF0000FFFFFF0000FF00FF00FF +%0000FF0000000000FF000000FF00FFFF00FF00FF00FF0000FF00FF000000 +%00FFFF000000FF00FF0000FF00FF00FFFFFFFFFF00FF00FFFFFF000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF0000FFFFFFFF00000000FF0000 +%000000000000FF000000FFFF00FFFF00FF00FF0000FF00000000FF0000FF +%00FF00FFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF00000000FF0000FF0000FFFF0000FF00FF00FF0000 +%000000FF0000FFFF0000FF0000FF00000000FF0000000000000000000000 +%0000000000000000000000000000000000000000FF000000000000000000 +%FFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%00FFFFFFFFFFFFFFFFFFFF00FFFFFFFF0000000000FFFFFFFFFFFF00FF00 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF00FF00FF00FFFFFFFFFF00FFFFFFFF00FFFF00FF00 +%FF00FF00FFFF00000000000000FFFFFF0000FF00FF00FF0000FF000000FF +%0000FFFF00FF00FF00FF00FF00FF00FFFFFFFF0000FF00FFFF000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF00FFFFFFFF00000000000000FFFF +%00000000000000FFFFFF00FF00FFFFFFFFFF0000000000FF000000000000 +%00FFFF00FFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF00FF00000000FF00000000FF00FF000000FF00 +%0000FF0000FFFF00FFFF00FF0000FFFFFF000000FF0000FF000000000000 +%00FF00FF000000FF00FF00FF0000000000000000000000FFFF000000FFFF +%FFFFFFFFFFFFFF0000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF +%FF00FF00FFFFFFFFFFFF00FFFFFF0000FFFFFFFFFFFF00FF00FF00FF0000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF00FF00FF00FFFFFFFF0000FFFF00FF00FFFFFF00 +%00FF00FF000000FF00000000FF00FFFFFFFF00FF00FF00000000FF000000 +%000000000000FFFFFF0000FFFF00FFFFFFFFFF00FF00FFFFFF0000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFF00FFFF00000000FF00FF +%FF000000000000FFFFFFFF000000FF00FFFF00000000000000FF00000000 +%00FFFFFF00FF00FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF0000FF0000FF0000FF0000FF00 +%00000000000000FF000000FF0000FFFF00FF000000FF000000FF00000000 +%00000000FF0000000000FF00000000FF00000000000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000000000000000000000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FFFF +%00FF00FF00FFFFFFFF00FF0000FFFFFFFFFFFFFFFF00FFFFFF00FF00FF00 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF00FF00FF00FFFFFFFF00FFFFFF0000FFFFFF00 +%0000FF00FF00FF00000000000000FF00FF0000000000FF00FF0000FFFF00 +%FFFFFFFF00FFFFFF0000FF00FF00FFFFFFFF00FF00FFFFFF0000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFF0000FFFF00FFFF000000FF00 +%FF00FF0000000000FF00000000FF00FF00FF00FF0000FF0000000000FF00 +%00FFFFFF00FFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000FF00FF000000 +%000000000000FF00FF00FF00FF000000FF0000FF0000FF000000FF000000 +%000000000000FF00000000000000FF0000FF00FF0000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FFFF00 +%FF00FF00FFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF00FF0000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF00FF00FF00FFFFFFFF00FFFFFF0000FFFFFF +%0000000000FF000000000000000000FF00000000000000000000FFFF0000 +%00FFFFFF00FFFFFF00FF00FF00FFFFFFFFFF0000FFFFFF000000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF000000FFFFFFFF0000FFFF0000FF00FF000000FF +%00FF00000000FF0000FF0000FF0000000000000000FF0000000000000000 +%FF00FFFFFF00FFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FF +%00000000000000000000000000FF0000FF00FF000000FF00FF0000FFFF00 +%00000000000000000000000000000000FF00000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFF +%FFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFF00FF00FF0000FF00FF00 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF0000FF00FF00FFFFFF00FFFFFFFF00FFFFFF +%FFFF00FF00FF000000000000000000FF00FF00000000FFFF00000000FF00 +%0000000000FFFF00FFFF00FF00FFFFFFFF0000FFFFFF0000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF000000FFFFFFFF00FFFFFF0000FFFF00000000FF00 +%FF00FFFF000000FF000000FF00FFFF00FF00000000000000000000FF0000 +%FF00FFFFFF00FFFFFF00FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF00FF0000 +%0000000000000000000000FF00FF000000FF0000FFFF0000FF00FF0000FF +%0000000000FF000000FF0000000000FF0000FF00FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FFFFFFFFFFFF +%FFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFF000000FF00FF00FFFFFFFF0000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FF00FFFFFF00FFFFFF0000FFFF +%00FF0000FF000000000000000000FF000000000000FF00FF00FF00FFFF00 +%FF0000FF00FFFF00FFFFFF00FFFFFFFF0000FFFFFFFF0000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF000000FFFFFFFF00FFFFFF0000FFFF00FFFF000000FF +%00FF0000FF000000FF00FFFFFF00FFFF0000000000FF00000000FF0000FF +%FF0000FFFFFF00FFFFFF00FF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF000000FF00 +%000000000000000000000000000000000000FF00FFFF000000FF0000FF00 +%FFFF0000000000FF00FFFFFF0000000000000000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF00FFFFFFFFFFFFFF +%FF00FF00FF00FFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFF00FF00FF00 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFF00FFFFFFFF00FFFF +%000000FF000000000000000000FF00FF0000FFFF00000000FF0000FF00FF +%00000000FFFF00FFFF00FF00FFFFFF0000FFFFFF000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF000000FFFFFF0000FFFFFF00FF00FFFF00FFFF00000000 +%FF00FF0000FF00000000FFFF0000FF00FF000000000000000000FF000000 +%FFFF00FFFFFFFF00FFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFF +%00FFFFFFFFFFFFFFFFFF00FFFFFFFFFFFF0000000000FFFFFF00FF000000 +%0000FF00000000000000FF0000FF0000000000FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FFFFFFFFFFFFFF00 +%00FF00FFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFF00FF00FFFF00FF0000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF00FFFFFF00FFFFFF0000FF +%FF0000FF00000000FF0000000000FFFF00FFFFFF00FF000000FF0000FF00 +%FF000000FFFF00FFFF0000FFFFFF00FFFFFFFF000000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000FFFFFFFF0000FFFFFFFF00FFFFFF00FFFF00FF0000FF +%00FFFF00FF00FF00FF000000000000FF000000000000000000FF0000FF00 +%FFFF0000FFFFFF00FFFFFF00FF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FF00FFFFFFFF +%FF0000FFFFFFFFFFFFFF00FF00FFFFFFFFFF00000000000000FF0000FFFF +%00000000FF00000000FFFF00FF00FF000000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF00FFFFFFFFFF000000FF +%FFFFFF0000FFFFFF0000FFFFFFFFFFFFFF00FF00FFFFFFFFFF00FFFF0000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FFFFFF00FFFFFF00FF +%0000FF00000000000000000000FF00FFFF00FF000000FF000000FFFF00FF +%00FF00000000FFFF0000FFFFFF00FFFFFFFF000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000FFFFFF0000FFFFFFFF00FF00FFFF00FFFF0000000000 +%00FF00000000FFFF00000000FF00FF000000000000000000FF00FF00FFFF +%FFFFFF00FFFFFFFF00FFFFFF00FF00FF0000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFF00FF00000000 +%00FF00FF000000FF00FF00FFFF0000000000FF0000000000FF000000FF00 +%00FF0000000000FF00FF00FFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF00FFFFFF000000FFFFFFFF +%FF00FFFFFFFF00FFFFFFFFFFFFFFFF0000FFFFFFFFFF00FF00FF00FF00FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFF00FFFFFF00FF +%0000000000000000FF0000000000000000FF0000FF0000FF00000000FF00 +%FF000000FF00FF0000FFFF0000FFFFFFFF000000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF000000FFFFFF0000FFFFFFFFFF00FF00FF00FFFFFF00FFFFFF00 +%0000FFFF00000000000000000000FF000000000000000000FF0000000000 +%FFFFFF0000FFFFFF00FFFFFFFF00FF00FF00FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFF +%FF00FF00FF00FF000000FF0000FFFFFFFFFF00FFFFFFFFFF000000FFFFFF +%FFFFFFFF00000000FF00FFFF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF00FF0000FFFFFFFFFFFFFFFF +%FFFF0000FF00FFFFFFFFFFFF0000FFFFFFFFFF000000FF00FF00FF0000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFF00FFFFFF00 +%00FF0000000000FF0000FF00FF00FF00FF00000000FF0000000000FF00FF +%00FF000000FFFF00FFFF0000FFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF0000FFFFFF00FF00FFFFFFFF00FF00FF0000FFFFFF00FFFFFFFF +%00FFFF0000FF00FF0000000000FF00FF00000000000000FF00FF00FF0000 +%00FFFFFF0000FFFFFF00FFFFFFFF00FF00FF00FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFFFFFFFFFF00FF00 +%00FFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFF00FF0000FFFFFFFFFFFF +%FF000000FFFFFFFF00FFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF000000FFFFFFFFFFFFFFFFFFFF +%000000FF00FFFFFFFFFF0000FFFFFF0000FF00FFFFFF00FF00FFFF00FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FF00FFFFFF00 +%00000000FF00000000000000FFFF00FF000000FFFFFFFF000000000000FF +%FF00FF00000000FFFF00FFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF0000FFFFFF00FF00FFFFFFFFFF00FFFF0000FFFFFF000000000000 +%000000FF00000000FF00FF00FFFFFFFF00FF00000000FF000000FF00FF00 +%00FFFFFF00FF00FFFF0000FFFFFFFF00FF00FF00FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFF00FF +%FFFFFFFFFFFFFFFF00FFFFFFFFFFFF0000000000FF00FFFF00FFFFFFFF00 +%0000FFFFFFFFFF00FFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF00FF00FF00FFFFFFFFFFFFFFFFFFFFFF00FF +%00FF00FF00FFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF00FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFF00FFFF00 +%000000000000FF0000000000FFFFFFFFFF00FF00FFFFFF00000000000000 +%FFFF00000000000000FFFFFFFF00FFFF00FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF000000FFFF00FF0000FFFFFFFF00FF00FF00FF00FF00FF00FFFF0000 +%FF000000FF0000FF00FF00FF0000FFFFFF00000000000000FFFF00FF00FF +%00FF00FFFF00FFFFFFFF00FFFFFFFFFF00FF00FF00FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFFFFFFFFFF00FFFF00 +%FF00FFFFFFFFFFFFFFFF00FF000000FFFFFFFFFF00FF0000FFFFFF000000 +%FFFFFFFFFFFF00FFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF0000FF00FF00FFFFFFFFFFFFFFFFFF000000FFFF +%00FFFFFFFFFFFF000000000000000000FFFFFFFFFFFF00FFFFFF0000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFF00FF00 +%FF0000FF00000000FF0000FF00FF00FFFF00FFFF000000FF000000000000 +%0000FF00000000FFFFFFFF0000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000FFFFFF00FF00FFFFFFFFFF00FF00FF0000FF00FF000000FFFF00 +%000000FF00FF0000FF00FF00FF00FFFF00FF000000FF0000000000FF0000 +%FF00FF00FF0000FFFFFF0000FFFFFFFFFF00FF00FF00FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF00FFFFFFFFFFFFFFFF00FF +%00FF0000000000000000FF00FFFFFFFFFFFFFFFF00FFFFFFFF000000FFFF +%FFFFFFFF0000FFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000FF00FF00FFFFFFFFFFFFFFFF000000FFFFFFFF +%FFFF0000000000FF00FF0000FFFFFFFF0000FFFFFF00FF0000000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFF00FF +%0000000000000000000000FFFF0000FF00FF00FF00FF00FFFF0000000000 +%00000000FFFFFFFFFF0000FFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF0000FFFF0000FF00FFFFFFFFFF00FFFF00FF00FFFFFFFF00FF00FFFFFF +%FF0000000000000000FF00FF0000FF00FF000000000000FFFF0000FF0000 +%FF00FF00FFFF00FFFFFFFF00FFFFFFFFFFFF00FF00FF00FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FF00000000000000FF00 +%FFFFFFFFFFFFFFFF000000FF00FFFFFF00FF00FFFFFFFF0000FF00FFFFFF +%FFFF0000FFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF00FF00FF00FFFFFFFFFFFFFFFF0000FFFFFFFF0000 +%000000FFFFFFFFFFFF00FFFF00FFFFFFFFFF000000FF00FFFFFF00FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFF00 +%FFFF00FFFF000000FF00FF000000FF00FFFFFF00FF00FF00FF0000000000 +%00FF00FF00FFFFFF0000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%0000FFFFFF00FF0000FFFFFFFFFF00FF00FF00FFFF00FFFF0000FF00FF00 +%00FF0000FF00FF00FF00FFFF00FF00FF00FF00FF0000FF0000FFFF000000 +%FFFF00FFFFFF00FFFFFFFF00FFFFFFFFFFFFFF00FF00FF00FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFFFFFFFFFFFFFFFF00FF +%FFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFF00000000FF00FFFFFFFF +%FF00FFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF0000FF00FF00FFFFFFFFFFFFFF00FFFFFFFF000000FFFF +%FFFFFFFFFFFFFFFFFFFFFF00FF000000FF00FFFF00FFFF00000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFF +%00FFFFFF000000FF000000FFFFFF00FFFF0000FFFFFFFFFFFF0000FF00FF +%0000FF00FF00FF0000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +%0000FFFF00FFFF00FFFFFFFFFF00FFFF00FFFF00FFFFFFFF00FFFF00FF00 +%FF00FF0000FF0000FFFFFF000000FF00FF0000FF00FF000000FFFF000000 +%FF00FF0000FF0000FFFFFF0000FFFFFFFFFFFF0000FF000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF00FF00FF00FFFF00FFFFFF +%FFFF00FF00000000000000FFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFF00 +%00FFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF00FF0000FF00FFFFFFFFFFFFFF00FF00000000FF00FFFFFF +%FFFFFFFFFF00000000FF00FF00FFFFFFFF00FF00000000FFFF00FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FF +%FF0000FF00000000FF0000000000FFFFFFFF00FFFFFFFFFF00FF00000000 +%0000FF00FF0000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +%00FFFF0000FF0000FFFFFFFFFF00FFFF00FFFF00FFFFFFFFFF00FFFF00FF +%0000FFFF0000000000000000000000000000FF00000000FF000000000000 +%FFFF00FFFFFFFF00FFFFFFFF0000FFFFFFFFFF00FF00FF00FF00FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFFFF00FF0000FF000000 +%FF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFF0000FF +%FFFFFF00FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000FFFF00FFFFFFFFFFFFFF000000FF00FF0000FF00FFFF +%FF0000FF00FFFFFFFF00FF00FF0000FFFFFFFFFFFF00FF000000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00 +%FFFF000000000000000000FFFF00FFFF0000FFFFFFFFFFFF00FF0000FF00 +%000000FF00FF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%FF0000FFFFFF0000FFFFFFFF00FFFF00FFFFFF00FFFFFFFF00FFFFFF0000 +%FF000000FF00FF0000000000FF000000FF000000FF000000FF00FF0000FF +%00FF00FFFF00FFFF00FFFFFF00FF00FFFFFFFFFF00FF00FF000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF00FFFFFF +%FFFFFFFFFFFFFFFF000000FF00FF000000FFFFFFFFFFFFFFFF0000FFFFFF +%FFFF00FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF0000FFFF00FFFFFFFFFF00000000FFFFFFFF00FFFF00000000 +%00FFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFF00FF00FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF +%0000FF00000000000000FF000000FFFF00FF00FFFFFFFFFF0000FF000000 +%000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF +%00FF0000FF0000FFFFFFFFFF00FFFF00FFFFFF00FFFFFF00FF00FFFFFF00 +%00FF00FFFF00000000FFFFFFFFFFFFFF000000000000FF0000FF0000FF00 +%FFFF00FFFFFFFFFF00FFFFFFFF00FFFFFFFFFFFF00FFFF00FF0000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFFFFFFFFFFFF0000FF0000FF +%FFFFFFFFFFFFFFFFFFFFFF00FF0000FFFFFFFFFFFFFFFF000000FFFFFFFF +%FF00FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF000000FF00FFFFFFFFFF000000FFFFFFFFFFFFFFFF0000FF00FFFF +%FFFFFFFFFFFFFFFFFFFF0000FF0000FFFFFFFFFFFFFF00FF00FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%00FF00000000FF00000000FF00FFFFFFFF00FFFFFFFFFFFF000000000000 +%00000000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%FF0000FFFF0000FFFFFFFF00FFFFFF00FFFFFFFFFFFFFFFFFF00FFFFFFFF +%00000000000000000000FFFF00FF00FF0000000000FF00FFFF0000FFFF00 +%FFFF00FFFF00FFFFFF00FFFF0000FF00FFFFFFFFFFFFFFFF00FF0000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFFFFFFFFFFFFFFFF00FFFFFF +%FFFFFFFFFFFFFFFF0000000000FFFF00FFFFFFFF00000000FFFFFFFFFF00 +%FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF000000FF00FFFFFFFFFF0000FFFFFFFFFFFFFFFF000000FF00FF0000 +%00FFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFF000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%00000000FF0000FF0000000000FFFFFFFFFF00FF0000FF00FF000000FF00 +%FF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF +%00FF00FF00FF00FFFFFFFF00FFFFFFFFFFFF00FFFFFFFF00FF00FFFFFFFF +%000000FFFFFF00000000000000FF00000000FFFF00FFFF00000000FFFF00 +%FFFF00FFFFFF00FFFF00FF00FF00FF0000FFFFFFFF00FFFFFF00000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FFFFFFFFFFFF0000FF00FF00 +%FFFFFFFF00FF0000FFFFFF00FF0000FF00FF000000FFFFFFFFFFFFFF00FF +%FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000FF00FFFFFFFF0000FFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFF +%FFFFFFFFFF00FF00FF000000FF0000FF00FFFFFF00FF0000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%0000000000FF0000000000FF00FF00FF00FFFF00FF0000000000000000FF +%0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF0000 +%0000FF000000FFFFFFFFFF00FFFF00FFFFFF00FFFFFFFFFFFFFFFFFFFF00 +%0000000000FF0000FFFFFFFFFFFFFFFF00FFFFFF00FFFF00000000FFFF00 +%FFFFFF00FFFF00FFFF0000FF0000FFFF00FFFFFFFF00FFFFFFFF000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF00000000FF00FFFFFFFF00FF00FF +%00000000FFFFFFFFFFFFFFFF00FF00000000FF00FFFFFFFFFFFFFF00FF00 +%00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF0000FF00FFFFFF0000FFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFF0000 +%0000000000FF00FFFFFFFFFF00FFFF00FF00FF00FFFF0000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF0000000000FF0000000000FF0000FF00FF00FF0000FF00FF00000000FF +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF00 +%FFFF00FF00FFFF00FFFF0000FFFF00FFFFFF00FFFFFFFF00FF00FF000000 +%000000FF0000FF000000FFFFFFFFFF00FF000000FF000000FFFF00FFFF00 +%FFFFFF00FFFF00FFFFFF00FF00FF00FF0000FFFFFF00FFFFFFFF00FF0000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF00000000FFFF00FFFF00FF000000FF00FFFF +%FFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFF00FFFFFFFFFFFFFF00FF00FF +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%00000000FFFFFF00FFFFFFFFFF00FF00000000FFFFFFFF0000000000FFFF +%FFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFF00FF00FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF0000FF000000000000FF0000FF00FF00FF0000000000000000000000 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF00FF +%00FFFF000000000000FF00FFFFFF00FFFFFF00FFFFFFFFFFFFFF00FF0000 +%00000000FF0000FF0000FF00FF00000000FF0000000000FF000000FF00FF +%00FFFF00FF0000FFFF00FF00FF0000FFFF00FFFFFFFF00FFFFFFFF00FF00 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF00FFFFFF00FF000000FFFFFFFFFF00FFFF00 +%FFFFFFFFFFFF0000000000FFFFFFFF0000FFFFFFFFFFFFFFFF00FF00FF00 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%0000FFFFFF0000FFFFFFFFFF00FF0000FFFFFFFF00FF00FFFFFF00FF0000 +%00FFFFFFFFFFFFFFFF00FF00000000000000FF00FF0000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF000000FF0000000000FFFF00FF00FF00FFFF00FF00000000000000 +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF00FFFF +%FFFF0000FFFF00FFFF00FF00FF0000FFFF0000FF00FF00FF0000FF000000 +%0000000000FF0000FF00000000FF00FF00FF000000FFFF0000FF00FFFFFF +%00FFFFFF00FF00FFFFFF000000FF00FFFF00FFFFFFFF00FFFFFFFFFF0000 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF0000000000FF00FFFFFF0000FFFFFFFF0000FF +%00FF0000000000FFFFFFFFFFFF000000FFFFFFFFFFFFFFFF00FF00FF0000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%00FFFF0000FFFFFFFFFFFF000000FFFFFFFF00FFFFFFFFFFFFFFFF00FF00 +%00000000000000FF00FF00FFFFFFFFFFFFFFFF00FFFF00FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF00000000FF000000000000FF00FF0000FF0000FF00000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFFFF +%FFFF00FF00FF000000FF00FF00FF00FF00FF00FF000000FFFF0000FF00FF +%00000000FF00FF00000000FFFF00FF00FF0000FFFF0000FF000000000000 +%FF00FF00FF00FF00FF00FF00FFFFFF00FFFF00FFFFFF00FFFFFFFFFFFF00 +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF0000FFFFFF00FFFFFFFFFFFF00000000000000 +%0000FFFFFFFFFFFF00FFFF000000FFFFFFFFFFFFFFFFFF00FF00FF0000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00 +%FFFF00FFFFFFFFFFFF000000FFFFFF0000FF00FFFFFFFFFF000000FF00FF +%FFFFFFFFFFFFFF00FF00FFFF00FFFFFFFFFFFF00FF00FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000000000FF0000000000000000FF00000000000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF00FFFFFF +%FFFF00FF00FF00FFFF00FFFF0000FF00FF00000000FFFF00FF00FF000000 +%0000000000FF00FF00FF000000FF00FF000000FF00FF0000000000FFFFFF +%00FFFFFF0000FF00FF00FF00FFFFFF00FFFFFFFFFFFFFF00FFFFFF00FFFF +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF00FF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFF +%00FFFFFF00FF00FF00FF00FFFFFFFFFFFFFFFFFFFFFF00FF00FF00FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FF +%FF00FFFFFFFFFF000000FFFFFFFF00FFFF00FF0000000000FFFFFFFFFFFF +%00FFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF00000000000000000000000000000000000000000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFFFFFF +%FFFF00FFFFFF00FFFF00FFFF0000FF00FF00FF00FF00FFFF00FF00FF0000 +%00000000FF00FFFF000000FFFF00FF00FF0000FF00FF00FF000000FFFF00 +%00FF00FF0000FF00FF00FF00FFFFFF00FF000000FFFFFF00FFFFFFFF00FF +%00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF00FFFF00FF00FFFFFF00FF0000FFFFFF0000FF +%FFFFFFFF00FF000000FFFFFFFFFFFFFFFFFFFF000000FF00FF00FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFF +%00FFFFFFFF000000FFFFFFFFFFFFFF0000FF00FFFFFFFFFFFFFFFFFF00FF +%FFFFFFFFFFFFFFFF0000FF00FFFFFFFFFFFF00FF00FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF00000000000000000000000000000000000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF00FFFFFFFF +%FF00FF00FFFFFFFFFFFFFFFF00FFFF0000FF00FF00FF00FF00FFFFFF0000 +%FF000000FFFF00FFFF0000FF00FF00FF0000FF00FF00FF00000000FFFFFF +%00FFFFFF00FFFF00FFFFFFFF00FFFF00FFFFFF00FF00FFFF00FFFF00FF00 +%FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF0000FF00FF00FF000000FFFFFFFFFF0000FFFFFF +%FFFFFF00FF0000FFFFFFFFFFFFFFFFFFFF0000FF00FF00FF00FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFF00 +%FF00000000FFFFFFFFFFFFFF000000FFFFFFFFFF00FFFFFFFFFF0000FF00 +%0000FF00FF00FF00FFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF00000000000000000000000000000000000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFFFFFFFF +%FF00FF00FF00FFFF00FFFF00FF00FFFFFFFF00FF00FFFFFFFFFFFFFF0000 +%00FF00FF00FFFFFF00FF00FFFF00FFFF0000FF00FFFF00FF000000FFFF00 +%FFFFFFFF00FFFF00FFFFFFFF00FFFF0000FF000000FFFF00FFFFFFFF00FF +%FF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF00FF00FF00FF00FFFFFFFFFF0000FFFFFFFFFFFF +%FFFF00FFFFFFFF00FFFFFFFFFF000000FFFFFF00FF00FF00FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFF00FF +%00FF0000000000FF0000FF000000FF0000000000FF0000000000FFFF00FF +%00FF000000FF00FF0000000000FF00FFFFFF0000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF00FFFFFFFFFF +%00FFFF00FF00FFFF00FFFFFF00FFFFFFFF00FFFFFFFFFFFFFFFFFFFF00FF +%00000000FF00FF00FF00FF00FFFFFFFF0000FFFF00FF0000000000FFFF00 +%00FFFFFF00FFFF00FFFFFFFFFFFFFFFF00FFFFFF00FF00FF0000FF00FF00 +%FFFF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000FFFF00FFFFFFFFFF00FF00FFFFFFFFFFFFFF00 +%00FFFFFF0000FFFFFFFF000000FFFFFFFFFF00FF00FF00FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FF00FFFF +%00000000FF00000000FFFF0000FF00000000000000FFFFFFFFFF00FF00FF +%FFFFFFFFFFFF0000FFFFFFFFFF00FF00FF0000FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF00FFFFFFFFFFFF +%00FFFF00FF00FF0000FFFF00FFFFFFFFFFFF00FF0000FFFFFFFFFFFF0000 +%00FF0000FF00FF00FFFFFF00FFFF000000FF00FF00000000000000FFFF00 +%FFFFFFFF00FFFF00FFFFFFFF00FFFFFF00FF0000FFFF00FFFF0000FF00FF +%FFFFFF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000FF00FFFF00FF00FFFFFFFFFFFFFF000000FFFF +%FFFFFFFFFFFF00FF0000FFFFFFFFFFFFFF00FF000000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FF0000FF00 +%000000000000FF0000000000FF00FFFFFF0000000000FFFFFFFFFFFF00FF +%FFFFFFFFFFFFFFFF00FFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF00FFFFFFFFFFFF +%00FFFF00FFFFFFFF00FFFFFF00FFFFFFFF00FFFFFFFFFFFFFFFFFFFF00FF +%0000000000FF0000FF00FFFF0000FF0000FFFF00FF000000000000FFFFFF +%00FFFFFF00FFFFFF00FFFFFFFF00FFFF00FFFFFF00FFFFFF00FF00FFFFFF +%FFFFFF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF00FF00FF00FFFFFFFFFFFFFFFF000000FFFFFFFFFF +%FFFFFF00FF00FF00FFFFFFFFFFFFFFFF00FF00FF00FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000FFFFFF +%00FF0000000000FFFF00FF0000FF000000FFFF00FF000000000000000000 +%00000000000000000000FF000000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF00000000000000000000000000000000000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFFFFFFFFFFFF +%FFFFFFFF00FFFF0000FFFF00FFFFFFFFFFFF00FF0000FFFFFFFFFF00FF00 +%00FF00000000FFFFFFFF00FF00FF00FF00FF000000FF0000000000FF0000 +%FFFFFFFF00FFFF00FFFFFFFFFF00FFFF00FFFFFFFF00FFFFFFFF00FFFFFF +%FFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000FFFFFFFF00FF00FF000000FFFFFFFFFFFFFFFF +%FFFFFFFF0000FFFFFFFFFFFFFFFFFF00FF000000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF0000FF0000000000FF +%000000FF0000000000FF0000FF00FF0000FFFF0000FF000000FF00FF0000 +%0000000000000000000000FF00FF00000000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF00000000000000000000000000000000000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF00FFFFFFFFFFFF00 +%FFFF00FF00FFFF00FFFFFF00FF00FFFFFF0000FFFF00FFFFFFFF00FF0000 +%0000FF0000FF0000FFFFFFFF00FFFF0000FFFFFF00000000000000FF00FF +%00FFFF00FFFFFFFF00FFFFFFFF00FFFFFF00FFFFFFFFFFFFFFFF00FFFFFF +%FFFFFFFF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF00FF00FF0000FF00FF00FFFFFFFFFFFFFFFFFFFFFF +%FF00000000FFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF00000000000000 +%00000000000000000000FFFF0000FF00FF000000FF00FF0000FF00000000 +%000000000000000000FF00000000000000000000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF0000FFFFFFFFFFFF00 +%FFFFFF0000FFFF00FFFFFF00FFFFFFFFFFFF00FFFF00FFFFFF0000FFFF00 +%FF0000FF000000FF00FFFF00FF00FF00FF0000000000000000000000FF00 +%FF00FFFF00FFFFFFFFFFFFFFFF00FFFF000000FFFFFF00FFFFFFFF00FFFF +%FFFFFFFF00FFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000FF00FFFF00FFFFFFFFFFFFFFFFFFFFFFFFFF00 +%00FFFFFFFF00FF00FF00FFFF00FF000000FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FF0000FF0000000000 +%0000FF000000000000000000FF000000FF0000FF0000FF000000FF00FF00 +%FF00FF000000000000000000FF00FF0000000000000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF00FF0000000000000000000000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF00FFFFFFFFFFFF00FF +%FFFFFF00FFFFFF00FFFFFF00FFFFFFFFFFFF00FFFFFFFFFF00FFFF00FF00 +%00FF000000FF0000FF00FF0000FF00FF00FFFF0000000000FF0000FFFF00 +%FF00FF00FF00FFFF00FFFFFF00FFFF00FF00FFFFFFFF00FFFFFFFF0000FF +%FFFFFFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF00FF00FF00FFFFFF00FFFFFFFFFFFFFFFF0000FF00 +%FFFFFFFF00FF00FF00FFFF00FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000FF00000000FF00 +%00000000FF0000000000000000FF000000FF000000FF00FFFF0000FF0000 +%00FF0000000000000000FF0000FF0000FF0000FF0000FF00FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF00FFFFFFFFFFFF00FF +%FFFFFF00FFFFFF00FFFFFFFFFF00FFFFFFFF00FFFF00FF00FF0000FFFF00 +%0000FFFF00000000000000FF0000FF000000000000FFFF000000FFFFFF00 +%FFFF00FF00FF00FF00FF00FFFF00FFFF0000FF00FFFFFFFFFFFFFFFFFF00 +%FFFFFFFFFF00FFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000FF00FF00FF00FFFFFFFFFFFF0000FFFFFF00FF +%FFFFFFFFFF00FF00FFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000 +%0000FFFFFFFFFFFFFFFFFF000000FFFF0000000000000000000000FF00FF +%00FF000000FF00FF00000000000000FF0000FF000000FFFFFF0000FF00FF +%FF00FFFF0000FF000000FF000000FF00FF00000000FF00000000FF00FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFF00000000000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF0000FFFFFFFFFFFF00FF +%FFFFFF00FFFFFF00FFFFFF00FFFFFFFFFFFF00FF00FF00FF00FFFFFFFF00 +%FF000000FF00FFFFFFFF00FF000000000000FFFFFF00000000FF00FFFF00 +%FF00FFFFFF00FFFF00FF00FF00FF00FF0000FF00FFFFFF00FFFFFFFF00FF +%00FFFFFFFFFFFF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000FF00FFFFFFFFFFFF0000000000FFFFFFFF00FFFF +%FFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000 +%000000FFFFFFFFFFFF000000000000000000FF0000000000000000000000 +%0000000000000000000000000000000000000000FF00000000FF0000FF00 +%00FFFF0000FF0000000000FF00FF00FF0000FFFF0000FF0000FF00000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFF00000000000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFFFFFFFFFF0000FF +%FFFFFF00FFFFFFFF00FFFF00FF00FFFFFFFFFFFF0000FF00FF00FFFFFF00 +%00FF000000FF000000FFFFFFFFFFFF00FF000000000000FF000000FFFF00 +%FFFFFF00FF00FF00FF00FF00FF00FF00FF00FFFF00FFFF00FFFFFFFF00FF +%FF00FFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000FF00FF00000000FFFFFFFFFFFFFF0000FFFFFF +%FFFFFFFFFFFF0000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000 +%00000000FFFFFFFF0000000000000000000000000000000000FF000000FF +%00000000FF000000000000000000000000FFFF00000000FFFF000000FFFF +%FF0000FFFF0000FF000000FF0000FF00FF0000FF00FF00FF00FF00000000 +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFF000000000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF0000FFFFFFFFFFFF00FFFF +%FFFF00FFFFFFFF00FFFFFF00FF00FFFFFF0000FF00FF00FFFFFFFFFFFF00 +%FF00FFFF0000FF00FF0000FF0000FF000000FF00FF00FF0000FF00FF00FF +%FFFFFFFFFF00FFFF00FF00FF00FF00FFFF00FFFF00FFFF00FFFFFFFFFFFF +%FF00FFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000FF00FF00FF00FFFF00FFFFFFFFFF00FFFFFFFFFF +%FFFFFFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%000000000000FF00000000000000000000FF0000FF00FF00FF00FF00FF00 +%FFFF0000000000000000000000000000000000FF000000FFFF0000000000 +%00FFFFFF00FF00FF00FF00FF00FF00FF00FF00FFFF00FF0000FF00FF0000 +%0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFF000000000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFFFFFFFFFF00FFFF +%FFFF0000FFFFFFFF00FF00FF0000FFFFFF00FF00FF00FFFFFFFFFFFF0000 +%00FF000000FF00FF00FF0000000000FF00FF00FF00FF00FF0000FFFFFF00 +%FFFFFFFFFF00FFFF00FF00FF00FF00FFFF00FFFFFFFFFFFF00FFFFFFFF00 +%FFFF00FFFFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000FF00FFFF00FF00FFFFFF00FFFF00FFFFFFFFFFFF +%FFFF000000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%000000000000FFFF0000000000000000000000FF00FF00000000FF00FF00 +%FF00FFFFFF0000000000000000FF00FF00FF000000000000FF00FFFF0000 +%00000000FFFFFFFF00FF00000000FF00FF0000FF00FF00FF00FF00000000 +%0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFF0000000000 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF0000FFFFFFFFFFFFFF00FFFF +%FFFF00FFFFFFFFFF00FFFF00FF00FF00FFFF0000FFFFFFFFFFFFFF00FF00 +%000000FF00000000FF00FFFFFFFFFF00FF00FF00FF000000000000FF00FF +%FFFFFFFFFF00FF00FFFFFFFFFFFF00FFFF00FF00FF00FFFF00FFFFFFFF00 +%FFFFFF00FFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF000000FF00FFFF00FFFF00FFFF0000FFFFFFFFFFFFFF +%0000FFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000000000000000000000000000000000FF0000FFFFFF000000FF00 +%00FFFFFF0000FF00FF0000000000FF00FF00FF00FF00000000FF0000FF00 +%FF00000000000000FF000000FF0000FF00FF00FFFF00FF00000000FF00FF +%00000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFF00000000 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFF00FFFFFF +%FFFF00FFFFFFFFFF00FFFF00FFFF00FFFFFFFF00FFFFFFFFFFFF0000FFFF +%0000FF00FF00FF0000FF0000000000FF00FF00FF00FFFF000000FF00FFFF +%FFFFFFFFFF00FFFF00FFFFFFFFFFFFFF00FFFF00FF00FFFF00FFFFFFFFFF +%00FFFFFF00FFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000FF00FF0000FFFF00FF000000FFFFFFFFFFFF0000 +%FFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF0000000000000000000000000000000000FF0000FFFFFFFFFF00FF +%0000FF00FF0000FF00FF0000FFFFFFFF00FF000000FFFF00FF0000FF00FF +%00FFFFFF0000FF0000FF00000000FF00FF0000FFFF0000FF0000FF00FF00 +%FF00000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF0000FFFFFFFFFFFF0000FFFF +%FFFF00FFFFFFFFFF00FFFFFF00FFFF00FFFFFFFF00FFFFFFFF0000FFFFFF +%00000000000000FF0000FF00FFFFFF00FF00FF00000000000000FF0000FF +%FFFFFFFFFF00FF00FFFFFFFFFF0000FF00FFFFFFFFFF00FFFF00FFFFFFFF +%00FFFFFF0000FF00FF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000FF00FFFFFFFF00FF00FFFFFFFFFFFFFFFFFFFFFF +%FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF00000000000000000000000000000000FF00FFFFFFFFFFFFFFFF00 +%FFFFFFFF0000FFFFFF00FFFF00FFFFFFFF00FF0000FF0000FFFF0000FF00 +%FF00FFFF00FF00FFFF00FF00FFFF00FF00FF0000FF0000FFFF00FF0000FF +%00FF000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFF00FFFFFF +%FF00FFFFFFFFFFFFFF00FFFF00FF00FFFFFFFFFF00FFFFFF0000FFFFFFFF +%FF00FFFFFFFF0000000000FF0000000000000000FF00000000FFFFFF0000 +%FF00FFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFF00FFFFFFFFFF00FFFFFFFF +%00FFFF00FF00FFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF000000FF00FFFF00FF00FF00FF00FFFF00FFFF00FF00 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF00000000000000000000000000FF00FF0000FFFF0000FFFFFF +%00FFFF00FF00FF0000000000FFFF000000FF000000FFFFFFFFFF00FF00FF +%00FF00FFFF00FFFF00FF0000FF0000FF00FF00FFFF00FF00FF00FF0000FF +%00FFFF00FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFF00FFFFFFFF00FFFFFF +%FF0000FFFFFFFFFFFF00FFFF00FFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFF +%FF0000000000FFFFFFFF000000FF00FFFFFFFFFFFF00FF0000FFFFFFFF00 +%00FFFF000000FF00FFFFFFFFFF00FF00FFFFFFFF00FF00FFFF00FFFFFFFF +%00FFFFFFFF00FF0000FF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000FF00FFFF00FF0000FF00FFFF00FFFF0000FF0000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF00000000000000000000000000FF00FFFFFF00FF00FF00FF +%FF00000000FF00FF0000FF0000FF00FF00000000FFFF0000FFFFFF00FF00 +%FF00FFFFFF000000FF000000FF0000FF00FF0000FF0000FFFF00000000FF +%00FFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFF00FFFFFF0000FFFFFF +%FFFFFFFFFF00FFFFFF0000FFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFF +%FF000000FF0000FF00FFFFFFFFFFFFFFFF00FF0000000000FFFFFFFFFFFF +%000000FFFFFF00FF00FFFFFFFF000000FFFFFFFF00FFFFFFFFFF00FFFFFF +%00FF00FF00FF00FFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000FF000000FFFFFFFFFF0000FFFF00FF0000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF000000000000000000000000FF00FF00FF00FF00FF0000FF +%00FFFF000000FFFFFF0000000000FF00FFFF000000FFFF00FFFF0000FF00 +%FFFFFF0000FFFFFF0000FFFFFFFF00FF0000FF00FF00FF000000FF00FFFF +%00FFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF00FFFFFF00FF00FFFFFF +%0000FFFFFFFF00FF00FF00000000FFFFFFFFFF000000FFFFFFFFFFFFFFFF +%FFFF000000FF0000FF0000000000000000FF00FF00FF0000FFFFFFFFFFFF +%FFFF0000FF00FFFFFFFFFFFF0000FFFF00FFFFFF00FFFF00FF00FFFF00FF +%FF00FFFFFF00FF0000FF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF000000FF00FF00FF00FF00FFFF000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF00000000000000000000000000FF00FF00FFFFFFFFFFFF00 +%FFFF00FF000000FFFF00000000FF00FF00FFFF0000FFFF00FFFFFF000000 +%000000FFFFFF00FFFFFF0000FF0000FF00FF0000FF0000FFFF00000000FF +%00FF0000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF00FF00FF00FFFFFF00 +%FF00FF000000FF00FF00FF00FF000000000000FFFFFFFFFFFFFFFFFFFFFF +%FFFF0000000000FF00FF00FF00FF0000FF00FF00FF00FF00FFFFFFFFFFFF +%FFFFFFFF0000000000000000FF00FF00FF00FF00FF00FFFFFFFF00FFFF00 +%FF00FF00FFFF00FF00FFFF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF00000000FF00FF00FF00FF000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF000000000000000000000000FF00FF0000FF00FFFFFFFFFFFF +%0000FFFF00FF0000000000000000FF00FF00FF0000FF0000FF00000000FF +%0000FF00FF00FFFFFF0000FFFF00FF00FF0000FFFF00FFFF0000FF00FF00 +%FFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF0000FF000000FF00FF00 +%0000FFFFFFFF00FF0000FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF00FF00FF0000FFFF00FF00FFFF00FF00FF000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFF000000FFFF00FF00FF00FF00FF00FFFF00FF00FF00FFFF +%FF0000FF00FFFF00FFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF0000FF00FF00FF00000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF0000000000000000000000000000FF0000000000FFFFFFFFFF00 +%FF00FFFFFF0000FF00FF000000FF00FF00FFFF0000000000FF0000FF0000 +%00FF00FFFFFFFFFF00FF00FF00FF00FF000000FF00FF0000FF00FF000000 +%FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF000000FF00FFFF00FFFF00FF +%FF00FF000000FF0000FF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF0000000000FF00FF00FFFFFF00000000000000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF00000000FF00FF00FFFF00FF00FFFFFFFF00FFFF00 +%FF00FF00FF00FFFF0000FF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF000000000000000000000000000000FF00FF00FFFFFFFFFFFFFF +%0000FFFF0000FF000000FF00FF00FF0000000000000000000000FF0000FF +%FFFFFF000000FF00FF0000FF0000FF0000FF00FFFF00FF000000FF00FF00 +%00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF0000FF000000FF00FF00 +%00FF00FFFF00FF00FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF0000FF00000000000000000000FFFFFFFF00FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF000000FF00FF00FF00FF00FF00FF00FF00FF +%FFFF00FFFF00FFFFFF0000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF000000000000000000000000000000000000000000FFFFFFFFFF00 +%FFFF000000FF000000FFFF000000000000FF0000FF00000000FF0000FF00 +%FF00FFFFFF00FF00000000FF00FF0000FF0000FF000000FF00FF00000000 +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF0000FFFF0000FF00FF0000FF +%00FF00FF00FF00FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF00FF00FFFFFF00FF00FFFFFF0000000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFF00FF00FFFFFF00FF00 +%FF00FFFF00FFFF00FF00FF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF0000000000FF00000000000000000000FF0000FF00FF00000000FFFF +%FF00000000000000FF000000FF0000FF0000FF00000000FFFF0000FF00FF +%00FFFF0000FF00FF00FF0000FF00FF000000FF0000FF00000000FF000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF0000FF0000FF0000FF00 +%00FFFF00FF00FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF000000000000000000000000FF00FF000000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFF00FF00FF00FF +%00FF0000FF0000FF00FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF0000000000FFFF000000000000000000000000000000000000FFFF0000 +%00000000000000FF00FF00000000FF0000FF0000FFFF00FF0000FF00FF00 +%FFFF00FFFF000000000000FF00000000FF00FF00FF0000FF00000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF0000FFFF00FF00FFFFFF0000 +%FF0000FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF0000FF00FF00FF000000FF0000000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF00FF00FF00 +%FF00FFFF00FFFF00FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%000000000000FFFF0000000000000000000000000000000000FF00000000 +%000000000000FF00000000FF00FF00FF000000FF00FF00FF00FF00000000 +%0000FF0000000000FF00FF0000FF00FF0000FF000000000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF0000000000000000FF0000FF00 +%00FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF0000000000FFFFFFFFFF00FF00000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000 +%000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%0000000000FFFFFFFF00000000000000000000000000000000000000FF00 +%00000000FF00FF00FFFF00FFFF0000000000FFFF00000000000000000000 +%00000000000000FF0000FF0000FF0000FF00FF00000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FF0000FF00FF00FF0000 +%00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000FFFF0000000000FF00000000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%00FF00000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%00000000FFFFFFFFFFFFFF000000FFFF00FF0000000000FF0000FF000000 +%0000000000FF00FF00FFFF00FF00000000FF000000FF0000000000000000 +%0000FF00FF00FF0000FF0000FF00FF000000000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000FF00000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF000000FFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF0000000000FF00 +%000000FFFF00FF00FF0000000000FF00FF00FF00FF000000000000000000 +%00FF000000000000FF0000FF00FF00000000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF0000FF00FFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000 +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF000000000000 +%0000FFFF00FF00FF00FF0000FF000000FF0000FF0000FFFF00000000FF00 +%000000FF00FF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF0000000000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF0000FF00FF00000000000000FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FF +%0000FF00FF00FF00000000FFFF0000FFFFFFFF0000FFFFFFFF0000000000 +%000000000000FF00FFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF000000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000FF0000FF0000000000FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000FFFF00 +%00FF00FF00000000000000FFFF00FFFFFF0000FFFFFFFFFFFF00FF00FF00 +%FFFFFFFFFFFF00FFFF00FFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000FF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF0000FF +%000000000000000000FF00FFFF00FF0000FFFFFFFFFFFFFFFFFF00FF00FF +%00FFFFFFFFFFFF0000FF00FFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF0000FFFF00 +%FF00000000FF00FFFF00000000000000FF00FF00FF000000FF00FF000000 +%FFFFFFFFFFFFFFFF00FF00FF00FFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF0000FF +%FF000000FF0000FFFFFFFFFFFF00FF00000000FF00FFFFFFFFFFFF00FFFF +%0000FFFFFFFFFFFFFF00FF00FFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFF +%FF000000FFFFFF0000FFFFFFFFFF00FFFFFFFFFFFF00FF00FF00FFFFFF00 +%FFFFFFFFFFFFFFFFFFFF00FF00FFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FF +%FFFF00FF0000FFFFFF0000FFFFFFFF00FFFFFFFFFFFFFFFFFFFFFF0000FF +%FF00FFFFFFFFFFFFFFFFFF00FF00FFFFFFFFFFFF00FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000 +%FFFF00FFFF0000FFFFFFFF0000FF00FFFF00FFFFFFFFFFFFFFFFFFFF00FF +%00FFFFFF00FF000000FF00FF00FF00FFFFFFFFFF0000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00 +%00FFFF00FFFF000000FFFFFF0000FF00FFFFFFFFFFFFFFFFFFFFFF000000 +%FF0000FF00FF00FFFFFFFF000000FFFFFF0000FFFF00FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF +%00FFFFFF00FFFF00FFFF0000FF00000000FF00000000FFFFFFFFFFFFFF00 +%00FFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFF00FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%FF00FFFF0000FFFF0000FFFF00FFFFFFFF00FFFFFFFFFF00000000000000 +%FF0000FF00FF000000000000FF00FF00FFFFFFFFFFFF00FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%FF00FFFFFF00FFFFFFFF0000FFFF000000FFFFFFFFFFFFFFFFFFFF00FF00 +%00FFFF00FF00FF00FFFFFFFFFF0000FFFFFFFFFFFFFF00FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%00FF00FFFFFF00FFFFFFFFFF0000FFFFFF000000FFFFFFFFFFFFFFFF00FF +%FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF00FF00FFFFFF00FFFFFFFFFFFF0000FFFFFFFF000000FFFFFFFFFFFF00 +%0000FFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFFFFFF00FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF00FF00FFFFFFFF00FFFFFFFFFFFFFF0000FFFFFFFFFFFF0000000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFFFF0000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF000000FFFFFF0000FFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFF00FF00 +%00FF00FFFFFFFF00FFFF00FF00000000FFFFFFFFFF00000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF000000FFFFFF0000FFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFF0000 +%0000FF00FF00FFFFFFFFFFFFFFFF00FFFF000000FF00FF000000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF000000FFFFFF000000FFFFFFFFFFFFFFFFFF00000000FF00FFFF +%FFFF00FF00FF00000000FF000000FF0000FFFFFFFF000000FF0000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF000000FFFFFF00FF0000FFFFFFFFFFFFFFFFFFFF0000FF00FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFF0000FFFF000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF000000FFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFF00FF00 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF0000FF000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF0000FFFFFFFF00FFFF0000FFFFFFFFFFFFFFFF00FF00FF +%FFFF0000000000FFFFFFFFFF00FF00000000FFFFFF00FF0000FF0000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF000000FFFFFF0000FF00000000FFFFFFFF0000FF00FF +%FFFFFFFF00FF000000000000FF00FFFFFFFFFFFFFFFF00FF0000FF0000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF000000FFFFFFFF00FFFF0000000000FFFF00000000 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFF00FF00FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF0000FFFFFF0000FFFFFF0000FF00FF00FFFFFF +%FFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF0000FF000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF00000000FFFFFF0000FFFFFF00000000FF0000 +%FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF00FF0000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF00FF00FFFF00FF0000FFFF +%FF0000000000FFFF0000000000FF00FFFFFFFFFFFFFF00FF00FFFF00FF00 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF00000000FF00FF000000 +%00FFFFFFFFFFFF00FFFFFFFFFF0000000000FF00FFFFFFFFFF0000FF0000 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF00FF00FF00FFFFFFFFFF +%FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00000000FFFFFF00FF +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FF0000FF00FFFFFF +%FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF000000FF00 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FF0000FFFFFFFF +%FFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FF000000 +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FF00FFFFFF +%FFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFF00FF00FF00FF +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF00FFFF +%FFFFFFFFFFFFFFFFFFFFFFFF00000000FF00FFFFFFFFFF00FF000000FF00 +%FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFF0000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFF00FF00 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFF +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF0000000000FFFFFF +%FFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF +%FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF00FF000000 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%00FFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF000000FF00 +%FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +%000000FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF0000 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000FFFFFFFF00000000FFFFFFFFFFFFFF0000FF0000FF00FF00FF00 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF00000000FFFFFFFF00000000FFFFFFFFFFFF00FF000000FF00FF00 +%FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF00000000FFFFFFFF00FF000000FFFFFFFF00FF00FF00FF0000 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF000000FF00FF00000000000000FF0000000000000000 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF00000000FF00FF00FF00000000FF00FF00FF00 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000FF +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%%EndBinary +XH +%AI5_EndRaster +B /BBAccumRotation (0.000000) XT +U /BBAccumRotation (0.000000) XT +LB +%AI5_EndLayer-- +%%PageTrailer +gsave annotatepage grestore showpage +%%Trailer +Adobe_Illustrator_AI5 /terminate get exec +Adobe_shading_AI8 /terminate get exec +Adobe_ColorImage_AI6 /terminate get exec +Adobe_cshow /terminate get exec +Adobe_level2_AI5 /terminate get exec +%%EOF diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/fly.eps b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/fly.eps new file mode 100644 index 0000000..4f6c795 --- /dev/null +++ b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/fly.eps @@ -0,0 +1,5827 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: Adobe Illustrator(R) 8.0 +%%AI8_CreatorVersion: 8.0.1 +%%For: (Mark W Richards) (Association for Computing Machinery) +%%Title: (newfly.eps) +%%CreationDate: (2/9/00) (11:18 AM) +%%BoundingBox: 289 380 323 412 +%%HiResBoundingBox: 289.4404 380.3994 322.5605 411.5996 +%%DocumentProcessColors: Black +%%DocumentSuppliedResources: procset Adobe_level2_AI5 1.2 0 +%%+ procset Adobe_ColorImage_AI6 1.3 0 +%%+ procset Adobe_Illustrator_AI5 1.3 0 +%%+ procset Adobe_cshow 2.0 8 +%%+ procset Adobe_shading_AI8 1.0 0 +%AI5_FileFormat 4.0 +%AI3_ColorUsage: Black&White +%AI3_IncludePlacedImages +%AI7_ImageSettings: 1 +%%CMYKProcessColor: 1 1 1 1 ([Registration]) +%%AI6_ColorSeparationSet: 1 1 (AI6 Default Color Separation Set) +%%+ Options: 1 16 0 1 0 1 1 1 0 1 1 1 1 18 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 2 3 4 +%%+ PPD: 1 21 0 0 60 45 2 2 1 0 0 1 0 0 0 0 0 0 0 0 0 0 () +%AI3_TemplateBox: 306.5 395.5 306.5 395.5 +%AI3_TileBox: 13 13 599 779 +%AI3_DocumentPreview: Header +%AI5_ArtSize: 612 792 +%AI5_RulerUnits: 0 +%AI5_ArtFlags: 1 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI8_OpenToView: 115 531 3 1016 675 18 0 1 8 65 0 0 +%AI5_OpenViewLayers: 7 +%%PageOrigin:13 13 +%%AI3_PaperRect:-13 779 599 -13 +%%AI3_Margin:13 -13 -13 13 +%AI7_GridSettings: 7.2 8 7.2 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 +%AI7_Thumbnail: 128 124 8 +%%BeginBinary +%0000330000660000990000CC0033000033330033660033990033CC0033FF +%0066000066330066660066990066CC0066FF009900009933009966009999 +%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 +%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 +%3333663333993333CC3333FF3366003366333366663366993366CC3366FF +%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 +%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 +%6600666600996600CC6600FF6633006633336633666633996633CC6633FF +%6666006666336666666666996666CC6666FF669900669933669966669999 +%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 +%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF +%9933009933339933669933999933CC9933FF996600996633996666996699 +%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 +%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF +%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 +%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 +%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF +%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC +%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 +%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 +%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 +%000011111111220000002200000022222222440000004400000044444444 +%550000005500000055555555770000007700000077777777880000008800 +%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB +%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF +%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF +%524C45FDFCFFFDFCFFFDAEFFF8FFF8F8F8FD7EFFFD05F8FD1EFFF8FD5EFF +%F8F8F8FD1DFFFD04F8FD5DFFF8F8F8FD1AFFFD08F8FD5CFFF8F8FD19FFFD +%06F8FD5FFFF8F8F8FD17FFFD05F8FD61FFF8F8F8FD16FFFD06F8FD61FFF8 +%F8F8FD16FFFD05F8FD62FFFD04F8FD15FFFD04F8FD64FFF8F8F8FD15FFFD +%04F8FD64FFF8F8F8FD14FFFD04F8FD66FFF8F8F8FD13FFFD04F8FD66FFF8 +%F8F8FD12FFFD04F8FD67FFFD04F8FD11FFFD04F8FD68FFFD05F8FD0EFFFD +%04F8FD69FFFD05F8FD0EFFFD04F8FD6AFFFD05F8FD0CFFFD04F8FD6BFFFD +%06F8FD0AFFFD05F8FD6CFFFD06F8FD09FFFD05F8FD6DFFFD06F8FD06FFFD +%06F8FD6FFFFD06F8FD05FFFD05F8FD71FFFD06F8FFFFFFFD06F8FD73FFFD +%0BF8FD76FFFD0AF8FFF8FD71FFFD10F8FD6FFFFD12F8FD6EFFFD12F8FD6D +%FFFD13F8FD6DFFFD13F8FD6EFFFD12F8FD6EFFFD12F8FD6DFFFD14F8FD6D +%FFFD06F8FFFD08F8FFFD04F8FD6BFFFD04F8FFFD04F8FFF8FFFD06F8FFF8 +%F8F8FD67FFFD09F8FFFFFFF8FFF8FFF8FFFFFD04F8FFF8F8F8FD64FFFD0D +%F8FFF8FFF8FFF8F8FFFD05F8FFF8F8FD63FFF8F8F8FFFD04F8FFF8FFF8FF +%F8FFF8FFF8F8FFFD04F8FFFD05F8FD60FFFD05F8FFFD07F8FFF8FFFFF8FF +%F8FFF8FFFD04F8FFFD05F8FD5FFFFD04F8FFF8FFF8F8F8FFF8FFF8FFF8FD +%05FFFD04F8FFF8F8FFFD04F8FD5EFFF8FFFD0AF8FD05FFF8FD04FFF8FFF8 +%F8F8FFFD04F8FFF8F8F8FD58FFFD06F8FFFD04F8FFF8F8FFF8FD05FFF8F8 +%FFFFF8FFFFFD08F8FFFFF8FFF8F8FD56FFF8F8F8FFF8FFF8FFFD06F8FFF8 +%FD04FFF8FD04FFFD09F8FFF8F8FFFFF8FFF8F8FD53FFF8F8F8FFF8F8FFFF +%F8FFF8F8FFF8FFF8F8FD05FFF8F8FFFFF8FFFFFFF8F8FFF8F8F8FFFFFFF8 +%FFFFF8FFF8FD53FFF8F8FFF8F8FFFFF8FFF8FFFD06F8FFF8FFFFF8FFFFFF +%F8FFF8F8F8FFFD04F8FFFFF8FFFFF8FFFFF8F8FD52FFF8FFFFF8F8FD04FF +%FD09F8FFFFF8F8FFF8FFF8FFF8F8FFFFFD0AF8FFF8FFFFF8F8FD4FFFF8F8 +%FFF8F8FD04FFF8F8F8FFFD08F8FFF8F8FFFFF8FFFFF8FFF8FFFD06F8FFF8 +%F8FFF8FFF8FFFFF8F8F8FD4CFFF8FFFFF8FD04FFFD06F8FFFFFD07F8FFFF +%F8FFF8FD05FFFD04F8FFFD07F8FFFFF8FFFD04F8FD4AFFFD04F8FD04FFF8 +%FFFFF8F8F8FFF8FFFFFD06F8FFFFFFF8F8F8FFF8FFFFFD06F8FFFD05F8FF +%FFFFF8F8FFF8F8F8FD48FFF8F8F8FD04FFF8F8FFFFF8FFF8F8F8FFF8FFF8 +%FFFD09F8FFF8FFF8FFF8FFF8FFFD05F8FFF8F8FFFFFFF8FFF8FFF8F8FD48 +%FFF8F8FD04FFF8F8FFFFF8F8FFFFF8F8F8FFF8FFFD04F8FFF8FFF8F8FFFD +%10F8FFF8FD05FFF8FFF8F8FD46FFF8F8FD04FFF8FFFFFFF8F8FFFFF8F8F8 +%FFF8FFF8FFFFF8F8F8FFF8F8FFF8FFFFF8FFFD09F8FFF8F8FFF8FD06FFF8 +%FFF8F8F8FD43FFF8F8FD04FFF8FFFFFFF8F8FFFFF8FFF8F8F8FFF8FFF8F8 +%FFFD04F8FFFFFFF8FFFFFD09F8FFF8F8FFFFF8F8FFFFF8FFFFFFF8FFF8FF +%F8FD41FFF8F8F8FFFFF8F8FFFFFFF8FFF8FFFFF8FFFD04F8FFF8FFF8F8FF +%F8F8F8FFFFF8F8FFF8FFFD08F8FFF8F8F8FFFFF8FFFFFFF8FD05FFF8F8FD +%40FFF8F8FFFFF8F8FD04FFF8FFF8FFFFF8FFFD06F8FFFD04F8FFFFF8F8F8 +%FFF8FFFD08F8FFF8FFF8FD05FFF8FFFFFFF8FFFFFFF8FFF8FFF8F8FD3BFF +%F8F8F8FFFFFFF8FD05FFF8FFF8FFF8FFFFF8FFFFFFF8F8F8FFFFFD09F8FF +%FD08F8FFFD05F8FFFFFFF8F8FFFFF8FD04FFF8FFF8FFF8FD3BFFF8F8FFFF +%FFF8F8FD04FFF8FFF8FFF8F8FFFFF8FD04FFF8FFFFF8F8FFF8FFFD04F8FF +%F8FFFD06F8FFF8FFF8FFF8F8F8FFFFFFF8FFFFFFF8FD04FFF8FFF8FFF8FD +%39FFF8F8FFFFFFF8FD06FFF8FFFFF8F8FFFFFFFD08F8FFFD05F8FFF8FD04 +%FFF8FFF8F8F8FFF8F8F8FFF8FFF8F8FFFFFFF8F8FFFFF8F8FD04FFF8FFF8 +%FD39FFF8F8F8FFFFF8FFF8FD04FFF8FFF8FFF8FFF8FFF8F8FFFFF8F8FFF8 +%F8F8FFF8F8FFFFF8FFF8F8FFFFFFFD06F8FFFFF8FFF8FFF8FFF8FD06FFF8 +%FD05FFF8FFF8F8FD36FFF8F8F8FFFFFFF8FFF8FD04FFF8FFF8FFF8F8FFF8 +%FFF8F8FFFFFD04F8FFF8FFF8F8F8FFF8FFF8FFFFF8FFFD08F8FFF8F8FFF8 +%FFF8FFF8FFFFFFF8F8FD05FFF8FFFFF8FD35FFF8F8FFFFF8F8FFF8FD04FF +%F8FFFFF8FFF8FD05FFF8FD04FFFD07F8FFF8FFF8F8FFF8FFFD05F8FFFFF8 +%F8FFF8F8FFF8FFF8FFF8FD04FFF8FD06FFF8F8FFF8FD33FFF8F8FFFFFFF8 +%FFF8F8FD04FFF8FFF8FFF8FFFFF8FFFFF8FFF8FFF8F8FFF8F8FFF8FFF8F8 +%FFFFF8FFF8FFF8FFF8FFF8FFF8F8FFFFF8F8F8FFFFF8FFFFF8FD04FFF8FD +%08FFF8FFF8FD31FFF8F8F8FFFFF8FFFFF8FD04FFF8FFFFF8FFFFF8FD06FF +%F8FFF8FFF8FFF8F8FFF8F8FFFFF8F8F8FFF8FFF8F8FFFD04F8FFFFF8F8F8 +%FFF8FFFD04F8FFFFFFF8F8FD06FFF8FFF8F8F8FD30FFF8F8FFFFF8F8FFF8 +%F8FD04FFF8FFFFF8FFFFF8FD04FFF8FFFFF8FFF8F8FFFFFD0DF8FFF8F8F8 +%FFFD06F8FFFFF8FFFFFFF8FD04FFF8F8FD06FFF8FFF8FFF8FD2EFFF8F8FF +%F8F8FFFFFFF8F8FFFFFFF8FFFFF8FFFFFFF8FD07FFF8F8FFF8F8F8FFF8FF +%FD04F8FFF8F8F8FFF8F8F8FFF8F8FFF8FFF8F8FFF8FFF8FD04FFF8FFFFFF +%F8FFF8FD04FFF8FFF8FFF8F8F8FD2CFFF8F8FFF8FFF8F8FFF8F8FD04FFF8 +%FFFFF8FFFFFFF8FFFFFFF8F8FFFFFFF8F8FFF8FFFFF8F8F8FD07FFFD05F8 +%FFF8F8FFF8F8FFF8FFFFF8FD04FFF8FD04FFF8FD05FFF8FFFFF8FFF8F8FD +%2CFFF8FFFFF8FFF8FFF8FFF8FFFFFFF8FD06FFF8FD04FFF8F8FD04FFF8F8 +%F8FFFFFFFD06F8FFFD04F8FFFFF8FFFD04F8FFFFF8FFFFF8FFFFF8FFFFF8 +%FFF8FFF8FFF8F8FFFFFFF8FFFFFFFD04F8FD2BFFFD04F8FFF8F8F8FD04FF +%F8FFFFF8FFFFFFF8FD09FFFD06F8FFF8F8FD07FFF8FFFFFFF8FFFD04F8FF +%FFF8FFFFFFF8FFF8FFFFF8F8FFF8F8FFFFF8FFFFFFF8FD04FFF8F8F8FD29 +%FFF8FFFFF8FFFFF8FFF8FFFFF8FFFFF8FFFFF8FFFFFFF8FD04FFF8F8FFFD +%06F8FFF8F8FFF8F8FD05FFF8FFF8F8F8FFF8F8FFFFF8FFFFF8FFFFFFF8FF +%F8FFFFFFF8FFF8FFF8FFF8F8FFFFF8FD04FFF8FFF8F8FD27FFF8F8FFF8FF +%F8FFFFFD06F8FD04FFF8FFFFFFF8FD06FFF8FFFD06F8FFF8F8FFF8FFF8FF +%FD04F8FFFD04F8FFF8F8F8FFF8FFF8FFFFF8FFF8FFFFF8FFF8FFF8F8FFFF +%F8FFFFFFF8FD04FFF8FFF8FD26FFF8F8FFF8FD04FFF8F8FFFFF8FFFFF8F8 +%FFF8F8FFFFF8F8FFF8FFF8FFF8FFFD08F8FFFD06F8FFF8FFF8FFF8F8F8FF +%F8F8FFF8FFFFFFF8FFFFFFF8F8FFFFFFF8F8F8FFF8FFFFF8FFFFFFF8FD05 +%FFF8F8F8FD25FFF8F8FD06FFF8FFF8FFF8F8F8FFFFF8FFF8FFF8FFF8FFF8 +%F8F8FFF8F8FFF8FFFD04F8FFF8FFF8F8F8FFFFF8FFF8FFF8F8FFFFF8FFFD +%06F8FFF8FFF8FFFFF8FFF8FFF8FFFFFFF8FFFFF8FFFFF8FD06FFF8F8F8FD +%23FFF8F8FD07FFF8FFF8FFF8FFFFF8FFF8F8FFF8FFFD04F8FFFFF8F8FFFD +%08F8FFF8FFFFF8F8F8FFF8FFF8F8F8FFFD06F8FFFFFFF8FFFFFFF8FFF8FF +%F8FFF8FFFFFFF8FD06FFF8FFFFFFF8FFFFF8F8FD23FFF8F8FFF8FD05FFF8 +%FFFFFFF8FFFFF8FFF8F8FFF8FFF8FFF8FFF8FFFFFFF8FFFD06F8FFF8FFFF +%F8F8FFFFF8FFF8FFF8F8FFF8F8FFF8F8F8FFFFF8F8FFF8FFF8FFF8FFF8FF +%F8FFFFFFF8FFF8F8FFFFFFF8FD04FFF8FFF8FFF8FD21FFF8F8FFFFF8FD04 +%FFF8FFF8FD07FFF8FFFFF8F8FFF8FFF8FFF8FD04FFF8F8FFF8F8F8FFFFF8 +%FFF8F8FFF8FFF8FFF8F8FFF8FFFFFD04F8FFFFFFF8FFFFFFF8FFF8FD04FF +%F8FFFFF8FD04FFF8FFFFF8FFFFF8FFF8FFF8F8FD21FFF8F8FFF8FD05FFF8 +%FFF8FFF8FFFFF8FFF8FFF8FD04FFF8FFF8FD06FFF8F8F8FFF8FFF8FD04FF +%F8FFFFF8FFFFF8F8FFF8FFF8FFF8F8F8FFFFF8FD04FFF8FFF8FD04FFF8FF +%FFF8F8FFF8F8FFFFF8FD04FFF8FFFFF8FD21FFF8F8FFFFF8FD04FFF8FFFF +%F8FFF8FFFFF8FFFFF8FD04FFF8FD09FFF8FFFD04F8FFF8FFF8F8FFF8FD04 +%FFF8F8FFFFFD06F8FFFFF8F8FFFFFFF8FFF8FD08FFF8FFFFF8FFF8FFF8F8 +%FFF8FFF8FFFFF8F8FD1FFFF8FFFFF8FD05FFF8FFFFF8FFF8FFF8F8FFF8FD +%06FFF8FFF8F8FD05FFF8F8F8FFF8F8FFF8FFF8FFFFF8FFFFF8F8F8FFF8FF +%FD06F8FFFFF8FD04FFF8FFF8FD04FFF8FFFFFFF8FFF8FFFFF8FFFFF8F8FF +%F8FD05FFF8FD1DFFF8F8FFFFF8FD05FFF8FFFFF8FD04FFF8FFFFF8FD04FF +%F8FD09FFF8FFFD05F8FFF8F8F8FFFFF8F8FFF8F8FFFFF8FFFD05F8FFFFFF +%F8FFFFFFF8FFFFF8FD04FFF8FFFFF8FFFFF8FFFFFFF8FFF8FD07FFF8FD1D +%FFF8FFFFF8FD05FFF8FFFFF8FFF8FFFFF8FFFFF8FFF8FFFFFFF8F8FFFFF8 +%FFFFFFF8FFFD04F8FFF8F8FFF8F8FFFFFFF8FFFFF8F8FFFFFFFD06F8FFF8 +%FFF8FFFFF8FFFFFFF8FD04FFF8FFFFFFF8FD07FFF8FD06FFF8FFF8FD1BFF +%F8F8FFF8F8FD05FFF8FFFFFFF8F8FFFFF8FFFFF8FD06FFF8FFFFF8FFFFF8 +%F8FFFFF8FFF8F8FFF8F8F8FFFFFFF8FFF8FFF8FFFD0AF8FFF8FFF8FFFFF8 +%FD07FFF8FFFFF8F8F8FFFFF8FD04FFF8FD05FFF8FFFFF8FD1AFFF8FFFFF8 +%FD05FFF8FD04FFF8FFFFFFF8FFFFF8FD06FFF8FD07FFF8FFF8F8FFF8F8F8 +%FFF8F8F8FFF8F8FFF8FFF8FFFFFD04F8FFF8F8FFFFF8FFF8FFF8FFFFFFF8 +%FFFFFFF8FFFFF8FFF8FFFFFFF8FD04FFF8F8FD05FFF8FFF8F8FD19FFF8FF +%FFF8FD05FFF8FD04FFF8FFFFFFF8FD04FFF8FD04FFF8FFFFF8FFF8F8F8FF +%FFF8F8F8FFFFFD06F8FFF8F8FFFD06F8FFF8F8F8FFFFFFF8FFFFF8FFF8F8 +%FFF8FFF8FFFFF8FFFFF8F8FD0AFFF8FD04FFF8FFFFF8FD18FFF8FFFFF8F8 +%FD05FFF8FD04FFF8FFFFFFF8FFFFF8FD06FFF8FFF8FFF8FD05FFF8FFF8F8 +%F8FFF8FFFFFFF8FFFD06F8FFFFFFF8F8F8FFF8FFFFF8FFF8FD05FFF8FFF8 +%FFF8FFF8FFF8F8FD04FFF8FD04FFF8FFF8FD05FFF8FFF8FD17FFF8F8FFF8 +%FD05FFF8F8FD04FFF8FD04FFF8FFF8FFF8FD06FFF8F8FFF8F8FFFFFFF8F8 +%FFF8F8F8FFF8F8FD06FFF8FFFD05F8FFF8F8F8FFFFF8FFFFFFF8FFFFF8FF +%F8FFF8FFF8FFF8FFF8FFF8FFFFF8FD04FFF8FFFFF8FD05FFF8F8FD17FFF8 +%FFF8F8FD05FFF8FD04FFF8FD04FFF8FFFFF8FFF8FFFFFFF8F8FFF8FFF8FD +%05FFF8FFF8FFFFF8F8FFF8F8F8FFF8F8FFF8F8F8FFF8FFFFF8F8FFF8FFF8 +%FD08FFF8FFF8FFF8FFF8FFFFF8FFF8FFFFF8FD07FFF8FD05FFF8FD18FFF8 +%F8FFF8FD05FFF8FD04FFF8F8FD04FFF8FFFFF8F8FFFFFFF8FFF8FFF8FD05 +%FFF8F8F8FFF8F8F8FFF8FFFFFD05F8FFF8FFF8FFF8F8FFF8F8FFFFFFF8FD +%07FFF8FFF8FFF8FFF8FFFFF8FD05FFF8FD04FFF8FFFFF8FFFFFFF8FFF8F8 +%FD15FFF8FFF8F8FD06FFF8FD04FFF8FD05FFF8FFF8FFF8FFF8FFFFF8F8FD +%06FFF8FFFD04F8FFFD05F8FD05FFF8FFF8FFF8FFFD05F8FFF8FD07FFF8FD +%06FFF8FFFFF8FFFFF8FFFFF8FD04FFF8FD09FFF8FD15FFFD04F8FD0BFFF8 +%FD05FFF8FFF8FFFFF8FD04FFF8FD05FFF8F8FFFFF8F8FFF8FFF8FFF8FFFD +%05F8FFF8FFF8FFF8FFF8F8F8FFF8FD09FFF8FD07FFF8FFFFFFF8FFFFF8FD +%05FFF8FFFFF8FFFFFFF8FFF8F8FD14FFF8FFF8F8FD06FFF8FD04FFF8FD05 +%FFF8FFFFF8FFFFF8FD04FFF8FFFFFFF8F8FFFFFFFD07F8FFF8FFF8FFFFFF +%F8FFF8FFFD06F8FFF8F8FD07FFF8FD05FFF8F8FFF8FD04FFF8FFFFF8FD04 +%FFF8FFFFF8F8FFF8FFF8FFF8FD14FFF8F8F8FD0BFFF8FD07FFF8FFF8FFF8 +%FD05FFF8FFFFFFF8FD05FFF8FD04FFFD04F8FFFD08F8FFF8F8F8FFFFFFF8 +%F8FFF8FD0CFFF8FD08FFF8FD04FFF8FFFFFFF8FFFFFFF8FFF8F8FD13FFF8 +%FFF8FFFFF8FD08FFF8F8FD06FFF8FFF8FD0AFFF8FD06FFFD05F8FFFFFFF8 +%F8F8FFF8FD07FFF8F8FD04FFF8F8FFFFF8F8FFF8FD05FFF8FFF8FFFFFFF8 +%FFF8FFFFF8FD04FFF8FFFFFFF8FFF8F8FFF8FFF8FD13FFF8F8FFFFF8FFFF +%FFF8FD04FFF8F8FD04FFF8FFF8FFF8F8F8FD05FFF8F8F8FD09FFF8F8F8FF +%FD0AF8FFF8FFF8F8F8FD08FFF8F8FD07FFF8F8FFFFF8FFFFF8FFFFF8FFF8 +%FFFFF8FFFFF8FFFFF8FFF8F8FFF8FFF8F8FD12FFFD04F8FFF8FFF8FFF8FF +%FFF8FFF8FFF8F8F8FFF8FFF8F8FFFD06F8FD0CFFFD05F8FFFFF8FFF8FFF8 +%F8FFF8FFF8FFFFF8FD0AFFFD07F8FFF8FFF8FFF8FFFFF8FD04FFF8FFFFF8 +%FFF8FFFFFFF8FFF8FFFFF8FFF8FD12FFF8F8F8FFF8F8FFFD04F8FFF8F8F8 +%FD04FFF8FFFD06F8FD11FFF8FFF8FFF8FFFFF8FFF8FFFFF8FFF8FFF8F8FD +%0DFFF8F8F8FFFFF8FFF8FFF8FFF8F8FFFFF8FFF8FFF8FFFFFFF8F8F8FFFF +%F8FFFFF8FFF8F8FD12FFF8FFF8F8F8FFF8FFFFF8FFF8FFFFF8FFF8F8F8FF +%F8F8FFFFF8F8FD12FFFD06F8FFF8FFFFFFFD06F8FD10FFFD04F8FFF8FFF8 +%FFFFFFF8FD04FFF8FFFFF8FFF8FFFFF8FFFFF8F8FFF8FFF8FD12FFF8F8F8 +%FFF8F8FFFD04F8FFF8F8FFF8FFFFF8FFF8FFF8F8F8FD14FFF8F8FFFD09F8 +%FD17FFF8F8F8FFF8FFF8F8FFF8FFF8FFF8FFF8FFFFFFF8FFF8FFFFFFF8F8 +%FFF8F8FD12FFF8FFF8F8FFFFF8F8FFF8F8F8FFF8FFF8FFF8FFF8FFF8F8F8 +%FD15FFF8FFF8FFFFF8FFF8FFFFFFFD05F8FD15FFFD04F8FFFFF8FFF8FFFF +%FFF8FFF8FFF8FFF8FFFFF8FFF8FFF8FFF8FD11FFFD04F8FFF8F8FFF8F8FF +%F8FFF8F8FFFFF8FFF8FFF8F8F8FD16FFFD0BF8FFF8FFF8F8FD17FFFD04F8 +%FFFFFFF8FFF8FFF8FFF8FFF8FFF8F8FFF8FFF8F8F8FD13FFF8FFF8F8FFFF +%F8FFF8FFFFF8F8FFF8F8FFFD04F8FD19FFF8F8FFFFF8FFF8F8F8FFFD05F8 +%FD1AFFFD04F8FFF8FFF8FFF8FFF8FFF8FFFFF8FFFD04F8FD12FFF8FFFD08 +%F8FFF8FFF8F8FFFD04F8FD1BFFFD04F8FD05FFF8FFFD04F8FD1CFFFD13F8 +%FD13FFFD05F8FFF8F8FFF8FFFFFD06F8FD1EFFF8F8FFFD05F8FFFD04F8FD +%25FFF8FFFD06F8FD17FFFD09F8FFF8F8F8FD22FFF8F8FD06FFFD05F8FD44 +%FFFD0AF8FD26FFF8FFF8FFFFFFFD05F8FD75FFF8FFF8FFFD07F8FD76FFF8 +%F8FFFD05F8FD78FFFD08F8FD79FFFD06F8FDFCFFFDFCFFFDFCFFFDFCFFFD +%FCFFFDFCFFFD56FFFF +%%EndBinary +%%EndComments +%%BeginProlog +%%BeginResource: procset Adobe_level2_AI5 1.2 0 +%%Title: (Adobe Illustrator (R) Version 5.0 Level 2 Emulation) +%%Version: 1.2 0 +%%CreationDate: (04/10/93) () +%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved) +userdict /Adobe_level2_AI5 26 dict dup begin + put + /packedarray where not + { + userdict begin + /packedarray + { + array astore readonly + } bind def + /setpacking /pop load def + /currentpacking false def + end + 0 + } if + pop + userdict /defaultpacking currentpacking put true setpacking + /initialize + { + Adobe_level2_AI5 begin + } bind def + /terminate + { + currentdict Adobe_level2_AI5 eq + { + end + } if + } bind def + mark + /setcustomcolor where not + { + /findcmykcustomcolor + { + (AI8_CMYK_CustomColor) + 6 packedarray + } bind def + /findrgbcustomcolor + { + (AI8_RGB_CustomColor) + 5 packedarray + } bind def + /setcustomcolor + { + exch + aload pop dup + (AI8_CMYK_CustomColor) eq + { + pop pop + 4 + { + 4 index mul + 4 1 roll + } repeat + 5 -1 roll pop + setcmykcolor + } + { + dup (AI8_RGB_CustomColor) eq + { + pop pop + 3 + { + 1 exch sub + 3 index mul + 1 exch sub + 3 1 roll + } repeat + 4 -1 roll pop + setrgbcolor + } + { + pop + 4 + { + 4 index mul 4 1 roll + } repeat + 5 -1 roll pop + setcmykcolor + } ifelse + } ifelse + } + def + } if + /setAIseparationgray + { + false setoverprint + 0 setgray + /setseparationgray where{ + pop setseparationgray + }{ + /setcolorspace where{ + pop + [/Separation (All) /DeviceCMYK {dup dup dup}] setcolorspace + 1 exch sub setcolor + }{ + setgray + }ifelse + }ifelse + } def + + /gt38? mark {version cvr cvx exec} stopped {cleartomark true} {38 gt exch pop} ifelse def + userdict /deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt put + userdict /level2? + systemdict /languagelevel known dup + { + pop systemdict /languagelevel get 2 ge + } if + put +/level2ScreenFreq +{ + begin + 60 + HalftoneType 1 eq + { + pop Frequency + } if + HalftoneType 2 eq + { + pop GrayFrequency + } if + HalftoneType 5 eq + { + pop Default level2ScreenFreq + } if + end +} bind def +userdict /currentScreenFreq + level2? {currenthalftone level2ScreenFreq} {currentscreen pop pop} ifelse put +level2? not + { + /setcmykcolor where not + { + /setcmykcolor + { + exch .11 mul add exch .59 mul add exch .3 mul add + 1 exch sub setgray + } def + } if + /currentcmykcolor where not + { + /currentcmykcolor + { + 0 0 0 1 currentgray sub + } def + } if + /setoverprint where not + { + /setoverprint /pop load def + } if + /selectfont where not + { + /selectfont + { + exch findfont exch + dup type /arraytype eq + { + makefont + } + { + scalefont + } ifelse + setfont + } bind def + } if + /cshow where not + { + /cshow + { + [ + 0 0 5 -1 roll aload pop + ] cvx bind forall + } bind def + } if + } if + cleartomark + /anyColor? + { + add add add 0 ne + } bind def + /testColor + { + gsave + setcmykcolor currentcmykcolor + grestore + } bind def + /testCMYKColorThrough + { + testColor anyColor? + } bind def + userdict /composite? + 1 0 0 0 testCMYKColorThrough + 0 1 0 0 testCMYKColorThrough + 0 0 1 0 testCMYKColorThrough + 0 0 0 1 testCMYKColorThrough + and and and + put + composite? not + { + userdict begin + gsave + /cyan? 1 0 0 0 testCMYKColorThrough def + /magenta? 0 1 0 0 testCMYKColorThrough def + /yellow? 0 0 1 0 testCMYKColorThrough def + /black? 0 0 0 1 testCMYKColorThrough def + grestore + /isCMYKSep? cyan? magenta? yellow? black? or or or def + /customColor? isCMYKSep? not def + end + } if + end defaultpacking setpacking +%%EndResource +%%BeginProcSet: Adobe_ColorImage_AI6 1.3 0 +userdict /Adobe_ColorImage_AI6 known not +{ + userdict /Adobe_ColorImage_AI6 53 dict put +} if +userdict /Adobe_ColorImage_AI6 get begin +/initialize { + Adobe_ColorImage_AI6 begin + Adobe_ColorImage_AI6 { + dup type /arraytype eq { + dup xcheck { + bind + } if + } if + pop pop + } forall +} def +/terminate { end } def +currentdict /Adobe_ColorImage_AI6_Vars known not { + /Adobe_ColorImage_AI6_Vars 41 dict def +} if +Adobe_ColorImage_AI6_Vars begin + /plateindex -1 def + /_newproc null def + /_proc1 null def + /_proc2 null def + /sourcearray 4 array def + /_ptispace null def + /_ptiname null def + /_pti0 0 def + /_pti1 0 def + /_ptiproc null def + /_ptiscale 0 def + /_pticomps 0 def + /_ptibuf 0 string def + /_gtigray 0 def + /_cticmyk null def + /_rtirgb null def + /XIEnable true def + /XIType 0 def + /XIEncoding 0 def + /XICompression 0 def + /XIChannelCount 0 def + /XIBitsPerPixel 0 def + /XIImageHeight 0 def + /XIImageWidth 0 def + /XIImageMatrix null def + /XIRowBytes 0 def + /XIFile null def + /XIBuffer1 null def + /XIBuffer2 null def + /XIBuffer3 null def + /XIDataProc null def + /XIColorSpace /DeviceGray def + /XIColorValues 0 def + /XIPlateList false def +end +/ci6colorimage /colorimage where {/colorimage get}{null} ifelse def +/ci6image systemdict /image get def +/ci6curtransfer systemdict /currenttransfer get def +/ci6curoverprint /currentoverprint where {/currentoverprint get}{{_of}} ifelse def +/ci6foureq { + 4 index ne { + pop pop pop false + }{ + 4 index ne { + pop pop false + }{ + 4 index ne { + pop false + }{ + 4 index eq + } ifelse + } ifelse + } ifelse +} def +/ci6testplate { + Adobe_ColorImage_AI6_Vars begin + /plateindex -1 def + /setcmykcolor where { + pop + gsave + 1 0 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub + 0 1 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub + 0 0 1 0 setcmykcolor systemdict /currentgray get exec 1 exch sub + 0 0 0 1 setcmykcolor systemdict /currentgray get exec 1 exch sub + grestore + 1 0 0 0 ci6foureq { + /plateindex 0 def + }{ + 0 1 0 0 ci6foureq { + /plateindex 1 def + }{ + 0 0 1 0 ci6foureq { + /plateindex 2 def + }{ + 0 0 0 1 ci6foureq { + /plateindex 3 def + }{ + 0 0 0 0 ci6foureq { + /plateindex 5 def + } if + } ifelse + } ifelse + } ifelse + } ifelse + pop pop pop pop + } if + plateindex + end +} def +/ci6concatprocs { + /packedarray where { + pop dup type /packedarraytype eq 2 index type + /packedarraytype eq or + }{ + false + } ifelse + { + /_proc2 exch cvlit def + /_proc1 exch cvlit def + _proc1 aload pop + _proc2 aload pop + _proc1 length + _proc2 length add + packedarray cvx + }{ + /_proc2 exch cvlit def + /_proc1 exch cvlit def + /_newproc _proc1 length _proc2 length add array def + _newproc 0 _proc1 putinterval + _newproc _proc1 length _proc2 putinterval + _newproc cvx + } ifelse +} def +/ci6istint { + type /arraytype eq +} def +/ci6isspot { + dup type /arraytype eq { + dup length 1 sub get /Separation eq + }{ + pop false + } ifelse +} def +/ci6spotname { + dup ci6isspot {dup length 2 sub get}{pop ()} ifelse +} def +/ci6altspace { + aload pop pop pop ci6colormake +} def +/ci6numcomps { + dup /DeviceGray eq { + pop 1 + }{ + dup /DeviceRGB eq { + pop 3 + }{ + /DeviceCMYK eq { + 4 + }{ + 1 + } ifelse + } ifelse + } ifelse +} def +/ci6marksplate { + dup /DeviceGray eq { + pop plateindex 3 eq + }{ + dup /DeviceRGB eq { + pop plateindex 5 ne + }{ + dup /DeviceCMYK eq { + pop plateindex 5 ne + }{ + dup ci6isspot { + /findcmykcustomcolor where { + pop + dup length 2 sub get + 0.1 0.1 0.1 0.1 5 -1 roll + findcmykcustomcolor 1 setcustomcolor + systemdict /currentgray get exec + 1 ne + }{ + pop plateindex 5 ne + } ifelse + }{ + pop plateindex 5 ne + } ifelse + } ifelse + } ifelse + } ifelse +} def +/ci6colormake { + dup ci6numcomps + exch 1 index 2 add 1 roll + dup 1 eq {pop}{array astore} ifelse + exch +} def +/ci6colorexpand { + dup ci6spotname exch + dup ci6istint { + ci6altspace + exch 4 1 roll + }{ + 1 3 1 roll + } ifelse +} def +/ci6colortint { + dup /DeviceGray eq { + 3 1 roll 1 exch sub mul 1 exch sub exch + }{ + dup /DeviceRGB eq { + 3 1 roll {1 exch sub 1 index mul 1 exch sub exch} forall pop 3 array astore exch + }{ + dup /DeviceCMYK eq { + 3 1 roll {1 index mul exch} forall pop 4 array astore exch + }{ + 3 1 roll mul exch + } ifelse + } ifelse + } ifelse +} def +/ci6colortocmyk { + dup /DeviceGray eq { + pop 1 exch sub 0 0 0 4 -1 roll 4 array astore + }{ + dup /DeviceRGB eq { + pop aload pop _rgbtocmyk 4 array astore + }{ + dup /DeviceCMYK eq { + pop + }{ + ci6altspace ci6colortint ci6colortocmyk + } ifelse + } ifelse + } ifelse +} def +/ci6makeimagedict { + 7 dict begin + /ImageType 1 def + /Decode exch def + /DataSource exch def + /ImageMatrix exch def + /BitsPerComponent exch def + /Height exch def + /Width exch def + currentdict end +} def +/ci6stringinvert { + 0 1 2 index length 1 sub { + dup 2 index exch get 255 exch sub 2 index 3 1 roll put + } for +} def +/ci6stringknockout { + 0 1 2 index length 1 sub { + 255 2 index 3 1 roll put + } for +} def +/ci6stringapply { + 0 1 4 index length 1 sub { + dup + 4 index exch get + 3 index 3 1 roll + 3 index exec + } for + pop exch pop +} def +/ci6walkrgbstring { + 0 3 index + dup length 1 sub 0 3 3 -1 roll { + 3 getinterval {} forall + 5 index exec + 3 index + } for + + 5 {pop} repeat +} def +/ci6walkcmykstring +{ + 0 3 index + dup length 1 sub 0 4 3 -1 roll { + 4 getinterval {} forall + + 6 index exec + + 3 index + + } for + + 5 { pop } repeat + +} def +/ci6putrgbtograystr +{ + .11 mul exch + + .59 mul add exch + + .3 mul add + + cvi 3 copy put + + pop 1 add +} def +/ci6putcmyktograystr +{ + exch .11 mul add + + exch .59 mul add + + exch .3 mul add + + dup 255 gt { pop 255 } if + + 255 exch sub cvi 3 copy put + + pop 1 add +} def +/ci6rgbtograyproc { + Adobe_ColorImage_AI6_Vars begin + sourcearray 0 get exec + XIBuffer3 + dup 3 1 roll + + /ci6putrgbtograystr load exch + ci6walkrgbstring + end +} def +/ci6cmyktograyproc { + Adobe_ColorImage_AI6_Vars begin + sourcearray 0 get exec + XIBuffer3 + dup 3 1 roll + + /ci6putcmyktograystr load exch + ci6walkcmykstring + end +} def +/ci6separatecmykproc { + Adobe_ColorImage_AI6_Vars begin + sourcearray 0 get exec + + XIBuffer3 + + 0 2 index + + plateindex 4 2 index length 1 sub { + get 255 exch sub + + 3 copy put pop 1 add + + 2 index + } for + pop pop exch pop + end +} def + +/ci6compositeimage { + dup 1 eq { + pop pop image + }{ + /ci6colorimage load null ne { + ci6colorimage + }{ + 3 1 roll pop + sourcearray 0 3 -1 roll put + 3 eq {/ci6rgbtograyproc}{/ci6cmyktograyproc} ifelse load + image + } ifelse + } ifelse +} def +/ci6knockoutimage { + gsave + 0 ci6curtransfer exec 1 ci6curtransfer exec + eq { + 0 ci6curtransfer exec 0.5 lt + }{ + 0 ci6curtransfer exec 1 ci6curtransfer exec gt + } ifelse + {{pop 0}}{{pop 1}} ifelse + systemdict /settransfer get exec + ci6compositeimage + grestore +} def +/ci6drawimage { + ci6testplate -1 eq { + pop ci6compositeimage + }{ + dup type /arraytype eq { + dup length plateindex gt {plateindex get}{pop false} ifelse + }{ + { + true + }{ + dup 1 eq {plateindex 3 eq}{plateindex 3 le} ifelse + } ifelse + } ifelse + { + dup 1 eq { + pop pop ci6image + }{ + dup 3 eq { + ci6compositeimage + }{ + pop pop + sourcearray 0 3 -1 roll put + /ci6separatecmykproc load + ci6image + } ifelse + } ifelse + }{ + ci6curoverprint { + 7 {pop} repeat + }{ + ci6knockoutimage + } ifelse + } ifelse + } ifelse +} def +/ci6proctintimage { + /_ptispace exch store /_ptiname exch store /_pti1 exch store /_pti0 exch store /_ptiproc exch store + /_pticomps _ptispace ci6numcomps store + /_ptiscale _pti1 _pti0 sub store + level2? { + _ptiname length 0 gt version cvr 2012 ge and { + [/Separation _ptiname _ptispace {_ptiproc}] setcolorspace + [_pti0 _pti1] ci6makeimagedict ci6image + }{ + [/Indexed _ptispace 255 {255 div _ptiscale mul _pti0 add _ptiproc}] setcolorspace + [0 255] ci6makeimagedict ci6image + } ifelse + }{ + _pticomps 1 eq { + { + dup + { + 255 div _ptiscale mul _pti0 add _ptiproc 255 mul cvi put + } ci6stringapply + } ci6concatprocs ci6image + }{ + { + dup length _pticomps mul dup _ptibuf length ne {/_ptibuf exch string store}{pop} ifelse + _ptibuf { + exch _pticomps mul exch 255 div _ptiscale mul _pti0 add _ptiproc + _pticomps 2 add -2 roll + _pticomps 1 sub -1 0 { + 1 index add 2 index exch + 5 -1 roll + 255 mul cvi put + } for + pop pop + } ci6stringapply + } ci6concatprocs false _pticomps + /ci6colorimage load null eq {7 {pop} repeat}{ci6colorimage} ifelse + } ifelse + } ifelse +} def +/ci6graytintimage { + /_gtigray 5 -1 roll store + {1 _gtigray sub mul 1 exch sub} 4 1 roll + /DeviceGray ci6proctintimage +} def +/ci6cmyktintimage { + /_cticmyk 5 -1 roll store + {_cticmyk {1 index mul exch} forall pop} 4 1 roll + /DeviceCMYK ci6proctintimage +} def +/ci6rgbtintimage { + /_rtirgb 5 -1 roll store + {_rtirgb {1 exch sub 1 index mul 1 exch sub exch} forall pop} 4 1 roll + /DeviceRGB ci6proctintimage +} def +/ci6tintimage { + ci6testplate -1 eq { + ci6colorexpand + 3 -1 roll 5 -1 roll {0}{0 exch} ifelse 4 2 roll + dup /DeviceGray eq { + pop ci6graytintimage + }{ + dup /DeviceRGB eq { + pop ci6rgbtintimage + }{ + pop ci6cmyktintimage + } ifelse + } ifelse + }{ + dup ci6marksplate { + plateindex 5 lt { + ci6colortocmyk plateindex get + dup 0 eq ci6curoverprint and { + 7 {pop} repeat + }{ + 1 exch sub + exch {1 0}{0 1} ifelse () ci6graytintimage + } ifelse + }{ + pop exch {0}{0 exch} ifelse 0 3 1 roll () ci6graytintimage + } ifelse + }{ + ci6curoverprint { + 8 {pop} repeat + }{ + pop pop pop + {pop 1} 0 1 () /DeviceGray ci6proctintimage + } ifelse + } ifelse + } ifelse +} def +/XINullImage { +} def +/XIImageMask { + XIImageWidth XIImageHeight false + [XIImageWidth 0 0 XIImageHeight neg 0 0] + /XIDataProc load + imagemask +} def +/XIImageTint { + XIImageWidth XIImageHeight XIBitsPerPixel + [XIImageWidth 0 0 XIImageHeight neg 0 0] + /XIDataProc load + XIType 3 eq XIColorValues XIColorSpace ci6tintimage +} def +/XIImage { + XIImageWidth XIImageHeight XIBitsPerPixel + [XIImageWidth 0 0 XIImageHeight neg 0 0] + /XIDataProc load + false XIChannelCount XIPlateList ci6drawimage +} def +/XG { + pop pop +} def +/XF { + 13 {pop} repeat +} def +/Xh { + Adobe_ColorImage_AI6_Vars begin + gsave + /XIType exch def + /XIImageHeight exch def + /XIImageWidth exch def + /XIImageMatrix exch def + 0 0 moveto + XIImageMatrix concat + XIImageWidth XIImageHeight scale + + /_lp /null ddef + _fc + /_lp /imagemask ddef + end +} def +/XH { + Adobe_ColorImage_AI6_Vars begin + grestore + end +} def +/XIEnable { + Adobe_ColorImage_AI6_Vars /XIEnable 3 -1 roll put +} def +/XC { + Adobe_ColorImage_AI6_Vars begin + ci6colormake + /XIColorSpace exch def + /XIColorValues exch def + end +} def +/XIPlates { + Adobe_ColorImage_AI6_Vars begin + /XIPlateList exch def + end +} def +/XI +{ + Adobe_ColorImage_AI6_Vars begin + gsave + /XIType exch def + cvi dup + 256 idiv /XICompression exch store + 256 mod /XIEncoding exch store + pop pop + /XIChannelCount exch def + /XIBitsPerPixel exch def + /XIImageHeight exch def + /XIImageWidth exch def + pop pop pop pop + /XIImageMatrix exch def + XIBitsPerPixel 1 eq { + XIImageWidth 8 div ceiling cvi + }{ + XIImageWidth XIChannelCount mul + } ifelse + /XIRowBytes exch def + XIEnable { + /XIBuffer3 XIImageWidth string def + XICompression 0 eq { + /XIBuffer1 XIRowBytes string def + XIEncoding 0 eq { + {currentfile XIBuffer1 readhexstring pop} + }{ + {currentfile XIBuffer1 readstring pop} + } ifelse + }{ + /XIBuffer1 256 string def + /XIBuffer2 XIRowBytes string def + {currentfile XIBuffer1 readline pop (%) anchorsearch {pop} if} + /ASCII85Decode filter /DCTDecode filter + /XIFile exch def + {XIFile XIBuffer2 readstring pop} + } ifelse + /XIDataProc exch def + + XIType 1 ne { + 0 setgray + } if + XIType 1 eq { + XIImageMask + }{ + XIType 2 eq XIType 3 eq or { + XIImageTint + }{ + XIImage + } ifelse + } ifelse + }{ + XINullImage + } ifelse + /XIPlateList false def + grestore + end +} def +end +%%EndProcSet +%%BeginResource: procset Adobe_Illustrator_AI5 1.3 0 +%%Title: (Adobe Illustrator (R) Version 8.0 Full Prolog) +%%Version: 1.3 0 +%%CreationDate: (3/7/1994) () +%%Copyright: ((C) 1987-1998 Adobe Systems Incorporated All Rights Reserved) +currentpacking true setpacking +userdict /Adobe_Illustrator_AI5_vars 112 dict dup begin +put +/_?cmyk false def +/_eo false def +/_lp /none def +/_pf +{ +} def +/_ps +{ +} def +/_psf +{ +} def +/_pss +{ +} def +/_pjsf +{ +} def +/_pjss +{ +} def +/_pola 0 def +/_doClip 0 def +/cf currentflat def +/_lineorientation 0 def +/_charorientation 0 def +/_yokoorientation 0 def +/_tm matrix def +/_renderStart +[ +/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0 +] def +/_renderEnd +[ +null null null null /i1 /i1 /i1 /i1 +] def +/_render -1 def +/_shift [0 0] def +/_ax 0 def +/_ay 0 def +/_cx 0 def +/_cy 0 def +/_leading +[ +0 0 +] def +/_ctm matrix def +/_mtx matrix def +/_sp 16#020 def +/_hyphen (-) def +/_fontSize 0 def +/_fontAscent 0 def +/_fontDescent 0 def +/_fontHeight 0 def +/_fontRotateAdjust 0 def +/Ss 256 string def +Ss 0 (fonts/) putinterval +/_cnt 0 def +/_scale [1 1] def +/_nativeEncoding 0 def +/_useNativeEncoding 0 def +/_tempEncode 0 def +/_pntr 0 def +/_tDict 2 dict def +/_hfname 100 string def +/_hffound false def +/Tx +{ +} def +/Tj +{ +} def +/CRender +{ +} def +/_AI3_savepage +{ +} def +/_gf null def +/_cf 4 array def +/_rgbf 3 array def +/_if null def +/_of false def +/_fc +{ +} def +/_gs null def +/_cs 4 array def +/_rgbs 3 array def +/_is null def +/_os false def +/_sc +{ +} def +/_pd 1 dict def +/_ed 15 dict def +/_pm matrix def +/_fm null def +/_fd null def +/_fdd null def +/_sm null def +/_sd null def +/_sdd null def +/_i null def +/_lobyte 0 def +/_hibyte 0 def +/_cproc null def +/_cscript 0 def +/_hvax 0 def +/_hvay 0 def +/_hvwb 0 def +/_hvcx 0 def +/_hvcy 0 def +/_bitfont null def +/_bitlobyte 0 def +/_bithibyte 0 def +/_bitkey null def +/_bitdata null def +/_bitindex 0 def +/discardSave null def +/buffer 256 string def +/beginString null def +/endString null def +/endStringLength null def +/layerCnt 1 def +/layerCount 1 def +/perCent (%) 0 get def +/perCentSeen? false def +/newBuff null def +/newBuffButFirst null def +/newBuffLast null def +/clipForward? false def +end +userdict /Adobe_Illustrator_AI5 known not { + userdict /Adobe_Illustrator_AI5 100 dict put +} if +userdict /Adobe_Illustrator_AI5 get begin +/initialize +{ + Adobe_Illustrator_AI5 dup begin + Adobe_Illustrator_AI5_vars begin + /_aicmykps where {pop /_?cmyk _aicmykps def}if + discardDict + { + bind pop pop + } forall + dup /nc get begin + { + dup xcheck 1 index type /operatortype ne and + { + bind + } if + pop pop + } forall + end + newpath +} def +/terminate +{ + end + end +} def +/_ +null def +/ddef +{ + Adobe_Illustrator_AI5_vars 3 1 roll put +} def +/xput +{ + dup load dup length exch maxlength eq + { + dup dup load dup + length 2 mul dict copy def + } if + load begin + def + end +} def +/npop +{ + { + pop + } repeat +} def +/hswj +{ + dup stringwidth 3 2 roll + { + _hvwb eq { exch _hvcx add exch _hvcy add } if + exch _hvax add exch _hvay add + } cforall +} def +/vswj +{ + 0 0 3 -1 roll + { + dup 255 le + _charorientation 1 eq + and + { + dup cstring stringwidth 5 2 roll + _hvwb eq { exch _hvcy sub exch _hvcx sub } if + exch _hvay sub exch _hvax sub + 4 -1 roll sub exch + 3 -1 roll sub exch + } + { + _hvwb eq { exch _hvcy sub exch _hvcx sub } if + exch _hvay sub exch _hvax sub + _fontHeight sub + } ifelse + } cforall +} def +/swj +{ + 6 1 roll + /_hvay exch ddef + /_hvax exch ddef + /_hvwb exch ddef + /_hvcy exch ddef + /_hvcx exch ddef + _lineorientation 0 eq { hswj } { vswj } ifelse +} def +/sw +{ + 0 0 0 6 3 roll swj +} def +/vjss +{ + 4 1 roll + { + dup cstring + dup length 1 eq + _charorientation 1 eq + and + { + -90 rotate + currentpoint + _fontRotateAdjust add + moveto + gsave + false charpath currentpoint + 5 index setmatrix stroke + grestore + _fontRotateAdjust sub + moveto + _sp eq + { + 5 index 5 index rmoveto + } if + 2 copy rmoveto + 90 rotate + } + { + currentpoint + _fontHeight sub + 5 index sub + 3 index _sp eq + { + 9 index sub + } if + + currentpoint + exch 4 index stringwidth pop 2 div sub + exch _fontAscent sub + moveto + + gsave + 2 index false charpath + 6 index setmatrix stroke + grestore + + moveto pop pop + } ifelse + } cforall + 6 npop +} def +/hjss +{ + 4 1 roll + { + dup cstring + gsave + false charpath currentpoint + 5 index setmatrix stroke + grestore + moveto + _sp eq + { + 5 index 5 index rmoveto + } if + 2 copy rmoveto + } cforall + 6 npop +} def +/jss +{ + _lineorientation 0 eq { hjss } { vjss } ifelse +} def +/ss +{ + 0 0 0 7 3 roll jss +} def +/vjsp +{ + 4 1 roll + { + dup cstring + dup length 1 eq + _charorientation 1 eq + and + { + -90 rotate + currentpoint + _fontRotateAdjust add + moveto + false charpath + currentpoint + _fontRotateAdjust sub + moveto + _sp eq + { + 5 index 5 index rmoveto + } if + 2 copy rmoveto + 90 rotate + } + { + currentpoint + _fontHeight sub + 5 index sub + 3 index _sp eq + { + 9 index sub + } if + + currentpoint + exch 4 index stringwidth pop 2 div sub + exch _fontAscent sub + moveto + + 2 index false charpath + + moveto pop pop + } ifelse + } cforall + 6 npop +} def +/hjsp +{ + 4 1 roll + { + dup cstring + false charpath + _sp eq + { + 5 index 5 index rmoveto + } if + 2 copy rmoveto + } cforall + 6 npop +} def +/jsp +{ + matrix currentmatrix + _lineorientation 0 eq {hjsp} {vjsp} ifelse +} def +/sp +{ + matrix currentmatrix + 0 0 0 7 3 roll + _lineorientation 0 eq {hjsp} {vjsp} ifelse +} def +/pl +{ + transform + 0.25 sub round 0.25 add exch + 0.25 sub round 0.25 add exch + itransform +} def +/setstrokeadjust where +{ + pop true setstrokeadjust + /c + { + curveto + } def + /C + /c load def + /v + { + currentpoint 6 2 roll curveto + } def + /V + /v load def + /y + { + 2 copy curveto + } def + /Y + /y load def + /l + { + lineto + } def + /L + /l load def + /m + { + moveto + } def +} +{ + /c + { + pl curveto + } def + /C + /c load def + /v + { + currentpoint 6 2 roll pl curveto + } def + /V + /v load def + /y + { + pl 2 copy curveto + } def + /Y + /y load def + /l + { + pl lineto + } def + /L + /l load def + /m + { + pl moveto + } def +} ifelse +/d +{ + setdash +} def +/cf +{ +} def +/i +{ + dup 0 eq + { + pop cf + } if + setflat +} def +/j +{ + setlinejoin +} def +/J +{ + setlinecap +} def +/M +{ + setmiterlimit +} def +/w +{ + setlinewidth +} def +/XR +{ + 0 ne + /_eo exch ddef +} def +/H +{ +} def +/h +{ + closepath +} def +/N +{ + _pola 0 eq + { + _doClip 1 eq + { + _eo {eoclip} {clip} ifelse /_doClip 0 ddef + } if + newpath + } + { + /CRender + { + N + } ddef + } ifelse +} def +/n +{ + N +} def +/F +{ + _pola 0 eq + { + _doClip 1 eq + { + gsave _pf grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _fc + /_doClip 0 ddef + } + { + _pf + } ifelse + } + { + /CRender + { + F + } ddef + } ifelse +} def +/f +{ + closepath + F +} def +/S +{ + _pola 0 eq + { + _doClip 1 eq + { + gsave _ps grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc + /_doClip 0 ddef + } + { + _ps + } ifelse + } + { + /CRender + { + S + } ddef + } ifelse +} def +/s +{ + closepath + S +} def +/B +{ + _pola 0 eq + { + _doClip 1 eq + gsave F grestore + { + gsave S grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc + /_doClip 0 ddef + } + { + S + } ifelse + } + { + /CRender + { + B + } ddef + } ifelse +} def +/b +{ + closepath + B +} def +/W +{ + /_doClip 1 ddef +} def +/* +{ + count 0 ne + { + dup type /stringtype eq + { + pop + } if + } if + newpath +} def +/u +{ +} def +/U +{ +} def +/q +{ + _pola 0 eq + { + gsave + } if +} def +/Q +{ + _pola 0 eq + { + grestore + } if +} def +/*u +{ + _pola 1 add /_pola exch ddef +} def +/*U +{ + _pola 1 sub /_pola exch ddef + _pola 0 eq + { + CRender + } if +} def +/D +{ + pop +} def +/*w +{ +} def +/*W +{ +} def +/` +{ + /_i save ddef + clipForward? + { + nulldevice + } if + 6 1 roll 4 npop + concat pop + userdict begin + /showpage + { + } def + 0 setgray + 0 setlinecap + 1 setlinewidth + 0 setlinejoin + 10 setmiterlimit + [] 0 setdash + /setstrokeadjust where {pop false setstrokeadjust} if + newpath + 0 setgray + false setoverprint +} def +/~ +{ + end + _i restore +} def +/_rgbtocmyk +{ + 3 + { + 1 exch sub 3 1 roll + } repeat + 3 copy 1 4 1 roll + 3 + { + 3 index 2 copy gt + { + exch + } if + pop 4 1 roll + } repeat + pop pop pop + 4 1 roll + 3 + { + 3 index sub + 3 1 roll + } repeat + 4 -1 roll +} def +/setrgbfill +{ + _rgbf astore pop + /_fc + { + _lp /fill ne + { + _of setoverprint + _rgbf aload pop setrgbcolor + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + hvashow + } ddef + /_pjsf + { + _fc + hvawidthshow + } ddef + /_lp /none ddef +} def +/setrgbstroke +{ + _rgbs astore pop + /_sc + { + _lp /stroke ne + { + _os setoverprint + _rgbs aload pop setrgbcolor + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/O +{ + 0 ne + /_of exch ddef + /_lp /none ddef +} def +/R +{ + 0 ne + /_os exch ddef + /_lp /none ddef +} def +/g +{ + /_gf exch ddef + /_fc + { + _lp /fill ne + { + _of setoverprint + _gf setgray + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + hvashow + } ddef + /_pjsf + { + _fc + hvawidthshow + } ddef + /_lp /none ddef +} def +/G +{ + /_gs exch ddef + /_sc + { + _lp /stroke ne + { + _os setoverprint + _gs setgray + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/k +{ + _cf astore pop + /_fc + { + _lp /fill ne + { + _of setoverprint + _cf aload pop setcmykcolor + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + hvashow + } ddef + /_pjsf + { + _fc + hvawidthshow + } ddef + /_lp /none ddef +} def +/K +{ + _cs astore pop + /_sc + { + _lp /stroke ne + { + _os setoverprint + _cs aload pop setcmykcolor + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/Xa +{ + _?cmyk { + 3 npop k + }{ + setrgbfill 4 npop + } ifelse +} def +/XA +{ + _?cmyk { + 3 npop K + }{ + setrgbstroke 4 npop + } ifelse +} def +/Xs +{ + /_gf exch ddef + 5 npop + /_fc + { + _lp /fill ne + { + _of setoverprint + _gf setAIseparationgray + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + hvashow + } ddef + /_pjsf + { + _fc + hvawidthshow + } ddef + /_lp /none ddef +} def +/XS +{ + /_gs exch ddef + 5 npop + /_sc + { + _lp /stroke ne + { + _os setoverprint + _gs setAIseparationgray + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/Xx +{ + exch + /_gf exch ddef + 0 eq { + findcmykcustomcolor + }{ + _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse + { + 4 1 roll 3 npop + findcmykcustomcolor + }{ + 8 -4 roll 4 npop + findrgbcustomcolor + } ifelse + } ifelse + /_if exch ddef + /_fc + { + _lp /fill ne + { + _of setoverprint + _if _gf 1 exch sub setcustomcolor + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + hvashow + } ddef + /_pjsf + { + _fc + hvawidthshow + } ddef + /_lp /none ddef +} def +/XX +{ + exch + /_gs exch ddef + 0 eq { + findcmykcustomcolor + }{ + _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse + { + 4 1 roll 3 npop + findcmykcustomcolor + }{ + 8 -4 roll 4 npop + findrgbcustomcolor + } ifelse + } ifelse + /_is exch ddef + /_sc + { + _lp /stroke ne + { + _os setoverprint + _is _gs 1 exch sub setcustomcolor + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/x +{ + /_gf exch ddef + findcmykcustomcolor + /_if exch ddef + /_fc + { + _lp /fill ne + { + _of setoverprint + _if _gf 1 exch sub setcustomcolor + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + hvashow + } ddef + /_pjsf + { + _fc + hvawidthshow + } ddef + /_lp /none ddef +} def +/X +{ + /_gs exch ddef + findcmykcustomcolor + /_is exch ddef + /_sc + { + _lp /stroke ne + { + _os setoverprint + _is _gs 1 exch sub setcustomcolor + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/XK +{ + 3 -1 roll pop + 0 eq + { + 1 exch sub + 3 {dup 3 1 roll mul 5 1 roll} repeat + mul 4 1 roll + K + } + { + 1 exch sub 4 1 roll + 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat + 4 -1 roll pop + XA + } ifelse +} def +/Xk +{ + 3 -1 roll pop + 0 eq + { + 1 exch sub + 3 {dup 3 1 roll mul 5 1 roll} repeat + mul 4 1 roll + k + } + { + 1 exch sub 4 1 roll + 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat + 4 -1 roll pop + Xa + } ifelse +} def +/A +{ + pop +} def +/annotatepage +{ +userdict /annotatepage 2 copy known {get exec} {pop pop} ifelse +} def +/XT { + pop pop +} def +/Xt { + pop +} def +/discard +{ + save /discardSave exch store + discardDict begin + /endString exch store + gt38? + { + 2 add + } if + load + stopped + pop + end + discardSave restore +} bind def +userdict /discardDict 7 dict dup begin +put +/pre38Initialize +{ + /endStringLength endString length store + /newBuff buffer 0 endStringLength getinterval store + /newBuffButFirst newBuff 1 endStringLength 1 sub getinterval store + /newBuffLast newBuff endStringLength 1 sub 1 getinterval store +} def +/shiftBuffer +{ + newBuff 0 newBuffButFirst putinterval + newBuffLast 0 + currentfile read not + { + stop + } if + put +} def +0 +{ + pre38Initialize + mark + currentfile newBuff readstring exch pop + { + { + newBuff endString eq + { + cleartomark stop + } if + shiftBuffer + } loop + } + { + stop + } ifelse +} def +1 +{ + pre38Initialize + /beginString exch store + mark + currentfile newBuff readstring exch pop + { + { + newBuff beginString eq + { + /layerCount dup load 1 add store + } + { + newBuff endString eq + { + /layerCount dup load 1 sub store + layerCount 0 eq + { + cleartomark stop + } if + } if + } ifelse + shiftBuffer + } loop + } if +} def +2 +{ + mark + { + currentfile buffer {readline} stopped { + % assume error was due to overfilling the buffer + }{ + not + { + stop + } if + endString eq { + cleartomark stop + } if + }ifelse + } loop +} def +3 +{ + /beginString exch store + /layerCnt 1 store + mark + { + currentfile buffer {readline} stopped { + % assume error was due to overfilling the buffer + }{ + not + { + stop + } if + dup beginString eq + { + pop /layerCnt dup load 1 add store + } + { + endString eq + { + layerCnt 1 eq + { + cleartomark stop + } + { + /layerCnt dup load 1 sub store + } ifelse + } if + } ifelse + }ifelse + } loop +} def +end +userdict /clipRenderOff 15 dict dup begin +put +{ + /n /N /s /S /f /F /b /B +} +{ + { + _doClip 1 eq + { + /_doClip 0 ddef _eo {eoclip} {clip} ifelse + } if + newpath + } def +} forall +/Tr /pop load def +/Bb {} def +/BB /pop load def +/Bg {12 npop} def +/Bm {6 npop} def +/Bc /Bm load def +/Bh {4 npop} def +end +/Lb +{ + 6 npop + 7 2 roll + 5 npop + 0 eq + { + 0 eq + { + (%AI5_BeginLayer) 1 (%AI5_EndLayer--) discard + } + { + + /clipForward? true def + + /Tx /pop load def + /Tj /pop load def + + currentdict end clipRenderOff begin begin + } ifelse + } + { + 0 eq + { + save /discardSave exch store + } if + } ifelse +} bind def +/LB +{ + discardSave dup null ne + { + restore + } + { + pop + clipForward? + { + currentdict + end + end + begin + + /clipForward? false ddef + } if + } ifelse +} bind def +/Pb +{ + pop pop + 0 (%AI5_EndPalette) discard +} bind def +/Np +{ + 0 (%AI5_End_NonPrinting--) discard +} bind def +/Ln /pop load def +/Ap +/pop load def +/Ar +{ + 72 exch div + 0 dtransform dup mul exch dup mul add sqrt + dup 1 lt + { + pop 1 + } if + setflat +} def +/Mb +{ + q +} def +/Md +{ +} def +/MB +{ + Q +} def +/nc 4 dict def +nc begin +/setgray +{ + pop +} bind def +/setcmykcolor +{ + 4 npop +} bind def +/setrgbcolor +{ + 3 npop +} bind def +/setcustomcolor +{ + 2 npop +} bind def +currentdict readonly pop +end +/XP +{ + 4 npop +} bind def +/XD +{ + pop +} bind def +end +setpacking +%%EndResource +%%BeginResource: procset Adobe_cshow 2.0 8 +%%Title: (Writing System Operators) +%%Version: 2.0 8 +%%CreationDate: (1/23/89) () +%%Copyright: ((C) 1992-1996 Adobe Systems Incorporated All Rights Reserved) +currentpacking true setpacking +userdict /Adobe_cshow 14 dict dup begin put +/initialize +{ + Adobe_cshow begin + Adobe_cshow + { + dup xcheck + { + bind + } if + pop pop + } forall + end + Adobe_cshow begin +} def +/terminate +{ +currentdict Adobe_cshow eq + { + end + } if +} def +/cforall +{ + /_lobyte 0 ddef + /_hibyte 0 ddef + /_cproc exch ddef + /_cscript currentfont /FontScript known { currentfont /FontScript get } { -1 } ifelse ddef + { + /_lobyte exch ddef + _hibyte 0 eq + _cscript 1 eq + _lobyte 129 ge _lobyte 159 le and + _lobyte 224 ge _lobyte 252 le and or and + _cscript 2 eq + _lobyte 161 ge _lobyte 254 le and and + _cscript 3 eq + _lobyte 161 ge _lobyte 254 le and and + _cscript 25 eq + _lobyte 161 ge _lobyte 254 le and and + _cscript -1 eq + or or or or and + { + /_hibyte _lobyte ddef + } + { + _hibyte 256 mul _lobyte add + _cproc + /_hibyte 0 ddef + } ifelse + } forall +} def +/cstring +{ + dup 256 lt + { + (s) dup 0 4 3 roll put + } + { + dup 256 idiv exch 256 mod + (hl) dup dup 0 6 5 roll put 1 4 3 roll put + } ifelse +} def +/clength +{ + 0 exch + { 256 lt { 1 } { 2 } ifelse add } cforall +} def +/hawidthshow +{ + { + dup cstring + show + _hvax _hvay rmoveto + _hvwb eq { _hvcx _hvcy rmoveto } if + } cforall +} def +/vawidthshow +{ + { + dup 255 le + _charorientation 1 eq + and + { + -90 rotate + 0 _fontRotateAdjust rmoveto + cstring + _hvcx _hvcy _hvwb _hvax _hvay 6 -1 roll awidthshow + 0 _fontRotateAdjust neg rmoveto + 90 rotate + } + { + currentpoint + _fontHeight sub + exch _hvay sub exch _hvax sub + 2 index _hvwb eq { exch _hvcy sub exch _hvcx sub } if + 3 2 roll + cstring + dup stringwidth pop 2 div neg _fontAscent neg rmoveto + show + moveto + } ifelse + } cforall +} def +/hvawidthshow +{ + 6 1 roll + /_hvay exch ddef + /_hvax exch ddef + /_hvwb exch ddef + /_hvcy exch ddef + /_hvcx exch ddef + _lineorientation 0 eq { hawidthshow } { vawidthshow } ifelse +} def +/hvwidthshow +{ + 0 0 3 -1 roll hvawidthshow +} def +/hvashow +{ + 0 0 0 6 -3 roll hvawidthshow +} def +/hvshow +{ + 0 0 0 0 0 6 -1 roll hvawidthshow +} def +currentdict readonly pop end +setpacking +%%EndResource +%%BeginResource: procset Adobe_shading_AI8 1.0 0 +%%Title: (Adobe Illustrator 8 Shading Procset) +%%Version: 1.0 0 +%%CreationDate: (12/17/97) () +%%Copyright: ((C) 1987-1997 Adobe Systems Incorporated All Rights Reserved) +userdict /defaultpacking currentpacking put true setpacking +userdict /Adobe_shading_AI8 10 dict dup begin put +/initialize { + Adobe_shading_AI8 begin + Adobe_shading_AI8 bdprocs + Mesh /initialize get exec +} def +/terminate { + currentdict Adobe_shading_AI8 eq { + end + } if +} def +/bdprocs { + { + dup xcheck 1 index type /arraytype eq and { + bind + } if + pop pop + } forall +} def +/X! {pop} def +/X# {pop pop} def +/Mesh 40 dict def +Mesh begin +/initialize { + Mesh bdprocs + Mesh begin + /emulate? /AI8MeshEmulation where { + pop AI8MeshEmulation + }{ + systemdict /shfill known not + } ifelse def + end +} def +/bd { + shadingdict begin +} def +/paint { + emulate? { + end + }{ + /_lp /none ddef _fc /_lp /none ddef + + /AIColorSpace AIColorSpace tocolorspace store + /ColorSpace AIColorSpace topsspace store + + version_ge_3010.106 not systemdict /setsmoothness known and { + 0.0001 setsmoothness + } if + + composite? { + /DataSource getdatasrc def + Matrix concat + currentdict end + shfill + }{ + AIColorSpace makesmarks AIPlateList markingplate and not isoverprint and { + end + }{ + /ColorSpace /DeviceGray store + /Decode [0 1 0 1 0 1] store + /DataSource getplatesrc def + Matrix concat + currentdict end + shfill + } ifelse + } ifelse + } ifelse +} def +/shadingdict 12 dict def +shadingdict begin + /ShadingType 6 def + /BitsPerCoordinate 16 def + /BitsPerComponent 8 def + /BitsPerFlag 8 def +end +/datafile null def +/databuf 256 string def +/dataptr 0 def +/srcspace null def +/srcchannels 0 def +/dstchannels 0 def +/dstplate 0 def +/srctodstcolor null def +/getplatesrc { + /srcspace AIColorSpace store + /srcchannels AIColorSpace getnchannels store + /dstchannels 1 store + /dstplate getplateindex store + /srctodstcolor srcspace makesmarks { + dstplate 4 eq { + {1 exch sub} + }{ + {srcspace tocmyk 3 dstplate sub index 1 exch sub 5 1 roll 4 {pop} repeat} + } ifelse + }{ + {srcchannels {pop} repeat 1} + } ifelse store + /datafile getdatasrc store + /rdpatch168 load DataLength () /SubFileDecode filter +} def +/getdatasrc { + /rdcmntline load /ASCII85Decode filter +} def +/rdpatch168 { + /dataptr 0 store + 49 rdcount + 4 { + dup {pop srcchannels getint8} if + dup {pop srctodstcolor dstchannels putint8 true} if + } repeat + {databuf 0 dataptr getinterval}{()} ifelse +} def +/rdpatch3216 { + /dataptr 0 store + 97 rdcount + 4 { + dup {pop srcchannels getint16} if + dup {pop srctodstcolor dstchannels putint16 true} if + } repeat + {databuf 0 dataptr getinterval}{()} ifelse +} def +/rdcount { + dup 0 gt { + datafile databuf dataptr 4 -1 roll getinterval readstring + exch length dataptr add /dataptr exch store + }{ + true + } ifelse +} def +/getint8 { + mark true 3 -1 roll + { + dup {pop datafile read} if + dup {pop 255 div true} if + } repeat + { + counttomark 1 add -1 roll pop true + }{ + cleartomark false + } ifelse +} def +/putint8 { + dup dataptr add /dataptr exch store + dataptr exch + { + 1 sub exch + 255 mul cvi + databuf 2 index + 3 -1 roll put + } repeat + pop +} def +/getint16 { + mark true 3 -1 roll + { + dup {pop datafile read} if + dup {pop 256 mul datafile read} if + dup {pop add 65535 div true} if + } repeat + { + counttomark 1 add -1 roll pop true + }{ + cleartomark false + } ifelse +} def +/putint16 { + dup 2 mul dataptr add /dataptr exch store + dataptr exch + { + 2 sub exch + 65535 mul cvi dup + 256 idiv databuf 3 index 3 -1 roll put + 256 mod databuf 2 index 1 add 3 -1 roll put + } repeat + pop +} def +/srcbuf 256 string def +/rdcmntline { + currentfile srcbuf readline pop + (%) anchorsearch {pop} if +} def +/getplateindex { + 0 [cyan? magenta? yellow? black? customColor?] {{exit} if 1 add} forall +} def +/aicsarray 4 array def +/aicsaltvals 4 array def +/aicsaltcolr aicsaltvals def +/tocolorspace { + dup type /arraytype eq { + mark exch aload pop + aicsarray 0 3 -1 roll put + aicsarray 1 3 -1 roll put + dup aicsarray 2 3 -1 roll put + gettintxform aicsarray 3 3 -1 roll put + counttomark aicsaltvals 0 3 -1 roll getinterval /aicsaltcolr exch store + aicsaltcolr astore pop pop + aicsarray + } if +} def +/subtintxform {aicsaltcolr {1 index mul exch} forall pop} def +/addtintxform {aicsaltcolr {1 sub 1 index mul 1 add exch} forall pop} def +/gettintxform { + /DeviceRGB eq {/addtintxform}{/subtintxform} ifelse load +} def +/getnchannels { + dup type /arraytype eq {0 get} if + colorspacedict exch get begin Channels end +} def +/makesmarks { + composite? { + pop true + }{ + dup dup type /arraytype eq {0 get} if + colorspacedict exch get begin MarksPlate end + } ifelse +} def +/markingplate { + composite? { + pop true + }{ + dup type /arraytype eq { + dup length getplateindex gt {getplateindex get}{pop false} ifelse + } if + } ifelse +} def +/tocmyk { + dup dup type /arraytype eq {0 get} if + colorspacedict exch get begin ToCMYK end +} def +/topsspace { + dup dup type /arraytype eq {0 get} if + colorspacedict exch get begin ToPSSpace end +} def +/colorspacedict 5 dict dup begin + /DeviceGray 4 dict dup begin + /Channels 1 def + /MarksPlate {pop black?} def + /ToCMYK {pop 1 exch sub 0 0 0 4 -1 roll} def + /ToPSSpace {} def + end def + /DeviceRGB 4 dict dup begin + /Channels 3 def + /MarksPlate {pop isCMYKSep?} def + /ToCMYK {pop _rgbtocmyk} def + /ToPSSpace {} def + end def + /DeviceCMYK 4 dict dup begin + /Channels 4 def + /MarksPlate {pop isCMYKSep?} def + /ToCMYK {pop} def + /ToPSSpace {} def + end def + /Separation 4 dict dup begin + /Channels 1 def + /MarksPlate { + /findcmykcustomcolor where { + pop dup 1 exch ToCMYK 5 -1 roll 1 get + findcmykcustomcolor 1 setcustomcolor + systemdict /currentgray get exec + 1 ne + }{ + pop false + } ifelse + } def + /ToCMYK { + dup 2 get mark exch 4 2 roll + 3 get exec + counttomark -1 roll tocmyk + 5 -1 roll pop + } def + /ToPSSpace {} def + end def + /Process 4 dict dup begin + /Channels 1 def + /MarksPlate { + isCMYKSep? { + 1 exch ToCMYK 4 array astore getplateindex get 0 ne + }{ + pop false + } ifelse + } def + /ToCMYK { + dup 2 get mark exch 4 2 roll + 3 get exec + counttomark -1 roll tocmyk + 5 -1 roll pop + } def + /ToPSSpace { + 4 array copy dup 0 /Separation put + } def + end def +end def +/isoverprint { + /currentoverprint where {pop currentoverprint}{_of} ifelse +} def +/version_ge_3010.106 { + version {cvr} stopped { + pop + false + }{ + 3010.106 ge + } ifelse +} def +end +end +defaultpacking setpacking +%%EndResource +%%EndProlog +%%BeginSetup +userdict /_useSmoothShade false put +userdict /_aicmykps false put +userdict /_forceToCMYK false put +Adobe_level2_AI5 /initialize get exec +Adobe_cshow /initialize get exec +Adobe_ColorImage_AI6 /initialize get exec +Adobe_shading_AI8 /initialize get exec +Adobe_Illustrator_AI5 /initialize get exec +%AI5_Begin_NonPrinting +Np +%AI3_BeginPattern: (Brick) +(Brick) 0 0 72 72 [ +%AI3_Tile +(0 O 0 R 0.3 0.85 0.85 0 k + 0.3 0.85 0.85 0 K +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +0 0 m +0 72 L +72 72 L +72 0 L +0 0 L +f %AI6_EndPatternLayer +) & +(0 O 0 R 1 g + 1 G +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 0.3 w 4 M []0 d %AI3_Note: 0 D +0 XR +0 68.4097 m +72 68.4097 l +S 0 61.209 m +72 61.209 L +S 0 54.0088 m +72 54.0088 L +S 0 46.8076 m +72 46.8076 L +S 0 39.6084 m +72 39.6084 L +S 0 32.4072 m +72 32.4072 L +S 0 25.207 m +72 25.207 L +S 0 18.0059 m +72 18.0059 L +S 0 10.8057 m +72 10.8057 L +S 0 3.6064 m +72 3.6064 L +S 68.4102 68.4097 m +68.4102 61.2217 l +S 54.0098 68.4097 m +54.0098 61.2217 L +S 39.6094 68.4097 m +39.6094 61.2217 L +S 25.21 68.4097 m +25.21 61.2217 L +S 10.8105 68.4097 m +10.8105 61.2217 L +S 68.4102 53.9717 m +68.4102 46.7842 l +S 54.0098 53.9717 m +54.0098 46.7842 L +S 39.6094 53.9717 m +39.6094 46.7842 L +S 25.21 53.9717 m +25.21 46.7842 L +S 10.8105 53.9717 m +10.8105 46.7842 L +S 68.4102 39.5967 m +68.4102 32.4092 l +S 54.0098 39.5967 m +54.0098 32.4092 L +S 39.6094 39.5967 m +39.6094 32.4092 L +S 25.21 39.5967 m +25.21 32.4092 L +S 10.8105 39.5967 m +10.8105 32.4092 L +S 68.4102 25.2217 m +68.4102 18.0342 l +S 54.0098 25.2217 m +54.0098 18.0342 L +S 39.6094 25.2217 m +39.6094 18.0342 L +S 25.21 25.2217 m +25.21 18.0342 L +S 10.8105 25.2217 m +10.8105 18.0342 L +S 68.4102 10.7842 m +68.4102 3.5967 l +S 54.0098 10.7842 m +54.0098 3.5967 L +S 39.6094 10.7842 m +39.6094 3.5967 L +S 25.21 10.7842 m +25.21 3.5967 L +S 10.8105 10.7842 m +10.8105 3.5967 L +S 61.1973 3.5967 m +61.1973 0 L +S 46.7969 3.5967 m +46.7969 0 L +S 32.3965 3.5967 m +32.3965 0 L +S 17.9971 3.5967 m +17.9971 0 L +S 3.5967 3.5967 m +3.5967 0 l +S 61.1973 18.0342 m +61.1973 10.8467 L +S 46.7969 18.0342 m +46.7969 10.8467 L +S 32.3965 18.0342 m +32.3965 10.8467 L +S 17.9971 18.0342 m +17.9971 10.8467 L +S 3.5967 18.0342 m +3.5967 10.8467 l +S 61.1973 32.4092 m +61.1973 25.2217 L +S 46.7969 32.4092 m +46.7969 25.2217 L +S 17.9971 32.4092 m +17.9971 25.2217 L +S 3.5967 32.4092 m +3.5967 25.2217 l +S 61.1973 46.7842 m +61.1973 39.5967 L +S 46.7969 46.7842 m +46.7969 39.5967 L +S 32.3965 46.7842 m +32.3965 39.5967 L +S 17.9971 46.7842 m +17.9971 39.5967 L +S 3.5967 46.7842 m +3.5967 39.5967 l +S 61.1973 61.2217 m +61.1973 54.0347 L +S 46.7969 61.2217 m +46.7969 54.0347 L +S 32.3965 61.2217 m +32.3965 54.0347 L +S 17.9971 61.2217 m +17.9971 54.0347 L +S 3.5967 61.2217 m +3.5967 54.0347 l +S 61.1973 71.959 m +61.1973 68.4717 L +S 46.7969 71.959 m +46.7969 68.4717 L +S 32.3965 71.959 m +32.3965 68.4717 L +S 17.9971 71.959 m +17.9971 68.4717 L +S 3.5967 71.959 m +3.5967 68.4717 l +S 32.3965 32.4092 m +32.3965 25.2217 L +S %AI6_EndPatternLayer +) & +] E +%AI3_EndPattern +%AI3_BeginPattern: (Confetti) +(Confetti) 4.85 3.617 76.85 75.617 [ +%AI3_Tile +(0 O 0 R 1 g + 1 G +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +4.85 3.617 m +4.85 75.617 L +76.85 75.617 L +76.85 3.617 L +4.85 3.617 L +f %AI6_EndPatternLayer +) & +(0 O 0 R 0 g + 0 G +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 0.3 w 4 M []0 d %AI3_Note: 0 D +0 XR +10.6 64.867 m +7.85 62.867 l +S 9.1 8.617 m +6.85 6.867 l +S 78.1 68.617 m +74.85 67.867 l +S 76.85 56.867 m +74.35 55.117 l +S 79.6 51.617 m +76.6 51.617 l +S 76.35 44.117 m +73.6 45.867 l +S 78.6 35.867 m +76.6 34.367 l +S 76.1 23.867 m +73.35 26.117 l +S 78.1 12.867 m +73.85 13.617 l +S 68.35 14.617 m +66.1 12.867 l +S 76.6 30.617 m +73.6 30.617 l +S 62.85 58.117 m +60.956 60.941 l +S 32.85 59.617 m +31.196 62.181 l +S 47.891 64.061 m +49.744 66.742 l +S 72.814 2.769 m +73.928 5.729 l +S 67.976 2.633 m +67.35 5.909 l +S 61.85 27.617 m +59.956 30.441 l +S 53.504 56.053 m +51.85 58.617 l +S 52.762 1.779 m +52.876 4.776 l +S 45.391 5.311 m +47.244 7.992 l +S 37.062 3.375 m +35.639 5.43 l +S 55.165 34.828 m +57.518 37.491 l +S 20.795 3.242 m +22.12 5.193 l +S 14.097 4.747 m +15.008 8.965 l +S 9.736 1.91 m +8.073 4.225 l +S 31.891 5.573 m +32.005 8.571 l +S 12.1 70.367 m +15.6 68.867 l +S 9.35 54.867 m +9.6 58.117 l +S 12.85 31.867 m +14.35 28.117 l +S 10.1 37.367 m +12.35 41.117 l +S 34.1 71.117 m +31.85 68.617 l +S 38.35 71.117 m +41.6 68.367 l +S 55.1 71.117 m +58.35 69.117 l +S 57.35 65.117 m +55.35 61.867 l +S 64.35 66.367 m +69.35 68.617 l +S 71.85 62.867 m +69.35 61.117 l +S 23.6 70.867 m +23.6 67.867 l +S 20.6 65.867 m +17.35 65.367 l +S 24.85 61.367 m +25.35 58.117 l +S 25.85 65.867 m +29.35 66.617 l +S 14.1 54.117 m +16.85 56.117 l +S 12.35 11.617 m +12.6 15.617 l +S 12.1 19.867 m +14.35 22.367 l +S 26.1 9.867 m +23.6 13.367 l +S 34.6 47.117 m +32.1 45.367 l +S 62.6 41.867 m +59.85 43.367 l +S 31.6 35.617 m +27.85 36.367 l +S 36.35 26.117 m +34.35 24.617 l +S 33.85 14.117 m +31.1 16.367 l +S 37.1 9.867 m +35.1 11.117 l +S 34.35 20.867 m +31.35 20.867 l +S 44.6 56.617 m +42.1 54.867 l +S 47.35 51.367 m +44.35 51.367 l +S 44.1 43.867 m +41.35 45.617 l +S 43.35 33.117 m +42.6 30.617 l +S 43.85 23.617 m +41.1 25.867 l +S 44.35 15.617 m +42.35 16.867 l +S 67.823 31.1 m +64.823 31.1 l +S 27.1 32.617 m +29.6 30.867 l +S 31.85 55.117 m +34.85 55.117 l +S 19.6 40.867 m +22.1 39.117 l +S 16.85 35.617 m +19.85 35.617 l +S 20.1 28.117 m +22.85 29.867 l +S 52.1 42.617 m +54.484 44.178 l +S 52.437 50.146 m +54.821 48.325 l +S 59.572 54.133 m +59.35 51.117 l +S 50.185 10.055 m +53.234 9.928 l +S 51.187 15.896 m +53.571 14.075 l +S 58.322 19.883 m +59.445 16.823 l +S 53.1 32.117 m +50.6 30.367 l +S 52.85 24.617 m +49.6 25.617 l +S 61.85 9.117 m +59.1 10.867 l +S 69.35 34.617 m +66.6 36.367 l +S 67.1 23.617 m +65.1 22.117 l +S 24.435 46.055 m +27.484 45.928 l +S 25.437 51.896 m +27.821 50.075 l +S 62.6 47.117 m +65.321 46.575 l +S 19.85 19.867 m +20.35 16.617 l +S 21.85 21.867 m +25.35 22.617 l +S 37.6 62.867 m +41.6 62.117 l +S 38.323 42.1 m +38.823 38.6 l +S 69.35 52.617 m +66.85 53.867 l +S 14.85 62.117 m +18.1 59.367 l +S 9.6 46.117 m +7.1 44.367 l +S 20.6 51.617 m +18.6 50.117 l +S 46.141 70.811 m +47.994 73.492 l +S 69.391 40.561 m +71.244 43.242 l +S 38.641 49.311 m +39.35 52.117 l +S 25.141 16.811 m +25.85 19.617 l +S 36.6 32.867 m +34.6 31.367 l +S 6.1 68.617 m +2.85 67.867 l +S 4.85 56.867 m +2.35 55.117 l +S 7.6 51.617 m +4.6 51.617 l +S 6.6 35.867 m +4.6 34.367 l +S 6.1 12.867 m +1.85 13.617 l +S 4.6 30.617 m +1.6 30.617 l +S 72.814 74.769 m +73.928 77.729 l +S 67.976 74.633 m +67.35 77.909 l +S 52.762 73.779 m +52.876 76.776 l +S 37.062 75.375 m +35.639 77.43 l +S 20.795 75.242 m +22.12 77.193 l +S 9.736 73.91 m +8.073 76.225 l +S 10.1 23.617 m +6.35 24.367 l +S 73.217 18.276 m +71.323 21.1 l +S 28.823 39.6 m +29.505 42.389 l +S 49.6 38.617 m +47.6 37.117 l +S 60.323 73.6 m +62.323 76.6 l +S 60.323 1.6 m +62.323 4.6 l +S %AI6_EndPatternLayer +) & +] E +%AI3_EndPattern +%AI3_BeginPattern: (Leaves - Fall ) +(Leaves - Fall ) 0 0 64.0781 78.9336 [ +%AI3_Tile +(0 O 0 R 0.05 0.2 1 0 k + 0.05 0.2 1 0 K +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +64.0781 78.9336 m +64.0781 0 L +0 0 L +0 78.9336 L +64.0781 78.9336 L +f %AI6_EndPatternLayer +) & +(0 O 0 R 0.83 0 1 0 k + 0.83 0 1 0 K +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 1 D +0 XR +29.7578 0.9902 m +30.4346 1.1914 30.7246 1.3428 V +29.2559 4.0547 33.707 8.3359 34.627 9.0762 C +35.2275 8.8506 35.3477 6.3184 34.6699 4.9805 C +35.5137 5.1035 37.7031 3.7256 38.4609 2.4365 C +38.5254 3.125 40.0957 6.0664 40.9219 6.4434 C +40.002 6.8408 39.3359 8.3135 38.5742 9.7617 C +39.5957 9.9287 40.9961 9.0078 42.4668 8.1025 C +42.9814 8.9043 44.3555 9.875 45.6143 10.3916 C +44.5264 11.0781 44.0313 11.8203 43.5352 13.2793 C +42.4922 12.7139 40.3057 12.5645 39.7764 12.8516 C +40.291 13.9648 42.5371 14.5078 43.2676 14.4551 C +43.0137 15.3164 42.8652 17.4697 43.0391 20.0625 C +41.3789 18.7461 39.834 17.4297 38.1738 17.4883 C +38.4434 16.0664 37.8076 14.2607 37.4307 13.7676 C +36.8574 14.5117 36.4463 15.3389 36.8008 17.3164 C +35.3486 17.8008 34.1113 18.3467 32.7373 19.6045 C +32.7373 17.7734 32.166 16.5723 31.2969 15.2959 C +32.5576 14.8076 33.8301 13.6045 33.8252 12.5664 C +32.9775 12.7178 31.2852 13.4619 30.793 14.4551 C +30.0742 13.707 28.3906 12.3984 26.7871 12.3945 C +27.9746 11.5391 28.8945 10.5059 28.9893 8.5938 C +30.2422 9.5645 32.6953 10.1797 34.0752 9.582 C +29.2344 5.3457 29.7031 2.3125 29.7578 0.9902 C +f 13.8525 29.9844 m +13.3281 29.5127 13.1309 29.25 V +15.623 27.4326 13.3691 21.6074 12.8555 20.5439 C +12.2168 20.4883 10.8096 23.2285 10.8457 24.7266 C +9.7129 23.9707 8.0488 24.0918 6.4463 24.3779 C +7.0186 23.2891 6.6172 21.3447 5.8164 20.5439 C +6.8184 20.5801 8.1699 19.8652 9.4785 18.8838 C +8.6436 18.0645 6.8164 18.2246 4.9004 18.8838 C +4.9004 17.5107 4.0781 15.7734 3.2412 14.5918 C +4.5576 14.6484 5.7031 13.9629 6.5605 12.9316 C +7.2256 14.5 9.2598 15.6133 10.166 15.5645 C +10.1826 14.1992 8.6094 12.1094 7.5879 11.7109 C +8.1875 11.041 9.207 9.5107 10.166 7.0947 C +10.9648 9.0205 12.1348 10.2627 13.3672 11.1953 C +12.2256 12.7578 12.3994 13.6289 12.7988 15.1074 C +13.541 14.5664 14.5723 14.1338 14.7441 12.1309 C +16.4609 12.416 17.5957 12.3447 19.0938 11.4434 C +18.6387 13.1055 18.6348 14.707 18.9551 16.4063 C +17.1055 16.2666 15.5449 16.4795 14.5156 17.9688 C +15.3457 18.1953 17.6055 18.2549 18.4795 17.3223 C +18.8066 18.3047 19.7012 19.7109 21.1475 20.4043 C +19.707 20.6641 18.7227 21.7637 17.8135 23.4492 C +17.1006 22.0332 14.873 20.3691 13.3711 20.3145 C +15.373 24.3779 15.373 27.2959 13.8525 29.9844 C +f 41.2324 26.0742 m +41.5518 26.7021 41.7549 26.959 V +44.1523 25.0176 48.958 28.3262 49.8535 29.0957 C +49.7432 29.7266 47.6182 30.8643 45.9004 29.834 C +46.3408 31.123 45.4395 33.084 44.2402 34.126 C +45.9805 34.0254 48.126 35.3867 48.6484 36.1289 C +48.8701 35.1514 50.0527 33.8809 51.3379 32.8672 C +51.6895 33.8398 50.9941 35.958 50.0781 37.5605 C +51.3125 38.0605 52.4248 38.9912 52.8828 40.25 C +53.3398 38.9336 54.3428 38.2598 55.6875 37.5039 C +54.5273 36.0762 53.7471 33.9023 54.0273 33.0391 C +55.3496 33.374 56.9209 36.0918 57.0439 37.1816 C +57.9189 36.415 59.4727 35.7285 62.0537 35.4219 C +60.3535 34.3438 59.9902 32.3516 59.4063 30.9219 C +58.2588 31.3682 56.0898 31.4277 55.1152 30.8643 C +55.8281 30.2852 57.168 29.7344 59.1777 29.7207 C +59.1777 28.1758 59.6406 27.043 60.8945 25.8281 C +59.1719 25.8418 57.0723 25.3555 55.5762 24.9629 C +55.3281 26.292 54.4844 27.8887 53.3398 28.2891 C +53.334 27.4277 53.5996 25.1797 54.4844 24.5117 C +53.6201 23.9443 52.3672 22.5674 51.9102 20.8496 C +51.2881 22.1758 50.4268 23.4805 48.5645 23.9238 C +49.749 24.9766 50.584 26.9941 50.25 28.4609 C +45.1973 24.4785 42.5215 25.7773 41.2324 26.0742 C +f 27.7578 38.7324 m +28.4346 38.9316 28.7246 39.084 V +27.2559 41.7969 31.707 46.0776 32.627 46.8169 C +33.2275 46.5918 33.3477 44.0586 32.6699 42.7227 C +33.5137 42.8457 35.7031 41.4678 36.4609 40.1787 C +36.5254 40.8652 38.0957 43.8066 38.9219 44.1846 C +38.002 44.582 37.3359 46.0547 36.5742 47.5039 C +37.5957 47.6709 38.9961 46.7485 40.4668 45.8438 C +40.9814 46.6445 42.3555 47.6177 43.6143 48.1328 C +42.5264 48.8198 42.0313 49.5615 41.5352 51.0205 C +40.4922 50.4556 38.3057 50.3057 37.7764 50.5938 C +38.291 51.7056 40.5371 52.2485 41.2676 52.1958 C +41.0137 53.0576 40.8652 55.2109 41.0391 57.8037 C +39.3789 56.4878 37.834 55.1719 36.1738 55.2285 C +36.4434 53.8076 35.8076 52.002 35.4307 51.5088 C +34.8574 52.2529 34.4463 53.0796 34.8008 55.0576 C +33.3486 55.5425 32.1113 56.0879 30.7373 57.3467 C +30.7373 55.5146 30.166 54.314 29.2969 53.0366 C +30.5576 52.5488 31.8301 51.3467 31.8252 50.3076 C +30.9775 50.46 29.2852 51.2036 28.793 52.1958 C +28.0742 51.4497 26.3906 50.1396 24.7871 50.1357 C +25.9746 49.2817 26.8945 48.2466 26.9893 46.335 C +28.2422 47.3057 30.6953 47.9209 32.0752 47.3237 C +27.2344 43.0869 27.7031 40.0547 27.7578 38.7324 C +f 13.5195 70.3916 m +12.9941 69.9209 12.7988 69.6587 V +15.2891 67.8418 13.0352 62.0146 12.5225 60.9517 C +11.8828 60.8955 10.4766 63.6367 10.5117 65.1348 C +9.3809 64.3789 7.7148 64.4995 6.1133 64.7856 C +6.6855 63.6987 6.2842 61.7529 5.4834 60.9517 C +6.4854 60.9878 7.8359 60.2729 9.1455 59.2925 C +8.3105 58.4717 6.4834 58.6338 4.5674 59.2925 C +4.5674 57.9189 3.7461 56.1816 2.9082 54.9995 C +4.2246 55.0576 5.3691 54.3706 6.2275 53.3408 C +6.8926 54.9097 8.9258 56.0215 9.832 55.9727 C +9.8496 54.6079 8.2764 52.5176 7.2539 52.1187 C +7.8545 51.4497 8.873 49.9189 9.832 47.5039 C +10.6309 49.4297 11.8008 50.6719 13.0342 51.6045 C +11.8926 53.1655 12.0664 54.0366 12.4648 55.5146 C +13.209 54.9746 14.2393 54.5415 14.4102 52.5386 C +16.127 52.8247 17.2637 52.7529 18.7598 51.8525 C +18.3057 53.5137 18.3027 55.1147 18.623 56.8149 C +16.7725 56.6748 15.2129 56.8887 14.1826 58.377 C +15.0117 58.6035 17.2725 58.6626 18.1465 57.731 C +18.4736 58.7129 19.3691 60.1187 20.8145 60.8125 C +19.375 61.0728 18.3896 62.1719 17.4805 63.8579 C +16.7676 62.4429 14.541 60.7769 13.0371 60.7227 C +15.041 64.7856 15.041 67.7046 13.5195 70.3916 C +f 41.2324 64.4824 m +41.5518 65.1113 41.7549 65.3682 V +44.1523 63.4272 48.958 66.7354 49.8535 67.5034 C +49.7432 68.1362 47.6182 69.2725 45.9004 68.2422 C +46.3408 69.5313 45.4395 71.4922 44.2402 72.5342 C +45.9805 72.4341 48.126 73.7954 48.6484 74.5371 C +48.8701 73.5601 50.0527 72.29 51.3379 71.2754 C +51.6895 72.249 50.9941 74.3662 50.0781 75.9683 C +51.3125 76.4692 52.4248 77.3994 52.8828 78.6582 C +53.3398 77.3423 54.3428 76.667 55.6875 75.9111 C +54.5273 74.4844 53.7471 72.3101 54.0273 71.4473 C +55.3496 71.7822 56.9209 74.5 57.0439 75.5903 C +57.9189 74.8232 59.4727 74.1372 62.0537 73.8311 C +60.3535 72.7534 59.9902 70.7612 59.4063 69.3301 C +58.2588 69.7773 56.0898 69.8364 55.1152 69.2725 C +55.8281 68.6934 57.168 68.1431 59.1777 68.1284 C +59.1777 66.583 59.6406 65.4512 60.8945 64.2373 C +59.1719 64.249 57.0723 63.7632 55.5762 63.3721 C +55.3281 64.7002 54.4844 66.2974 53.3398 66.6973 C +53.334 65.8364 53.5996 63.5874 54.4844 62.9214 C +53.6201 62.353 52.3672 60.9751 51.9102 59.2583 C +51.2881 60.583 50.4268 61.8882 48.5645 62.333 C +49.749 63.3862 50.584 65.4033 50.25 66.8691 C +45.1973 62.8872 42.5215 64.1851 41.2324 64.4824 C +f %AI6_EndPatternLayer +) & +] E +%AI3_EndPattern +%AI3_BeginPattern: (Stripes) +(Stripes) 8.45 4.6001 80.45 76.6001 [ +%AI3_Tile +(0 O 0 R 1 0.07 1 0 k + 1 0.07 1 0 K +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 3.6 w 4 M []0 d %AI3_Note: 0 D +0 XR +8.2 8.2 m +80.7 8.2 L +S 8.2 22.6001 m +80.7 22.6001 L +S 8.2 37.0002 m +80.7 37.0002 L +S 8.2 51.4 m +80.7 51.4 L +S 8.2 65.8001 m +80.7 65.8001 L +S 8.2 15.4 m +80.7 15.4 L +S 8.2 29.8001 m +80.7 29.8001 L +S 8.2 44.2 m +80.7 44.2 L +S 8.2 58.6001 m +80.7 58.6001 L +S 8.2 73.0002 m +80.7 73.0002 L +S %AI6_EndPatternLayer +) & +] E +%AI3_EndPattern +%AI5_End_NonPrinting-- +%AI5_Begin_NonPrinting +Np +%AI8_BeginBrushPattern +(New Pattern 1) +0 A +u 1 Ap +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7834.75 8587 m +-7834.75 8563 L +-7884.75 8563 L +-7884.75 8587 L +-7834.75 8587 L +n u 0 Ap +0 O +1 g +-7854.75 8585 m +-7866.96 8588.0527 -7875.4434 8578.0605 -7884.75 8570.9512 C +F -7844.75 8585 m +-7861.1279 8589.0947 -7870.8008 8569.7227 -7884.75 8565.3154 C +F -7884.75 8565 m +-7864.75 8560 -7854.75 8590 -7834.75 8585 C +F -7874.75 8565 m +-7858.3721 8560.9053 -7848.6992 8580.2773 -7834.75 8584.6846 C +F -7864.75 8565 m +-7852.54 8561.9473 -7844.0566 8571.9395 -7834.75 8579.0488 C +F -7844.75 8565 m +-7841.1279 8564.0947 -7837.835 8564.3408 -7834.75 8565.3154 C +F -7874.75 8585 m +-7878.3721 8585.9053 -7881.665 8585.6592 -7884.75 8584.6846 C +F -7844.7817 8565.125 m +-7850.9009 8563.6162 -7854.7817 8565.125 V +-7858.877 8563.6484 -7864.7817 8565.125 V +-7869.7446 8563.4492 -7874.7817 8565.125 V +-7880.7969 8563.5742 -7884.7817 8565.125 V +-7884.7817 8584.8096 L +-7881.6958 8585.7842 -7878.2969 8585.9912 -7874.3799 8584.9082 C +-7868.2134 8586.4912 -7864.4634 8584.9082 V +-7859.4634 8586.4912 -7854.3799 8584.8242 V +-7850.0474 8586.4082 -7844.3799 8584.9082 V +-7838.8799 8586.3242 -7834.7817 8585.125 V +-7834.7817 8565.4404 L +-7837.5254 8564.4287 -7840.6514 8563.9287 -7844.7817 8565.125 C +f 0 R +0 G +1 J 1 j 0.5 w -7864.75 8585 m +-7872.54 8586.9473 -7878.813 8583.585 -7884.75 8579.0488 C +S -7854.75 8585 m +-7866.96 8588.0527 -7875.4434 8578.0605 -7884.75 8570.9512 C +S -7844.75 8585 m +-7861.1279 8589.0947 -7870.8008 8569.7227 -7884.75 8565.3154 C +S -7884.75 8565 m +-7864.75 8560 -7854.75 8590 -7834.75 8585 C +S -7874.75 8565 m +-7858.3721 8560.9053 -7848.6992 8580.2773 -7834.75 8584.6846 C +S -7864.75 8565 m +-7852.54 8561.9473 -7844.0566 8571.9395 -7834.75 8579.0488 C +S -7854.75 8565 m +-7846.96 8563.0527 -7840.687 8566.415 -7834.75 8570.9512 C +S -7844.75 8565 m +-7841.1279 8564.0947 -7837.835 8564.3408 -7834.75 8565.3154 C +S -7874.75 8585 m +-7878.3721 8585.9053 -7881.665 8585.6592 -7884.75 8584.6846 C +S U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 2) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884 8586 m +-7819.187 8586 L +-7819.187 8521.9023 L +-7884 8521.9023 L +-7884 8586 L +n u 0 O +0 g +-7849.6978 8544.4297 m +-7851.6094 8521.9023 L +-7853.5215 8544.4297 L +-7852.9033 8544.3066 -7852.2642 8544.2402 -7851.6094 8544.2402 c +-7850.9551 8544.2402 -7850.3159 8544.3066 -7849.6978 8544.4297 C +f -7861.2402 8552.3975 m +-7884 8554.3301 L +-7861.1138 8556.2734 L +-7861.2856 8555.5469 -7861.3848 8554.793 -7861.3848 8554.0156 c +-7861.3848 8553.4629 -7861.3281 8552.9248 -7861.2402 8552.3975 C +f -7856.519 8545.5723 m +-7870.1626 8536.8047 L +-7860.2153 8549.377 L +-7859.3574 8547.791 -7858.0718 8546.4766 -7856.519 8545.5723 C +f -7853.481 8563.6074 m +-7851.5786 8586 L +-7849.6768 8563.5967 L +-7850.3018 8563.7227 -7850.9473 8563.791 -7851.6094 8563.791 c +-7852.25 8563.791 -7852.873 8563.7246 -7853.481 8563.6074 C +f -7841.9609 8555.5068 m +-7819.187 8553.5732 L +-7842.083 8551.6289 L +-7842.083 8551.8506 L +-7841.9258 8552.5488 -7841.834 8553.2695 -7841.834 8554.0156 c +-7841.834 8554.5234 -7841.8848 8555.0195 -7841.9609 8555.5068 C +f -7860.1138 8558.8262 m +-7870.1641 8571.5293 L +-7856.2778 8562.6055 L +-7857.8823 8561.7305 -7859.2114 8560.416 -7860.1138 8558.8262 C +f -7842.9961 8549.3945 m +-7832.875 8536.6055 L +-7846.7666 8545.5313 L +-7845.1768 8546.4414 -7843.8633 8547.7793 -7842.9961 8549.3945 C +f -7846.6895 8562.4512 m +-7832.873 8571.3281 L +-7842.9658 8558.5732 L +-7843.8198 8560.1895 -7845.1152 8561.5313 -7846.6895 8562.4512 C +f -7842.8887 8558.6133 m +-7842.3862 8557.6641 -7842.043 8556.6211 -7841.875 8555.5195 c +-7841.7993 8555.0293 -7841.748 8554.5273 -7841.748 8554.0156 c +-7841.748 8553.2637 -7841.8398 8552.5352 -7841.998 8551.8311 c +-7842.1958 8550.957 -7842.5049 8550.124 -7842.918 8549.3545 c +-7843.7954 8547.7246 -7845.1191 8546.374 -7846.7241 8545.4561 c +-7847.6294 8544.9375 -7848.6226 8544.5537 -7849.6802 8544.3457 c +-7850.3047 8544.2207 -7850.9497 8544.1523 -7851.6094 8544.1523 c +-7852.2695 8544.1523 -7852.915 8544.2207 -7853.5391 8544.3457 c +-7854.623 8544.5605 -7855.6382 8544.957 -7856.5625 8545.4961 c +-7858.1313 8546.4102 -7859.4282 8547.7363 -7860.291 8549.335 c +-7860.7969 8550.2695 -7861.145 8551.2969 -7861.3262 8552.3828 c +-7861.415 8552.916 -7861.4727 8553.459 -7861.4727 8554.0156 c +-7861.4727 8554.8008 -7861.3711 8555.5605 -7861.1978 8556.293 c +-7860.981 8557.207 -7860.6406 8558.0732 -7860.187 8558.8701 c +-7859.2793 8560.4727 -7857.939 8561.8008 -7856.3174 8562.6826 c +-7855.4487 8563.1553 -7854.5 8563.498 -7853.4961 8563.6934 c +-7852.8848 8563.8115 -7852.2554 8563.8779 -7851.6094 8563.8779 c +-7850.9414 8563.8779 -7850.29 8563.8086 -7849.6602 8563.6826 c +-7848.5786 8563.4668 -7847.5664 8563.0654 -7846.6455 8562.5273 c +-7845.0566 8561.5977 -7843.751 8560.2441 -7842.8887 8558.6133 c +f U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 3) +0 A +u 1 Ap +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7874.75 8587 m +-7874.75 8563 L +-7884.75 8563 L +-7884.75 8587 L +-7874.75 8587 L +n u u 0 Ap +0 O +1 g +-7875.4058 8578.5361 m +-7874.9878 8577.4355 -7874.75 8576.2471 -7874.75 8575 c +-7874.75 8573.1377 -7875.2681 8571.4004 -7876.1543 8569.9072 c +-7877.897 8566.9736 -7881.0898 8565 -7884.75 8565 C +-7884.75 8585 L +-7884.4297 8585 -7884.1143 8584.9814 -7883.8018 8584.9521 c +-7881.9121 8584.7754 -7880.1807 8584.0645 -7878.7441 8582.9824 c +-7877.2471 8581.8545 -7876.0801 8580.3184 -7875.4058 8578.5361 c +f 0 R +0 G +1 J 1 j 0.5 w -7884.75 8565.3174 m +-7881.7207 8566.2744 -7878.8926 8567.9326 -7876.1543 8569.9072 C +S -7884.75 8570.9512 m +-7881.5991 8573.3564 -7878.543 8576.0869 -7875.4058 8578.5361 C +S -7878.7441 8582.9824 m +-7880.8105 8581.8916 -7882.7993 8580.5342 -7884.75 8579.043 C +S -7883.8018 8584.9521 m +-7884.1191 8584.8682 -7884.4375 8584.7852 -7884.75 8584.6865 C +S -7878.7441 8582.9824 m +-7880.1807 8584.0645 -7881.9121 8584.7744 -7883.8018 8584.9521 C +S -7875.4058 8578.5361 m +-7874.9878 8577.4355 -7874.75 8576.2471 -7874.75 8575 c +-7874.75 8573.1377 -7875.2681 8571.4004 -7876.1543 8569.9072 C +S -7884.75 8585 m +-7884.4297 8585 -7884.1143 8584.9814 -7883.8018 8584.9521 C +S -7878.7441 8582.9824 m +-7877.2471 8581.8545 -7876.0801 8580.3184 -7875.4058 8578.5361 C +S -7876.1543 8569.9072 m +-7877.8975 8566.9736 -7881.0898 8565 -7884.75 8565 C +S U U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 5) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7726.3994 8587 m +-7726.3994 8573.4199 L +-7885 8573.4199 L +-7885 8587 L +-7726.3994 8587 L +n u u 0 O +0.285 0.228 0.171 0 k +-7741.0786 8585.4844 m +-7741.043 8586.6895 L +-7727.5103 8587.5176 -7726.8418 8586.2822 v +-7726.7441 8586.1016 -7726.647 8585.7148 -7726.561 8585.1934 C +-7728.584 8585.8242 -7738.291 8585.5713 -7741.0786 8585.4844 C +f 0.44 0.352 0.264 0 k +-7741.4063 8574.0234 m +-7741.3711 8575.2676 L +-7738.4912 8575.0488 -7728.1914 8574.3164 -7726.543 8574.8652 C +-7726.7031 8574.2188 -7726.9199 8573.7646 -7727.2046 8573.6152 c +-7728.8306 8572.7656 -7741.4063 8574.0234 Y +f 0.145 0.116 0.087 0 k +-7741.3711 8575.2676 m +-7741.0786 8585.4844 L +-7738.291 8585.5713 -7728.584 8585.8242 -7726.561 8585.1934 C +-7726.1519 8582.7773 -7725.9258 8577.3604 -7726.543 8574.8652 C +-7728.1914 8574.3164 -7738.4912 8575.0488 -7741.3711 8575.2676 C +f U u 0.155 0.124 0.093 0 k +-7766.9375 8579.2734 m +-7765.897 8579.6563 L +-7747.0728 8575.1465 L +-7747.481 8574.3145 L +-7766.3633 8576.7246 L +-7767.252 8577.0059 L +-7767.6504 8576.8936 -7768.1934 8576.8242 V +-7767.6094 8577.2373 -7767.1426 8578.1406 -7766.9375 8579.2734 C +f u 0.085 0.068 0.051 0 k +-7771.7993 8583.666 m +-7772.5977 8583.7217 -7769.749 8583.6641 Y +-7770.3481 8583.0176 -7770.771 8581.8203 -7770.8105 8580.4375 c +-7770.8169 8580.2246 -7770.8105 8580.0176 -7770.7993 8579.8135 C +-7771.041 8579.707 -7771.0918 8579.7734 -7771.6289 8579.5645 C +-7771 8583.6113 -7771.7993 8583.666 v +f 0.305 0.244 0.183 0 k +-7770.3442 8576.8672 m +-7770.5527 8576.8105 -7770.4937 8578.9307 Y +-7769.4785 8579.7588 L +-7767.8359 8578.9434 L +-7766.9375 8579.2734 L +-7767.1426 8578.1406 -7767.6094 8577.2373 -7768.1934 8576.8242 C +-7768.6094 8576.7715 -7769.874 8576.7998 -7770.3442 8576.8672 C +f U 0.115 0.092 0.069 0 k +-7766.9375 8579.2734 m +-7767.8359 8578.9434 L +-7769.4785 8579.7588 L +-7770.4937 8578.9307 L +-7770.793 8579.708 -7770.7993 8579.8135 V +-7769.5137 8580.3789 -7768.1831 8580.7402 -7766.8398 8580.9258 C +-7766.79 8580.7275 -7766.7842 8580.543 -7766.79 8580.3369 c +-7766.7998 8579.9717 -7766.8218 8579.6182 -7766.9375 8579.2734 C +f 0.41 0.328 0.246 0 k +-7747.4512 8575.3965 m +-7749.377 8576.6426 -7758.3862 8582.0986 -7766.8398 8580.9258 C +-7766.9038 8582.0928 -7767.248 8583.0908 -7767.75 8583.6631 C +-7767.1895 8583.6621 L +-7746.7402 8586.7559 L +-7747.0366 8576.4258 L +-7747.0728 8575.1465 L +-7747.2046 8575.2373 -7747.4512 8575.3965 v +f 0.395 0.316 0.237 0 k +-7770.8105 8580.4375 m +-7770.771 8581.8203 -7770.3481 8583.0176 -7769.749 8583.6641 C +-7767.6807 8583.6631 L +-7767.1782 8583.0908 -7766.8218 8582.0713 -7766.8398 8580.9258 C +-7768.1831 8580.7402 -7769.5137 8580.3789 -7770.7993 8579.8135 C +-7770.8105 8580.0176 -7770.8169 8580.2246 -7770.8105 8580.4375 c +f U u 0 0 0 0.11 k +-7741.2642 8574.2012 m +-7740.2407 8574.0352 L +-7741.2642 8574.2012 L +-7741.2642 8574.2012 L +f 0 0 0 0.34 k +-7747.481 8574.3145 m +-7747.0728 8575.1465 L +-7745.6714 8574.918 L +-7744.5234 8574.7314 L +-7742.6758 8574.4307 L +-7741.2642 8574.2012 L +-7740.2407 8574.0352 L +-7740.2954 8573.7168 -7740.3672 8573.498 -7740.4648 8573.4199 C +-7747.481 8574.3145 L +f 0 0 0 0.32 k +-7745.8042 8579.207 m +-7746.041 8586.8613 L +-7740.7144 8587 L +-7739.7266 8583.5146 -7740.1816 8579.1543 V +-7745.8042 8579.207 L +f U 0.025 0.02 0.015 0 k +-7739.3223 8576.3848 m +-7736.373 8576.9199 -7733.2402 8577.1602 -7730.3159 8576.3613 c +-7730.2856 8576.3496 -7730.2754 8576.3184 -7730.2871 8576.2969 c +-7730.2881 8576.2656 -7730.3198 8576.2559 -7730.3418 8576.2559 c +-7733.2422 8577.0645 -7736.375 8576.8242 -7739.3042 8576.2783 c +-7739.3262 8576.2793 -7739.3574 8576.291 -7739.3672 8576.3223 c +-7739.3662 8576.3438 -7739.355 8576.375 -7739.3223 8576.3848 c +-7739.3223 8576.3848 l +f -7737.8374 8575.3076 m +-7737.7295 8575.3789 -7737.6313 8575.4941 -7737.5234 8575.502 c +-7733.7886 8575.832 -7730.1631 8575.7813 -7726.4746 8575.6641 c +-7726.4526 8575.6641 -7726.4209 8575.6426 -7726.4214 8575.6211 c +-7726.4214 8575.5879 -7726.4551 8575.5684 -7726.4766 8575.5684 c +-7729.3223 8575.6816 -7732.1401 8575.6992 -7735.0039 8575.5352 c +-7735.9336 8575.4766 -7736.9082 8575.7402 -7737.7778 8575.2207 c +-7737.7993 8575.2109 -7737.8306 8575.2109 -7737.8506 8575.2334 c +-7737.8618 8575.2559 -7737.8594 8575.2871 -7737.8374 8575.3076 c +-7737.8374 8575.3076 l +f -7733.373 8577.3672 m +-7731.5098 8578.6797 -7729.3022 8579.374 -7727.1001 8579.8867 c +-7727.0679 8579.8965 -7727.0474 8579.8848 -7727.0366 8579.8535 c +-7727.0273 8579.8203 -7727.0488 8579.8008 -7727.0703 8579.79 c +-7729.2617 8579.2656 -7731.459 8578.6035 -7733.3105 8577.2803 c +-7733.3433 8577.2598 -7733.375 8577.2715 -7733.3848 8577.293 c +-7733.4058 8577.3145 -7733.3945 8577.3457 -7733.373 8577.3672 c +-7733.373 8577.3672 l +f -7738.9321 8584.0566 m +-7736.7295 8584.5703 -7734.5298 8585.0303 -7732.2798 8585.2754 c +-7732.2598 8585.2852 -7732.229 8585.2637 -7732.229 8585.2422 c +-7732.2183 8585.209 -7732.2407 8585.1777 -7732.2729 8585.1787 c +-7734.5122 8584.8809 -7736.7305 8584.5176 -7738.9126 8583.9502 c +-7738.9351 8583.9512 -7738.9673 8583.9629 -7738.9766 8583.9941 c +-7738.9751 8584.0156 -7738.9648 8584.0479 -7738.9321 8584.0566 c +-7738.9321 8584.0566 l +f -7738.439 8583.3604 m +-7736.3457 8584.1973 -7734.1016 8583.9297 -7731.9023 8583.9629 c +-7731.8706 8583.9609 -7731.8496 8583.9395 -7731.8506 8583.9082 c +-7731.8521 8583.875 -7731.873 8583.8555 -7731.8945 8583.8555 c +-7734.0928 8583.8438 -7736.3374 8584.0996 -7738.4209 8583.2529 c +-7738.4434 8583.2539 -7738.4746 8583.2656 -7738.4834 8583.2969 c +-7738.4834 8583.3184 -7738.4722 8583.3506 -7738.439 8583.3604 c +-7738.439 8583.3604 l +f -7737.707 8584.7051 m +-7736.3833 8584.752 -7735.1504 8584.5469 -7733.8271 8584.209 c +-7733.3594 8584.0996 -7732.9199 8584.2266 -7732.4609 8584.2129 c +-7731.897 8584.1973 l +-7731.874 8584.1963 -7731.8633 8584.1855 -7731.8535 8584.1738 c +-7731.834 8584.1523 -7731.8442 8584.1211 -7731.8662 8584.0996 c +-7732.0625 8583.9453 l +-7732.0742 8583.9453 -7732.085 8583.9355 -7732.0962 8583.9355 c +-7732.5 8583.9473 l +-7733.9551 8584.1914 -7735.457 8584.6719 -7736.8926 8584.0742 c +-7736.9258 8584.0645 -7736.957 8584.0859 -7736.9673 8584.1074 c +-7736.9673 8584.1396 -7736.9551 8584.1602 -7736.9336 8584.1709 c +-7735.647 8584.6992 -7734.1714 8584.4756 -7732.8818 8584.0547 c +-7732.0918 8584.043 L +-7732.124 8584.0332 L +-7731.9282 8584.1875 L +-7731.8984 8584.0898 L +-7732.4639 8584.1064 l +-7732.9321 8584.1406 -7733.3848 8583.9834 -7733.8398 8584.1035 c +-7735.1543 8584.4609 -7736.3975 8584.625 -7737.71 8584.5986 c +-7737.7422 8584.5996 -7737.7642 8584.6211 -7737.7617 8584.6533 c +-7737.7617 8584.6855 -7737.7402 8584.7061 -7737.707 8584.7051 c +-7737.707 8584.7051 l +f -7738.5718 8585.0605 m +-7735.8711 8586.2207 -7732.9023 8585.5703 -7730.1279 8585.1816 c +-7729.7832 8585.2891 l +-7729.7617 8585.2988 -7729.7417 8585.2871 -7729.7207 8585.2656 c +-7729.71 8585.2441 -7729.7217 8585.2129 -7729.7422 8585.2021 c +-7730.0801 8585.0098 l +-7732.7754 8584.3926 -7735.5391 8584.7813 -7738.271 8584.7852 c +-7738.3022 8584.7871 -7738.3232 8584.8086 -7738.3223 8584.8398 c +-7738.3198 8584.8721 -7738.2983 8584.8926 -7738.2681 8584.8926 c +-7735.6738 8584.9355 -7733.0303 8584.4434 -7730.4727 8585.0742 c +-7729.7954 8585.2891 L +-7729.7534 8585.1914 L +-7730.1406 8585.0859 l +-7732.9058 8585.4424 -7735.8418 8586.1348 -7738.5313 8584.9746 c +-7738.5537 8584.9648 -7738.585 8584.9648 -7738.5962 8584.998 c +-7738.6055 8585.0195 -7738.605 8585.0508 -7738.5718 8585.0605 c +-7738.5718 8585.0605 l +f -7735.6895 8578.3945 m +-7734.3945 8578.9004 -7732.9834 8578.6465 -7731.6802 8578.3438 c +-7731.647 8578.3418 -7731.6367 8578.3203 -7731.6382 8578.2891 c +-7731.6504 8578.2568 -7731.6714 8578.2461 -7731.7031 8578.248 c +-7732.998 8578.5303 -7734.377 8578.8154 -7735.6504 8578.2969 c +-7735.6826 8578.2871 -7735.7144 8578.2988 -7735.7246 8578.3311 c +-7735.7222 8578.3525 -7735.7114 8578.3848 -7735.6895 8578.3945 c +-7735.6895 8578.3945 l +f -7736.1401 8580.2207 m +-7734.2266 8580.6895 -7732.3145 8581.1035 -7730.355 8581.3242 c +-7730.3242 8581.334 -7730.3022 8581.3125 -7730.293 8581.2803 c +-7730.2954 8581.2598 -7730.3159 8581.2285 -7730.3374 8581.2285 c +-7732.2959 8581.0078 -7734.209 8580.582 -7736.1206 8580.1133 c +-7736.1426 8580.1152 -7736.1738 8580.126 -7736.1831 8580.1582 c +-7736.1831 8580.1797 -7736.1719 8580.2109 -7736.1401 8580.2207 c +-7736.1401 8580.2207 l +f -7736.9336 8582.6348 m +-7734.499 8583.4609 -7731.8647 8583.0547 -7729.3457 8583.0879 c +-7729.313 8583.0879 -7729.293 8583.0664 -7729.293 8583.0332 c +-7729.2954 8583.0117 -7729.3159 8582.9922 -7729.3481 8582.9922 c +-7731.8574 8582.916 -7734.481 8583.3848 -7736.8945 8582.5264 c +-7736.9282 8582.5273 -7736.959 8582.5391 -7736.9688 8582.5605 c +-7736.9678 8582.5918 -7736.9561 8582.624 -7736.9336 8582.6348 c +-7736.9336 8582.6348 l +f -7732.0542 8583.8496 m +-7730.6582 8584.5449 -7729.0503 8584.4033 -7727.5342 8584.4668 c +-7727.502 8584.4648 -7727.4824 8584.4434 -7727.4824 8584.4121 c +-7727.4834 8584.3906 -7727.5054 8584.3594 -7727.5366 8584.3594 c +-7729.0137 8584.2207 -7730.6489 8584.5234 -7732.0039 8583.7617 c +-7732.0366 8583.7529 -7732.0679 8583.7637 -7732.0786 8583.7861 c +-7732.0879 8583.8076 -7732.0767 8583.8398 -7732.0542 8583.8496 c +-7732.0542 8583.8496 l +f -7731.3418 8580.4248 m +-7730.3926 8580.3975 -7729.4336 8580.3701 -7728.4839 8580.3428 c +-7728.4526 8580.3418 -7728.4312 8580.3203 -7728.4336 8580.2881 c +-7728.4336 8580.2559 -7728.4551 8580.2354 -7728.4878 8580.2363 c +-7729.437 8580.2637 -7730.397 8580.291 -7731.3457 8580.3184 c +-7731.377 8580.3184 -7731.3975 8580.3418 -7731.3975 8580.373 c +-7731.397 8580.4043 -7731.374 8580.4258 -7731.3418 8580.4248 c +-7731.3418 8580.4248 l +f -7729.1592 8578.0361 m +-7728.6895 8578.0645 -7728.209 8578.0723 -7727.7383 8578.0918 c +-7727.7168 8578.0908 -7727.6855 8578.0684 -7727.6865 8578.0371 c +-7727.687 8578.0039 -7727.71 8577.9844 -7727.7417 8577.9844 c +-7728.2114 8577.9873 -7728.6816 8577.9375 -7729.1514 8577.9395 c +-7729.1831 8577.9297 -7729.2031 8577.9512 -7729.2134 8577.9844 c +-7729.2129 8578.0156 -7729.1914 8578.0371 -7729.1592 8578.0361 c +-7729.1592 8578.0361 l +f -7736.9702 8580.2344 m +-7736.5688 8580.5107 -7736.125 8580.6797 -7735.645 8580.751 c +-7735.6113 8580.7607 -7735.5918 8580.7383 -7735.5806 8580.7168 c +-7735.5703 8580.6855 -7735.5928 8580.6543 -7735.6152 8580.6543 c +-7736.0854 8580.5723 -7736.5176 8580.4023 -7736.9209 8580.1475 c +-7736.9521 8580.1377 -7736.9849 8580.1387 -7736.9946 8580.1709 c +-7737.0039 8580.1934 -7736.9922 8580.2246 -7736.9702 8580.2344 c +-7736.9702 8580.2344 l +f -7738.1904 8586.085 m +-7735.7344 8586.5273 -7733.2983 8587.001 -7730.7993 8586.7266 c +-7730.7778 8586.7266 -7730.7568 8586.7041 -7730.7578 8586.6719 c +-7730.7578 8586.6406 -7730.7798 8586.6191 -7730.8022 8586.6191 c +-7733.291 8586.873 -7735.7344 8586.4844 -7738.1719 8585.9775 c +-7738.1934 8585.9785 -7738.2256 8585.9902 -7738.2344 8586.0215 c +-7738.2344 8586.043 -7738.2222 8586.0752 -7738.1904 8586.085 c +-7738.1904 8586.085 l +f 0.195 0.156 0.117 0 k +-7738.166 8574.6445 m +-7735.7969 8574.2676 -7733.4058 8574.3477 -7731.0298 8574.5898 c +-7730.998 8574.5879 -7730.9766 8574.5664 -7730.9766 8574.5352 c +-7730.9785 8574.5137 -7731 8574.4824 -7731.0215 8574.4824 c +-7733.4082 8574.2422 -7735.791 8574.1602 -7738.1694 8574.5391 c +-7738.2026 8574.5391 -7738.2222 8574.5605 -7738.2217 8574.5938 c +-7738.2207 8574.625 -7738.1992 8574.6465 -7738.166 8574.6445 c +-7738.166 8574.6445 l +f 0.335 0.268 0.201 0 k +-7737.4351 8574.1113 m +-7734.9282 8574.1152 -7732.4146 8574.2773 -7729.918 8573.8965 c +-7729.8862 8573.8945 -7729.8647 8573.873 -7729.8662 8573.8418 c +-7729.8672 8573.8086 -7729.8896 8573.7891 -7729.9209 8573.7891 c +-7732.418 8574.1699 -7734.9297 8574.0293 -7737.4375 8574.0059 c +-7737.46 8574.0059 -7737.481 8574.0273 -7737.4785 8574.0596 c +-7737.4785 8574.0918 -7737.457 8574.1123 -7737.4351 8574.1113 c +-7737.4351 8574.1113 l +f 0.205 0.164 0.123 0 k +-7738.9766 8574.3262 m +-7737.5039 8574.668 -7736.0078 8574.4023 -7734.5391 8574.2207 c +-7734.5078 8574.2207 -7734.4873 8574.1973 -7734.499 8574.166 c +-7734.5 8574.1348 -7734.5215 8574.1133 -7734.5537 8574.125 c +-7736.0103 8574.2842 -7737.4961 8574.583 -7738.9473 8574.2188 c +-7738.9785 8574.2207 -7739.0103 8574.2324 -7739.0098 8574.2637 c +-7739.019 8574.2852 -7738.998 8574.3164 -7738.9766 8574.3262 c +-7738.9766 8574.3262 l +f -7732.3535 8573.7949 m +-7731.1978 8573.9219 -7730.0273 8573.8145 -7728.8926 8573.5898 c +-7728.8711 8573.5781 -7728.8506 8573.5566 -7728.8618 8573.5244 c +-7728.8623 8573.5029 -7728.8945 8573.4824 -7728.916 8573.4941 c +-7730.0503 8573.7402 -7731.1914 8573.7939 -7732.3462 8573.6885 c +-7732.3794 8573.6895 -7732.3984 8573.7109 -7732.4087 8573.7324 c +-7732.4082 8573.7646 -7732.3862 8573.7852 -7732.3535 8573.7949 c +-7732.3535 8573.7949 l +f 0.335 0.268 0.201 0 k +-7739.2681 8576.4473 m +-7737.9214 8577.1885 -7736.3066 8576.5977 -7734.855 8576.6416 c +-7734.8223 8576.6406 -7734.8022 8576.6191 -7734.8022 8576.5859 c +-7734.8042 8576.5654 -7734.8262 8576.5449 -7734.8574 8576.5449 c +-7736.2886 8576.4902 -7737.8823 8577.0801 -7739.2168 8576.3506 c +-7739.2383 8576.3398 -7739.2695 8576.3516 -7739.291 8576.374 c +-7739.3008 8576.3955 -7739.2886 8576.4277 -7739.2681 8576.4473 c +-7739.2681 8576.4473 l +f -7737.8945 8578.5645 m +-7735.6719 8579.0449 -7733.3896 8578.6162 -7731.1504 8578.5625 c +-7731.1177 8578.5615 -7731.0977 8578.5391 -7731.0977 8578.5078 c +-7731.1001 8578.4863 -7731.1318 8578.4668 -7731.1519 8578.4668 c +-7733.3833 8578.4775 -7735.6519 8578.9805 -7737.875 8578.457 c +-7737.8975 8578.457 -7737.9287 8578.4688 -7737.9375 8578.502 c +-7737.9375 8578.5225 -7737.9258 8578.5547 -7737.8945 8578.5645 c +-7737.8945 8578.5645 l +f -7732.0273 8575.1406 m +-7730.3496 8575.9688 -7728.499 8576.502 -7726.603 8576.3613 c +-7726.5718 8576.3613 -7726.5513 8576.3389 -7726.5527 8576.3066 c +-7726.5527 8576.2754 -7726.5742 8576.2539 -7726.6074 8576.2559 c +-7728.481 8576.416 -7730.3198 8575.8604 -7731.9873 8575.0547 c +-7732.0078 8575.0449 -7732.041 8575.0449 -7732.0503 8575.0781 c +-7732.061 8575.0996 -7732.061 8575.1309 -7732.0273 8575.1406 c +-7732.0273 8575.1406 l +f u 0.5 0.85 1 0.45 k +-7885 8581.9082 m +-7885.0254 8582.4883 -7884.5664 8583.1875 -7883.167 8583.9902 C +-7882.8521 8584.0029 -7881.3945 8584.0234 -7879.0889 8584.0488 C +-7879.0889 8581.8223 L +-7881.1382 8581.8457 -7883.1177 8581.8867 -7885 8581.9082 C +f -7884.5088 8580.9688 m +-7879.0889 8580.8447 L +-7879.0889 8579.8145 L +-7882.644 8579.959 L +-7883.8145 8580.3301 -7884.5088 8580.9688 V +f 0.5 0.85 1 0.32 k +-7879.0889 8580.8252 m +-7884.4746 8580.9434 L +-7884.7695 8581.2148 -7884.9849 8581.5566 -7885 8581.9277 C +-7883.1177 8581.9063 -7881.1382 8581.8848 -7879.0889 8581.8613 C +-7879.0889 8580.8252 L +f 0.5 0.85 1 0.45 k +-7774.1504 8580.6172 m +-7852.3584 8581.541 -7879.1079 8581.8418 V +-7879.1079 8584.0488 L +-7862.8145 8584.2324 -7803.9902 8584.707 Y +-7769.749 8583.6641 L +-7770.457 8580.5684 L +-7774.1504 8580.6172 L +f 0.5 0.85 1 0.12 k +-7879.1079 8579.8145 m +-7879.1079 8580.8447 L +-7770.4258 8579 L +-7770.3833 8576.8633 L +-7803.6553 8576.7129 L +-7879.1079 8579.8145 L +f u 0.065 0.052 0.039 0 k +-7747.0728 8575.1465 m +-7747.0366 8576.4258 L +-7747.2954 8575.1172 L +-7765.897 8579.6563 L +-7766.9375 8579.2734 L +-7766.8794 8579.6055 -7766.8398 8579.957 -7766.8306 8580.3223 c +-7766.8242 8580.5283 -7766.8281 8580.7285 -7766.8398 8580.9258 C +-7758.3862 8582.0986 -7748.9634 8577.6719 -7747.0366 8576.4258 C +-7746.7402 8586.7559 L +-7746.041 8586.8613 L +-7745.8042 8579.207 L +-7740.1816 8579.1543 L +-7740.0898 8577.0137 -7740.0718 8575.0215 -7740.2407 8574.0352 C +-7747.0728 8575.1465 L +f 0.4 0.7 1 0 k +-7770.457 8580.5879 m +-7770.4258 8578.9805 L +-7879.1079 8580.8252 L +-7879.1079 8581.8613 L +-7852.3584 8581.5605 -7770.457 8580.5879 Y +f U U 0.025 0.02 0.015 0 k +-7734.7344 8583.0293 m +-7734.7344 8583.0625 -7734.7129 8583.082 -7734.6802 8583.082 c +-7731.6714 8583.1133 -7729.4214 8582.9453 -7726.415 8582.8594 C +-7726.4087 8582.7656 L +-7729.3262 8582.8701 -7731.7607 8583.0078 -7734.6841 8582.9746 C +-7734.7168 8582.9766 -7734.7358 8582.998 -7734.7344 8583.0293 C +f -7726.3994 8582.7656 m +-7726.4082 8582.7441 L +-7726.4087 8582.7656 L +-7726.4063 8582.7656 -7726.4033 8582.7656 -7726.3994 8582.7656 C +f -7730.4487 8581.4238 m +-7731.4458 8581.292 -7732.3394 8581.7656 -7733.2114 8582.1973 C +-7733.2441 8582.208 -7733.2534 8582.2402 -7733.2422 8582.2715 C +-7733.2305 8582.293 -7733.1982 8582.3027 -7733.1777 8582.291 c +-7732.3262 8581.8301 -7731.4312 8581.4199 -7730.4678 8581.5195 c +-7729.1079 8581.6621 -7727.9038 8582.375 -7726.5254 8582.4531 C +-7726.4463 8582.3594 L +-7728.04 8582.2656 -7728.8647 8581.623 -7730.4487 8581.4238 c +f U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 6) +0 A +u 1 Ap +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884.75 8563 m +-7884.75 8587 L +-7874.75 8587 L +-7874.75 8563 L +-7884.75 8563 L +n 0 Ap +0 O +1 g +-7874.75 8565 m +-7875.0703 8565 -7875.3857 8565.0186 -7875.6982 8565.0479 c +-7877.5879 8565.2256 -7879.3198 8565.9346 -7880.7559 8567.0176 c +-7882.2529 8568.1465 -7883.4199 8569.6816 -7884.0942 8571.4639 c +-7884.5122 8572.5645 -7884.75 8573.7529 -7884.75 8575 c +-7884.75 8576.8623 -7884.2319 8578.5996 -7883.3457 8580.0918 c +-7881.6025 8583.0273 -7878.4102 8585 -7874.75 8585 C +-7874.75 8565 L +f 0 R +0 G +1 J 1 j 0.5 w -7874.75 8584.6816 m +-7877.7793 8583.7256 -7880.6074 8582.0674 -7883.3457 8580.0918 C +S -7874.75 8579.0488 m +-7877.8999 8576.6436 -7880.957 8573.9131 -7884.0942 8571.4639 C +S -7880.7559 8567.0176 m +-7878.6904 8568.1084 -7876.7017 8569.4668 -7874.75 8570.957 C +S -7875.6982 8565.0479 m +-7875.3809 8565.1309 -7875.063 8565.2148 -7874.75 8565.3145 C +S -7880.7559 8567.0176 m +-7879.3193 8565.9355 -7877.5879 8565.2256 -7875.6982 8565.0479 C +S -7884.0942 8571.4639 m +-7884.5122 8572.5645 -7884.75 8573.7529 -7884.75 8575 c +-7884.75 8576.8623 -7884.231 8578.5996 -7883.3457 8580.0918 C +S -7874.75 8565 m +-7875.0703 8565 -7875.3857 8565.0186 -7875.6982 8565.0479 C +S -7880.7559 8567.0176 m +-7882.2529 8568.1465 -7883.4199 8569.6816 -7884.0942 8571.4639 C +S -7883.3457 8580.0918 m +-7881.6025 8583.0273 -7878.4102 8585 -7874.75 8585 C +S U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 8) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7883.9521 8584.3125 m +-7776.7954 8584.3125 L +-7776.7954 8570.1855 L +-7883.9521 8570.1855 L +-7883.9521 8584.3125 L +n u 0 O +0 0 0 1 k +-7882.2832 8583.623 m +-7882.8535 8586 -7882.8184 8582.0039 V +-7883.0479 8578.8027 L +-7883.6167 8576.4551 L +-7883.4502 8574.123 L +-7881.9502 8573.4551 -7865.2832 8572.123 V +-7858.6167 8570.7891 -7849.6167 8570.7891 V +-7784.3936 8571.4766 -7779.4912 8572.8848 v +-7820.3882 8570.875 -7822.9688 8571.5117 v +-7783.8569 8573.1602 -7780.8545 8574.4316 v +-7818.79 8572.5469 -7822.167 8574.1777 v +-7787.249 8575.9102 -7783.021 8577.5313 v +-7789.7217 8576.8828 -7791.5127 8577.082 v +-7788.3896 8577.5703 l +-7793.4194 8577.502 l +-7796.3218 8577.1289 l +-7788.4521 8578.2422 -7787.9033 8578.8086 v +-7784.3154 8578.1309 -7798.5186 8578.3848 v +-7832.1177 8574.4551 -7882.2832 8583.623 V +f /BBAccumRotation (5.805971) XT +0 R +0 0 0 0.5 K +0.025 w -7883.9502 8573.123 m +-7863.667 8571.2949 -7843.9727 8570.2207 v +-7801.1514 8570.502 -7796.5737 8570.9004 v +-7784.1631 8571.0313 -7776.7959 8572.0273 v +S /BBAccumRotation (5.805971) XT +0 0 0 1 K +-7821.8369 8570.4082 m +-7825.2959 8570.0273 -7851.2607 8570.2793 Y +-7861.627 8570.1602 -7883.9502 8573.123 Y +S /BBAccumRotation (5.805971) XT +-7820.9873 8573.6641 m +-7790.3608 8574.582 -7783.6606 8575.2324 v +S /BBAccumRotation (5.805971) XT +0 0 0 0.5 K +-7829.6201 8578.2051 m +-7794.3706 8579.6172 -7791.4058 8580.1406 v +S /BBAccumRotation (5.805971) XT +U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 10) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884 8586 m +-7833.8921 8586 L +-7833.8921 8529.9756 L +-7884 8529.9756 L +-7884 8586 L +n u 0 O +0.1 1 1 0 k +-7846.9014 8551.5752 m +-7848.7178 8545.0957 -7858.8247 8548.4658 Y +-7858.791 8548.5303 L +-7868.8999 8545.1611 -7870.7144 8551.6396 V +-7876.6758 8569.0068 -7871.4922 8575.7451 V +-7864.7529 8585.3369 -7860.6055 8585.3369 V +-7857.0103 8585.2705 L +-7852.8638 8585.2705 -7846.125 8575.6816 Y +-7840.9409 8568.9424 -7846.9014 8551.5752 Y +f u 0 0 0 1 k +-7851.3926 8529.9756 m +-7852.1167 8531.4199 -7852.9238 8532.4756 V +-7852.4058 8532.0635 -7851.5151 8531.1924 -7851.3926 8529.9756 C +f -7865.064 8532.4854 m +-7865.8711 8531.4307 -7866.5942 8529.9863 Y +-7866.4727 8531.2021 -7865.582 8532.0732 -7865.064 8532.4854 C +f U 0 0.61 0.74 0 k +-7850.5977 8554.4609 m +-7851.9038 8549.7959 -7859.1816 8552.2217 Y +-7859.1567 8552.2686 L +-7866.436 8549.8428 -7867.7417 8554.5078 V +-7872.0337 8567.0117 -7868.3018 8571.8633 V +-7863.4487 8578.7686 -7860.4634 8578.7686 V +-7857.875 8578.7227 L +-7854.8887 8578.7227 -7850.0366 8571.8174 Y +-7846.3042 8566.9639 -7850.5977 8554.4609 Y +f u 1 Ap +0.73 0.43 1 0.22 k +0 R +0 0 0 1 K +-7854.6226 8557.2754 m +-7853.813 8557.2754 -7853.1558 8556.6182 -7853.1558 8555.8096 c +-7853.1558 8555 -7853.813 8554.3428 -7854.6226 8554.3428 c +-7855.4321 8554.3428 -7856.0889 8555 -7856.0889 8555.8096 c +-7856.0889 8556.6182 -7855.4321 8557.2754 -7854.6226 8557.2754 c +b -7854.3638 8568.9971 m +-7853.0806 8568.9971 -7852.0415 8568.1201 -7852.0415 8567.042 c +-7852.0415 8565.9619 -7853.0806 8565.0869 -7854.3638 8565.0869 c +-7855.645 8565.0869 -7856.6846 8565.9619 -7856.6846 8567.042 c +-7856.6846 8568.1201 -7855.645 8568.9971 -7854.3638 8568.9971 c +b -7853.834 8580.7861 m +-7852.2817 8580.7861 -7851.0239 8580.1299 -7851.0239 8579.3213 c +-7851.0239 8578.5117 -7852.2817 8577.8545 -7853.834 8577.8545 c +-7855.3862 8577.8545 -7856.645 8578.5117 -7856.645 8579.3213 c +-7856.645 8580.1299 -7855.3862 8580.7861 -7853.834 8580.7861 c +b -7849.6104 8552.5264 m +-7848.8687 8552.5264 -7848.2671 8551.8154 -7848.2671 8550.9365 c +-7848.2671 8550.0596 -7848.8687 8549.3477 -7849.6104 8549.3477 c +-7850.353 8549.3477 -7850.9546 8550.0596 -7850.9546 8550.9365 c +-7850.9546 8551.8154 -7850.353 8552.5264 -7849.6104 8552.5264 c +b -7848.0034 8574.083 m +-7848.8818 8573.7354 -7849.1494 8572.335 -7848.603 8570.9541 c +-7848.0566 8569.5752 -7846.9014 8568.7363 -7846.0234 8569.085 c +-7845.145 8569.4326 -7844.877 8570.833 -7845.4233 8572.2139 c +-7845.9702 8573.5947 -7847.125 8574.4316 -7848.0034 8574.083 c +b u -7863.0566 8557.1592 m +-7863.8662 8557.1592 -7864.5239 8556.502 -7864.5239 8555.6934 c +-7864.5239 8554.8828 -7863.8662 8554.2266 -7863.0566 8554.2266 c +-7862.248 8554.2266 -7861.5913 8554.8828 -7861.5913 8555.6934 c +-7861.5913 8556.502 -7862.248 8557.1592 -7863.0566 8557.1592 c +b -7863.3159 8568.8799 m +-7864.5991 8568.8799 -7865.6382 8568.0049 -7865.6382 8566.9248 c +-7865.6382 8565.8447 -7864.5991 8564.9697 -7863.3159 8564.9697 c +-7862.0342 8564.9697 -7860.9951 8565.8447 -7860.9951 8566.9248 c +-7860.9951 8568.0049 -7862.0342 8568.8799 -7863.3159 8568.8799 c +b -7863.8457 8580.6709 m +-7865.3975 8580.6709 -7866.6558 8580.0146 -7866.6558 8579.2041 c +-7866.6558 8578.3936 -7865.3975 8577.7383 -7863.8457 8577.7383 c +-7862.293 8577.7383 -7861.0352 8578.3936 -7861.0352 8579.2041 c +-7861.0352 8580.0146 -7862.293 8580.6709 -7863.8457 8580.6709 c +b -7868.0679 8552.4092 m +-7868.811 8552.4092 -7869.4121 8551.6982 -7869.4121 8550.8213 c +-7869.4121 8549.9443 -7868.811 8549.2334 -7868.0679 8549.2334 c +-7867.3262 8549.2334 -7866.7241 8549.9443 -7866.7241 8550.8213 c +-7866.7241 8551.6982 -7867.3262 8552.4092 -7868.0679 8552.4092 c +b -7869.6758 8573.9678 m +-7868.7983 8573.6201 -7868.5298 8572.2188 -7869.0762 8570.8379 c +-7869.6226 8569.457 -7870.7778 8568.6201 -7871.6558 8568.9678 c +-7872.5342 8569.3164 -7872.8032 8570.7178 -7872.2568 8572.0967 c +-7871.7104 8573.4775 -7870.5552 8574.3154 -7869.6758 8573.9678 c +b U U 0 Ap +0 0 0 1 k +-7859.1318 8552.6553 m +-7859.1318 8585.3145 l +F u -7843.3906 8538.5303 m +-7844.0815 8537.8369 -7847.019 8538.7021 Y +-7848.229 8538.874 -7848.0562 8541.2939 Y +-7847.019 8543.3682 -7847.7104 8543.1943 Y +-7848.2998 8543.1943 -7849.855 8543.1143 -7850.7822 8543.0635 C +-7851.1226 8541.6689 -7852.6128 8540.4756 -7854.7217 8539.7695 C +-7852.7578 8536.4775 -7854.5176 8535.7949 -7856.2935 8535.79 C +-7856.3096 8535.7021 -7856.332 8535.6162 -7856.3599 8535.5332 C +-7854.1089 8535.5791 -7853.6392 8533.2588 Y +-7853.4048 8533.0635 -7853.1606 8532.7861 -7852.9238 8532.4756 C +-7853.1416 8532.6475 -7853.2944 8532.7393 Y +-7854.2583 8532.7393 -7855.8774 8534.4941 -7856.4966 8535.207 C +-7856.9194 8534.4434 -7857.853 8533.9111 -7858.9434 8533.9111 c +-7860.0698 8533.9111 -7861.0322 8534.4795 -7861.4312 8535.2852 C +-7861.9985 8534.624 -7863.6968 8532.751 -7864.6943 8532.751 C +-7864.8462 8532.6572 -7865.064 8532.4854 V +-7864.8281 8532.7939 -7864.583 8533.0732 -7864.3481 8533.2686 C +-7863.8638 8535.6563 -7861.5254 8535.5342 V +-7861.5449 8535.5889 -7861.5674 8535.6436 -7861.5806 8535.7021 C +-7864.9238 8535.6924 -7863.937 8538.3174 -7863.2104 8539.6602 C +-7865.5918 8540.376 -7867.2646 8541.7012 -7867.5239 8543.25 C +-7868.4473 8543.2998 -7869.6729 8543.3584 -7870.1802 8543.3584 C +-7870.8726 8543.5313 -7869.835 8541.458 V +-7869.6626 8539.0391 -7870.8726 8538.8662 V +-7873.8096 8538.002 -7874.501 8538.6934 V +-7875.1919 8539.5566 -7876.0562 8538.3467 V +-7875.1919 8540.0752 -7873.291 8539.5566 V +-7870.6982 8538.8662 -7871.3906 8540.5938 V +-7871.9087 8544.0498 -7870.1802 8544.7402 V +-7868.0342 8545.8545 -7866.2822 8546.0889 V +-7865.9087 8546.4141 -7865.4639 8546.7109 -7864.958 8546.9766 C +-7867.5562 8547.0469 -7870.2246 8547.9209 -7871.0752 8550.9561 C +-7871.5151 8552.2432 -7872.0518 8554.2432 V +-7873.1025 8554.8252 -7874.3022 8556.0078 -7875.541 8558.2627 C +-7876.394 8561.4502 -7877.167 8556.7129 V +-7878.3975 8553.6494 -7879.6504 8553.5381 V +-7878.4702 8555.2871 -7878.9038 8556.416 V +-7877.2998 8560.917 -7875.6138 8559.8994 V +-7874.0986 8559.2197 -7872.688 8556.8154 V +-7873.0698 8558.4971 -7873.4326 8560.417 -7873.6743 8562.3906 C +-7874.4888 8562.3975 L +-7876.3506 8561.4795 -7876.3262 8564.959 V +-7877.1226 8568.9453 -7876.3594 8571.6826 V +-7875.647 8574.1504 -7878.1274 8572.9307 V +-7879.2842 8573.3242 -7879.9839 8572.7881 V +-7882.3882 8571.4131 -7884 8573.124 V +-7882.147 8572.8799 -7881.4482 8573.417 V +-7879.9785 8573.5615 -7879.897 8574.1787 V +-7876.9561 8574.8555 -7876.188 8574.0771 V +-7874.417 8573.2139 -7875.1304 8570.3604 V +-7875.8799 8562.4814 -7874.3198 8564.4053 V +-7874.1182 8564.4219 -7873.8784 8564.5176 V +-7874.1519 8568.4326 -7873.8018 8572.3252 -7871.9961 8574.8516 C +-7875.4536 8567.333 -7870.2974 8552.3037 Y +-7868.9609 8547.5303 -7863.127 8548.1016 -7860.145 8548.7344 C +-7860.0718 8550.1299 -7859.8374 8551.9492 -7859.1318 8552.6553 C +-7858.2134 8550.6963 -7858.2358 8549.0732 V +-7857.0762 8548.7217 -7850.2817 8546.8447 -7847.4487 8550.3369 C +-7848.4312 8547.8135 -7850.8262 8547.0186 -7853.2007 8546.9189 C +-7852.667 8546.6318 -7852.2041 8546.3047 -7851.8257 8545.9502 C +-7850.041 8545.7861 -7847.7104 8544.5771 Y +-7845.9814 8543.8857 -7846.5015 8540.4307 Y +-7847.1919 8538.7021 -7844.5991 8539.3936 Y +-7842.7002 8539.9111 -7841.835 8538.1836 Y +-7842.7002 8539.3936 -7843.3906 8538.5303 Y +f -7837.9082 8572.9521 m +-7838.6074 8573.4893 -7839.7632 8573.0938 Y +-7842.2446 8574.3135 -7841.5327 8571.8467 Y +-7840.769 8569.1104 -7841.564 8565.1221 Y +-7841.541 8561.6445 -7843.4014 8562.5596 Y +-7844.0342 8562.5557 L +-7844.3198 8560.6123 -7844.7046 8558.7549 -7845.0898 8557.1699 C +-7843.7129 8559.4199 -7842.2778 8560.0635 Y +-7840.5913 8561.082 -7838.9878 8556.5791 Y +-7839.4214 8555.4502 -7838.2417 8553.7021 Y +-7839.4937 8553.8125 -7840.7246 8556.876 Y +-7841.4976 8561.6152 -7842.3511 8558.4268 Y +-7843.5776 8556.1904 -7844.769 8555.0098 -7845.814 8554.4229 C +-7846.2026 8553.0635 -7846.4858 8552.2393 Y +-7846.7002 8551.4727 -7847.0337 8550.8486 -7847.4487 8550.3369 C +-7847.3799 8550.5127 -7847.3174 8550.6982 -7847.2632 8550.8916 C +-7841.3022 8568.2588 -7846.4858 8574.9971 V +-7853.2246 8584.5869 -7857.3721 8584.5869 V +-7860.9663 8584.6514 L +-7865.1138 8584.6514 -7871.853 8575.0615 Y +-7871.9038 8574.9961 -7871.9463 8574.9219 -7871.9961 8574.8516 C +-7871.7378 8575.4141 -7871.437 8575.9404 -7871.0752 8576.4092 C +-7864.3359 8586 -7860.189 8586 V +-7856.5942 8585.9346 L +-7852.4482 8585.9346 -7845.709 8576.3447 Y +-7843.5801 8573.5771 -7843.3306 8569.0176 -7843.7769 8564.6055 C +-7843.6553 8564.5752 -7843.5698 8564.5684 Y +-7842.0112 8562.6475 -7842.7598 8570.5244 Y +-7843.4746 8573.3789 -7841.7026 8574.2402 Y +-7840.9351 8575.0186 -7837.9946 8574.3428 Y +-7837.9136 8573.7256 -7836.4434 8573.5811 Y +-7835.7446 8573.0449 -7833.8921 8573.2881 Y +-7835.5024 8571.5771 -7837.9082 8572.9521 Y +f U U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 34) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884.0254 8586.0264 m +-7828.0542 8586.0264 L +-7828.0542 8524.5342 L +-7884.0254 8524.5342 L +-7884.0254 8586.0264 L +n u u 0 O +0.0745 0.9 0.9019 0.18 k +0 R +0 0 0 1 K +1 J 1 j 0.0518 w -7857.5991 8562.7217 m +-7857.3594 8573.5215 -7862.8794 8583.8398 v +-7862.4009 8586 -7860.959 8586 v +-7861.2002 8582.6406 -7860.2393 8582.1611 v +-7855.9199 8570.1602 -7856.6382 8562.2402 v +-7857.5991 8562.7217 l +b -7857.5991 8562.7217 m +-7859.2793 8568 -7871.0391 8569.2012 v +-7875.3594 8569.6807 -7875.5991 8571.1211 v +-7869.1206 8561.5195 -7868.1602 8561.7607 v +-7881.3594 8556.001 -7884 8550.7197 v +-7878.959 8553.6006 -7875.5991 8551.4404 v +-7867.6802 8551.2012 -7862.6406 8553.3613 v +-7858.8008 8555.2813 -7866.7202 8539.2012 v +-7862.8794 8550.9609 -7859.2793 8524.5605 v +-7858.3198 8529.8408 -7856.8799 8531.2813 v +-7850.8799 8538.9609 -7851.8398 8541.1211 v +-7852.3198 8544.9609 -7847.7598 8538.7207 v +-7848 8548.3213 -7850.4009 8551.6807 v +-7852.5591 8555.2813 -7846.5591 8553.1211 v +-7840.5591 8551.2012 -7835.2793 8552.8809 v +-7829.7598 8554.3203 -7828.0801 8551.4404 v +-7839.8398 8563.9209 -7845.5991 8563.6807 v +-7843.9194 8567.2813 l +-7841.519 8572.0811 -7842 8573.2813 v +-7857.2681 8563.8828 -7857.5991 8562.7217 v +b -7857.5991 8562.7217 m +-7854.959 8544.2402 -7857.5991 8536.5605 v +-7859.998 8526.001 -7859.2793 8524.5605 v +S -7856.1602 8551.4404 m +-7850.1602 8546.6406 -7848.959 8541.3604 v +S -7856.1602 8550.7197 m +-7865.0391 8543.041 -7866.7202 8539.2012 v +S -7828.0801 8551.4404 m +-7829.2793 8553.6006 -7857.3594 8561.7607 y +-7862.4009 8556.2422 -7873.9199 8553.8408 v +-7881.5986 8552.8809 -7884 8550.7197 v +S -7874.6382 8569.6807 m +-7863.1191 8560.5615 -7857.3594 8561.7607 y +-7843.1992 8568 -7842 8573.2813 v +S U U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 36) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7883.8496 8585.9961 m +-7833.96 8585.9961 L +-7833.96 8534.9258 L +-7883.8496 8534.9258 L +-7883.8496 8585.9961 L +n u 0 O +0.025 0.1 0.475 0 k +-7862.1504 8553.9043 m +-7864.4766 8552.8125 -7866.6914 8552.4434 -7868.373 8552.9238 c +-7869.0518 8553.1172 -7869.645 8553.4473 -7870.123 8553.9238 c +-7870.6006 8554.4023 -7870.9297 8554.9951 -7871.123 8555.6729 c +-7872.0088 8558.7715 -7870.0103 8563.6777 -7865.9233 8567.7666 c +-7861.834 8571.8535 -7856.9297 8573.8516 -7853.8286 8572.9668 c +-7853.1519 8572.7715 -7852.5586 8572.4424 -7852.0806 8571.9658 c +-7851.603 8571.4883 -7851.2754 8570.8955 -7851.082 8570.2168 c +-7850.5176 8568.2461 -7851.1226 8565.5449 -7852.6855 8562.7891 c +-7853.582 8561.21 -7854.791 8559.6133 -7856.2793 8558.123 c +-7858.1504 8556.2539 -7860.1914 8554.8242 -7862.1504 8553.9043 c +f u 0.0035 0.014 0.0665 0 k +-7861.2183 8552.9727 m +-7863.8306 8552.0215 -7866.3975 8551.9688 -7868.373 8552.9238 C +-7866.6914 8552.4434 -7864.4766 8552.8125 -7862.1504 8553.9043 c +-7861.6191 8554.1543 -7861.0806 8554.4434 -7860.543 8554.7676 C +-7858.8984 8554.0537 L +-7859.667 8553.6172 -7860.4434 8553.2539 -7861.2183 8552.9727 c +f 0.015 0.06 0.285 0 k +-7858.8984 8554.0537 m +-7860.543 8554.7676 L +-7859.0962 8555.6348 -7857.6426 8556.7607 -7856.2793 8558.123 c +-7856.1538 8558.25 -7856.0327 8558.3779 -7855.9102 8558.5059 C +-7855.2153 8556.8633 L +-7856.3706 8555.7236 -7857.6191 8554.7813 -7858.8984 8554.0537 C +f U u 0.039 0.156 0.741 0 k +-7849.687 8541.4043 m +-7849.9746 8541.6914 -7861.2183 8552.9727 Y +-7860.4434 8553.2539 -7859.667 8553.6172 -7858.8984 8554.0537 C +-7845.4146 8540.5703 L +-7847.061 8540.0996 -7848.6406 8540.3555 -7849.687 8541.4043 c +f 0.025 0.1 0.475 0 k +-7845.4146 8540.5703 m +-7858.8984 8554.0537 L +-7857.584 8554.8027 -7856.2969 8555.7754 -7855.1143 8556.957 c +-7855.084 8556.9863 -7855.0586 8557.0156 -7855.0278 8557.0449 C +-7841.3408 8543.3574 L +-7841.5264 8543.1328 -7841.7202 8542.9141 -7841.9302 8542.7012 c +-7843.0103 8541.623 -7844.2305 8540.9082 -7845.4146 8540.5703 C +f U u 0.0115 0.046 0.2185 0 k +-7835.9346 8550.3926 m +-7833.5337 8547.9893 -7833.335 8544.0898 -7835.1382 8540.6973 C +-7836.2954 8541.1182 L +-7834.0938 8544.4961 -7833.8398 8548.2949 -7835.9346 8550.3926 c +f 0.015 0.06 0.285 0 k +-7843.5337 8535.5957 m +-7842.582 8534.9258 L +-7845.2046 8534.3516 -7847.8306 8534.9141 -7849.6206 8536.7061 c +-7848.1719 8535.2578 -7845.9082 8534.9307 -7843.5337 8535.5957 C +f 0.0295 0.118 0.5605 0 k +-7843.5337 8535.5957 m +-7845.9082 8534.9307 -7848.1719 8535.2578 -7849.6206 8536.7061 c +-7851.019 8538.1055 -7851.3706 8540.2637 -7850.7954 8542.5469 C +-7848.8672 8539.5449 -7845.4082 8540.5537 V +-7843.585 8535.6309 L +-7843.5337 8535.5957 L +f *u +0.048 0.192 0.912 0 k +1 D +-7835.9346 8550.3926 m +-7837.2817 8551.7383 -7839.332 8552.1133 -7841.5234 8551.627 C +-7851.6714 8561.7734 L +-7851.7695 8561.5684 -7851.7695 8561.5684 -7851.6714 8561.7734 c +-7850.2246 8564.8145 -7849.9702 8567.916 -7851.082 8570.2168 C +-7850.5176 8568.2461 -7851.1226 8565.5449 -7852.6855 8562.7891 c +-7853.5054 8561.3438 -7854.5918 8559.8848 -7855.9102 8558.5059 C +-7855.2153 8556.8633 L +-7855.1816 8556.8945 -7855.1465 8556.9238 -7855.1143 8556.957 c +-7855.084 8556.9883 -7855.0566 8557.0176 -7855.0273 8557.0469 c +-7855.0278 8557.0469 -7855.0278 8557.0469 -7855.0278 8557.0449 C +-7841.3408 8543.3574 L +-7836.3262 8541.1289 L +-7836.2954 8541.1182 L +-7834.0938 8544.4961 -7833.8398 8548.2949 -7835.9346 8550.3926 c +f *U +0.0215 0.086 0.4085 0 k +0 D +-7842.582 8534.9258 m +-7843.5337 8535.5957 L +-7841.6846 8536.1113 -7839.7656 8537.2285 -7838.1138 8538.8828 c +-7837.4063 8539.5889 -7836.7998 8540.3418 -7836.2954 8541.1182 C +-7835.1382 8540.6973 L +-7835.6553 8539.7246 -7836.3374 8538.793 -7837.1802 8537.9512 c +-7838.7695 8536.3594 -7840.6758 8535.3428 -7842.582 8534.9258 C +f 0.0205 0.082 0.3895 0 k +-7836.2954 8541.1182 m +-7836.7998 8540.3418 -7837.4063 8539.5889 -7838.1138 8538.8828 c +-7839.7656 8537.2285 -7841.6846 8536.1113 -7843.5337 8535.5957 C +-7843.585 8535.6309 L +-7845.4082 8540.5537 L +-7844.2114 8540.9219 -7842.9878 8541.6436 -7841.9302 8542.7012 c +-7841.7202 8542.9141 -7841.5264 8543.1328 -7841.3408 8543.3574 C +-7836.3262 8541.1289 L +-7836.2954 8541.1182 L +f U u 0.445 0.356 0.267 0 k +-7883.8496 8585.9961 m +-7861.957 8562.9688 L +-7862.2007 8562.6494 -7862.5752 8562.6133 -7862.8887 8562.6592 C +-7867.1802 8567.2891 -7878.3145 8579.4561 -7882.7266 8584.2793 C +-7883.5649 8585.3516 -7884 8585.9932 -7883.8496 8585.9961 C +f 0.15 0.12 0.09 0 k +-7883.834 8585.9961 m +-7882.6606 8585.7031 -7861.6934 8564.0029 Y +-7861.6934 8563.502 -7861.7993 8563.1758 -7861.957 8562.9688 C +-7883.8496 8585.9961 L +-7883.8442 8585.9961 -7883.8418 8586 -7883.834 8585.9961 c +f 0.2 0.16 0.12 0 k +-7882.7266 8584.2793 m +-7878.3145 8579.4561 -7867.1802 8567.2891 -7862.8887 8562.6592 C +-7863.2002 8562.7041 -7863.4526 8562.8301 Y +-7864.603 8563.1328 -7878.5742 8578.9619 -7882.7266 8584.2793 C +f U U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 37) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7882.9502 8585.2324 m +-7833.0391 8585.2324 L +-7833.0391 8521.1152 L +-7882.9502 8521.1152 L +-7882.9502 8585.2324 L +n u 0 O +0 0 0 1 k +0 R +0 0 0 1 K +0 w -7833.2358 8521.1152 m +-7833.6064 8521.248 -7833.9858 8521.2832 -7834.3833 8521.2031 c +-7834.4863 8521.168 l +-7834.5254 8521.1602 -7834.5703 8521.1787 -7834.6025 8521.1992 c +-7834.9434 8521.3926 l +-7838.7129 8523.2959 -7842.0962 8525.8965 -7844.5 8529.4473 c +-7845.9634 8531.5918 -7847.123 8533.8789 -7848.7993 8535.8564 c +-7849.1729 8536.209 -7849.1758 8536.7725 -7848.834 8537.1309 c +-7848.4951 8537.501 -7847.918 8537.5078 -7847.561 8537.165 c +-7847.4038 8537.21 l +-7847.2642 8537.1289 -7847.0742 8537.0703 -7847.0234 8536.957 c +-7845.853 8534.2031 -7845.1895 8531.5137 -7843.4336 8529.1387 c +-7841.1719 8526.0947 -7838.1777 8523.9941 -7835.0298 8522.0234 c +-7834.3672 8521.6055 L +-7834.4966 8521.6348 L +-7833.7695 8521.6426 l +-7833.791 8521.6113 -7833.8008 8521.5957 -7833.8223 8521.5645 C +-7833.6064 8521.5234 -7833.377 8521.4746 -7833.1626 8521.4336 c +-7833.0762 8521.4238 -7833.0186 8521.3389 -7833.0391 8521.2383 c +-7833.0503 8521.1523 -7833.1382 8521.1084 -7833.2358 8521.1152 c +-7833.2358 8521.1152 l +b -7849.2222 8534.9951 m +-7849.5742 8534.8066 -7849.9658 8534.6719 -7850.248 8534.3887 c +-7856.4521 8528.1719 -7866.6802 8527.2734 -7874.0488 8533.6855 C +-7874.1582 8533.7813 -7874.1582 8533.957 -7874.063 8534.0645 C +-7871.0527 8532.9434 -7862.8838 8534.375 -7859.3223 8537.4121 C +-7859.2534 8537.4668 -7859.1465 8537.4531 -7859.1055 8537.3711 C +-7859.0503 8537.3047 -7859.0664 8537.1953 -7859.1328 8537.1563 C +-7862.5625 8534.0859 -7867.0674 8532.29 -7871.6729 8532.748 C +-7868.8535 8531.1855 -7865.6313 8530.4941 -7862.3984 8530.6885 c +-7857.7144 8530.9717 -7853.4634 8533.1191 -7849.3711 8535.2793 c +-7849.291 8535.3193 -7849.1978 8535.293 -7849.1553 8535.2109 C +-7849.1016 8535.1309 -7849.1426 8535.0352 -7849.2222 8534.9951 c +b -7858.647 8536.3359 m +-7860.2266 8540.3613 -7862.3911 8544.3203 -7865.8018 8547.0762 c +-7865.9648 8547.2119 -7865.9946 8547.4492 -7865.8711 8547.6055 c +-7865.7344 8547.7676 -7865.5049 8547.7793 -7865.3481 8547.6563 c +-7861.123 8545.5967 -7858.1904 8541.1309 -7858.1626 8536.4014 c +-7858.1626 8536.4014 l +-7858.1328 8536.2676 -7858.2354 8536.1348 -7858.3633 8536.1221 c +-7858.5039 8536.1055 -7858.6318 8536.1973 -7858.647 8536.3359 c +-7858.647 8536.3359 l +b -7852.9414 8541.0176 m +-7853.042 8541.1816 -7853.1152 8541.3838 -7853.2617 8541.4824 c +-7856.0806 8543.3906 -7858.9785 8544.6309 -7861.8848 8546.1328 c +-7862.0503 8546.209 -7862.1118 8546.418 -7862.0313 8546.5703 c +-7861.9512 8546.7227 -7861.7559 8546.7793 -7861.5898 8546.7041 c +-7858.439 8545.3232 -7854.313 8544.5 -7852.6729 8541.1797 c +-7852.6289 8541.1113 -7852.6455 8541.0146 -7852.7266 8540.9648 c +-7852.7959 8540.9199 -7852.897 8540.9492 -7852.9414 8541.0176 c +-7852.9414 8541.0176 l +b -7852.6602 8541.918 m +-7852.4438 8542.4297 -7852.1431 8542.8896 -7852.0503 8543.4355 c +-7851.2183 8548.2773 -7851.1152 8553.042 -7852.248 8557.6875 c +-7852.248 8557.6875 l +-7852.3418 8557.9531 -7852.2114 8558.2441 -7851.9438 8558.3389 c +-7851.6777 8558.4336 -7851.3882 8558.3125 -7851.2935 8558.0479 c +-7849.293 8552.8115 -7849.897 8546.7373 -7852.3711 8541.7832 c +-7852.4063 8541.7002 -7852.498 8541.6689 -7852.582 8541.6914 c +-7852.6641 8541.7275 -7852.6978 8541.835 -7852.6602 8541.918 c +-7852.6602 8541.918 l +b -7851.5352 8557.5938 m +-7848.8984 8555.2275 -7846.6816 8552.252 -7845.853 8548.7363 c +-7845.853 8548.7363 l +-7845.7246 8548.1816 -7846.0742 8547.623 -7846.6416 8547.4902 c +-7847.1992 8547.375 -7847.7578 8547.7246 -7847.8862 8548.2793 c +-7848.5649 8551.5313 -7849.8711 8554.6729 -7851.7954 8557.3867 c +-7851.7954 8557.3867 l +-7851.8462 8557.4551 -7851.834 8557.5576 -7851.7695 8557.6201 c +-7851.6992 8557.6699 -7851.5977 8557.6582 -7851.5352 8557.5938 c +-7851.5352 8557.5938 l +b -7836.3711 8550.1826 m +-7837.7114 8545.8301 -7840.2598 8542.0693 -7843.689 8539.1533 C +-7843.729 8539.0723 -7843.8242 8539.0322 -7843.9038 8539.0859 C +-7843.9863 8539.127 -7844.0122 8539.2207 -7843.9722 8539.3018 C +-7843.957 8539.7891 -7843.7144 8540.2334 -7843.4458 8540.5313 c +-7838.4063 8546.1621 -7834.9902 8554.7197 -7837.3433 8561.9551 C +-7837.0762 8556.4512 -7838.7241 8550.3008 -7842.1362 8545.6738 c +-7843.1606 8544.2695 -7844.7422 8544.1211 -7846.3081 8544.2031 C +-7846.4023 8544.1895 -7846.4834 8544.2432 -7846.4961 8544.3369 c +-7846.5098 8544.4189 -7846.4551 8544.5137 -7846.3623 8544.5254 C +-7843.1479 8545.7695 -7841.4878 8549.2246 -7840.084 8552.1943 c +-7838.415 8555.7441 -7837.7017 8559.6387 -7838.0054 8563.5 C +-7838.0454 8563.6777 -7838.1138 8565.3975 -7837.9775 8565.4102 C +-7837.8306 8565.4395 -7837.709 8565.3438 -7837.6802 8565.1943 C +-7837.645 8565.0449 -7834.6426 8555.7988 -7836.3711 8550.1826 c +b -7844.4863 8537.4912 m +-7843.3945 8533.6211 -7841.1094 8530.251 -7838.4824 8527.2383 c +-7838.3306 8527.1045 -7838.3145 8526.8867 -7838.4502 8526.7354 c +-7838.5752 8526.6006 -7838.8047 8526.582 -7838.957 8526.7178 c +-7842.3306 8529.332 -7843.4487 8533.541 -7844.7954 8537.375 c +-7844.7954 8537.375 l +-7844.8262 8537.4648 -7844.7754 8537.5586 -7844.6982 8537.5869 c +-7844.6094 8537.6191 -7844.5166 8537.5684 -7844.4863 8537.4912 c +-7844.4863 8537.4912 l +b -7838.5313 8562.1094 m +-7838.5991 8562.0566 -7838.707 8562.083 -7838.748 8562.1504 C +-7838.9634 8562.4746 -7840.6914 8564.5195 -7841.3926 8565.1406 c +-7846.1719 8569.3945 -7849.5137 8573.9609 -7857.5391 8577.7227 c +-7864.4512 8580.9639 -7867.1113 8583.5957 -7874.3862 8581.8262 c +-7877.687 8581.0293 -7879.0313 8580.5313 -7880.4351 8575.4551 C +-7881.9473 8569.2988 -7880.8672 8571.7832 -7881.084 8564.4385 c +-7881.2222 8559.6973 -7884 8548.4551 -7871.5254 8534.2598 C +-7871.4199 8534.1484 -7871.4336 8533.9961 -7871.5337 8533.9072 C +-7871.6328 8533.8027 -7871.7959 8533.8164 -7871.8862 8533.916 C +-7877.5786 8538.7168 -7881.0234 8545.6582 -7882.3145 8552.9424 c +-7883.2871 8558.4668 -7882.9199 8563.25 -7882.666 8569.6367 c +-7882.5688 8572.0938 -7883.6855 8579.0723 -7878.9102 8583.0625 c +-7875.3926 8586 -7870.3911 8585.5469 -7866.3545 8584.1563 c +-7860.6992 8582.2119 -7855.9727 8579.1465 -7850.8711 8575.6094 c +-7847.2656 8573.125 -7839.2881 8563.2852 -7838.4785 8562.3262 C +-7838.4351 8562.2588 -7838.4502 8562.1504 -7838.5313 8562.1094 C +b -7873.0503 8549.3057 m +-7872.168 8548.5029 -7871.7017 8549.8457 -7871.4297 8550.6016 c +-7871.1626 8551.3574 -7870.189 8551.25 -7870.5127 8551.5732 c +-7870.8369 8551.8975 -7870.8369 8551.9521 -7871.3232 8551.5195 c +-7871.8086 8551.0879 -7871.8086 8551.7363 -7872.5649 8551.25 c +-7873.3198 8550.7627 -7873.645 8549.8457 -7873.0503 8549.3057 c +b -7865.6519 8553.9492 m +-7865.3657 8553.5918 -7864.6802 8553.5723 -7864.4648 8553.8945 c +-7864.25 8554.2197 -7863.3306 8554.2734 -7863.4937 8554.5967 c +-7863.6543 8554.9219 -7863.6016 8555.1387 -7864.0874 8554.9219 c +-7864.5737 8554.7051 -7864.4121 8555.2998 -7864.897 8555.084 c +-7865.3833 8554.8672 -7865.8687 8554.2197 -7865.6519 8553.9492 c +b -7857.6074 8559.0791 m +-7857.1206 8558.7559 -7855.8794 8559.5117 -7856.4727 8559.5117 c +-7857.0674 8559.5117 -7856.311 8560.2676 -7856.8521 8560.4834 c +-7857.3906 8560.6992 -7857.2832 8560.4297 -7857.6074 8560.6445 c +-7857.9297 8560.8613 -7858.3633 8561.2393 -7858.5239 8560.4297 c +-7858.6855 8559.6191 -7858.3633 8559.6191 -7857.9849 8559.3496 c +-7857.6074 8559.0791 -7857.6074 8559.0791 y +b -7872.2402 8559.3496 m +-7871.1074 8559.2422 -7871.8633 8559.998 -7871.269 8560.4834 c +-7870.6738 8560.9697 -7869.918 8561.6172 -7870.729 8561.4004 c +-7871.5391 8561.1855 -7872.9961 8561.6719 -7872.9434 8560.5381 c +-7872.8887 8559.4033 -7872.6328 8559.3867 -7872.2402 8559.3496 c +b -7866.5703 8567.6113 m +-7866.1016 8567.3438 -7866.6802 8567.7197 -7866.0303 8567.6113 c +-7865.3833 8567.5039 -7864.7886 8567.6113 -7865.2207 8567.8281 c +-7865.6519 8568.0439 -7866.3008 8568.1523 -7866.4634 8567.9893 c +-7866.625 8567.8281 -7866.9473 8567.8281 -7866.5703 8567.6113 c +b -7857.0674 8567.1797 m +-7857.4785 8566.1797 -7856.0962 8566.4238 -7855.4473 8566.7461 c +-7854.7998 8567.0723 -7853.8262 8566.4775 -7854.4209 8566.9102 c +-7855.0137 8567.3418 -7854.7998 8566.9102 -7855.3926 8567.2334 c +-7855.9873 8567.5566 -7856.6895 8568.0977 -7857.0674 8567.1797 c +b -7872.6738 8573.0664 m +-7872.7222 8572.0752 -7871.8086 8572.957 -7871.269 8573.0117 c +-7870.729 8573.0664 -7870.0801 8573.0664 -7870.2432 8573.2813 c +-7870.4038 8573.498 -7870.459 8573.498 -7871.1626 8573.7129 c +-7871.8633 8573.9297 -7872.6191 8574.1445 -7872.6738 8573.0664 c +b -7873.1582 8567.6113 m +-7874.0664 8567.9746 -7874.293 8567.8809 -7874.5625 8568.2051 c +-7874.834 8568.5293 -7875.1558 8569.2314 -7875.5352 8568.0977 c +-7875.9121 8566.9629 -7875.4282 8565.7764 -7875.0479 8565.9375 c +-7874.6714 8566.0996 -7874.293 8566.7461 -7873.8618 8566.9629 c +-7873.4297 8567.1797 -7872.6191 8567.3945 -7873.1582 8567.6113 c +b U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 41) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884 8586 m +-7803 8586 L +-7803 8481 L +-7884 8481 L +-7884 8586 L +n u u u 0 O +0 0 0 1 k +-7865.8057 8498.4258 m +-7866.0742 8496.6621 -7867.1602 8495.291 -7868.5239 8495.3965 c +-7869.8862 8495.502 -7870.707 8497.0234 -7870.7432 8498.8066 c +-7870.748 8499.0693 -7870.6743 8500.2441 -7870.6304 8500.4775 C +-7870.6382 8500.582 -7870.6191 8500.6738 -7870.6104 8500.7803 c +-7870.5142 8502.0254 -7869.3574 8503.3604 -7867.9414 8503.25 c +-7866.5249 8503.1406 -7865.4897 8501.8613 -7865.6367 8500.4727 c +-7865.644 8500.4072 -7865.6958 8499.626 -7865.707 8499.5625 C +-7865.6816 8499.2852 -7865.7598 8498.7256 -7865.8057 8498.4258 c +f -7876.2646 8507.7334 m +-7876.9946 8515.916 -7871.5015 8515.1191 v +-7868.3682 8514.0186 -7869.4414 8511.1211 v +-7869.6426 8509.752 -7871.7847 8508.498 v +-7872.146 8508.25 -7872.7632 8507.1016 v +-7873.1294 8505.5977 -7874.5186 8505.2979 v +-7876.0762 8505.251 -7876.2646 8507.7334 v +f -7850.7646 8516.4971 m +F -7850.0762 8514.3408 m +-7850.7847 8513.1934 -7853.8848 8513.6279 Y +-7854.811 8513.6885 -7855.3799 8513.1113 Y +-7857.8394 8509.0918 -7861.0386 8509.8857 -7861.4082 8509.9932 C +-7861.4097 8509.9863 L +-7864.999 8510.6045 -7865.2666 8515.6035 V +-7865.4912 8516.3828 -7866.335 8516.7695 V +-7869.2695 8517.8613 -7869.3481 8519.208 V +-7869.8999 8521.1152 -7867.6006 8521.7422 V +-7865.6792 8522.2568 -7863.7886 8519.8945 V +-7862.6113 8518.6797 -7859.5762 8517.9395 V +-7859.5728 8517.9531 L +-7856.3594 8517.0459 -7854.6392 8517.5889 Y +-7851.8521 8518.7676 -7850.4063 8517.4014 Y +-7848.6826 8515.7559 -7850.0762 8514.3408 Y +f -7863.9834 8497.8789 m +-7864.5854 8496.2002 -7864.2822 8494.4775 -7863.0327 8493.9229 c +-7861.7842 8493.3672 -7860.3384 8494.3164 -7859.4585 8495.8672 c +-7859.3286 8496.0957 -7858.8359 8497.165 -7858.7632 8497.3906 C +-7858.7065 8497.4785 -7858.6792 8497.5684 -7858.6362 8497.667 c +-7858.1289 8498.8086 -7858.5122 8500.5303 -7859.8105 8501.1074 c +-7861.1089 8501.6855 -7862.6279 8501.0527 -7863.1582 8499.7617 c +-7863.1831 8499.7002 -7863.5078 8498.9883 -7863.5298 8498.9268 C +-7863.6831 8498.6963 -7863.8809 8498.166 -7863.9834 8497.8789 c +f -7849.7129 8500.9316 m +-7845.1802 8507.7822 -7850.3911 8509.6943 v +-7853.6714 8510.2168 -7854.103 8507.1572 v +-7854.5786 8505.8564 -7853.29 8503.7354 v +-7853.0903 8503.3447 -7853.0938 8502.04 v +-7853.4858 8500.5449 -7852.4082 8499.6182 v +-7851.0591 8498.8359 -7849.7129 8500.9316 v +f U u -7824.7358 8550.1074 m +-7824.3687 8548.3623 -7824.9048 8546.6963 -7826.2183 8546.3164 c +-7827.5322 8545.9375 -7828.8345 8547.0752 -7829.4937 8548.7324 c +-7829.5903 8548.9775 -7829.9326 8550.1025 -7829.9746 8550.3369 C +-7830.0176 8550.4326 -7830.0322 8550.5244 -7830.0625 8550.6279 c +-7830.4087 8551.8271 -7829.7935 8553.4805 -7828.4282 8553.875 c +-7827.063 8554.2695 -7825.645 8553.4365 -7825.2969 8552.085 c +-7825.2793 8552.0205 -7825.0552 8551.2705 -7825.0425 8551.207 C +-7824.9214 8550.9551 -7824.7983 8550.4053 -7824.7358 8550.1074 c +f -7838.2705 8554.6172 m +-7841.8242 8562.0244 -7836.3999 8563.2061 v +-7833.0801 8563.2754 -7833.0688 8560.1846 v +-7832.7778 8558.8311 -7834.3433 8556.9072 v +-7834.5942 8556.5459 -7834.7695 8555.2539 v +-7834.5854 8553.7188 -7835.7793 8552.9492 v +-7837.2222 8552.3594 -7838.2705 8554.6172 v +f -7817.4648 8571.7695 m +F -7816.063 8569.9912 m +-7816.3247 8568.6689 -7819.3799 8567.9883 Y +-7820.27 8567.7197 -7820.5986 8566.9795 Y +-7821.4922 8562.3535 -7824.7666 8561.9746 -7825.1494 8561.9453 C +-7825.1494 8561.9395 L +-7828.7271 8561.2588 -7830.731 8565.8467 V +-7831.2153 8566.4961 -7832.1416 8566.5625 V +-7835.272 8566.5557 -7835.8169 8567.7891 V +-7837.0039 8569.3809 -7835.0713 8570.7764 V +-7833.4526 8571.9316 -7830.853 8570.3818 V +-7829.3242 8569.6582 -7826.2222 8570.0293 V +-7826.2231 8570.042 L +-7822.896 8570.3213 -7821.4766 8571.4326 Y +-7819.2793 8573.5146 -7817.4463 8572.7432 Y +-7815.2554 8571.8057 -7816.063 8569.9912 Y +f -7822.8374 8550.2354 m +-7822.813 8548.4512 -7821.9258 8546.9453 -7820.5601 8546.8633 c +-7819.1943 8546.7803 -7818.1743 8548.1768 -7817.895 8549.9385 c +-7817.854 8550.1973 -7817.7666 8551.3711 -7817.7778 8551.6094 C +-7817.7559 8551.7109 -7817.7617 8551.8037 -7817.7559 8551.9121 c +-7817.6807 8553.1592 -7818.644 8554.6367 -7820.0625 8554.7217 c +-7821.4814 8554.8066 -7822.6826 8553.6826 -7822.7246 8552.2871 c +-7822.7271 8552.2217 -7822.7822 8551.4404 -7822.7798 8551.375 C +-7822.8433 8551.1045 -7822.8423 8550.54 -7822.8374 8550.2354 c +f -7811.0186 8557.5625 m +-7809.1777 8565.5684 -7814.7271 8565.5303 v +-7817.9834 8564.8691 -7817.3154 8561.8516 v +-7817.3032 8560.4668 -7815.353 8558.9326 v +-7815.0278 8558.6377 -7814.5742 8557.415 v +-7814.417 8555.876 -7813.083 8555.3877 v +-7811.5454 8555.1279 -7811.0186 8557.5625 v +f U U 1 Ap +-7884 8586 m +-7884 8481 L +-7803 8481 L +-7803 8586 L +-7884 8586 L +n U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 42) +0 A +u 0 Ap +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7857.4609 8559.085 m +-7885 8559.085 L +-7885 8586.624 L +-7857.4609 8586.624 L +-7857.4609 8559.085 L +n 0 O +0 0.55 1 0.12 k +-7871.7598 8577.3623 m +-7871.7598 8587 L +-7870.6343 8587 L +-7870.6343 8577.3623 L +-7871.7598 8577.3623 L +f 0 0.55 1 0.3 k +-7875.4233 8572.876 m +-7874.3096 8571.1553 -7870.8809 8569.457 -7866.4966 8569.457 c +-7862.1152 8569.457 -7858.6138 8571.1064 -7857.5718 8572.874 C +-7857.5718 8572.874 L +-7858.6138 8574.6006 -7862.1152 8576.2979 -7866.4966 8576.2979 c +-7870.875 8576.2979 -7874.3242 8574.5615 -7875.4233 8572.876 C +f U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 45) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7885 8543.918 m +-7885 8587 L +-7798.2217 8587 L +-7798.2217 8543.918 L +-7885 8543.918 L +n u u 0 O +0 0 0 1 k +-7825.2217 8573.2363 m +-7825.2217 8581.0742 L +-7813.2217 8574.1445 L +-7801.2217 8567.2168 L +-7813.2217 8560.2891 L +-7825.2217 8553.3613 L +-7825.2217 8561.4824 L +-7883.9351 8547.7168 L +-7870.9878 8566.8027 L +-7885 8587 L +-7825.2217 8573.2363 L +f 0 1 1 0.1 k +0 R +0 0 0 1 K +-7823.2217 8570.2363 m +-7823.2217 8578.0742 L +-7811.2217 8571.1445 L +-7799.2217 8564.2168 L +-7811.2217 8557.2891 L +-7823.2217 8550.3613 L +-7823.2217 8558.4824 L +-7881.9351 8544.7168 L +-7867.2754 8564.3594 L +-7881.9351 8584 L +-7823.2217 8570.2363 L +b U U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 50) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884 8586 m +-7756.877 8586 L +-7756.877 8538.415 L +-7884 8538.415 L +-7884 8586 L +n u *u +0 O +0.9529 0.949 0.1961 0.0745 k +-7857.793 8570.417 m +-7857.8232 8570.2676 L +-7859.9849 8564.3643 -7860.9438 8561.6377 -7861.2754 8560.2891 c +-7861.3657 8560.2891 L +-7861.6953 8561.6074 -7862.7754 8564.335 -7864.9673 8570.2676 c +-7864.9966 8570.417 L +-7857.793 8570.417 l +f 1 D +-7868.1182 8578.9678 m +-7869.6191 8582.5371 -7870.3994 8584.709 -7868.1182 8584.917 c +-7868.1182 8585.9678 L +-7870.6992 8585.9375 -7873.5806 8585.917 -7876.3418 8585.917 c +-7880.0649 8585.917 -7882.5273 8585.9375 -7884 8585.9678 c +-7884 8584.917 L +-7882.1064 8584.709 -7881.0542 8582.5674 -7873.5513 8565.5029 c +-7861.6953 8538.415 L +-7859.8638 8538.415 L +-7848.1582 8565.5029 L +-7840.8047 8582.5078 -7839.7246 8584.709 -7837.8887 8584.917 c +-7837.8887 8585.9678 L +-7839.5142 8585.9375 -7841.916 8585.917 -7845.5767 8585.917 c +-7848.5488 8585.917 -7851.6694 8585.9375 -7854.7026 8585.9678 c +-7854.7026 8584.917 L +-7852.481 8584.709 -7853.3218 8582.5078 -7854.7617 8578.9678 C +-7868.1182 8578.9678 l +f *U +*u +0 D +-7813.0762 8554.0811 m +-7813.0762 8550.4717 -7815.3535 8548.0947 -7819.1294 8548.0947 c +-7820.2383 8548.0947 -7821.0767 8548.2158 -7821.5273 8548.2451 c +-7821.5273 8560.5479 L +-7820.8672 8560.6084 -7820.208 8560.6084 -7819.729 8560.6084 c +-7818.2002 8560.6084 -7816.7026 8560.127 -7815.6841 8559.4053 c +-7814.3945 8558.5332 -7813.0762 8556.7881 -7813.0762 8554.1416 C +-7813.0762 8554.0811 l +f 1 D +-7832.0806 8558.3926 m +-7832.0806 8542.6445 -7832.0806 8540.4287 -7834.542 8540.2783 c +-7834.542 8539.3184 L +-7833.042 8539.2588 -7830.3174 8539.1992 -7827.5664 8539.1689 c +-7825.6538 8539.1084 -7822.3945 8539.0186 -7820.1479 8538.9775 c +-7816.582 8538.9775 -7813.585 8539.4258 -7811.0049 8540.2627 c +-7806.353 8541.8477 -7801.9702 8545.8525 -7801.9702 8553.6602 c +-7801.9702 8558.7432 -7804.4014 8562.3193 -7806.5034 8564.0605 c +-7807.583 8565.0215 -7808.8135 8565.832 -7809.7744 8566.3125 c +-7809.7744 8566.4629 L +-7807.5234 8569.4912 -7805.6025 8572.0625 -7799.3906 8580.6426 c +-7797.5 8583.0645 -7795.9102 8584.7383 -7794.7402 8584.9775 c +-7794.7402 8586 L +-7796.6602 8586 -7799 8585.8848 -7801.1294 8585.8848 c +-7803.3511 8585.8848 -7804.8521 8586 -7806.4424 8586 c +-7807.6729 8586 -7808.7241 8585.9404 -7809.5039 8585.2725 c +-7813.0151 8579.8477 -7816.9121 8573.7559 -7820.1182 8568.7139 c +-7820.5078 8568.7139 -7820.957 8568.7139 -7821.5273 8568.7139 c +-7821.5273 8571.2852 L +-7821.5273 8582.5264 -7821.437 8584.7686 -7819.1895 8584.9775 c +-7819.1895 8585.9697 L +-7820.6279 8585.9404 -7823.9194 8585.915 -7826.6992 8585.915 c +-7829.9287 8585.915 -7832.8921 8585.9404 -7834.5122 8585.9697 c +-7834.5122 8584.9775 L +-7832.0518 8584.7686 -7832.0806 8582.5264 -7832.0806 8565.5918 C +-7832.0806 8558.3926 l +f *U +*u +0 D +-7781.4561 8565.5928 m +-7781.4561 8582.4941 -7781.4561 8584.6484 -7784.2832 8584.9775 C +-7784.2832 8585.9697 l +-7782.3887 8585.9404 -7779.0542 8585.915 -7775.7822 8585.915 c +-7772.6294 8585.915 -7769.5688 8585.9404 -7767.2881 8585.9697 C +-7767.2881 8584.9775 l +-7770.2578 8584.9775 -7770.2881 8582.5244 -7770.2881 8565.5928 C +-7770.2881 8548.1514 L +-7762.8193 8548.1514 l +-7759.999 8548.1514 -7758.5298 8548.96 -7757.8994 8551.2627 C +-7756.9072 8551.2627 l +-7756.9072 8546.4697 -7756.877 8542.415 -7756.877 8539.1709 c +-7761.3486 8539.2012 -7766.748 8539.2314 -7772.0601 8539.2314 C +-7779.7446 8539.2314 l +-7784.5537 8539.2314 -7789.9966 8539.2012 -7794.9614 8539.1709 c +-7794.9614 8542.3848 -7794.9326 8546.4697 -7794.9326 8551.2627 C +-7793.9072 8551.2627 l +-7793.3657 8549.1094 -7791.771 8548.1514 -7788.9438 8548.1514 C +-7781.4561 8548.1514 l +-7781.4561 8565.5928 L +f *U +U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 62) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7885 8587 m +-7885 8548.7305 L +-7846.7305 8548.7305 L +-7846.7305 8587 L +-7885 8587 L +n 0 O +1 0.14 0.09 0 k +-7846.7305 8569.9043 m +-7846.7305 8561.3408 L +-7885 8561.3408 L +-7885 8569.9043 L +-7846.7305 8569.9043 L +f -7846.7305 8573.0967 m +-7846.7305 8572.4229 L +-7885 8572.4229 L +-7885 8573.0967 L +-7846.7305 8573.0967 L +f U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 63) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7885 8587 m +-7885 8548.7305 L +-7846.7305 8548.7305 L +-7846.7305 8587 L +-7885 8587 L +n 0 O +1 0.14 0.09 0 k +-7846.7305 8565.8262 m +-7846.7305 8574.3896 L +-7859.3408 8574.3896 L +-7859.3408 8587 L +-7867.9038 8587 L +-7867.9063 8565.8262 L +-7867.9038 8565.8262 L +-7867.9038 8565.8252 L +-7846.7305 8565.8262 L +f -7846.7305 8563.3076 m +-7870.4233 8563.3076 L +-7870.4233 8587 L +-7871.0967 8587 L +-7871.0977 8562.6328 L +-7846.7305 8562.6328 L +-7846.7305 8563.3076 L +f U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 64) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7885 8586.999 m +-7885 8548.7285 L +-7846.7305 8548.7285 L +-7846.7305 8586.999 L +-7885 8586.999 L +n 0 O +1 0.14 0.09 0 k +-7846.7305 8561.3389 m +-7872.3896 8561.3389 L +-7872.3896 8586.999 L +-7863.8262 8587 L +-7863.8262 8569.9033 L +-7846.7305 8569.9033 L +-7846.7305 8561.3389 L +f -7846.7305 8572.4219 m +-7861.3081 8572.4219 L +-7861.3081 8587 L +-7860.6338 8587 L +-7860.6338 8573.0957 L +-7846.7305 8573.0957 L +-7846.7305 8572.4219 L +f U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 65) +0 A +u 1 Ap +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7857.0625 8559.4609 m +-7884.6025 8559.4609 L +-7884.6025 8587 L +-7857.0625 8587 L +-7857.0625 8559.4609 L +n 0 O +0 0.55 1 0.12 k +-7856.8418 8572.7002 m +-7885 8572.7002 L +-7885 8573.8252 L +-7856.8418 8573.8252 L +-7856.8418 8572.7002 L +f u 0 0.55 1 0.3 k +-7883.9814 8560.5215 m +-7884.4102 8562.5254 -7883.1865 8566.1514 -7880.0874 8569.251 c +-7876.9878 8572.3496 -7873.3457 8573.6602 -7871.3594 8573.1455 C +-7871.3594 8573.1455 L +-7870.875 8571.1895 -7872.1519 8567.5117 -7875.25 8564.4141 c +-7878.3457 8561.3184 -7882.0122 8560.1064 -7883.9814 8560.5215 C +f 0 0.39 0.7 0.12 k +-7883.9814 8585.9912 m +-7884.4102 8583.9883 -7883.1865 8580.3613 -7880.0874 8577.2617 c +-7876.9878 8574.1641 -7873.3457 8572.8535 -7871.3594 8573.3672 C +-7871.3594 8573.3672 L +-7870.875 8575.3242 -7872.1519 8579.001 -7875.25 8582.0996 c +-7878.3457 8585.1953 -7882.0122 8586.4063 -7883.9814 8585.9912 C +f U u 0 0.55 1 0.3 k +-7870.1782 8585.9912 m +-7870.6074 8583.9883 -7869.3838 8580.3613 -7866.2842 8577.2617 c +-7863.1855 8574.1641 -7859.543 8572.8535 -7857.5576 8573.3672 C +-7857.5566 8573.3672 L +-7857.0718 8575.3242 -7858.3496 8579.001 -7861.4473 8582.0996 c +-7864.543 8585.1953 -7868.209 8586.4063 -7870.1782 8585.9912 C +f 0 0.39 0.7 0.12 k +-7870.1782 8560.5215 m +-7870.6074 8562.5254 -7869.3838 8566.1514 -7866.2842 8569.251 c +-7863.1855 8572.3496 -7859.543 8573.6602 -7857.5576 8573.1455 C +-7857.5566 8573.1455 L +-7857.0718 8571.1895 -7858.3496 8567.5117 -7861.4473 8564.4141 c +-7864.543 8561.3184 -7868.209 8560.1064 -7870.1782 8560.5215 C +f U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 67) +0 A +u 0 Ap +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7857.4609 8559.085 m +-7885 8559.085 L +-7885 8586.624 L +-7857.4609 8586.624 L +-7857.4609 8559.085 L +n 0 O +0 0.55 1 0.12 k +-7871.7598 8577.3623 m +-7871.7598 8587 L +-7870.6343 8587 L +-7870.6343 8577.3623 L +-7871.7598 8577.3623 L +f 0 0.55 1 0.3 k +-7875.4233 8572.876 m +-7874.3096 8571.1553 -7870.8809 8569.457 -7866.4966 8569.457 c +-7862.1152 8569.457 -7858.6138 8571.1064 -7857.5718 8572.874 C +-7857.5718 8572.874 L +-7858.6138 8574.6006 -7862.1152 8576.2979 -7866.4966 8576.2979 c +-7870.875 8576.2979 -7874.3242 8574.5615 -7875.4233 8572.876 C +f U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 69) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7857.4609 8559.4609 m +-7885 8559.4609 L +-7885 8587 L +-7857.4609 8587 L +-7857.4609 8559.4609 L +n 0 O +0 0.55 1 0.3 k +-7875.4233 8573.252 m +-7874.3096 8571.5313 -7870.8809 8569.833 -7866.4966 8569.833 c +-7862.1152 8569.833 -7858.6138 8571.4824 -7857.5718 8573.25 C +-7857.5718 8573.25 L +-7858.6138 8574.9766 -7862.1152 8576.6738 -7866.4966 8576.6738 c +-7870.875 8576.6738 -7874.3242 8574.9375 -7875.4233 8573.252 C +f U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 83) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884 8585.9355 m +-7670.4009 8585.9355 L +-7670.4009 8578.1348 L +-7884 8578.1348 L +-7884 8585.9355 L +n 0 O +0 0 0 1 k +-7884 8582.0352 m +-7873.9858 8584.5273 -7867.187 8585.875 -7855.2007 8585.9355 c +-7842.2183 8586 -7777.2002 8585.9355 y +-7712.1816 8586 -7699.2002 8585.9355 v +-7687.2129 8585.875 -7680.415 8584.5273 -7670.4009 8582.0352 C +-7680.415 8579.543 -7687.2129 8578.1953 -7699.2002 8578.1348 c +-7712.1816 8578.0693 -7777.2002 8578.1348 y +-7842.2183 8578.0693 -7855.2007 8578.1348 v +-7867.187 8578.1953 -7873.9858 8579.543 -7884 8582.0352 C +f U %AI8_EndBrushPattern +%AI5_End_NonPrinting-- +%AI5_Begin_NonPrinting +Np +4 Bn +%AI5_BeginGradient: (Black, White) +(Black, White) 0 2 Bd +[ +< +FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 +D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 +AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 +87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 +5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 +37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 +0F0E0D0C0B0A09080706050403020100 +> +0 %_Br +[ +0 0 50 100 %_BS +%_0 0 50 100 Bs +1 0 50 0 %_BS +%_1 0 50 0 Bs +BD +%AI5_EndGradient +%AI5_BeginGradient: (Chrome) +(Chrome) 0 6 Bd +[ +0 +< +464646454545444444444343434342424241414141404040403F3F3F3E3E3E3E3D3D3D3C3C3C3C3B +3B3B3B3A3A3A39393939383838383737373636363635353535343434333333333232323131313130 +3030302F2F2F2E2E2E2E2D2D2D2D2C2C2C2B2B2B2B2A2A2A2A292929282828282727272626262625 +2525252424242323232322222222212121202020201F1F1F1F1E1E1E1D1D1D1D1C1C1C1B1B1B1B1A +1A1A1A1919191818181817171717161616151515151414141413131312121212111111101010100F +0F0F0F0E0E0E0D0D0D0D0C0C0C0C0B0B0B0A0A0A0A09090909080808070707070606060505050504 +04040403030302020202010101010000 +> +< +FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 +D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 +AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 +87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 +5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 +37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 +0F0E0D0C0B0A09080706050403020100 +> +< +1F1E1E1E1E1E1E1E1E1E1D1D1D1D1D1D1D1D1C1C1C1C1C1C1C1C1B1B1B1B1B1B1B1B1B1A1A1A1A1A +1A1A1A19191919191919191818181818181818181717171717171717161616161616161615151515 +15151515151414141414141414131313131313131312121212121212121211111111111111111010 +1010101010100F0F0F0F0F0F0F0F0F0E0E0E0E0E0E0E0E0D0D0D0D0D0D0D0D0C0C0C0C0C0C0C0C0C +0B0B0B0B0B0B0B0B0A0A0A0A0A0A0A0A090909090909090909080808080808080807070707070707 +07060606060606060606050505050505050504040404040404040303030303030303030202020202 +02020201010101010101010000000000 +> +1 %_Br +0 +0.275 +1 +< +6B6A696867666564636261605F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544 +434241403F3E3D3C3B3A393837363534333231302F2E2D2C2B2A292827262524232221201F +> +1 %_Br +0 +< +00000101010102020202030303040404040505050606060607070707080808090909090A0A0A0A0B +0B0B0C0C0C0C0D0D0D0D0E0E0E0F0F0F0F1010101111111112121212131313141414141515151516 +161617171717181818181919191A1A1A1A1B1B1B1C1C1C1C1D1D1D1D1E1E1E1F1F1F1F2020202021 +212122222222232323232424242525252526262627272727282828282929292A2A2A2A2B2B2B2B2C +2C2C2D2D2D2D2E2E2E2E2F2F2F303030303131313232323233333333343434353535353636363637 +373738383838393939393A3A3A3B3B3B3B3C3C3C3D3D3D3D3E3E3E3E3F3F3F404040404141414142 +42424343434344444444454545464646 +> +< +000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 +28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F +505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 +78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F +A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 +C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF +F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF +> +< +00000101020203030304040505050606070708080809090A0A0B0B0B0C0C0D0D0D0E0E0F0F101010 +1111121212131314141515151616171718181819191A1A1A1B1B1C1C1D1D1D1E1E1F1F1F20202121 +222222232324242525252626272727282829292A2A2A2B2B2C2C2D2D2D2E2E2F2F2F303031313232 +32333334343435353636373737383839393A3A3A3B3B3C3C3C3D3D3E3E3F3F3F4040414142424243 +4344444445454646474747484849494A4A4A4B4B4C4C4C4D4D4E4E4F4F4F50505151515252535354 +54545555565657575758585959595A5A5B5B5C5C5C5D5D5E5E5E5F5F606061616162626363646464 +6565666666676768686969696A6A6B6B +> +1 %_Br +1 +0 %_Br +< +FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 +D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 +AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 +87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 +5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 +37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 +0F0E0D0C0B0A09080706050403020100 +> +< +4D4C4C4C4B4B4B4A4A4A4A4949494848484747474746464645454544444444434343424242414141 +414040403F3F3F3E3E3E3E3D3D3D3C3C3C3B3B3B3B3A3A3A39393938383838373737363636353535 +35343434333333323232323131313030302F2F2F2F2E2E2E2D2D2D2C2C2C2C2B2B2B2A2A2A292929 +2928282827272726262626252525242424232323232222222121212020201F1F1F1F1E1E1E1D1D1D +1C1C1C1C1B1B1B1A1A1A191919191818181717171616161615151514141413131313121212111111 +101010100F0F0F0E0E0E0D0D0D0D0C0C0C0B0B0B0A0A0A0A09090908080807070707060606050505 +04040404030303020202010101010000 +> +0 +0 +1 %_Br +[ +1 0 50 92 %_BS +%_1 0 50 92 Bs +0 0.275 1 0.12 1 50 59 %_BS +%_0 0.275 1 0.12 1 50 59 Bs +0 0.275 1 0.42 1 50 50 %_BS +%_0 0.275 1 0.42 1 50 50 Bs +1 0 50 49 %_BS +%_1 0 50 49 Bs +1 0 50 41 %_BS +%_1 0 50 41 Bs +1 0.3 0 0 1 50 0 %_BS +%_1 0.3 0 0 1 50 0 Bs +BD +%AI5_EndGradient +%AI5_BeginGradient: (Rainbow) +(Rainbow) 0 6 Bd +[ +< +FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 +D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 +AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 +87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 +5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 +37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 +0F0E0D0C0B0A09080706050403020100 +> +1 +0 +0 +1 %_Br +1 +< +0708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E +2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F50515253545556 +5758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E +7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6 +A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCE +CFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6 +F7F8F9FAFBFCFDFEFF +> +0 +0 +1 %_Br +1 +< +00000000000000000000000000000000000001010101010101010101010101010101010101010101 +01010101010101010101010101010202020202020202020202020202020202020202020202020202 +02020202020202020202030303030303030303030303030303030303030303030303030303030303 +03030303030304040404040404040404040404040404040404040404040404040404040404040404 +04040505050505050505050505050505050505050505050505050505050505050505050505050606 +06060606060606060606060606060606060606060606060606060606060606060607070707070707 +07070707070707070707070707070707 +> +< +FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 +D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 +AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 +87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 +5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 +37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 +0F0E0D0C0B0A09080706050403020100 +> +0 +1 %_Br +< +000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 +28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F +505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 +78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F +A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 +C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF +F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF +> +0 +1 +0 +1 %_Br +0 +< +FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 +D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 +AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 +87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 +5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 +37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 +0F0E0D0C0B0A09080706050403020100 +> +1 +0 +1 %_Br +[ +0 1 0 0 1 50 100 %_BS +%_0 1 0 0 1 50 100 Bs +1 1 0 0 1 50 80 %_BS +%_1 1 0 0 1 50 80 Bs +1 0.0279 0 0 1 50 60 %_BS +%_1 0.0279 0 0 1 50 60 Bs +1 0 1 0 1 50 40 %_BS +%_1 0 1 0 1 50 40 Bs +0 0 1 0 1 50 20 %_BS +%_0 0 1 0 1 50 20 Bs +0 1 1 0 1 50 0 %_BS +%_0 1 1 0 1 50 0 Bs +BD +%AI5_EndGradient +%AI5_BeginGradient: (Yellow & Orange Radial) +(Yellow & Orange Radial) 1 2 Bd +[ +0 +< +0001010203040506060708090A0B0C0C0D0E0F10111213131415161718191A1B1C1D1D1E1F202122 +232425262728292A2B2B2C2D2E2F303132333435363738393A3B3C3D3E3E3F404142434445464748 +494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F60606162636465666768696A6B6C6D6E6F +707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C +> +< +FFFFFFFFFEFEFEFEFEFEFEFDFDFDFDFDFDFCFCFCFCFCFCFBFBFBFBFBFBFAFAFAFAFAFAF9F9F9F9F9 +F9F8F8F8F8F8F8F7F7F7F7F7F7F6F6F6F6F6F6F5F5F5F5F5F5F4F4F4F4F4F3F3F3F3F3F3F2F2F2F2 +F2F2F1F1F1F1F1F0F0F0F0F0F0EFEFEFEFEFEFEEEEEEEEEEEDEDEDEDEDEDECECECECECEBEBEBEBEB +EBEAEAEAEAEAE9E9E9E9E9E9E8E8E8E8E8E8E7E7E7E7E7E6E6E6E6E6E6 +> +0 +1 %_Br +[ +0 0 1 0 1 52 19 %_BS +%_0 0 1 0 1 52 19 Bs +0 0.55 0.9 0 1 50 100 %_BS +%_0 0.55 0.9 0 1 50 100 Bs +BD +%AI5_EndGradient +%AI5_End_NonPrinting-- +%AI5_BeginPalette +0 0 Pb +1 1 1 1 ([Registration]) 0 Xs +([Registration]) Pc +0 0 0 0 k +(C=0 M=0 Y=0 K=0) Pc +0 0 0 1 k +(C=0 M=0 Y=0 K=100) Pc +0 0.1 1 0 k +(C=0 M=10 Y=100 K=0) Pc +0 0.5 0 0 k +(C=0 M=50 Y=0 K=0) Pc +0 0.5 1 0 k +(C=0 M=50 Y=100 K=0) Pc +1 0.55 1 0 k +(C=100 M=55 Y=100 K=0) Pc +1 0.9 0.1 0 k +(C=100 M=90 Y=10 K=0) Pc +0.15 1 1 0 k +(C=15 M=100 Y=100 K=0) Pc +0.45 0.9 0 0 k +(C=45 M=90 Y=0 K=0) Pc +0.5 0.4 0.3 0 k +(C=50 M=40 Y=30 K=0) Pc +0.5 0.85 1 0 k +(C=50 M=85 Y=100 K=0) Pc +0.75 0.05 1 0 k +(C=75 M=5 Y=100 K=0) Pc +0.75 0.9 0 0 k +(C=75 M=90 Y=0 K=0) Pc +0.8 0.05 0 0 k +(C=80 M=5 Y=0 K=0) Pc +Bb +2 (Black, White) -7885 8587 0 0 1 0 0 1 0 0 Bg +0 BB +(Black, White) Pc +Bb +2 (Chrome) -7885 8587 0 0 1 0 0 1 0 0 Bg +0 BB +(Chrome) Pc +Bb +2 (Rainbow) -7885 8587 0 0 1 0 0 1 0 0 Bg +0 BB +(Rainbow) Pc +Bb +0 0 0 0 Bh +2 (Yellow & Orange Radial) -7885 8587 0 0 1 0 0 1 0 0 Bg +0 BB +(Yellow & Orange Radial) Pc +(Brick) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p +(Brick) Pc +(Confetti) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p +(Confetti) Pc +(Leaves - Fall ) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p +(Leaves - Fall ) Pc +(Stripes) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p +(Stripes) Pc +PB +%AI5_EndPalette +%AI5_Begin_NonPrinting +Np +%AI8_BeginPluginObject +(Adobe Scatter Brush Tool) +(Dog Tracks) +(1 /New Pattern 41/ 1 0 0 0 1 / 0 1 1 0 1 1 0 0 0 0 -90 -90 0 1 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Scatter Brush Tool) +(Fall Leaf) +(1 /New Pattern 34/ 1 0.0745 0.9 0.9019 0.18 / 0 0.602793 1 1 0.1 1 1 -) - +(1 1 1 -180 180 1 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Scatter Brush Tool) +(Ladybug) +(1 /New Pattern 10/ 5 0.898039 0 0 / 0 1 1 0 0.803911 1.2 1 -1.55 1.55 ) - +(1 -180 180 1 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Scatter Brush Tool) +(Push Pin) +(1 /New Pattern 36/ 1 0.025 0.1 0.475 0 / 0 1 1 0 0.401676 1 1 -1.06145) - +( 1.06 1 -180 180 1 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Scatter Brush Tool) +(Strawberry) +(1 /New Pattern 37/ 1 0 0 0 1 / 0 0.803911 1 1 0.803911 1 1 -0.5 0.5 1 ) - +(-75 75.419 1 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Scatter Brush Tool) +(Twinkle Star ) +(1 /New Pattern 2/ 0 1 / 1 0.5 1 1 0.25 1 1 -0.5 0.5 1 0 0 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe PatternOnPath Brush Tool) +(Double Lines) +(1 / New Pattern 62/ New Pattern 63/ New Pattern 64/ / / 1 1 0.14 0.09 ) - +(0 / 1 0 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe PatternOnPath Brush Tool) +(Laurel) +(1 / New Pattern 65/ New Pattern 42/ New Pattern 67/ / New Pattern 69/ ) - +(1 0 0.55 1 0.3 / 1 0 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe PatternOnPath Brush Tool) +(Rope ) +(1 / New Pattern 1/ / / New Pattern 3/ New Pattern 6/ 5 0 0 0 / 1 0 1 ) - +(0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe ArtOnPath Brush Tool) +(Arrow) +(1 / New Pattern 45/ / / / / 5 0.898039 0 0 / 2 0 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe ArtOnPath Brush Tool) +(Marker) +(1 / New Pattern 8/ / / / / 0 0 / 1 1 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe ArtOnPath Brush Tool) +(Paintbrush) +(1 / New Pattern 5/ / / / / 1 0.5 0.85 1 0.45 / 0 0 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe ArtOnPath Brush Tool) +(Tapered Stroke) +(1 / New Pattern 83/ / / / / 1 0 0 0 1 / 1 1 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe ArtOnPath Brush Tool) +(Type) +(1 / New Pattern 50/ / / / / 1 0.952941 0.94902 0.196078 0.0745098 / 1) - +( 0 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Calligraphic Brush Tool) +(6 pt Flat ) +(1 4 8 10 10 90 90 2 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Calligraphic Brush Tool) +(10 pt Oval) +(1 1 19 15 15 130 130 2 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Calligraphic Brush Tool) +(12 pt Oval ) +(1 7 17 45 45 0 0 2 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Calligraphic Brush Tool) +(20 pt Oval) +(1 20 20 20 100 40 80 0 2 1 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Calligraphic Brush Tool) +(25 pt Round ) +(1 10 40 100 100 0 0 2 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Calligraphic Brush Tool) +(50 pt Flat) +(1 40 60 0 0 44 44 0 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Brush Manager Order) +(Adobe Brush Manager Order) +( Adobe Calligraphic Brush Tool/ 6 pt Flat / Adobe Calligraphic Brush T) - +(ool/ 10 pt Oval/ Adobe Calligraphic Brush Tool/ 12 pt Oval / Adobe Cal) - +(ligraphic Brush Tool/ 20 pt Oval/ Adobe Calligraphic Brush Tool/ 25 pt) - +( Round / Adobe Calligraphic Brush Tool/ 50 pt Flat/ Adobe Scatter Brus) - +(h Tool/ Dog Tracks/ Adobe Scatter Brush Tool/ Fall Leaf/ Adobe Scatter) - +( Brush Tool/ Ladybug/ Adobe Scatter Brush Tool/ Push Pin/ Adobe Scatte) - +(r Brush Tool/ Strawberry/ Adobe Scatter Brush Tool/ Twinkle Star / Ado) - +(be ArtOnPath Brush Tool/ Marker/ Adobe ArtOnPath Brush Tool/ Tapered S) - +(troke/ Adobe ArtOnPath Brush Tool/ Arrow/ Adobe ArtOnPath Brush Tool/ ) - +(Paintbrush/ Adobe ArtOnPath Brush Tool/ Type/ Adobe PatternOnPath Brus) - +(h Tool/ Double Lines/ Adobe PatternOnPath Brush Tool/ Laurel/ Adobe Pa) - +(tternOnPath Brush Tool/ Rope /) . +%AI8_EndPluginObject +%AI5_End_NonPrinting-- +%AI5_Begin_NonPrinting +Np +%AI8_PluginGroupInfo +(Adobe Path Blends) (Adobe Blends Plugin) (Live Blends.aip) +%AI8_PluginGroupInfo +(Adobe PatternOnPath Brush Tool) (Adobe Pattern Brush Plugin) (ArtOnPath.aip) +%AI8_PluginGroupInfo +(Adobe ArtOnPath Brush Tool) (Adobe Art Brush Plugin) (ArtOnPath.aip) +%AI8_PluginGroupInfo +(Adobe Calligraphic Brush Tool) (Adobe Calligraphic Brush Plugin) (Calligraphic Brush Tool.aip) +%AI8_PluginGroupInfo +(Adobe Scatter Brush Tool) (Adobe Scatter Brush Plugin) (Scatter Brush Tool.aip) +%AI5_End_NonPrinting-- +%%EndSetup +%AI5_BeginLayer +1 1 1 1 0 0 1 0 79 128 255 0 50 Lb +(Layer 1) Ln +0 A +u 0 O +0 g +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +%AI5_File: +%AI5_BeginRaster +() 1 XG +[ 0.24 0 0 0.24 289.4404 411.5996 ] 138 130 0 Xh +[ 0.24 0 0 0.24 289.4404 411.5996 ] 0 0 138 130 138 130 1 1 0 0 0 0 +%%BeginBinary +XI +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFA3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD07FFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFF03FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFFFFC +%3FFFFFFF87FFFFFFFFFFFFFFFFFFFFFFFFFE1FFFFFFE01FFFFFFFFFFFFFF +%FFFFFFFFFFFF1FFFFFFC0FFFFFFFFFFFFFFFFFFFFFFFFFFF0FFFFFF83FFF +%FFFFFFFFFFFFFFFFFFFFFFFF8FFFFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFF +%8FFFFFF07FFFFFFFFFFFFFFFFFFFFFFFFFFF87FFFFE0FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFC7FFFFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFC7FFFFC1FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFE3FFFFC1FFFFFFFFFFFFFFFFFFFFFFFFFFFF +%E3FFFF83FFFFFFFFFFFFFFFFFFFFFFFFFFFFE1FFFF83FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFE0FFFF83FFFFFFFFFFFFFFFFFFFFFFFFFFFFF07FFF07FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFF07FFF07FFFFFFFFFFFFFFFFFFFFFFFFFFFF +%F83FFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81FFC0FFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFC0FFC1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE07F03FFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF01F07FFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF80E07FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE001FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFF0017FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80003FFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00000FFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFE00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00000FFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE000007FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF010083FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE125021FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFF005AB047FFFFFFFFFFFFFFFFFFFFFFFFFFF +%E00054813FFFFFFFFFFFFFFFFFFFFFFFFFFFE214A9041FFFFFFFFFFFFFFF +%FFFFFFFFFFFF82016A820FFFFFFFFFFFFFFFFFFFFFFFFFFF0514BE090FFF +%FFFFFFFFFFFFFFFFFFFFFFFE400FDE8423FFFFFFFFFFFFFFFFFFFFFFFFF8 +%004FAC4049FFFFFFFFFFFFFFFFFFFFFFFFE0A12FCD8034FFFFFFFFFFFFFF +%FFFFFFFFFFE2502FBC109A7FFFFFFFFFFFFFFFFFFFFFFF89529F9B88ED3F +%FFFFFFFFFFFFFFFFFFFFFF93A8157451B63FFFFFFFFFFFFFFFFFFFFFFF67 +%C01AA9800B1FFFFFFFFFFFFFFFFFFFFFFC9E1008DA909587FFFFFFFFFFFF +%FFFFFFFFFB780C075F0406C3FFFFFFFFFFFFFFFFFFFFF0F616078B010751 +%FFFFFFFFFFFFFFFFFFFFE3CD8A8215482769FFFFFFFFFFFFFFFFFFFFC799 +%450920100BB4FFFFFFFFFFFFFFFFFFFF8F730AC45A004BBA3FFFFFFFFFFF +%FFFFFFFF1EE6C522EC1099DD5FFFFFFFFFFFFFFFFFFE39D6C290CA008DEF +%9FFFFFFFFFFFFFFFFFFCF3DDA5AA04012CEEA7FFFFFFFFFFFFFFFFFCE7AD +%810C2802BEF753FFFFFFFFFFFFFFFFF1CFABB8C008020E77ABFFFFFFFFFF +%FFFFFFF3AF53BD941405473BD5FFFFFFFFFFFFFFFFE75F670042BD08A759 +%EAFFFFFFFFFFFFFFFFC69EAAB2254E0355BDF57FFFFFFFFFFFFFFF8EBEA5 +%1852AD104A9CFABFFFFFFFFFFFFFFF997DAF5E014A064ADEFD5FFFFFFFFF +%FFFFFF3A7D5B292AD5498DDEFEAFFFFFFFFFFFFFFE36FB6F6A938A518A4E +%7E47FFFFFFFFFFFFFE64FB6FB4C000840DEF3EABFFFFFFFFFFFFFC9CF6EF +%7228222295B75F51FFFFFFFFFFFFF949F6EEB961FC092DF7BF69FFFFFFFF +%FFFFF899EEFFBC00D4166DBB2FF4FFFFFFFFFFFFF355EFDEBC7010D86DDA +%A7B87FFFFFFFFFFFF423EDDFF813FDD86ED937BC7FFFFFFFFFFFE6D6CDDE +%A048FA236EDD53BD3FFFFFFFFFFFCD605DDFD024A104569A9BDEBFFFFFFF +%FFFF9BCDA99520121519775C5BDF1FFFFFFFFFFF97D4555194286A640AAA +%EDDF8FFFFFFFFFFF37D5B286A0151450772AEFEECFFFFFFFFFFF2FDDB2AB +%502C6A54652AE8EF57FFFFFFFFFE6FAFF655723654A8776F6EB6A7FFFFFF +%FFFE5FAB6BD7F15D6CB46F6F646F6BFFFFFFFFFCDF6B77BFF42ABCD0676F +%F752B5FFFFFFFFFDBF6A6FD3F12BB1406F6F74D97AFFFFFFFFF9BF6F77BF +%F412C9A07777B775FAFFFFFFFFF97FF66FD3E90F55104F6FB7BDFA7FFFFF +%FFFB7ED6EB9BD093D9C056F7BBFDFD7FFFFFFFF27EE6EFDB9A45AA002B7F +%B1DEFDBFFFFFFFF6FDEEEFDF691295826AB76BDE7E9FFFFFFFF6FDEEFBDA +%98C04818ED55B2FFBEDFFFFFFFECFDEEEFD57A2F40E16BB552EF5FAFFFFF +%FFE5F9EF6BF2B911FA046EAAAB6F6FCFFFFFFFE9FBDEEB95FACA48A95FB5 +%5B6FEFDFFFFFFFE5FBCF53ABF1150554EFB55BF7B7A7FFFFFFD3FBDF6ACF +%E842FAA05FAFDAB7BBF7FFFFFFC3F7DF6DEFCCA90558BFB7F6B7DDD3FFFF +%FFD3F3DF76F79C04BA809FAF97DBDCABFFFFFFC7F7BFB5F73EF04021CBFF +%EEFBDAE9FFFFFFD6F79FB7FE7E0F17E9E62FAF5BDE95FFFFFFC6E7FB9FF9 +%FE25FE83F1D78F7DD579FFFFFFCDD73D43E3FF120153FCBF376B6E94FFFF +%FFC2AEA2A81FFF0552ABFF00AABDAB5AFFFFFFC48A3D21FFFFA9AD47FFE3 +%556AE5B4FFFFFFD16DA253FFFF82B80FFFF856BDAACAFFFFFFC48A5A87FF +%FFC801EFFFFF155576E4FFFFFFD329550FFFFFD75C1FFFFFC3AEADAAFFFF +%FF84926A3FFFFFC0028FFFFFF0755251FFFFFFD35C90FFFFFFE5441FFFFF +%FF0AADA1FFFFFFA01243FFFFFFE0FA1FFFFFFFC00003FFFFFF82540FFFFF +%FFF3043FFFFFFFFFD01FFFFFFFC010FFFFFFFFF1F83FFFFFFFFFFFFFFFFF +%FFC007FFFFFFFFF9707FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9407FFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFC907FFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFE41FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE01FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%%EndBinary +XH +%AI5_EndRaster +F /BBAccumRotation (0.000000) XT +U /BBAccumRotation (0.000000) XT +LB +%AI5_EndLayer-- +%%PageTrailer +gsave annotatepage grestore showpage +%%Trailer +Adobe_Illustrator_AI5 /terminate get exec +Adobe_shading_AI8 /terminate get exec +Adobe_ColorImage_AI6 /terminate get exec +Adobe_cshow /terminate get exec +Adobe_level2_AI5 /terminate get exec +%%EOF diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/sigproc-sp.aux b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/sigproc-sp.aux new file mode 100644 index 0000000..2799a14 --- /dev/null +++ b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/sigproc-sp.aux @@ -0,0 +1,20 @@ +\relax +\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{\thepage }} +\citation{Lamport:LaTeX} +\citation{Lamport:LaTeX} +\citation{bowman:reasoning} +\citation{clark:pct} +\citation{braams:babel} +\citation{herlihy:methodology} +\citation{clark:pct} +\citation{salas:calculus} +\citation{Lamport:LaTeX} +\citation{Lamport:LaTeX} +\citation{Lamport:LaTeX} +\@writefile{toc}{\contentsline {section}{\numberline {2}The {\secit Body} of The Paper}{\thepage }} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Type Changes and {\subsecit Special} Characters}{\thepage }} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Math Equations}{\thepage }} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.1}Inline (In-text) Equations}{\thepage }} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.2}Display Equations}{\thepage }} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Citations}{\thepage }} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Tables}{\thepage }} diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/sigproc-sp.dvi b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/sigproc-sp.dvi new file mode 100644 index 0000000..c8d8409 Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/sigproc-sp.dvi differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/sigproc-sp.log b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/sigproc-sp.log new file mode 100644 index 0000000..6124795 --- /dev/null +++ b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/sigproc-sp.log @@ -0,0 +1,344 @@ +This is pdfTeXk, Version 3.1415926-1.40.9 (Web2C 7.5.7) (format=pdflatex 2009.1.5) 29 JUL 2010 09:57 +entering extended mode +\write18 enabled. + %&-line parsing enabled. +**sigproc-sp.tex +(./sigproc-sp.tex +LaTeX2e <2005/12/01> +Babel and hyphenation patterns for english, usenglishmax, dumylang, noh +yphenation, german-x-2008-06-18, ngerman-x-2008-06-18, ancientgreek, ibycus, ar +abic, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danish, dutc +h, esperanto, estonian, farsi, finnish, french, galician, german, ngerman, mono +greek, greek, hungarian, icelandic, indonesian, interlingua, irish, italian, la +tin, lithuanian, mongolian, mongolian2a, bokmal, nynorsk, polish, portuguese, r +omanian, russian, sanskrit, serbian, slovak, slovenian, spanish, swedish, turki +sh, ukenglish, ukrainian, uppersorbian, welsh, loaded. +(./acm_proc_article-sp.cls +(/usr/local/texlive/2008/texmf-dist/tex/latex/graphics/epsfig.sty +Package: epsfig 1999/02/16 v1.7a (e)psfig emulation (SPQR) + +(/usr/local/texlive/2008/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2008/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 1999/03/16 v1.13 key=value parser (DPC) +\KV@toks@=\toks14 +) +(/usr/local/texlive/2008/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2006/02/20 v1.0o Standard LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2008/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 1999/03/16 v1.09 sin cos tan (DPC) +) +(/usr/local/texlive/2008/texmf/tex/latex/config/graphics.cfg +File: graphics.cfg 2007/01/18 v1.5 graphics configuration of teTeX/TeXLive +) +Package graphics Info: Driver file: pdftex.def on input line 90. + +(/usr/local/texlive/2008/texmf-dist/tex/latex/pdftex-def/pdftex.def +File: pdftex.def 2008/09/08 v0.04l Graphics/color for pdfTeX +\Gread@gobject=\count79 +)) +\Gin@req@height=\dimen102 +\Gin@req@width=\dimen103 +) +\epsfxsize=\dimen104 +\epsfysize=\dimen105 +) +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsfonts/amssymb.sty +Package: amssymb 2002/01/22 v2.2d + +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2001/10/25 v2.2f +\@emptytoks=\toks15 +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 132. +)) +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2000/07/18 v2.13 AMS math features +\@mathmargin=\skip41 + +For additional information on amsmath, use the `?' option. +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 + +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 +\@emptytoks=\toks16 +\ex@=\dimen106 +)) +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d +\pmbraise@=\dimen107 +) +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 1999/12/14 v2.01 operator names +) +\inf@bad=\count80 +LaTeX Info: Redefining \frac on input line 211. +\uproot@=\count81 +\leftroot@=\count82 +LaTeX Info: Redefining \overline on input line 307. +\classnum@=\count83 +\DOTSCASE@=\count84 +LaTeX Info: Redefining \ldots on input line 379. +LaTeX Info: Redefining \dots on input line 382. +LaTeX Info: Redefining \cdots on input line 467. +\Mathstrutbox@=\box26 +\strutbox@=\box27 +\big@size=\dimen108 +LaTeX Font Info: Redeclaring font encoding OML on input line 567. +LaTeX Font Info: Redeclaring font encoding OMS on input line 568. +\macc@depth=\count85 +\c@MaxMatrixCols=\count86 +\dotsspace@=\muskip10 +\c@parentequation=\count87 +\dspbrk@lvl=\count88 +\tag@help=\toks17 +\row@=\count89 +\column@=\count90 +\maxfields@=\count91 +\andhelp@=\toks18 +\eqnshift@=\dimen109 +\alignsep@=\dimen110 +\tagshift@=\dimen111 +\tagwidth@=\dimen112 +\totwidth@=\dimen113 +\lineht@=\dimen114 +\@envbody=\toks19 +\multlinegap=\skip42 +\multlinetaggap=\skip43 +\mathdisplay@stack=\toks20 +LaTeX Info: Redefining \[ on input line 2666. +LaTeX Info: Redefining \] on input line 2667. +) +Document Class 'acm_proc_article-sp' <22nd. April '09>. Modified by G.K.M. Tobi +n +Based in part upon document Style `acmconf' <22 May 89>. Hacked 4/91 by +shivers@cs.cmu.edu, 4/93 by theobald@cs.mcgill.ca +Excerpts were taken from (Journal Style) 'esub2acm.cls'. +****** Bugs/comments/suggestions to Gerry Murray -- murray@hq.acm.org ****** +\footheight=\dimen115 +\@maxsep=\dimen116 +\@dblmaxsep=\dimen117 +\aucount=\count92 +\originalaucount=\count93 +\auwidth=\dimen118 +\auskip=\dimen119 +\auskipcount=\count94 +\auskip=\dimen120 +\allauboxes=\dimen121 +\addauthors=\toks21 +\addauflag=\count95 +\subtitletext=\toks22 +\savesection=\count96 +\sectioncntr=\count97 +\c@figure=\count98 +\c@table=\count99 +\titleboxnotes=\toks23 +\titleboxnoteflag=\count100 +Document Class: acm_proc_article-sp 2009/04/22 - V3.2SP - based on esub2acm.sty + <23 April 96> +(/usr/local/texlive/2008/texmf-dist/tex/latex/base/latexsym.sty +Package: latexsym 1998/08/17 v2.2e Standard LaTeX package (lasy symbols) +\symlasy=\mathgroup6 +LaTeX Font Info: Overwriting symbol font `lasy' in version `bold' +(Font) U/lasy/m/n --> U/lasy/b/n on input line 47. +) +\@acmtitlebox=\box28 +\titlenotecount=\count101 +\tntoks=\toks24 +\tntokstwo=\toks25 +\tntoksthree=\toks26 +\tntoksfour=\toks27 +\tntoksfive=\toks28 +\catcount=\count102 +\copyrightnotice=\toks29 +\conf=\toks30 +\confinfo=\toks31 +\c@part=\count103 +\c@section=\count104 +\c@subsection=\count105 +\c@subsubsection=\count106 +\c@paragraph=\count107 + +Using 'Abbrev' bibliography style +LaTeX Info: Redefining \cite on input line 1236. +\bibindent=\dimen122 +\colcntr=\count108 +\saveb@x=\box29 +\copyrtyr=\toks32 +\acmcopyr=\toks33 +\boilerplate=\toks34 +\copyrightetc=\toks35 +(/usr/local/texlive/2008/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2005/09/27 v1.99g Standard LaTeX package + +(/usr/local/texlive/2008/texmf-dist/tex/latex/base/t1enc.def +File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file +LaTeX Font Info: Redeclaring font encoding T1 on input line 43. +) +LaTeX Font Info: Try loading font information for T1+aer on input line 100. + +(/usr/local/texlive/2008/texmf-dist/tex/latex/ae/t1aer.fd +File: t1aer.fd 1997/11/16 Font definitions for T1/aer. +))) (./sigproc-sp.aux) +\openout1 = `sigproc-sp.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 31. +LaTeX Font Info: ... okay on input line 31. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 31. +LaTeX Font Info: ... okay on input line 31. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 31. +LaTeX Font Info: ... okay on input line 31. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 31. +LaTeX Font Info: ... okay on input line 31. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 31. +LaTeX Font Info: ... okay on input line 31. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 31. +LaTeX Font Info: ... okay on input line 31. +(/usr/local/texlive/2008/texmf-dist/tex/context/base/supp-pdf.tex +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count109 +\scratchdimen=\dimen123 +\scratchbox=\box30 +\nofMPsegments=\count110 +\nofMParguments=\count111 +\everyMPshowfont=\toks36 +\MPscratchCnt=\count112 +\MPscratchDim=\dimen124 +\MPnumerator=\count113 +\everyMPtoPDFconversion=\toks37 +) +LaTeX Font Info: Try loading font information for U+msa on input line 134. + (/usr/local/texlive/2008/texmf-dist/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2002/01/19 v2.2g AMS font definitions +) +LaTeX Font Info: Try loading font information for U+msb on input line 134. + +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsfonts/umsb.fd +File: umsb.fd 2002/01/19 v2.2g AMS font definitions +) +LaTeX Font Info: Try loading font information for U+lasy on input line 134. + +(/usr/local/texlive/2008/texmf-dist/tex/latex/base/ulasy.fd +File: ulasy.fd 1998/08/17 v2.2e LaTeX symbol font definitions +) +Overfull \hbox (10.71048pt too wide) in paragraph at lines 134--134 + []\eaddfnt lleipuner@researchlabs.org| + [] + + +Underfull \hbox (badness 1418) in paragraph at lines 135--135 +[][]\T1/aer/m/n/9 (Does NOT pro-duce the per-mis-sion block, copy-right + [] + + +Underfull \hbox (badness 6032) in paragraph at lines 135--135 +\T1/aer/m/n/9 in-for-ma-tion nor page num-ber-ing). For use with + [] + +LaTeX Font Info: Try loading font information for T1+aett on input line 135. + +(/usr/local/texlive/2008/texmf-dist/tex/latex/ae/t1aett.fd +File: t1aett.fd 1997/11/16 Font definitions for T1/aett. +) +Overfull \hbox (1.0793pt too wide) in paragraph at lines 136--142 +\T1/aer/m/it/9 Prepar-ing ACM SIG Pro-ceed-ings Us-ing L[]T[]X$\OT1/cmr/m/n/9 2 +[]$ \T1/aer/m/it/9 and BibT[]X\T1/aer/m/n/9 . + [] + + +Underfull \vbox (badness 2680) has occurred while \output is active [] + + +Overfull \hbox (1.26794pt too wide) in paragraph at lines 158--159 +\T1/aer/m/n/9 H.4 [\T1/aer/bx/n/9 Information Sys-tems Ap-pli-ca-tions\T1/aer/m +/n/9 ]: Mis-cel-la-neous; + [] + + +Underfull \hbox (badness 1360) in paragraph at lines 182--182 +[][]\T1/aer/m/n/9 Two of these, the \T1/aett/m/n/9 \num-bero-fau-thors \T1/aer/ +m/n/9 and \T1/aett/m/n/9 \alig-nau- + [] + +[1{/usr/local/texlive/2008/texmf-var/fonts/map/pdftex/updmap/pdftex.map} + + +] + +LaTeX Warning: Citation `Lamport:LaTeX' on page \thepage undefined on input li +ne 238. + + +LaTeX Warning: Citation `Lamport:LaTeX' on page \thepage undefined on input li +ne 253. + + +LaTeX Warning: Citation `bowman:reasoning' on page \thepage undefined on input + line 279. + + +LaTeX Warning: Citation `clark:pct' on page \thepage undefined on input line 2 +79. + + +LaTeX Warning: Citation `braams:babel' on page \thepage undefined on input lin +e 279. + + +LaTeX Warning: Citation `herlihy:methodology' on page \thepage undefined on in +put line 279. + + +LaTeX Warning: Citation `clark:pct' on page \thepage undefined on input line 2 +81. + + +LaTeX Warning: Citation `salas:calculus' on page \thepage undefined on input l +ine 281. + + +LaTeX Warning: Citation `Lamport:LaTeX' on page \thepage undefined on input li +ne 281. + + +LaTeX Warning: Citation `Lamport:LaTeX' on page \thepage undefined on input li +ne 287. + + +LaTeX Warning: Citation `Lamport:LaTeX' on page \thepage undefined on input li +ne 298. + +[2] + +! LaTeX Error: Unknown graphics extension: .eps. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.373 \epsfig{file=fly.eps} + +? +! Emergency stop. + ... + +l.373 \epsfig{file=fly.eps} + +Try typing to proceed. +If that doesn't work, type X to quit. + + +Here is how much of TeX's memory you used: + 2221 strings out of 493876 + 25907 string characters out of 1150569 + 84163 words of memory out of 3000000 + 5452 multiletter control sequences out of 10000+50000 + 59069 words of font info for 80 fonts, out of 3000000 for 5000 + 714 hyphenation exceptions out of 8191 + 39i,12n,26p,228b,310s stack positions out of 5000i,500n,10000p,200000b,50000s +! ==> Fatal error occurred, no output PDF file produced! diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/sigproc-sp.synctex.gz b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/sigproc-sp.synctex.gz new file mode 100644 index 0000000..b9e27fa Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/sigproc-sp.synctex.gz differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/sigproc-sp.tex b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/sigproc-sp.tex new file mode 100644 index 0000000..9d25bdf --- /dev/null +++ b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acm/sigproc-sp.tex @@ -0,0 +1,564 @@ +% THIS IS SIGPROC-SP.TEX - VERSION 3.1 +% WORKS WITH V3.2SP OF ACM_PROC_ARTICLE-SP.CLS +% APRIL 2009 +% +% It is an example file showing how to use the 'acm_proc_article-sp.cls' V3.2SP +% LaTeX2e document class file for Conference Proceedings submissions. +% ---------------------------------------------------------------------------------------------------------------- +% This .tex file (and associated .cls V3.2SP) *DOES NOT* produce: +% 1) The Permission Statement +% 2) The Conference (location) Info information +% 3) The Copyright Line with ACM data +% 4) Page numbering +% --------------------------------------------------------------------------------------------------------------- +% It is an example which *does* use the .bib file (from which the .bbl file +% is produced). +% REMEMBER HOWEVER: After having produced the .bbl file, +% and prior to final submission, +% you need to 'insert' your .bbl file into your source .tex file so as to provide +% ONE 'self-contained' source file. +% +% Questions regarding SIGS should be sent to +% Adrienne Griscti ---> griscti@acm.org +% +% Questions/suggestions regarding the guidelines, .tex and .cls files, etc. to +% Gerald Murray ---> murray@hq.acm.org +% +% For tracking purposes - this is V3.1SP - APRIL 2009 + +\documentclass{acm_proc_article-sp} + +\begin{document} + +\title{A Sample {\ttlit ACM} SIG Proceedings Paper in LaTeX +Format\titlenote{(Does NOT produce the permission block, copyright information nor page numbering). For use with ACM\_PROC\_ARTICLE-SP.CLS. Supported by ACM.}} +\subtitle{[Extended Abstract] +\titlenote{A full version of this paper is available as +\textit{Author's Guide to Preparing ACM SIG Proceedings Using +\LaTeX$2_\epsilon$\ and BibTeX} at +\texttt{www.acm.org/eaddress.htm}}} +% +% You need the command \numberofauthors to handle the 'placement +% and alignment' of the authors beneath the title. +% +% For aesthetic reasons, we recommend 'three authors at a time' +% i.e. three 'name/affiliation blocks' be placed beneath the title. +% +% NOTE: You are NOT restricted in how many 'rows' of +% "name/affiliations" may appear. We just ask that you restrict +% the number of 'columns' to three. +% +% Because of the available 'opening page real-estate' +% we ask you to refrain from putting more than six authors +% (two rows with three columns) beneath the article title. +% More than six makes the first-page appear very cluttered indeed. +% +% Use the \alignauthor commands to handle the names +% and affiliations for an 'aesthetic maximum' of six authors. +% Add names, affiliations, addresses for +% the seventh etc. author(s) as the argument for the +% \additionalauthors command. +% These 'additional authors' will be output/set for you +% without further effort on your part as the last section in +% the body of your article BEFORE References or any Appendices. + +\numberofauthors{8} % in this sample file, there are a *total* +% of EIGHT authors. SIX appear on the 'first-page' (for formatting +% reasons) and the remaining two appear in the \additionalauthors section. +% +\author{ +% You can go ahead and credit any number of authors here, +% e.g. one 'row of three' or two rows (consisting of one row of three +% and a second row of one, two or three). +% +% The command \alignauthor (no curly braces needed) should +% precede each author name, affiliation/snail-mail address and +% e-mail address. Additionally, tag each line of +% affiliation/address with \affaddr, and tag the +% e-mail address with \email. +% +% 1st. author +\alignauthor +Ben Trovato\titlenote{Dr.~Trovato insisted his name be first.}\\ + \affaddr{Institute for Clarity in Documentation}\\ + \affaddr{1932 Wallamaloo Lane}\\ + \affaddr{Wallamaloo, New Zealand}\\ + \email{trovato@corporation.com} +% 2nd. author +\alignauthor +G.K.M. Tobin\titlenote{The secretary disavows +any knowledge of this author's actions.}\\ + \affaddr{Institute for Clarity in Documentation}\\ + \affaddr{P.O. Box 1212}\\ + \affaddr{Dublin, Ohio 43017-6221}\\ + \email{webmaster@marysville-ohio.com} +% 3rd. author +\alignauthor Lars Th{\o}rv{\"a}ld\titlenote{This author is the +one who did all the really hard work.}\\ + \affaddr{The Th{\o}rv{\"a}ld Group}\\ + \affaddr{1 Th{\o}rv{\"a}ld Circle}\\ + \affaddr{Hekla, Iceland}\\ + \email{larst@affiliation.org} +\and % use '\and' if you need 'another row' of author names +% 4th. author +\alignauthor Lawrence P. Leipuner\\ + \affaddr{Brookhaven Laboratories}\\ + \affaddr{Brookhaven National Lab}\\ + \affaddr{P.O. Box 5000}\\ + \email{lleipuner@researchlabs.org} +% 5th. author +\alignauthor Sean Fogarty\\ + \affaddr{NASA Ames Research Center}\\ + \affaddr{Moffett Field}\\ + \affaddr{California 94035}\\ + \email{fogartys@amesres.org} +% 6th. author +\alignauthor Charles Palmer\\ + \affaddr{Palmer Research Laboratories}\\ + \affaddr{8600 Datapoint Drive}\\ + \affaddr{San Antonio, Texas 78229}\\ + \email{cpalmer@prl.com} +} +% There's nothing stopping you putting the seventh, eighth, etc. +% author on the opening page (as the 'third row') but we ask, +% for aesthetic reasons that you place these 'additional authors' +% in the \additional authors block, viz. +\additionalauthors{Additional authors: John Smith (The Th{\o}rv{\"a}ld Group, +email: {\texttt{jsmith@affiliation.org}}) and Julius P.~Kumquat +(The Kumquat Consortium, email: {\texttt{jpkumquat@consortium.net}}).} +\date{30 July 1999} +% Just remember to make sure that the TOTAL number of authors +% is the number that will appear on the first page PLUS the +% number that will appear in the \additionalauthors section. + +\maketitle +\begin{abstract} +This paper provides a sample of a \LaTeX\ document which conforms to +the formatting guidelines for ACM SIG Proceedings. +It complements the document \textit{Author's Guide to Preparing +ACM SIG Proceedings Using \LaTeX$2_\epsilon$\ and Bib\TeX}. This +source file has been written with the intention of being +compiled under \LaTeX$2_\epsilon$\ and BibTeX. + +The developers have tried to include every imaginable sort +of ``bells and whistles", such as a subtitle, footnotes on +title, subtitle and authors, as well as in the text, and +every optional component (e.g. Acknowledgments, Additional +Authors, Appendices), not to mention examples of +equations, theorems, tables and figures. + +To make best use of this sample document, run it through \LaTeX\ +and BibTeX, and compare this source code with the printed +output produced by the dvi file. +\end{abstract} + +% A category with the (minimum) three required fields +\category{H.4}{Information Systems Applications}{Miscellaneous} +%A category including the fourth, optional field follows... +\category{D.2.8}{Software Engineering}{Metrics}[complexity measures, performance measures] + +\terms{Theory} + +\keywords{ACM proceedings, \LaTeX, text tagging} % NOT required for Proceedings + +\section{Introduction} +The \textit{proceedings} are the records of a conference. +ACM seeks to give these conference by-products a uniform, +high-quality appearance. To do this, ACM has some rigid +requirements for the format of the proceedings documents: there +is a specified format (balanced double columns), a specified +set of fonts (Arial or Helvetica and Times Roman) in +certain specified sizes (for instance, 9 point for body copy), +a specified live area (18 $\times$ 23.5 cm [7" $\times$ 9.25"]) centered on +the page, specified size of margins (2.54cm [1"] top and +bottom and 1.9cm [.75"] left and right; specified column width +(8.45cm [3.33"]) and gutter size (.083cm [.33"]). + +The good news is, with only a handful of manual +settings\footnote{Two of these, the {\texttt{\char'134 numberofauthors}} +and {\texttt{\char'134 alignauthor}} commands, you have +already used; another, {\texttt{\char'134 balancecolumns}}, will +be used in your very last run of \LaTeX\ to ensure +balanced column heights on the last page.}, the \LaTeX\ document +class file handles all of this for you. + +The remainder of this document is concerned with showing, in +the context of an ``actual'' document, the \LaTeX\ commands +specifically available for denoting the structure of a +proceedings paper, rather than with giving rigorous descriptions +or explanations of such commands. + +\section{The {\secit Body} of The Paper} +Typically, the body of a paper is organized +into a hierarchical structure, with numbered or unnumbered +headings for sections, subsections, sub-subsections, and even +smaller sections. The command \texttt{{\char'134}section} that +precedes this paragraph is part of such a +hierarchy.\footnote{This is the second footnote. It +starts a series of three footnotes that add nothing +informational, but just give an idea of how footnotes work +and look. It is a wordy one, just so you see +how a longish one plays out.} \LaTeX\ handles the numbering +and placement of these headings for you, when you use +the appropriate heading commands around the titles +of the headings. If you want a sub-subsection or +smaller part to be unnumbered in your output, simply append an +asterisk to the command name. Examples of both +numbered and unnumbered headings will appear throughout the +balance of this sample document. + +Because the entire article is contained in +the \textbf{document} environment, you can indicate the +start of a new paragraph with a blank line in your +input file; that is why this sentence forms a separate paragraph. + +\subsection{Type Changes and {\subsecit Special} Characters} +We have already seen several typeface changes in this sample. You +can indicate italicized words or phrases in your text with +the command \texttt{{\char'134}textit}; emboldening with the +command \texttt{{\char'134}textbf} +and typewriter-style (for instance, for computer code) with +\texttt{{\char'134}texttt}. But remember, you do not +have to indicate typestyle changes when such changes are +part of the \textit{structural} elements of your +article; for instance, the heading of this subsection will +be in a sans serif\footnote{A third footnote, here. +Let's make this a rather short one to +see how it looks.} typeface, but that is handled by the +document class file. Take care with the use +of\footnote{A fourth, and last, footnote.} +the curly braces in typeface changes; they mark +the beginning and end of +the text that is to be in the different typeface. + +You can use whatever symbols, accented characters, or +non-English characters you need anywhere in your document; +you can find a complete list of what is +available in the \textit{\LaTeX\ +User's Guide}\cite{Lamport:LaTeX}. + +\subsection{Math Equations} +You may want to display math equations in three distinct styles: +inline, numbered or non-numbered display. Each of +the three are discussed in the next sections. + +\subsubsection{Inline (In-text) Equations} +A formula that appears in the running text is called an +inline or in-text formula. It is produced by the +\textbf{math} environment, which can be +invoked with the usual \texttt{{\char'134}begin. . .{\char'134}end} +construction or with the short form \texttt{\$. . .\$}. You +can use any of the symbols and structures, +from $\alpha$ to $\omega$, available in +\LaTeX\cite{Lamport:LaTeX}; this section will simply show a +few examples of in-text equations in context. Notice how +this equation: \begin{math}\lim_{n\rightarrow \infty}x=0\end{math}, +set here in in-line math style, looks slightly different when +set in display style. (See next section). + +\subsubsection{Display Equations} +A numbered display equation -- one set off by vertical space +from the text and centered horizontally -- is produced +by the \textbf{equation} environment. An unnumbered display +equation is produced by the \textbf{displaymath} environment. + +Again, in either environment, you can use any of the symbols +and structures available in \LaTeX; this section will just +give a couple of examples of display equations in context. +First, consider the equation, shown as an inline equation above: +\begin{equation}\lim_{n\rightarrow \infty}x=0\end{equation} +Notice how it is formatted somewhat differently in +the \textbf{displaymath} +environment. Now, we'll enter an unnumbered equation: +\begin{displaymath}\sum_{i=0}^{\infty} x + 1\end{displaymath} +and follow it with another numbered equation: +\begin{equation}\sum_{i=0}^{\infty}x_i=\int_{0}^{\pi+2} f\end{equation} +just to demonstrate \LaTeX's able handling of numbering. + +\subsection{Citations} +Citations to articles \cite{bowman:reasoning, clark:pct, braams:babel, herlihy:methodology}, +conference +proceedings \cite{clark:pct} or books \cite{salas:calculus, Lamport:LaTeX} listed +in the Bibliography section of your +article will occur throughout the text of your article. +You should use BibTeX to automatically produce this bibliography; +you simply need to insert one of several citation commands with +a key of the item cited in the proper location in +the \texttt{.tex} file \cite{Lamport:LaTeX}. +The key is a short reference you invent to uniquely +identify each work; in this sample document, the key is +the first author's surname and a +word from the title. This identifying key is included +with each item in the \texttt{.bib} file for your article. + +The details of the construction of the \texttt{.bib} file +are beyond the scope of this sample document, but more +information can be found in the \textit{Author's Guide}, +and exhaustive details in the \textit{\LaTeX\ User's +Guide}\cite{Lamport:LaTeX}. + +This article shows only the plainest form +of the citation command, using \texttt{{\char'134}cite}. +This is what is stipulated in the SIGS style specifications. +No other citation format is endorsed. + +\subsection{Tables} +Because tables cannot be split across pages, the best +placement for them is typically the top of the page +nearest their initial cite. To +ensure this proper ``floating'' placement of tables, use the +environment \textbf{table} to enclose the table's contents and +the table caption. The contents of the table itself must go +in the \textbf{tabular} environment, to +be aligned properly in rows and columns, with the desired +horizontal and vertical rules. Again, detailed instructions +on \textbf{tabular} material +is found in the \textit{\LaTeX\ User's Guide}. + +Immediately following this sentence is the point at which +Table 1 is included in the input file; compare the +placement of the table here with the table in the printed +dvi output of this document. + +\begin{table} +\centering +\caption{Frequency of Special Characters} +\begin{tabular}{|c|c|l|} \hline +Non-English or Math&Frequency&Comments\\ \hline +\O & 1 in 1,000& For Swedish names\\ \hline +$\pi$ & 1 in 5& Common in math\\ \hline +\$ & 4 in 5 & Used in business\\ \hline +$\Psi^2_1$ & 1 in 40,000& Unexplained usage\\ +\hline\end{tabular} +\end{table} + +To set a wider table, which takes up the whole width of +the page's live area, use the environment +\textbf{table*} to enclose the table's contents and +the table caption. As with a single-column table, this wide +table will ``float" to a location deemed more desirable. +Immediately following this sentence is the point at which +Table 2 is included in the input file; again, it is +instructive to compare the placement of the +table here with the table in the printed dvi +output of this document. + + +\begin{table*} +\centering +\caption{Some Typical Commands} +\begin{tabular}{|c|c|l|} \hline +Command&A Number&Comments\\ \hline +\texttt{{\char'134}alignauthor} & 100& Author alignment\\ \hline +\texttt{{\char'134}numberofauthors}& 200& Author enumeration\\ \hline +\texttt{{\char'134}table}& 300 & For tables\\ \hline +\texttt{{\char'134}table*}& 400& For wider tables\\ \hline\end{tabular} +\end{table*} +% end the environment with {table*}, NOTE not {table}! + +\subsection{Figures} +Like tables, figures cannot be split across pages; the +best placement for them +is typically the top or the bottom of the page nearest +their initial cite. To ensure this proper ``floating'' placement +of figures, use the environment +\textbf{figure} to enclose the figure and its caption. + +This sample document contains examples of \textbf{.eps} +and \textbf{.ps} files to be displayable with \LaTeX. More +details on each of these is found in the \textit{Author's Guide}. + +\begin{figure} +\centering +\epsfig{file=fly.eps} +\caption{A sample black and white graphic (.eps format).} +\end{figure} + +\begin{figure} +\centering +\epsfig{file=fly.eps, height=1in, width=1in} +\caption{A sample black and white graphic (.eps format) +that has been resized with the \texttt{epsfig} command.} +\end{figure} + + +As was the case with tables, you may want a figure +that spans two columns. To do this, and still to +ensure proper ``floating'' placement of tables, use the environment +\textbf{figure*} to enclose the figure and its caption. + +Note that either {\textbf{.ps}} or {\textbf{.eps}} formats are +used; use +the \texttt{{\char'134}epsfig} or \texttt{{\char'134}psfig} +commands as appropriate for the different file types. + +\subsection{Theorem-like Constructs} +Other common constructs that may occur in your article are +the forms for logical constructs like theorems, axioms, +corollaries and proofs. There are +two forms, one produced by the +command \texttt{{\char'134}newtheorem} and the +other by the command \texttt{{\char'134}newdef}; perhaps +the clearest and easiest way to distinguish them is +to compare the two in the output of this sample document: + +This uses the \textbf{theorem} environment, created by +the\linebreak\texttt{{\char'134}newtheorem} command: +\newtheorem{theorem}{Theorem} +\begin{theorem} +Let $f$ be continuous on $[a,b]$. If $G$ is +an antiderivative for $f$ on $[a,b]$, then +\begin{displaymath}\int^b_af(t)dt = G(b) - G(a).\end{displaymath} +\end{theorem} + +The other uses the \textbf{definition} environment, created +by the \texttt{{\char'134}newdef} command: +\newdef{definition}{Definition} +\begin{definition} +If $z$ is irrational, then by $e^z$ we mean the +unique number which has +logarithm $z$: \begin{displaymath}{\log e^z = z}\end{displaymath} +\end{definition} + +Two lists of constructs that use one of these +forms is given in the +\textit{Author's Guidelines}. + +\begin{figure*} +\centering +\epsfig{file=flies.eps} +\caption{A sample black and white graphic (.eps format) +that needs to span two columns of text.} +\end{figure*} +and don't forget to end the environment with +{figure*}, not {figure}! + +There is one other similar construct environment, which is +already set up +for you; i.e. you must \textit{not} use +a \texttt{{\char'134}newdef} command to +create it: the \textbf{proof} environment. Here +is a example of its use: +\begin{proof} +Suppose on the contrary there exists a real number $L$ such that +\begin{displaymath} +\lim_{x\rightarrow\infty} \frac{f(x)}{g(x)} = L. +\end{displaymath} +Then +\begin{displaymath} +l=\lim_{x\rightarrow c} f(x) += \lim_{x\rightarrow c} +\left[ g{x} \cdot \frac{f(x)}{g(x)} \right ] += \lim_{x\rightarrow c} g(x) \cdot \lim_{x\rightarrow c} +\frac{f(x)}{g(x)} = 0\cdot L = 0, +\end{displaymath} +which contradicts our assumption that $l\neq 0$. +\end{proof} + +Complete rules about using these environments and using the +two different creation commands are in the +\textit{Author's Guide}; please consult it for more +detailed instructions. If you need to use another construct, +not listed therein, which you want to have the same +formatting as the Theorem +or the Definition\cite{salas:calculus} shown above, +use the \texttt{{\char'134}newtheorem} or the +\texttt{{\char'134}newdef} command, +respectively, to create it. + +\subsection*{A {\secit Caveat} for the \TeX\ Expert} +Because you have just been given permission to +use the \texttt{{\char'134}newdef} command to create a +new form, you might think you can +use \TeX's \texttt{{\char'134}def} to create a +new command: \textit{Please refrain from doing this!} +Remember that your \LaTeX\ source code is primarily intended +to create camera-ready copy, but may be converted +to other forms -- e.g. HTML. If you inadvertently omit +some or all of the \texttt{{\char'134}def}s recompilation will +be, to say the least, problematic. + +\section{Conclusions} +This paragraph will end the body of this sample document. +Remember that you might still have Acknowledgments or +Appendices; brief samples of these +follow. There is still the Bibliography to deal with; and +we will make a disclaimer about that here: with the exception +of the reference to the \LaTeX\ book, the citations in +this paper are to articles which have nothing to +do with the present subject and are used as +examples only. +%\end{document} % This is where a 'short' article might terminate + +%ACKNOWLEDGMENTS are optional +\section{Acknowledgments} +This section is optional; it is a location for you +to acknowledge grants, funding, editing assistance and +what have you. In the present case, for example, the +authors would like to thank Gerald Murray of ACM for +his help in codifying this \textit{Author's Guide} +and the \textbf{.cls} and \textbf{.tex} files that it describes. + +% +% The following two commands are all you need in the +% initial runs of your .tex file to +% produce the bibliography for the citations in your paper. +\bibliographystyle{abbrv} +\bibliography{sigproc} % sigproc.bib is the name of the Bibliography in this case +% You must have a proper ".bib" file +% and remember to run: +% latex bibtex latex latex +% to resolve all references +% +% ACM needs 'a single self-contained file'! +% +%APPENDICES are optional +%\balancecolumns +\appendix +%Appendix A +\section{Headings in Appendices} +The rules about hierarchical headings discussed above for +the body of the article are different in the appendices. +In the \textbf{appendix} environment, the command +\textbf{section} is used to +indicate the start of each Appendix, with alphabetic order +designation (i.e. the first is A, the second B, etc.) and +a title (if you include one). So, if you need +hierarchical structure +\textit{within} an Appendix, start with \textbf{subsection} as the +highest level. Here is an outline of the body of this +document in Appendix-appropriate form: +\subsection{Introduction} +\subsection{The Body of the Paper} +\subsubsection{Type Changes and Special Characters} +\subsubsection{Math Equations} +\paragraph{Inline (In-text) Equations} +\paragraph{Display Equations} +\subsubsection{Citations} +\subsubsection{Tables} +\subsubsection{Figures} +\subsubsection{Theorem-like Constructs} +\subsubsection*{A Caveat for the \TeX\ Expert} +\subsection{Conclusions} +\subsection{Acknowledgments} +\subsection{Additional Authors} +This section is inserted by \LaTeX; you do not insert it. +You just add the names and information in the +\texttt{{\char'134}additionalauthors} command at the start +of the document. +\subsection{References} +Generated by bibtex from your ~.bib file. Run latex, +then bibtex, then latex twice (to resolve references) +to create the ~.bbl file. Insert that ~.bbl file into +the .tex source file and comment out +the command \texttt{{\char'134}thebibliography}. +% This next section command marks the start of +% Appendix B, and does not continue the present hierarchy +\section{More Help for the Hardy} +The acm\_proc\_article-sp document class file itself is chock-full of succinct +and helpful comments. If you consider yourself a moderately +experienced to expert user of \LaTeX, you may find reading +it useful but please remember not to change it. +\balancecolumns +% That's all folks! +\end{document} diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acme_enterprise_architecture.jpg b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acme_enterprise_architecture.jpg new file mode 100644 index 0000000..3f52586 Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acme_enterprise_architecture.jpg differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acme_enterprise_architecture.tiff b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acme_enterprise_architecture.tiff new file mode 100644 index 0000000..7aad051 Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acme_enterprise_architecture.tiff differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acme_enterprise_architecture_p.jpg b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acme_enterprise_architecture_p.jpg new file mode 100644 index 0000000..a9514f4 Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acme_enterprise_architecture_p.jpg differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acme_melbourne_enterprise_architecture.jpg b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acme_melbourne_enterprise_architecture.jpg new file mode 100644 index 0000000..2b1eb13 Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acme_melbourne_enterprise_architecture.jpg differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acme_melbourne_enterprise_architecture.tiff b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acme_melbourne_enterprise_architecture.tiff new file mode 100644 index 0000000..174a666 Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/acme_melbourne_enterprise_architecture.tiff differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/advanced_modelling_made_simple.aux b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/advanced_modelling_made_simple.aux new file mode 100644 index 0000000..9115871 --- /dev/null +++ b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/advanced_modelling_made_simple.aux @@ -0,0 +1,36 @@ +\relax +\@writefile{toc}{\contentsline {section}{\tocsection {}{1}{Introduction}}{1}} +\@writefile{toc}{\contentsline {section}{\tocsection {}{2}{Terminology}}{2}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{2.1}{Natural Language and Exchange of Artefacts}}{2}} +\@writefile{toc}{\contentsline {section}{\tocsection {}{3}{the Gmodel kernel}}{3}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{3.1}{Instantiation}}{4}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{3.2}{Interoperability with other modelling technologies}}{5}} +\@writefile{toc}{\contentsline {section}{\tocsection {}{4}{Emulating EMF Ecore in Gmodel}}{5}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{4.1}{Representing the EMF Ecore metamodel in Gmodel artefacts}}{5}} +\@writefile{toc}{\contentsline {subsubsection}{\tocsubsubsection {}{4.1.1}{Defining the Ecore semantic domain}}{5}} +\@writefile{toc}{\contentsline {subsubsection}{\tocsubsubsection {}{4.1.2}{Representing the representation of Ecore in itself in Gmodel}}{5}} +\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Representation of super set references between EMF Ecore concepts}}{6}} +\newlabel{default}{{1}{6}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{4.2}{Representing EMF Ecore models in Gmodel}}{6}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{4.3}{Representing instances of EMF Ecore models in Gmodel}}{7}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{4.4}{Representing instances of instances of EMF Ecore models in Gmodel}}{7}} +\@writefile{toc}{\contentsline {section}{\tocsection {}{5}{Interoperability between EMF Ecore and Gmodel}}{7}} +\@writefile{toc}{\contentsline {section}{\tocsection {}{6}{Advanced applications of multi-level instantiation}}{8}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{6.1}{The bottomless pit of abstractions}}{8}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{6.2}{Modelling of value chains in the context of mass customisation}}{8}} +\@writefile{toc}{\contentsline {section}{\tocsection {}{7}{Practical application of denotational semantics}}{9}} +\@writefile{toc}{\contentsline {section}{\tocsection {}{8}{scope management via visibilities}}{9}} +\@writefile{toc}{\contentsline {section}{\tocsection {}{9}{Gmodel compared to other technologies}}{10}} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{9.1}{Modelling technologies}}{10}} +\@writefile{toc}{\contentsline {subsubsection}{\tocsubsubsection {}{9.1.1}{Eclipse Modeling Framework Ecore}}{10}} +\@writefile{toc}{\contentsline {subsubsection}{\tocsubsubsection {}{9.1.2}{MetaEdit+}}{10}} +\@writefile{toc}{\contentsline {subsubsection}{\tocsubsubsection {}{9.1.3}{Research prototypes}}{10}} +\@writefile{toc}{\contentsline {subsubsection}{\tocsubsubsection {}{9.1.4}{Unified Modelling Language tools}}{10}} +\newlabel{tocindent-1}{0pt} +\newlabel{tocindent0}{0pt} +\newlabel{tocindent1}{24.94171pt} +\newlabel{tocindent2}{32.18062pt} +\newlabel{tocindent3}{0pt} +\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{9.2}{Programming languages}}{11}} +\@writefile{toc}{\contentsline {section}{\tocsection {}{10}{Overall contribution of Gmodel to Model Driven Interoperability}}{11}} +\@writefile{toc}{\contentsline {section}{\tocsection {}{11}{Conclusions}}{11}} diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/advanced_modelling_made_simple.log b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/advanced_modelling_made_simple.log new file mode 100644 index 0000000..b1dc34d --- /dev/null +++ b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/advanced_modelling_made_simple.log @@ -0,0 +1,317 @@ +This is pdfTeXk, Version 3.1415926-1.40.9 (Web2C 7.5.7) (format=pdflatex 2009.1.5) 29 JUL 2010 10:57 +entering extended mode +\write18 enabled. + %&-line parsing enabled. +**advanced_modelling_made_simple.tex +(./advanced_modelling_made_simple.tex +LaTeX2e <2005/12/01> +Babel and hyphenation patterns for english, usenglishmax, dumylang, noh +yphenation, german-x-2008-06-18, ngerman-x-2008-06-18, ancientgreek, ibycus, ar +abic, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danish, dutc +h, esperanto, estonian, farsi, finnish, french, galician, german, ngerman, mono +greek, greek, hungarian, icelandic, indonesian, interlingua, irish, italian, la +tin, lithuanian, mongolian, mongolian2a, bokmal, nynorsk, polish, portuguese, r +omanian, russian, sanskrit, serbian, slovak, slovenian, spanish, swedish, turki +sh, ukenglish, ukrainian, uppersorbian, welsh, loaded. +(/usr/local/texlive/2008/texmf-dist/tex/latex/amscls/amsart.cls +Document Class: amsart 2004/08/06 v2.20 +\linespacing=\dimen102 +\normalparindent=\dimen103 +\normaltopskip=\skip41 +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2000/07/18 v2.13 AMS math features +\@mathmargin=\skip42 + +For additional information on amsmath, use the `?' option. +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 + +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 +\@emptytoks=\toks14 +\ex@=\dimen104 +)) +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d +\pmbraise@=\dimen105 +) +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 1999/12/14 v2.01 operator names +) +\inf@bad=\count79 +LaTeX Info: Redefining \frac on input line 211. +\uproot@=\count80 +\leftroot@=\count81 +LaTeX Info: Redefining \overline on input line 307. +\classnum@=\count82 +\DOTSCASE@=\count83 +LaTeX Info: Redefining \ldots on input line 379. +LaTeX Info: Redefining \dots on input line 382. +LaTeX Info: Redefining \cdots on input line 467. +\Mathstrutbox@=\box26 +\strutbox@=\box27 +\big@size=\dimen106 +LaTeX Font Info: Redeclaring font encoding OML on input line 567. +LaTeX Font Info: Redeclaring font encoding OMS on input line 568. +\macc@depth=\count84 +\c@MaxMatrixCols=\count85 +\dotsspace@=\muskip10 +\c@parentequation=\count86 +\dspbrk@lvl=\count87 +\tag@help=\toks15 +\row@=\count88 +\column@=\count89 +\maxfields@=\count90 +\andhelp@=\toks16 +\eqnshift@=\dimen107 +\alignsep@=\dimen108 +\tagshift@=\dimen109 +\tagwidth@=\dimen110 +\totwidth@=\dimen111 +\lineht@=\dimen112 +\@envbody=\toks17 +\multlinegap=\skip43 +\multlinetaggap=\skip44 +\mathdisplay@stack=\toks18 +LaTeX Info: Redefining \[ on input line 2666. +LaTeX Info: Redefining \] on input line 2667. +) +LaTeX Font Info: Try loading font information for U+msa on input line 407. + +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2002/01/19 v2.2g AMS font definitions +) +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2001/10/25 v2.2f +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 132. +) +\copyins=\insert233 +\abstractbox=\box28 +\listisep=\skip45 +\c@part=\count91 +\c@section=\count92 +\c@subsection=\count93 +\c@subsubsection=\count94 +\c@paragraph=\count95 +\c@subparagraph=\count96 +\c@figure=\count97 +\c@table=\count98 +\abovecaptionskip=\skip46 +\belowcaptionskip=\skip47 +\captionindent=\dimen113 +\thm@style=\toks19 +\thm@bodyfont=\toks20 +\thm@headfont=\toks21 +\thm@notefont=\toks22 +\thm@headpunct=\toks23 +\thm@preskip=\skip48 +\thm@postskip=\skip49 +\thm@headsep=\skip50 +\dth@everypar=\toks24 +) +(/usr/local/texlive/2008/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2008/12/21 v4.2 Page Geometry + +(/usr/local/texlive/2008/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 1999/03/16 v1.13 key=value parser (DPC) +\KV@toks@=\toks25 +) +(/usr/local/texlive/2008/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2007/12/12 v1.6 Provides the ifpdf switch (HO) +Package ifpdf Info: pdfTeX in pdf mode detected. +) +(/usr/local/texlive/2008/texmf-dist/tex/generic/oberdiek/ifvtex.sty +Package: ifvtex 2008/11/04 v1.4 Switches for detecting VTeX and its modes (HO) +Package ifvtex Info: VTeX not detected. +) +\Gm@cnth=\count99 +\Gm@cntv=\count100 +\c@Gm@tempcnt=\count101 +\Gm@bindingoffset=\dimen114 +\Gm@wd@mp=\dimen115 +\Gm@odd@mp=\dimen116 +\Gm@even@mp=\dimen117 +\Gm@dimlist=\toks26 + +(/usr/local/texlive/2008/texmf-dist/tex/xelatex/xetexconfig/geometry.cfg)) +(/usr/local/texlive/2008/texmf-dist/tex/latex/ltxmisc/parskip.sty +Package: parskip 2001/04/09 non-zero parskip adjustments + + +LaTeX Warning: Command \@starttoc has changed. + Check if current package is valid. + +) (/usr/local/texlive/2008/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2008/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2006/02/20 v1.0o Standard LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2008/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 1999/03/16 v1.09 sin cos tan (DPC) +) +(/usr/local/texlive/2008/texmf/tex/latex/config/graphics.cfg +File: graphics.cfg 2007/01/18 v1.5 graphics configuration of teTeX/TeXLive +) +Package graphics Info: Driver file: pdftex.def on input line 90. + +(/usr/local/texlive/2008/texmf-dist/tex/latex/pdftex-def/pdftex.def +File: pdftex.def 2008/09/08 v0.04l Graphics/color for pdfTeX +\Gread@gobject=\count102 +)) +\Gin@req@height=\dimen118 +\Gin@req@width=\dimen119 +) +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsfonts/amssymb.sty +Package: amssymb 2002/01/22 v2.2d +) +(/usr/local/texlive/2008/texmf-dist/tex/latex/oberdiek/epstopdf.sty +Package: epstopdf 2008/05/06 v1.7 Conversion with epstopdf on the fly (HO) + +(/usr/local/texlive/2008/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2007/09/09 v1.2 Providing info/warning/message (HO) +) +(/usr/local/texlive/2008/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2007/09/30 v1.0 Managing graphics extensions (HO) +) +(/usr/local/texlive/2008/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2007/10/18 v3.0 Keyval support for LaTeX options (HO) +) +(/usr/local/texlive/2008/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty +Package: pdftexcmds 2007/12/12 v0.3 LuaTeX support for pdfTeX utility functions + (HO) +Package pdftexcmds Info: LuaTeX not detected on input line 139. +) +Package grfext Info: Graphics extension search list: +(grfext) [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE +G,.JBIG2,.JB2,.eps] +(grfext) \AppendGraphicsExtensions on input line 323. +) +(/usr/local/texlive/2008/texmf-dist/tex/latex/base/ifthen.sty +Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC) +) +(./advanced_modelling_made_simple.aux) +\openout1 = `advanced_modelling_made_simple.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 32. +LaTeX Font Info: ... okay on input line 32. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 32. +LaTeX Font Info: ... okay on input line 32. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 32. +LaTeX Font Info: ... okay on input line 32. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 32. +LaTeX Font Info: ... okay on input line 32. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 32. +LaTeX Font Info: ... okay on input line 32. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 32. +LaTeX Font Info: ... okay on input line 32. +LaTeX Font Info: Try loading font information for U+msa on input line 32. + +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2002/01/19 v2.2g AMS font definitions +) +LaTeX Font Info: Try loading font information for U+msb on input line 32. + +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsfonts/umsb.fd +File: umsb.fd 2002/01/19 v2.2g AMS font definitions +) +*geometry auto-detecting driver* +*geometry detected driver: pdftex* +-------------------- Geometry parameters +paper: a4paper +landscape: -- +twocolumn: -- +twoside: true +asymmetric: -- +h-parts: 71.70166pt, 0.7\paperwidth , 107.55254pt (default) +v-parts: 101.40665pt, 0.7\paperheight , 152.11pt (default) +hmarginratio: 2:3 +vmarginratio: 2:3 +lines: -- +heightrounded: -- +bindingoffset: 0.0pt +truedimen: -- +includehead: -- +includefoot: -- +includemp: -- +driver: pdftex +-------------------- Page layout dimensions and switches +\paperwidth 597.50787pt +\paperheight 845.04684pt +\textwidth 418.25368pt +\textheight 591.5302pt +\oddsidemargin -0.56833pt +\evensidemargin 35.28255pt +\topmargin 7.13666pt +\headheight 8.0pt +\headsep 14.0pt +\footskip 12.0pt +\marginparwidth 90.0pt +\marginparsep 11.0pt +\columnsep 10.0pt +\skip\footins 7.0pt plus 11.0pt +\hoffset 0.0pt +\voffset 0.0pt +\mag 1000 +\@twosidetrue \@mparswitchtrue +(1in=72.27pt, 1cm=28.45pt) +----------------------- +(/usr/local/texlive/2008/texmf-dist/tex/context/base/supp-pdf.tex +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count103 +\scratchdimen=\dimen120 +\scratchbox=\box29 +\nofMPsegments=\count104 +\nofMParguments=\count105 +\everyMPshowfont=\toks27 +\MPscratchCnt=\count106 +\MPscratchDim=\dimen121 +\MPnumerator=\count107 +\everyMPtoPDFconversion=\toks28 +) [1{/usr/local/texlive/2008/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] + +LaTeX Font Warning: Font shape `OT1/cmss/m/it' in size <10> not available +(Font) Font shape `OT1/cmss/m/sl' tried instead on input line 53. + +[2] [3] [4] [5] +File: emf_supersetreferences.png Graphic file (type png) + + +Overfull \hbox (8.53766pt too wide) in paragraph at lines 143--144 + [] + [] + +[6 <./emf_supersetreferences.png>] +Overfull \hbox (2.72874pt too wide) in paragraph at lines 177--178 +[]\OT1/cmr/m/n/10.95 With the na-tive en-cod-ing of Ecore em-u-lated by Gmodel +arte-facts, build-ing a bi-directional + [] + +[7] [8] [9] [10] [11] (./advanced_modelling_made_simple.aux) ) +Here is how much of TeX's memory you used: + 2887 strings out of 493876 + 36677 string characters out of 1150569 + 94870 words of memory out of 3000000 + 5970 multiletter control sequences out of 10000+50000 + 11421 words of font info for 44 fonts, out of 3000000 for 5000 + 875 hyphenation exceptions out of 8191 + 34i,6n,31p,964b,299s stack positions out of 5000i,500n,10000p,200000b,50000s + +Output written on advanced_modelling_made_simple.pdf (11 pages, 137350 bytes). +PDF statistics: + 81 PDF objects out of 1000 (max. 8388607) + 0 named destinations out of 1000 (max. 131072) + 6 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/advanced_modelling_made_simple.pdf b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/advanced_modelling_made_simple.pdf new file mode 100644 index 0000000..cce0c88 Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/advanced_modelling_made_simple.pdf differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/advanced_modelling_made_simple.synctex.gz b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/advanced_modelling_made_simple.synctex.gz new file mode 100644 index 0000000..ca70354 Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/advanced_modelling_made_simple.synctex.gz differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/advanced_modelling_made_simple.tex b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/advanced_modelling_made_simple.tex new file mode 100644 index 0000000..9dd0e0c --- /dev/null +++ b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/advanced_modelling_made_simple.tex @@ -0,0 +1,274 @@ +\documentclass[11pt]{amsart} +%\documentclass[11pt]{article} + +\usepackage{geometry} % See geometry.pdf to learn the layout options. There are lots. +\geometry{a4paper} % ... or letterpaper or a5paper or ... +%\geometry{landscape} % Activate for for rotated page geometry +\usepackage[parfill]{parskip} % Activate to begin paragraphs with an empty line rather than an indent +\usepackage{graphicx} +\usepackage{amssymb} +\usepackage{epstopdf} +\DeclareGraphicsRule{.tif}{png}{.png}{`convert #1 `dirname #1`/`basename #1 .tif`.png} + +\usepackage{ifthen} +\newboolean{showcomments} +\setboolean{showcomments}{true} +\ifthenelse{\boolean{showcomments}} + {\newcommand{\mynote}[2]{ + \fbox{\bfseries\sffamily\scriptsize#1} + {\small$\blacktriangleright$\textsf{\emph{#2}}$\blacktriangleleft$} + } + } + {\newcommand{\mynote}[2]{} + } +\newcommand\tony[1]{\mynote{Tony}{#1}} +\newcommand\jorn[1]{\mynote{Jorn}{#1}} +\newcommand\todo[1]{\mynote{ToDo}{#1}} + + +\title{Advanced Modelling Made Simple with the Gmodel Meta-Language} +\author{Jorn Bettin, Tony Clark} +%\date{} % Activate to display a given date or no date +\begin{document} +\maketitle + +\textit{Gmodel is a meta-language that has been designed from the ground up to enable specification and instantiation of modelling languages. Although a number of meta-languages can be used for this purpose, most provide no or only limited support for modular specifications of sets of complementary modelling languages. Gmodel addresses modularity and extensibility as primary concerns, and is based on a small number of language elements that have their origin in model theory and denotational semantics. This article illustrates Gmodel's capabilities in the area of model-driven integration by showing that the Eclipse Modeling Framework Ecore language can easily be emulated. Gmodel offers support for unlimited multi-level instantiation in the simplest possible way, and any meta-language emulated in Gmodel can optionally be equipped with Gmodel's multi-level instantiation functionality.} + +\section{Introduction} +\textit {In order to increase awareness about the role that domain specific modeling languages can play in capturing, preserving, and exploiting knowledge in virtually all industries, it is necessary to establish a strong consensus on the fundamental values and principles that underpin the use of domain specific modeling languages.} +\begin{enumerate} + +\item \textit{Reaching a strong consensus on fundamental values and principles for designing and using domain specific languages} +\item \textit{Progress towards interoperability between tools} + +\end{enumerate} +-- KISS Initiative, 2009 + +The development of Gmodel relates to the second objective of the KISS initiative, and builds on the KISS results that have been achieved in 2009. + +Since the design of Gmodel rests on mathematical concepts from model theory and from the theory of denotational semantics, Gmodel can tap into established mathematical terminology, and the target audience for Gmodel includes modellers in all disciplines. Consistent with denotational semantics and with the third KISS principle, Gmodel completely separates the concern of representation from the concern of naming. This means that in contrast to most programming language specifications, the specification of Gmodel does not include a text-based concrete syntax. + +The authors of Gmodel believe that modelling has the greatest value when performed by domain experts, and if modelling language design takes into account established domain notations. The challenge consists in providing a meta-language that enables the most experienced domain experts to define the notation for modelling in their field, whilst at the same time providing tool support for enforcing (and ideally guaranteeing) the adherence to KISS modelling language design principles. + +\mynote{ToDo}{Somewhere up-front there should be a paper outline. This could usefully include a diagram that conveys the contribution of the paper (the ability to interoperate with EMF because the type system and instantiation semantics of EMF can be encoded in GModel, because Gmodel can accommodate many different languages, including itself. This leads to the issue of a diagram showing the intended usage-architecture of Gmodel, i.e. the language-definition-instantiation relationship and the range of model processing sceanrios.} + +\section{Terminology} + +Modellers are not in the business of inventing new terminology, they are in the business of identifying concepts and links between concepts that are useful for a particular community of people -- usually scientists or professionals in a particular field. This approach to modelling is consistent with the Oxford American dictionary definition of modelling: +\begin{description} + +\item [to model] devise a representation, especially a mathematical one of (a phenomenon or system) + +\end{description} + +Model theory provides a mathematical basis for the field of modelling, and it defines precise terminology for reasoning about models . The second source of influence on Gmodel is denotational semantics . + +One advantage of using established mathematical terminology to describe Gmodel is a low risk of terminological confusion with concepts from the Meta Object Facility (MOF), a popular meta-language that is steeped in object orientation, and with concepts from related implementations such as the Eclipse Modeling Framework Ecore language. This benefit immediately becomes apparent when discussing the representation of Ecore in Gmodel. A second advantage of using the above terminology is the ability to reason about Gmodel in mathematical terms, without the need for any linguistic gymnastics. + +\subsection{Natural Language and Exchange of Artefacts} + +In addition to mathematics, Gmodel terminology draws on concepts that have shaped the development of natural language, and the way in which humans perform work and exchange artefacts -- including abstract ideas. In relation to the latter, and in accordance with the second KISS principle, the design of Gmodel takes into account human cognitive abilities and limitations. + +\begin{description} + +\item [model artefact] A language artefact that meets the following criteria: + +\begin{enumerate} +\item{It is \emph{created with the help of a software program} that enforces specific instantiation semantics (quality related constraints)} +\item{The information contained in a model artefact \emph{can be easily processed by software programs} (in particular transformation languages)} +\item{\emph{Referential integrity between model artefacts is preserved at all times} with the help of a software program (otherwise the necessary level of completeness and consistency is neither adequate for automated processing nor for domain experts making business decisions based on artefact content)} +\item{\emph{No circular links between model artefacts are allowed at any time} (a prerequisite for true modularity and maintainability of artefacts)} +\item{The \emph{lifecycle of a model artefact is described in a state machine} (allowing artefact completeness and quality assurance steps to be incorporated into the artefact definition)} +\end{enumerate} + +\item [instance] A set that \emph{seems to contain} one and only one element at any given point in time from the \emph{view point} of a specific \emph{actor} +\item [instantiation function] A function that returns an \emph{instance} -- sometimes instantiation functions are also called \emph{concretisation functions} +\item [visibility] Visibilities are links between model artefacts that set the \emph{architectural context} for artefact \emph{producers} by declaring the model artefacts that can be used as inputs for the creation of specific kinds of model artefacts +\item [producer] An \emph{actor} that creates \emph{language artefacts} +\item [consumer] An \emph{actor} that consumes \emph{language artefacts} +\item [value chain] definition to be inserted (system, actors, derivation) + +\end{description} + +\section{the Gmodel kernel} + +The Gmodel kernel is a semantic domain consisting of a set of semantic identities that reify the concepts of ordered pair, ordered set, and graph -- the latter consisting of a set of vertices and a set of edges. To facilitate extensibility and multi-level instantiation, the encoding of the Gmodel kernel is entirely expressed in Gmodel semantic identities, and each semantic identity in the kernel is defined as an instance of itself, and as a sub set of the next simpler semantic identity in the kernel. + +\mynote{ToDo}{This section would benefit from a simple model (diagram) of the kernel. It would also benefit from an example of the application of the kernel for a simple language (or perhaps just a ground model). In general, the descriptions in the paper are clear, but are at an abstract level. The paper would benefit from concrete examples of the key points. I don't think these need to be very extensive, but they need to be consistent with each other.} + +The generic term to refer to any semantic identity that is expressed in Gmodel is the \emph{set}. The simplest semantic identity is the \emph{ordered pair}. Ordered pairs are used to define \emph{ordered sets} and \emph{graphs}. Much of the power and simplicity of Gmodel has its origin the specific encoding chosen for graphs. Instead of consisting of a set of vertices and a set of edges, a Gmodel graph is encoded as a set of vertices and several complementary ordered sets of \emph{links}: +\begin{description} +\item [edges] links between two \emph{sets} with a dedicated \emph{edge end} for each connected set +\item [super set references] directed links from a \emph{sub set} to a \emph{super set} +\item [visibilities] directed links from one \emph{sub graph} to another \emph{sub graph} +\item [edge traces] directed links from one \emph{edge} to another \emph{edge} +\end{description} + +The Gmodel \emph{vertex} and all four types of \emph{links} are encoded as \emph{sub sets} of \emph{graph}. In order to serve as a meta-language, edge ends are decorated with variables for \emph{minimum cardinality} and \emph{maximum cardinality}, as well as variables that represent the direction of \emph{navigability} of edges and a notion of \emph{containment} relating to the connected set. + +\subsection{Instantiation} + +A modeller may use the \emph{instantiation} function of Gmodel kernel to create representations of vertices and links. Since vertices are encoded as a sub set of graph -- and hence enable the representation of nested abstractions, vertices are well positioned to serve as the unit of modularity in Gmodel. Using the terminology introduced above, vertices play the role of \emph{model artefacts}, and in the context of Gmodel (modelling), are simply referred to as \emph{artefacts}. + +Links between artefacts are also encoded as a sub set of graph, and therefore are also capable of representing nested abstractions by containing sets of vertices and sets of links. Links between two artefacts are always contained in the artefact that contains the first of the two artefacts connected by the link, which is one of the constraints that allows Gmodel to fulfil the fourth criteria of the definition of model artefact -- effectively enforcing much stronger rules regarding modularity than the minimum expectations set by KISS principles (4) and (9). + +The most powerful feature of Gmodel instantiation is the ability to decorate any Gmodel artefact with \emph{instantiation semantics} (or \emph{concretisation} semantics) relating to representations of less abstract (or more \emph{concrete}) sets, such that the artefact becomes \emph{instantiable}. The instantiation semantics available in the Gmodel kernel boil down to the variables for \emph{cardinalities}, \emph{navigability}, and \emph{containment} that are part of all \emph{edge ends} of Gmodel edges. Thus, on the one hand, by excluding any circular links between artefacts, Gmodel imposes heavy constrains on the models that can be created, but on the other hand, Gmodel allows an unlimited degree of freedom with respect to the number of instantiation levels. + +Gmodel does not mandate a layered metamodel architecture. Our modelling experience in software intensive industries has taught us that the model pattern known as the \emph{power type pattern} in object orientation occurs pervasively in highly configurable systems. The power type pattern is a technical kludge that forces the fragmentation of semantic identities, and it clearly demonstrates the limits of the object oriented paradigm -- which is currently still treated as dogma by many software engineers. By allowing multi-level instantiation, the need for the power type pattern is eliminated, and the fragmentation of semantic identities can be avoided. + +\subsection{Interoperability with other modelling technologies} There are two main ways of achieving interoperability between Gmodel and other modelling technologies. This article focuses on the level of profound semantic interoperability with other meta-languages that can be achieved by making use of multi-level instantiation to emulate "foreign" technologies. Gmodel also offers an alternative for partial and superficial interoperability via file based information exchange. Out of the box Gmodel includes integration with the Eclipse integrated development environment, and with the openArchitectureWare xPand template/transformation engine, putting text or code generation at the user's fingertips. + +\section{Emulating EMF Ecore in Gmodel} + +\subsection{Representing the EMF Ecore metamodel in Gmodel artefacts} + +Gmodel clearly distinguishes between \emph{semantic domains} and \emph{models}. The former simply contain sets of \emph{semantic identities}, whereas the latter contain \emph{representations of semantic identities} from the view point of a particular \emph{actor}. In Gmodel no model can be constructed without referencing elements in the relevant underlying semantic domains. + +\subsubsection{Defining the Ecore semantic domain} In Ecore the most generalised element is the EObject, and all other elements are part of a generalisation/specialisation hierarchy that starts with EObject. To respresent Ecore in Gmodel, the first step consists of instantiating the semantic domain \texttt{EcoreDomain}, which contains all the semantic identities that appear in Ecore. This step will be perceived as somewhat unusual by all those who are only familiar with the definition of text-based languages using EBNF-style grammars; as the concern of representation and the concern of naming are one and the same in such specifications. + +The number of semantic identities required to represent Ecore is significantly larger than the number of elements that appear in the Ecore generalisation/specialisation hierarchy. Every instance of an EDataType, every instance of an EReference, every instance of an EAttribute, etc. that occurs in the encoding of Ecore in itself requires a corresponding semantic identity. Loosely speaking, everything that has a name in the encoding of Ecore in itself corresponds to a semantic identity. + +\subsubsection{Representing the representation of Ecore in itself in Gmodel} + +To prepare for the representation of Ecore in itself (the metametamodel level in the classical four layered metamodel architecture) in Gmodel, we instantiate a \emph{model artefact} (with meta element \emph{vertex}) based on the semantic identity \texttt{Ecore} that has been defined as part of the EcoreDomain in the previous step. Loosely speaking we now have an empty model artefact called "\texttt{Ecore}". + +We can then proceed to add \emph{contained artefacts} (with meta element \emph{vertex}) to the \texttt{Ecore} artefact that correspond to the Ecore generalisation/specialisation hierarchy that starts with EObject. Once this is done we can represent the entire Ecore generalisation/specialisation hierarchy in the \texttt{Ecore} artefact using \emph{super set references}, and we can represent all instances of EReferences in the \texttt{Ecore} artefact within Gmodel. + +Lastly we add all relevant \emph{variables} to the elements of the \texttt{Ecore} artefact, making use of appropriate \emph{semantic identities} from the \texttt{EcoreDomain}. + +The whole process of representing Ecore in Gmodel is straightforward modelling in Gmodel, and requires no coding in a programming language. + +\begin{figure} +\begin{center} +\includegraphics[width=150mm]{emf_supersetreferences} +\caption{Representation of super set references between EMF Ecore concepts} +\label{default} +\end{center} +\end{figure} + +\subsection{Representing EMF Ecore models in Gmodel} + +The representation of Ecore models (the metamodel level in the classical four layered metamodel architecture) in Gmodel follows the same pattern as the representation of Ecore in itself in Gmodel. First, appropriate semantic identities must be defined, and then the \texttt{Ecore} model artefact can be instantiated to obtain an empty model artefact. Note that above we instantiated a vertex to obtain a model artefact with the \texttt{Ecore} semantic identity, and now we are instantiating this model artefact. + +Just as above, the next step consists of adding contained artefacts to the model artefact, this time however the meta elements of the contained artefacts correspond to Ecore concepts. Up to this point there is nothing special about using Gmodel. We could turn the table and proceed with very similar steps in EMF Ecore to obtain a reasonable representation of Gmodel -- "reasonable", because EMF actually lacks one instantiation level to provide a precise representation of Gmodel \emph{edges}. But instead of delving into the encoding details of Gmodel edges, the following step in encoding Ecore models is straightforward to follow, and clearly illustrates where multi-level instantiation plays a critical role. + +\mynote{ToDo}{relevant Gmodel artefact visualisation(s).} + +In Gmodel we can proceed to represent all instances of EReferences as demanded by the Ecore model we are emulating, and we can use the edges that Gmodel uses to connect EReference instances to the source and target instances of Eclass to record the cardinalities pertaining to the \emph{instantiability} of the model artefact. In a meta-language without multi-level instantiation we would already have hit rock-bottom at this point. We would have been able to express links between elements (which, depending on the meta-language, may be called "references", "associations", "relationships", "connections", "edges" or similar -- the name is immaterial), but we would not have been able to decorate these links with cardinalities etc., which constitute essential instantiation semantics for the next level of instantiation or concretisation. + +\subsection{Representing instances of EMF Ecore models in Gmodel} + +Given the explanations above, it is obvious how to proceed to instantiate Ecore models +(the model level in the classical four layered metamodel architecture) in Gmodel. + +\mynote{ToDo}{relevant Gmodel artefact visualisation(s).} + +\subsection{Representing instances of instances of EMF Ecore models in Gmodel} + +In Gmodel there is no reason to stop modelling at the "model" level. If the modeller has invested in decorating a model artefact with instantiation semantics, Gmodel is capable of applying these semantics -- regardless of the level of instantiaton or concretisation. + +In practical terms multi-level instantiation allows the modeller to instantiate operational data right down to the \emph{concrete} level (the instance level +in the classical four layered metamodel architecture) -- where Joe Bloggs owns life insurance policy number 123456. Given that industrial-strength relational database technology is the default storage format used by the Gmodel repository, navigating and maintaining large and databases or data warehouses is simply a matter using the Gmodel repository for naviation, and of using Gmodel's instantiation function. + +\mynote{ToDo}{relevant Gmodel artefact visualisation(s).} + +\section{Interoperability between EMF Ecore and Gmodel} + +With the native encoding of Ecore emulated by Gmodel artefacts, building a bi-directional bridge between the two technologies has become a trivial task. The Ecore API can be used to systematically read EMF models (at the metamodel level and the model level in the classical four layered metamodel architecture), and the retrieved in-memory representations can be mechanically mapped to corresponding in-memory representations in the Ecore emulation within Gmodel. + +Gmodel is a technology that allows the construction of model driven systems on a new scale, whereas EMF Ecore is a technology with an established user base and a vast array of useful transformation and generator components that facilitate the binding to popular Java implementation technologies. A bridge between Ecore and Gmodel can be driven by an event-based mechanism to create dynamic interoperability between the two technologies, opening up interesting avenues for model driven systems that exploit the strengths of both technologies. + +\mynote{ToDo}{Having set up EMF in Gmodel, I'd suggest having a concrete example (however small) of an EMF model transformed to Gmodel and back again.} + +\section{Advanced applications of multi-level instantiation} + +\subsection{The bottomless pit of abstractions} + +Gmodel incorporates the insight from experienced modellers that there is no absolute rock-bottom \emph{concrete} level of models. Life insurance policy number 123456 only looks like an instance from the view point of the average policy holder. From the view point of the insurer a specific version of the policy that is active for a certain interval is a more appropriate perception of \emph{instance}. And, in case in 2020 Joe Bloggs decides to shift his entire life into n virtual worlds (given the track record of software technology, who would want to put all eggs in one basket ;-), his view point will shift. Life insurance policy number 123456 in Second Life may be considered to be one instance, and the corresponding policy representation in Third Life may be considered to be a different instance -- perhaps the currency in which premiums are being paid is different in each of the virtual worlds. + +\subsection{Modelling of value chains in the context of mass customisation} + +If the above sounds far fetched, analysing the typical evolution of technology products over a period of several years provides further motivation for multi-level instantiation. Since the 1970s software has been used as a tool to not only automate industrial production, but also to extend the degree to which technology products can be configured and customised without having to resort to manual manufacturing techniques. Mass customisation has become commonplace in many industries. + +The evolution of a product over longer stretches of time can be modelled as a series of instantiation levels. Adding a new set of configuration options equates to adding additional \emph{variables} to an artefact that used to be perceived as an instance. What used to be called a product morphs into a \emph{product line}, and the new products are the instances of the product line, where each of the variables take on concrete \emph{values}. The view point of the customer usually remains unaffected, she still buys instances of a product. + +Within a non-trivial value chain, the variables associated with a product line tend to be replaced by concrete values in a series of stages, so called \emph{binding times}. Each binding time is associated with a specific actor that is responsible for making \emph{decisions} regarding the values relating to a specific set of variables. In our experience multi-level instantiation is by far the simplest modelling technique for representing non-trivial value chains. + +The alternative of using a purely object oriented design, in combination with the classical power type pattern, leads to system designs that are much more complex and much less maintainable than they could be. In particular the traditional distinction between design-time and run-time is a dangerous over-simplification that distracts from the need of proper \emph{value chain analysis} (also known as \emph{domain analysis} in the discipline of software product line engineering). + +\section{Practical application of denotational semantics} + +Since all model artefacts in Gmodel are constructed from semantic identities, and since semantic identities are the only Gmodel elements that have names, semantic identities offer a one-stop-shop for dealing with all aspects of naming. This greatly facilitates any required translation between different terminologies, and it even enables users to replace the names of the semantic identities in the Gmodel kernel. If a user prefers to call a vertex a node, or if she prefers to rename TRUE to FALSE and FALSE to TRUE, so be it. The role of modelling is representation and not naming. + +Separating the concern of \emph{modelling} from the concern of \emph{naming} adds value precisely because good terminology \emph{is} so important. Each pair of collaborating actors in a value chain tends to have a preferred terminology or \emph{jargon} for their specific interactions, and such jargon is often a valuable tool for \emph{disambiguation}. + +Without the systematic use of semantic identities, establishing interoperability across an entire value chain is significantly complicated. Names end up being used in the definition of protocols and artefacts, and the reliability of links between the participants in the value chain and communication across the links suffers accordingly. + +It is worthwhile to note that semantic identities are not only applicable at the atomic level to define identities such as \emph{TRUE} and \emph{FALSE}, but are just as applicable to statements such as \emph{minimum cardinality = 1} or to aggregates such as the entire \texttt{Ecore} model artefact. + +\section{scope management via visibilities} + +Modularity and scope management go hand in hand. One without the other is of very little value. Gmodel requires users to be explicit about scope. A model artefact may not reference any element in other model artefacts unless these artfacts have been declared to be \emph{visible} from the first artefact. In contrast to most programming languages, declarations of visibility are not part of an artefact, but they are part of the \emph{parent artefact} in the so called \emph{artefact containment tree}. + +The parent artefact has the responsibility of providing the \emph{architectural context} for all the artefacts that it contains. The authors of Gmodel consider it to be good modelling practice to associate every artefact with a producer, and to identify and name the binding time that is associated with the instantiation of an artefact. Experience from many large-scale software system development initiatives has consistently confirmed the usefulness of this approach to system analysis and modularisation. + +The encoding of Ecore in Gmodel required the declaration of a small number of visibilities, but there are much better practical examples that can be used to demonstrate the value of scope management via visibilities -- a topic that goes beyond the scope of this paper. + +Visibilities offer significant value to intensive users of EMF, as Ecore lacks a corresponding facility. By switching from the native implementation of Ecore to the Gmodel \texttt{Ecore} emulation, EMF users gain access to the use of visibilities, and hence obtain a powerful tool for actively managing/restricting the dependencies in large-scale Java component architectures. + + +\section{Gmodel compared to other technologies} + + +\subsection{Modelling technologies} + +The level of interoperability between current domain specific modelling tools is comparable to the level of interoperability between CASE tools in the 90s. To increase the popularity of model based approaches, this needs to change. The assumption that all parties in a global software supply chain will use identical tooling is simply not realistic. + +\subsubsection{Eclipse Modeling Framework Ecore} + +In this paper we have illustrated how Gmodel can be used to emulate the Ecore technology, and conversely we have highlighted some of the limits of Ecore, in particular the lack of support for multi-level instantiation. + +\subsubsection{MetaEdit+} + +MetaEdit+ is mature metamodelling and modelling environment that compares favourably with the Eclipse Modelling Framework. In particular the metametamodel of MetaEdit+ is simpler than the metametamodel used by EMF, without any sacrifice in expressive power. But just as EMF, MetaEdit+ follows the four layered metamodel architecture dogma and does not offer multi-level instantiation. As a result MetaEdit+ runs into the same limitation that EMF runs into when attempting to emulate "foreign" modelling technologies. + +Similar to Gmodel, MetaEdit+ relies on database technology rather than a file system for the storage of model artefacts, enabling modellers to build large-scale model driven systems, but without explicit scope management facilities. + +\subsubsection{Research prototypes} + +We are aware of at least three modelling technology prototypes with some form of multi-level instantiation capablity. It would be extremely interesting to compare the design of Gmodel with the design of these prototype technologies. + +\subsubsection{Unified Modelling Language tools} + +The main target audience of UML consists of software professionals who have an interest in visualising code, especially object oriented code. Most UML tools only offer very limited -- if any -- functionality for instantiating models that users have created. Since UML is based on the Meta Object Facility (and on Ecore or similar implementations), UML tools are affected by the kinds of limitations discussed in this paper in relation to Ecore. + +\subsection{Programming languages} + +There are several programming languages that offer multi-level instantiation, and there are also a number of programming languages that are based on denonational semantics, such as LISP or REBOL. Whilst these language have expressive power that is comparable to Gmodel, they don't offer the limitations and constraints that have consciously been built into Gmodel. + +Programming language designers approach language design from a view point that differs significantly from the view point of a modeller. + +\begin{enumerate} +\item{A programming language is designed to be executable on a specific platform, and the imlementations of programming languages are optimised with respect to using the resources offered by the platform} +\item{is \emph{consumed by at least one actor} (human or system)} +\item{represents a \emph{natural unit of work} (for the creating and consuming actors)} +\item{\emph{may contain links to other language artefacts}} +\item{\emph{has a state and a lifecycle}} +\end{enumerate} + +\section{Overall contribution of Gmodel to Model Driven Interoperability} + +\mynote{ToDo}{a clear statement of contribution. This is missing and should be at least a para by itself (if not a short section). I think that the contribution follows from the problem analysis and the ways in which Gmodel can solve the problems where other technologies cannot (or can do so in limited ways). Therefore, I'd suggest that the contribution includes: simplicity; using established abstractions; multiple meta-levels; modularity.} + +In contrast to many other modelling technologies Gmodel makes no assumption about the implementation and legacy technologies that modellers are going to drive from their model artefacts. The Gmodel kernel is highly portable. It is articulated using the concepts presented in this paper, and makes use of the Java programming language to bootstrap the nine kernel concepts of \emph{ordered pair, ordered set, graph, vertex, edge, edge end, super set reference, visibility}, and \emph{edge trace} -- but without exposing the Java type system in the core API, whilst restricting internal use of Java types to a handful: \texttt{boolean}, \texttt{int}, \texttt{List}, \texttt{Iterator}, \texttt{UUID}, and \texttt{String}. + +Furthermore, Gmodel is not limited to the four layered metamodel architecture. This opens up new approaches with respect to interoperability, since types -- and therefore interoperability patterns, can be encoded in Gmodel to any level of complexity. + +\mynote{ToDo}{Perhaps a comparison of Gmodel with other modelling technologies? Particularly UML - again material can be plundered from the original KISS paper. A current state and further work para?} + +\section{Conclusions} + + +\mynote{ToDo}{closing statements} + +\end{document} \ No newline at end of file diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/emf_specialisation_generalisation_hierarchy.tiff b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/emf_specialisation_generalisation_hierarchy.tiff new file mode 100644 index 0000000..a10e4f2 Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/emf_specialisation_generalisation_hierarchy.tiff differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/emf_specialisation_generalisation_supersetreferences.jpg b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/emf_specialisation_generalisation_supersetreferences.jpg new file mode 100644 index 0000000..f5a2188 Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/emf_specialisation_generalisation_supersetreferences.jpg differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/emf_supersetreferences.png b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/emf_supersetreferences.png new file mode 100644 index 0000000..00a4b9c Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/emf_supersetreferences.png differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/enterprise_architecture_information_classification_model.jpg b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/enterprise_architecture_information_classification_model.jpg new file mode 100644 index 0000000..bf4a707 Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/enterprise_architecture_information_classification_model.jpg differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/enterprise_architecture_modelling_language_supersetreferences.tiff b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/enterprise_architecture_modelling_language_supersetreferences.tiff new file mode 100644 index 0000000..eaf1b61 Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/enterprise_architecture_modelling_language_supersetreferences.tiff differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/enterprise_architecture_operational_data.tiff b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/enterprise_architecture_operational_data.tiff new file mode 100644 index 0000000..a42969f Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/enterprise_architecture_operational_data.tiff differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/er_schema_crm.jpg b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/er_schema_crm.jpg new file mode 100644 index 0000000..d982574 Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/er_schema_crm.jpg differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/er_schema_crm.tiff b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/er_schema_crm.tiff new file mode 100644 index 0000000..a7db181 Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/er_schema_crm.tiff differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/er_schema_crm_artefactdetails.jpg b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/er_schema_crm_artefactdetails.jpg new file mode 100644 index 0000000..730c6ae Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/er_schema_crm_artefactdetails.jpg differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/er_schema_crm_artefactdetails.tiff b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/er_schema_crm_artefactdetails.tiff new file mode 100644 index 0000000..c5b0874 Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/er_schema_crm_artefactdetails.tiff differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/er_schema_language.jpg b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/er_schema_language.jpg new file mode 100644 index 0000000..b06968c Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/er_schema_language.jpg differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/er_schema_language.tiff b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/er_schema_language.tiff new file mode 100644 index 0000000..752733f Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/er_schema_language.tiff differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/gmodelold.tex b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/gmodelold.tex new file mode 100644 index 0000000..9991ad1 --- /dev/null +++ b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple/gmodelold.tex @@ -0,0 +1,447 @@ +\documentclass[11pt]{amsart} +%\documentclass[11pt]{article} + +\usepackage{geometry} % See geometry.pdf to learn the layout options. There are lots. +\geometry{a4paper} % ... or letterpaper or a5paper or ... +%\geometry{landscape} % Activate for for rotated page geometry +\usepackage[parfill]{parskip} % Activate to begin paragraphs with an empty line rather than an indent +\usepackage{graphicx} +\usepackage{amssymb} +\usepackage{epstopdf} +\DeclareGraphicsRule{.tif}{png}{.png}{`convert #1 `dirname #1`/`basename #1 .tif`.png} + +\usepackage{ifthen} +\newboolean{showcomments} +\setboolean{showcomments}{true} +\ifthenelse{\boolean{showcomments}} + {\newcommand{\mynote}[2]{ + \fbox{\bfseries\sffamily\scriptsize#1} + {\small$\blacktriangleright$\textsf{\emph{#2}}$\blacktriangleleft$} + } + } + {\newcommand{\mynote}[2]{} + } +\newcommand\tony[1]{\mynote{Tony}{#1}} +\newcommand\jorn[1]{\mynote{Jorn}{#1}} +\newcommand\todo[1]{\mynote{ToDo}{#1}} + + +\title{Modular Multi Level Meta Modelling with Gmodel} +\author{Jorn Bettin, Tony Clark} +%\date{} % Activate to display a given date or no date +\begin{document} +\maketitle + +\textit{It is increasingly recognised that domain specific modelling languages hold the key for improving productivity and quality in software design, development, configuration, interoperability, an operation. Although there are a number of languages that can be used for specifying the abstract syntax of a modelling language, none of these languages provides optimal support for modular specifications of sets of complementary modeling languages. Gmodel is a language that has been designed from the ground up for the purpose of meta modelling. It addresses modularity and extensibility as primary concerns, and is based on a small number of language elements that have their origin in graph theory. } + +\section{Introduction} + + \todo{a general introduction to topic, introduce terms DSL etc...} + +Designing and implementing domain specific modelling languages for industrial use is only practical if the tooling used for language design and implementation is sufficiently robust and easy to use. At this point in time (2009), the number of tool chains that can be used for language design and implementation is growing, but easy integration of languages that have been developed with different tool kits is not yet a reality. + +\todo{cite some examples of interoperability problems} + +\todo{an example that motivates the need for tool chains and interoperability...} + +The design of a domain specific modelling language involves the specification of an abstract syntax based on familiar and established domain terminology, the design of one or more concrete syntaxes, and the design of ergonomic model editors for each of the concrete syntaxes. Concrete syntax is mainly relevant for humans and model editor design, whereas abstract syntax is also relevant for all other tools (beyond editors) that process model-based artefacts. + +Interoperability hinges on the ability of tools in a tool chain to exchange model-based artefacts, which entails the ability to read modelling language definitions and models. In this context a shared abstract syntax for articulating language definitions is essential, and consequently there is a need for a meta language that can serve as the glue in model-based tool chains. + +Experience shows that software vendors want to - and need to - compete in terms of implementations. No single meta language can address all interoperability issues. Therefore, in order to be relevant, any shared meta language must be extensible, and should only be viewed as the substrate on top of which practical interoperability solutions can be built - and not as the ultimate solution for all interoperability needs. + +Choosing graph theory as the main source of terminology for Gmodel has three very nice effects: + +\begin{itemize} + +\item It is a a universal representation that does not imply any particular implementation for language structures - unlike an object-and-slot based approach. + +\item It minimizes the risk of confusing meta modelling concepts with concepts in the language that is being modelled or with concepts of the languages used in the solution space - especially in verbal discussion about language design. + +\item It simplifies the exploitation of existing software and powerful algorithms for graph based computations and transformations + +\end{itemize} + +\begin{figure} +\begin{center} +\includegraphics[width=130mm]{contextoverview} +\caption{Gmodel in the context of the development of domain specific languages} +\label{default} +\end{center} +\end{figure} + +Section 2 in this paper positions Gmodel in the context of the KISS initiative, section 3 introduces the Gmodel language elements, section 4 describes the instantiation semantics for graphs and constraints related to best practices for modelling language design, and section 5 contains a set of use cases that illustrate the context for which Gmodel has been conceived. + +\section{motivation} + +The motivation for developing Gmodel is closely linked to the five core values of the KISS initiative: + +\begin{enumerate} + +\item \textit{We strive to automate software construction from domain models; therefore we consciously distinguish between building software factories and building software applications} + +The decision to use terminology from graph theory is a conscious one, intended to minimize terminological overloading between meta modelling and modelling. + +\item \textit{We work with domain-specific assets, which can be anything from models, components, frameworks, generators, to languages and techniques} + +Gmodel is a valuable asset for the specialized task of designing modelling languages. + +\item \textit{We support the emergence of supply chains for software services, which implies domain-specific specialization and enables mass customization} + +Gmodel enables the creation of highly modular meta models and models. Beyond that it also provides the means for participants in a supply chain to specify architectural constraints for artefacts produced (to order) by their suppliers. + +\item \textit{We see Open Source test beds and reference implementations as driving the interoperability required for economically viable software supply chains and as a catalyst for Open standards} + +The implementation is open source and is subject to the evolutionary forces in the open source software ecosystem. + +\item \textit{The methodologies we use conform with the values of the Agile Manifesto} + +The design involves a minimal set of language elements. A closer analysis of the use cases for modelling language design and the use cases for modelling in section [x] shows that the language elements included in Gmodel are essential for achieving good modularity and extensibility. + +\end{enumerate} + +\subsection{Striving for simplicity} + +The specification of an abstract syntax of a language boils down to the specification of language elements and the allowable links between them - some of which may be navigable in both directions, and some only in one direction. Hence an abstract syntax specification is isomorphic to a \textit{graph} where language elements correspond to \textit{vertices}, links between language elements correspond to \textit{edges}, and the role of a vertex in a link corresponds to an \textit{edge end}. These elementary graph theoretical concepts form the basis of Gmodel, and allow users of Gmodel to tap into a wealth of graph theoretical knowledge without the need for encoding this knowledge in some other terminology. Beyond graphs Gmodel is equipped with a minimal set of additional concepts that are useful for meta modelling (generalization/specialization and properties) and dependency management (module references). + +\subsection{Modularity and separation of concerns} + +Gmodel also strives for further features that are related to good separation of concerns: + +\begin{itemize} + +\item Fractal decomposition + +\item Modularity as a first class concept in all language designs + +\item Relationships between models as first class language design concepts + +\end{itemize} + + \todo{stuff below requires citations to back up...} + +Poor separation of concerns lies at the root of most software maintainability problems, even though every modern programming language provides at least one mechanism for modularizing specifications. But it seems that the mechanisms available are insufficient for practical purposes. After more than a decade of object oriented dominance in software development paradigms it is useful to step back and to take stock. + +Objects turned out to be to small for achieving reuse, and led to the development of frameworks and components. Large frameworks are very expensive to develop, and for the most part have proved impractical to use. + +These shortcomings have led to a number of complementary or rather compensatory approaches and techniques. + +Firstly, the use of configuration files has become pervasive. In many organizations the amount of decisions that are managed in poorly designed configuration files or configuration databases is alarming. It is not uncommon to address the symptoms with generative techniques, but often this just means that the problem is shifted to a new set of poorly designed abstractions. Configuration files can be viewed as domain specific languages with ad-hoc designs. + +Observation: What is really lacking is a set of best practices - a paradigm - for designing domain specific modelling languages, such that configuration files don't continuously remain the poor cousins of "real" source code. + +Secondly, aspect orientation is attempting to tackle separation of concerns head-on. The problematic part in this case lies in the level of abstraction at which aspects are introduced. Tooling for aspect oriented programming operates at the level of code, and there is no established set of best practices for defining useful complementary aspects. + +Observation: Given that in the context of software the term coding is often used interchangeably with programming, it is instructive to compare the dictionary definitions of \textit{to code} and \textit{to model} to understand the not-so-subtle difference in intent: + + \todo{We need to tease out the issue that the key development aspects of 'software engineering' are 'language engineering' and and then bridging the gap between the notation and the implementation platform. Coding can then be viewed as having to deal with someone else's representation (program notation or otherwise). Modelling can then be viewed as dealing with a representation that is fit for purpose.} + +\begin{description} + +\item [to code] express (a statement or communication) in an indirect or euphemistic way + +\item [to model] devise a representation, especially a mathematical one of (a phenomenon or system) + +\end{description} + +Gmodel is designed for modelling, and not for coding. It is intended for use in conjunction with a number of best practices for language design that lead to +\begin{itemize} + +\item good separation between language definitions, and + +\item good separation between the artefacts modelled in these languages. + +\end{itemize} + +A good meta language does not magically separate concerns, but it can be designed to minimize the effort required of the language designer to cater for modularity. Further incentives for modularization can be built into graphical editors for Gmodel and languages developed with Gmodel, for example by optimizing the usability of model browsers and diagramming tools for the scenario of sufficiently modularized models. + +There are several important relationships between language definitions (graphs) in Gmodel: + +\begin{description} + +\item [equivalence relationships] two language definitions are deemed equivalent if their graphs are isomorphic in the mathematical sense, and if the values of the properties attached to the elements of the graph are equivalent. +\item [refinement relationships] a language element at one level expands into an entire (corresponding) language definition at a more detailed level. +\item [sub-model relationships] the use of refinement relationships leads to relationships at a detailed level that correspond to higher level relationships between language elements that have refinements (have been expanded into a sub-language definition). +\item [semantic relationships] two languages are related by a semantic mapping that describes how the elements in one language are represented in the other. For example classes are represented by objects, state machines are represented by traces. \jorn{is this not the "instantiation" relationship?} + +\end{description} + +\subsection{architecture and agile collaboration} + +Keeping up consistent software design quality over extended periods of time is always difficult, even in when the software development team is collocated in one site. The larger a software supply chain (say a geographically distributed software product development team and external suppliers in the form of technology vendors), the more difficult it is to prevent degradation of the quality of software design over time. + +The reasons for software design degradation in large systems have a lot to do with the topics discussed above, poor separation of concerns within general purpose languages, and the difference in intent between coding and modelling. In a coded solution the design intent is not explicit or easily accessible, and essential knowledge needed to maintain and evolve the design often is scattered across a group of people. The big picture of an initial top down design that may have existed when the system was conceived rapidly loses its value, as the implementation moves ahead and the design is only updated at the code level based on very pragmatic and localized considerations. + +In a model driven solution, the design intent is captured in models that are always in sync with the implementation, therefore the risk of design degradation is much reduced. However, as the discussion of configuration files shows, only well-designed modelling languages that achieve a good separation of concerns have this positive effect on maintainability. This highlights the timelines of the KISS objective to agree on a set of fundamental principles and best practices for designing domain specific modelling languages. + +Gmodel allows graphs to be partitioned into subgraphs, and forces the language designer to articulate the allowed dependencies between subgraphs before any edges can be defined that cross the boundaries between two subgraphs. In fact, the allowed dependencies between the subgraphs of a graph constitute a separate architectural artefact, such that modification of the artefact can be managed via off the shelf or open source version control software and role based access control. + +From the perspective of the person who models a subgraph, the constraints implemented within Gmodel prevent the creation of any subgraph structures that violate the architecture of allowable dependencies defined at the level of the containing graph. Hence, in case there is a valid reason for changing the architecture, the modeller of the subgraph needs to discuss and agree the intended change with the owner of the containing graph (the owner of the architecture), so that the latter can update the graph model accordingly. Only once the architecture is updated, is the modeller of the subgraph able to create edges that meet the new architecture definition. + +Likewise, the owner of a graph can not remove allowable subgraph dependencies from the active version of the graph until all corresponding dependencies between subgraphs have been removed. The latter action can either be conducted automatically by the modelling tool (if the graph owner has write privileges to the relevant subgraphs), or in consultation with relevant subgraph owners. + +These Gmodel features for architecture management can be used to enforce appropriate collaboration between owners of graphs and subgraphs, and thereby enable model driven designs to scale much better than coded designs. + +\section{The language elements of Gmodel} + + \todo{We need to fit some examples. One familiar example like "class models" and something very non-standard. We'll define the example languages in concrete terms using Gmodel. \jorn {Until we have a working Gmodel API implementation (not far off) this can be done using a simple Ecore based implementation of Gmodel and corresponding model instances.} The examples need to include an illustration of how the development process works (e.g. refinement or modularity etc). Then we deconstruct the examples in terms of gModel and show how gModel underpins: the models; the links between the models in the development process; the language definitions; the relationship between the models and the language definition; the relationship between the models and gModel (we can also mention that all this applies to gModel in terms of itself). Lastly we exhibit some feature of gModel that would be difficult using another approach (such as in Ecore).} + +\begin{figure} +\begin{center} +\includegraphics[width=150mm]{gModel} +\caption{The structural overview of the modelling elements available in Gmodel} +\label{default} +\end{center} +\end{figure} + +Figures 3 and 4 show how Gmodel has been encoded in itself to achieve a first implementation. + +\begin{figure} +\begin{center} +\includegraphics[width=130mm]{gmodel_instance} +\caption{Encoding of graphs and vertices} +\label{default} +\end{center} +\end{figure} + +\begin{figure} +\begin{center} +\includegraphics[width=130mm]{gmodel_instance_Edges} +\caption{Encoding of edges} +\label{default} +\end{center} +\end{figure} + +\section{Instantiation semantics} + +\subsection{Features for modelling of graphs} + +\begin{description} + +\item [Graph] A graph consists of a collection of vertices and a collection of edges. In Gmodel the links between a graph and the vertices and edges constituting the graph are encoded as physical containment - a graph artefact contains or includes vertices and edges, and no vertex or edge can exist independently from a containing graph. + +This concept is equivalent to the containment concept in the UML, which also demands lifetime-dependency between container and contained parts. Since the term container or containment heavily used in many contexts in software engineering, Gmodel uses the term owner to refer to containment in the strict sense involving lifetime-dependency as described above. Each element in Gmodel must have exactly one active owner at a given point in time. The graph artefact that encodes Gmodel is a special case (and the only such case) where the owner of a a graph is the graph itself. + +\item [Vertex] A vertex is the source and the target of any number of edges. + +\item [Edge] An edge has two edge ends that connect the edge to two vertices. + +\item [Edge end] An edge end is connected to a vertex and determines whether the vertex is visible from the vertex connected to the edge end at the other side of the edge. + +\item [Sub graph tree] The content of a graph (vertices and edges) can be organized into a sub graph tree, which is a decomposition of the graph intonon overlapping sets of sub graphs. Each graph (or sub graph) is only contained exactly once in a sub graph tree structure. This leads to the containment semantics needed for physically modularizing graphs. + +\item [Secondary sub graphs] The sub graph tree may also contain sub graphs that (independently from containing sub sub graphs) reference further sub graphs. Thus secondary sub graphs provide the mechanism needed to represent overlapping sets of sub graphs. + +\end{description} + +\subsection{Fundamental features for meta modeling} +\subsubsection{Generalizations} + +\begin{description} + +\item [Generalization] A graph may refer to one or more generalizations. All generalizations of a graph are graphs as well. A specialization inherits all properties from its generalizations. However inheritance of properties does not imply polymorphism in the object oriented sense. + +A specialization may not redefine any inherited properties, and although a graph may have multiple generalizations, any property definitions inherited from more than one generalization must be traceable back to exactly one common root in the generalization hierarchy. + +\item [Is abstract] A graph has a property to indicate whether it can be instantiated or whether it only serves as an abstract generalization that has instantiable specializations. + +\item [Abstract edge] An abstract edge is an abstract generalization of an edge. + +\end{description} + +\subsubsection{Element} + +\begin{description} + +\item [Element] All vertices (or graphs) in the encoding of Gmodel are either direct or indirect specializations of Element. Each element is an instance of a metatype, which provides the basis for distinguishing meta levels. In Gmodel there is no artificial limits to the number of meta levels. Hence any concrete (non-abstract) graph can be used in the role of a meta model, and Gmodel can be used to create "instantiate" a graph (a meta model). + +\item [Structured element] In Gmodel there is a conscious distinction between structured elements that may have properties (vertex, abstract edge, and edge end) and the other elements that may not have properties. Structured elements constitute first-class meta modelling concepts whose properties are used as a template that determines which property values are available when a vertex (or Graph) is instantiated. + +\item [Typed element] Vertices, atoms, and lists may be used as inner types in lists, and are therefore encoded as specializations of a common generalization called typed element. + +\item [Property] Properties are part of the definition of a structured element. A property can be defined as optional, which means that a property does not necessarily apply to all instances of a structured element. + +\item [Property value] The metatype of a property value is always a property. Property values constitute the items that can be set in Gmodel after a structured element has been instantiated. If a property has been defined as optional, then this means that there may be some instances of a structured element where the property is not applicable and hence the associated property value is set to the state of not-applicable. When setting a property value Gmodel only accepts the state of not-applicable if the property is defined as optional. The other two states of a property value (unknown and known) are permissible both for optional and mandatory properties. + +\end{description} + +\subsubsection{Atom} + +\begin{description} + +\item [Atom] Every property refers to exactly one value type. All permissible value types are atomic in the sense of not containing substructures that are accessible in the form of properties. Atoms constitute the insulation layer between the problem space (which is modelled) and an underlying solution space (the platform or implementation technology that is being abstracted away by models). Gmodel comes with an extensible predefined set of atoms. Users are able to plug in additional (domain specific) atoms as required. Property values are always instances of atoms. Instances of atoms are serializable and are they are persisted as part of a graph in all the places where they are referred to by a property value (via the metatype of the property value and the value type of the metatype). + +\end{description} + +\subsubsection{Edge end} + +\begin{description} + +\item [Minimum cardinality] The minimum cardinality of the associated vertex. This property is only relevant when the graph is used in the role of a meta model. + +\item [Maximum cardinality] The maximum cardinality of the associated vertex. This property is only relevant when the graph is used in the role of a meta model. + +\item [Is container] Only one of the two edge ends associated with an edge can act in the role of container. If an edge is used to model containment, then there needs to be navigability from the container to the contained part. This property is only relevant when the graph is used in the role of a meta model. + +\item [Is navigable] Is used to indicate in which way the associated edge can be navigated. This property is only relevant when the graph is used in the role of a meta model. + +\end{description} + + +\subsection{Features to support modularity} + +\subsubsection{Graphs} + +\begin{description} + +\item [Graphs are specialized vertices] When a graph owns a large number of vertices and edges, partitioning the graph into smaller sub graphs is essential for human understandability and for the practical aspect of managing modifications to the graph. Additionally there is the practical aspect of providing a mechanism that allows a hierarchical drill-down perspective into set of sub graphs. In Gmodel this is achieved by encoding a graph as a specialization of a vertex, such that an element that appears as a vertex in a graph, may at the same time be expanded into a sub graph that contains further vertices and edges. + +This approach avoids the need to introduce an additional - in many ways artificial - concept for modularity. Graphs in the role of specialized vertices together with the sub graph tree constitute the foundation for modularity in Gmodel. In practice the role of some graphs is exclusively one of sub graph owner and architecture owner for these sub graphs. + +\item [Instantiable artefacts] Non-abstract graphs are the only elements in Gmodel that can be instantiated as independent physical artefacts. This means that Gmodel does not allow the creation of any non-graph elements outside the context of a graph (in the role of owner). Gmodel starts treating a non-abstract graph as an independent physical artefact as soon as the graph is referenced via a sub graph tree link from another graph. A graph may only be removed from the sub graph tree when it no longer contains any vertices (and by implication any edges). Gmodel discontinues treating a graph as an independent physical artefact as soon as it is no longer referenced from any graph in the sub graph tree. + +Lastly vertices and edges are only allowed to be added to a graph that is not referenced in a sub graph tree if the graph itself constitutes the top element in the sub graph tree. Taken together this constitutes a policy that imposes modularity at exactly one level of granularity (the graph) by guaranteeing that all non-empty graphs are independent physical artefacts. + +\begin{figure} +\begin{center} +\includegraphics[width=130mm]{exampleofmodulargraphs} +\caption{Example of a modular graph consisting of several sub graphs} +\label{default} +\end{center} +\end{figure} + +This policy differs noticeably from the two prevailing policies applied by software modelling tools, namely the policy of making modularity an optional aspect that the modeller may chose to ignore (which is commonly used applied by tools that don't shield the user from file system level abstractions), and the policy of enforcing modularity at the level of atomic model elements (which is commonly applied in repository based tools that abstract away the file system). + +\end{description} + +\subsubsection{Dependency management between graphs} + +\begin{description} + +\item [Secondary sub graphs] Only very few graphs encountered in practice in software engineering can be fully represented in a sub graph tree containing non-overlapping sub graphs. This leads to the concept or secondary sub graphs which allow the representation of overlapping sets of sub graphs. This feature is essential for actively managing the complexity in any non-trivial model. + +In software engineering most modelling and programming languages provide mechanisms for defining and restricting visibility between elements. In Gmodel secondary sub graphs are used to model visibility between graphs and to model which references between vertices owned by different sub graphs are considered allowable from an architectural perspective. Note that the sub graph tree reference between a graph and its contained sub graphs points to vertices (sub graphs) that are also owned by the graph (via the owner vertices link between graph and vertex). + +\item [Repositories] Gmodel abstracts away file system level abstractions as far as possible. Instead of files, the user interacts with Gmodel via a repository concept. The Gmodel repository concept builds on the sub graph tree feature. Every graph in a sub graph tree may be nominated as a repository, in which case the graph in question holds a reference to a server and a folder in a file system. + +The graphs that are physically stored in a repository are all the graphs in the sub graph tree of the repository with the exception of those that are repositories themselves and their respective sub graph trees. This means that Gmodel repositories may be geographically distributed as required to provide optimal performance for users working (primarily) on specific models in a specific location. Within a Gmodel repository each graph is stored as a file in a folder structure that mirrors the sub graph tree. + +\begin{figure} +\begin{center} +\includegraphics[width=100mm]{nocircuits} +\caption{Example of unidirectional edges across two sub graphs} +\label{default} +\end{center} +\end{figure} + +Repositories impose a number of constraints on the links between graphs that are essential for the ability to handle very large graphs. The most basic constraint relates to the navigability of edges between vertices owned by two different sub graphs, which is restricted to be uni-directional. In conjunction with the feature of module references this constitutes a mechanism that pro-actively prevents circuits that include vertices and edges from more than one physical graph artefact. In other words circuits are allowed locally (within a single +graph) but not on any wider scale. + + +\begin{figure} +\begin{center} +\includegraphics[width=130mm]{instantiation} +\caption{Instantiation links between graph, DSL definitions, and DSL models} +\label{default} +\end{center} +\end{figure} + +\item [Product repositories] A product repository is a repository that stores internally consistent sets of versions and variants of graph artefacts, that is such a set of artefacts constitutes the source specification of a deployable product release. + +\item [Project repositories] A repository that stores versions and variants of the +work of a project team. The content of a project repository is always an extract +from a product repository. While a user is modifying a graph artefact, he or she has an exclusive lock on the artefact. A [graph] artefact may be part of multiple projects, but may only be modified in one project at a time. + +Once an artefact has been modified as part of a project, any second or further project requesting to modify the artefact is provided with the latest version (across all project repositories) of the artefact. This approach encourages frequent integration of results between projects that, and it discourages the common practice of modifying artefacts in any number of projects, and worrying about integration later. + +\emph{At the level of traditional code based specification (as opposed to model based specifications) such a restrictive approach would be unrealistic due to the poor separation of concerns in such specifications. Highly modular model based specifications however allow for a very good separation of concerns, and hence minimise the need for several modellers to work on the same artefact at the same time. If variants of an artefact are consistently expressed via explicit language elements for delta-modelling, then all copy and paste practices become obsolete, and there is no longer any need for sophisticated diff and merge tooling.} + +\item [Module references] Achieving good overall modularity in the sense of loose coupling between modules requires not only features that allow modules to be created, but also features that enable architects to articulate allowable dependencies between modules. + +In Gmodel the owner of a graph is also known as the \emph{architecture owner}. This terminology reflects the architectural significance of the owner for all the sub graphs it contains. A graph in the role of architecture owner contains one or more module references between sub graphs that are either part of the architecture owner's sub graph tree or its collection of secondary sub graphs. Module references indicate constraints for the dependencies that may exist between the sub graphs owned by or referenced by the architecture owner. + + +\begin{figure} +\begin{center} +\includegraphics[width=130mm]{dependencymanagement} +\caption{Example of module references at different levels in a sub graph hierarchy} +\label{default} +\end{center} +\end{figure} + +A dependency between two sub graphs amounts to an edge between a vertex owned by one of the sub graphs and a vertex owned by the other sub graph. As described earlier, such cross-graph edges are only navigable in one direction, and the module references defined in the architecture owner (a) determine whether such a cross-graph edge is allowed at all, and (b) indicate the allowable navigability (and by implication visibility) of edges between the sub graphs in question. + +Since the sub graph tree provides a practically unlimited ability to nest sub graphs, architecture management becomes a distributed task, and architecture definitions are very closely tied to the graphs that these definitions apply to. Overall the rules around Gmodel repositories and module references are intended to provide fractal scalability: modelling is only possible in an architectural context, and any graph plays the role of architecture owner for its sub graphs. In order to ensure that architecture definitions can never get out of sync with the graphs they apply to, module references can only be removed once there are no remaining cross-graph edges between the corresponding sub graphs. + +\end{description} + +\subsubsection{Extensibility} + +\begin{description} + +\item [Specializations of the Gmodel graph] Gmodel is intended to be extensible. This feature is motivated by the realization that any de-facto standard for meta languages will have to provide powerful and easy to use features to extend the meta language in order to become attractive for use by organizations that currently have to rely on idiosyncratic meta languages that are not widely used, or on languages such as EMF Ecore that were not designed for meta modelling but have been shoehorned into the meta language role. + +When Gmodel is used to instantiate a graph that is linked to the Graph element in Gmodel via a generalization reference, then this graph is treated as an extension of Gmodel. That is, the graph is treated at residing on the same meta level as Gmodel. Such an extension of Gmodel may then include further vertices and edges beyond what is provided in Gmodel, as well as specializations of vertices, abstract edges, typed elements, and structured elements. + +One usage scenario for such extensions is the scenario where a meta language is needed that can can act in a pivot role for interoperability between multiple meta languages. Other usage scenarios include specialized functionality for manipulating graphs in specific domains or integration with specific version management software. + +An important difference between inheritance in object orientation and generalization/specialization hierarchies in Gmodel is that edges are not treated as properties. When specializing a graph, by default only properties are inherited and become visible in the specialization, and not edges. However, a \emph{generalization reference} may optionally be defined with \emph{inherited edge visibility enabled}, which enables edges defined in a generalization be be instantiated as part of an instance of the specialization. + +One example scenario where \emph{inherited edge visibility enabled} is needed, is the scenario of extending (specializing) Gmodel with further modelling elements. A similar scenario exists when extending a language defined in Gmodel with further elements. + +A scenario where \emph{inherited edge visibility enabled} is explicitly not desired is the scenario of the scenario of extending (specializing) Gmodel such that only specializations of Gmodel elements are instantiable by users of the language. A concrete example would be the definition of an entity relation modelling language in Gmodel, where a Schema is defined as the model root, and Entities, Attributes, and Relationships are the only elements that should be instantiable within a Schema (and not Vertices, Edges, etc. - even if Schema is defined as a specialization of Graph). + +\end{description} + + +\section{Significant use cases} + +\emph{Use Case Design} + +Figures 9 to 11 illustrate the E/R modelling language, and show the intended use of the Gmodel \emph{property} and \emph{property value} concepts. The notation used is a possible (heavily graphical) concrete syntax for Gmodel based models: + +\begin{itemize} +\item The diagrams correspond to the main flow of the \emph{instantiate Graph} use case. +\item All rectangular boxes in the diagrams represent objects in an implementation language such as Java. +\item All arrows can be read as references between objects in an implementation language. +\item Bidirectional arrows represent pairs of opposite references. +\item Colour coding is aligned with the Gmodel overview picture: blue for vertices, and organge for graphs. Egdes and edge ends are without colour. Orange arrows repesent the \emph{owner-vertices} and \emph{owner-abstactEdges} +links from the Gmodel overview picture at the level of instances. +\item \emph{name1] name2} means that \emph{name1} is the metatype of \emph{name2}. The \emph{@} symbol has been used to indicate objects that don't have a name. +\item Properties of edges are not shown in the diagrams, as the example only requires properties of edge ends. Additionally the implementation of the links between edges and edge ends has been abstracted away to keep the diagrams readable. +\end{itemize} + + +\begin{figure} +\begin{center} +\includegraphics[width=150mm]{graph_schema} +\caption{Definition of a simple E/R modelling language in Gmodel} +\label{default} +\end{center} +\end{figure} + +\begin{figure} +\begin{center} +\includegraphics[width=150mm]{graph_schema_crm} +\caption{Use of the E/Rmodelling language to define a Product-Order-Customer schema} +\label{default} +\end{center} +\end{figure} + +\begin{figure} +\begin{center} +\includegraphics[width=150mm]{graph_schema_crm_sofismo} +\caption{Instantiated Order and Product, and example of an instantiated attribute} +\label{default} +\end{center} +\end{figure} + +\section{comparison with other approaches} + + \todo{summary of the shortcomings of existing tooling} + +\subsection{Outlook} + +In a further paper we will outline the work in progress on building interoperability solutions with Gmodel. We invite modelling language designers to experiment with Gmodel, to contribute useful Gmodel extensions, and - by all means - to design and implement alternative meta languages, so that the merits and drawbacks of various approaches can be a discussed in a constructive dialogue. + +\end{document} \ No newline at end of file diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple_with_gmodel.zip b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple_with_gmodel.zip new file mode 100644 index 0000000..8ca1fc1 Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/advanced_modelling_made_simple_with_gmodel.zip differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/semantics/semantic modelling.key b/src/trunk/org.gmodel.documentation/articles/0.1/semantics/semantic modelling.key new file mode 100644 index 0000000..307376a Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/semantics/semantic modelling.key differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/semantics/semantic modelling.pdf b/src/trunk/org.gmodel.documentation/articles/0.1/semantics/semantic modelling.pdf new file mode 100644 index 0000000..a313713 Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/semantics/semantic modelling.pdf differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/template/acm_proc_article-sp.cls b/src/trunk/org.gmodel.documentation/articles/0.1/template/acm_proc_article-sp.cls new file mode 100644 index 0000000..9ec6f3c --- /dev/null +++ b/src/trunk/org.gmodel.documentation/articles/0.1/template/acm_proc_article-sp.cls @@ -0,0 +1,1670 @@ +% ACM_PROC_ARTICLE-SP.CLS - VERSION 3.2SP +% COMPATIBLE WITH THE "SIG-ALTERNATE" V2.4 +% Gerald Murray - April 22nd. 2009 +% +% ---- Start of 'updates' ---- +% +% April 22nd. 2009 - Fixed 'Natbib' incompatibility problem - Gerry +% April 22nd. 2009 - Fixed 'Babel' incompatibility problem - Gerry +% April 22nd. 2009 - Inserted various bug-fixes and improvements - Gerry +% +% To produce Type 1 fonts in the document plus allow for 'normal LaTeX accenting' in the critical areas; +% title, author block, section-heads, etc. etc. +% i.e. the whole purpose of this version update is to NOT resort to 'inelegant accent patches'. +% After much research, three extra .sty packages were added to the the tail (ae, aecompl, aeguill) to solve, +% in particular, the accenting problem(s). We _could_ ask authors (via instructions/sample file) to 'include' these in +% the source .tex file - in the preamble - but if everything is already provided ('behind the scenes' - embedded IN the .cls) +% then this is less work for authors and also makes everything appear 'vanilla'. +% NOTE: all 'patchwork accenting" has been commented out (here) and is no longer 'used' in the sample .tex file (either). +% Gerry June 2007 +% +% Rule widths changed to .5, author count (>6) fixed, roll-back for Type 3 problem. Gerry March 20th. 2007 +% Changes made to 'modernize' the fontnames but esp. for MikTeX users V2.4/2.5 - Nov. 30th. 2006 +% Updated the \email definition to allow for its use inside of 'shared affiliations' - Nov. 30th. 2006 +% Fixed the 'section number depth value' - Nov. 30th. 2006 +% +% Footnotes inside table cells using \minipage (Oct. 2002) +% Georgia fixed bug in sub-sub-section numbering in paragraphs (July 29th. 2002) +% JS/GM fix to vertical spacing before Proofs (July 30th. 2002) +% +% Allowance made to switch default fonts between those systems using +% normal/modern font names and those using 'Type 1' or 'Truetype' fonts. +% See LINE NUMBER 269 for details. +% Also provided for enumerated/annotated Corollaries 'surrounded' by +% enumerated Theorems (line 844). +% Gerry November 11th. 1999 +% +% This 'sp' version does NOT produce the permission block. +% +% Major change in January 2000 was to include a "blank line" in between +% new paragraphs. This involved major changes to the, then, acmproc-sp.cls 1.0SP +% file, precipitating a 'new' name: "acm_proc_article-sp.cls" V2.01SP. +% +% ---- End of 'updates' ---- +% +\def\fileversion{V3.2SP} % for ACM's tracking purposes +\def\filedate{April 22, 2009} % Gerry Murray's tracking data +\def\docdate {Wednesday 22nd. April 2009} % Gerry Murray (with deltas to doc} +\usepackage{epsfig} +\usepackage{amssymb} +\usepackage{amsmath} +\usepackage{amsfonts} +% Need this for accents in Arial/Helvetica +%\usepackage[T1]{fontenc} % Gerry March 12, 2007 - causes Type 3 problems (body text) +%\usepackage{textcomp} +% +% ACM_PROC_ARTICLE-SP DOCUMENT STYLE +% G.K.M. Tobin August-October 1999 +% adapted from ARTICLE document style by Ken Traub, Olin Shivers +% also using elements of esub2acm.cls +% LATEST REVISION V3.2SP - APRIL 2009 +% ARTICLE DOCUMENT STYLE -- Released 16 March 1988 +% for LaTeX version 2.09 +% Copyright (C) 1988 by Leslie Lamport +% +% +%%% ACM_PROC_ARTICLE-SP is a document style for producing two-column camera-ready pages for +%%% ACM conferences, according to ACM specifications. The main features of +%%% this style are: +%%% +%%% 1) Two columns. +%%% 2) Side and top margins of 4.5pc, bottom margin of 6pc, column gutter of +%%% 2pc, hence columns are 20pc wide and 55.5pc tall. (6pc =3D 1in, approx) +%%% 3) First page has title information, and an extra 6pc of space at the +%%% bottom of the first column for the ACM copyright notice. +%%% 4) Text is 9pt on 10pt baselines; titles (except main) are 9pt bold. +%%% +%%% +%%% There are a few restrictions you must observe: +%%% +%%% 1) You cannot change the font size; ACM wants you to use 9pt. +%%% 3) You must start your paper with the \maketitle command. Prior to the +%%% \maketitle you must have \title and \author commands. If you have a +%%% \date command it will be ignored; no date appears on the paper, since +%%% the proceedings will have a date on the front cover. +%%% 4) Marginal paragraphs, tables of contents, lists of figures and tables, +%%% and page headings are all forbidden. +%%% 5) The `figure' environment will produce a figure one column wide; if you +%%% want one that is two columns wide, use `figure*'. +%%% +% +%%% Copyright Space: +%%% This style automatically leaves 1" blank space at the bottom of page 1/ +%%% column 1. This space can optionally be filled with some text using the +%%% \toappear{...} command. If used, this command must be BEFORE the \maketitle +%%% command. If this command is defined AND [preprint] is on, then the +%%% space is filled with the {...} text (at the bottom); otherwise, it is +%%% blank. If you use \toappearbox{...} instead of \toappear{...} then a +%%% box will be drawn around the text (if [preprint] is on). +%%% +%%% A typical usage looks like this: +%%% \toappear{To appear in the Ninth AES Conference on Medievil Lithuanian +%%% Embalming Technique, June 1991, Alfaretta, Georgia.} +%%% This will be included in the preprint, and left out of the conference +%%% version. +%%% +%%% WARNING: +%%% Some dvi-ps converters heuristically allow chars to drift from their +%%% true positions a few pixels. This may be noticeable with the 9pt sans-serif +%%% bold font used for section headers. +%%% You may turn this hackery off via the -e option: +%%% dvips -e 0 foo.dvi >foo.ps +%%% +\typeout{Document Class 'acm_proc_article-sp' <22nd. April '09>. Modified by G.K.M. Tobin} +\typeout{Based in part upon document Style `acmconf' <22 May 89>. Hacked 4/91 by} +\typeout{shivers@cs.cmu.edu, 4/93 by theobald@cs.mcgill.ca} +\typeout{Excerpts were taken from (Journal Style) 'esub2acm.cls'.} +\typeout{****** Bugs/comments/suggestions to Gerry Murray -- murray@hq.acm.org ******} + +\oddsidemargin 4.5pc +\evensidemargin 4.5pc +\advance\oddsidemargin by -1in % Correct for LaTeX gratuitousness +\advance\evensidemargin by -1in % Correct for LaTeX gratuitousness +\marginparwidth 0pt % Margin pars are not allowed. +\marginparsep 11pt % Horizontal space between outer margin and + % marginal note + + % Top of page: +\topmargin 4.5pc % Nominal distance from top of page to top of + % box containing running head. +\advance\topmargin by -1in % Correct for LaTeX gratuitousness +\headheight 0pt % Height of box containing running head. +\headsep 0pt % Space between running head and text. + % Bottom of page: +\footskip 30pt % Distance from baseline of box containing foot + % to baseline of last line of text. +\@ifundefined{footheight}{\newdimen\footheight}{}% this is for LaTeX2e +\footheight 12pt % Height of box containing running foot. + + +%% Must redefine the top margin so there's room for headers and +%% page numbers if you are using the preprint option. Footers +%% are OK as is. Olin. +\advance\topmargin by -37pt % Leave 37pt above text for headers +\headheight 12pt % Height of box containing running head. +\headsep 25pt % Space between running head and text. + +\textheight 666pt % 9 1/4 column height +\textwidth 42pc % Width of text line. + % For two-column mode: +\columnsep 2pc % Space between columns +\columnseprule 0pt % Width of rule between columns. +\hfuzz 1pt % Allow some variation in column width, otherwise it's + % too hard to typeset in narrow columns. + +\footnotesep 5.6pt % Height of strut placed at the beginning of every + % footnote =3D height of normal \footnotesize strut, + % so no extra space between footnotes. + +\skip\footins 8.1pt plus 4pt minus 2pt % Space between last line of text and + % top of first footnote. +\floatsep 11pt plus 2pt minus 2pt % Space between adjacent floats moved + % to top or bottom of text page. +\textfloatsep 18pt plus 2pt minus 4pt % Space between main text and floats + % at top or bottom of page. +\intextsep 11pt plus 2pt minus 2pt % Space between in-text figures and + % text. +\@ifundefined{@maxsep}{\newdimen\@maxsep}{}% this is for LaTeX2e +\@maxsep 18pt % The maximum of \floatsep, + % \textfloatsep and \intextsep (minus + % the stretch and shrink). +\dblfloatsep 11pt plus 2pt minus 2pt % Same as \floatsep for double-column + % figures in two-column mode. +\dbltextfloatsep 18pt plus 2pt minus 4pt% \textfloatsep for double-column + % floats. +\@ifundefined{@dblmaxsep}{\newdimen\@dblmaxsep}{}% this is for LaTeX2e +\@dblmaxsep 18pt % The maximum of \dblfloatsep and + % \dbltexfloatsep. +\@fptop 0pt plus 1fil % Stretch at top of float page/column. (Must be + % 0pt plus ...) +\@fpsep 8pt plus 2fil % Space between floats on float page/column. +\@fpbot 0pt plus 1fil % Stretch at bottom of float page/column. (Must be + % 0pt plus ... ) +\@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be 0pt plus ...) +\@dblfpsep 8pt plus 2fil % Space between floats on float page. +\@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be + % 0pt plus ... ) +\marginparpush 5pt % Minimum vertical separation between two marginal + % notes. + +\parskip 0pt % Extra vertical space between paragraphs. + % Set to 0pt outside sections, to keep section heads + % uniformly spaced. The value of parskip is set + % to leading value _within_ sections. + % 12 Jan 2000 gkmt +\parindent 0pt % Width of paragraph indentation. +\partopsep 2pt plus 1pt minus 1pt% Extra vertical space, in addition to + % \parskip and \topsep, added when user + % leaves blank line before environment. + +\@lowpenalty 51 % Produced by \nopagebreak[1] or \nolinebreak[1] +\@medpenalty 151 % Produced by \nopagebreak[2] or \nolinebreak[2] +\@highpenalty 301 % Produced by \nopagebreak[3] or \nolinebreak[3] + +\@beginparpenalty -\@lowpenalty % Before a list or paragraph environment. +\@endparpenalty -\@lowpenalty % After a list or paragraph environment. +\@itempenalty -\@lowpenalty % Between list items. + +%\@namedef{ds@10pt}{\@latexerr{The `10pt' option is not allowed in the `acmconf' +\@namedef{ds@10pt}{\ClassError{The `10pt' option is not allowed in the `acmconf' % January 2008 + document style.}\@eha} +%\@namedef{ds@11pt}{\@latexerr{The `11pt' option is not allowed in the `acmconf' +\@namedef{ds@11pt}{\ClassError{The `11pt' option is not allowed in the `acmconf' % January 2008 + document style.}\@eha} +%\@namedef{ds@12pt}{\@latexerr{The `12pt' option is not allowed in the `acmconf' +\@namedef{ds@12pt}{\ClassError{The `12pt' option is not allowed in the `acmconf' % January 2008 + document style.}\@eha} + +\@options + +\lineskip 2pt % \lineskip is 1pt for all font sizes. +\normallineskip 2pt +\def\baselinestretch{1} + +\abovedisplayskip 9pt plus2pt minus4.5pt% +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus3pt% +\belowdisplayshortskip 5.4pt plus3pt minus3pt% +\let\@listi\@listI % Setting of \@listi added 9 Jun 87 + +\def\small{\@setsize\small{9pt}\viiipt\@viiipt +\abovedisplayskip 7.6pt plus 3pt minus 4pt% +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus2pt% +\belowdisplayshortskip 3.6pt plus2pt minus 2pt +\def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 +\topsep 4pt plus 2pt minus 2pt\parsep 2pt plus 1pt minus 1pt +\itemsep \parsep}} + +\def\footnotesize{\@setsize\footnotesize{9pt}\ixpt\@ixpt +\abovedisplayskip 6.4pt plus 2pt minus 4pt% +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus 1pt% +\belowdisplayshortskip 2.7pt plus 1pt minus 2pt +\def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 +\topsep 3pt plus 1pt minus 1pt\parsep 2pt plus 1pt minus 1pt +\itemsep \parsep}} + +\newcount\aucount +\newcount\originalaucount +\newdimen\auwidth +\auwidth=\textwidth +\newdimen\auskip +\newcount\auskipcount +\newdimen\auskip +\global\auskip=1pc +\newdimen\allauboxes +\allauboxes=\auwidth +\newtoks\addauthors +\newcount\addauflag +\global\addauflag=0 %Haven't shown additional authors yet + +\newtoks\subtitletext +\gdef\subtitle#1{\subtitletext={#1}} + +\gdef\additionalauthors#1{\addauthors={#1}} + +\gdef\numberofauthors#1{\global\aucount=#1 +\ifnum\aucount>3\global\originalaucount=\aucount \global\aucount=3\fi %g} % 3 OK - Gerry March 2007 +\global\auskipcount=\aucount\global\advance\auskipcount by 1 +\global\multiply\auskipcount by 2 +\global\multiply\auskip by \auskipcount +\global\advance\auwidth by -\auskip +\global\divide\auwidth by \aucount} + +% \and was modified to count the number of authors. GKMT 12 Aug 1999 +\def\alignauthor{% % \begin{tabular} +\end{tabular}% + \begin{tabular}[t]{p{\auwidth}}\centering}% + + +% *** NOTE *** NOTE *** NOTE *** NOTE *** +% If you have 'font problems' then you may need +% to change these, e.g. 'arialb' instead of "arialbd". +% Gerry Murray 11/11/1999 +% *** OR ** comment out block A and activate block B or vice versa. +% ********************************************** +% +% -- Start of block A -- (Type 1 or Truetype fonts) +%\newfont{\secfnt}{timesbd at 12pt} % was timenrb originally - now is timesbd +%\newfont{\secit}{timesbi at 12pt} %13 Jan 00 gkmt +%\newfont{\subsecfnt}{timesi at 11pt} % was timenrri originally - now is timesi +%\newfont{\subsecit}{timesbi at 11pt} % 13 Jan 00 gkmt -- was times changed to timesbi gm 2/4/2000 +% % because "normal" is italic, "italic" is Roman +%\newfont{\ttlfnt}{arialbd at 18pt} % was arialb originally - now is arialbd +%\newfont{\ttlit}{arialbi at 18pt} % 13 Jan 00 gkmt +%\newfont{\subttlfnt}{arial at 14pt} % was arialr originally - now is arial +%\newfont{\subttlit}{ariali at 14pt} % 13 Jan 00 gkmt +%\newfont{\subttlbf}{arialbd at 14pt} % 13 Jan 00 gkmt +%\newfont{\aufnt}{arial at 12pt} % was arialr originally - now is arial +%\newfont{\auit}{ariali at 12pt} % 13 Jan 00 gkmt +%\newfont{\affaddr}{arial at 10pt} % was arialr originally - now is arial +%\newfont{\affaddrit}{ariali at 10pt} %13 Jan 00 gkmt +%\newfont{\eaddfnt}{arial at 12pt} % was arialr originally - now is arial +%\newfont{\ixpt}{times at 9pt} % was timenrr originally - now is times +%\newfont{\confname}{timesi at 8pt} % was timenrri - now is timesi +%\newfont{\crnotice}{times at 8pt} % was timenrr originally - now is times +%\newfont{\ninept}{times at 9pt} % was timenrr originally - now is times +% ********************************************* +% -- End of block A -- +% +% +% -- Start of block B -- UPDATED FONT NAMES +% ********************************************* +% Gerry Murray 11/30/2006 +% ********************************************* +\newfont{\secfnt}{ptmb8t at 12pt} +\newfont{\secit}{ptmbi8t at 12pt} %13 Jan 00 gkmt +\newfont{\subsecfnt}{ptmri8t at 11pt} +\newfont{\subsecit}{ptmbi8t at 11pt} % +\newfont{\ttlfnt}{phvb8t at 18pt} +\newfont{\ttlit}{phvbo8t at 18pt} % GM 2/4/2000 +\newfont{\subttlfnt}{phvr8t at 14pt} +\newfont{\subttlit}{phvro8t at 14pt} % GM 2/4/2000 +\newfont{\subttlbf}{phvb8t at 14pt} % 13 Jan 00 gkmt +\newfont{\aufnt}{phvr8t at 12pt} +\newfont{\auit}{phvro8t at 12pt} % GM 2/4/2000 +\newfont{\affaddr}{phvr8t at 10pt} +\newfont{\affaddrit}{phvro8t at 10pt} % GM 2/4/2000 +\newfont{\eaddfnt}{phvr8t at 12pt} +\newfont{\ixpt}{ptmr8t at 9pt} +\newfont{\confname}{ptmri8t at 8pt} +\newfont{\crnotice}{ptmr8t at 8pt} +\newfont{\ninept}{ptmr8t at 9pt} +% +++++++++++++++++++++++++++++++++++++++++++++ +% -- End of block B -- + +%\def\email#1{{{\eaddfnt{\vskip 4pt#1}}}} +% If we have an email, inside a "shared affiliation" then we need the following instead +\def\email#1{{{\eaddfnt{\par #1}}}} % revised - GM - 11/30/2006 + +\def\addauthorsection{\ifnum\originalaucount>6 % was 3 - Gerry March 2007 + \section{Additional Authors}\the\addauthors + \fi} + +\newcount\savesection +\newcount\sectioncntr +\global\sectioncntr=1 + +\setcounter{secnumdepth}{3} + +\def\appendix{\par +\section*{APPENDIX} +\setcounter{section}{0} + \setcounter{subsection}{0} + \def\thesection{\Alph{section}} } + + +\leftmargini 22.5pt +\leftmarginii 19.8pt % > \labelsep + width of '(m)' +\leftmarginiii 16.8pt % > \labelsep + width of 'vii.' +\leftmarginiv 15.3pt % > \labelsep + width of 'M.' +\leftmarginv 9pt +\leftmarginvi 9pt + +\leftmargin\leftmargini +\labelsep 4.5pt +\labelwidth\leftmargini\advance\labelwidth-\labelsep + +\def\@listI{\leftmargin\leftmargini \parsep 3.6pt plus 2pt minus 1pt% +\topsep 7.2pt plus 2pt minus 4pt% +\itemsep 3.6pt plus 2pt minus 1pt} + +\let\@listi\@listI +\@listi + +\def\@listii{\leftmargin\leftmarginii + \labelwidth\leftmarginii\advance\labelwidth-\labelsep + \topsep 3.6pt plus 2pt minus 1pt + \parsep 1.8pt plus 0.9pt minus 0.9pt + \itemsep \parsep} + +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii\advance\labelwidth-\labelsep + \topsep 1.8pt plus 0.9pt minus 0.9pt + \parsep \z@ \partopsep 1pt plus 0pt minus 1pt + \itemsep \topsep} + +\def\@listiv{\leftmargin\leftmarginiv + \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} + +\def\@listv{\leftmargin\leftmarginv + \labelwidth\leftmarginv\advance\labelwidth-\labelsep} + +\def\@listvi{\leftmargin\leftmarginvi + \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} + +\def\labelenumi{\theenumi.} +\def\theenumi{\arabic{enumi}} + +\def\labelenumii{(\theenumii)} +\def\theenumii{\alph{enumii}} +\def\p@enumii{\theenumi} + +\def\labelenumiii{\theenumiii.} +\def\theenumiii{\roman{enumiii}} +\def\p@enumiii{\theenumi(\theenumii)} + +\def\labelenumiv{\theenumiv.} +\def\theenumiv{\Alph{enumiv}} +\def\p@enumiv{\p@enumiii\theenumiii} + +\def\labelitemi{$\bullet$} +\def\labelitemii{\bf --} +\def\labelitemiii{$\ast$} +\def\labelitemiv{$\cdot$} + +\def\verse{\let\\=\@centercr + \list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent + \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]} +\let\endverse\endlist + +\def\quotation{\list{}{\listparindent 1.5em + \itemindent\listparindent + \rightmargin\leftmargin \parsep 0pt plus 1pt}\item[]} +\let\endquotation=\endlist + +\def\quote{\list{}{\rightmargin\leftmargin}\item[]} +\let\endquote=\endlist + +\def\descriptionlabel#1{\hspace\labelsep \bf #1} +\def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin + \let\makelabel\descriptionlabel}} + +\let\enddescription\endlist + +\def\theequation{\arabic{equation}} + +\arraycolsep 4.5pt % Half the space between columns in an array environment. +\tabcolsep 5.4pt % Half the space between columns in a tabular environment. +\arrayrulewidth .5pt % Width of rules in array and tabular environment. % (was .4) updated Gerry March 20 2007 +\doublerulesep 1.8pt % Space between adjacent rules in array or tabular env. + +\tabbingsep \labelsep % Space used by the \' command. (See LaTeX manual.) + +\skip\@mpfootins =\skip\footins + +\fboxsep =2.7pt % Space left between box and text by \fbox and \framebox. +\fboxrule =.5pt % Width of rules in box made by \fbox and \framebox. % (was .4) updated Gerry March 20 2007 + +\def\thepart{\Roman{part}} % Roman numeral part numbers. +\def\thesection {\arabic{section}} +\def\thesubsection {\thesection.\arabic{subsection}} +%\def\thesubsubsection {\thesubsection.\arabic{subsubsection}} % GM 7/30/2002 +%\def\theparagraph {\thesubsubsection.\arabic{paragraph}} % GM 7/30/2002 +\def\thesubparagraph {\theparagraph.\arabic{subparagraph}} + +\def\@pnumwidth{1.55em} +\def\@tocrmarg {2.55em} +\def\@dotsep{4.5} +\setcounter{tocdepth}{3} + +%\def\tableofcontents{\@latexerr{\tableofcontents: Tables of contents are not +% allowed in the `acmconf' document style.}\@eha} + +\def\tableofcontents{\ClassError{% + \string\tableofcontents\space is not allowed in the `acmconf' document % January 2008 + style}\@eha} + +\def\l@part#1#2{\addpenalty{\@secpenalty} + \addvspace{2.25em plus 1pt} % space above part line + \begingroup + \@tempdima 3em % width of box holding part number, used by + \parindent \z@ \rightskip \@pnumwidth %% \numberline + \parfillskip -\@pnumwidth + {\large \bf % set line in \large boldface + \leavevmode % TeX command to enter horizontal mode. + #1\hfil \hbox to\@pnumwidth{\hss #2}}\par + \nobreak % Never break after part entry + \endgroup} + +\def\l@section#1#2{\addpenalty{\@secpenalty} % good place for page break + \addvspace{1.0em plus 1pt} % space above toc entry + \@tempdima 1.5em % width of box holding section number + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \bf % Boldface. + \leavevmode % TeX command to enter horizontal mode. + \advance\leftskip\@tempdima %% added 5 Feb 88 to conform to + \hskip -\leftskip %% 25 Jan 88 change to \numberline + #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par + \endgroup} + + +\def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}} +\def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}} +\def\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}} +\def\l@subparagraph{\@dottedtocline{5}{10em}{5em}} + +%\def\listoffigures{\@latexerr{\listoffigures: Lists of figures are not +% allowed in the `acmconf' document style.}\@eha} + +\def\listoffigures{\ClassError{% + \string\listoffigures\space is not allowed in the `acmconf' document % January 2008 + style}\@eha} + +\def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} + +%\def\listoftables{\@latexerr{\listoftables: Lists of tables are not +% allowed in the `acmconf' document style.}\@eha} +%\let\l@table\l@figure + +\def\listoftables{\ClassError{% + \string\listoftables\space is not allowed in the `acmconf' document % January 2008 + style}\@eha} + \let\l@table\l@figure + +\def\footnoterule{\kern-3\p@ + \hrule width .5\columnwidth % (was .4) updated Gerry March 20 2007 + \kern 2.6\p@} % The \hrule has default height of .4pt % (was .4) updated Gerry March 20 2007 +% ------ +\long\def\@makefntext#1{\noindent +%\hbox to .5em{\hss$^{\@thefnmark}$}#1} % original +\hbox to .5em{\hss\textsuperscript{\@thefnmark}}#1} % C. Clifton / GM Oct. 2nd. 2002 +% ------- + +\long\def\@maketntext#1{\noindent +#1} + +\long\def\@maketitlenotetext#1#2{\noindent + \hbox to 1.8em{\hss$^{#1}$}#2} + +\setcounter{topnumber}{2} +\def\topfraction{.7} +\setcounter{bottomnumber}{1} +\def\bottomfraction{.3} +\setcounter{totalnumber}{3} +\def\textfraction{.2} +\def\floatpagefraction{.5} +\setcounter{dbltopnumber}{2} +\def\dbltopfraction{.7} +\def\dblfloatpagefraction{.5} + +\long\def\@makecaption#1#2{ + \vskip \baselineskip + \setbox\@tempboxa\hbox{\textbf{#1: #2}} + \ifdim \wd\@tempboxa >\hsize % IF longer than one line: + \textbf{#1: #2}\par % THEN set as ordinary paragraph. + \else % ELSE center. + \hbox to\hsize{\hfil\box\@tempboxa\hfil}\par + \fi} + +\@ifundefined{figure}{\newcounter {figure}} % this is for LaTeX2e + +\def\fps@figure{tbp} +\def\ftype@figure{1} +\def\ext@figure{lof} +\def\fnum@figure{Figure \thefigure} +\def\figure{\@float{figure}} +%\let\endfigure\end@float +\def\endfigure{\end@float} % Gerry January 2008 +\@namedef{figure*}{\@dblfloat{figure}} +\@namedef{endfigure*}{\end@dblfloat} + +\@ifundefined{table}{\newcounter {table}} % this is for LaTeX2e + +\def\fps@table{tbp} +\def\ftype@table{2} +\def\ext@table{lot} +\def\fnum@table{Table \thetable} +\def\table{\@float{table}} +%\let\endtable\end@float +\def\endtable{\end@float} % Gerry January 2008 +\@namedef{table*}{\@dblfloat{table}} +\@namedef{endtable*}{\end@dblfloat} + +\newtoks\titleboxnotes +\newcount\titleboxnoteflag + +\def\maketitle{\par + \begingroup + \def\thefootnote{\fnsymbol{footnote}} + \def\@makefnmark{\hbox + to 0pt{$^{\@thefnmark}$\hss}} + \twocolumn[\@maketitle] +\@thanks + \endgroup + \setcounter{footnote}{0} + \let\maketitle\relax + \let\@maketitle\relax + \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\gdef\@subtitle{}\let\thanks\relax + \@copyrightspace} + +%% CHANGES ON NEXT LINES +\newif\if@ll % to record which version of LaTeX is in use + +\expandafter\ifx\csname LaTeXe\endcsname\relax % LaTeX2.09 is used +\else% LaTeX2e is used, so set ll to true +\global\@lltrue +\fi + +\if@ll + \NeedsTeXFormat{LaTeX2e} + \ProvidesClass{acm_proc_article-sp} [2009/04/22 - V3.2SP - based on esub2acm.sty <23 April 96>] + \RequirePackage{latexsym}% QUERY: are these two really needed? + \let\dooptions\ProcessOptions +\else + \let\dooptions\@options +\fi +%% END CHANGES + +\def\@height{height} +\def\@width{width} +\def\@minus{minus} +\def\@plus{plus} +\def\hb@xt@{\hbox to} +\newif\if@faircopy +\@faircopyfalse +\def\ds@faircopy{\@faircopytrue} + +\def\ds@preprint{\@faircopyfalse} + +\@twosidetrue +\@mparswitchtrue +\def\ds@draft{\overfullrule 5\p@} +%% CHANGE ON NEXT LINE +\dooptions + +\lineskip \p@ +\normallineskip \p@ +\def\baselinestretch{1} +\def\@ptsize{0} %needed for amssymbols.sty + +%% CHANGES ON NEXT LINES +\if@ll% allow use of old-style font change commands in LaTeX2e +\@maxdepth\maxdepth +% +\DeclareOldFontCommand{\rm}{\ninept\rmfamily}{\mathrm} +\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} +\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} +\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} +\DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}} +\DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}} +\fi +% +\if@ll + \renewcommand{\rmdefault}{cmr} % was 'ttm' +% Note! I have also found 'mvr' to work ESPECIALLY well. +% Gerry - October 1999 +% You may need to change your LV1times.fd file so that sc is +% mapped to cmcsc - -for smallcaps -- that is if you decide +% to change {cmr} to {times} above. (Not recommended) + \renewcommand{\@ptsize}{} + \renewcommand{\normalsize}{% + \@setfontsize\normalsize\@ixpt{10.5\p@}%\ninept% + \abovedisplayskip 6\p@ \@plus2\p@ \@minus\p@ + \belowdisplayskip \abovedisplayskip + \abovedisplayshortskip 6\p@ \@minus 3\p@ + \belowdisplayshortskip 6\p@ \@minus 3\p@ + \let\@listi\@listI + } +\else + \def\@normalsize{%changed next to 9 from 10 + \@setsize\normalsize{9\p@}\ixpt\@ixpt + \abovedisplayskip 6\p@ \@plus2\p@ \@minus\p@ + \belowdisplayskip \abovedisplayskip + \abovedisplayshortskip 6\p@ \@minus 3\p@ + \belowdisplayshortskip 6\p@ \@minus 3\p@ + \let\@listi\@listI + }% +\fi +\if@ll + \newcommand\scriptsize{\@setfontsize\scriptsize\@viipt{8\p@}} + \newcommand\tiny{\@setfontsize\tiny\@vpt{6\p@}} + \newcommand\large{\@setfontsize\large\@xiipt{14\p@}} + \newcommand\Large{\@setfontsize\Large\@xivpt{18\p@}} + \newcommand\LARGE{\@setfontsize\LARGE\@xviipt{20\p@}} + \newcommand\huge{\@setfontsize\huge\@xxpt{25\p@}} + \newcommand\Huge{\@setfontsize\Huge\@xxvpt{30\p@}} +\else + \def\scriptsize{\@setsize\scriptsize{8\p@}\viipt\@viipt} + \def\tiny{\@setsize\tiny{6\p@}\vpt\@vpt} + \def\large{\@setsize\large{14\p@}\xiipt\@xiipt} + \def\Large{\@setsize\Large{18\p@}\xivpt\@xivpt} + \def\LARGE{\@setsize\LARGE{20\p@}\xviipt\@xviipt} + \def\huge{\@setsize\huge{25\p@}\xxpt\@xxpt} + \def\Huge{\@setsize\Huge{30\p@}\xxvpt\@xxvpt} +\fi +\normalsize + +% make aubox hsize/number of authors up to 3, less gutter +% then showbox gutter showbox gutter showbox -- GKMT Aug 99 +\newbox\@acmtitlebox +\def\@maketitle{\newpage + \null + \setbox\@acmtitlebox\vbox{% +\baselineskip 20pt +\vskip 2em % Vertical space above title. + \begin{center} + {\ttlfnt \@title\par} % Title set in 18pt Helvetica (Arial) bold size. + \vskip 1.5em % Vertical space after title. +%This should be the subtitle. +{\subttlfnt \the\subtitletext\par}\vskip 1.25em%\fi + {\baselineskip 16pt\aufnt % each author set in \12 pt Arial, in a + \lineskip .5em % tabular environment + \begin{tabular}[t]{c}\@author + \end{tabular}\par} + \vskip 1.5em % Vertical space after author. + \end{center}} + \dimen0=\ht\@acmtitlebox + \advance\dimen0 by -12.75pc\relax % Increased space for title box -- KBT + \unvbox\@acmtitlebox + \ifdim\dimen0<0.0pt\relax\vskip-\dimen0\fi} + + +\newcount\titlenotecount +\global\titlenotecount=0 +\newtoks\tntoks +\newtoks\tntokstwo +\newtoks\tntoksthree +\newtoks\tntoksfour +\newtoks\tntoksfive + +\def\abstract{ +\ifnum\titlenotecount>0 % was =1 + \insert\footins{% + \reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + }% + \color@begingroup +\ifnum\titlenotecount=1 + \@maketntext{% + \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\@finalstrut\strutbox}% +\fi +\ifnum\titlenotecount=2 + \@maketntext{% + \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\@finalstrut\strutbox}% +\fi +\ifnum\titlenotecount=3 + \@maketntext{% + \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\@finalstrut\strutbox}% +\fi +\ifnum\titlenotecount=4 + \@maketntext{% + \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\S$}\rule\z@\footnotesep\ignorespaces\the\tntoksfour\@finalstrut\strutbox}% +\fi +\ifnum\titlenotecount=5 + \@maketntext{% + \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\S$}\rule\z@\footnotesep\ignorespaces\the\tntoksfour\par\@finalstrut\strutbox}% +\@maketntext{% + \raisebox{4pt}{$\P$}\rule\z@\footnotesep\ignorespaces\the\tntoksfive\@finalstrut\strutbox}% +\fi + \color@endgroup} %g} +\fi +\setcounter{footnote}{0} +\section*{ABSTRACT}\normalsize %\the\parskip \the\baselineskip%\ninept +} + +\def\endabstract{\if@twocolumn\else\endquotation\fi} + +\def\keywords{\if@twocolumn +\section*{Keywords} +\else \small +\quotation +\fi} + +% I've pulled the check for 2 cols, since proceedings are _always_ +% two-column 11 Jan 2000 gkmt +\def\terms{%\if@twocolumn +\section*{General Terms} +%\else \small +%\quotation\the\parskip +%\fi} +} + +% -- Classification needs to be a bit smart due to optionals - Gerry/Georgia November 2nd. 1999 +\newcount\catcount +\global\catcount=1 + +\def\category#1#2#3{% +\ifnum\catcount=1 +\section*{Categories and Subject Descriptors} +\advance\catcount by 1\else{\unskip; }\fi + \@ifnextchar [{\@category{#1}{#2}{#3}}{\@category{#1}{#2}{#3}[]}% +} + +\def\@category#1#2#3[#4]{% + \begingroup + \let\and\relax + #1 [\textbf{#2}]% + \if!#4!% + \if!#3!\else : #3\fi + \else + :\space + \if!#3!\else #3\kern\z@---\hskip\z@\fi + \textit{#4}% + \fi + \endgroup +} +% + +%%% This section (written by KBT) handles the 1" box in the lower left +%%% corner of the left column of the first page by creating a picture, +%%% and inserting the predefined string at the bottom (with a negative +%%% displacement to offset the space allocated for a non-existent +%%% caption). +%%% +\newtoks\copyrightnotice +\def\ftype@copyrightbox{8} +\def\@copyrightspace{ +\@float{copyrightbox}[b] +\begin{center} +\setlength{\unitlength}{1pc} +\begin{picture}(20,6) %Space for copyright notice +\put(0,-0.95){\crnotice{\@toappear}} +\end{picture} +\end{center} +\end@float} + +\def\@toappear{} % Default setting blank - commands below change this. +\long\def\toappear#1{\def\@toappear{\parbox[b]{20pc}{\baselineskip 9pt#1}}} +\def\toappearbox#1{\def\@toappear{\raisebox{5pt}{\framebox[20pc]{\parbox[b]{19pc}{#1}}}}} + +\newtoks\conf +\newtoks\confinfo +\def\conferenceinfo#1#2{\global\conf={#1}\global\confinfo{#2}} + + +%\def\marginpar{\@latexerr{The \marginpar command is not allowed in the +% `acmconf' document style.}\@eha} + +\def\marginpar{\ClassError{% + \string\marginpar\space is not allowed in the `acmconf' document % January 2008 + style}\@eha} + +\mark{{}{}} % Initializes TeX's marks + +\def\today{\ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space\number\day, \number\year} + +\def\@begintheorem#1#2{% + \trivlist + \item[% + \hskip 10\p@ + \hskip \labelsep + {{\sc #1}\hskip 5\p@\relax#2.}% + ] + \it +} +\def\@opargbegintheorem#1#2#3{% + \trivlist + \item[% + \hskip 10\p@ + \hskip \labelsep + {\sc #1\ #2\ % This mod by Gerry to enumerate corollaries + \setbox\@tempboxa\hbox{(#3)} % and bracket the 'corollary title' + \ifdim \wd\@tempboxa>\z@ % and retain the correct numbering of e.g. theorems + \hskip 5\p@\relax % if they occur 'around' said corollaries. + \box\@tempboxa % Gerry - Nov. 1999. + \fi.}% + ] + \it +} +\newif\if@qeded +\global\@qededfalse + +% -- original +%\def\proof{% +% \vspace{-\parskip} % GM July 2000 (for tighter spacing) +% \global\@qededfalse +% \@ifnextchar[{\@xproof}{\@proof}% +%} +% -- end of original + +% (JSS) Fix for vertical spacing bug - Gerry Murray July 30th. 2002 +\def\proof{% +\vspace{-\lastskip}\vspace{-\parsep}\penalty-51% +\global\@qededfalse +\@ifnextchar[{\@xproof}{\@proof}% +} + +\def\endproof{% + \if@qeded\else\qed\fi + \endtrivlist +} +\def\@proof{% + \trivlist + \item[% + \hskip 10\p@ + \hskip \labelsep + {\sc Proof.}% + ] + \ignorespaces +} +\def\@xproof[#1]{% + \trivlist + \item[\hskip 10\p@\hskip \labelsep{\sc Proof #1.}]% + \ignorespaces +} +\def\qed{% + \unskip + \kern 10\p@ + \begingroup + \unitlength\p@ + \linethickness{.4\p@}% + \framebox(6,6){}% + \endgroup + \global\@qededtrue +} + +\def\newdef#1#2{% + \expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}% + \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}% + \global\@namedef{#1}{\@defthm{#1}{#2}}% + \global\@namedef{end#1}{\@endtheorem}% + }% +} +\def\@defthm#1#2{% + \refstepcounter{#1}% + \@ifnextchar[{\@ydefthm{#1}{#2}}{\@xdefthm{#1}{#2}}% +} +\def\@xdefthm#1#2{% + \@begindef{#2}{\csname the#1\endcsname}% + \ignorespaces +} +\def\@ydefthm#1#2[#3]{% + \trivlist + \item[% + \hskip 10\p@ + \hskip \labelsep + {\it #2% +% \savebox\@tempboxa{#3}% + \saveb@x\@tempboxa{#3}% % January 2008 + \ifdim \wd\@tempboxa>\z@ + \ \box\@tempboxa + \fi.% + }]% + \ignorespaces +} +\def\@begindef#1#2{% + \trivlist + \item[% + \hskip 10\p@ + \hskip \labelsep + {\it #1\ \rm #2.}% + ]% +} +\def\theequation{\arabic{equation}} + +\newcounter{part} +\newcounter{section} +\newcounter{subsection}[section] +\newcounter{subsubsection}[subsection] +\newcounter{paragraph}[subsubsection] +\def\thepart{\Roman{part}} +\def\thesection{\arabic{section}} +\def\thesubsection{\thesection.\arabic{subsection}} +\def\thesubsubsection{\thesubsection.\arabic{subsubsection}} %removed \subsecfnt 29 July 2002 gkmt +\def\theparagraph{\thesubsubsection.\arabic{paragraph}} %removed \subsecfnt 29 July 2002 gkmt + +\newif\if@uchead +\@ucheadfalse + +%% CHANGES: NEW NOTE +%% NOTE: OK to use old-style font commands below, since they were +%% suitably redefined for LaTeX2e +%% END CHANGES +\setcounter{secnumdepth}{3} +\def\part{% + \@startsection{part}{9}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@} + {4\p@}{\normalsize\@ucheadtrue}% +} + +% Rationale for changes made in next four definitions: +% "Before skip" is made elastic to provide some give in setting columns (vs. +% parskip, which is non-elastic to keep section headers "anchored" to their +% subsequent text. +% +% "After skip" is minimized -- BUT setting it to 0pt resulted in run-in heads, despite +% the documentation asserted only after-skip < 0pt would have result. +% +% Baselineskip added to style to ensure multi-line section titles, and section heads +% followed by another section head rather than text, are decently spaced vertically. +% 12 Jan 2000 gkmt +\def\section{% + \@startsection{section}{1}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@}% + {0.5pt}{\baselineskip=14pt\secfnt\@ucheadtrue}% +} + +\def\subsection{% + \@startsection{subsection}{2}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@} + {0.5pt}{\baselineskip=14pt\secfnt}% +} +\def\subsubsection{% + \@startsection{subsubsection}{3}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@}% + {0.5pt}{\baselineskip=14pt\subsecfnt}% +} + +%\def\paragraph{% +% \vskip 12pt\@startsection{paragraph}{3}{\z@}{6\p@ \@plus \p@}% original +% {-5\p@}{\subsecfnt}% +%} +% If one wants sections, subsections and subsubsections numbered, +% but not paragraphs, one usually sets secnumepth to 3. +% For that, the "depth" of paragraphs must be given correctly +% in the definition (``4'' instead of ``3'' as second argument +% of @startsection): +\def\paragraph{% + \vskip 12pt\@startsection{paragraph}{4}{\z@}{6\p@ \@plus \p@}% % GM and Wolfgang May - 11/30/06 + {-5\p@}{\subsecfnt}% +} + +\let\@period=. +\def\@startsection#1#2#3#4#5#6{% + \if@noskipsec %gkmt, 11 aug 99 + \global\let\@period\@empty + \leavevmode + \global\let\@period.% + \fi + \par + \@tempskipa #4\relax + \@afterindenttrue + \ifdim \@tempskipa <\z@ + \@tempskipa -\@tempskipa + \@afterindentfalse + \fi + %\if@nobreak 11 Jan 00 gkmt + %\everypar{} + %\else + \addpenalty\@secpenalty + \addvspace\@tempskipa + %\fi + \parskip=0pt + \@ifstar + {\@ssect{#3}{#4}{#5}{#6}} + {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}% +} + + +\def\@ssect#1#2#3#4#5{% + \@tempskipa #3\relax + \ifdim \@tempskipa>\z@ + \begingroup + #4{% + \@hangfrom{\hskip #1}% + \interlinepenalty \@M #5\@@par}% + \endgroup + \else + \def\@svsechd{#4{\hskip #1\relax #5}}% + \fi + \vskip -10.5pt %gkmt, 7 jan 00 -- had been -14pt, now set to parskip + \@xsect{#3}\parskip=10.5pt} % within the starred section, parskip = leading 12 Jan 2000 gkmt + + +\def\@sect#1#2#3#4#5#6[#7]#8{% + \ifnum #2>\c@secnumdepth + \let\@svsec\@empty + \else + \refstepcounter{#1}% + \edef\@svsec{% + \begingroup + %\ifnum#2>2 \noexpand\rm \fi % changed to next 29 July 2002 gkmt + \ifnum#2>2 \noexpand#6 \fi + \csname the#1\endcsname + \endgroup + \ifnum #2=1\relax .\fi + \hskip 1em + }% + \fi + \@tempskipa #5\relax + \ifdim \@tempskipa>\z@ + \begingroup + #6\relax + \@hangfrom{\hskip #3\relax\@svsec}% + \begingroup + \interlinepenalty \@M + \if@uchead + \uppercase{#8}% + \else + #8% + \fi + \par + \endgroup + \endgroup + \csname #1mark\endcsname{#7}% + \vskip -10.5pt % -14pt gkmt, 11 aug 99 -- changed to -\parskip 11 Jan 2000 + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7% + }% + \else + \def\@svsechd{% + #6% + \hskip #3\relax + \@svsec + \if@uchead + \uppercase{#8}% + \else + #8% + \fi + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7% + }% + }% + \fi + \@xsect{#5}\parskip=10.5pt% within the section, parskip = leading 12 Jan 2000 gkmt +} +\def\@xsect#1{% + \@tempskipa #1\relax + \ifdim \@tempskipa>\z@ + \par + \nobreak + \vskip \@tempskipa + \@afterheading + \else + \global\@nobreakfalse + \global\@noskipsectrue + \everypar{% + \if@noskipsec + \global\@noskipsecfalse + \clubpenalty\@M + \hskip -\parindent + \begingroup + \@svsechd + \@period + \endgroup + \unskip + \@tempskipa #1\relax + \hskip -\@tempskipa + \else + \clubpenalty \@clubpenalty + \everypar{}% + \fi + }% + \fi + \ignorespaces +} + +\def\@trivlist{% + \@topsepadd\topsep + \if@noskipsec + \global\let\@period\@empty + \leavevmode + \global\let\@period.% + \fi + \ifvmode + \advance\@topsepadd\partopsep + \else + \unskip + \par + \fi + \if@inlabel + \@noparitemtrue + \@noparlisttrue + \else + \@noparlistfalse + \@topsep\@topsepadd + \fi + \advance\@topsep \parskip + \leftskip\z@skip + \rightskip\@rightskip + \parfillskip\@flushglue + \@setpar{\if@newlist\else{\@@par}\fi} + \global\@newlisttrue + \@outerparskip\parskip +} + +%%% Actually, 'abbrev' works just fine as the default - Gerry Feb. 2000 +%%% Bibliography style. + +\parindent 0pt +\typeout{Using 'Abbrev' bibliography style} +\newcommand\bibyear[2]{% + \unskip\quad\ignorespaces#1\unskip + \if#2..\quad \else \quad#2 \fi +} +\newcommand{\bibemph}[1]{{\em#1}} +\newcommand{\bibemphic}[1]{{\em#1\/}} +\newcommand{\bibsc}[1]{{\sc#1}} +\def\@normalcite{% + \def\@cite##1##2{[##1\if@tempswa , ##2\fi]}% +} +\def\@citeNB{% + \def\@cite##1##2{##1\if@tempswa , ##2\fi}% +} +\def\@citeRB{% + \def\@cite##1##2{##1\if@tempswa , ##2\fi]}% +} +\def\start@cite#1#2{% + \edef\citeauthoryear##1##2##3{% + ###1% + \ifnum#2=\z@ \else\ ###2\fi + }% + \ifnum#1=\thr@@ + \let\@@cite\@citeyear + \else + \let\@@cite\@citenormal + \fi + \@ifstar{\@citeNB\@@cite}{\@normalcite\@@cite}% +} +%\def\cite{\start@cite23} +\DeclareRobustCommand\cite{\start@cite23} % January 2008 +\def\citeNP{\cite*} % No Parentheses e.g. 5 +%\def\citeA{\start@cite10} +\DeclareRobustCommand\citeA{\start@cite10} % January 2008 +\def\citeANP{\citeA*} +%\def\shortcite{\start@cite23} +\DeclareRobustCommand\shortcite{\start@cite23} % January 2008 +\def\shortciteNP{\shortcite*} +%\def\shortciteA{\start@cite20} +\DeclareRobustCommand\shortciteA{\start@cite20} % January 2008 +\def\shortciteANP{\shortciteA*} +%\def\citeyear{\start@cite30} +\DeclareRobustCommand\citeyear{\start@cite30} % January 2008 +\def\citeyearNP{\citeyear*} +%\def\citeN{% +\DeclareRobustCommand\citeN{% % January 2008 + \@citeRB + \def\citeauthoryear##1##2##3{##1\ [##3% + \def\reserved@a{##1}% + \def\citeauthoryear####1####2####3{% + \def\reserved@b{####1}% + \ifx\reserved@a\reserved@b + ####3% + \else + \errmessage{Package acmart Error: author mismatch + in \string\citeN^^J^^J% + See the acmart package documentation for explanation}% + \fi + }% + }% + \@ifstar\@citeyear\@citeyear +} +%\def\shortciteN{% +\DeclareRobustCommand\shortciteN{% % January 2008 + \@citeRB + \def\citeauthoryear##1##2##3{##2\ [##3% + \def\reserved@a{##2}% + \def\citeauthoryear####1####2####3{% + \def\reserved@b{####2}% + \ifx\reserved@a\reserved@b + ####3% + \else + \errmessage{Package acmart Error: author mismatch + in \string\shortciteN^^J^^J% + See the acmart package documentation for explanation}% + \fi + }% + }% + \@ifstar\@citeyear\@citeyear % changed from "\@ifstart" 12 Jan 2000 gkmt +} + +\def\@citenormal{% + \@ifnextchar [{\@tempswatrue\@citex;}% +% original {\@tempswafalse\@citex,[]}% was ; Gerry 2/24/00 +{\@tempswafalse\@citex[]}% % GERRY FIX FOR BABEL 3/20/2009 +} + +\def\@citeyear{% + \@ifnextchar [{\@tempswatrue\@citex,}% +% original {\@tempswafalse\@citex,[]}% +{\@tempswafalse\@citex[]}% % GERRY FIX FOR BABEL 3/20/2009 +} + +\def\@citex#1[#2]#3{% + \let\@citea\@empty + \@cite{% + \@for\@citeb:=#3\do{% + \@citea +% original \def\@citea{#1 }% + \def\@citea{#1, }% % GERRY FIX FOR BABEL 3/20/2009 -- SO THAT YOU GET [1, 2] IN THE BODY TEXT + \edef\@citeb{\expandafter\@iden\@citeb}% + \if@filesw + \immediate\write\@auxout{\string\citation{\@citeb}}% + \fi + \@ifundefined{b@\@citeb}{% + {\bf ?}% + \@warning{% + Citation `\@citeb' on page \thepage\space undefined% + }% + }% + {\csname b@\@citeb\endcsname}% + }% + }{#2}% +} +%\let\@biblabel\@gobble % Dec. 2008 - Gerry +% ---- +\def\@biblabelnum#1{[#1]} % Gerry's solution #1 - for Natbib +\let\@biblabel=\@biblabelnum % Gerry's solution #1 - for Natbib +\def\newblock{\relax} % Gerry Dec. 2008 +% --- +\newdimen\bibindent +\setcounter{enumi}{1} +\bibindent=0em +\def\thebibliography#1{% +\ifnum\addauflag=0\addauthorsection\global\addauflag=1\fi + \section[References]{% <=== OPTIONAL ARGUMENT ADDED HERE + {References} % was uppercased but this affects pdf bookmarks (SP/GM October 2004) + \@mkboth{{\refname}}{{\refname}}% + }% + \list{[\arabic{enumi}]}{% + \settowidth\labelwidth{[#1]}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \advance\leftmargin\bibindent + \parsep=0pt\itemsep=1pt % GM July 2000 + \itemindent -\bibindent + \listparindent \itemindent + \usecounter{enumi} + }% + \let\newblock\@empty + \raggedright % GM July 2000 + \sloppy + \sfcode`\.=1000\relax +} + + +\gdef\balancecolumns +{\vfill\eject +\global\@colht=\textheight +\global\ht\@cclv=\textheight +} + +\newcount\colcntr +\global\colcntr=0 +%\newbox\savebox +\newbox\saveb@x % January 2008 + +\gdef \@makecol {% +\global\advance\colcntr by 1 +\ifnum\colcntr>2 \global\colcntr=1\fi + \ifvoid\footins + \setbox\@outputbox \box\@cclv + \else + \setbox\@outputbox \vbox{% +\boxmaxdepth \@maxdepth + \@tempdima\dp\@cclv + \unvbox \@cclv + \vskip-\@tempdima + \vskip \skip\footins + \color@begingroup + \normalcolor + \footnoterule + \unvbox \footins + \color@endgroup + }% + \fi + \xdef\@freelist{\@freelist\@midlist}% + \global \let \@midlist \@empty + \@combinefloats + \ifvbox\@kludgeins + \@makespecialcolbox + \else + \setbox\@outputbox \vbox to\@colht {% +\@texttop + \dimen@ \dp\@outputbox + \unvbox \@outputbox + \vskip -\dimen@ + \@textbottom + }% + \fi + \global \maxdepth \@maxdepth +} +\def\titlenote{\@ifnextchar[\@xtitlenote{\stepcounter\@mpfn +\global\advance\titlenotecount by 1 +\ifnum\titlenotecount=1 + \raisebox{9pt}{$\ast$} +\fi +\ifnum\titlenotecount=2 + \raisebox{9pt}{$\dagger$} +\fi +\ifnum\titlenotecount=3 + \raisebox{9pt}{$\ddagger$} +\fi +\ifnum\titlenotecount=4 +\raisebox{9pt}{$\S$} +\fi +\ifnum\titlenotecount=5 +\raisebox{9pt}{$\P$} +\fi + \@titlenotetext +}} + +\long\def\@titlenotetext#1{\insert\footins{% +\ifnum\titlenotecount=1\global\tntoks={#1}\fi +\ifnum\titlenotecount=2\global\tntokstwo={#1}\fi +\ifnum\titlenotecount=3\global\tntoksthree={#1}\fi +\ifnum\titlenotecount=4\global\tntoksfour={#1}\fi +\ifnum\titlenotecount=5\global\tntoksfive={#1}\fi + \reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + }% + \color@begingroup + \color@endgroup}} + +%%%%%%%%%%%%%%%%%%%%%%%%% +\ps@plain +\baselineskip=11pt +\let\thepage\relax % For NO page numbers - Gerry Nov. 30th. 1999 +\def\setpagenumber#1{\global\setcounter{page}{#1}} +%\pagenumbering{arabic} % Arabic page numbers but commented out for NO page numbes - Gerry Nov. 30th. 1999 +\twocolumn % Double column. +\flushbottom % Even bottom -- alas, does not balance columns at end of document +\pagestyle{plain} + +% Need Copyright Year and Copyright Data to be user definable (in .tex file). +% Gerry Nov. 30th. 1999 +\newtoks\copyrtyr +\newtoks\acmcopyr +\newtoks\boilerplate +\def\CopyrightYear#1{\global\copyrtyr{#1}} +\def\crdata#1{\global\acmcopyr{#1}} +\def\permission#1{\global\boilerplate{#1}} +% +\newtoks\copyrightetc +\global\copyrightetc{\ } % Need to have 'something' so that adequate space is left for pasting in a line if "confinfo" is supplied. + +\toappear{\the\boilerplate\par +{\confname{\the\conf}} \the\confinfo\par \the\copyrightetc} +% End of ACM_PROC_ARTICLE-SP.CLS -- V3.2SP - 04/22/2009 -- +% Gerry Murray -- Wednesday April 22nd. 2009 +% +% The following section (i.e. 3 .sty inclusions) was added in May 2007 so as to fix the problems that many +% authors were having with accents. Sometimes accents would occur, but the letter-character would be of a different +% font. Conversely the letter-character font would be correct but, e.g. a 'bar' would appear superimposed on the +% character instead of, say, an unlaut/diaresis. Sometimes the letter-character would NOT appear at all. +% Using [T1]{fontenc} outright was not an option as this caused 99% of the authors to 'produce' a Type-3 (bitmapped) +% PDF file - useless for production. +% +% For proper (font) accenting we NEED these packages to be part of the .cls file i.e. 'ae', 'aecompl' and 'aeguil' +% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +%% This is file `ae.sty' +\def\fileversion{1.3} +\def\filedate{2001/02/12} +\NeedsTeXFormat{LaTeX2e} +%\ProvidesPackage{ae}[\filedate\space\fileversion\space % GM +% Almost European Computer Modern] % GM - keeping the log file clean(er) +\newif\if@ae@slides \@ae@slidesfalse +\DeclareOption{slides}{\@ae@slidestrue} +\ProcessOptions +\fontfamily{aer} +\RequirePackage[T1]{fontenc} +\if@ae@slides + \renewcommand{\sfdefault}{laess} + \renewcommand{\rmdefault}{laess} % no roman + \renewcommand{\ttdefault}{laett} +\else + \renewcommand{\sfdefault}{aess} + \renewcommand{\rmdefault}{aer} + \renewcommand{\ttdefault}{aett} +\fi +\endinput +%% +%% End of file `ae.sty'. +% +% +\def\fileversion{0.9} +\def\filedate{1998/07/23} +\NeedsTeXFormat{LaTeX2e} +%\ProvidesPackage{aecompl}[\filedate\space\fileversion\space % GM +%T1 Complements for AE fonts (D. Roegel)] % GM -- keeping the log file clean(er) + +\def\@ae@compl#1{{\fontencoding{T1}\fontfamily{cmr}\selectfont\symbol{#1}}} +\def\guillemotleft{\@ae@compl{19}} +\def\guillemotright{\@ae@compl{20}} +\def\guilsinglleft{\@ae@compl{14}} +\def\guilsinglright{\@ae@compl{15}} +\def\TH{\@ae@compl{222}} +\def\NG{\@ae@compl{141}} +\def\ng{\@ae@compl{173}} +\def\th{\@ae@compl{254}} +\def\DJ{\@ae@compl{208}} +\def\dj{\@ae@compl{158}} +\def\DH{\@ae@compl{208}} +\def\dh{\@ae@compl{240}} +\def\@perthousandzero{\@ae@compl{24}} +\def\textperthousand{\%\@perthousandzero} +\def\textpertenthousand{\%\@perthousandzero\@perthousandzero} +\endinput +% +% +%% This is file `aeguill.sty' +% This file gives french guillemets (and not guillemots!) +% built with the Polish CMR fonts (default), WNCYR fonts, the LASY fonts +% or with the EC fonts. +% This is useful in conjunction with the ae package +% (this package loads the ae package in case it has not been loaded) +% and with or without the french(le) package. +% +% In order to get the guillemets, it is necessary to either type +% \guillemotleft and \guillemotright, or to use an 8 bit encoding +% (such as ISO-Latin1) which selects these two commands, +% or, if you use the french package (but not the frenchle package), +% to type << or >>. +% +% By default, you get the Polish CMR guillemets; if this package is loaded +% with the `cm' option, you get the LASY guillemets; with `ec,' you +% get the EC guillemets, and with `cyr,' you get the cyrillic guillemets. +% +% In verbatim mode, you always get the EC/TT guillemets. +% +% The default option is interesting in conjunction with PDF, +% because there is a Type 1 version of the Polish CMR fonts +% and these guillemets are very close in shape to the EC guillemets. +% There are no free Type 1 versions of the EC fonts. +% +% Support for Polish CMR guillemets was kindly provided by +% Rolf Niepraschk in version 0.99 (2000/05/22). +% Bernd Raichle provided extensive simplifications to the code +% for version 1.00. +% +% This package is released under the LPPL. +% +% Changes: +% Date version +% 2001/04/12 1.01 the frenchle and french package are now distinguished. +% +\def\fileversion{1.01} +\def\filedate{2001/04/12} +\NeedsTeXFormat{LaTeX2e} +%\ProvidesPackage{aeguill}[2001/04/12 1.01 % % GM +%AE fonts with french guillemets (D. Roegel)] % GM - keeping the log file clean(er) +%\RequirePackage{ae} % GM May 2007 - already embedded here + +\newcommand{\@ae@switch}[4]{#4} +\DeclareOption{ec}{\renewcommand\@ae@switch[4]{#1}} +\DeclareOption{cm}{\renewcommand\@ae@switch[4]{#2}} +\DeclareOption{cyr}{\renewcommand\@ae@switch[4]{#3}} +\DeclareOption{pl}{\renewcommand\@ae@switch[4]{#4}} +\ExecuteOptions{pl} +\ProcessOptions + +% +% Load necessary packages +% +\@ae@switch{% ec + % do nothing +}{% cm + \RequirePackage{latexsym}% GM - May 2007 - already 'mentioned as required' up above +}{% cyr + \RequirePackage[OT2,T1]{fontenc}% +}{% pl + \RequirePackage[OT4,T1]{fontenc}% +} + +% The following command will be compared to \frenchname, +% as defined in french.sty and frenchle.sty. +\def\aeguillfrenchdefault{french}% + +\let\guill@verbatim@font\verbatim@font +\def\verbatim@font{\guill@verbatim@font\ecguills{cmtt}% + \let\guillemotleft\@oguills\let\guillemotright\@fguills} + +\begingroup \catcode`\<=13 \catcode`\>=13 +\def\x{\endgroup + \def\ae@lfguill{<<}% + \def\ae@rfguill{>>}% +}\x + +\newcommand{\ecguills}[1]{% + \def\selectguillfont{\fontencoding{T1}\fontfamily{#1}\selectfont}% + \def\@oguills{{\selectguillfont\symbol{19}}}% + \def\@fguills{{\selectguillfont\symbol{20}}}% + } + +\newcommand{\aeguills}{% + \ae@guills + % We redefine \guillemotleft and \guillemotright + % in order to catch them when they are used + % with \DeclareInputText (in latin1.def for instance) + % We use \auxWARNINGi as a safe indicator that french.sty is used. + \gdef\guillemotleft{\ifx\auxWARNINGi\undefined + \@oguills % neither french.sty nor frenchle.sty + \else + \ifx\aeguillfrenchdefault\frenchname + \ae@lfguill % french.sty + \else + \@oguills % frenchle.sty + \fi + \fi}% + \gdef\guillemotright{\ifx\auxWARNINGi\undefined + \@fguills % neither french.sty nor frenchle.sty + \else + \ifx\aeguillfrenchdefault\frenchname + \ae@rfguill % french.sty + \else + \@fguills % frenchle.sty + \fi + \fi}% + } + +% +% Depending on the class option +% define the internal command \ae@guills +\@ae@switch{% ec + \newcommand{\ae@guills}{% + \ecguills{cmr}}% +}{% cm + \newcommand{\ae@guills}{% + \def\selectguillfont{\fontencoding{U}\fontfamily{lasy}% + \fontseries{m}\fontshape{n}\selectfont}% + \def\@oguills{\leavevmode\nobreak + \hbox{\selectguillfont (\kern-.20em(\kern.20em}\nobreak}% + \def\@fguills{\leavevmode\nobreak + \hbox{\selectguillfont \kern.20em)\kern-.2em)}% + \ifdim\fontdimen\@ne\font>\z@\/\fi}}% +}{% cyr + \newcommand{\ae@guills}{% + \def\selectguillfont{\fontencoding{OT2}\fontfamily{wncyr}\selectfont}% + \def\@oguills{{\selectguillfont\symbol{60}}}% + \def\@fguills{{\selectguillfont\symbol{62}}}} +}{% pl + \newcommand{\ae@guills}{% + \def\selectguillfont{\fontencoding{OT4}\fontfamily{cmr}\selectfont}% + \def\@oguills{{\selectguillfont\symbol{174}}}% + \def\@fguills{{\selectguillfont\symbol{175}}}} +} + + +\AtBeginDocument{% + \ifx\GOfrench\undefined + \aeguills + \else + \let\aeguill@GOfrench\GOfrench + \gdef\GOfrench{\aeguill@GOfrench \aeguills}% + \fi + } + +\endinput +% + + diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/template/emf_supersetreferences.png b/src/trunk/org.gmodel.documentation/articles/0.1/template/emf_supersetreferences.png new file mode 100644 index 0000000..00a4b9c Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/template/emf_supersetreferences.png differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/template/flies.eps b/src/trunk/org.gmodel.documentation/articles/0.1/template/flies.eps new file mode 100644 index 0000000..29e33db --- /dev/null +++ b/src/trunk/org.gmodel.documentation/articles/0.1/template/flies.eps @@ -0,0 +1,8871 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: Adobe Illustrator(R) 8.0 +%%AI8_CreatorVersion: 8.0.1 +%%For: (Mark W Richards) (Association for Computing Machinery) +%%Title: (newflies.eps) +%%CreationDate: (2/9/00) (11:16 AM) +%%BoundingBox: 153 339 459 453 +%%HiResBoundingBox: 153 339.2998 459 452.6997 +%%DocumentProcessColors: Black +%%DocumentSuppliedResources: procset Adobe_level2_AI5 1.2 0 +%%+ procset Adobe_ColorImage_AI6 1.3 0 +%%+ procset Adobe_Illustrator_AI5 1.3 0 +%%+ procset Adobe_cshow 2.0 8 +%%+ procset Adobe_shading_AI8 1.0 0 +%AI5_FileFormat 4.0 +%AI3_ColorUsage: Black&White +%AI3_IncludePlacedImages +%AI7_ImageSettings: 1 +%%CMYKProcessColor: 1 1 1 1 ([Registration]) +%%AI6_ColorSeparationSet: 1 1 (AI6 Default Color Separation Set) +%%+ Options: 1 16 0 1 0 1 1 1 0 1 1 1 1 18 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 2 3 4 +%%+ PPD: 1 21 0 0 60 45 2 2 1 0 0 1 0 0 0 0 0 0 0 0 0 0 () +%AI3_TemplateBox: 306.5 395.5 306.5 395.5 +%AI3_TileBox: 13 13 599 779 +%AI3_DocumentPreview: Header +%AI5_ArtSize: 612 792 +%AI5_RulerUnits: 0 +%AI5_ArtFlags: 1 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI8_OpenToView: 83 583 2 1016 675 18 0 1 8 65 0 0 +%AI5_OpenViewLayers: 7 +%%PageOrigin:13 13 +%%AI3_PaperRect:-13 779 599 -13 +%%AI3_Margin:13 -13 -13 13 +%AI7_GridSettings: 7.2 8 7.2 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 +%AI7_Thumbnail: 128 48 8 +%%BeginBinary +%0000330000660000990000CC0033000033330033660033990033CC0033FF +%0066000066330066660066990066CC0066FF009900009933009966009999 +%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 +%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 +%3333663333993333CC3333FF3366003366333366663366993366CC3366FF +%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 +%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 +%6600666600996600CC6600FF6633006633336633666633996633CC6633FF +%6666006666336666666666996666CC6666FF669900669933669966669999 +%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 +%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF +%9933009933339933669933999933CC9933FF996600996633996666996699 +%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 +%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF +%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 +%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 +%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF +%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC +%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 +%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 +%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 +%000011111111220000002200000022222222440000004400000044444444 +%550000005500000055555555770000007700000077777777880000008800 +%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB +%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF +%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF +%524C45FDFCFFFD2BFF5227527D52FD7BFFF85227FF7D527D52FD78FFF852 +%52FD04FF7D52A8FD76FF7D527DFFA827FFFFFF7DF8FD3AFF7DF87DFD1DFF +%7D52FD1AFF7D527D52FFA8FF52A8277D7DFD38FFF8527DFD0AFF527D52FD +%11FFA852FD06FF27F8A8FD10FF277D7DFFFFFF527D52F87DFF52FD29FF7D +%FD0427F8FD07FF7D277D277DFD06FF5227277D527DFD12FFF8FD05FFA8F8 +%FD12FFA85252FD04FF527DFFFF27FF27FD28FF52277DA87DA87D527DFD04 +%FF27525252F8FD05FF277D527D275227FD12FF52FD05FFF8A8FD13FF27FF +%7D7DA8FF7D52FF52FF7DFF52FD27FF27A8527D7DA8FF7DFFA827FFFF2752 +%7D527D7DFF7DA8FF277DFFFF7D52F8FD13FFF8FD04FFF8FD16FFA8A8277D +%277DFFA8A87D527D52FD0AFFA8FD1CFF522752FFA8A87DFFA8FF7DF8277D +%525227F827FFA87D7DFF52FFFFFF27FD13FF27F8FFFFF87DFD15FF52FF52 +%7D7DA8FFFF7DA852275227FD0AFFF8FD1CFF27FF7DFF7DFF7D52A87D7D27 +%27277D522752FF52A8FFFD047DFF527DFD14FFA8F8F852FD17FFA8A827FF +%527D52A8275227F85252FD07FF52F8A8FD1CFFA87DFF7D52A8A8FFFFA852 +%52F87D527D277D52FF52FF527D527DFF7DFD14FFA8FD04F827FD16FFFD04 +%27F8F8FD04277D272727F8FD04FFF827FD20FF52FF52A852FFFFA8FFA8F8 +%27527D7D7D27FFFFA8FFA87D7DFFFF52FD15FFFD04F87DFD13FFA8272752 +%52277D277D5227525227F827FD04F87DF8A8FD22FF52A87D5252A852A8A8 +%F8525252277D52A8A8527DFFA852FF52A8FD14FF27277D527D2727FD11FF +%F827277D27527D527D27F8527D522752FF7D27F8F8F87DFD19FF7D277DFD +%07FFA87D7DFF7D277D7DA82727527D277DF87D7D7D527D27277D27FD14FF +%F8525227A852F852F8FD0FFF52FF52527D52A8527D52A8A8FD04527D277D +%52F8F8F8FD18FF52A852A852A8FD07FFF8FFFF52A8A87D525252F852F852 +%F8FFA8A8A8527D527DFD13FF5227522752FF522727F87D27FD0EFFF8F852 +%27FF7D2727277D277D52A827277D7DFF7DFD04F8FD15FFA852A8FF7D7D7D +%52FD08FF2752FF7D2752F8272727F8522727A8FF7DFFFF27A852FD12FF52 +%7D7D52F827277D5227F852A827FD0EFFA8F8277D527D277D5227F87DFD09 +%F8A87DF8F8FD12FFF8A8FF7DFF527D52A8FD09FF7DFF52A87D277D277D27 +%7D52277D7D527D7D7DF8FD12FF27FF277DF87DF87D522727F827FF7D27FD +%10FF27F827F8F827527DF82727F827F82727FD05FF7DF827FD0EFF52277D +%A852FFFFFF527DFD0BFF7DFFFF527D52F8F827F8F8277D7D7DFF2727FD12 +%FF27FFA87D5252527D27F827F82752277DA87DFD10FF52FF52FFFFA8A8F8 +%527D27F85252A8FD07FF27A8FD0CFF527DFF7D52FFA8FFA8A8A8FD0BFFA8 +%7DA8A827F827525252277DF8A8A8A827FD12FF7DFF52FF52FF522727277D +%27F82727FF7DA8527DFD0EFF52FF7DA8FFA8FF7D52A8FD057DFD15FF527D +%FFFF7D7DFF7D7DA8527DFD0CFF7D277DF827F8FF27FFF8272727FF52FD13 +%FFA852FF527DFF7D5252522752F852F8527D52FF527DFD0DFF7D527DFFFF +%5252A87D52FF52277DFD15FF527DFFA8A87D7DFFA87D527D52FD0EFF7DA8 +%27277DA8A8525252A827FD13FF272727FF7D52A8FF7D52277D27277D527D +%FFFF7DFF527DFD0BFF27FFFF52FFFF7D52A8FF27FF7D7DFD15FF27A87D7D +%FF7D52FFFF7D7DFF52FD0FFF7D27F8F8277DFFF8F8F827FD13FFA8277DA8 +%52527DA8A8F85252FF527D527D527D52A8FFFF27FD0BFF5252A87D52FFFF +%5252FFFF7DA8FD15FF27A852A852FF527D52FD04A852FD10FFA852F85252 +%F8275252FD14FF7DFF52277D7D277D52F85227522752F852A8527D52A852 +%A8F8FD09FF52A8FFA852277D7D52FFFF7D7DFD0BFF7DFD09FF27A8FF27FF +%7D527D7DFF7DA8FFA8FD13FFF8F8F827F87DFD14FF277DFF7DFFA8FFA8FF +%FF277D52A8F8A8F87DFF7DFFA8527D7DA8A8FD08FF7D7DA852FF7D7DFF7D +%FF7DFD0DFFF8FD08FFF8A827272752F87D527D5227527D27FD13FFFD05F8 +%7DFD14FFA8FFA87D7D52FF52FF522727FF527D27F827A87DFD04FF7DFF7D +%FD08FF527D52FFFFA827FF7D27FD0EFF27F87DFD05FF277DF8F8F827277D +%527DF8F8F827F87DFD13FFA8FD04F8FD14FFA827FF527D52A8FF7D52A827 +%5252F8F87D277DA8A852A852A8FFA8A87DFD07FF7DA87D52A8FFA8527DFD +%10FFA8F8F8A8FF525252F8522752F8F8F852527DA852527D525227FD12FF +%F8A852F8FD14FF52A8FFFF27FF52A827FF7D27277D527D52F852FF7DA852 +%A8FD04FF7DFD07FF527D7D7DFF7D52FD15FFF87DF8F8527D277D2727277D +%277D27F852F8527D5227F827FD0FFFF827FFFFA8F8FD13FF52A8FFFFA8FF +%FF7DFFA8FF527D5227527D52277DA8FF7D7DA8FF7D527D52FD06FF7D527D +%7D7DA8FD17FFF8F8F87DA87D527DF8A827A8FF7D7D7DF87D277D277D27FD +%0FFFF8FD04FF5252FD12FFF827277D7D7D52277DFFFFFF277D527D27FFFF +%FF277D527D7D7D52A87D27FD06FFF87D27A8FD19FFF8F8F85227FF275227 +%277D277D277DFF7D527D527D7D27FD0EFF2727FD05FFF8FD12FF52527D52 +%7D527DFD05FF5252522752FD05FF7D52A8527D527D52FD22FFF8A8F8F852 +%277D27F85252277D277D52522752525227FD10FFF8FD06FFF8FD12FFF827 +%52F852FD08FFA852F8FD0AFF7D7D7DFD22FFF827FF7DFF277D27F8527D27 +%7D52F8F8FD04277DFD11FF27FD08FFF8FD1EFF275227FD2CFF7DF87DFD06 +%FFF87D27F8277D52FF7D7DFF7D7DA8FD68FF7D7DFD09FF27A8527DFFFF7D +%A852FFFF7DFFA8FD67FF52FD0AFF7D5252527D527D5252A87D5252FFA8FD +%72FF7DFFA8FF7D527D52FFFFFF7DA827FD73FF52FF7DFFFF27A87D7DA87D +%FF7D52FD73FF27FF7D27A827FF527DFFFF527DFD74FFA8A852527D52A852 +%52A8A8527DFD75FF2727FFFF7D7DFFFF527DF8FD76FF7DA852FD04FF2752 +%7DFD78FF277D277DA8277D27FD7AFFA87D27F827F8FDFCFFFDA8FFFF +%%EndBinary +%%EndComments +%%BeginProlog +%%BeginResource: procset Adobe_level2_AI5 1.2 0 +%%Title: (Adobe Illustrator (R) Version 5.0 Level 2 Emulation) +%%Version: 1.2 0 +%%CreationDate: (04/10/93) () +%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved) +userdict /Adobe_level2_AI5 26 dict dup begin + put + /packedarray where not + { + userdict begin + /packedarray + { + array astore readonly + } bind def + /setpacking /pop load def + /currentpacking false def + end + 0 + } if + pop + userdict /defaultpacking currentpacking put true setpacking + /initialize + { + Adobe_level2_AI5 begin + } bind def + /terminate + { + currentdict Adobe_level2_AI5 eq + { + end + } if + } bind def + mark + /setcustomcolor where not + { + /findcmykcustomcolor + { + (AI8_CMYK_CustomColor) + 6 packedarray + } bind def + /findrgbcustomcolor + { + (AI8_RGB_CustomColor) + 5 packedarray + } bind def + /setcustomcolor + { + exch + aload pop dup + (AI8_CMYK_CustomColor) eq + { + pop pop + 4 + { + 4 index mul + 4 1 roll + } repeat + 5 -1 roll pop + setcmykcolor + } + { + dup (AI8_RGB_CustomColor) eq + { + pop pop + 3 + { + 1 exch sub + 3 index mul + 1 exch sub + 3 1 roll + } repeat + 4 -1 roll pop + setrgbcolor + } + { + pop + 4 + { + 4 index mul 4 1 roll + } repeat + 5 -1 roll pop + setcmykcolor + } ifelse + } ifelse + } + def + } if + /setAIseparationgray + { + false setoverprint + 0 setgray + /setseparationgray where{ + pop setseparationgray + }{ + /setcolorspace where{ + pop + [/Separation (All) /DeviceCMYK {dup dup dup}] setcolorspace + 1 exch sub setcolor + }{ + setgray + }ifelse + }ifelse + } def + + /gt38? mark {version cvr cvx exec} stopped {cleartomark true} {38 gt exch pop} ifelse def + userdict /deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt put + userdict /level2? + systemdict /languagelevel known dup + { + pop systemdict /languagelevel get 2 ge + } if + put +/level2ScreenFreq +{ + begin + 60 + HalftoneType 1 eq + { + pop Frequency + } if + HalftoneType 2 eq + { + pop GrayFrequency + } if + HalftoneType 5 eq + { + pop Default level2ScreenFreq + } if + end +} bind def +userdict /currentScreenFreq + level2? {currenthalftone level2ScreenFreq} {currentscreen pop pop} ifelse put +level2? not + { + /setcmykcolor where not + { + /setcmykcolor + { + exch .11 mul add exch .59 mul add exch .3 mul add + 1 exch sub setgray + } def + } if + /currentcmykcolor where not + { + /currentcmykcolor + { + 0 0 0 1 currentgray sub + } def + } if + /setoverprint where not + { + /setoverprint /pop load def + } if + /selectfont where not + { + /selectfont + { + exch findfont exch + dup type /arraytype eq + { + makefont + } + { + scalefont + } ifelse + setfont + } bind def + } if + /cshow where not + { + /cshow + { + [ + 0 0 5 -1 roll aload pop + ] cvx bind forall + } bind def + } if + } if + cleartomark + /anyColor? + { + add add add 0 ne + } bind def + /testColor + { + gsave + setcmykcolor currentcmykcolor + grestore + } bind def + /testCMYKColorThrough + { + testColor anyColor? + } bind def + userdict /composite? + 1 0 0 0 testCMYKColorThrough + 0 1 0 0 testCMYKColorThrough + 0 0 1 0 testCMYKColorThrough + 0 0 0 1 testCMYKColorThrough + and and and + put + composite? not + { + userdict begin + gsave + /cyan? 1 0 0 0 testCMYKColorThrough def + /magenta? 0 1 0 0 testCMYKColorThrough def + /yellow? 0 0 1 0 testCMYKColorThrough def + /black? 0 0 0 1 testCMYKColorThrough def + grestore + /isCMYKSep? cyan? magenta? yellow? black? or or or def + /customColor? isCMYKSep? not def + end + } if + end defaultpacking setpacking +%%EndResource +%%BeginProcSet: Adobe_ColorImage_AI6 1.3 0 +userdict /Adobe_ColorImage_AI6 known not +{ + userdict /Adobe_ColorImage_AI6 53 dict put +} if +userdict /Adobe_ColorImage_AI6 get begin +/initialize { + Adobe_ColorImage_AI6 begin + Adobe_ColorImage_AI6 { + dup type /arraytype eq { + dup xcheck { + bind + } if + } if + pop pop + } forall +} def +/terminate { end } def +currentdict /Adobe_ColorImage_AI6_Vars known not { + /Adobe_ColorImage_AI6_Vars 41 dict def +} if +Adobe_ColorImage_AI6_Vars begin + /plateindex -1 def + /_newproc null def + /_proc1 null def + /_proc2 null def + /sourcearray 4 array def + /_ptispace null def + /_ptiname null def + /_pti0 0 def + /_pti1 0 def + /_ptiproc null def + /_ptiscale 0 def + /_pticomps 0 def + /_ptibuf 0 string def + /_gtigray 0 def + /_cticmyk null def + /_rtirgb null def + /XIEnable true def + /XIType 0 def + /XIEncoding 0 def + /XICompression 0 def + /XIChannelCount 0 def + /XIBitsPerPixel 0 def + /XIImageHeight 0 def + /XIImageWidth 0 def + /XIImageMatrix null def + /XIRowBytes 0 def + /XIFile null def + /XIBuffer1 null def + /XIBuffer2 null def + /XIBuffer3 null def + /XIDataProc null def + /XIColorSpace /DeviceGray def + /XIColorValues 0 def + /XIPlateList false def +end +/ci6colorimage /colorimage where {/colorimage get}{null} ifelse def +/ci6image systemdict /image get def +/ci6curtransfer systemdict /currenttransfer get def +/ci6curoverprint /currentoverprint where {/currentoverprint get}{{_of}} ifelse def +/ci6foureq { + 4 index ne { + pop pop pop false + }{ + 4 index ne { + pop pop false + }{ + 4 index ne { + pop false + }{ + 4 index eq + } ifelse + } ifelse + } ifelse +} def +/ci6testplate { + Adobe_ColorImage_AI6_Vars begin + /plateindex -1 def + /setcmykcolor where { + pop + gsave + 1 0 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub + 0 1 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub + 0 0 1 0 setcmykcolor systemdict /currentgray get exec 1 exch sub + 0 0 0 1 setcmykcolor systemdict /currentgray get exec 1 exch sub + grestore + 1 0 0 0 ci6foureq { + /plateindex 0 def + }{ + 0 1 0 0 ci6foureq { + /plateindex 1 def + }{ + 0 0 1 0 ci6foureq { + /plateindex 2 def + }{ + 0 0 0 1 ci6foureq { + /plateindex 3 def + }{ + 0 0 0 0 ci6foureq { + /plateindex 5 def + } if + } ifelse + } ifelse + } ifelse + } ifelse + pop pop pop pop + } if + plateindex + end +} def +/ci6concatprocs { + /packedarray where { + pop dup type /packedarraytype eq 2 index type + /packedarraytype eq or + }{ + false + } ifelse + { + /_proc2 exch cvlit def + /_proc1 exch cvlit def + _proc1 aload pop + _proc2 aload pop + _proc1 length + _proc2 length add + packedarray cvx + }{ + /_proc2 exch cvlit def + /_proc1 exch cvlit def + /_newproc _proc1 length _proc2 length add array def + _newproc 0 _proc1 putinterval + _newproc _proc1 length _proc2 putinterval + _newproc cvx + } ifelse +} def +/ci6istint { + type /arraytype eq +} def +/ci6isspot { + dup type /arraytype eq { + dup length 1 sub get /Separation eq + }{ + pop false + } ifelse +} def +/ci6spotname { + dup ci6isspot {dup length 2 sub get}{pop ()} ifelse +} def +/ci6altspace { + aload pop pop pop ci6colormake +} def +/ci6numcomps { + dup /DeviceGray eq { + pop 1 + }{ + dup /DeviceRGB eq { + pop 3 + }{ + /DeviceCMYK eq { + 4 + }{ + 1 + } ifelse + } ifelse + } ifelse +} def +/ci6marksplate { + dup /DeviceGray eq { + pop plateindex 3 eq + }{ + dup /DeviceRGB eq { + pop plateindex 5 ne + }{ + dup /DeviceCMYK eq { + pop plateindex 5 ne + }{ + dup ci6isspot { + /findcmykcustomcolor where { + pop + dup length 2 sub get + 0.1 0.1 0.1 0.1 5 -1 roll + findcmykcustomcolor 1 setcustomcolor + systemdict /currentgray get exec + 1 ne + }{ + pop plateindex 5 ne + } ifelse + }{ + pop plateindex 5 ne + } ifelse + } ifelse + } ifelse + } ifelse +} def +/ci6colormake { + dup ci6numcomps + exch 1 index 2 add 1 roll + dup 1 eq {pop}{array astore} ifelse + exch +} def +/ci6colorexpand { + dup ci6spotname exch + dup ci6istint { + ci6altspace + exch 4 1 roll + }{ + 1 3 1 roll + } ifelse +} def +/ci6colortint { + dup /DeviceGray eq { + 3 1 roll 1 exch sub mul 1 exch sub exch + }{ + dup /DeviceRGB eq { + 3 1 roll {1 exch sub 1 index mul 1 exch sub exch} forall pop 3 array astore exch + }{ + dup /DeviceCMYK eq { + 3 1 roll {1 index mul exch} forall pop 4 array astore exch + }{ + 3 1 roll mul exch + } ifelse + } ifelse + } ifelse +} def +/ci6colortocmyk { + dup /DeviceGray eq { + pop 1 exch sub 0 0 0 4 -1 roll 4 array astore + }{ + dup /DeviceRGB eq { + pop aload pop _rgbtocmyk 4 array astore + }{ + dup /DeviceCMYK eq { + pop + }{ + ci6altspace ci6colortint ci6colortocmyk + } ifelse + } ifelse + } ifelse +} def +/ci6makeimagedict { + 7 dict begin + /ImageType 1 def + /Decode exch def + /DataSource exch def + /ImageMatrix exch def + /BitsPerComponent exch def + /Height exch def + /Width exch def + currentdict end +} def +/ci6stringinvert { + 0 1 2 index length 1 sub { + dup 2 index exch get 255 exch sub 2 index 3 1 roll put + } for +} def +/ci6stringknockout { + 0 1 2 index length 1 sub { + 255 2 index 3 1 roll put + } for +} def +/ci6stringapply { + 0 1 4 index length 1 sub { + dup + 4 index exch get + 3 index 3 1 roll + 3 index exec + } for + pop exch pop +} def +/ci6walkrgbstring { + 0 3 index + dup length 1 sub 0 3 3 -1 roll { + 3 getinterval {} forall + 5 index exec + 3 index + } for + + 5 {pop} repeat +} def +/ci6walkcmykstring +{ + 0 3 index + dup length 1 sub 0 4 3 -1 roll { + 4 getinterval {} forall + + 6 index exec + + 3 index + + } for + + 5 { pop } repeat + +} def +/ci6putrgbtograystr +{ + .11 mul exch + + .59 mul add exch + + .3 mul add + + cvi 3 copy put + + pop 1 add +} def +/ci6putcmyktograystr +{ + exch .11 mul add + + exch .59 mul add + + exch .3 mul add + + dup 255 gt { pop 255 } if + + 255 exch sub cvi 3 copy put + + pop 1 add +} def +/ci6rgbtograyproc { + Adobe_ColorImage_AI6_Vars begin + sourcearray 0 get exec + XIBuffer3 + dup 3 1 roll + + /ci6putrgbtograystr load exch + ci6walkrgbstring + end +} def +/ci6cmyktograyproc { + Adobe_ColorImage_AI6_Vars begin + sourcearray 0 get exec + XIBuffer3 + dup 3 1 roll + + /ci6putcmyktograystr load exch + ci6walkcmykstring + end +} def +/ci6separatecmykproc { + Adobe_ColorImage_AI6_Vars begin + sourcearray 0 get exec + + XIBuffer3 + + 0 2 index + + plateindex 4 2 index length 1 sub { + get 255 exch sub + + 3 copy put pop 1 add + + 2 index + } for + pop pop exch pop + end +} def + +/ci6compositeimage { + dup 1 eq { + pop pop image + }{ + /ci6colorimage load null ne { + ci6colorimage + }{ + 3 1 roll pop + sourcearray 0 3 -1 roll put + 3 eq {/ci6rgbtograyproc}{/ci6cmyktograyproc} ifelse load + image + } ifelse + } ifelse +} def +/ci6knockoutimage { + gsave + 0 ci6curtransfer exec 1 ci6curtransfer exec + eq { + 0 ci6curtransfer exec 0.5 lt + }{ + 0 ci6curtransfer exec 1 ci6curtransfer exec gt + } ifelse + {{pop 0}}{{pop 1}} ifelse + systemdict /settransfer get exec + ci6compositeimage + grestore +} def +/ci6drawimage { + ci6testplate -1 eq { + pop ci6compositeimage + }{ + dup type /arraytype eq { + dup length plateindex gt {plateindex get}{pop false} ifelse + }{ + { + true + }{ + dup 1 eq {plateindex 3 eq}{plateindex 3 le} ifelse + } ifelse + } ifelse + { + dup 1 eq { + pop pop ci6image + }{ + dup 3 eq { + ci6compositeimage + }{ + pop pop + sourcearray 0 3 -1 roll put + /ci6separatecmykproc load + ci6image + } ifelse + } ifelse + }{ + ci6curoverprint { + 7 {pop} repeat + }{ + ci6knockoutimage + } ifelse + } ifelse + } ifelse +} def +/ci6proctintimage { + /_ptispace exch store /_ptiname exch store /_pti1 exch store /_pti0 exch store /_ptiproc exch store + /_pticomps _ptispace ci6numcomps store + /_ptiscale _pti1 _pti0 sub store + level2? { + _ptiname length 0 gt version cvr 2012 ge and { + [/Separation _ptiname _ptispace {_ptiproc}] setcolorspace + [_pti0 _pti1] ci6makeimagedict ci6image + }{ + [/Indexed _ptispace 255 {255 div _ptiscale mul _pti0 add _ptiproc}] setcolorspace + [0 255] ci6makeimagedict ci6image + } ifelse + }{ + _pticomps 1 eq { + { + dup + { + 255 div _ptiscale mul _pti0 add _ptiproc 255 mul cvi put + } ci6stringapply + } ci6concatprocs ci6image + }{ + { + dup length _pticomps mul dup _ptibuf length ne {/_ptibuf exch string store}{pop} ifelse + _ptibuf { + exch _pticomps mul exch 255 div _ptiscale mul _pti0 add _ptiproc + _pticomps 2 add -2 roll + _pticomps 1 sub -1 0 { + 1 index add 2 index exch + 5 -1 roll + 255 mul cvi put + } for + pop pop + } ci6stringapply + } ci6concatprocs false _pticomps + /ci6colorimage load null eq {7 {pop} repeat}{ci6colorimage} ifelse + } ifelse + } ifelse +} def +/ci6graytintimage { + /_gtigray 5 -1 roll store + {1 _gtigray sub mul 1 exch sub} 4 1 roll + /DeviceGray ci6proctintimage +} def +/ci6cmyktintimage { + /_cticmyk 5 -1 roll store + {_cticmyk {1 index mul exch} forall pop} 4 1 roll + /DeviceCMYK ci6proctintimage +} def +/ci6rgbtintimage { + /_rtirgb 5 -1 roll store + {_rtirgb {1 exch sub 1 index mul 1 exch sub exch} forall pop} 4 1 roll + /DeviceRGB ci6proctintimage +} def +/ci6tintimage { + ci6testplate -1 eq { + ci6colorexpand + 3 -1 roll 5 -1 roll {0}{0 exch} ifelse 4 2 roll + dup /DeviceGray eq { + pop ci6graytintimage + }{ + dup /DeviceRGB eq { + pop ci6rgbtintimage + }{ + pop ci6cmyktintimage + } ifelse + } ifelse + }{ + dup ci6marksplate { + plateindex 5 lt { + ci6colortocmyk plateindex get + dup 0 eq ci6curoverprint and { + 7 {pop} repeat + }{ + 1 exch sub + exch {1 0}{0 1} ifelse () ci6graytintimage + } ifelse + }{ + pop exch {0}{0 exch} ifelse 0 3 1 roll () ci6graytintimage + } ifelse + }{ + ci6curoverprint { + 8 {pop} repeat + }{ + pop pop pop + {pop 1} 0 1 () /DeviceGray ci6proctintimage + } ifelse + } ifelse + } ifelse +} def +/XINullImage { +} def +/XIImageMask { + XIImageWidth XIImageHeight false + [XIImageWidth 0 0 XIImageHeight neg 0 0] + /XIDataProc load + imagemask +} def +/XIImageTint { + XIImageWidth XIImageHeight XIBitsPerPixel + [XIImageWidth 0 0 XIImageHeight neg 0 0] + /XIDataProc load + XIType 3 eq XIColorValues XIColorSpace ci6tintimage +} def +/XIImage { + XIImageWidth XIImageHeight XIBitsPerPixel + [XIImageWidth 0 0 XIImageHeight neg 0 0] + /XIDataProc load + false XIChannelCount XIPlateList ci6drawimage +} def +/XG { + pop pop +} def +/XF { + 13 {pop} repeat +} def +/Xh { + Adobe_ColorImage_AI6_Vars begin + gsave + /XIType exch def + /XIImageHeight exch def + /XIImageWidth exch def + /XIImageMatrix exch def + 0 0 moveto + XIImageMatrix concat + XIImageWidth XIImageHeight scale + + /_lp /null ddef + _fc + /_lp /imagemask ddef + end +} def +/XH { + Adobe_ColorImage_AI6_Vars begin + grestore + end +} def +/XIEnable { + Adobe_ColorImage_AI6_Vars /XIEnable 3 -1 roll put +} def +/XC { + Adobe_ColorImage_AI6_Vars begin + ci6colormake + /XIColorSpace exch def + /XIColorValues exch def + end +} def +/XIPlates { + Adobe_ColorImage_AI6_Vars begin + /XIPlateList exch def + end +} def +/XI +{ + Adobe_ColorImage_AI6_Vars begin + gsave + /XIType exch def + cvi dup + 256 idiv /XICompression exch store + 256 mod /XIEncoding exch store + pop pop + /XIChannelCount exch def + /XIBitsPerPixel exch def + /XIImageHeight exch def + /XIImageWidth exch def + pop pop pop pop + /XIImageMatrix exch def + XIBitsPerPixel 1 eq { + XIImageWidth 8 div ceiling cvi + }{ + XIImageWidth XIChannelCount mul + } ifelse + /XIRowBytes exch def + XIEnable { + /XIBuffer3 XIImageWidth string def + XICompression 0 eq { + /XIBuffer1 XIRowBytes string def + XIEncoding 0 eq { + {currentfile XIBuffer1 readhexstring pop} + }{ + {currentfile XIBuffer1 readstring pop} + } ifelse + }{ + /XIBuffer1 256 string def + /XIBuffer2 XIRowBytes string def + {currentfile XIBuffer1 readline pop (%) anchorsearch {pop} if} + /ASCII85Decode filter /DCTDecode filter + /XIFile exch def + {XIFile XIBuffer2 readstring pop} + } ifelse + /XIDataProc exch def + + XIType 1 ne { + 0 setgray + } if + XIType 1 eq { + XIImageMask + }{ + XIType 2 eq XIType 3 eq or { + XIImageTint + }{ + XIImage + } ifelse + } ifelse + }{ + XINullImage + } ifelse + /XIPlateList false def + grestore + end +} def +end +%%EndProcSet +%%BeginResource: procset Adobe_Illustrator_AI5 1.3 0 +%%Title: (Adobe Illustrator (R) Version 8.0 Full Prolog) +%%Version: 1.3 0 +%%CreationDate: (3/7/1994) () +%%Copyright: ((C) 1987-1998 Adobe Systems Incorporated All Rights Reserved) +currentpacking true setpacking +userdict /Adobe_Illustrator_AI5_vars 112 dict dup begin +put +/_?cmyk false def +/_eo false def +/_lp /none def +/_pf +{ +} def +/_ps +{ +} def +/_psf +{ +} def +/_pss +{ +} def +/_pjsf +{ +} def +/_pjss +{ +} def +/_pola 0 def +/_doClip 0 def +/cf currentflat def +/_lineorientation 0 def +/_charorientation 0 def +/_yokoorientation 0 def +/_tm matrix def +/_renderStart +[ +/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0 +] def +/_renderEnd +[ +null null null null /i1 /i1 /i1 /i1 +] def +/_render -1 def +/_shift [0 0] def +/_ax 0 def +/_ay 0 def +/_cx 0 def +/_cy 0 def +/_leading +[ +0 0 +] def +/_ctm matrix def +/_mtx matrix def +/_sp 16#020 def +/_hyphen (-) def +/_fontSize 0 def +/_fontAscent 0 def +/_fontDescent 0 def +/_fontHeight 0 def +/_fontRotateAdjust 0 def +/Ss 256 string def +Ss 0 (fonts/) putinterval +/_cnt 0 def +/_scale [1 1] def +/_nativeEncoding 0 def +/_useNativeEncoding 0 def +/_tempEncode 0 def +/_pntr 0 def +/_tDict 2 dict def +/_hfname 100 string def +/_hffound false def +/Tx +{ +} def +/Tj +{ +} def +/CRender +{ +} def +/_AI3_savepage +{ +} def +/_gf null def +/_cf 4 array def +/_rgbf 3 array def +/_if null def +/_of false def +/_fc +{ +} def +/_gs null def +/_cs 4 array def +/_rgbs 3 array def +/_is null def +/_os false def +/_sc +{ +} def +/_pd 1 dict def +/_ed 15 dict def +/_pm matrix def +/_fm null def +/_fd null def +/_fdd null def +/_sm null def +/_sd null def +/_sdd null def +/_i null def +/_lobyte 0 def +/_hibyte 0 def +/_cproc null def +/_cscript 0 def +/_hvax 0 def +/_hvay 0 def +/_hvwb 0 def +/_hvcx 0 def +/_hvcy 0 def +/_bitfont null def +/_bitlobyte 0 def +/_bithibyte 0 def +/_bitkey null def +/_bitdata null def +/_bitindex 0 def +/discardSave null def +/buffer 256 string def +/beginString null def +/endString null def +/endStringLength null def +/layerCnt 1 def +/layerCount 1 def +/perCent (%) 0 get def +/perCentSeen? false def +/newBuff null def +/newBuffButFirst null def +/newBuffLast null def +/clipForward? false def +end +userdict /Adobe_Illustrator_AI5 known not { + userdict /Adobe_Illustrator_AI5 100 dict put +} if +userdict /Adobe_Illustrator_AI5 get begin +/initialize +{ + Adobe_Illustrator_AI5 dup begin + Adobe_Illustrator_AI5_vars begin + /_aicmykps where {pop /_?cmyk _aicmykps def}if + discardDict + { + bind pop pop + } forall + dup /nc get begin + { + dup xcheck 1 index type /operatortype ne and + { + bind + } if + pop pop + } forall + end + newpath +} def +/terminate +{ + end + end +} def +/_ +null def +/ddef +{ + Adobe_Illustrator_AI5_vars 3 1 roll put +} def +/xput +{ + dup load dup length exch maxlength eq + { + dup dup load dup + length 2 mul dict copy def + } if + load begin + def + end +} def +/npop +{ + { + pop + } repeat +} def +/hswj +{ + dup stringwidth 3 2 roll + { + _hvwb eq { exch _hvcx add exch _hvcy add } if + exch _hvax add exch _hvay add + } cforall +} def +/vswj +{ + 0 0 3 -1 roll + { + dup 255 le + _charorientation 1 eq + and + { + dup cstring stringwidth 5 2 roll + _hvwb eq { exch _hvcy sub exch _hvcx sub } if + exch _hvay sub exch _hvax sub + 4 -1 roll sub exch + 3 -1 roll sub exch + } + { + _hvwb eq { exch _hvcy sub exch _hvcx sub } if + exch _hvay sub exch _hvax sub + _fontHeight sub + } ifelse + } cforall +} def +/swj +{ + 6 1 roll + /_hvay exch ddef + /_hvax exch ddef + /_hvwb exch ddef + /_hvcy exch ddef + /_hvcx exch ddef + _lineorientation 0 eq { hswj } { vswj } ifelse +} def +/sw +{ + 0 0 0 6 3 roll swj +} def +/vjss +{ + 4 1 roll + { + dup cstring + dup length 1 eq + _charorientation 1 eq + and + { + -90 rotate + currentpoint + _fontRotateAdjust add + moveto + gsave + false charpath currentpoint + 5 index setmatrix stroke + grestore + _fontRotateAdjust sub + moveto + _sp eq + { + 5 index 5 index rmoveto + } if + 2 copy rmoveto + 90 rotate + } + { + currentpoint + _fontHeight sub + 5 index sub + 3 index _sp eq + { + 9 index sub + } if + + currentpoint + exch 4 index stringwidth pop 2 div sub + exch _fontAscent sub + moveto + + gsave + 2 index false charpath + 6 index setmatrix stroke + grestore + + moveto pop pop + } ifelse + } cforall + 6 npop +} def +/hjss +{ + 4 1 roll + { + dup cstring + gsave + false charpath currentpoint + 5 index setmatrix stroke + grestore + moveto + _sp eq + { + 5 index 5 index rmoveto + } if + 2 copy rmoveto + } cforall + 6 npop +} def +/jss +{ + _lineorientation 0 eq { hjss } { vjss } ifelse +} def +/ss +{ + 0 0 0 7 3 roll jss +} def +/vjsp +{ + 4 1 roll + { + dup cstring + dup length 1 eq + _charorientation 1 eq + and + { + -90 rotate + currentpoint + _fontRotateAdjust add + moveto + false charpath + currentpoint + _fontRotateAdjust sub + moveto + _sp eq + { + 5 index 5 index rmoveto + } if + 2 copy rmoveto + 90 rotate + } + { + currentpoint + _fontHeight sub + 5 index sub + 3 index _sp eq + { + 9 index sub + } if + + currentpoint + exch 4 index stringwidth pop 2 div sub + exch _fontAscent sub + moveto + + 2 index false charpath + + moveto pop pop + } ifelse + } cforall + 6 npop +} def +/hjsp +{ + 4 1 roll + { + dup cstring + false charpath + _sp eq + { + 5 index 5 index rmoveto + } if + 2 copy rmoveto + } cforall + 6 npop +} def +/jsp +{ + matrix currentmatrix + _lineorientation 0 eq {hjsp} {vjsp} ifelse +} def +/sp +{ + matrix currentmatrix + 0 0 0 7 3 roll + _lineorientation 0 eq {hjsp} {vjsp} ifelse +} def +/pl +{ + transform + 0.25 sub round 0.25 add exch + 0.25 sub round 0.25 add exch + itransform +} def +/setstrokeadjust where +{ + pop true setstrokeadjust + /c + { + curveto + } def + /C + /c load def + /v + { + currentpoint 6 2 roll curveto + } def + /V + /v load def + /y + { + 2 copy curveto + } def + /Y + /y load def + /l + { + lineto + } def + /L + /l load def + /m + { + moveto + } def +} +{ + /c + { + pl curveto + } def + /C + /c load def + /v + { + currentpoint 6 2 roll pl curveto + } def + /V + /v load def + /y + { + pl 2 copy curveto + } def + /Y + /y load def + /l + { + pl lineto + } def + /L + /l load def + /m + { + pl moveto + } def +} ifelse +/d +{ + setdash +} def +/cf +{ +} def +/i +{ + dup 0 eq + { + pop cf + } if + setflat +} def +/j +{ + setlinejoin +} def +/J +{ + setlinecap +} def +/M +{ + setmiterlimit +} def +/w +{ + setlinewidth +} def +/XR +{ + 0 ne + /_eo exch ddef +} def +/H +{ +} def +/h +{ + closepath +} def +/N +{ + _pola 0 eq + { + _doClip 1 eq + { + _eo {eoclip} {clip} ifelse /_doClip 0 ddef + } if + newpath + } + { + /CRender + { + N + } ddef + } ifelse +} def +/n +{ + N +} def +/F +{ + _pola 0 eq + { + _doClip 1 eq + { + gsave _pf grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _fc + /_doClip 0 ddef + } + { + _pf + } ifelse + } + { + /CRender + { + F + } ddef + } ifelse +} def +/f +{ + closepath + F +} def +/S +{ + _pola 0 eq + { + _doClip 1 eq + { + gsave _ps grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc + /_doClip 0 ddef + } + { + _ps + } ifelse + } + { + /CRender + { + S + } ddef + } ifelse +} def +/s +{ + closepath + S +} def +/B +{ + _pola 0 eq + { + _doClip 1 eq + gsave F grestore + { + gsave S grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc + /_doClip 0 ddef + } + { + S + } ifelse + } + { + /CRender + { + B + } ddef + } ifelse +} def +/b +{ + closepath + B +} def +/W +{ + /_doClip 1 ddef +} def +/* +{ + count 0 ne + { + dup type /stringtype eq + { + pop + } if + } if + newpath +} def +/u +{ +} def +/U +{ +} def +/q +{ + _pola 0 eq + { + gsave + } if +} def +/Q +{ + _pola 0 eq + { + grestore + } if +} def +/*u +{ + _pola 1 add /_pola exch ddef +} def +/*U +{ + _pola 1 sub /_pola exch ddef + _pola 0 eq + { + CRender + } if +} def +/D +{ + pop +} def +/*w +{ +} def +/*W +{ +} def +/` +{ + /_i save ddef + clipForward? + { + nulldevice + } if + 6 1 roll 4 npop + concat pop + userdict begin + /showpage + { + } def + 0 setgray + 0 setlinecap + 1 setlinewidth + 0 setlinejoin + 10 setmiterlimit + [] 0 setdash + /setstrokeadjust where {pop false setstrokeadjust} if + newpath + 0 setgray + false setoverprint +} def +/~ +{ + end + _i restore +} def +/_rgbtocmyk +{ + 3 + { + 1 exch sub 3 1 roll + } repeat + 3 copy 1 4 1 roll + 3 + { + 3 index 2 copy gt + { + exch + } if + pop 4 1 roll + } repeat + pop pop pop + 4 1 roll + 3 + { + 3 index sub + 3 1 roll + } repeat + 4 -1 roll +} def +/setrgbfill +{ + _rgbf astore pop + /_fc + { + _lp /fill ne + { + _of setoverprint + _rgbf aload pop setrgbcolor + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + hvashow + } ddef + /_pjsf + { + _fc + hvawidthshow + } ddef + /_lp /none ddef +} def +/setrgbstroke +{ + _rgbs astore pop + /_sc + { + _lp /stroke ne + { + _os setoverprint + _rgbs aload pop setrgbcolor + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/O +{ + 0 ne + /_of exch ddef + /_lp /none ddef +} def +/R +{ + 0 ne + /_os exch ddef + /_lp /none ddef +} def +/g +{ + /_gf exch ddef + /_fc + { + _lp /fill ne + { + _of setoverprint + _gf setgray + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + hvashow + } ddef + /_pjsf + { + _fc + hvawidthshow + } ddef + /_lp /none ddef +} def +/G +{ + /_gs exch ddef + /_sc + { + _lp /stroke ne + { + _os setoverprint + _gs setgray + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/k +{ + _cf astore pop + /_fc + { + _lp /fill ne + { + _of setoverprint + _cf aload pop setcmykcolor + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + hvashow + } ddef + /_pjsf + { + _fc + hvawidthshow + } ddef + /_lp /none ddef +} def +/K +{ + _cs astore pop + /_sc + { + _lp /stroke ne + { + _os setoverprint + _cs aload pop setcmykcolor + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/Xa +{ + _?cmyk { + 3 npop k + }{ + setrgbfill 4 npop + } ifelse +} def +/XA +{ + _?cmyk { + 3 npop K + }{ + setrgbstroke 4 npop + } ifelse +} def +/Xs +{ + /_gf exch ddef + 5 npop + /_fc + { + _lp /fill ne + { + _of setoverprint + _gf setAIseparationgray + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + hvashow + } ddef + /_pjsf + { + _fc + hvawidthshow + } ddef + /_lp /none ddef +} def +/XS +{ + /_gs exch ddef + 5 npop + /_sc + { + _lp /stroke ne + { + _os setoverprint + _gs setAIseparationgray + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/Xx +{ + exch + /_gf exch ddef + 0 eq { + findcmykcustomcolor + }{ + _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse + { + 4 1 roll 3 npop + findcmykcustomcolor + }{ + 8 -4 roll 4 npop + findrgbcustomcolor + } ifelse + } ifelse + /_if exch ddef + /_fc + { + _lp /fill ne + { + _of setoverprint + _if _gf 1 exch sub setcustomcolor + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + hvashow + } ddef + /_pjsf + { + _fc + hvawidthshow + } ddef + /_lp /none ddef +} def +/XX +{ + exch + /_gs exch ddef + 0 eq { + findcmykcustomcolor + }{ + _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse + { + 4 1 roll 3 npop + findcmykcustomcolor + }{ + 8 -4 roll 4 npop + findrgbcustomcolor + } ifelse + } ifelse + /_is exch ddef + /_sc + { + _lp /stroke ne + { + _os setoverprint + _is _gs 1 exch sub setcustomcolor + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/x +{ + /_gf exch ddef + findcmykcustomcolor + /_if exch ddef + /_fc + { + _lp /fill ne + { + _of setoverprint + _if _gf 1 exch sub setcustomcolor + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + hvashow + } ddef + /_pjsf + { + _fc + hvawidthshow + } ddef + /_lp /none ddef +} def +/X +{ + /_gs exch ddef + findcmykcustomcolor + /_is exch ddef + /_sc + { + _lp /stroke ne + { + _os setoverprint + _is _gs 1 exch sub setcustomcolor + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/XK +{ + 3 -1 roll pop + 0 eq + { + 1 exch sub + 3 {dup 3 1 roll mul 5 1 roll} repeat + mul 4 1 roll + K + } + { + 1 exch sub 4 1 roll + 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat + 4 -1 roll pop + XA + } ifelse +} def +/Xk +{ + 3 -1 roll pop + 0 eq + { + 1 exch sub + 3 {dup 3 1 roll mul 5 1 roll} repeat + mul 4 1 roll + k + } + { + 1 exch sub 4 1 roll + 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat + 4 -1 roll pop + Xa + } ifelse +} def +/A +{ + pop +} def +/annotatepage +{ +userdict /annotatepage 2 copy known {get exec} {pop pop} ifelse +} def +/XT { + pop pop +} def +/Xt { + pop +} def +/discard +{ + save /discardSave exch store + discardDict begin + /endString exch store + gt38? + { + 2 add + } if + load + stopped + pop + end + discardSave restore +} bind def +userdict /discardDict 7 dict dup begin +put +/pre38Initialize +{ + /endStringLength endString length store + /newBuff buffer 0 endStringLength getinterval store + /newBuffButFirst newBuff 1 endStringLength 1 sub getinterval store + /newBuffLast newBuff endStringLength 1 sub 1 getinterval store +} def +/shiftBuffer +{ + newBuff 0 newBuffButFirst putinterval + newBuffLast 0 + currentfile read not + { + stop + } if + put +} def +0 +{ + pre38Initialize + mark + currentfile newBuff readstring exch pop + { + { + newBuff endString eq + { + cleartomark stop + } if + shiftBuffer + } loop + } + { + stop + } ifelse +} def +1 +{ + pre38Initialize + /beginString exch store + mark + currentfile newBuff readstring exch pop + { + { + newBuff beginString eq + { + /layerCount dup load 1 add store + } + { + newBuff endString eq + { + /layerCount dup load 1 sub store + layerCount 0 eq + { + cleartomark stop + } if + } if + } ifelse + shiftBuffer + } loop + } if +} def +2 +{ + mark + { + currentfile buffer {readline} stopped { + % assume error was due to overfilling the buffer + }{ + not + { + stop + } if + endString eq { + cleartomark stop + } if + }ifelse + } loop +} def +3 +{ + /beginString exch store + /layerCnt 1 store + mark + { + currentfile buffer {readline} stopped { + % assume error was due to overfilling the buffer + }{ + not + { + stop + } if + dup beginString eq + { + pop /layerCnt dup load 1 add store + } + { + endString eq + { + layerCnt 1 eq + { + cleartomark stop + } + { + /layerCnt dup load 1 sub store + } ifelse + } if + } ifelse + }ifelse + } loop +} def +end +userdict /clipRenderOff 15 dict dup begin +put +{ + /n /N /s /S /f /F /b /B +} +{ + { + _doClip 1 eq + { + /_doClip 0 ddef _eo {eoclip} {clip} ifelse + } if + newpath + } def +} forall +/Tr /pop load def +/Bb {} def +/BB /pop load def +/Bg {12 npop} def +/Bm {6 npop} def +/Bc /Bm load def +/Bh {4 npop} def +end +/Lb +{ + 6 npop + 7 2 roll + 5 npop + 0 eq + { + 0 eq + { + (%AI5_BeginLayer) 1 (%AI5_EndLayer--) discard + } + { + + /clipForward? true def + + /Tx /pop load def + /Tj /pop load def + + currentdict end clipRenderOff begin begin + } ifelse + } + { + 0 eq + { + save /discardSave exch store + } if + } ifelse +} bind def +/LB +{ + discardSave dup null ne + { + restore + } + { + pop + clipForward? + { + currentdict + end + end + begin + + /clipForward? false ddef + } if + } ifelse +} bind def +/Pb +{ + pop pop + 0 (%AI5_EndPalette) discard +} bind def +/Np +{ + 0 (%AI5_End_NonPrinting--) discard +} bind def +/Ln /pop load def +/Ap +/pop load def +/Ar +{ + 72 exch div + 0 dtransform dup mul exch dup mul add sqrt + dup 1 lt + { + pop 1 + } if + setflat +} def +/Mb +{ + q +} def +/Md +{ +} def +/MB +{ + Q +} def +/nc 4 dict def +nc begin +/setgray +{ + pop +} bind def +/setcmykcolor +{ + 4 npop +} bind def +/setrgbcolor +{ + 3 npop +} bind def +/setcustomcolor +{ + 2 npop +} bind def +currentdict readonly pop +end +/XP +{ + 4 npop +} bind def +/XD +{ + pop +} bind def +end +setpacking +%%EndResource +%%BeginResource: procset Adobe_cshow 2.0 8 +%%Title: (Writing System Operators) +%%Version: 2.0 8 +%%CreationDate: (1/23/89) () +%%Copyright: ((C) 1992-1996 Adobe Systems Incorporated All Rights Reserved) +currentpacking true setpacking +userdict /Adobe_cshow 14 dict dup begin put +/initialize +{ + Adobe_cshow begin + Adobe_cshow + { + dup xcheck + { + bind + } if + pop pop + } forall + end + Adobe_cshow begin +} def +/terminate +{ +currentdict Adobe_cshow eq + { + end + } if +} def +/cforall +{ + /_lobyte 0 ddef + /_hibyte 0 ddef + /_cproc exch ddef + /_cscript currentfont /FontScript known { currentfont /FontScript get } { -1 } ifelse ddef + { + /_lobyte exch ddef + _hibyte 0 eq + _cscript 1 eq + _lobyte 129 ge _lobyte 159 le and + _lobyte 224 ge _lobyte 252 le and or and + _cscript 2 eq + _lobyte 161 ge _lobyte 254 le and and + _cscript 3 eq + _lobyte 161 ge _lobyte 254 le and and + _cscript 25 eq + _lobyte 161 ge _lobyte 254 le and and + _cscript -1 eq + or or or or and + { + /_hibyte _lobyte ddef + } + { + _hibyte 256 mul _lobyte add + _cproc + /_hibyte 0 ddef + } ifelse + } forall +} def +/cstring +{ + dup 256 lt + { + (s) dup 0 4 3 roll put + } + { + dup 256 idiv exch 256 mod + (hl) dup dup 0 6 5 roll put 1 4 3 roll put + } ifelse +} def +/clength +{ + 0 exch + { 256 lt { 1 } { 2 } ifelse add } cforall +} def +/hawidthshow +{ + { + dup cstring + show + _hvax _hvay rmoveto + _hvwb eq { _hvcx _hvcy rmoveto } if + } cforall +} def +/vawidthshow +{ + { + dup 255 le + _charorientation 1 eq + and + { + -90 rotate + 0 _fontRotateAdjust rmoveto + cstring + _hvcx _hvcy _hvwb _hvax _hvay 6 -1 roll awidthshow + 0 _fontRotateAdjust neg rmoveto + 90 rotate + } + { + currentpoint + _fontHeight sub + exch _hvay sub exch _hvax sub + 2 index _hvwb eq { exch _hvcy sub exch _hvcx sub } if + 3 2 roll + cstring + dup stringwidth pop 2 div neg _fontAscent neg rmoveto + show + moveto + } ifelse + } cforall +} def +/hvawidthshow +{ + 6 1 roll + /_hvay exch ddef + /_hvax exch ddef + /_hvwb exch ddef + /_hvcy exch ddef + /_hvcx exch ddef + _lineorientation 0 eq { hawidthshow } { vawidthshow } ifelse +} def +/hvwidthshow +{ + 0 0 3 -1 roll hvawidthshow +} def +/hvashow +{ + 0 0 0 6 -3 roll hvawidthshow +} def +/hvshow +{ + 0 0 0 0 0 6 -1 roll hvawidthshow +} def +currentdict readonly pop end +setpacking +%%EndResource +%%BeginResource: procset Adobe_shading_AI8 1.0 0 +%%Title: (Adobe Illustrator 8 Shading Procset) +%%Version: 1.0 0 +%%CreationDate: (12/17/97) () +%%Copyright: ((C) 1987-1997 Adobe Systems Incorporated All Rights Reserved) +userdict /defaultpacking currentpacking put true setpacking +userdict /Adobe_shading_AI8 10 dict dup begin put +/initialize { + Adobe_shading_AI8 begin + Adobe_shading_AI8 bdprocs + Mesh /initialize get exec +} def +/terminate { + currentdict Adobe_shading_AI8 eq { + end + } if +} def +/bdprocs { + { + dup xcheck 1 index type /arraytype eq and { + bind + } if + pop pop + } forall +} def +/X! {pop} def +/X# {pop pop} def +/Mesh 40 dict def +Mesh begin +/initialize { + Mesh bdprocs + Mesh begin + /emulate? /AI8MeshEmulation where { + pop AI8MeshEmulation + }{ + systemdict /shfill known not + } ifelse def + end +} def +/bd { + shadingdict begin +} def +/paint { + emulate? { + end + }{ + /_lp /none ddef _fc /_lp /none ddef + + /AIColorSpace AIColorSpace tocolorspace store + /ColorSpace AIColorSpace topsspace store + + version_ge_3010.106 not systemdict /setsmoothness known and { + 0.0001 setsmoothness + } if + + composite? { + /DataSource getdatasrc def + Matrix concat + currentdict end + shfill + }{ + AIColorSpace makesmarks AIPlateList markingplate and not isoverprint and { + end + }{ + /ColorSpace /DeviceGray store + /Decode [0 1 0 1 0 1] store + /DataSource getplatesrc def + Matrix concat + currentdict end + shfill + } ifelse + } ifelse + } ifelse +} def +/shadingdict 12 dict def +shadingdict begin + /ShadingType 6 def + /BitsPerCoordinate 16 def + /BitsPerComponent 8 def + /BitsPerFlag 8 def +end +/datafile null def +/databuf 256 string def +/dataptr 0 def +/srcspace null def +/srcchannels 0 def +/dstchannels 0 def +/dstplate 0 def +/srctodstcolor null def +/getplatesrc { + /srcspace AIColorSpace store + /srcchannels AIColorSpace getnchannels store + /dstchannels 1 store + /dstplate getplateindex store + /srctodstcolor srcspace makesmarks { + dstplate 4 eq { + {1 exch sub} + }{ + {srcspace tocmyk 3 dstplate sub index 1 exch sub 5 1 roll 4 {pop} repeat} + } ifelse + }{ + {srcchannels {pop} repeat 1} + } ifelse store + /datafile getdatasrc store + /rdpatch168 load DataLength () /SubFileDecode filter +} def +/getdatasrc { + /rdcmntline load /ASCII85Decode filter +} def +/rdpatch168 { + /dataptr 0 store + 49 rdcount + 4 { + dup {pop srcchannels getint8} if + dup {pop srctodstcolor dstchannels putint8 true} if + } repeat + {databuf 0 dataptr getinterval}{()} ifelse +} def +/rdpatch3216 { + /dataptr 0 store + 97 rdcount + 4 { + dup {pop srcchannels getint16} if + dup {pop srctodstcolor dstchannels putint16 true} if + } repeat + {databuf 0 dataptr getinterval}{()} ifelse +} def +/rdcount { + dup 0 gt { + datafile databuf dataptr 4 -1 roll getinterval readstring + exch length dataptr add /dataptr exch store + }{ + true + } ifelse +} def +/getint8 { + mark true 3 -1 roll + { + dup {pop datafile read} if + dup {pop 255 div true} if + } repeat + { + counttomark 1 add -1 roll pop true + }{ + cleartomark false + } ifelse +} def +/putint8 { + dup dataptr add /dataptr exch store + dataptr exch + { + 1 sub exch + 255 mul cvi + databuf 2 index + 3 -1 roll put + } repeat + pop +} def +/getint16 { + mark true 3 -1 roll + { + dup {pop datafile read} if + dup {pop 256 mul datafile read} if + dup {pop add 65535 div true} if + } repeat + { + counttomark 1 add -1 roll pop true + }{ + cleartomark false + } ifelse +} def +/putint16 { + dup 2 mul dataptr add /dataptr exch store + dataptr exch + { + 2 sub exch + 65535 mul cvi dup + 256 idiv databuf 3 index 3 -1 roll put + 256 mod databuf 2 index 1 add 3 -1 roll put + } repeat + pop +} def +/srcbuf 256 string def +/rdcmntline { + currentfile srcbuf readline pop + (%) anchorsearch {pop} if +} def +/getplateindex { + 0 [cyan? magenta? yellow? black? customColor?] {{exit} if 1 add} forall +} def +/aicsarray 4 array def +/aicsaltvals 4 array def +/aicsaltcolr aicsaltvals def +/tocolorspace { + dup type /arraytype eq { + mark exch aload pop + aicsarray 0 3 -1 roll put + aicsarray 1 3 -1 roll put + dup aicsarray 2 3 -1 roll put + gettintxform aicsarray 3 3 -1 roll put + counttomark aicsaltvals 0 3 -1 roll getinterval /aicsaltcolr exch store + aicsaltcolr astore pop pop + aicsarray + } if +} def +/subtintxform {aicsaltcolr {1 index mul exch} forall pop} def +/addtintxform {aicsaltcolr {1 sub 1 index mul 1 add exch} forall pop} def +/gettintxform { + /DeviceRGB eq {/addtintxform}{/subtintxform} ifelse load +} def +/getnchannels { + dup type /arraytype eq {0 get} if + colorspacedict exch get begin Channels end +} def +/makesmarks { + composite? { + pop true + }{ + dup dup type /arraytype eq {0 get} if + colorspacedict exch get begin MarksPlate end + } ifelse +} def +/markingplate { + composite? { + pop true + }{ + dup type /arraytype eq { + dup length getplateindex gt {getplateindex get}{pop false} ifelse + } if + } ifelse +} def +/tocmyk { + dup dup type /arraytype eq {0 get} if + colorspacedict exch get begin ToCMYK end +} def +/topsspace { + dup dup type /arraytype eq {0 get} if + colorspacedict exch get begin ToPSSpace end +} def +/colorspacedict 5 dict dup begin + /DeviceGray 4 dict dup begin + /Channels 1 def + /MarksPlate {pop black?} def + /ToCMYK {pop 1 exch sub 0 0 0 4 -1 roll} def + /ToPSSpace {} def + end def + /DeviceRGB 4 dict dup begin + /Channels 3 def + /MarksPlate {pop isCMYKSep?} def + /ToCMYK {pop _rgbtocmyk} def + /ToPSSpace {} def + end def + /DeviceCMYK 4 dict dup begin + /Channels 4 def + /MarksPlate {pop isCMYKSep?} def + /ToCMYK {pop} def + /ToPSSpace {} def + end def + /Separation 4 dict dup begin + /Channels 1 def + /MarksPlate { + /findcmykcustomcolor where { + pop dup 1 exch ToCMYK 5 -1 roll 1 get + findcmykcustomcolor 1 setcustomcolor + systemdict /currentgray get exec + 1 ne + }{ + pop false + } ifelse + } def + /ToCMYK { + dup 2 get mark exch 4 2 roll + 3 get exec + counttomark -1 roll tocmyk + 5 -1 roll pop + } def + /ToPSSpace {} def + end def + /Process 4 dict dup begin + /Channels 1 def + /MarksPlate { + isCMYKSep? { + 1 exch ToCMYK 4 array astore getplateindex get 0 ne + }{ + pop false + } ifelse + } def + /ToCMYK { + dup 2 get mark exch 4 2 roll + 3 get exec + counttomark -1 roll tocmyk + 5 -1 roll pop + } def + /ToPSSpace { + 4 array copy dup 0 /Separation put + } def + end def +end def +/isoverprint { + /currentoverprint where {pop currentoverprint}{_of} ifelse +} def +/version_ge_3010.106 { + version {cvr} stopped { + pop + false + }{ + 3010.106 ge + } ifelse +} def +end +end +defaultpacking setpacking +%%EndResource +%%EndProlog +%%BeginSetup +userdict /_useSmoothShade false put +userdict /_aicmykps false put +userdict /_forceToCMYK false put +Adobe_level2_AI5 /initialize get exec +Adobe_cshow /initialize get exec +Adobe_ColorImage_AI6 /initialize get exec +Adobe_shading_AI8 /initialize get exec +Adobe_Illustrator_AI5 /initialize get exec +%AI5_Begin_NonPrinting +Np +%AI3_BeginPattern: (Brick) +(Brick) 0 0 72 72 [ +%AI3_Tile +(0 O 0 R 0.3 0.85 0.85 0 k + 0.3 0.85 0.85 0 K +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +0 0 m +0 72 L +72 72 L +72 0 L +0 0 L +f %AI6_EndPatternLayer +) & +(0 O 0 R 1 g + 1 G +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 0.3 w 4 M []0 d %AI3_Note: 0 D +0 XR +0 68.4097 m +72 68.4097 l +S 0 61.209 m +72 61.209 L +S 0 54.0088 m +72 54.0088 L +S 0 46.8076 m +72 46.8076 L +S 0 39.6084 m +72 39.6084 L +S 0 32.4072 m +72 32.4072 L +S 0 25.207 m +72 25.207 L +S 0 18.0059 m +72 18.0059 L +S 0 10.8057 m +72 10.8057 L +S 0 3.6064 m +72 3.6064 L +S 68.4102 68.4097 m +68.4102 61.2217 l +S 54.0098 68.4097 m +54.0098 61.2217 L +S 39.6094 68.4097 m +39.6094 61.2217 L +S 25.21 68.4097 m +25.21 61.2217 L +S 10.8105 68.4097 m +10.8105 61.2217 L +S 68.4102 53.9717 m +68.4102 46.7842 l +S 54.0098 53.9717 m +54.0098 46.7842 L +S 39.6094 53.9717 m +39.6094 46.7842 L +S 25.21 53.9717 m +25.21 46.7842 L +S 10.8105 53.9717 m +10.8105 46.7842 L +S 68.4102 39.5967 m +68.4102 32.4092 l +S 54.0098 39.5967 m +54.0098 32.4092 L +S 39.6094 39.5967 m +39.6094 32.4092 L +S 25.21 39.5967 m +25.21 32.4092 L +S 10.8105 39.5967 m +10.8105 32.4092 L +S 68.4102 25.2217 m +68.4102 18.0342 l +S 54.0098 25.2217 m +54.0098 18.0342 L +S 39.6094 25.2217 m +39.6094 18.0342 L +S 25.21 25.2217 m +25.21 18.0342 L +S 10.8105 25.2217 m +10.8105 18.0342 L +S 68.4102 10.7842 m +68.4102 3.5967 l +S 54.0098 10.7842 m +54.0098 3.5967 L +S 39.6094 10.7842 m +39.6094 3.5967 L +S 25.21 10.7842 m +25.21 3.5967 L +S 10.8105 10.7842 m +10.8105 3.5967 L +S 61.1973 3.5967 m +61.1973 0 L +S 46.7969 3.5967 m +46.7969 0 L +S 32.3965 3.5967 m +32.3965 0 L +S 17.9971 3.5967 m +17.9971 0 L +S 3.5967 3.5967 m +3.5967 0 l +S 61.1973 18.0342 m +61.1973 10.8467 L +S 46.7969 18.0342 m +46.7969 10.8467 L +S 32.3965 18.0342 m +32.3965 10.8467 L +S 17.9971 18.0342 m +17.9971 10.8467 L +S 3.5967 18.0342 m +3.5967 10.8467 l +S 61.1973 32.4092 m +61.1973 25.2217 L +S 46.7969 32.4092 m +46.7969 25.2217 L +S 17.9971 32.4092 m +17.9971 25.2217 L +S 3.5967 32.4092 m +3.5967 25.2217 l +S 61.1973 46.7842 m +61.1973 39.5967 L +S 46.7969 46.7842 m +46.7969 39.5967 L +S 32.3965 46.7842 m +32.3965 39.5967 L +S 17.9971 46.7842 m +17.9971 39.5967 L +S 3.5967 46.7842 m +3.5967 39.5967 l +S 61.1973 61.2217 m +61.1973 54.0347 L +S 46.7969 61.2217 m +46.7969 54.0347 L +S 32.3965 61.2217 m +32.3965 54.0347 L +S 17.9971 61.2217 m +17.9971 54.0347 L +S 3.5967 61.2217 m +3.5967 54.0347 l +S 61.1973 71.959 m +61.1973 68.4717 L +S 46.7969 71.959 m +46.7969 68.4717 L +S 32.3965 71.959 m +32.3965 68.4717 L +S 17.9971 71.959 m +17.9971 68.4717 L +S 3.5967 71.959 m +3.5967 68.4717 l +S 32.3965 32.4092 m +32.3965 25.2217 L +S %AI6_EndPatternLayer +) & +] E +%AI3_EndPattern +%AI3_BeginPattern: (Confetti) +(Confetti) 4.85 3.617 76.85 75.617 [ +%AI3_Tile +(0 O 0 R 1 g + 1 G +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +4.85 3.617 m +4.85 75.617 L +76.85 75.617 L +76.85 3.617 L +4.85 3.617 L +f %AI6_EndPatternLayer +) & +(0 O 0 R 0 g + 0 G +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 0.3 w 4 M []0 d %AI3_Note: 0 D +0 XR +10.6 64.867 m +7.85 62.867 l +S 9.1 8.617 m +6.85 6.867 l +S 78.1 68.617 m +74.85 67.867 l +S 76.85 56.867 m +74.35 55.117 l +S 79.6 51.617 m +76.6 51.617 l +S 76.35 44.117 m +73.6 45.867 l +S 78.6 35.867 m +76.6 34.367 l +S 76.1 23.867 m +73.35 26.117 l +S 78.1 12.867 m +73.85 13.617 l +S 68.35 14.617 m +66.1 12.867 l +S 76.6 30.617 m +73.6 30.617 l +S 62.85 58.117 m +60.956 60.941 l +S 32.85 59.617 m +31.196 62.181 l +S 47.891 64.061 m +49.744 66.742 l +S 72.814 2.769 m +73.928 5.729 l +S 67.976 2.633 m +67.35 5.909 l +S 61.85 27.617 m +59.956 30.441 l +S 53.504 56.053 m +51.85 58.617 l +S 52.762 1.779 m +52.876 4.776 l +S 45.391 5.311 m +47.244 7.992 l +S 37.062 3.375 m +35.639 5.43 l +S 55.165 34.828 m +57.518 37.491 l +S 20.795 3.242 m +22.12 5.193 l +S 14.097 4.747 m +15.008 8.965 l +S 9.736 1.91 m +8.073 4.225 l +S 31.891 5.573 m +32.005 8.571 l +S 12.1 70.367 m +15.6 68.867 l +S 9.35 54.867 m +9.6 58.117 l +S 12.85 31.867 m +14.35 28.117 l +S 10.1 37.367 m +12.35 41.117 l +S 34.1 71.117 m +31.85 68.617 l +S 38.35 71.117 m +41.6 68.367 l +S 55.1 71.117 m +58.35 69.117 l +S 57.35 65.117 m +55.35 61.867 l +S 64.35 66.367 m +69.35 68.617 l +S 71.85 62.867 m +69.35 61.117 l +S 23.6 70.867 m +23.6 67.867 l +S 20.6 65.867 m +17.35 65.367 l +S 24.85 61.367 m +25.35 58.117 l +S 25.85 65.867 m +29.35 66.617 l +S 14.1 54.117 m +16.85 56.117 l +S 12.35 11.617 m +12.6 15.617 l +S 12.1 19.867 m +14.35 22.367 l +S 26.1 9.867 m +23.6 13.367 l +S 34.6 47.117 m +32.1 45.367 l +S 62.6 41.867 m +59.85 43.367 l +S 31.6 35.617 m +27.85 36.367 l +S 36.35 26.117 m +34.35 24.617 l +S 33.85 14.117 m +31.1 16.367 l +S 37.1 9.867 m +35.1 11.117 l +S 34.35 20.867 m +31.35 20.867 l +S 44.6 56.617 m +42.1 54.867 l +S 47.35 51.367 m +44.35 51.367 l +S 44.1 43.867 m +41.35 45.617 l +S 43.35 33.117 m +42.6 30.617 l +S 43.85 23.617 m +41.1 25.867 l +S 44.35 15.617 m +42.35 16.867 l +S 67.823 31.1 m +64.823 31.1 l +S 27.1 32.617 m +29.6 30.867 l +S 31.85 55.117 m +34.85 55.117 l +S 19.6 40.867 m +22.1 39.117 l +S 16.85 35.617 m +19.85 35.617 l +S 20.1 28.117 m +22.85 29.867 l +S 52.1 42.617 m +54.484 44.178 l +S 52.437 50.146 m +54.821 48.325 l +S 59.572 54.133 m +59.35 51.117 l +S 50.185 10.055 m +53.234 9.928 l +S 51.187 15.896 m +53.571 14.075 l +S 58.322 19.883 m +59.445 16.823 l +S 53.1 32.117 m +50.6 30.367 l +S 52.85 24.617 m +49.6 25.617 l +S 61.85 9.117 m +59.1 10.867 l +S 69.35 34.617 m +66.6 36.367 l +S 67.1 23.617 m +65.1 22.117 l +S 24.435 46.055 m +27.484 45.928 l +S 25.437 51.896 m +27.821 50.075 l +S 62.6 47.117 m +65.321 46.575 l +S 19.85 19.867 m +20.35 16.617 l +S 21.85 21.867 m +25.35 22.617 l +S 37.6 62.867 m +41.6 62.117 l +S 38.323 42.1 m +38.823 38.6 l +S 69.35 52.617 m +66.85 53.867 l +S 14.85 62.117 m +18.1 59.367 l +S 9.6 46.117 m +7.1 44.367 l +S 20.6 51.617 m +18.6 50.117 l +S 46.141 70.811 m +47.994 73.492 l +S 69.391 40.561 m +71.244 43.242 l +S 38.641 49.311 m +39.35 52.117 l +S 25.141 16.811 m +25.85 19.617 l +S 36.6 32.867 m +34.6 31.367 l +S 6.1 68.617 m +2.85 67.867 l +S 4.85 56.867 m +2.35 55.117 l +S 7.6 51.617 m +4.6 51.617 l +S 6.6 35.867 m +4.6 34.367 l +S 6.1 12.867 m +1.85 13.617 l +S 4.6 30.617 m +1.6 30.617 l +S 72.814 74.769 m +73.928 77.729 l +S 67.976 74.633 m +67.35 77.909 l +S 52.762 73.779 m +52.876 76.776 l +S 37.062 75.375 m +35.639 77.43 l +S 20.795 75.242 m +22.12 77.193 l +S 9.736 73.91 m +8.073 76.225 l +S 10.1 23.617 m +6.35 24.367 l +S 73.217 18.276 m +71.323 21.1 l +S 28.823 39.6 m +29.505 42.389 l +S 49.6 38.617 m +47.6 37.117 l +S 60.323 73.6 m +62.323 76.6 l +S 60.323 1.6 m +62.323 4.6 l +S %AI6_EndPatternLayer +) & +] E +%AI3_EndPattern +%AI3_BeginPattern: (Leaves - Fall ) +(Leaves - Fall ) 0 0 64.0781 78.9336 [ +%AI3_Tile +(0 O 0 R 0.05 0.2 1 0 k + 0.05 0.2 1 0 K +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +64.0781 78.9336 m +64.0781 0 L +0 0 L +0 78.9336 L +64.0781 78.9336 L +f %AI6_EndPatternLayer +) & +(0 O 0 R 0.83 0 1 0 k + 0.83 0 1 0 K +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 1 D +0 XR +29.7578 0.9902 m +30.4346 1.1914 30.7246 1.3428 V +29.2559 4.0547 33.707 8.3359 34.627 9.0762 C +35.2275 8.8506 35.3477 6.3184 34.6699 4.9805 C +35.5137 5.1035 37.7031 3.7256 38.4609 2.4365 C +38.5254 3.125 40.0957 6.0664 40.9219 6.4434 C +40.002 6.8408 39.3359 8.3135 38.5742 9.7617 C +39.5957 9.9287 40.9961 9.0078 42.4668 8.1025 C +42.9814 8.9043 44.3555 9.875 45.6143 10.3916 C +44.5264 11.0781 44.0313 11.8203 43.5352 13.2793 C +42.4922 12.7139 40.3057 12.5645 39.7764 12.8516 C +40.291 13.9648 42.5371 14.5078 43.2676 14.4551 C +43.0137 15.3164 42.8652 17.4697 43.0391 20.0625 C +41.3789 18.7461 39.834 17.4297 38.1738 17.4883 C +38.4434 16.0664 37.8076 14.2607 37.4307 13.7676 C +36.8574 14.5117 36.4463 15.3389 36.8008 17.3164 C +35.3486 17.8008 34.1113 18.3467 32.7373 19.6045 C +32.7373 17.7734 32.166 16.5723 31.2969 15.2959 C +32.5576 14.8076 33.8301 13.6045 33.8252 12.5664 C +32.9775 12.7178 31.2852 13.4619 30.793 14.4551 C +30.0742 13.707 28.3906 12.3984 26.7871 12.3945 C +27.9746 11.5391 28.8945 10.5059 28.9893 8.5938 C +30.2422 9.5645 32.6953 10.1797 34.0752 9.582 C +29.2344 5.3457 29.7031 2.3125 29.7578 0.9902 C +f 13.8525 29.9844 m +13.3281 29.5127 13.1309 29.25 V +15.623 27.4326 13.3691 21.6074 12.8555 20.5439 C +12.2168 20.4883 10.8096 23.2285 10.8457 24.7266 C +9.7129 23.9707 8.0488 24.0918 6.4463 24.3779 C +7.0186 23.2891 6.6172 21.3447 5.8164 20.5439 C +6.8184 20.5801 8.1699 19.8652 9.4785 18.8838 C +8.6436 18.0645 6.8164 18.2246 4.9004 18.8838 C +4.9004 17.5107 4.0781 15.7734 3.2412 14.5918 C +4.5576 14.6484 5.7031 13.9629 6.5605 12.9316 C +7.2256 14.5 9.2598 15.6133 10.166 15.5645 C +10.1826 14.1992 8.6094 12.1094 7.5879 11.7109 C +8.1875 11.041 9.207 9.5107 10.166 7.0947 C +10.9648 9.0205 12.1348 10.2627 13.3672 11.1953 C +12.2256 12.7578 12.3994 13.6289 12.7988 15.1074 C +13.541 14.5664 14.5723 14.1338 14.7441 12.1309 C +16.4609 12.416 17.5957 12.3447 19.0938 11.4434 C +18.6387 13.1055 18.6348 14.707 18.9551 16.4063 C +17.1055 16.2666 15.5449 16.4795 14.5156 17.9688 C +15.3457 18.1953 17.6055 18.2549 18.4795 17.3223 C +18.8066 18.3047 19.7012 19.7109 21.1475 20.4043 C +19.707 20.6641 18.7227 21.7637 17.8135 23.4492 C +17.1006 22.0332 14.873 20.3691 13.3711 20.3145 C +15.373 24.3779 15.373 27.2959 13.8525 29.9844 C +f 41.2324 26.0742 m +41.5518 26.7021 41.7549 26.959 V +44.1523 25.0176 48.958 28.3262 49.8535 29.0957 C +49.7432 29.7266 47.6182 30.8643 45.9004 29.834 C +46.3408 31.123 45.4395 33.084 44.2402 34.126 C +45.9805 34.0254 48.126 35.3867 48.6484 36.1289 C +48.8701 35.1514 50.0527 33.8809 51.3379 32.8672 C +51.6895 33.8398 50.9941 35.958 50.0781 37.5605 C +51.3125 38.0605 52.4248 38.9912 52.8828 40.25 C +53.3398 38.9336 54.3428 38.2598 55.6875 37.5039 C +54.5273 36.0762 53.7471 33.9023 54.0273 33.0391 C +55.3496 33.374 56.9209 36.0918 57.0439 37.1816 C +57.9189 36.415 59.4727 35.7285 62.0537 35.4219 C +60.3535 34.3438 59.9902 32.3516 59.4063 30.9219 C +58.2588 31.3682 56.0898 31.4277 55.1152 30.8643 C +55.8281 30.2852 57.168 29.7344 59.1777 29.7207 C +59.1777 28.1758 59.6406 27.043 60.8945 25.8281 C +59.1719 25.8418 57.0723 25.3555 55.5762 24.9629 C +55.3281 26.292 54.4844 27.8887 53.3398 28.2891 C +53.334 27.4277 53.5996 25.1797 54.4844 24.5117 C +53.6201 23.9443 52.3672 22.5674 51.9102 20.8496 C +51.2881 22.1758 50.4268 23.4805 48.5645 23.9238 C +49.749 24.9766 50.584 26.9941 50.25 28.4609 C +45.1973 24.4785 42.5215 25.7773 41.2324 26.0742 C +f 27.7578 38.7324 m +28.4346 38.9316 28.7246 39.084 V +27.2559 41.7969 31.707 46.0776 32.627 46.8169 C +33.2275 46.5918 33.3477 44.0586 32.6699 42.7227 C +33.5137 42.8457 35.7031 41.4678 36.4609 40.1787 C +36.5254 40.8652 38.0957 43.8066 38.9219 44.1846 C +38.002 44.582 37.3359 46.0547 36.5742 47.5039 C +37.5957 47.6709 38.9961 46.7485 40.4668 45.8438 C +40.9814 46.6445 42.3555 47.6177 43.6143 48.1328 C +42.5264 48.8198 42.0313 49.5615 41.5352 51.0205 C +40.4922 50.4556 38.3057 50.3057 37.7764 50.5938 C +38.291 51.7056 40.5371 52.2485 41.2676 52.1958 C +41.0137 53.0576 40.8652 55.2109 41.0391 57.8037 C +39.3789 56.4878 37.834 55.1719 36.1738 55.2285 C +36.4434 53.8076 35.8076 52.002 35.4307 51.5088 C +34.8574 52.2529 34.4463 53.0796 34.8008 55.0576 C +33.3486 55.5425 32.1113 56.0879 30.7373 57.3467 C +30.7373 55.5146 30.166 54.314 29.2969 53.0366 C +30.5576 52.5488 31.8301 51.3467 31.8252 50.3076 C +30.9775 50.46 29.2852 51.2036 28.793 52.1958 C +28.0742 51.4497 26.3906 50.1396 24.7871 50.1357 C +25.9746 49.2817 26.8945 48.2466 26.9893 46.335 C +28.2422 47.3057 30.6953 47.9209 32.0752 47.3237 C +27.2344 43.0869 27.7031 40.0547 27.7578 38.7324 C +f 13.5195 70.3916 m +12.9941 69.9209 12.7988 69.6587 V +15.2891 67.8418 13.0352 62.0146 12.5225 60.9517 C +11.8828 60.8955 10.4766 63.6367 10.5117 65.1348 C +9.3809 64.3789 7.7148 64.4995 6.1133 64.7856 C +6.6855 63.6987 6.2842 61.7529 5.4834 60.9517 C +6.4854 60.9878 7.8359 60.2729 9.1455 59.2925 C +8.3105 58.4717 6.4834 58.6338 4.5674 59.2925 C +4.5674 57.9189 3.7461 56.1816 2.9082 54.9995 C +4.2246 55.0576 5.3691 54.3706 6.2275 53.3408 C +6.8926 54.9097 8.9258 56.0215 9.832 55.9727 C +9.8496 54.6079 8.2764 52.5176 7.2539 52.1187 C +7.8545 51.4497 8.873 49.9189 9.832 47.5039 C +10.6309 49.4297 11.8008 50.6719 13.0342 51.6045 C +11.8926 53.1655 12.0664 54.0366 12.4648 55.5146 C +13.209 54.9746 14.2393 54.5415 14.4102 52.5386 C +16.127 52.8247 17.2637 52.7529 18.7598 51.8525 C +18.3057 53.5137 18.3027 55.1147 18.623 56.8149 C +16.7725 56.6748 15.2129 56.8887 14.1826 58.377 C +15.0117 58.6035 17.2725 58.6626 18.1465 57.731 C +18.4736 58.7129 19.3691 60.1187 20.8145 60.8125 C +19.375 61.0728 18.3896 62.1719 17.4805 63.8579 C +16.7676 62.4429 14.541 60.7769 13.0371 60.7227 C +15.041 64.7856 15.041 67.7046 13.5195 70.3916 C +f 41.2324 64.4824 m +41.5518 65.1113 41.7549 65.3682 V +44.1523 63.4272 48.958 66.7354 49.8535 67.5034 C +49.7432 68.1362 47.6182 69.2725 45.9004 68.2422 C +46.3408 69.5313 45.4395 71.4922 44.2402 72.5342 C +45.9805 72.4341 48.126 73.7954 48.6484 74.5371 C +48.8701 73.5601 50.0527 72.29 51.3379 71.2754 C +51.6895 72.249 50.9941 74.3662 50.0781 75.9683 C +51.3125 76.4692 52.4248 77.3994 52.8828 78.6582 C +53.3398 77.3423 54.3428 76.667 55.6875 75.9111 C +54.5273 74.4844 53.7471 72.3101 54.0273 71.4473 C +55.3496 71.7822 56.9209 74.5 57.0439 75.5903 C +57.9189 74.8232 59.4727 74.1372 62.0537 73.8311 C +60.3535 72.7534 59.9902 70.7612 59.4063 69.3301 C +58.2588 69.7773 56.0898 69.8364 55.1152 69.2725 C +55.8281 68.6934 57.168 68.1431 59.1777 68.1284 C +59.1777 66.583 59.6406 65.4512 60.8945 64.2373 C +59.1719 64.249 57.0723 63.7632 55.5762 63.3721 C +55.3281 64.7002 54.4844 66.2974 53.3398 66.6973 C +53.334 65.8364 53.5996 63.5874 54.4844 62.9214 C +53.6201 62.353 52.3672 60.9751 51.9102 59.2583 C +51.2881 60.583 50.4268 61.8882 48.5645 62.333 C +49.749 63.3862 50.584 65.4033 50.25 66.8691 C +45.1973 62.8872 42.5215 64.1851 41.2324 64.4824 C +f %AI6_EndPatternLayer +) & +] E +%AI3_EndPattern +%AI3_BeginPattern: (Stripes) +(Stripes) 8.45 4.6001 80.45 76.6001 [ +%AI3_Tile +(0 O 0 R 1 0.07 1 0 k + 1 0.07 1 0 K +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 3.6 w 4 M []0 d %AI3_Note: 0 D +0 XR +8.2 8.2 m +80.7 8.2 L +S 8.2 22.6001 m +80.7 22.6001 L +S 8.2 37.0002 m +80.7 37.0002 L +S 8.2 51.4 m +80.7 51.4 L +S 8.2 65.8001 m +80.7 65.8001 L +S 8.2 15.4 m +80.7 15.4 L +S 8.2 29.8001 m +80.7 29.8001 L +S 8.2 44.2 m +80.7 44.2 L +S 8.2 58.6001 m +80.7 58.6001 L +S 8.2 73.0002 m +80.7 73.0002 L +S %AI6_EndPatternLayer +) & +] E +%AI3_EndPattern +%AI5_End_NonPrinting-- +%AI5_Begin_NonPrinting +Np +%AI8_BeginBrushPattern +(New Pattern 1) +0 A +u 1 Ap +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7834.75 8587 m +-7834.75 8563 L +-7884.75 8563 L +-7884.75 8587 L +-7834.75 8587 L +n u 0 Ap +0 O +1 g +-7854.75 8585 m +-7866.96 8588.0527 -7875.4434 8578.0605 -7884.75 8570.9512 C +F -7844.75 8585 m +-7861.1279 8589.0947 -7870.8008 8569.7227 -7884.75 8565.3154 C +F -7884.75 8565 m +-7864.75 8560 -7854.75 8590 -7834.75 8585 C +F -7874.75 8565 m +-7858.3721 8560.9053 -7848.6992 8580.2773 -7834.75 8584.6846 C +F -7864.75 8565 m +-7852.54 8561.9473 -7844.0566 8571.9395 -7834.75 8579.0488 C +F -7844.75 8565 m +-7841.1279 8564.0947 -7837.835 8564.3408 -7834.75 8565.3154 C +F -7874.75 8585 m +-7878.3721 8585.9053 -7881.665 8585.6592 -7884.75 8584.6846 C +F -7844.7817 8565.125 m +-7850.9009 8563.6162 -7854.7817 8565.125 V +-7858.877 8563.6484 -7864.7817 8565.125 V +-7869.7446 8563.4492 -7874.7817 8565.125 V +-7880.7969 8563.5742 -7884.7817 8565.125 V +-7884.7817 8584.8096 L +-7881.6958 8585.7842 -7878.2969 8585.9912 -7874.3799 8584.9082 C +-7868.2134 8586.4912 -7864.4634 8584.9082 V +-7859.4634 8586.4912 -7854.3799 8584.8242 V +-7850.0474 8586.4082 -7844.3799 8584.9082 V +-7838.8799 8586.3242 -7834.7817 8585.125 V +-7834.7817 8565.4404 L +-7837.5254 8564.4287 -7840.6514 8563.9287 -7844.7817 8565.125 C +f 0 R +0 G +1 J 1 j 0.5 w -7864.75 8585 m +-7872.54 8586.9473 -7878.813 8583.585 -7884.75 8579.0488 C +S -7854.75 8585 m +-7866.96 8588.0527 -7875.4434 8578.0605 -7884.75 8570.9512 C +S -7844.75 8585 m +-7861.1279 8589.0947 -7870.8008 8569.7227 -7884.75 8565.3154 C +S -7884.75 8565 m +-7864.75 8560 -7854.75 8590 -7834.75 8585 C +S -7874.75 8565 m +-7858.3721 8560.9053 -7848.6992 8580.2773 -7834.75 8584.6846 C +S -7864.75 8565 m +-7852.54 8561.9473 -7844.0566 8571.9395 -7834.75 8579.0488 C +S -7854.75 8565 m +-7846.96 8563.0527 -7840.687 8566.415 -7834.75 8570.9512 C +S -7844.75 8565 m +-7841.1279 8564.0947 -7837.835 8564.3408 -7834.75 8565.3154 C +S -7874.75 8585 m +-7878.3721 8585.9053 -7881.665 8585.6592 -7884.75 8584.6846 C +S U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 2) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884 8586 m +-7819.187 8586 L +-7819.187 8521.9023 L +-7884 8521.9023 L +-7884 8586 L +n u 0 O +0 g +-7849.6978 8544.4297 m +-7851.6094 8521.9023 L +-7853.5215 8544.4297 L +-7852.9033 8544.3066 -7852.2642 8544.2402 -7851.6094 8544.2402 c +-7850.9551 8544.2402 -7850.3159 8544.3066 -7849.6978 8544.4297 C +f -7861.2402 8552.3975 m +-7884 8554.3301 L +-7861.1138 8556.2734 L +-7861.2856 8555.5469 -7861.3848 8554.793 -7861.3848 8554.0156 c +-7861.3848 8553.4629 -7861.3281 8552.9248 -7861.2402 8552.3975 C +f -7856.519 8545.5723 m +-7870.1626 8536.8047 L +-7860.2153 8549.377 L +-7859.3574 8547.791 -7858.0718 8546.4766 -7856.519 8545.5723 C +f -7853.481 8563.6074 m +-7851.5786 8586 L +-7849.6768 8563.5967 L +-7850.3018 8563.7227 -7850.9473 8563.791 -7851.6094 8563.791 c +-7852.25 8563.791 -7852.873 8563.7246 -7853.481 8563.6074 C +f -7841.9609 8555.5068 m +-7819.187 8553.5732 L +-7842.083 8551.6289 L +-7842.083 8551.8506 L +-7841.9258 8552.5488 -7841.834 8553.2695 -7841.834 8554.0156 c +-7841.834 8554.5234 -7841.8848 8555.0195 -7841.9609 8555.5068 C +f -7860.1138 8558.8262 m +-7870.1641 8571.5293 L +-7856.2778 8562.6055 L +-7857.8823 8561.7305 -7859.2114 8560.416 -7860.1138 8558.8262 C +f -7842.9961 8549.3945 m +-7832.875 8536.6055 L +-7846.7666 8545.5313 L +-7845.1768 8546.4414 -7843.8633 8547.7793 -7842.9961 8549.3945 C +f -7846.6895 8562.4512 m +-7832.873 8571.3281 L +-7842.9658 8558.5732 L +-7843.8198 8560.1895 -7845.1152 8561.5313 -7846.6895 8562.4512 C +f -7842.8887 8558.6133 m +-7842.3862 8557.6641 -7842.043 8556.6211 -7841.875 8555.5195 c +-7841.7993 8555.0293 -7841.748 8554.5273 -7841.748 8554.0156 c +-7841.748 8553.2637 -7841.8398 8552.5352 -7841.998 8551.8311 c +-7842.1958 8550.957 -7842.5049 8550.124 -7842.918 8549.3545 c +-7843.7954 8547.7246 -7845.1191 8546.374 -7846.7241 8545.4561 c +-7847.6294 8544.9375 -7848.6226 8544.5537 -7849.6802 8544.3457 c +-7850.3047 8544.2207 -7850.9497 8544.1523 -7851.6094 8544.1523 c +-7852.2695 8544.1523 -7852.915 8544.2207 -7853.5391 8544.3457 c +-7854.623 8544.5605 -7855.6382 8544.957 -7856.5625 8545.4961 c +-7858.1313 8546.4102 -7859.4282 8547.7363 -7860.291 8549.335 c +-7860.7969 8550.2695 -7861.145 8551.2969 -7861.3262 8552.3828 c +-7861.415 8552.916 -7861.4727 8553.459 -7861.4727 8554.0156 c +-7861.4727 8554.8008 -7861.3711 8555.5605 -7861.1978 8556.293 c +-7860.981 8557.207 -7860.6406 8558.0732 -7860.187 8558.8701 c +-7859.2793 8560.4727 -7857.939 8561.8008 -7856.3174 8562.6826 c +-7855.4487 8563.1553 -7854.5 8563.498 -7853.4961 8563.6934 c +-7852.8848 8563.8115 -7852.2554 8563.8779 -7851.6094 8563.8779 c +-7850.9414 8563.8779 -7850.29 8563.8086 -7849.6602 8563.6826 c +-7848.5786 8563.4668 -7847.5664 8563.0654 -7846.6455 8562.5273 c +-7845.0566 8561.5977 -7843.751 8560.2441 -7842.8887 8558.6133 c +f U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 3) +0 A +u 1 Ap +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7874.75 8587 m +-7874.75 8563 L +-7884.75 8563 L +-7884.75 8587 L +-7874.75 8587 L +n u u 0 Ap +0 O +1 g +-7875.4058 8578.5361 m +-7874.9878 8577.4355 -7874.75 8576.2471 -7874.75 8575 c +-7874.75 8573.1377 -7875.2681 8571.4004 -7876.1543 8569.9072 c +-7877.897 8566.9736 -7881.0898 8565 -7884.75 8565 C +-7884.75 8585 L +-7884.4297 8585 -7884.1143 8584.9814 -7883.8018 8584.9521 c +-7881.9121 8584.7754 -7880.1807 8584.0645 -7878.7441 8582.9824 c +-7877.2471 8581.8545 -7876.0801 8580.3184 -7875.4058 8578.5361 c +f 0 R +0 G +1 J 1 j 0.5 w -7884.75 8565.3174 m +-7881.7207 8566.2744 -7878.8926 8567.9326 -7876.1543 8569.9072 C +S -7884.75 8570.9512 m +-7881.5991 8573.3564 -7878.543 8576.0869 -7875.4058 8578.5361 C +S -7878.7441 8582.9824 m +-7880.8105 8581.8916 -7882.7993 8580.5342 -7884.75 8579.043 C +S -7883.8018 8584.9521 m +-7884.1191 8584.8682 -7884.4375 8584.7852 -7884.75 8584.6865 C +S -7878.7441 8582.9824 m +-7880.1807 8584.0645 -7881.9121 8584.7744 -7883.8018 8584.9521 C +S -7875.4058 8578.5361 m +-7874.9878 8577.4355 -7874.75 8576.2471 -7874.75 8575 c +-7874.75 8573.1377 -7875.2681 8571.4004 -7876.1543 8569.9072 C +S -7884.75 8585 m +-7884.4297 8585 -7884.1143 8584.9814 -7883.8018 8584.9521 C +S -7878.7441 8582.9824 m +-7877.2471 8581.8545 -7876.0801 8580.3184 -7875.4058 8578.5361 C +S -7876.1543 8569.9072 m +-7877.8975 8566.9736 -7881.0898 8565 -7884.75 8565 C +S U U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 5) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7726.3994 8587 m +-7726.3994 8573.4199 L +-7885 8573.4199 L +-7885 8587 L +-7726.3994 8587 L +n u u 0 O +0.285 0.228 0.171 0 k +-7741.0786 8585.4844 m +-7741.043 8586.6895 L +-7727.5103 8587.5176 -7726.8418 8586.2822 v +-7726.7441 8586.1016 -7726.647 8585.7148 -7726.561 8585.1934 C +-7728.584 8585.8242 -7738.291 8585.5713 -7741.0786 8585.4844 C +f 0.44 0.352 0.264 0 k +-7741.4063 8574.0234 m +-7741.3711 8575.2676 L +-7738.4912 8575.0488 -7728.1914 8574.3164 -7726.543 8574.8652 C +-7726.7031 8574.2188 -7726.9199 8573.7646 -7727.2046 8573.6152 c +-7728.8306 8572.7656 -7741.4063 8574.0234 Y +f 0.145 0.116 0.087 0 k +-7741.3711 8575.2676 m +-7741.0786 8585.4844 L +-7738.291 8585.5713 -7728.584 8585.8242 -7726.561 8585.1934 C +-7726.1519 8582.7773 -7725.9258 8577.3604 -7726.543 8574.8652 C +-7728.1914 8574.3164 -7738.4912 8575.0488 -7741.3711 8575.2676 C +f U u 0.155 0.124 0.093 0 k +-7766.9375 8579.2734 m +-7765.897 8579.6563 L +-7747.0728 8575.1465 L +-7747.481 8574.3145 L +-7766.3633 8576.7246 L +-7767.252 8577.0059 L +-7767.6504 8576.8936 -7768.1934 8576.8242 V +-7767.6094 8577.2373 -7767.1426 8578.1406 -7766.9375 8579.2734 C +f u 0.085 0.068 0.051 0 k +-7771.7993 8583.666 m +-7772.5977 8583.7217 -7769.749 8583.6641 Y +-7770.3481 8583.0176 -7770.771 8581.8203 -7770.8105 8580.4375 c +-7770.8169 8580.2246 -7770.8105 8580.0176 -7770.7993 8579.8135 C +-7771.041 8579.707 -7771.0918 8579.7734 -7771.6289 8579.5645 C +-7771 8583.6113 -7771.7993 8583.666 v +f 0.305 0.244 0.183 0 k +-7770.3442 8576.8672 m +-7770.5527 8576.8105 -7770.4937 8578.9307 Y +-7769.4785 8579.7588 L +-7767.8359 8578.9434 L +-7766.9375 8579.2734 L +-7767.1426 8578.1406 -7767.6094 8577.2373 -7768.1934 8576.8242 C +-7768.6094 8576.7715 -7769.874 8576.7998 -7770.3442 8576.8672 C +f U 0.115 0.092 0.069 0 k +-7766.9375 8579.2734 m +-7767.8359 8578.9434 L +-7769.4785 8579.7588 L +-7770.4937 8578.9307 L +-7770.793 8579.708 -7770.7993 8579.8135 V +-7769.5137 8580.3789 -7768.1831 8580.7402 -7766.8398 8580.9258 C +-7766.79 8580.7275 -7766.7842 8580.543 -7766.79 8580.3369 c +-7766.7998 8579.9717 -7766.8218 8579.6182 -7766.9375 8579.2734 C +f 0.41 0.328 0.246 0 k +-7747.4512 8575.3965 m +-7749.377 8576.6426 -7758.3862 8582.0986 -7766.8398 8580.9258 C +-7766.9038 8582.0928 -7767.248 8583.0908 -7767.75 8583.6631 C +-7767.1895 8583.6621 L +-7746.7402 8586.7559 L +-7747.0366 8576.4258 L +-7747.0728 8575.1465 L +-7747.2046 8575.2373 -7747.4512 8575.3965 v +f 0.395 0.316 0.237 0 k +-7770.8105 8580.4375 m +-7770.771 8581.8203 -7770.3481 8583.0176 -7769.749 8583.6641 C +-7767.6807 8583.6631 L +-7767.1782 8583.0908 -7766.8218 8582.0713 -7766.8398 8580.9258 C +-7768.1831 8580.7402 -7769.5137 8580.3789 -7770.7993 8579.8135 C +-7770.8105 8580.0176 -7770.8169 8580.2246 -7770.8105 8580.4375 c +f U u 0 0 0 0.11 k +-7741.2642 8574.2012 m +-7740.2407 8574.0352 L +-7741.2642 8574.2012 L +-7741.2642 8574.2012 L +f 0 0 0 0.34 k +-7747.481 8574.3145 m +-7747.0728 8575.1465 L +-7745.6714 8574.918 L +-7744.5234 8574.7314 L +-7742.6758 8574.4307 L +-7741.2642 8574.2012 L +-7740.2407 8574.0352 L +-7740.2954 8573.7168 -7740.3672 8573.498 -7740.4648 8573.4199 C +-7747.481 8574.3145 L +f 0 0 0 0.32 k +-7745.8042 8579.207 m +-7746.041 8586.8613 L +-7740.7144 8587 L +-7739.7266 8583.5146 -7740.1816 8579.1543 V +-7745.8042 8579.207 L +f U 0.025 0.02 0.015 0 k +-7739.3223 8576.3848 m +-7736.373 8576.9199 -7733.2402 8577.1602 -7730.3159 8576.3613 c +-7730.2856 8576.3496 -7730.2754 8576.3184 -7730.2871 8576.2969 c +-7730.2881 8576.2656 -7730.3198 8576.2559 -7730.3418 8576.2559 c +-7733.2422 8577.0645 -7736.375 8576.8242 -7739.3042 8576.2783 c +-7739.3262 8576.2793 -7739.3574 8576.291 -7739.3672 8576.3223 c +-7739.3662 8576.3438 -7739.355 8576.375 -7739.3223 8576.3848 c +-7739.3223 8576.3848 l +f -7737.8374 8575.3076 m +-7737.7295 8575.3789 -7737.6313 8575.4941 -7737.5234 8575.502 c +-7733.7886 8575.832 -7730.1631 8575.7813 -7726.4746 8575.6641 c +-7726.4526 8575.6641 -7726.4209 8575.6426 -7726.4214 8575.6211 c +-7726.4214 8575.5879 -7726.4551 8575.5684 -7726.4766 8575.5684 c +-7729.3223 8575.6816 -7732.1401 8575.6992 -7735.0039 8575.5352 c +-7735.9336 8575.4766 -7736.9082 8575.7402 -7737.7778 8575.2207 c +-7737.7993 8575.2109 -7737.8306 8575.2109 -7737.8506 8575.2334 c +-7737.8618 8575.2559 -7737.8594 8575.2871 -7737.8374 8575.3076 c +-7737.8374 8575.3076 l +f -7733.373 8577.3672 m +-7731.5098 8578.6797 -7729.3022 8579.374 -7727.1001 8579.8867 c +-7727.0679 8579.8965 -7727.0474 8579.8848 -7727.0366 8579.8535 c +-7727.0273 8579.8203 -7727.0488 8579.8008 -7727.0703 8579.79 c +-7729.2617 8579.2656 -7731.459 8578.6035 -7733.3105 8577.2803 c +-7733.3433 8577.2598 -7733.375 8577.2715 -7733.3848 8577.293 c +-7733.4058 8577.3145 -7733.3945 8577.3457 -7733.373 8577.3672 c +-7733.373 8577.3672 l +f -7738.9321 8584.0566 m +-7736.7295 8584.5703 -7734.5298 8585.0303 -7732.2798 8585.2754 c +-7732.2598 8585.2852 -7732.229 8585.2637 -7732.229 8585.2422 c +-7732.2183 8585.209 -7732.2407 8585.1777 -7732.2729 8585.1787 c +-7734.5122 8584.8809 -7736.7305 8584.5176 -7738.9126 8583.9502 c +-7738.9351 8583.9512 -7738.9673 8583.9629 -7738.9766 8583.9941 c +-7738.9751 8584.0156 -7738.9648 8584.0479 -7738.9321 8584.0566 c +-7738.9321 8584.0566 l +f -7738.439 8583.3604 m +-7736.3457 8584.1973 -7734.1016 8583.9297 -7731.9023 8583.9629 c +-7731.8706 8583.9609 -7731.8496 8583.9395 -7731.8506 8583.9082 c +-7731.8521 8583.875 -7731.873 8583.8555 -7731.8945 8583.8555 c +-7734.0928 8583.8438 -7736.3374 8584.0996 -7738.4209 8583.2529 c +-7738.4434 8583.2539 -7738.4746 8583.2656 -7738.4834 8583.2969 c +-7738.4834 8583.3184 -7738.4722 8583.3506 -7738.439 8583.3604 c +-7738.439 8583.3604 l +f -7737.707 8584.7051 m +-7736.3833 8584.752 -7735.1504 8584.5469 -7733.8271 8584.209 c +-7733.3594 8584.0996 -7732.9199 8584.2266 -7732.4609 8584.2129 c +-7731.897 8584.1973 l +-7731.874 8584.1963 -7731.8633 8584.1855 -7731.8535 8584.1738 c +-7731.834 8584.1523 -7731.8442 8584.1211 -7731.8662 8584.0996 c +-7732.0625 8583.9453 l +-7732.0742 8583.9453 -7732.085 8583.9355 -7732.0962 8583.9355 c +-7732.5 8583.9473 l +-7733.9551 8584.1914 -7735.457 8584.6719 -7736.8926 8584.0742 c +-7736.9258 8584.0645 -7736.957 8584.0859 -7736.9673 8584.1074 c +-7736.9673 8584.1396 -7736.9551 8584.1602 -7736.9336 8584.1709 c +-7735.647 8584.6992 -7734.1714 8584.4756 -7732.8818 8584.0547 c +-7732.0918 8584.043 L +-7732.124 8584.0332 L +-7731.9282 8584.1875 L +-7731.8984 8584.0898 L +-7732.4639 8584.1064 l +-7732.9321 8584.1406 -7733.3848 8583.9834 -7733.8398 8584.1035 c +-7735.1543 8584.4609 -7736.3975 8584.625 -7737.71 8584.5986 c +-7737.7422 8584.5996 -7737.7642 8584.6211 -7737.7617 8584.6533 c +-7737.7617 8584.6855 -7737.7402 8584.7061 -7737.707 8584.7051 c +-7737.707 8584.7051 l +f -7738.5718 8585.0605 m +-7735.8711 8586.2207 -7732.9023 8585.5703 -7730.1279 8585.1816 c +-7729.7832 8585.2891 l +-7729.7617 8585.2988 -7729.7417 8585.2871 -7729.7207 8585.2656 c +-7729.71 8585.2441 -7729.7217 8585.2129 -7729.7422 8585.2021 c +-7730.0801 8585.0098 l +-7732.7754 8584.3926 -7735.5391 8584.7813 -7738.271 8584.7852 c +-7738.3022 8584.7871 -7738.3232 8584.8086 -7738.3223 8584.8398 c +-7738.3198 8584.8721 -7738.2983 8584.8926 -7738.2681 8584.8926 c +-7735.6738 8584.9355 -7733.0303 8584.4434 -7730.4727 8585.0742 c +-7729.7954 8585.2891 L +-7729.7534 8585.1914 L +-7730.1406 8585.0859 l +-7732.9058 8585.4424 -7735.8418 8586.1348 -7738.5313 8584.9746 c +-7738.5537 8584.9648 -7738.585 8584.9648 -7738.5962 8584.998 c +-7738.6055 8585.0195 -7738.605 8585.0508 -7738.5718 8585.0605 c +-7738.5718 8585.0605 l +f -7735.6895 8578.3945 m +-7734.3945 8578.9004 -7732.9834 8578.6465 -7731.6802 8578.3438 c +-7731.647 8578.3418 -7731.6367 8578.3203 -7731.6382 8578.2891 c +-7731.6504 8578.2568 -7731.6714 8578.2461 -7731.7031 8578.248 c +-7732.998 8578.5303 -7734.377 8578.8154 -7735.6504 8578.2969 c +-7735.6826 8578.2871 -7735.7144 8578.2988 -7735.7246 8578.3311 c +-7735.7222 8578.3525 -7735.7114 8578.3848 -7735.6895 8578.3945 c +-7735.6895 8578.3945 l +f -7736.1401 8580.2207 m +-7734.2266 8580.6895 -7732.3145 8581.1035 -7730.355 8581.3242 c +-7730.3242 8581.334 -7730.3022 8581.3125 -7730.293 8581.2803 c +-7730.2954 8581.2598 -7730.3159 8581.2285 -7730.3374 8581.2285 c +-7732.2959 8581.0078 -7734.209 8580.582 -7736.1206 8580.1133 c +-7736.1426 8580.1152 -7736.1738 8580.126 -7736.1831 8580.1582 c +-7736.1831 8580.1797 -7736.1719 8580.2109 -7736.1401 8580.2207 c +-7736.1401 8580.2207 l +f -7736.9336 8582.6348 m +-7734.499 8583.4609 -7731.8647 8583.0547 -7729.3457 8583.0879 c +-7729.313 8583.0879 -7729.293 8583.0664 -7729.293 8583.0332 c +-7729.2954 8583.0117 -7729.3159 8582.9922 -7729.3481 8582.9922 c +-7731.8574 8582.916 -7734.481 8583.3848 -7736.8945 8582.5264 c +-7736.9282 8582.5273 -7736.959 8582.5391 -7736.9688 8582.5605 c +-7736.9678 8582.5918 -7736.9561 8582.624 -7736.9336 8582.6348 c +-7736.9336 8582.6348 l +f -7732.0542 8583.8496 m +-7730.6582 8584.5449 -7729.0503 8584.4033 -7727.5342 8584.4668 c +-7727.502 8584.4648 -7727.4824 8584.4434 -7727.4824 8584.4121 c +-7727.4834 8584.3906 -7727.5054 8584.3594 -7727.5366 8584.3594 c +-7729.0137 8584.2207 -7730.6489 8584.5234 -7732.0039 8583.7617 c +-7732.0366 8583.7529 -7732.0679 8583.7637 -7732.0786 8583.7861 c +-7732.0879 8583.8076 -7732.0767 8583.8398 -7732.0542 8583.8496 c +-7732.0542 8583.8496 l +f -7731.3418 8580.4248 m +-7730.3926 8580.3975 -7729.4336 8580.3701 -7728.4839 8580.3428 c +-7728.4526 8580.3418 -7728.4312 8580.3203 -7728.4336 8580.2881 c +-7728.4336 8580.2559 -7728.4551 8580.2354 -7728.4878 8580.2363 c +-7729.437 8580.2637 -7730.397 8580.291 -7731.3457 8580.3184 c +-7731.377 8580.3184 -7731.3975 8580.3418 -7731.3975 8580.373 c +-7731.397 8580.4043 -7731.374 8580.4258 -7731.3418 8580.4248 c +-7731.3418 8580.4248 l +f -7729.1592 8578.0361 m +-7728.6895 8578.0645 -7728.209 8578.0723 -7727.7383 8578.0918 c +-7727.7168 8578.0908 -7727.6855 8578.0684 -7727.6865 8578.0371 c +-7727.687 8578.0039 -7727.71 8577.9844 -7727.7417 8577.9844 c +-7728.2114 8577.9873 -7728.6816 8577.9375 -7729.1514 8577.9395 c +-7729.1831 8577.9297 -7729.2031 8577.9512 -7729.2134 8577.9844 c +-7729.2129 8578.0156 -7729.1914 8578.0371 -7729.1592 8578.0361 c +-7729.1592 8578.0361 l +f -7736.9702 8580.2344 m +-7736.5688 8580.5107 -7736.125 8580.6797 -7735.645 8580.751 c +-7735.6113 8580.7607 -7735.5918 8580.7383 -7735.5806 8580.7168 c +-7735.5703 8580.6855 -7735.5928 8580.6543 -7735.6152 8580.6543 c +-7736.0854 8580.5723 -7736.5176 8580.4023 -7736.9209 8580.1475 c +-7736.9521 8580.1377 -7736.9849 8580.1387 -7736.9946 8580.1709 c +-7737.0039 8580.1934 -7736.9922 8580.2246 -7736.9702 8580.2344 c +-7736.9702 8580.2344 l +f -7738.1904 8586.085 m +-7735.7344 8586.5273 -7733.2983 8587.001 -7730.7993 8586.7266 c +-7730.7778 8586.7266 -7730.7568 8586.7041 -7730.7578 8586.6719 c +-7730.7578 8586.6406 -7730.7798 8586.6191 -7730.8022 8586.6191 c +-7733.291 8586.873 -7735.7344 8586.4844 -7738.1719 8585.9775 c +-7738.1934 8585.9785 -7738.2256 8585.9902 -7738.2344 8586.0215 c +-7738.2344 8586.043 -7738.2222 8586.0752 -7738.1904 8586.085 c +-7738.1904 8586.085 l +f 0.195 0.156 0.117 0 k +-7738.166 8574.6445 m +-7735.7969 8574.2676 -7733.4058 8574.3477 -7731.0298 8574.5898 c +-7730.998 8574.5879 -7730.9766 8574.5664 -7730.9766 8574.5352 c +-7730.9785 8574.5137 -7731 8574.4824 -7731.0215 8574.4824 c +-7733.4082 8574.2422 -7735.791 8574.1602 -7738.1694 8574.5391 c +-7738.2026 8574.5391 -7738.2222 8574.5605 -7738.2217 8574.5938 c +-7738.2207 8574.625 -7738.1992 8574.6465 -7738.166 8574.6445 c +-7738.166 8574.6445 l +f 0.335 0.268 0.201 0 k +-7737.4351 8574.1113 m +-7734.9282 8574.1152 -7732.4146 8574.2773 -7729.918 8573.8965 c +-7729.8862 8573.8945 -7729.8647 8573.873 -7729.8662 8573.8418 c +-7729.8672 8573.8086 -7729.8896 8573.7891 -7729.9209 8573.7891 c +-7732.418 8574.1699 -7734.9297 8574.0293 -7737.4375 8574.0059 c +-7737.46 8574.0059 -7737.481 8574.0273 -7737.4785 8574.0596 c +-7737.4785 8574.0918 -7737.457 8574.1123 -7737.4351 8574.1113 c +-7737.4351 8574.1113 l +f 0.205 0.164 0.123 0 k +-7738.9766 8574.3262 m +-7737.5039 8574.668 -7736.0078 8574.4023 -7734.5391 8574.2207 c +-7734.5078 8574.2207 -7734.4873 8574.1973 -7734.499 8574.166 c +-7734.5 8574.1348 -7734.5215 8574.1133 -7734.5537 8574.125 c +-7736.0103 8574.2842 -7737.4961 8574.583 -7738.9473 8574.2188 c +-7738.9785 8574.2207 -7739.0103 8574.2324 -7739.0098 8574.2637 c +-7739.019 8574.2852 -7738.998 8574.3164 -7738.9766 8574.3262 c +-7738.9766 8574.3262 l +f -7732.3535 8573.7949 m +-7731.1978 8573.9219 -7730.0273 8573.8145 -7728.8926 8573.5898 c +-7728.8711 8573.5781 -7728.8506 8573.5566 -7728.8618 8573.5244 c +-7728.8623 8573.5029 -7728.8945 8573.4824 -7728.916 8573.4941 c +-7730.0503 8573.7402 -7731.1914 8573.7939 -7732.3462 8573.6885 c +-7732.3794 8573.6895 -7732.3984 8573.7109 -7732.4087 8573.7324 c +-7732.4082 8573.7646 -7732.3862 8573.7852 -7732.3535 8573.7949 c +-7732.3535 8573.7949 l +f 0.335 0.268 0.201 0 k +-7739.2681 8576.4473 m +-7737.9214 8577.1885 -7736.3066 8576.5977 -7734.855 8576.6416 c +-7734.8223 8576.6406 -7734.8022 8576.6191 -7734.8022 8576.5859 c +-7734.8042 8576.5654 -7734.8262 8576.5449 -7734.8574 8576.5449 c +-7736.2886 8576.4902 -7737.8823 8577.0801 -7739.2168 8576.3506 c +-7739.2383 8576.3398 -7739.2695 8576.3516 -7739.291 8576.374 c +-7739.3008 8576.3955 -7739.2886 8576.4277 -7739.2681 8576.4473 c +-7739.2681 8576.4473 l +f -7737.8945 8578.5645 m +-7735.6719 8579.0449 -7733.3896 8578.6162 -7731.1504 8578.5625 c +-7731.1177 8578.5615 -7731.0977 8578.5391 -7731.0977 8578.5078 c +-7731.1001 8578.4863 -7731.1318 8578.4668 -7731.1519 8578.4668 c +-7733.3833 8578.4775 -7735.6519 8578.9805 -7737.875 8578.457 c +-7737.8975 8578.457 -7737.9287 8578.4688 -7737.9375 8578.502 c +-7737.9375 8578.5225 -7737.9258 8578.5547 -7737.8945 8578.5645 c +-7737.8945 8578.5645 l +f -7732.0273 8575.1406 m +-7730.3496 8575.9688 -7728.499 8576.502 -7726.603 8576.3613 c +-7726.5718 8576.3613 -7726.5513 8576.3389 -7726.5527 8576.3066 c +-7726.5527 8576.2754 -7726.5742 8576.2539 -7726.6074 8576.2559 c +-7728.481 8576.416 -7730.3198 8575.8604 -7731.9873 8575.0547 c +-7732.0078 8575.0449 -7732.041 8575.0449 -7732.0503 8575.0781 c +-7732.061 8575.0996 -7732.061 8575.1309 -7732.0273 8575.1406 c +-7732.0273 8575.1406 l +f u 0.5 0.85 1 0.45 k +-7885 8581.9082 m +-7885.0254 8582.4883 -7884.5664 8583.1875 -7883.167 8583.9902 C +-7882.8521 8584.0029 -7881.3945 8584.0234 -7879.0889 8584.0488 C +-7879.0889 8581.8223 L +-7881.1382 8581.8457 -7883.1177 8581.8867 -7885 8581.9082 C +f -7884.5088 8580.9688 m +-7879.0889 8580.8447 L +-7879.0889 8579.8145 L +-7882.644 8579.959 L +-7883.8145 8580.3301 -7884.5088 8580.9688 V +f 0.5 0.85 1 0.32 k +-7879.0889 8580.8252 m +-7884.4746 8580.9434 L +-7884.7695 8581.2148 -7884.9849 8581.5566 -7885 8581.9277 C +-7883.1177 8581.9063 -7881.1382 8581.8848 -7879.0889 8581.8613 C +-7879.0889 8580.8252 L +f 0.5 0.85 1 0.45 k +-7774.1504 8580.6172 m +-7852.3584 8581.541 -7879.1079 8581.8418 V +-7879.1079 8584.0488 L +-7862.8145 8584.2324 -7803.9902 8584.707 Y +-7769.749 8583.6641 L +-7770.457 8580.5684 L +-7774.1504 8580.6172 L +f 0.5 0.85 1 0.12 k +-7879.1079 8579.8145 m +-7879.1079 8580.8447 L +-7770.4258 8579 L +-7770.3833 8576.8633 L +-7803.6553 8576.7129 L +-7879.1079 8579.8145 L +f u 0.065 0.052 0.039 0 k +-7747.0728 8575.1465 m +-7747.0366 8576.4258 L +-7747.2954 8575.1172 L +-7765.897 8579.6563 L +-7766.9375 8579.2734 L +-7766.8794 8579.6055 -7766.8398 8579.957 -7766.8306 8580.3223 c +-7766.8242 8580.5283 -7766.8281 8580.7285 -7766.8398 8580.9258 C +-7758.3862 8582.0986 -7748.9634 8577.6719 -7747.0366 8576.4258 C +-7746.7402 8586.7559 L +-7746.041 8586.8613 L +-7745.8042 8579.207 L +-7740.1816 8579.1543 L +-7740.0898 8577.0137 -7740.0718 8575.0215 -7740.2407 8574.0352 C +-7747.0728 8575.1465 L +f 0.4 0.7 1 0 k +-7770.457 8580.5879 m +-7770.4258 8578.9805 L +-7879.1079 8580.8252 L +-7879.1079 8581.8613 L +-7852.3584 8581.5605 -7770.457 8580.5879 Y +f U U 0.025 0.02 0.015 0 k +-7734.7344 8583.0293 m +-7734.7344 8583.0625 -7734.7129 8583.082 -7734.6802 8583.082 c +-7731.6714 8583.1133 -7729.4214 8582.9453 -7726.415 8582.8594 C +-7726.4087 8582.7656 L +-7729.3262 8582.8701 -7731.7607 8583.0078 -7734.6841 8582.9746 C +-7734.7168 8582.9766 -7734.7358 8582.998 -7734.7344 8583.0293 C +f -7726.3994 8582.7656 m +-7726.4082 8582.7441 L +-7726.4087 8582.7656 L +-7726.4063 8582.7656 -7726.4033 8582.7656 -7726.3994 8582.7656 C +f -7730.4487 8581.4238 m +-7731.4458 8581.292 -7732.3394 8581.7656 -7733.2114 8582.1973 C +-7733.2441 8582.208 -7733.2534 8582.2402 -7733.2422 8582.2715 C +-7733.2305 8582.293 -7733.1982 8582.3027 -7733.1777 8582.291 c +-7732.3262 8581.8301 -7731.4312 8581.4199 -7730.4678 8581.5195 c +-7729.1079 8581.6621 -7727.9038 8582.375 -7726.5254 8582.4531 C +-7726.4463 8582.3594 L +-7728.04 8582.2656 -7728.8647 8581.623 -7730.4487 8581.4238 c +f U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 6) +0 A +u 1 Ap +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884.75 8563 m +-7884.75 8587 L +-7874.75 8587 L +-7874.75 8563 L +-7884.75 8563 L +n 0 Ap +0 O +1 g +-7874.75 8565 m +-7875.0703 8565 -7875.3857 8565.0186 -7875.6982 8565.0479 c +-7877.5879 8565.2256 -7879.3198 8565.9346 -7880.7559 8567.0176 c +-7882.2529 8568.1465 -7883.4199 8569.6816 -7884.0942 8571.4639 c +-7884.5122 8572.5645 -7884.75 8573.7529 -7884.75 8575 c +-7884.75 8576.8623 -7884.2319 8578.5996 -7883.3457 8580.0918 c +-7881.6025 8583.0273 -7878.4102 8585 -7874.75 8585 C +-7874.75 8565 L +f 0 R +0 G +1 J 1 j 0.5 w -7874.75 8584.6816 m +-7877.7793 8583.7256 -7880.6074 8582.0674 -7883.3457 8580.0918 C +S -7874.75 8579.0488 m +-7877.8999 8576.6436 -7880.957 8573.9131 -7884.0942 8571.4639 C +S -7880.7559 8567.0176 m +-7878.6904 8568.1084 -7876.7017 8569.4668 -7874.75 8570.957 C +S -7875.6982 8565.0479 m +-7875.3809 8565.1309 -7875.063 8565.2148 -7874.75 8565.3145 C +S -7880.7559 8567.0176 m +-7879.3193 8565.9355 -7877.5879 8565.2256 -7875.6982 8565.0479 C +S -7884.0942 8571.4639 m +-7884.5122 8572.5645 -7884.75 8573.7529 -7884.75 8575 c +-7884.75 8576.8623 -7884.231 8578.5996 -7883.3457 8580.0918 C +S -7874.75 8565 m +-7875.0703 8565 -7875.3857 8565.0186 -7875.6982 8565.0479 C +S -7880.7559 8567.0176 m +-7882.2529 8568.1465 -7883.4199 8569.6816 -7884.0942 8571.4639 C +S -7883.3457 8580.0918 m +-7881.6025 8583.0273 -7878.4102 8585 -7874.75 8585 C +S U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 8) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7883.9521 8584.3125 m +-7776.7954 8584.3125 L +-7776.7954 8570.1855 L +-7883.9521 8570.1855 L +-7883.9521 8584.3125 L +n u 0 O +0 0 0 1 k +-7882.2832 8583.623 m +-7882.8535 8586 -7882.8184 8582.0039 V +-7883.0479 8578.8027 L +-7883.6167 8576.4551 L +-7883.4502 8574.123 L +-7881.9502 8573.4551 -7865.2832 8572.123 V +-7858.6167 8570.7891 -7849.6167 8570.7891 V +-7784.3936 8571.4766 -7779.4912 8572.8848 v +-7820.3882 8570.875 -7822.9688 8571.5117 v +-7783.8569 8573.1602 -7780.8545 8574.4316 v +-7818.79 8572.5469 -7822.167 8574.1777 v +-7787.249 8575.9102 -7783.021 8577.5313 v +-7789.7217 8576.8828 -7791.5127 8577.082 v +-7788.3896 8577.5703 l +-7793.4194 8577.502 l +-7796.3218 8577.1289 l +-7788.4521 8578.2422 -7787.9033 8578.8086 v +-7784.3154 8578.1309 -7798.5186 8578.3848 v +-7832.1177 8574.4551 -7882.2832 8583.623 V +f /BBAccumRotation (5.805971) XT +0 R +0 0 0 0.5 K +0.025 w -7883.9502 8573.123 m +-7863.667 8571.2949 -7843.9727 8570.2207 v +-7801.1514 8570.502 -7796.5737 8570.9004 v +-7784.1631 8571.0313 -7776.7959 8572.0273 v +S /BBAccumRotation (5.805971) XT +0 0 0 1 K +-7821.8369 8570.4082 m +-7825.2959 8570.0273 -7851.2607 8570.2793 Y +-7861.627 8570.1602 -7883.9502 8573.123 Y +S /BBAccumRotation (5.805971) XT +-7820.9873 8573.6641 m +-7790.3608 8574.582 -7783.6606 8575.2324 v +S /BBAccumRotation (5.805971) XT +0 0 0 0.5 K +-7829.6201 8578.2051 m +-7794.3706 8579.6172 -7791.4058 8580.1406 v +S /BBAccumRotation (5.805971) XT +U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 10) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884 8586 m +-7833.8921 8586 L +-7833.8921 8529.9756 L +-7884 8529.9756 L +-7884 8586 L +n u 0 O +0.1 1 1 0 k +-7846.9014 8551.5752 m +-7848.7178 8545.0957 -7858.8247 8548.4658 Y +-7858.791 8548.5303 L +-7868.8999 8545.1611 -7870.7144 8551.6396 V +-7876.6758 8569.0068 -7871.4922 8575.7451 V +-7864.7529 8585.3369 -7860.6055 8585.3369 V +-7857.0103 8585.2705 L +-7852.8638 8585.2705 -7846.125 8575.6816 Y +-7840.9409 8568.9424 -7846.9014 8551.5752 Y +f u 0 0 0 1 k +-7851.3926 8529.9756 m +-7852.1167 8531.4199 -7852.9238 8532.4756 V +-7852.4058 8532.0635 -7851.5151 8531.1924 -7851.3926 8529.9756 C +f -7865.064 8532.4854 m +-7865.8711 8531.4307 -7866.5942 8529.9863 Y +-7866.4727 8531.2021 -7865.582 8532.0732 -7865.064 8532.4854 C +f U 0 0.61 0.74 0 k +-7850.5977 8554.4609 m +-7851.9038 8549.7959 -7859.1816 8552.2217 Y +-7859.1567 8552.2686 L +-7866.436 8549.8428 -7867.7417 8554.5078 V +-7872.0337 8567.0117 -7868.3018 8571.8633 V +-7863.4487 8578.7686 -7860.4634 8578.7686 V +-7857.875 8578.7227 L +-7854.8887 8578.7227 -7850.0366 8571.8174 Y +-7846.3042 8566.9639 -7850.5977 8554.4609 Y +f u 1 Ap +0.73 0.43 1 0.22 k +0 R +0 0 0 1 K +-7854.6226 8557.2754 m +-7853.813 8557.2754 -7853.1558 8556.6182 -7853.1558 8555.8096 c +-7853.1558 8555 -7853.813 8554.3428 -7854.6226 8554.3428 c +-7855.4321 8554.3428 -7856.0889 8555 -7856.0889 8555.8096 c +-7856.0889 8556.6182 -7855.4321 8557.2754 -7854.6226 8557.2754 c +b -7854.3638 8568.9971 m +-7853.0806 8568.9971 -7852.0415 8568.1201 -7852.0415 8567.042 c +-7852.0415 8565.9619 -7853.0806 8565.0869 -7854.3638 8565.0869 c +-7855.645 8565.0869 -7856.6846 8565.9619 -7856.6846 8567.042 c +-7856.6846 8568.1201 -7855.645 8568.9971 -7854.3638 8568.9971 c +b -7853.834 8580.7861 m +-7852.2817 8580.7861 -7851.0239 8580.1299 -7851.0239 8579.3213 c +-7851.0239 8578.5117 -7852.2817 8577.8545 -7853.834 8577.8545 c +-7855.3862 8577.8545 -7856.645 8578.5117 -7856.645 8579.3213 c +-7856.645 8580.1299 -7855.3862 8580.7861 -7853.834 8580.7861 c +b -7849.6104 8552.5264 m +-7848.8687 8552.5264 -7848.2671 8551.8154 -7848.2671 8550.9365 c +-7848.2671 8550.0596 -7848.8687 8549.3477 -7849.6104 8549.3477 c +-7850.353 8549.3477 -7850.9546 8550.0596 -7850.9546 8550.9365 c +-7850.9546 8551.8154 -7850.353 8552.5264 -7849.6104 8552.5264 c +b -7848.0034 8574.083 m +-7848.8818 8573.7354 -7849.1494 8572.335 -7848.603 8570.9541 c +-7848.0566 8569.5752 -7846.9014 8568.7363 -7846.0234 8569.085 c +-7845.145 8569.4326 -7844.877 8570.833 -7845.4233 8572.2139 c +-7845.9702 8573.5947 -7847.125 8574.4316 -7848.0034 8574.083 c +b u -7863.0566 8557.1592 m +-7863.8662 8557.1592 -7864.5239 8556.502 -7864.5239 8555.6934 c +-7864.5239 8554.8828 -7863.8662 8554.2266 -7863.0566 8554.2266 c +-7862.248 8554.2266 -7861.5913 8554.8828 -7861.5913 8555.6934 c +-7861.5913 8556.502 -7862.248 8557.1592 -7863.0566 8557.1592 c +b -7863.3159 8568.8799 m +-7864.5991 8568.8799 -7865.6382 8568.0049 -7865.6382 8566.9248 c +-7865.6382 8565.8447 -7864.5991 8564.9697 -7863.3159 8564.9697 c +-7862.0342 8564.9697 -7860.9951 8565.8447 -7860.9951 8566.9248 c +-7860.9951 8568.0049 -7862.0342 8568.8799 -7863.3159 8568.8799 c +b -7863.8457 8580.6709 m +-7865.3975 8580.6709 -7866.6558 8580.0146 -7866.6558 8579.2041 c +-7866.6558 8578.3936 -7865.3975 8577.7383 -7863.8457 8577.7383 c +-7862.293 8577.7383 -7861.0352 8578.3936 -7861.0352 8579.2041 c +-7861.0352 8580.0146 -7862.293 8580.6709 -7863.8457 8580.6709 c +b -7868.0679 8552.4092 m +-7868.811 8552.4092 -7869.4121 8551.6982 -7869.4121 8550.8213 c +-7869.4121 8549.9443 -7868.811 8549.2334 -7868.0679 8549.2334 c +-7867.3262 8549.2334 -7866.7241 8549.9443 -7866.7241 8550.8213 c +-7866.7241 8551.6982 -7867.3262 8552.4092 -7868.0679 8552.4092 c +b -7869.6758 8573.9678 m +-7868.7983 8573.6201 -7868.5298 8572.2188 -7869.0762 8570.8379 c +-7869.6226 8569.457 -7870.7778 8568.6201 -7871.6558 8568.9678 c +-7872.5342 8569.3164 -7872.8032 8570.7178 -7872.2568 8572.0967 c +-7871.7104 8573.4775 -7870.5552 8574.3154 -7869.6758 8573.9678 c +b U U 0 Ap +0 0 0 1 k +-7859.1318 8552.6553 m +-7859.1318 8585.3145 l +F u -7843.3906 8538.5303 m +-7844.0815 8537.8369 -7847.019 8538.7021 Y +-7848.229 8538.874 -7848.0562 8541.2939 Y +-7847.019 8543.3682 -7847.7104 8543.1943 Y +-7848.2998 8543.1943 -7849.855 8543.1143 -7850.7822 8543.0635 C +-7851.1226 8541.6689 -7852.6128 8540.4756 -7854.7217 8539.7695 C +-7852.7578 8536.4775 -7854.5176 8535.7949 -7856.2935 8535.79 C +-7856.3096 8535.7021 -7856.332 8535.6162 -7856.3599 8535.5332 C +-7854.1089 8535.5791 -7853.6392 8533.2588 Y +-7853.4048 8533.0635 -7853.1606 8532.7861 -7852.9238 8532.4756 C +-7853.1416 8532.6475 -7853.2944 8532.7393 Y +-7854.2583 8532.7393 -7855.8774 8534.4941 -7856.4966 8535.207 C +-7856.9194 8534.4434 -7857.853 8533.9111 -7858.9434 8533.9111 c +-7860.0698 8533.9111 -7861.0322 8534.4795 -7861.4312 8535.2852 C +-7861.9985 8534.624 -7863.6968 8532.751 -7864.6943 8532.751 C +-7864.8462 8532.6572 -7865.064 8532.4854 V +-7864.8281 8532.7939 -7864.583 8533.0732 -7864.3481 8533.2686 C +-7863.8638 8535.6563 -7861.5254 8535.5342 V +-7861.5449 8535.5889 -7861.5674 8535.6436 -7861.5806 8535.7021 C +-7864.9238 8535.6924 -7863.937 8538.3174 -7863.2104 8539.6602 C +-7865.5918 8540.376 -7867.2646 8541.7012 -7867.5239 8543.25 C +-7868.4473 8543.2998 -7869.6729 8543.3584 -7870.1802 8543.3584 C +-7870.8726 8543.5313 -7869.835 8541.458 V +-7869.6626 8539.0391 -7870.8726 8538.8662 V +-7873.8096 8538.002 -7874.501 8538.6934 V +-7875.1919 8539.5566 -7876.0562 8538.3467 V +-7875.1919 8540.0752 -7873.291 8539.5566 V +-7870.6982 8538.8662 -7871.3906 8540.5938 V +-7871.9087 8544.0498 -7870.1802 8544.7402 V +-7868.0342 8545.8545 -7866.2822 8546.0889 V +-7865.9087 8546.4141 -7865.4639 8546.7109 -7864.958 8546.9766 C +-7867.5562 8547.0469 -7870.2246 8547.9209 -7871.0752 8550.9561 C +-7871.5151 8552.2432 -7872.0518 8554.2432 V +-7873.1025 8554.8252 -7874.3022 8556.0078 -7875.541 8558.2627 C +-7876.394 8561.4502 -7877.167 8556.7129 V +-7878.3975 8553.6494 -7879.6504 8553.5381 V +-7878.4702 8555.2871 -7878.9038 8556.416 V +-7877.2998 8560.917 -7875.6138 8559.8994 V +-7874.0986 8559.2197 -7872.688 8556.8154 V +-7873.0698 8558.4971 -7873.4326 8560.417 -7873.6743 8562.3906 C +-7874.4888 8562.3975 L +-7876.3506 8561.4795 -7876.3262 8564.959 V +-7877.1226 8568.9453 -7876.3594 8571.6826 V +-7875.647 8574.1504 -7878.1274 8572.9307 V +-7879.2842 8573.3242 -7879.9839 8572.7881 V +-7882.3882 8571.4131 -7884 8573.124 V +-7882.147 8572.8799 -7881.4482 8573.417 V +-7879.9785 8573.5615 -7879.897 8574.1787 V +-7876.9561 8574.8555 -7876.188 8574.0771 V +-7874.417 8573.2139 -7875.1304 8570.3604 V +-7875.8799 8562.4814 -7874.3198 8564.4053 V +-7874.1182 8564.4219 -7873.8784 8564.5176 V +-7874.1519 8568.4326 -7873.8018 8572.3252 -7871.9961 8574.8516 C +-7875.4536 8567.333 -7870.2974 8552.3037 Y +-7868.9609 8547.5303 -7863.127 8548.1016 -7860.145 8548.7344 C +-7860.0718 8550.1299 -7859.8374 8551.9492 -7859.1318 8552.6553 C +-7858.2134 8550.6963 -7858.2358 8549.0732 V +-7857.0762 8548.7217 -7850.2817 8546.8447 -7847.4487 8550.3369 C +-7848.4312 8547.8135 -7850.8262 8547.0186 -7853.2007 8546.9189 C +-7852.667 8546.6318 -7852.2041 8546.3047 -7851.8257 8545.9502 C +-7850.041 8545.7861 -7847.7104 8544.5771 Y +-7845.9814 8543.8857 -7846.5015 8540.4307 Y +-7847.1919 8538.7021 -7844.5991 8539.3936 Y +-7842.7002 8539.9111 -7841.835 8538.1836 Y +-7842.7002 8539.3936 -7843.3906 8538.5303 Y +f -7837.9082 8572.9521 m +-7838.6074 8573.4893 -7839.7632 8573.0938 Y +-7842.2446 8574.3135 -7841.5327 8571.8467 Y +-7840.769 8569.1104 -7841.564 8565.1221 Y +-7841.541 8561.6445 -7843.4014 8562.5596 Y +-7844.0342 8562.5557 L +-7844.3198 8560.6123 -7844.7046 8558.7549 -7845.0898 8557.1699 C +-7843.7129 8559.4199 -7842.2778 8560.0635 Y +-7840.5913 8561.082 -7838.9878 8556.5791 Y +-7839.4214 8555.4502 -7838.2417 8553.7021 Y +-7839.4937 8553.8125 -7840.7246 8556.876 Y +-7841.4976 8561.6152 -7842.3511 8558.4268 Y +-7843.5776 8556.1904 -7844.769 8555.0098 -7845.814 8554.4229 C +-7846.2026 8553.0635 -7846.4858 8552.2393 Y +-7846.7002 8551.4727 -7847.0337 8550.8486 -7847.4487 8550.3369 C +-7847.3799 8550.5127 -7847.3174 8550.6982 -7847.2632 8550.8916 C +-7841.3022 8568.2588 -7846.4858 8574.9971 V +-7853.2246 8584.5869 -7857.3721 8584.5869 V +-7860.9663 8584.6514 L +-7865.1138 8584.6514 -7871.853 8575.0615 Y +-7871.9038 8574.9961 -7871.9463 8574.9219 -7871.9961 8574.8516 C +-7871.7378 8575.4141 -7871.437 8575.9404 -7871.0752 8576.4092 C +-7864.3359 8586 -7860.189 8586 V +-7856.5942 8585.9346 L +-7852.4482 8585.9346 -7845.709 8576.3447 Y +-7843.5801 8573.5771 -7843.3306 8569.0176 -7843.7769 8564.6055 C +-7843.6553 8564.5752 -7843.5698 8564.5684 Y +-7842.0112 8562.6475 -7842.7598 8570.5244 Y +-7843.4746 8573.3789 -7841.7026 8574.2402 Y +-7840.9351 8575.0186 -7837.9946 8574.3428 Y +-7837.9136 8573.7256 -7836.4434 8573.5811 Y +-7835.7446 8573.0449 -7833.8921 8573.2881 Y +-7835.5024 8571.5771 -7837.9082 8572.9521 Y +f U U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 34) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884.0254 8586.0264 m +-7828.0542 8586.0264 L +-7828.0542 8524.5342 L +-7884.0254 8524.5342 L +-7884.0254 8586.0264 L +n u u 0 O +0.0745 0.9 0.9019 0.18 k +0 R +0 0 0 1 K +1 J 1 j 0.0518 w -7857.5991 8562.7217 m +-7857.3594 8573.5215 -7862.8794 8583.8398 v +-7862.4009 8586 -7860.959 8586 v +-7861.2002 8582.6406 -7860.2393 8582.1611 v +-7855.9199 8570.1602 -7856.6382 8562.2402 v +-7857.5991 8562.7217 l +b -7857.5991 8562.7217 m +-7859.2793 8568 -7871.0391 8569.2012 v +-7875.3594 8569.6807 -7875.5991 8571.1211 v +-7869.1206 8561.5195 -7868.1602 8561.7607 v +-7881.3594 8556.001 -7884 8550.7197 v +-7878.959 8553.6006 -7875.5991 8551.4404 v +-7867.6802 8551.2012 -7862.6406 8553.3613 v +-7858.8008 8555.2813 -7866.7202 8539.2012 v +-7862.8794 8550.9609 -7859.2793 8524.5605 v +-7858.3198 8529.8408 -7856.8799 8531.2813 v +-7850.8799 8538.9609 -7851.8398 8541.1211 v +-7852.3198 8544.9609 -7847.7598 8538.7207 v +-7848 8548.3213 -7850.4009 8551.6807 v +-7852.5591 8555.2813 -7846.5591 8553.1211 v +-7840.5591 8551.2012 -7835.2793 8552.8809 v +-7829.7598 8554.3203 -7828.0801 8551.4404 v +-7839.8398 8563.9209 -7845.5991 8563.6807 v +-7843.9194 8567.2813 l +-7841.519 8572.0811 -7842 8573.2813 v +-7857.2681 8563.8828 -7857.5991 8562.7217 v +b -7857.5991 8562.7217 m +-7854.959 8544.2402 -7857.5991 8536.5605 v +-7859.998 8526.001 -7859.2793 8524.5605 v +S -7856.1602 8551.4404 m +-7850.1602 8546.6406 -7848.959 8541.3604 v +S -7856.1602 8550.7197 m +-7865.0391 8543.041 -7866.7202 8539.2012 v +S -7828.0801 8551.4404 m +-7829.2793 8553.6006 -7857.3594 8561.7607 y +-7862.4009 8556.2422 -7873.9199 8553.8408 v +-7881.5986 8552.8809 -7884 8550.7197 v +S -7874.6382 8569.6807 m +-7863.1191 8560.5615 -7857.3594 8561.7607 y +-7843.1992 8568 -7842 8573.2813 v +S U U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 36) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7883.8496 8585.9961 m +-7833.96 8585.9961 L +-7833.96 8534.9258 L +-7883.8496 8534.9258 L +-7883.8496 8585.9961 L +n u 0 O +0.025 0.1 0.475 0 k +-7862.1504 8553.9043 m +-7864.4766 8552.8125 -7866.6914 8552.4434 -7868.373 8552.9238 c +-7869.0518 8553.1172 -7869.645 8553.4473 -7870.123 8553.9238 c +-7870.6006 8554.4023 -7870.9297 8554.9951 -7871.123 8555.6729 c +-7872.0088 8558.7715 -7870.0103 8563.6777 -7865.9233 8567.7666 c +-7861.834 8571.8535 -7856.9297 8573.8516 -7853.8286 8572.9668 c +-7853.1519 8572.7715 -7852.5586 8572.4424 -7852.0806 8571.9658 c +-7851.603 8571.4883 -7851.2754 8570.8955 -7851.082 8570.2168 c +-7850.5176 8568.2461 -7851.1226 8565.5449 -7852.6855 8562.7891 c +-7853.582 8561.21 -7854.791 8559.6133 -7856.2793 8558.123 c +-7858.1504 8556.2539 -7860.1914 8554.8242 -7862.1504 8553.9043 c +f u 0.0035 0.014 0.0665 0 k +-7861.2183 8552.9727 m +-7863.8306 8552.0215 -7866.3975 8551.9688 -7868.373 8552.9238 C +-7866.6914 8552.4434 -7864.4766 8552.8125 -7862.1504 8553.9043 c +-7861.6191 8554.1543 -7861.0806 8554.4434 -7860.543 8554.7676 C +-7858.8984 8554.0537 L +-7859.667 8553.6172 -7860.4434 8553.2539 -7861.2183 8552.9727 c +f 0.015 0.06 0.285 0 k +-7858.8984 8554.0537 m +-7860.543 8554.7676 L +-7859.0962 8555.6348 -7857.6426 8556.7607 -7856.2793 8558.123 c +-7856.1538 8558.25 -7856.0327 8558.3779 -7855.9102 8558.5059 C +-7855.2153 8556.8633 L +-7856.3706 8555.7236 -7857.6191 8554.7813 -7858.8984 8554.0537 C +f U u 0.039 0.156 0.741 0 k +-7849.687 8541.4043 m +-7849.9746 8541.6914 -7861.2183 8552.9727 Y +-7860.4434 8553.2539 -7859.667 8553.6172 -7858.8984 8554.0537 C +-7845.4146 8540.5703 L +-7847.061 8540.0996 -7848.6406 8540.3555 -7849.687 8541.4043 c +f 0.025 0.1 0.475 0 k +-7845.4146 8540.5703 m +-7858.8984 8554.0537 L +-7857.584 8554.8027 -7856.2969 8555.7754 -7855.1143 8556.957 c +-7855.084 8556.9863 -7855.0586 8557.0156 -7855.0278 8557.0449 C +-7841.3408 8543.3574 L +-7841.5264 8543.1328 -7841.7202 8542.9141 -7841.9302 8542.7012 c +-7843.0103 8541.623 -7844.2305 8540.9082 -7845.4146 8540.5703 C +f U u 0.0115 0.046 0.2185 0 k +-7835.9346 8550.3926 m +-7833.5337 8547.9893 -7833.335 8544.0898 -7835.1382 8540.6973 C +-7836.2954 8541.1182 L +-7834.0938 8544.4961 -7833.8398 8548.2949 -7835.9346 8550.3926 c +f 0.015 0.06 0.285 0 k +-7843.5337 8535.5957 m +-7842.582 8534.9258 L +-7845.2046 8534.3516 -7847.8306 8534.9141 -7849.6206 8536.7061 c +-7848.1719 8535.2578 -7845.9082 8534.9307 -7843.5337 8535.5957 C +f 0.0295 0.118 0.5605 0 k +-7843.5337 8535.5957 m +-7845.9082 8534.9307 -7848.1719 8535.2578 -7849.6206 8536.7061 c +-7851.019 8538.1055 -7851.3706 8540.2637 -7850.7954 8542.5469 C +-7848.8672 8539.5449 -7845.4082 8540.5537 V +-7843.585 8535.6309 L +-7843.5337 8535.5957 L +f *u +0.048 0.192 0.912 0 k +1 D +-7835.9346 8550.3926 m +-7837.2817 8551.7383 -7839.332 8552.1133 -7841.5234 8551.627 C +-7851.6714 8561.7734 L +-7851.7695 8561.5684 -7851.7695 8561.5684 -7851.6714 8561.7734 c +-7850.2246 8564.8145 -7849.9702 8567.916 -7851.082 8570.2168 C +-7850.5176 8568.2461 -7851.1226 8565.5449 -7852.6855 8562.7891 c +-7853.5054 8561.3438 -7854.5918 8559.8848 -7855.9102 8558.5059 C +-7855.2153 8556.8633 L +-7855.1816 8556.8945 -7855.1465 8556.9238 -7855.1143 8556.957 c +-7855.084 8556.9883 -7855.0566 8557.0176 -7855.0273 8557.0469 c +-7855.0278 8557.0469 -7855.0278 8557.0469 -7855.0278 8557.0449 C +-7841.3408 8543.3574 L +-7836.3262 8541.1289 L +-7836.2954 8541.1182 L +-7834.0938 8544.4961 -7833.8398 8548.2949 -7835.9346 8550.3926 c +f *U +0.0215 0.086 0.4085 0 k +0 D +-7842.582 8534.9258 m +-7843.5337 8535.5957 L +-7841.6846 8536.1113 -7839.7656 8537.2285 -7838.1138 8538.8828 c +-7837.4063 8539.5889 -7836.7998 8540.3418 -7836.2954 8541.1182 C +-7835.1382 8540.6973 L +-7835.6553 8539.7246 -7836.3374 8538.793 -7837.1802 8537.9512 c +-7838.7695 8536.3594 -7840.6758 8535.3428 -7842.582 8534.9258 C +f 0.0205 0.082 0.3895 0 k +-7836.2954 8541.1182 m +-7836.7998 8540.3418 -7837.4063 8539.5889 -7838.1138 8538.8828 c +-7839.7656 8537.2285 -7841.6846 8536.1113 -7843.5337 8535.5957 C +-7843.585 8535.6309 L +-7845.4082 8540.5537 L +-7844.2114 8540.9219 -7842.9878 8541.6436 -7841.9302 8542.7012 c +-7841.7202 8542.9141 -7841.5264 8543.1328 -7841.3408 8543.3574 C +-7836.3262 8541.1289 L +-7836.2954 8541.1182 L +f U u 0.445 0.356 0.267 0 k +-7883.8496 8585.9961 m +-7861.957 8562.9688 L +-7862.2007 8562.6494 -7862.5752 8562.6133 -7862.8887 8562.6592 C +-7867.1802 8567.2891 -7878.3145 8579.4561 -7882.7266 8584.2793 C +-7883.5649 8585.3516 -7884 8585.9932 -7883.8496 8585.9961 C +f 0.15 0.12 0.09 0 k +-7883.834 8585.9961 m +-7882.6606 8585.7031 -7861.6934 8564.0029 Y +-7861.6934 8563.502 -7861.7993 8563.1758 -7861.957 8562.9688 C +-7883.8496 8585.9961 L +-7883.8442 8585.9961 -7883.8418 8586 -7883.834 8585.9961 c +f 0.2 0.16 0.12 0 k +-7882.7266 8584.2793 m +-7878.3145 8579.4561 -7867.1802 8567.2891 -7862.8887 8562.6592 C +-7863.2002 8562.7041 -7863.4526 8562.8301 Y +-7864.603 8563.1328 -7878.5742 8578.9619 -7882.7266 8584.2793 C +f U U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 37) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7882.9502 8585.2324 m +-7833.0391 8585.2324 L +-7833.0391 8521.1152 L +-7882.9502 8521.1152 L +-7882.9502 8585.2324 L +n u 0 O +0 0 0 1 k +0 R +0 0 0 1 K +0 w -7833.2358 8521.1152 m +-7833.6064 8521.248 -7833.9858 8521.2832 -7834.3833 8521.2031 c +-7834.4863 8521.168 l +-7834.5254 8521.1602 -7834.5703 8521.1787 -7834.6025 8521.1992 c +-7834.9434 8521.3926 l +-7838.7129 8523.2959 -7842.0962 8525.8965 -7844.5 8529.4473 c +-7845.9634 8531.5918 -7847.123 8533.8789 -7848.7993 8535.8564 c +-7849.1729 8536.209 -7849.1758 8536.7725 -7848.834 8537.1309 c +-7848.4951 8537.501 -7847.918 8537.5078 -7847.561 8537.165 c +-7847.4038 8537.21 l +-7847.2642 8537.1289 -7847.0742 8537.0703 -7847.0234 8536.957 c +-7845.853 8534.2031 -7845.1895 8531.5137 -7843.4336 8529.1387 c +-7841.1719 8526.0947 -7838.1777 8523.9941 -7835.0298 8522.0234 c +-7834.3672 8521.6055 L +-7834.4966 8521.6348 L +-7833.7695 8521.6426 l +-7833.791 8521.6113 -7833.8008 8521.5957 -7833.8223 8521.5645 C +-7833.6064 8521.5234 -7833.377 8521.4746 -7833.1626 8521.4336 c +-7833.0762 8521.4238 -7833.0186 8521.3389 -7833.0391 8521.2383 c +-7833.0503 8521.1523 -7833.1382 8521.1084 -7833.2358 8521.1152 c +-7833.2358 8521.1152 l +b -7849.2222 8534.9951 m +-7849.5742 8534.8066 -7849.9658 8534.6719 -7850.248 8534.3887 c +-7856.4521 8528.1719 -7866.6802 8527.2734 -7874.0488 8533.6855 C +-7874.1582 8533.7813 -7874.1582 8533.957 -7874.063 8534.0645 C +-7871.0527 8532.9434 -7862.8838 8534.375 -7859.3223 8537.4121 C +-7859.2534 8537.4668 -7859.1465 8537.4531 -7859.1055 8537.3711 C +-7859.0503 8537.3047 -7859.0664 8537.1953 -7859.1328 8537.1563 C +-7862.5625 8534.0859 -7867.0674 8532.29 -7871.6729 8532.748 C +-7868.8535 8531.1855 -7865.6313 8530.4941 -7862.3984 8530.6885 c +-7857.7144 8530.9717 -7853.4634 8533.1191 -7849.3711 8535.2793 c +-7849.291 8535.3193 -7849.1978 8535.293 -7849.1553 8535.2109 C +-7849.1016 8535.1309 -7849.1426 8535.0352 -7849.2222 8534.9951 c +b -7858.647 8536.3359 m +-7860.2266 8540.3613 -7862.3911 8544.3203 -7865.8018 8547.0762 c +-7865.9648 8547.2119 -7865.9946 8547.4492 -7865.8711 8547.6055 c +-7865.7344 8547.7676 -7865.5049 8547.7793 -7865.3481 8547.6563 c +-7861.123 8545.5967 -7858.1904 8541.1309 -7858.1626 8536.4014 c +-7858.1626 8536.4014 l +-7858.1328 8536.2676 -7858.2354 8536.1348 -7858.3633 8536.1221 c +-7858.5039 8536.1055 -7858.6318 8536.1973 -7858.647 8536.3359 c +-7858.647 8536.3359 l +b -7852.9414 8541.0176 m +-7853.042 8541.1816 -7853.1152 8541.3838 -7853.2617 8541.4824 c +-7856.0806 8543.3906 -7858.9785 8544.6309 -7861.8848 8546.1328 c +-7862.0503 8546.209 -7862.1118 8546.418 -7862.0313 8546.5703 c +-7861.9512 8546.7227 -7861.7559 8546.7793 -7861.5898 8546.7041 c +-7858.439 8545.3232 -7854.313 8544.5 -7852.6729 8541.1797 c +-7852.6289 8541.1113 -7852.6455 8541.0146 -7852.7266 8540.9648 c +-7852.7959 8540.9199 -7852.897 8540.9492 -7852.9414 8541.0176 c +-7852.9414 8541.0176 l +b -7852.6602 8541.918 m +-7852.4438 8542.4297 -7852.1431 8542.8896 -7852.0503 8543.4355 c +-7851.2183 8548.2773 -7851.1152 8553.042 -7852.248 8557.6875 c +-7852.248 8557.6875 l +-7852.3418 8557.9531 -7852.2114 8558.2441 -7851.9438 8558.3389 c +-7851.6777 8558.4336 -7851.3882 8558.3125 -7851.2935 8558.0479 c +-7849.293 8552.8115 -7849.897 8546.7373 -7852.3711 8541.7832 c +-7852.4063 8541.7002 -7852.498 8541.6689 -7852.582 8541.6914 c +-7852.6641 8541.7275 -7852.6978 8541.835 -7852.6602 8541.918 c +-7852.6602 8541.918 l +b -7851.5352 8557.5938 m +-7848.8984 8555.2275 -7846.6816 8552.252 -7845.853 8548.7363 c +-7845.853 8548.7363 l +-7845.7246 8548.1816 -7846.0742 8547.623 -7846.6416 8547.4902 c +-7847.1992 8547.375 -7847.7578 8547.7246 -7847.8862 8548.2793 c +-7848.5649 8551.5313 -7849.8711 8554.6729 -7851.7954 8557.3867 c +-7851.7954 8557.3867 l +-7851.8462 8557.4551 -7851.834 8557.5576 -7851.7695 8557.6201 c +-7851.6992 8557.6699 -7851.5977 8557.6582 -7851.5352 8557.5938 c +-7851.5352 8557.5938 l +b -7836.3711 8550.1826 m +-7837.7114 8545.8301 -7840.2598 8542.0693 -7843.689 8539.1533 C +-7843.729 8539.0723 -7843.8242 8539.0322 -7843.9038 8539.0859 C +-7843.9863 8539.127 -7844.0122 8539.2207 -7843.9722 8539.3018 C +-7843.957 8539.7891 -7843.7144 8540.2334 -7843.4458 8540.5313 c +-7838.4063 8546.1621 -7834.9902 8554.7197 -7837.3433 8561.9551 C +-7837.0762 8556.4512 -7838.7241 8550.3008 -7842.1362 8545.6738 c +-7843.1606 8544.2695 -7844.7422 8544.1211 -7846.3081 8544.2031 C +-7846.4023 8544.1895 -7846.4834 8544.2432 -7846.4961 8544.3369 c +-7846.5098 8544.4189 -7846.4551 8544.5137 -7846.3623 8544.5254 C +-7843.1479 8545.7695 -7841.4878 8549.2246 -7840.084 8552.1943 c +-7838.415 8555.7441 -7837.7017 8559.6387 -7838.0054 8563.5 C +-7838.0454 8563.6777 -7838.1138 8565.3975 -7837.9775 8565.4102 C +-7837.8306 8565.4395 -7837.709 8565.3438 -7837.6802 8565.1943 C +-7837.645 8565.0449 -7834.6426 8555.7988 -7836.3711 8550.1826 c +b -7844.4863 8537.4912 m +-7843.3945 8533.6211 -7841.1094 8530.251 -7838.4824 8527.2383 c +-7838.3306 8527.1045 -7838.3145 8526.8867 -7838.4502 8526.7354 c +-7838.5752 8526.6006 -7838.8047 8526.582 -7838.957 8526.7178 c +-7842.3306 8529.332 -7843.4487 8533.541 -7844.7954 8537.375 c +-7844.7954 8537.375 l +-7844.8262 8537.4648 -7844.7754 8537.5586 -7844.6982 8537.5869 c +-7844.6094 8537.6191 -7844.5166 8537.5684 -7844.4863 8537.4912 c +-7844.4863 8537.4912 l +b -7838.5313 8562.1094 m +-7838.5991 8562.0566 -7838.707 8562.083 -7838.748 8562.1504 C +-7838.9634 8562.4746 -7840.6914 8564.5195 -7841.3926 8565.1406 c +-7846.1719 8569.3945 -7849.5137 8573.9609 -7857.5391 8577.7227 c +-7864.4512 8580.9639 -7867.1113 8583.5957 -7874.3862 8581.8262 c +-7877.687 8581.0293 -7879.0313 8580.5313 -7880.4351 8575.4551 C +-7881.9473 8569.2988 -7880.8672 8571.7832 -7881.084 8564.4385 c +-7881.2222 8559.6973 -7884 8548.4551 -7871.5254 8534.2598 C +-7871.4199 8534.1484 -7871.4336 8533.9961 -7871.5337 8533.9072 C +-7871.6328 8533.8027 -7871.7959 8533.8164 -7871.8862 8533.916 C +-7877.5786 8538.7168 -7881.0234 8545.6582 -7882.3145 8552.9424 c +-7883.2871 8558.4668 -7882.9199 8563.25 -7882.666 8569.6367 c +-7882.5688 8572.0938 -7883.6855 8579.0723 -7878.9102 8583.0625 c +-7875.3926 8586 -7870.3911 8585.5469 -7866.3545 8584.1563 c +-7860.6992 8582.2119 -7855.9727 8579.1465 -7850.8711 8575.6094 c +-7847.2656 8573.125 -7839.2881 8563.2852 -7838.4785 8562.3262 C +-7838.4351 8562.2588 -7838.4502 8562.1504 -7838.5313 8562.1094 C +b -7873.0503 8549.3057 m +-7872.168 8548.5029 -7871.7017 8549.8457 -7871.4297 8550.6016 c +-7871.1626 8551.3574 -7870.189 8551.25 -7870.5127 8551.5732 c +-7870.8369 8551.8975 -7870.8369 8551.9521 -7871.3232 8551.5195 c +-7871.8086 8551.0879 -7871.8086 8551.7363 -7872.5649 8551.25 c +-7873.3198 8550.7627 -7873.645 8549.8457 -7873.0503 8549.3057 c +b -7865.6519 8553.9492 m +-7865.3657 8553.5918 -7864.6802 8553.5723 -7864.4648 8553.8945 c +-7864.25 8554.2197 -7863.3306 8554.2734 -7863.4937 8554.5967 c +-7863.6543 8554.9219 -7863.6016 8555.1387 -7864.0874 8554.9219 c +-7864.5737 8554.7051 -7864.4121 8555.2998 -7864.897 8555.084 c +-7865.3833 8554.8672 -7865.8687 8554.2197 -7865.6519 8553.9492 c +b -7857.6074 8559.0791 m +-7857.1206 8558.7559 -7855.8794 8559.5117 -7856.4727 8559.5117 c +-7857.0674 8559.5117 -7856.311 8560.2676 -7856.8521 8560.4834 c +-7857.3906 8560.6992 -7857.2832 8560.4297 -7857.6074 8560.6445 c +-7857.9297 8560.8613 -7858.3633 8561.2393 -7858.5239 8560.4297 c +-7858.6855 8559.6191 -7858.3633 8559.6191 -7857.9849 8559.3496 c +-7857.6074 8559.0791 -7857.6074 8559.0791 y +b -7872.2402 8559.3496 m +-7871.1074 8559.2422 -7871.8633 8559.998 -7871.269 8560.4834 c +-7870.6738 8560.9697 -7869.918 8561.6172 -7870.729 8561.4004 c +-7871.5391 8561.1855 -7872.9961 8561.6719 -7872.9434 8560.5381 c +-7872.8887 8559.4033 -7872.6328 8559.3867 -7872.2402 8559.3496 c +b -7866.5703 8567.6113 m +-7866.1016 8567.3438 -7866.6802 8567.7197 -7866.0303 8567.6113 c +-7865.3833 8567.5039 -7864.7886 8567.6113 -7865.2207 8567.8281 c +-7865.6519 8568.0439 -7866.3008 8568.1523 -7866.4634 8567.9893 c +-7866.625 8567.8281 -7866.9473 8567.8281 -7866.5703 8567.6113 c +b -7857.0674 8567.1797 m +-7857.4785 8566.1797 -7856.0962 8566.4238 -7855.4473 8566.7461 c +-7854.7998 8567.0723 -7853.8262 8566.4775 -7854.4209 8566.9102 c +-7855.0137 8567.3418 -7854.7998 8566.9102 -7855.3926 8567.2334 c +-7855.9873 8567.5566 -7856.6895 8568.0977 -7857.0674 8567.1797 c +b -7872.6738 8573.0664 m +-7872.7222 8572.0752 -7871.8086 8572.957 -7871.269 8573.0117 c +-7870.729 8573.0664 -7870.0801 8573.0664 -7870.2432 8573.2813 c +-7870.4038 8573.498 -7870.459 8573.498 -7871.1626 8573.7129 c +-7871.8633 8573.9297 -7872.6191 8574.1445 -7872.6738 8573.0664 c +b -7873.1582 8567.6113 m +-7874.0664 8567.9746 -7874.293 8567.8809 -7874.5625 8568.2051 c +-7874.834 8568.5293 -7875.1558 8569.2314 -7875.5352 8568.0977 c +-7875.9121 8566.9629 -7875.4282 8565.7764 -7875.0479 8565.9375 c +-7874.6714 8566.0996 -7874.293 8566.7461 -7873.8618 8566.9629 c +-7873.4297 8567.1797 -7872.6191 8567.3945 -7873.1582 8567.6113 c +b U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 41) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884 8586 m +-7803 8586 L +-7803 8481 L +-7884 8481 L +-7884 8586 L +n u u u 0 O +0 0 0 1 k +-7865.8057 8498.4258 m +-7866.0742 8496.6621 -7867.1602 8495.291 -7868.5239 8495.3965 c +-7869.8862 8495.502 -7870.707 8497.0234 -7870.7432 8498.8066 c +-7870.748 8499.0693 -7870.6743 8500.2441 -7870.6304 8500.4775 C +-7870.6382 8500.582 -7870.6191 8500.6738 -7870.6104 8500.7803 c +-7870.5142 8502.0254 -7869.3574 8503.3604 -7867.9414 8503.25 c +-7866.5249 8503.1406 -7865.4897 8501.8613 -7865.6367 8500.4727 c +-7865.644 8500.4072 -7865.6958 8499.626 -7865.707 8499.5625 C +-7865.6816 8499.2852 -7865.7598 8498.7256 -7865.8057 8498.4258 c +f -7876.2646 8507.7334 m +-7876.9946 8515.916 -7871.5015 8515.1191 v +-7868.3682 8514.0186 -7869.4414 8511.1211 v +-7869.6426 8509.752 -7871.7847 8508.498 v +-7872.146 8508.25 -7872.7632 8507.1016 v +-7873.1294 8505.5977 -7874.5186 8505.2979 v +-7876.0762 8505.251 -7876.2646 8507.7334 v +f -7850.7646 8516.4971 m +F -7850.0762 8514.3408 m +-7850.7847 8513.1934 -7853.8848 8513.6279 Y +-7854.811 8513.6885 -7855.3799 8513.1113 Y +-7857.8394 8509.0918 -7861.0386 8509.8857 -7861.4082 8509.9932 C +-7861.4097 8509.9863 L +-7864.999 8510.6045 -7865.2666 8515.6035 V +-7865.4912 8516.3828 -7866.335 8516.7695 V +-7869.2695 8517.8613 -7869.3481 8519.208 V +-7869.8999 8521.1152 -7867.6006 8521.7422 V +-7865.6792 8522.2568 -7863.7886 8519.8945 V +-7862.6113 8518.6797 -7859.5762 8517.9395 V +-7859.5728 8517.9531 L +-7856.3594 8517.0459 -7854.6392 8517.5889 Y +-7851.8521 8518.7676 -7850.4063 8517.4014 Y +-7848.6826 8515.7559 -7850.0762 8514.3408 Y +f -7863.9834 8497.8789 m +-7864.5854 8496.2002 -7864.2822 8494.4775 -7863.0327 8493.9229 c +-7861.7842 8493.3672 -7860.3384 8494.3164 -7859.4585 8495.8672 c +-7859.3286 8496.0957 -7858.8359 8497.165 -7858.7632 8497.3906 C +-7858.7065 8497.4785 -7858.6792 8497.5684 -7858.6362 8497.667 c +-7858.1289 8498.8086 -7858.5122 8500.5303 -7859.8105 8501.1074 c +-7861.1089 8501.6855 -7862.6279 8501.0527 -7863.1582 8499.7617 c +-7863.1831 8499.7002 -7863.5078 8498.9883 -7863.5298 8498.9268 C +-7863.6831 8498.6963 -7863.8809 8498.166 -7863.9834 8497.8789 c +f -7849.7129 8500.9316 m +-7845.1802 8507.7822 -7850.3911 8509.6943 v +-7853.6714 8510.2168 -7854.103 8507.1572 v +-7854.5786 8505.8564 -7853.29 8503.7354 v +-7853.0903 8503.3447 -7853.0938 8502.04 v +-7853.4858 8500.5449 -7852.4082 8499.6182 v +-7851.0591 8498.8359 -7849.7129 8500.9316 v +f U u -7824.7358 8550.1074 m +-7824.3687 8548.3623 -7824.9048 8546.6963 -7826.2183 8546.3164 c +-7827.5322 8545.9375 -7828.8345 8547.0752 -7829.4937 8548.7324 c +-7829.5903 8548.9775 -7829.9326 8550.1025 -7829.9746 8550.3369 C +-7830.0176 8550.4326 -7830.0322 8550.5244 -7830.0625 8550.6279 c +-7830.4087 8551.8271 -7829.7935 8553.4805 -7828.4282 8553.875 c +-7827.063 8554.2695 -7825.645 8553.4365 -7825.2969 8552.085 c +-7825.2793 8552.0205 -7825.0552 8551.2705 -7825.0425 8551.207 C +-7824.9214 8550.9551 -7824.7983 8550.4053 -7824.7358 8550.1074 c +f -7838.2705 8554.6172 m +-7841.8242 8562.0244 -7836.3999 8563.2061 v +-7833.0801 8563.2754 -7833.0688 8560.1846 v +-7832.7778 8558.8311 -7834.3433 8556.9072 v +-7834.5942 8556.5459 -7834.7695 8555.2539 v +-7834.5854 8553.7188 -7835.7793 8552.9492 v +-7837.2222 8552.3594 -7838.2705 8554.6172 v +f -7817.4648 8571.7695 m +F -7816.063 8569.9912 m +-7816.3247 8568.6689 -7819.3799 8567.9883 Y +-7820.27 8567.7197 -7820.5986 8566.9795 Y +-7821.4922 8562.3535 -7824.7666 8561.9746 -7825.1494 8561.9453 C +-7825.1494 8561.9395 L +-7828.7271 8561.2588 -7830.731 8565.8467 V +-7831.2153 8566.4961 -7832.1416 8566.5625 V +-7835.272 8566.5557 -7835.8169 8567.7891 V +-7837.0039 8569.3809 -7835.0713 8570.7764 V +-7833.4526 8571.9316 -7830.853 8570.3818 V +-7829.3242 8569.6582 -7826.2222 8570.0293 V +-7826.2231 8570.042 L +-7822.896 8570.3213 -7821.4766 8571.4326 Y +-7819.2793 8573.5146 -7817.4463 8572.7432 Y +-7815.2554 8571.8057 -7816.063 8569.9912 Y +f -7822.8374 8550.2354 m +-7822.813 8548.4512 -7821.9258 8546.9453 -7820.5601 8546.8633 c +-7819.1943 8546.7803 -7818.1743 8548.1768 -7817.895 8549.9385 c +-7817.854 8550.1973 -7817.7666 8551.3711 -7817.7778 8551.6094 C +-7817.7559 8551.7109 -7817.7617 8551.8037 -7817.7559 8551.9121 c +-7817.6807 8553.1592 -7818.644 8554.6367 -7820.0625 8554.7217 c +-7821.4814 8554.8066 -7822.6826 8553.6826 -7822.7246 8552.2871 c +-7822.7271 8552.2217 -7822.7822 8551.4404 -7822.7798 8551.375 C +-7822.8433 8551.1045 -7822.8423 8550.54 -7822.8374 8550.2354 c +f -7811.0186 8557.5625 m +-7809.1777 8565.5684 -7814.7271 8565.5303 v +-7817.9834 8564.8691 -7817.3154 8561.8516 v +-7817.3032 8560.4668 -7815.353 8558.9326 v +-7815.0278 8558.6377 -7814.5742 8557.415 v +-7814.417 8555.876 -7813.083 8555.3877 v +-7811.5454 8555.1279 -7811.0186 8557.5625 v +f U U 1 Ap +-7884 8586 m +-7884 8481 L +-7803 8481 L +-7803 8586 L +-7884 8586 L +n U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 42) +0 A +u 0 Ap +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7857.4609 8559.085 m +-7885 8559.085 L +-7885 8586.624 L +-7857.4609 8586.624 L +-7857.4609 8559.085 L +n 0 O +0 0.55 1 0.12 k +-7871.7598 8577.3623 m +-7871.7598 8587 L +-7870.6343 8587 L +-7870.6343 8577.3623 L +-7871.7598 8577.3623 L +f 0 0.55 1 0.3 k +-7875.4233 8572.876 m +-7874.3096 8571.1553 -7870.8809 8569.457 -7866.4966 8569.457 c +-7862.1152 8569.457 -7858.6138 8571.1064 -7857.5718 8572.874 C +-7857.5718 8572.874 L +-7858.6138 8574.6006 -7862.1152 8576.2979 -7866.4966 8576.2979 c +-7870.875 8576.2979 -7874.3242 8574.5615 -7875.4233 8572.876 C +f U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 45) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7885 8543.918 m +-7885 8587 L +-7798.2217 8587 L +-7798.2217 8543.918 L +-7885 8543.918 L +n u u 0 O +0 0 0 1 k +-7825.2217 8573.2363 m +-7825.2217 8581.0742 L +-7813.2217 8574.1445 L +-7801.2217 8567.2168 L +-7813.2217 8560.2891 L +-7825.2217 8553.3613 L +-7825.2217 8561.4824 L +-7883.9351 8547.7168 L +-7870.9878 8566.8027 L +-7885 8587 L +-7825.2217 8573.2363 L +f 0 1 1 0.1 k +0 R +0 0 0 1 K +-7823.2217 8570.2363 m +-7823.2217 8578.0742 L +-7811.2217 8571.1445 L +-7799.2217 8564.2168 L +-7811.2217 8557.2891 L +-7823.2217 8550.3613 L +-7823.2217 8558.4824 L +-7881.9351 8544.7168 L +-7867.2754 8564.3594 L +-7881.9351 8584 L +-7823.2217 8570.2363 L +b U U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 50) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884 8586 m +-7756.877 8586 L +-7756.877 8538.415 L +-7884 8538.415 L +-7884 8586 L +n u *u +0 O +0.9529 0.949 0.1961 0.0745 k +-7857.793 8570.417 m +-7857.8232 8570.2676 L +-7859.9849 8564.3643 -7860.9438 8561.6377 -7861.2754 8560.2891 c +-7861.3657 8560.2891 L +-7861.6953 8561.6074 -7862.7754 8564.335 -7864.9673 8570.2676 c +-7864.9966 8570.417 L +-7857.793 8570.417 l +f 1 D +-7868.1182 8578.9678 m +-7869.6191 8582.5371 -7870.3994 8584.709 -7868.1182 8584.917 c +-7868.1182 8585.9678 L +-7870.6992 8585.9375 -7873.5806 8585.917 -7876.3418 8585.917 c +-7880.0649 8585.917 -7882.5273 8585.9375 -7884 8585.9678 c +-7884 8584.917 L +-7882.1064 8584.709 -7881.0542 8582.5674 -7873.5513 8565.5029 c +-7861.6953 8538.415 L +-7859.8638 8538.415 L +-7848.1582 8565.5029 L +-7840.8047 8582.5078 -7839.7246 8584.709 -7837.8887 8584.917 c +-7837.8887 8585.9678 L +-7839.5142 8585.9375 -7841.916 8585.917 -7845.5767 8585.917 c +-7848.5488 8585.917 -7851.6694 8585.9375 -7854.7026 8585.9678 c +-7854.7026 8584.917 L +-7852.481 8584.709 -7853.3218 8582.5078 -7854.7617 8578.9678 C +-7868.1182 8578.9678 l +f *U +*u +0 D +-7813.0762 8554.0811 m +-7813.0762 8550.4717 -7815.3535 8548.0947 -7819.1294 8548.0947 c +-7820.2383 8548.0947 -7821.0767 8548.2158 -7821.5273 8548.2451 c +-7821.5273 8560.5479 L +-7820.8672 8560.6084 -7820.208 8560.6084 -7819.729 8560.6084 c +-7818.2002 8560.6084 -7816.7026 8560.127 -7815.6841 8559.4053 c +-7814.3945 8558.5332 -7813.0762 8556.7881 -7813.0762 8554.1416 C +-7813.0762 8554.0811 l +f 1 D +-7832.0806 8558.3926 m +-7832.0806 8542.6445 -7832.0806 8540.4287 -7834.542 8540.2783 c +-7834.542 8539.3184 L +-7833.042 8539.2588 -7830.3174 8539.1992 -7827.5664 8539.1689 c +-7825.6538 8539.1084 -7822.3945 8539.0186 -7820.1479 8538.9775 c +-7816.582 8538.9775 -7813.585 8539.4258 -7811.0049 8540.2627 c +-7806.353 8541.8477 -7801.9702 8545.8525 -7801.9702 8553.6602 c +-7801.9702 8558.7432 -7804.4014 8562.3193 -7806.5034 8564.0605 c +-7807.583 8565.0215 -7808.8135 8565.832 -7809.7744 8566.3125 c +-7809.7744 8566.4629 L +-7807.5234 8569.4912 -7805.6025 8572.0625 -7799.3906 8580.6426 c +-7797.5 8583.0645 -7795.9102 8584.7383 -7794.7402 8584.9775 c +-7794.7402 8586 L +-7796.6602 8586 -7799 8585.8848 -7801.1294 8585.8848 c +-7803.3511 8585.8848 -7804.8521 8586 -7806.4424 8586 c +-7807.6729 8586 -7808.7241 8585.9404 -7809.5039 8585.2725 c +-7813.0151 8579.8477 -7816.9121 8573.7559 -7820.1182 8568.7139 c +-7820.5078 8568.7139 -7820.957 8568.7139 -7821.5273 8568.7139 c +-7821.5273 8571.2852 L +-7821.5273 8582.5264 -7821.437 8584.7686 -7819.1895 8584.9775 c +-7819.1895 8585.9697 L +-7820.6279 8585.9404 -7823.9194 8585.915 -7826.6992 8585.915 c +-7829.9287 8585.915 -7832.8921 8585.9404 -7834.5122 8585.9697 c +-7834.5122 8584.9775 L +-7832.0518 8584.7686 -7832.0806 8582.5264 -7832.0806 8565.5918 C +-7832.0806 8558.3926 l +f *U +*u +0 D +-7781.4561 8565.5928 m +-7781.4561 8582.4941 -7781.4561 8584.6484 -7784.2832 8584.9775 C +-7784.2832 8585.9697 l +-7782.3887 8585.9404 -7779.0542 8585.915 -7775.7822 8585.915 c +-7772.6294 8585.915 -7769.5688 8585.9404 -7767.2881 8585.9697 C +-7767.2881 8584.9775 l +-7770.2578 8584.9775 -7770.2881 8582.5244 -7770.2881 8565.5928 C +-7770.2881 8548.1514 L +-7762.8193 8548.1514 l +-7759.999 8548.1514 -7758.5298 8548.96 -7757.8994 8551.2627 C +-7756.9072 8551.2627 l +-7756.9072 8546.4697 -7756.877 8542.415 -7756.877 8539.1709 c +-7761.3486 8539.2012 -7766.748 8539.2314 -7772.0601 8539.2314 C +-7779.7446 8539.2314 l +-7784.5537 8539.2314 -7789.9966 8539.2012 -7794.9614 8539.1709 c +-7794.9614 8542.3848 -7794.9326 8546.4697 -7794.9326 8551.2627 C +-7793.9072 8551.2627 l +-7793.3657 8549.1094 -7791.771 8548.1514 -7788.9438 8548.1514 C +-7781.4561 8548.1514 l +-7781.4561 8565.5928 L +f *U +U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 62) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7885 8587 m +-7885 8548.7305 L +-7846.7305 8548.7305 L +-7846.7305 8587 L +-7885 8587 L +n 0 O +1 0.14 0.09 0 k +-7846.7305 8569.9043 m +-7846.7305 8561.3408 L +-7885 8561.3408 L +-7885 8569.9043 L +-7846.7305 8569.9043 L +f -7846.7305 8573.0967 m +-7846.7305 8572.4229 L +-7885 8572.4229 L +-7885 8573.0967 L +-7846.7305 8573.0967 L +f U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 63) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7885 8587 m +-7885 8548.7305 L +-7846.7305 8548.7305 L +-7846.7305 8587 L +-7885 8587 L +n 0 O +1 0.14 0.09 0 k +-7846.7305 8565.8262 m +-7846.7305 8574.3896 L +-7859.3408 8574.3896 L +-7859.3408 8587 L +-7867.9038 8587 L +-7867.9063 8565.8262 L +-7867.9038 8565.8262 L +-7867.9038 8565.8252 L +-7846.7305 8565.8262 L +f -7846.7305 8563.3076 m +-7870.4233 8563.3076 L +-7870.4233 8587 L +-7871.0967 8587 L +-7871.0977 8562.6328 L +-7846.7305 8562.6328 L +-7846.7305 8563.3076 L +f U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 64) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7885 8586.999 m +-7885 8548.7285 L +-7846.7305 8548.7285 L +-7846.7305 8586.999 L +-7885 8586.999 L +n 0 O +1 0.14 0.09 0 k +-7846.7305 8561.3389 m +-7872.3896 8561.3389 L +-7872.3896 8586.999 L +-7863.8262 8587 L +-7863.8262 8569.9033 L +-7846.7305 8569.9033 L +-7846.7305 8561.3389 L +f -7846.7305 8572.4219 m +-7861.3081 8572.4219 L +-7861.3081 8587 L +-7860.6338 8587 L +-7860.6338 8573.0957 L +-7846.7305 8573.0957 L +-7846.7305 8572.4219 L +f U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 65) +0 A +u 1 Ap +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7857.0625 8559.4609 m +-7884.6025 8559.4609 L +-7884.6025 8587 L +-7857.0625 8587 L +-7857.0625 8559.4609 L +n 0 O +0 0.55 1 0.12 k +-7856.8418 8572.7002 m +-7885 8572.7002 L +-7885 8573.8252 L +-7856.8418 8573.8252 L +-7856.8418 8572.7002 L +f u 0 0.55 1 0.3 k +-7883.9814 8560.5215 m +-7884.4102 8562.5254 -7883.1865 8566.1514 -7880.0874 8569.251 c +-7876.9878 8572.3496 -7873.3457 8573.6602 -7871.3594 8573.1455 C +-7871.3594 8573.1455 L +-7870.875 8571.1895 -7872.1519 8567.5117 -7875.25 8564.4141 c +-7878.3457 8561.3184 -7882.0122 8560.1064 -7883.9814 8560.5215 C +f 0 0.39 0.7 0.12 k +-7883.9814 8585.9912 m +-7884.4102 8583.9883 -7883.1865 8580.3613 -7880.0874 8577.2617 c +-7876.9878 8574.1641 -7873.3457 8572.8535 -7871.3594 8573.3672 C +-7871.3594 8573.3672 L +-7870.875 8575.3242 -7872.1519 8579.001 -7875.25 8582.0996 c +-7878.3457 8585.1953 -7882.0122 8586.4063 -7883.9814 8585.9912 C +f U u 0 0.55 1 0.3 k +-7870.1782 8585.9912 m +-7870.6074 8583.9883 -7869.3838 8580.3613 -7866.2842 8577.2617 c +-7863.1855 8574.1641 -7859.543 8572.8535 -7857.5576 8573.3672 C +-7857.5566 8573.3672 L +-7857.0718 8575.3242 -7858.3496 8579.001 -7861.4473 8582.0996 c +-7864.543 8585.1953 -7868.209 8586.4063 -7870.1782 8585.9912 C +f 0 0.39 0.7 0.12 k +-7870.1782 8560.5215 m +-7870.6074 8562.5254 -7869.3838 8566.1514 -7866.2842 8569.251 c +-7863.1855 8572.3496 -7859.543 8573.6602 -7857.5576 8573.1455 C +-7857.5566 8573.1455 L +-7857.0718 8571.1895 -7858.3496 8567.5117 -7861.4473 8564.4141 c +-7864.543 8561.3184 -7868.209 8560.1064 -7870.1782 8560.5215 C +f U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 67) +0 A +u 0 Ap +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7857.4609 8559.085 m +-7885 8559.085 L +-7885 8586.624 L +-7857.4609 8586.624 L +-7857.4609 8559.085 L +n 0 O +0 0.55 1 0.12 k +-7871.7598 8577.3623 m +-7871.7598 8587 L +-7870.6343 8587 L +-7870.6343 8577.3623 L +-7871.7598 8577.3623 L +f 0 0.55 1 0.3 k +-7875.4233 8572.876 m +-7874.3096 8571.1553 -7870.8809 8569.457 -7866.4966 8569.457 c +-7862.1152 8569.457 -7858.6138 8571.1064 -7857.5718 8572.874 C +-7857.5718 8572.874 L +-7858.6138 8574.6006 -7862.1152 8576.2979 -7866.4966 8576.2979 c +-7870.875 8576.2979 -7874.3242 8574.5615 -7875.4233 8572.876 C +f U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 69) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7857.4609 8559.4609 m +-7885 8559.4609 L +-7885 8587 L +-7857.4609 8587 L +-7857.4609 8559.4609 L +n 0 O +0 0.55 1 0.3 k +-7875.4233 8573.252 m +-7874.3096 8571.5313 -7870.8809 8569.833 -7866.4966 8569.833 c +-7862.1152 8569.833 -7858.6138 8571.4824 -7857.5718 8573.25 C +-7857.5718 8573.25 L +-7858.6138 8574.9766 -7862.1152 8576.6738 -7866.4966 8576.6738 c +-7870.875 8576.6738 -7874.3242 8574.9375 -7875.4233 8573.252 C +f U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 83) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884 8585.9355 m +-7670.4009 8585.9355 L +-7670.4009 8578.1348 L +-7884 8578.1348 L +-7884 8585.9355 L +n 0 O +0 0 0 1 k +-7884 8582.0352 m +-7873.9858 8584.5273 -7867.187 8585.875 -7855.2007 8585.9355 c +-7842.2183 8586 -7777.2002 8585.9355 y +-7712.1816 8586 -7699.2002 8585.9355 v +-7687.2129 8585.875 -7680.415 8584.5273 -7670.4009 8582.0352 C +-7680.415 8579.543 -7687.2129 8578.1953 -7699.2002 8578.1348 c +-7712.1816 8578.0693 -7777.2002 8578.1348 y +-7842.2183 8578.0693 -7855.2007 8578.1348 v +-7867.187 8578.1953 -7873.9858 8579.543 -7884 8582.0352 C +f U %AI8_EndBrushPattern +%AI5_End_NonPrinting-- +%AI5_Begin_NonPrinting +Np +4 Bn +%AI5_BeginGradient: (Black, White) +(Black, White) 0 2 Bd +[ +< +FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 +D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 +AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 +87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 +5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 +37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 +0F0E0D0C0B0A09080706050403020100 +> +0 %_Br +[ +0 0 50 100 %_BS +%_0 0 50 100 Bs +1 0 50 0 %_BS +%_1 0 50 0 Bs +BD +%AI5_EndGradient +%AI5_BeginGradient: (Chrome) +(Chrome) 0 6 Bd +[ +0 +< +464646454545444444444343434342424241414141404040403F3F3F3E3E3E3E3D3D3D3C3C3C3C3B +3B3B3B3A3A3A39393939383838383737373636363635353535343434333333333232323131313130 +3030302F2F2F2E2E2E2E2D2D2D2D2C2C2C2B2B2B2B2A2A2A2A292929282828282727272626262625 +2525252424242323232322222222212121202020201F1F1F1F1E1E1E1D1D1D1D1C1C1C1B1B1B1B1A +1A1A1A1919191818181817171717161616151515151414141413131312121212111111101010100F +0F0F0F0E0E0E0D0D0D0D0C0C0C0C0B0B0B0A0A0A0A09090909080808070707070606060505050504 +04040403030302020202010101010000 +> +< +FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 +D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 +AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 +87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 +5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 +37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 +0F0E0D0C0B0A09080706050403020100 +> +< +1F1E1E1E1E1E1E1E1E1E1D1D1D1D1D1D1D1D1C1C1C1C1C1C1C1C1B1B1B1B1B1B1B1B1B1A1A1A1A1A +1A1A1A19191919191919191818181818181818181717171717171717161616161616161615151515 +15151515151414141414141414131313131313131312121212121212121211111111111111111010 +1010101010100F0F0F0F0F0F0F0F0F0E0E0E0E0E0E0E0E0D0D0D0D0D0D0D0D0C0C0C0C0C0C0C0C0C +0B0B0B0B0B0B0B0B0A0A0A0A0A0A0A0A090909090909090909080808080808080807070707070707 +07060606060606060606050505050505050504040404040404040303030303030303030202020202 +02020201010101010101010000000000 +> +1 %_Br +0 +0.275 +1 +< +6B6A696867666564636261605F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544 +434241403F3E3D3C3B3A393837363534333231302F2E2D2C2B2A292827262524232221201F +> +1 %_Br +0 +< +00000101010102020202030303040404040505050606060607070707080808090909090A0A0A0A0B +0B0B0C0C0C0C0D0D0D0D0E0E0E0F0F0F0F1010101111111112121212131313141414141515151516 +161617171717181818181919191A1A1A1A1B1B1B1C1C1C1C1D1D1D1D1E1E1E1F1F1F1F2020202021 +212122222222232323232424242525252526262627272727282828282929292A2A2A2A2B2B2B2B2C +2C2C2D2D2D2D2E2E2E2E2F2F2F303030303131313232323233333333343434353535353636363637 +373738383838393939393A3A3A3B3B3B3B3C3C3C3D3D3D3D3E3E3E3E3F3F3F404040404141414142 +42424343434344444444454545464646 +> +< +000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 +28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F +505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 +78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F +A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 +C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF +F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF +> +< +00000101020203030304040505050606070708080809090A0A0B0B0B0C0C0D0D0D0E0E0F0F101010 +1111121212131314141515151616171718181819191A1A1A1B1B1C1C1D1D1D1E1E1F1F1F20202121 +222222232324242525252626272727282829292A2A2A2B2B2C2C2D2D2D2E2E2F2F2F303031313232 +32333334343435353636373737383839393A3A3A3B3B3C3C3C3D3D3E3E3F3F3F4040414142424243 +4344444445454646474747484849494A4A4A4B4B4C4C4C4D4D4E4E4F4F4F50505151515252535354 +54545555565657575758585959595A5A5B5B5C5C5C5D5D5E5E5E5F5F606061616162626363646464 +6565666666676768686969696A6A6B6B +> +1 %_Br +1 +0 %_Br +< +FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 +D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 +AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 +87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 +5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 +37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 +0F0E0D0C0B0A09080706050403020100 +> +< +4D4C4C4C4B4B4B4A4A4A4A4949494848484747474746464645454544444444434343424242414141 +414040403F3F3F3E3E3E3E3D3D3D3C3C3C3B3B3B3B3A3A3A39393938383838373737363636353535 +35343434333333323232323131313030302F2F2F2F2E2E2E2D2D2D2C2C2C2C2B2B2B2A2A2A292929 +2928282827272726262626252525242424232323232222222121212020201F1F1F1F1E1E1E1D1D1D +1C1C1C1C1B1B1B1A1A1A191919191818181717171616161615151514141413131313121212111111 +101010100F0F0F0E0E0E0D0D0D0D0C0C0C0B0B0B0A0A0A0A09090908080807070707060606050505 +04040404030303020202010101010000 +> +0 +0 +1 %_Br +[ +1 0 50 92 %_BS +%_1 0 50 92 Bs +0 0.275 1 0.12 1 50 59 %_BS +%_0 0.275 1 0.12 1 50 59 Bs +0 0.275 1 0.42 1 50 50 %_BS +%_0 0.275 1 0.42 1 50 50 Bs +1 0 50 49 %_BS +%_1 0 50 49 Bs +1 0 50 41 %_BS +%_1 0 50 41 Bs +1 0.3 0 0 1 50 0 %_BS +%_1 0.3 0 0 1 50 0 Bs +BD +%AI5_EndGradient +%AI5_BeginGradient: (Rainbow) +(Rainbow) 0 6 Bd +[ +< +FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 +D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 +AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 +87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 +5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 +37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 +0F0E0D0C0B0A09080706050403020100 +> +1 +0 +0 +1 %_Br +1 +< +0708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E +2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F50515253545556 +5758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E +7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6 +A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCE +CFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6 +F7F8F9FAFBFCFDFEFF +> +0 +0 +1 %_Br +1 +< +00000000000000000000000000000000000001010101010101010101010101010101010101010101 +01010101010101010101010101010202020202020202020202020202020202020202020202020202 +02020202020202020202030303030303030303030303030303030303030303030303030303030303 +03030303030304040404040404040404040404040404040404040404040404040404040404040404 +04040505050505050505050505050505050505050505050505050505050505050505050505050606 +06060606060606060606060606060606060606060606060606060606060606060607070707070707 +07070707070707070707070707070707 +> +< +FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 +D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 +AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 +87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 +5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 +37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 +0F0E0D0C0B0A09080706050403020100 +> +0 +1 %_Br +< +000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 +28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F +505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 +78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F +A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 +C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF +F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF +> +0 +1 +0 +1 %_Br +0 +< +FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 +D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 +AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 +87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 +5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 +37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 +0F0E0D0C0B0A09080706050403020100 +> +1 +0 +1 %_Br +[ +0 1 0 0 1 50 100 %_BS +%_0 1 0 0 1 50 100 Bs +1 1 0 0 1 50 80 %_BS +%_1 1 0 0 1 50 80 Bs +1 0.0279 0 0 1 50 60 %_BS +%_1 0.0279 0 0 1 50 60 Bs +1 0 1 0 1 50 40 %_BS +%_1 0 1 0 1 50 40 Bs +0 0 1 0 1 50 20 %_BS +%_0 0 1 0 1 50 20 Bs +0 1 1 0 1 50 0 %_BS +%_0 1 1 0 1 50 0 Bs +BD +%AI5_EndGradient +%AI5_BeginGradient: (Yellow & Orange Radial) +(Yellow & Orange Radial) 1 2 Bd +[ +0 +< +0001010203040506060708090A0B0C0C0D0E0F10111213131415161718191A1B1C1D1D1E1F202122 +232425262728292A2B2B2C2D2E2F303132333435363738393A3B3C3D3E3E3F404142434445464748 +494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F60606162636465666768696A6B6C6D6E6F +707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C +> +< +FFFFFFFFFEFEFEFEFEFEFEFDFDFDFDFDFDFCFCFCFCFCFCFBFBFBFBFBFBFAFAFAFAFAFAF9F9F9F9F9 +F9F8F8F8F8F8F8F7F7F7F7F7F7F6F6F6F6F6F6F5F5F5F5F5F5F4F4F4F4F4F3F3F3F3F3F3F2F2F2F2 +F2F2F1F1F1F1F1F0F0F0F0F0F0EFEFEFEFEFEFEEEEEEEEEEEDEDEDEDEDEDECECECECECEBEBEBEBEB +EBEAEAEAEAEAE9E9E9E9E9E9E8E8E8E8E8E8E7E7E7E7E7E6E6E6E6E6E6 +> +0 +1 %_Br +[ +0 0 1 0 1 52 19 %_BS +%_0 0 1 0 1 52 19 Bs +0 0.55 0.9 0 1 50 100 %_BS +%_0 0.55 0.9 0 1 50 100 Bs +BD +%AI5_EndGradient +%AI5_End_NonPrinting-- +%AI5_BeginPalette +0 0 Pb +1 1 1 1 ([Registration]) 0 Xs +([Registration]) Pc +0 0 0 0 k +(C=0 M=0 Y=0 K=0) Pc +0 0 0 1 k +(C=0 M=0 Y=0 K=100) Pc +0 0.1 1 0 k +(C=0 M=10 Y=100 K=0) Pc +0 0.5 0 0 k +(C=0 M=50 Y=0 K=0) Pc +0 0.5 1 0 k +(C=0 M=50 Y=100 K=0) Pc +1 0.55 1 0 k +(C=100 M=55 Y=100 K=0) Pc +1 0.9 0.1 0 k +(C=100 M=90 Y=10 K=0) Pc +0.15 1 1 0 k +(C=15 M=100 Y=100 K=0) Pc +0.45 0.9 0 0 k +(C=45 M=90 Y=0 K=0) Pc +0.5 0.4 0.3 0 k +(C=50 M=40 Y=30 K=0) Pc +0.5 0.85 1 0 k +(C=50 M=85 Y=100 K=0) Pc +0.75 0.05 1 0 k +(C=75 M=5 Y=100 K=0) Pc +0.75 0.9 0 0 k +(C=75 M=90 Y=0 K=0) Pc +0.8 0.05 0 0 k +(C=80 M=5 Y=0 K=0) Pc +Bb +2 (Black, White) -7885 8587 0 0 1 0 0 1 0 0 Bg +0 BB +(Black, White) Pc +Bb +2 (Chrome) -7885 8587 0 0 1 0 0 1 0 0 Bg +0 BB +(Chrome) Pc +Bb +2 (Rainbow) -7885 8587 0 0 1 0 0 1 0 0 Bg +0 BB +(Rainbow) Pc +Bb +0 0 0 0 Bh +2 (Yellow & Orange Radial) -7885 8587 0 0 1 0 0 1 0 0 Bg +0 BB +(Yellow & Orange Radial) Pc +(Brick) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p +(Brick) Pc +(Confetti) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p +(Confetti) Pc +(Leaves - Fall ) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p +(Leaves - Fall ) Pc +(Stripes) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p +(Stripes) Pc +PB +%AI5_EndPalette +%AI5_Begin_NonPrinting +Np +%AI8_BeginPluginObject +(Adobe Scatter Brush Tool) +(Dog Tracks) +(1 /New Pattern 41/ 1 0 0 0 1 / 0 1 1 0 1 1 0 0 0 0 -90 -90 0 1 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Scatter Brush Tool) +(Fall Leaf) +(1 /New Pattern 34/ 1 0.0745 0.9 0.9019 0.18 / 0 0.602793 1 1 0.1 1 1 -) - +(1 1 1 -180 180 1 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Scatter Brush Tool) +(Ladybug) +(1 /New Pattern 10/ 5 0.898039 0 0 / 0 1 1 0 0.803911 1.2 1 -1.55 1.55 ) - +(1 -180 180 1 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Scatter Brush Tool) +(Push Pin) +(1 /New Pattern 36/ 1 0.025 0.1 0.475 0 / 0 1 1 0 0.401676 1 1 -1.06145) - +( 1.06 1 -180 180 1 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Scatter Brush Tool) +(Strawberry) +(1 /New Pattern 37/ 1 0 0 0 1 / 0 0.803911 1 1 0.803911 1 1 -0.5 0.5 1 ) - +(-75 75.419 1 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Scatter Brush Tool) +(Twinkle Star ) +(1 /New Pattern 2/ 0 1 / 1 0.5 1 1 0.25 1 1 -0.5 0.5 1 0 0 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe PatternOnPath Brush Tool) +(Double Lines) +(1 / New Pattern 62/ New Pattern 63/ New Pattern 64/ / / 1 1 0.14 0.09 ) - +(0 / 1 0 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe PatternOnPath Brush Tool) +(Laurel) +(1 / New Pattern 65/ New Pattern 42/ New Pattern 67/ / New Pattern 69/ ) - +(1 0 0.55 1 0.3 / 1 0 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe PatternOnPath Brush Tool) +(Rope ) +(1 / New Pattern 1/ / / New Pattern 3/ New Pattern 6/ 5 0 0 0 / 1 0 1 ) - +(0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe ArtOnPath Brush Tool) +(Arrow) +(1 / New Pattern 45/ / / / / 5 0.898039 0 0 / 2 0 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe ArtOnPath Brush Tool) +(Marker) +(1 / New Pattern 8/ / / / / 0 0 / 1 1 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe ArtOnPath Brush Tool) +(Paintbrush) +(1 / New Pattern 5/ / / / / 1 0.5 0.85 1 0.45 / 0 0 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe ArtOnPath Brush Tool) +(Tapered Stroke) +(1 / New Pattern 83/ / / / / 1 0 0 0 1 / 1 1 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe ArtOnPath Brush Tool) +(Type) +(1 / New Pattern 50/ / / / / 1 0.952941 0.94902 0.196078 0.0745098 / 1) - +( 0 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Calligraphic Brush Tool) +(6 pt Flat ) +(1 4 8 10 10 90 90 2 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Calligraphic Brush Tool) +(10 pt Oval) +(1 1 19 15 15 130 130 2 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Calligraphic Brush Tool) +(12 pt Oval ) +(1 7 17 45 45 0 0 2 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Calligraphic Brush Tool) +(20 pt Oval) +(1 20 20 20 100 40 80 0 2 1 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Calligraphic Brush Tool) +(25 pt Round ) +(1 10 40 100 100 0 0 2 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Calligraphic Brush Tool) +(50 pt Flat) +(1 40 60 0 0 44 44 0 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Brush Manager Order) +(Adobe Brush Manager Order) +( Adobe Calligraphic Brush Tool/ 6 pt Flat / Adobe Calligraphic Brush T) - +(ool/ 10 pt Oval/ Adobe Calligraphic Brush Tool/ 12 pt Oval / Adobe Cal) - +(ligraphic Brush Tool/ 20 pt Oval/ Adobe Calligraphic Brush Tool/ 25 pt) - +( Round / Adobe Calligraphic Brush Tool/ 50 pt Flat/ Adobe Scatter Brus) - +(h Tool/ Dog Tracks/ Adobe Scatter Brush Tool/ Fall Leaf/ Adobe Scatter) - +( Brush Tool/ Ladybug/ Adobe Scatter Brush Tool/ Push Pin/ Adobe Scatte) - +(r Brush Tool/ Strawberry/ Adobe Scatter Brush Tool/ Twinkle Star / Ado) - +(be ArtOnPath Brush Tool/ Marker/ Adobe ArtOnPath Brush Tool/ Tapered S) - +(troke/ Adobe ArtOnPath Brush Tool/ Arrow/ Adobe ArtOnPath Brush Tool/ ) - +(Paintbrush/ Adobe ArtOnPath Brush Tool/ Type/ Adobe PatternOnPath Brus) - +(h Tool/ Double Lines/ Adobe PatternOnPath Brush Tool/ Laurel/ Adobe Pa) - +(tternOnPath Brush Tool/ Rope /) . +%AI8_EndPluginObject +%AI5_End_NonPrinting-- +%AI5_Begin_NonPrinting +Np +%AI8_PluginGroupInfo +(Adobe Path Blends) (Adobe Blends Plugin) (Live Blends.aip) +%AI8_PluginGroupInfo +(Adobe PatternOnPath Brush Tool) (Adobe Pattern Brush Plugin) (ArtOnPath.aip) +%AI8_PluginGroupInfo +(Adobe ArtOnPath Brush Tool) (Adobe Art Brush Plugin) (ArtOnPath.aip) +%AI8_PluginGroupInfo +(Adobe Calligraphic Brush Tool) (Adobe Calligraphic Brush Plugin) (Calligraphic Brush Tool.aip) +%AI8_PluginGroupInfo +(Adobe Scatter Brush Tool) (Adobe Scatter Brush Plugin) (Scatter Brush Tool.aip) +%AI5_End_NonPrinting-- +%%EndSetup +%AI5_BeginLayer +1 1 1 1 0 0 1 0 79 128 255 0 50 Lb +(Layer 1) Ln +0 A +u 0 O +0 g +0 R +0 G +800 Ar +1 J 0 j 0.1 w 10 M [1 1 ]0 d %AI3_Note: 0 D +0 XR +%AI5_File: +%AI5_BeginRaster +() 1 XG +[ 0.6 0 0 0.6 153 452.6997 ] 510 189 0 Xh +[ 0.6 0 0 0.6 153 452.6997 ] 0 0 510 189 510 189 8 1 0 0 0 0 +%%BeginBinary +XI +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF000000FF0000000000000000000000000000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF00000000FF00FF00FF00000000FF00FF00FF00000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000000000000000000000FF00000000000000FF00FF0000 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000000000FF00FF00FF00FFFFFFFF000000FF00FFFFFFFF +%00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000FF00FF00FF000000FF00FFFFFFFFFFFF00000000FFFF +%FFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF00000000FF00FF00FF0000FF0000FFFFFFFFFFFFFF000000 +%00FFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000000000FF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%000000FFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000FF00FF000000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF0000FFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF000000000000FF00FF00FF00FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF0000FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF00FFFFFFFFFF0000000000FF00FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF0000FFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF00000000FF00FFFFFFFFFF000000000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000FFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF00FF00FF000000FF00FFFFFFFFFF00FF00000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFF00FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF0000FF00FF00FF00FFFFFFFFFFFFFFFFFFFFFF00000000 +%FFFFFFFFFFFFFFFFFFFFFFFF00FF00FF000000FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF0000000000FF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFF +%0000FFFFFFFFFFFFFFFFFFFFFF0000FF00FF000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FF0000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000FF000000FF00FF00FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF000000FFFFFFFFFFFF00FF0000FF00FF000000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF0000000000FF0000FF0000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF000000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF00FF00FFFFFF00000000FF0000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000FFFFFFFFFFFF00FF00FF00FF00000000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF00000000000000FF00FF0000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF0000000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF000000FF0000FFFFFFFFFF00FF0000000000FFFFFFFF +%FF00FFFFFFFFFFFF00000000FF00FF00000000FFFFFF000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFF00FF0000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF0000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000FF00FFFF00FF00FFFFFFFFFFFFFF00FF00000000 +%00FFFF0000000000FFFFFF0000FF00FFFF00FF00FFFFFF000000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFF000000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%00000000FF000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000FF00FF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFF +%000000FFFFFFFFFFFF0000FF00000000FFFFFF0000FFFFFF00000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000FF00 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF00000000FF0000000000FFFF0000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000 +%0000FF00FF00FF0000FF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF000000FF0000FF00FF00FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF000000FFFFFFFFFF00FF00FF0000FFFFFF0000FFFFFF0000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 +%0000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF00000000FF00FFFFFFFFFF0000000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF00 +%00FF0000FF0000000000000000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF00FF00FFFF00FF00FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000000000FFFF0000000000FFFF00FFFFFFFF000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF00FFFF00FFFF00FF +%00FF00FF00FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000000000FF000000FF00FF00FF0000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF0000FF +%0000FFFFFF00FF00FFFF0000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF0000FF0000FF00FFFFFFFFFFFFFFFF00FF000000 +%000000FF00FFFFFFFFFF00FF0000FFFFFFFF00000000FF0000FFFFFF0000 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FF0000FF0000FF00 +%FF00FF00FF00FFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF000000FF00FF000000000000000000000000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FF00FFFF00 +%00FF0000FF0000FF0000FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF0000FF0000FF00FFFFFF00000000FF00FFFFFF +%FFFF0000000000FFFFFF00FF00FFFFFFFFFFFFFFFF0000FFFF00FFFFFFFF +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF00FF00FFFF00FFFF00FF +%00FF00FFFFFF00FF00FFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000000000FFFFFF00FF00FFFFFF00FF00FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF00FF00FF00FF00 +%FF0000FF00FF0000FFFF0000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF000000FF0000FF000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000FF00FFFFFFFFFFFFFFFFFFFFFF0000FF00FFFFFF +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF0000FFFFFF00FFFF00FFFF +%FF00FF00FF00FF00FF00FF00FF00FF000000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF00FFFFFFFF00000000000000000000FF0000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF00FF00FFFF00FF00 +%00FF00FF000000FF0000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF000000FFFF0000FFFFFFFFFF00FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF00FF0000FFFFFFFFFFFFFFFFFFFF0000FF00FFFF +%FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF0000FFFF00FF00FF00FF +%00FFFF00FFFFFFFF00FF00FFFF00FF00FF00000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF00000000000000FFFFFF00FF00FF0000000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FF0000FF000000FF00FF +%FF00FFFF00FFFF00FF000000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF0000FF000000FFFFFFFF0000FF000000FF00 +%000000FF00FF00FFFFFFFF00FF00000000FFFFFFFFFFFFFFFFFF000000FF +%FFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFF00FFFF00FF0000FF +%FFFF00FF00FF00FFFF00FF00FF00FF00FF00FFFF000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFF000000FF00FF00FFFF00FF00FFFF0000FF00FF00FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF0000FF00FFFFFFFF0000 +%00FF00FF000000FF0000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FF000000FFFF00FFFFFFFFFF +%FFFFFF00FF00FF00000000FFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFF0000 +%FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFF00FF00FFFF00FF00FF +%00FFFF00FFFFFFFF00FF00FF00FF00FF00FF0000000000000000FFFFFFFF +%FFFFFFFFFFFF00FF00FF00FF00FF0000FF00FF00FF00FF0000000000FFFF +%FFFFFFFFFFFFFFFFFFFFFF000000000000FF00FF00FF00FF000000FF00FF +%00FFFFFF00FF00FF00FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFF00000000FF00FF +%FF00FFFFFFFF00FF0000FF00FFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFF00 +%00FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FF0000FF00FFFFFF00FF +%FF00FFFF00FF00FFFF00FFFFFF00FFFF0000FFFFFFFFFFFF00FF0000FFFF +%FFFFFFFFFFFF0000FF00FF00FF0000000000000000FF0000FF000000FFFF +%FFFFFFFFFFFFFFFF000000FFFFFFFFFF00000000FF00FF00FFFFFFFF0000 +%FFFFFF00FF00FFFFFF00FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFF00FF00FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFF0000FFFFFFFFFFFFFF +%00FFFFFFFF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFF00FF00FF00FF00 +%FFFFFF00FFFFFFFFFF00FFFFFFFF000000FFFFFFFF00FF00FFFFFF000000 +%FFFFFFFFFFFF0000000000FF00FFFFFFFFFFFFFFFF00FF0000FF000000FF +%FFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFF0000FFFFFF00FFFFFFFFFF +%FFFFFF0000FFFFFF00FFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFF00FF00FFFFFFFFFFFF +%FFFFFFFFFFFFFF000000FFFFFFFFFFFF000000FFFFFFFF0000FFFFFFFFFF +%FF00FFFFFF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF0000FF00FFFFFFFF00 +%FFFFFFFF00FFFF00FF00FFFFFFFF00FF00FFFFFFFFFF00FF000000FFFF00 +%00FFFFFFFF0000FF00FFFFFFFFFFFF00FF000000FFFFFFFF0000000000FF +%FFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFF00FFFF00FFFFFFFFFFFF0000FF +%FFFFFF00FFFFFFFF00FFFF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF00FFFF00FFFFFFFFFFFFFFFF000000FFFFFF0000FFFFFF +%FFFF00FFFFFF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFFFF00FF00FFFF00 +%FFFFFFFF00FFFFFFFFFF00FFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFF00FF +%0000FFFFFF00000000FF0000000000000000FF0000000000FFFFFFFF00FF +%FFFFFFFF0000FFFFFF00FFFFFFFFFF00FF00FFFF00FFFFFFFFFFFFFF00FF +%FFFFFF00FFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFF0000FFFFFFFF +%FF00FF00FF00FFFF0000FF00FFFFFFFFFFFFFFFFFFFF000000FFFF0000FF +%FFFFFF00FFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF00FF0000FFFFFF00 +%FFFFFFFF00FFFF00FFFFFFFFFF00FF0000FFFFFFFFFF00FF00FFFFFFFFFF +%FF0000FF00000000000000FF00FF00FFFFFF00FF0000FF00000000000000 +%FFFFFF0000FFFFFFFF00FFFFFFFF00FFFF00FFFFFF00FFFFFFFFFF00FFFF +%FFFF0000FFFFFFFFFFFF0000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFF00FF00FF000000 +%000000FF00FF0000FF00000000000000FFFFFFFFFF00FFFFFFFF00FFFF00 +%00FFFF0000FFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFFFF00FFFFFF00 +%FFFFFFFFFF00FFFF00FF00FFFF00FFFFFFFFFFFFFF00FFFF00FFFFFFFFFF +%FFFF00FF000000FFFF00FF00FF00FF0000000000FF0000FF00FF00FF0000 +%FFFF0000FFFFFFFFFFFF00FFFFFFFF00FFFF00FFFF00FFFFFFFFFF00FFFF +%FFFFFF00FFFFFFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +%00000000FFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFF000000FFFFFFFFFF +%FFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFF00000000FF00000000FF0000FF +%FF00FFFF00FFFFFF00FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFF00FFFFFF +%00FFFFFFFF00FFFF00FF00FF00FFFF00FFFFFFFFFFFF00FF00FFFFFFFFFF +%FF00FF000000000000FF00FF00FF00FFFFFFFFFF00FF00000000FF000000 +%00FF00FFFFFFFFFFFFFF0000FFFF00FF00FF00FFFF00FFFFFFFFFF00FFFF +%FFFF00FFFFFFFFFFFFFF0000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +%0000000000FFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF0000FFFFFF000000FFFF +%FFFF00FF00FF0000FF000000FFFFFFFFFFFFFFFFFFFFFF00FF0000FFFFFF +%000000FFFF00FFFF0000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFFFFFF00FFFF +%00FFFFFFFF00FFFFFFFFFFFF00FFFF00FF00FF00FF00FFFF00FFFFFFFFFF +%00FFFFFF0000FF00FF00FF00FF00FF0000000000FF00FF00FF000000FF00 +%0000FFFFFFFFFFFF00FF00FF00FFFFFF0000FF00FF00FFFFFFFF0000FFFF +%FFFF00FFFFFFFFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%000000000000FFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFF00FF00FF00FF +%000000FF00FFFFFF00FF00FFFFFFFFFFFFFFFFFFFF00FFFF00FF0000FFFF +%FFFF0000FFFF00FFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFF00FF +%FFFFFFFFFFFF00FFFF00FFFF00FFFF00FF00FF00FF00FFFF00FFFFFFFFFF +%FF00FF00FF0000FF00FF00FF000000FF0000FF0000FF00FF0000FFFF00FF +%00FFFFFFFFFFFF00FF00FF0000FFFFFF00FF00FFFFFF00FFFFFFFF00FFFF +%FFFF00FFFFFFFFFFFF0000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000000000FFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFF00FF00FFFF +%FFFFFFFFFFFFFF00FFFF0000FFFFFFFFFFFFFFFFFFFFFF00FFFFFFFF0000 +%FFFFFF0000FF00FFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFF00FF +%FF00FFFFFFFF00FFFF00FFFF00FF00FF00FF00FF00FF00FF00FF00FFFFFF +%00FFFF000000FF000000000000FF00FFFFFFFFFFFF000000FF000000FF00 +%00FFFFFF00FF00FF0000FFFFFFFFFFFF00FF00FFFF00FFFFFFFF00FFFFFF +%FF0000FFFFFFFFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF00000000000000FFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFF00FF00FF +%FFFFFFFFFFFFFFFFFF00FFFFFF00FF00FF00FFFFFFFFFFFF00FFFFFFFFFF +%0000FFFFFF000000FFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFFFFFFFFFF00 +%FF00FFFFFFFF00FFFFFF00FF0000FF00FF00FF00FF00FFFF00FFFFFF00FF +%00FFFF00FF00000000FFFFFF000000000000FF00FFFFFFFF00FF000000FF +%00FFFFFFFF00FF00FF00FF00FFFFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF +%FF00FFFFFFFFFFFF0000FFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF00000000000000FFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFF00FF00 +%FFFFFFFFFFFFFF0000FFFF00FFFFFFFFFFFF00FF00000000FF00FFFFFFFF +%FFFF0000FF000000FFFF0000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF00FFFFFFFFFF +%00FFFFFFFFFFFFFFFFFF00FF0000FFFF00FFFF00FF00FF00FF00FF00FFFF +%00FFFFFF000000FFFF000000000000FF0000FF00000000000000FFFF0000 +%00FFFF0000FF00FF00FFFF00FFFFFFFF00FFFFFFFFFF00FFFFFF00FFFFFF +%FF00FFFFFFFFFFFF00FFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFF00FF00FF +%00FFFFFFFFFFFFFFFF000000FF00FF000000FF00FF00FF00000000000000 +%FFFF00FF00000000FF00FFFF0000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFFFFFFFF +%FF0000FFFFFFFF00FFFFFFFF00FF00FFFF00FFFFFF00FFFF00FF00FF00FF +%00FFFF0000FF0000000000FFFF00FF00FF0000FF00FF0000FF000000FF00 +%00FF00FFFF00FFFFFFFFFF00FFFFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF +%FF00FFFFFFFFFFFF00FFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000000000000000000000FF00FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFF00FF +%0000FFFFFFFFFFFF00FF00FF00FFFFFFFFFFFFFFFFFF0000FF00FFFF00FF +%000000000000000000FF0000FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF00FFFFFFFF +%FFFF00FFFFFFFF00FFFFFF000000FFFF00FFFFFFFFFFFFFFFF00FFFF00FF +%00FF0000000000000000000000FF00FF00FF00FFFF00FF000000FF0000FF +%00FFFF0000FFFFFF00FFFF00FFFFFFFFFFFF00FFFFFF00FFFF0000FFFFFF +%00FFFFFFFFFFFF0000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF0000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFF00 +%FFFF00FFFFFFFFFFFF00FF00FF00FFFFFFFFFFFF0000FFFFFF00FFFF0000 +%0000000000FF00FF0000FFFF00000000000000FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFFFFFF +%FFFFFF00FFFFFFFFFFFFFFFF00FFFFFF00FFFFFFFF00FFFFFFFF00FFFF00 +%FF00FF00000000000000FFFFFF0000FFFF00FFFFFFFF0000FF0000FF0000 +%0000FF00FFFFFFFF00FFFF0000FFFFFF00FF00FFFFFF00FFFF00FF00FFFF +%00FFFFFFFFFFFF00FFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF00000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFF +%FF00FF0000000000000000000000FFFFFFFF0000FFFFFFFF0000FFFF0000 +%0000FF00FF00FF0000FF00000000000000000000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFFFF +%FFFFFF00FFFFFFFF00FFFFFFFF00FFFF00FFFFFFFFFF00FFFF00FFFFFFFF +%0000FF0000000000FF000000FF00FF00FF00FF00FFFFFFFF00000000FF00 +%00FF00FFFFFFFFFF0000FF00FFFFFFFFFFFF00FFFF0000FFFF00FFFFFFFF +%FFFFFFFFFFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF00000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000 +%000000FF00FF00000000FF00000000FFFF0000FF0000FF000000FF0000FF +%00FF00FF00FFFF0000000000000000FF00000000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFFFF +%FFFFFF00FF00FFFFFF00FFFFFF00FFFF00FFFFFFFF00FFFFFF00FFFFFF00 +%FFFFFF000000000000FF00FFFF0000FF0000FFFF00FF0000FF0000000000 +%FF00FFFFFFFFFFFFFFFFFFFF00FFFFFFFF00FFFFFF00FFFFFFFF00FFFF00 +%FFFFFFFFFFFF00FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF00FF0000 +%FF000000000000FF00000000000000000000FF00FF00FF00FF0000000000 +%FF00FF00FFFF00000000FF0000000000FFFF0000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF00000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFFFF +%FF00FF0000FFFF00FFFF0000FF00FFFFFF00FFFFFFFF00FFFF00FFFFFFFF +%00FFFF00000000000000FF00FF000000FFFF00FFFFFF00FF00FF0000FF00 +%0000FFFFFFFFFFFF0000FF00FFFFFFFFFFFF00FFFF0000FF00FF00FFFF00 +%FFFFFFFFFFFF00FFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FF00FF0000FF +%0000FF00FF00FF00000000000000000000FF000000FF00000000FF00FFFF +%00FF00FF0000000000000000FF0000FF0000000000FF00FFFF000000FFFF +%FFFFFFFFFF00000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFF +%00FF00FF0000FF00FF00FFFFFF00FFFFFFFFFFFFFFFF00FFFF00FFFFFF00 +%00FFFF0000000000FF00FFFF0000FFFFFFFF00FF00FF00FF00FF00000000 +%FF00FFFFFFFFFFFFFFFFFFFF00FFFFFFFF00FFFFFF00FFFF00FF00FFFF00 +%FFFFFFFFFF00FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF00FF0000FF0000FF00 +%00FF0000000000000000000000000000000000FFFF0000000000FFFF00FF +%FF00FF00FF0000000000FF00000000000000000000000000000000000000 +%FFFFFFFF00000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF +%FF00FFFFFFFF00FFFF000000FF0000FFFF00FFFFFFFF00FFFF00FFFFFFFF +%00FFFF000000FF00FFFF00FF0000FFFF00FFFF00FF00FFFFFF00FF00FF00 +%0000FFFFFFFFFFFFFF00FF00FFFFFFFF00FF00FFFF00FFFF00FF00FF00FF +%FFFFFFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF00000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FF0000FF00FF0000FF00 +%FF0000000000FF000000000000FF00FF00FF00FF000000FF00FF00FF0000 +%0000FF00000000000000000000FF00000000000000000000000000000000 +%00FFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF +%00FF00FFFF00FFFF00FF00FFFFFF00FFFF00FFFFFFFF00FFFF00FFFFFF00 +%FFFFFF00000000FF00FF00FF0000FF00FF00FF0000FFFF00FFFF000000FF +%0000FFFFFF00FF00FF00FF00FF0000FFFF00FFFFFFFFFFFFFFFF00FF00FF +%FFFFFFFF00FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF00000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF00000000FF0000FF00FF00FF00000000FF0000 +%00000000FFFF00FFFF00FF00FF0000FF00FFFF0000FF0000FF00000000FF +%00FF000000000000000000FFFF0000000000000000000000000000000000 +%00FFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00 +%FF00FFFFFFFF00FFFFFF000000FF00FFFFFF00FF00FF00FF0000FF00FF00 +%00FFFF000000FF00FF00FF0000FF00FF00FFFF000000FFFF00FF00000000 +%0000FF00FF00FFFF00FF00FF00FF00FF0000FFFF00FFFF00FFFFFF00FFFF +%FFFFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF00000000000000000000000000000000000000000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF000000FF00000000FF0000FF000000FF00FF0000FF +%00FF00FF0000FFFF00FF00FF0000FFFF00000000FF0000FF0000FF000000 +%FF00000000000000FFFFFF00000000FF00FF0000FF000000000000000000 +%00FF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%FFFF00FFFFFF00FFFFFFFFFFFFFF00FFFFFF00FF00FF00FF0000FFFFFF00 +%FFFFFF0000000000FF00FF000000FF00FF000000FF00FF00FF0000000000 +%000000FF00FF00FFFF00000000FF00FF0000FFFF00FFFF00FF00FF00FFFF +%FFFFFF00FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF00000000000000FF0000000000000000FF0000000000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF000000000000FF00FF000000FF0000FF0000FF00FF0000 +%0000FF00FFFFFF00FF00FF0000FF00000000FF0000FF000000000000FFFF +%000000FF000000FFFF00FFFFFFFFFF000000000000000000000000000000 +%000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%00FFFFFFFFFFFF00FFFFFF00FFFF00FFFFFF00FF00FF00FF00FF00FF00FF +%000000000000FF0000FFFF0000FF00FF00FFFF00000000FF00FF00000000 +%FF00FF0000FFFF000000FF00FF00FF00FF00FF00FF000000FF00FF00FFFF +%FFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF00000000FF0000FF0000FF00FF000000000000FF00000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF0000000000FF00FF000000FF00FFFF00FF0000FF0000FF0000 +%FF00FF000000FFFFFFFF0000FF0000000000000000000000FF00FF00FF00 +%0000FF0000FFFF0000FFFFFFFFFFFFFF00FF00FF00000000000000000000 +%0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +%0000FFFFFFFFFF00FFFFFFFF00FFFF00FF000000FFFFFF00FF00FFFFFF00 +%FFFFFF00FF0000FFFF000000FF00FF00FF00000000FF0000FF0000000000 +%000000FF0000FF00FF00FF0000FFFF0000FF00FF00FFFF00FFFF0000FFFF +%FFFF00FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%00000000000000FF00FFFF00FF00FF00FFFF0000000000FF000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF00000000FF000000FF00FF0000FF00FF000000FF00FF00FF00FF +%00FFFFFFFFFF00FF000000FF0000FF0000000000FFFF00FF00FF000000FF +%00FF0000FFFFFF00FF00FFFFFFFFFF0000000000FF000000000000000000 +%0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF00FF00FF0000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%00FF00FFFFFFFF00FFFFFFFF00FFFF0000FF00FF00FFFF0000FF00FFFF00 +%FF00FF000000FF0000000000FF00000000FF00FF0000FF0000FF00000000 +%0000FF00FFFFFFFFFFFFFF00FFFFFF00FFFFFF00FF000000000000FFFF00 +%FF00FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%0000000000000000000000FF00FF00FF0000FF000000000000FF0000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF000000FFFFFFFF00FF00FF0000FFFF00FFFF0000FF00FF00FFFF0000 +%FFFFFF00FF00FF0000FF00000000FF0000FF0000FF00FF00FF0000000000 +%000000FF00FFFF0000FFFFFFFFFFFF00FF0000FF00FF0000000000000000 +%00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FF00FF00FF00000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%0000FF00FFFFFFFF00FFFFFF0000FF00FF00FF00FFFFFF00FFFF00FFFFFF +%00FFFF00FFFF000000FF000000FF00FFFFFFFFFF000000FF0000FF000000 +%000000FF00FF00FFFFFFFF00FFFFFF00FFFF0000FFFF00FFFF00FF00FFFF +%00FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%FF00000000FF00FF0000FF00FF00FF0000FF0000000000FF0000000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000FF0000FF00FF00000000FFFF0000FF0000FF00FF0000FF0000FF +%FFFF00FFFFFF000000000000FFFFFF00FFFF0000FFFF00FF00FF00000000 +%FFFF000000FF00FFFF00FFFFFFFFFFFF00FF00FF00000000000000000000 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFF00FF00FF00FF00FF000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000FFFFFFFF00FFFFFFFF00FFFF0000FF0000FFFF00FFFF00FFFFFF +%00FFFF00000000FFFF00FFFFFF00FFFFFFFFFFFFFFFF0000FF0000000000 +%00FFFFFFFFFFFFFFFFFFFF00FFFFFF00FFFF00FFFFFFFFFF000000FF0000 +%0000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000 +%FF0000000000000000FF00FFFF00FF00FF00FF0000000000FF0000000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF0000FF00FFFFFF00FFFF00FF000000FF00FF00FF0000FF00FFFFFFFF00 +%00FFFFFF0000FFFFFF00FF0000FFFF00FFFF000000FFFF00FF0000000000 +%FFFFFF000000FFFF00FF0000FF00FF00FF00FF00FF000000000000000000 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF0000FF00FFFF0000FFFFFFFFFF000000FF0000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF00000000FFFFFF00FFFFFFFF0000FF00FF00FF00FFFF00FFFFFF00FFFF +%00FFFF00000000FFFF00FFFF00000000FF00000000000000FFFFFF000000 +%FFFFFFFF00FF00FFFFFFFF00FFFFFFFFFFFF00FFFFFFFF00FF00FF00FF00 +%FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FF +%00FF000000FF00FF0000FF00FFFFFFFFFF0000000000FF0000FF00000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF0000000000FFFF00FF00000000FFFF0000FF0000FF00FF0000FF000000 +%FF000000FFFFFF00FF00FF00FFFFFF0000FFFF00000000FF00FF0000FF00 +%00FF00FF00000000FFFF00FF00FF00FFFFFF00FF00000000000000000000 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000FF0000FFFF00FFFF00FF0000FF00FFFF00FF00 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF0000FF00FFFFFFFFFFFFFFFF00FF0000FFFF00FFFFFF00FFFF00FFFF +%00FFFF0000FFFF00FF0000000000FF00FF00FFFF00000000000000000000 +%FFFFFFFF00FFFFFFFFFFFFFFFFFF00FFFFFF00FFFFFFFF0000FFFF0000FF +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00000000 +%000000000000FFFFFFFFFFFF00FFFFFFFF00FF00000000FF00000000FF00 +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000FF00FFFF00FF0000FF00FF00FF00FFFF00FF00FF0000FF0000FF +%00FFFF00FFFF00FF00FF00FF00FFFFFFFFFF000000FF000000FFFF000000 +%0000FF00FF00FFFF00FFFFFF0000FFFF0000FF00FF000000000000000000 +%00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000FF00FFFF00FFFF00FF00FF00FF00FFFF00FF0000 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF0000FF00FFFF00FFFFFFFFFFFF00FFFFFFFF00FFFFFFFFFF00FFFF +%00FF0000FF0000FF000000000000FFFFFFFFFFFFFF00000000FFFF00FF00 +%00FFFFFF00FF00FFFFFF00FFFFFF00FFFF00FFFFFFFFFF0000FF0000FF00 +%FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000 +%000000FF0000FFFFFFFFFF00FF00FFFF000000FF00000000000000FF0000 +%FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000000000FF00FF0000FF00FFFF0000FF0000FF00FF00FFFF00FF00 +%FFFF00FF00FFFF00FF00FF0000FFFF0000FF0000FF00FFFFFFFF00FFFF00 +%FFFFFF0000FFFFFFFF00FFFFFFFFFFFFFFFF00FF00000000000000000000 +%000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFFFFFF00FF00 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF000000FF00FF00FFFFFFFFFF00FF00FFFFFF00FFFF00FFFF00FF00 +%FF0000FF00FF000000FF000000FF000000FF0000000000FF00FF000000FF +%0000FFFFFF00FFFFFFFF00FFFFFF00FFFF00FFFFFFFF0000FFFFFF0000FF +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FF00FF000000 +%00FF0000FF00FFFFFFFFFFFF0000FFFF00FFFF000000000000000000FFFF +%00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF00000000000000FF00FF00FF0000FF0000FFFF0000FF00FF00000000FF +%0000FF0000FFFFFF00FF00FF0000FF00FFFF000000FF00FFFFFFFF0000FF +%00FF0000FF00FF0000FF00FFFFFFFFFF0000FF0000000000000000000000 +%000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF000000FFFF0000FFFFFFFFFFFF000000FF00FFFF0000FF00FF00 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF00FF00FF00FF00FFFFFFFFFF0000FFFFFFFF00FFFFFFFF00FFFF +%000000000000FF00000000FF0000000000000000000000000000FFFF0000 +%FF00FFFF00FFFFFFFFFF00FFFF00FFFF00FFFFFFFFFF0000FF0000FFFF00 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF0000FF00FF0000 +%00000000FF00FFFFFFFFFF00FFFFFFFF0000000000FF00000000FF0000FF +%FF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF00000000000000FF00FF00000000FF00FFFF00FF00FF0000FF000000 +%FF00000000000000FF00FF0000FF00000000FF00FF00FF00FF0000000000 +%FF00FF0000FFFFFF0000FF000000FFFFFF0000FF00000000000000000000 +%0000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF00FFFFFF0000FFFFFFFFFFFFFF0000FFFF00FFFF00FFFF00FF0000 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF000000FF0000FFFFFFFFFFFF0000FFFFFF0000FF0000FF00FF +%000000FFFF000000FF00FF0000FF00FF000000FFFFFF0000FF0000FF00FF +%00FF00FFFF00FFFFFFFF00FFFF00FFFF00FFFFFFFFFF00FFFF00FFFF0000 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF0000FF00FF00FF0000 +%FF00FF0000FFFFFFFFFFFF0000FFFF00FFFFFF000000FF000000FFFFFF00 +%FFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF000000000000000000FF00FF00FF00FF0000FF00FF00000000FF +%00FFFFFFFF000000000000FFFF00FF000000000000FF00FF00FF00000000 +%00000000FFFFFF00FF00FF00FF00000000FF00FF00000000000000000000 +%00FFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF00FF000000FFFFFFFFFFFFFFFF00FFFF00FFFFFF00FF00FFFF00FF00 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF00FF00FF00FFFFFFFFFFFFFF00FFFFFFFF00FFFFFF00FFFF +%000000FFFF0000FF0000FF00FF00FF00FF00FFFF00FF00FF00FF0000FF00 +%00FF00FF0000FFFF00FFFF00FF00FF00FFFFFFFFFF0000FF00FFFFFF0000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF0000FFFFFF00FF00FF00 +%0000000000FF00FF00FF00FFFFFF00FF000000FF00FF000000FFFF00FFFF +%00FFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF00000000000000FF00FF0000FF00FFFF00FF00FF00FF00FF00FF +%00FF00FF00FFFFFF000000000000FFFF000000FF00000000000000000000 +%00000000000000FFFF00FF00FF00FF00FF00FF0000FF0000000000000000 +%0000FF0000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%0000FF00FFFFFFFFFFFFFFFFFFFF00FFFFFFFFFF00FFFF00FF00FF00FF00 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF00FF00FF00FFFFFFFFFFFF00FFFFFFFF00FFFF00FF00FF +%0000FF0000FFFF000000000000FF00FF0000FF00FF0000000000000000FF +%FFFFFF00FF00FFFFFFFF00FF00FFFF00FFFFFFFFFF00FF0000FFFF0000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF0000FFFFFFFFFF00000000 +%0000000000FFFF00FF00FF00FF00FF0000FFFF0000000000000000000000 +%FF00FFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF000000000000FF00FF00FF00FF0000FF00FF0000FF0000 +%00FF0000FFFF0000FFFFFF000000FFFF00000000FFFF0000000000000000 +%00000000FF00000000FF000000FF00000000000000000000000000000000 +%00FFFFFFFF000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%FF0000FFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFF00000000FF00FF0000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF00FF00FF00FFFFFFFFFF0000FFFFFF0000FF00FF00FF +%0000FF0000000000FF000000FF00FFFF00FF00FF00FF0000FF00FF000000 +%00FFFF000000FF00FF0000FF00FF00FFFFFFFFFF00FF00FFFFFF000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF0000FFFFFFFF00000000FF0000 +%000000000000FF000000FFFF00FFFF00FF00FF0000FF00000000FF0000FF +%00FF00FFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF00000000FF0000FF0000FFFF0000FF00FF00FF0000 +%000000FF0000FFFF0000FF0000FF00000000FF0000000000000000000000 +%0000000000000000000000000000000000000000FF000000000000000000 +%FFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%00FFFFFFFFFFFFFFFFFFFF00FFFFFFFF0000000000FFFFFFFFFFFF00FF00 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF00FF00FF00FFFFFFFFFF00FFFFFFFF00FFFF00FF00 +%FF00FF00FFFF00000000000000FFFFFF0000FF00FF00FF0000FF000000FF +%0000FFFF00FF00FF00FF00FF00FF00FFFFFFFF0000FF00FFFF000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF00FFFFFFFF00000000000000FFFF +%00000000000000FFFFFF00FF00FFFFFFFFFF0000000000FF000000000000 +%00FFFF00FFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF00FF00000000FF00000000FF00FF000000FF00 +%0000FF0000FFFF00FFFF00FF0000FFFFFF000000FF0000FF000000000000 +%00FF00FF000000FF00FF00FF0000000000000000000000FFFF000000FFFF +%FFFFFFFFFFFFFF0000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF +%FF00FF00FFFFFFFFFFFF00FFFFFF0000FFFFFFFFFFFF00FF00FF00FF0000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF00FF00FF00FFFFFFFF0000FFFF00FF00FFFFFF00 +%00FF00FF000000FF00000000FF00FFFFFFFF00FF00FF00000000FF000000 +%000000000000FFFFFF0000FFFF00FFFFFFFFFF00FF00FFFFFF0000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFF00FFFF00000000FF00FF +%FF000000000000FFFFFFFF000000FF00FFFF00000000000000FF00000000 +%00FFFFFF00FF00FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF0000FF0000FF0000FF0000FF00 +%00000000000000FF000000FF0000FFFF00FF000000FF000000FF00000000 +%00000000FF0000000000FF00000000FF00000000000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000000000000000000000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FFFF +%00FF00FF00FFFFFFFF00FF0000FFFFFFFFFFFFFFFF00FFFFFF00FF00FF00 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF00FF00FF00FFFFFFFF00FFFFFF0000FFFFFF00 +%0000FF00FF00FF00000000000000FF00FF0000000000FF00FF0000FFFF00 +%FFFFFFFF00FFFFFF0000FF00FF00FFFFFFFF00FF00FFFFFF0000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFF0000FFFF00FFFF000000FF00 +%FF00FF0000000000FF00000000FF00FF00FF00FF0000FF0000000000FF00 +%00FFFFFF00FFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000FF00FF000000 +%000000000000FF00FF00FF00FF000000FF0000FF0000FF000000FF000000 +%000000000000FF00000000000000FF0000FF00FF0000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FFFF00 +%FF00FF00FFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF00FF0000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF00FF00FF00FFFFFFFF00FFFFFF0000FFFFFF +%0000000000FF000000000000000000FF00000000000000000000FFFF0000 +%00FFFFFF00FFFFFF00FF00FF00FFFFFFFFFF0000FFFFFF000000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF000000FFFFFFFF0000FFFF0000FF00FF000000FF +%00FF00000000FF0000FF0000FF0000000000000000FF0000000000000000 +%FF00FFFFFF00FFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FF +%00000000000000000000000000FF0000FF00FF000000FF00FF0000FFFF00 +%00000000000000000000000000000000FF00000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFF +%FFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFF00FF00FF0000FF00FF00 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF0000FF00FF00FFFFFF00FFFFFFFF00FFFFFF +%FFFF00FF00FF000000000000000000FF00FF00000000FFFF00000000FF00 +%0000000000FFFF00FFFF00FF00FFFFFFFF0000FFFFFF0000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF000000FFFFFFFF00FFFFFF0000FFFF00000000FF00 +%FF00FFFF000000FF000000FF00FFFF00FF00000000000000000000FF0000 +%FF00FFFFFF00FFFFFF00FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF00FF0000 +%0000000000000000000000FF00FF000000FF0000FFFF0000FF00FF0000FF +%0000000000FF000000FF0000000000FF0000FF00FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FFFFFFFFFFFF +%FFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFF000000FF00FF00FFFFFFFF0000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FF00FFFFFF00FFFFFF0000FFFF +%00FF0000FF000000000000000000FF000000000000FF00FF00FF00FFFF00 +%FF0000FF00FFFF00FFFFFF00FFFFFFFF0000FFFFFFFF0000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF000000FFFFFFFF00FFFFFF0000FFFF00FFFF000000FF +%00FF0000FF000000FF00FFFFFF00FFFF0000000000FF00000000FF0000FF +%FF0000FFFFFF00FFFFFF00FF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF000000FF00 +%000000000000000000000000000000000000FF00FFFF000000FF0000FF00 +%FFFF0000000000FF00FFFFFF0000000000000000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF00FFFFFFFFFFFFFF +%FF00FF00FF00FFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFF00FF00FF00 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFF00FFFFFFFF00FFFF +%000000FF000000000000000000FF00FF0000FFFF00000000FF0000FF00FF +%00000000FFFF00FFFF00FF00FFFFFF0000FFFFFF000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF000000FFFFFF0000FFFFFF00FF00FFFF00FFFF00000000 +%FF00FF0000FF00000000FFFF0000FF00FF000000000000000000FF000000 +%FFFF00FFFFFFFF00FFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFF +%00FFFFFFFFFFFFFFFFFF00FFFFFFFFFFFF0000000000FFFFFF00FF000000 +%0000FF00000000000000FF0000FF0000000000FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FFFFFFFFFFFFFF00 +%00FF00FFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFF00FF00FFFF00FF0000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF00FFFFFF00FFFFFF0000FF +%FF0000FF00000000FF0000000000FFFF00FFFFFF00FF000000FF0000FF00 +%FF000000FFFF00FFFF0000FFFFFF00FFFFFFFF000000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000FFFFFFFF0000FFFFFFFF00FFFFFF00FFFF00FF0000FF +%00FFFF00FF00FF00FF000000000000FF000000000000000000FF0000FF00 +%FFFF0000FFFFFF00FFFFFF00FF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FF00FFFFFFFF +%FF0000FFFFFFFFFFFFFF00FF00FFFFFFFFFF00000000000000FF0000FFFF +%00000000FF00000000FFFF00FF00FF000000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF00FFFFFFFFFF000000FF +%FFFFFF0000FFFFFF0000FFFFFFFFFFFFFF00FF00FFFFFFFFFF00FFFF0000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FFFFFF00FFFFFF00FF +%0000FF00000000000000000000FF00FFFF00FF000000FF000000FFFF00FF +%00FF00000000FFFF0000FFFFFF00FFFFFFFF000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000FFFFFF0000FFFFFFFF00FF00FFFF00FFFF0000000000 +%00FF00000000FFFF00000000FF00FF000000000000000000FF00FF00FFFF +%FFFFFF00FFFFFFFF00FFFFFF00FF00FF0000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFF00FF00000000 +%00FF00FF000000FF00FF00FFFF0000000000FF0000000000FF000000FF00 +%00FF0000000000FF00FF00FFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF00FFFFFF000000FFFFFFFF +%FF00FFFFFFFF00FFFFFFFFFFFFFFFF0000FFFFFFFFFF00FF00FF00FF00FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFF00FFFFFF00FF +%0000000000000000FF0000000000000000FF0000FF0000FF00000000FF00 +%FF000000FF00FF0000FFFF0000FFFFFFFF000000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF000000FFFFFF0000FFFFFFFFFF00FF00FF00FFFFFF00FFFFFF00 +%0000FFFF00000000000000000000FF000000000000000000FF0000000000 +%FFFFFF0000FFFFFF00FFFFFFFF00FF00FF00FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFF +%FF00FF00FF00FF000000FF0000FFFFFFFFFF00FFFFFFFFFF000000FFFFFF +%FFFFFFFF00000000FF00FFFF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF00FF0000FFFFFFFFFFFFFFFF +%FFFF0000FF00FFFFFFFFFFFF0000FFFFFFFFFF000000FF00FF00FF0000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFF00FFFFFF00 +%00FF0000000000FF0000FF00FF00FF00FF00000000FF0000000000FF00FF +%00FF000000FFFF00FFFF0000FFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF0000FFFFFF00FF00FFFFFFFF00FF00FF0000FFFFFF00FFFFFFFF +%00FFFF0000FF00FF0000000000FF00FF00000000000000FF00FF00FF0000 +%00FFFFFF0000FFFFFF00FFFFFFFF00FF00FF00FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFFFFFFFFFF00FF00 +%00FFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFF00FF0000FFFFFFFFFFFF +%FF000000FFFFFFFF00FFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF000000FFFFFFFFFFFFFFFFFFFF +%000000FF00FFFFFFFFFF0000FFFFFF0000FF00FFFFFF00FF00FFFF00FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FF00FFFFFF00 +%00000000FF00000000000000FFFF00FF000000FFFFFFFF000000000000FF +%FF00FF00000000FFFF00FFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF0000FFFFFF00FF00FFFFFFFFFF00FFFF0000FFFFFF000000000000 +%000000FF00000000FF00FF00FFFFFFFF00FF00000000FF000000FF00FF00 +%00FFFFFF00FF00FFFF0000FFFFFFFF00FF00FF00FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFF00FF +%FFFFFFFFFFFFFFFF00FFFFFFFFFFFF0000000000FF00FFFF00FFFFFFFF00 +%0000FFFFFFFFFF00FFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF00FF00FF00FFFFFFFFFFFFFFFFFFFFFF00FF +%00FF00FF00FFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF00FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFF00FFFF00 +%000000000000FF0000000000FFFFFFFFFF00FF00FFFFFF00000000000000 +%FFFF00000000000000FFFFFFFF00FFFF00FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF000000FFFF00FF0000FFFFFFFF00FF00FF00FF00FF00FF00FFFF0000 +%FF000000FF0000FF00FF00FF0000FFFFFF00000000000000FFFF00FF00FF +%00FF00FFFF00FFFFFFFF00FFFFFFFFFF00FF00FF00FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFFFFFFFFFF00FFFF00 +%FF00FFFFFFFFFFFFFFFF00FF000000FFFFFFFFFF00FF0000FFFFFF000000 +%FFFFFFFFFFFF00FFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF0000FF00FF00FFFFFFFFFFFFFFFFFF000000FFFF +%00FFFFFFFFFFFF000000000000000000FFFFFFFFFFFF00FFFFFF0000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFF00FF00 +%FF0000FF00000000FF0000FF00FF00FFFF00FFFF000000FF000000000000 +%0000FF00000000FFFFFFFF0000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000FFFFFF00FF00FFFFFFFFFF00FF00FF0000FF00FF000000FFFF00 +%000000FF00FF0000FF00FF00FF00FFFF00FF000000FF0000000000FF0000 +%FF00FF00FF0000FFFFFF0000FFFFFFFFFF00FF00FF00FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF00FFFFFFFFFFFFFFFF00FF +%00FF0000000000000000FF00FFFFFFFFFFFFFFFF00FFFFFFFF000000FFFF +%FFFFFFFF0000FFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000FF00FF00FFFFFFFFFFFFFFFF000000FFFFFFFF +%FFFF0000000000FF00FF0000FFFFFFFF0000FFFFFF00FF0000000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFF00FF +%0000000000000000000000FFFF0000FF00FF00FF00FF00FFFF0000000000 +%00000000FFFFFFFFFF0000FFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF0000FFFF0000FF00FFFFFFFFFF00FFFF00FF00FFFFFFFF00FF00FFFFFF +%FF0000000000000000FF00FF0000FF00FF000000000000FFFF0000FF0000 +%FF00FF00FFFF00FFFFFFFF00FFFFFFFFFFFF00FF00FF00FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FF00000000000000FF00 +%FFFFFFFFFFFFFFFF000000FF00FFFFFF00FF00FFFFFFFF0000FF00FFFFFF +%FFFF0000FFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF00FF00FF00FFFFFFFFFFFFFFFF0000FFFFFFFF0000 +%000000FFFFFFFFFFFF00FFFF00FFFFFFFFFF000000FF00FFFFFF00FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFF00 +%FFFF00FFFF000000FF00FF000000FF00FFFFFF00FF00FF00FF0000000000 +%00FF00FF00FFFFFF0000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%0000FFFFFF00FF0000FFFFFFFFFF00FF00FF00FFFF00FFFF0000FF00FF00 +%00FF0000FF00FF00FF00FFFF00FF00FF00FF00FF0000FF0000FFFF000000 +%FFFF00FFFFFF00FFFFFFFF00FFFFFFFFFFFFFF00FF00FF00FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFFFFFFFFFFFFFFFF00FF +%FFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFF00000000FF00FFFFFFFF +%FF00FFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF0000FF00FF00FFFFFFFFFFFFFF00FFFFFFFF000000FFFF +%FFFFFFFFFFFFFFFFFFFFFF00FF000000FF00FFFF00FFFF00000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFF +%00FFFFFF000000FF000000FFFFFF00FFFF0000FFFFFFFFFFFF0000FF00FF +%0000FF00FF00FF0000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +%0000FFFF00FFFF00FFFFFFFFFF00FFFF00FFFF00FFFFFFFF00FFFF00FF00 +%FF00FF0000FF0000FFFFFF000000FF00FF0000FF00FF000000FFFF000000 +%FF00FF0000FF0000FFFFFF0000FFFFFFFFFFFF0000FF000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF00FF00FF00FFFF00FFFFFF +%FFFF00FF00000000000000FFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFF00 +%00FFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF00FF0000FF00FFFFFFFFFFFFFF00FF00000000FF00FFFFFF +%FFFFFFFFFF00000000FF00FF00FFFFFFFF00FF00000000FFFF00FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FF +%FF0000FF00000000FF0000000000FFFFFFFF00FFFFFFFFFF00FF00000000 +%0000FF00FF0000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +%00FFFF0000FF0000FFFFFFFFFF00FFFF00FFFF00FFFFFFFFFF00FFFF00FF +%0000FFFF0000000000000000000000000000FF00000000FF000000000000 +%FFFF00FFFFFFFF00FFFFFFFF0000FFFFFFFFFF00FF00FF00FF00FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFFFF00FF0000FF000000 +%FF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFF0000FF +%FFFFFF00FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000FFFF00FFFFFFFFFFFFFF000000FF00FF0000FF00FFFF +%FF0000FF00FFFFFFFF00FF00FF0000FFFFFFFFFFFF00FF000000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00 +%FFFF000000000000000000FFFF00FFFF0000FFFFFFFFFFFF00FF0000FF00 +%000000FF00FF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%FF0000FFFFFF0000FFFFFFFF00FFFF00FFFFFF00FFFFFFFF00FFFFFF0000 +%FF000000FF00FF0000000000FF000000FF000000FF000000FF00FF0000FF +%00FF00FFFF00FFFF00FFFFFF00FF00FFFFFFFFFF00FF00FF000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF00FFFFFF +%FFFFFFFFFFFFFFFF000000FF00FF000000FFFFFFFFFFFFFFFF0000FFFFFF +%FFFF00FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF0000FFFF00FFFFFFFFFF00000000FFFFFFFF00FFFF00000000 +%00FFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFF00FF00FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF +%0000FF00000000000000FF000000FFFF00FF00FFFFFFFFFF0000FF000000 +%000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF +%00FF0000FF0000FFFFFFFFFF00FFFF00FFFFFF00FFFFFF00FF00FFFFFF00 +%00FF00FFFF00000000FFFFFFFFFFFFFF000000000000FF0000FF0000FF00 +%FFFF00FFFFFFFFFF00FFFFFFFF00FFFFFFFFFFFF00FFFF00FF0000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFFFFFFFFFFFF0000FF0000FF +%FFFFFFFFFFFFFFFFFFFFFF00FF0000FFFFFFFFFFFFFFFF000000FFFFFFFF +%FF00FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF000000FF00FFFFFFFFFF000000FFFFFFFFFFFFFFFF0000FF00FFFF +%FFFFFFFFFFFFFFFFFFFF0000FF0000FFFFFFFFFFFFFF00FF00FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%00FF00000000FF00000000FF00FFFFFFFF00FFFFFFFFFFFF000000000000 +%00000000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%FF0000FFFF0000FFFFFFFF00FFFFFF00FFFFFFFFFFFFFFFFFF00FFFFFFFF +%00000000000000000000FFFF00FF00FF0000000000FF00FFFF0000FFFF00 +%FFFF00FFFF00FFFFFF00FFFF0000FF00FFFFFFFFFFFFFFFF00FF0000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFFFFFFFFFFFFFFFF00FFFFFF +%FFFFFFFFFFFFFFFF0000000000FFFF00FFFFFFFF00000000FFFFFFFFFF00 +%FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF000000FF00FFFFFFFFFF0000FFFFFFFFFFFFFFFF000000FF00FF0000 +%00FFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFF000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%00000000FF0000FF0000000000FFFFFFFFFF00FF0000FF00FF000000FF00 +%FF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF +%00FF00FF00FF00FFFFFFFF00FFFFFFFFFFFF00FFFFFFFF00FF00FFFFFFFF +%000000FFFFFF00000000000000FF00000000FFFF00FFFF00000000FFFF00 +%FFFF00FFFFFF00FFFF00FF00FF00FF0000FFFFFFFF00FFFFFF00000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FFFFFFFFFFFF0000FF00FF00 +%FFFFFFFF00FF0000FFFFFF00FF0000FF00FF000000FFFFFFFFFFFFFF00FF +%FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000FF00FFFFFFFF0000FFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFF +%FFFFFFFFFF00FF00FF000000FF0000FF00FFFFFF00FF0000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%0000000000FF0000000000FF00FF00FF00FFFF00FF0000000000000000FF +%0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF0000 +%0000FF000000FFFFFFFFFF00FFFF00FFFFFF00FFFFFFFFFFFFFFFFFFFF00 +%0000000000FF0000FFFFFFFFFFFFFFFF00FFFFFF00FFFF00000000FFFF00 +%FFFFFF00FFFF00FFFF0000FF0000FFFF00FFFFFFFF00FFFFFFFF000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF00000000FF00FFFFFFFF00FF00FF +%00000000FFFFFFFFFFFFFFFF00FF00000000FF00FFFFFFFFFFFFFF00FF00 +%00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF0000FF00FFFFFF0000FFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFF0000 +%0000000000FF00FFFFFFFFFF00FFFF00FF00FF00FFFF0000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF0000000000FF0000000000FF0000FF00FF00FF0000FF00FF00000000FF +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF00 +%FFFF00FF00FFFF00FFFF0000FFFF00FFFFFF00FFFFFFFF00FF00FF000000 +%000000FF0000FF000000FFFFFFFFFF00FF000000FF000000FFFF00FFFF00 +%FFFFFF00FFFF00FFFFFF00FF00FF00FF0000FFFFFF00FFFFFFFF00FF0000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF00000000FFFF00FFFF00FF000000FF00FFFF +%FFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFF00FFFFFFFFFFFFFF00FF00FF +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%00000000FFFFFF00FFFFFFFFFF00FF00000000FFFFFFFF0000000000FFFF +%FFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFF00FF00FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF0000FF000000000000FF0000FF00FF00FF0000000000000000000000 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF00FF +%00FFFF000000000000FF00FFFFFF00FFFFFF00FFFFFFFFFFFFFF00FF0000 +%00000000FF0000FF0000FF00FF00000000FF0000000000FF000000FF00FF +%00FFFF00FF0000FFFF00FF00FF0000FFFF00FFFFFFFF00FFFFFFFF00FF00 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF00FFFFFF00FF000000FFFFFFFFFF00FFFF00 +%FFFFFFFFFFFF0000000000FFFFFFFF0000FFFFFFFFFFFFFFFF00FF00FF00 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%0000FFFFFF0000FFFFFFFFFF00FF0000FFFFFFFF00FF00FFFFFF00FF0000 +%00FFFFFFFFFFFFFFFF00FF00000000000000FF00FF0000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF000000FF0000000000FFFF00FF00FF00FFFF00FF00000000000000 +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF00FFFF +%FFFF0000FFFF00FFFF00FF00FF0000FFFF0000FF00FF00FF0000FF000000 +%0000000000FF0000FF00000000FF00FF00FF000000FFFF0000FF00FFFFFF +%00FFFFFF00FF00FFFFFF000000FF00FFFF00FFFFFFFF00FFFFFFFFFF0000 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF0000000000FF00FFFFFF0000FFFFFFFF0000FF +%00FF0000000000FFFFFFFFFFFF000000FFFFFFFFFFFFFFFF00FF00FF0000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%00FFFF0000FFFFFFFFFFFF000000FFFFFFFF00FFFFFFFFFFFFFFFF00FF00 +%00000000000000FF00FF00FFFFFFFFFFFFFFFF00FFFF00FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF00000000FF000000000000FF00FF0000FF0000FF00000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFFFF +%FFFF00FF00FF000000FF00FF00FF00FF00FF00FF000000FFFF0000FF00FF +%00000000FF00FF00000000FFFF00FF00FF0000FFFF0000FF000000000000 +%FF00FF00FF00FF00FF00FF00FFFFFF00FFFF00FFFFFF00FFFFFFFFFFFF00 +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF0000FFFFFF00FFFFFFFFFFFF00000000000000 +%0000FFFFFFFFFFFF00FFFF000000FFFFFFFFFFFFFFFFFF00FF00FF0000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00 +%FFFF00FFFFFFFFFFFF000000FFFFFF0000FF00FFFFFFFFFF000000FF00FF +%FFFFFFFFFFFFFF00FF00FFFF00FFFFFFFFFFFF00FF00FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000000000FF0000000000000000FF00000000000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF00FFFFFF +%FFFF00FF00FF00FFFF00FFFF0000FF00FF00000000FFFF00FF00FF000000 +%0000000000FF00FF00FF000000FF00FF000000FF00FF0000000000FFFFFF +%00FFFFFF0000FF00FF00FF00FFFFFF00FFFFFFFFFFFFFF00FFFFFF00FFFF +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF00FF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFF +%00FFFFFF00FF00FF00FF00FFFFFFFFFFFFFFFFFFFFFF00FF00FF00FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FF +%FF00FFFFFFFFFF000000FFFFFFFF00FFFF00FF0000000000FFFFFFFFFFFF +%00FFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF00000000000000000000000000000000000000000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFFFFFF +%FFFF00FFFFFF00FFFF00FFFF0000FF00FF00FF00FF00FFFF00FF00FF0000 +%00000000FF00FFFF000000FFFF00FF00FF0000FF00FF00FF000000FFFF00 +%00FF00FF0000FF00FF00FF00FFFFFF00FF000000FFFFFF00FFFFFFFF00FF +%00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF00FFFF00FF00FFFFFF00FF0000FFFFFF0000FF +%FFFFFFFF00FF000000FFFFFFFFFFFFFFFFFFFF000000FF00FF00FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFF +%00FFFFFFFF000000FFFFFFFFFFFFFF0000FF00FFFFFFFFFFFFFFFFFF00FF +%FFFFFFFFFFFFFFFF0000FF00FFFFFFFFFFFF00FF00FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF00000000000000000000000000000000000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF00FFFFFFFF +%FF00FF00FFFFFFFFFFFFFFFF00FFFF0000FF00FF00FF00FF00FFFFFF0000 +%FF000000FFFF00FFFF0000FF00FF00FF0000FF00FF00FF00000000FFFFFF +%00FFFFFF00FFFF00FFFFFFFF00FFFF00FFFFFF00FF00FFFF00FFFF00FF00 +%FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF0000FF00FF00FF000000FFFFFFFFFF0000FFFFFF +%FFFFFF00FF0000FFFFFFFFFFFFFFFFFFFF0000FF00FF00FF00FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFF00 +%FF00000000FFFFFFFFFFFFFF000000FFFFFFFFFF00FFFFFFFFFF0000FF00 +%0000FF00FF00FF00FFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF00000000000000000000000000000000000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFFFFFFFF +%FF00FF00FF00FFFF00FFFF00FF00FFFFFFFF00FF00FFFFFFFFFFFFFF0000 +%00FF00FF00FFFFFF00FF00FFFF00FFFF0000FF00FFFF00FF000000FFFF00 +%FFFFFFFF00FFFF00FFFFFFFF00FFFF0000FF000000FFFF00FFFFFFFF00FF +%FF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF00FF00FF00FF00FFFFFFFFFF0000FFFFFFFFFFFF +%FFFF00FFFFFFFF00FFFFFFFFFF000000FFFFFF00FF00FF00FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFF00FF +%00FF0000000000FF0000FF000000FF0000000000FF0000000000FFFF00FF +%00FF000000FF00FF0000000000FF00FFFFFF0000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF00FFFFFFFFFF +%00FFFF00FF00FFFF00FFFFFF00FFFFFFFF00FFFFFFFFFFFFFFFFFFFF00FF +%00000000FF00FF00FF00FF00FFFFFFFF0000FFFF00FF0000000000FFFF00 +%00FFFFFF00FFFF00FFFFFFFFFFFFFFFF00FFFFFF00FF00FF0000FF00FF00 +%FFFF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000FFFF00FFFFFFFFFF00FF00FFFFFFFFFFFFFF00 +%00FFFFFF0000FFFFFFFF000000FFFFFFFFFF00FF00FF00FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FF00FFFF +%00000000FF00000000FFFF0000FF00000000000000FFFFFFFFFF00FF00FF +%FFFFFFFFFFFF0000FFFFFFFFFF00FF00FF0000FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF00FFFFFFFFFFFF +%00FFFF00FF00FF0000FFFF00FFFFFFFFFFFF00FF0000FFFFFFFFFFFF0000 +%00FF0000FF00FF00FFFFFF00FFFF000000FF00FF00000000000000FFFF00 +%FFFFFFFF00FFFF00FFFFFFFF00FFFFFF00FF0000FFFF00FFFF0000FF00FF +%FFFFFF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000FF00FFFF00FF00FFFFFFFFFFFFFF000000FFFF +%FFFFFFFFFFFF00FF0000FFFFFFFFFFFFFF00FF000000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FF0000FF00 +%000000000000FF0000000000FF00FFFFFF0000000000FFFFFFFFFFFF00FF +%FFFFFFFFFFFFFFFF00FFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF00FFFFFFFFFFFF +%00FFFF00FFFFFFFF00FFFFFF00FFFFFFFF00FFFFFFFFFFFFFFFFFFFF00FF +%0000000000FF0000FF00FFFF0000FF0000FFFF00FF000000000000FFFFFF +%00FFFFFF00FFFFFF00FFFFFFFF00FFFF00FFFFFF00FFFFFF00FF00FFFFFF +%FFFFFF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF00FF00FF00FFFFFFFFFFFFFFFF000000FFFFFFFFFF +%FFFFFF00FF00FF00FFFFFFFFFFFFFFFF00FF00FF00FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000FFFFFF +%00FF0000000000FFFF00FF0000FF000000FFFF00FF000000000000000000 +%00000000000000000000FF000000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF00000000000000000000000000000000000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFFFFFFFFFFFF +%FFFFFFFF00FFFF0000FFFF00FFFFFFFFFFFF00FF0000FFFFFFFFFF00FF00 +%00FF00000000FFFFFFFF00FF00FF00FF00FF000000FF0000000000FF0000 +%FFFFFFFF00FFFF00FFFFFFFFFF00FFFF00FFFFFFFF00FFFFFFFF00FFFFFF +%FFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000FFFFFFFF00FF00FF000000FFFFFFFFFFFFFFFF +%FFFFFFFF0000FFFFFFFFFFFFFFFFFF00FF000000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF0000FF0000000000FF +%000000FF0000000000FF0000FF00FF0000FFFF0000FF000000FF00FF0000 +%0000000000000000000000FF00FF00000000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF00000000000000000000000000000000000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF00FFFFFFFFFFFF00 +%FFFF00FF00FFFF00FFFFFF00FF00FFFFFF0000FFFF00FFFFFFFF00FF0000 +%0000FF0000FF0000FFFFFFFF00FFFF0000FFFFFF00000000000000FF00FF +%00FFFF00FFFFFFFF00FFFFFFFF00FFFFFF00FFFFFFFFFFFFFFFF00FFFFFF +%FFFFFFFF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF00FF00FF0000FF00FF00FFFFFFFFFFFFFFFFFFFFFF +%FF00000000FFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF00000000000000 +%00000000000000000000FFFF0000FF00FF000000FF00FF0000FF00000000 +%000000000000000000FF00000000000000000000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF0000FFFFFFFFFFFF00 +%FFFFFF0000FFFF00FFFFFF00FFFFFFFFFFFF00FFFF00FFFFFF0000FFFF00 +%FF0000FF000000FF00FFFF00FF00FF00FF0000000000000000000000FF00 +%FF00FFFF00FFFFFFFFFFFFFFFF00FFFF000000FFFFFF00FFFFFFFF00FFFF +%FFFFFFFF00FFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000FF00FFFF00FFFFFFFFFFFFFFFFFFFFFFFFFF00 +%00FFFFFFFF00FF00FF00FFFF00FF000000FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FF0000FF0000000000 +%0000FF000000000000000000FF000000FF0000FF0000FF000000FF00FF00 +%FF00FF000000000000000000FF00FF0000000000000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF00FF0000000000000000000000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF00FFFFFFFFFFFF00FF +%FFFFFF00FFFFFF00FFFFFF00FFFFFFFFFFFF00FFFFFFFFFF00FFFF00FF00 +%00FF000000FF0000FF00FF0000FF00FF00FFFF0000000000FF0000FFFF00 +%FF00FF00FF00FFFF00FFFFFF00FFFF00FF00FFFFFFFF00FFFFFFFF0000FF +%FFFFFFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF00FF00FF00FFFFFF00FFFFFFFFFFFFFFFF0000FF00 +%FFFFFFFF00FF00FF00FFFF00FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000FF00000000FF00 +%00000000FF0000000000000000FF000000FF000000FF00FFFF0000FF0000 +%00FF0000000000000000FF0000FF0000FF0000FF0000FF00FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF00FFFFFFFFFFFF00FF +%FFFFFF00FFFFFF00FFFFFFFFFF00FFFFFFFF00FFFF00FF00FF0000FFFF00 +%0000FFFF00000000000000FF0000FF000000000000FFFF000000FFFFFF00 +%FFFF00FF00FF00FF00FF00FFFF00FFFF0000FF00FFFFFFFFFFFFFFFFFF00 +%FFFFFFFFFF00FFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000FF00FF00FF00FFFFFFFFFFFF0000FFFFFF00FF +%FFFFFFFFFF00FF00FFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000 +%0000FFFFFFFFFFFFFFFFFF000000FFFF0000000000000000000000FF00FF +%00FF000000FF00FF00000000000000FF0000FF000000FFFFFF0000FF00FF +%FF00FFFF0000FF000000FF000000FF00FF00000000FF00000000FF00FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFF00000000000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF0000FFFFFFFFFFFF00FF +%FFFFFF00FFFFFF00FFFFFF00FFFFFFFFFFFF00FF00FF00FF00FFFFFFFF00 +%FF000000FF00FFFFFFFF00FF000000000000FFFFFF00000000FF00FFFF00 +%FF00FFFFFF00FFFF00FF00FF00FF00FF0000FF00FFFFFF00FFFFFFFF00FF +%00FFFFFFFFFFFF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000FF00FFFFFFFFFFFF0000000000FFFFFFFF00FFFF +%FFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000 +%000000FFFFFFFFFFFF000000000000000000FF0000000000000000000000 +%0000000000000000000000000000000000000000FF00000000FF0000FF00 +%00FFFF0000FF0000000000FF00FF00FF0000FFFF0000FF0000FF00000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFF00000000000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFFFFFFFFFF0000FF +%FFFFFF00FFFFFFFF00FFFF00FF00FFFFFFFFFFFF0000FF00FF00FFFFFF00 +%00FF000000FF000000FFFFFFFFFFFF00FF000000000000FF000000FFFF00 +%FFFFFF00FF00FF00FF00FF00FF00FF00FF00FFFF00FFFF00FFFFFFFF00FF +%FF00FFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000FF00FF00000000FFFFFFFFFFFFFF0000FFFFFF +%FFFFFFFFFFFF0000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000 +%00000000FFFFFFFF0000000000000000000000000000000000FF000000FF +%00000000FF000000000000000000000000FFFF00000000FFFF000000FFFF +%FF0000FFFF0000FF000000FF0000FF00FF0000FF00FF00FF00FF00000000 +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFF000000000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF0000FFFFFFFFFFFF00FFFF +%FFFF00FFFFFFFF00FFFFFF00FF00FFFFFF0000FF00FF00FFFFFFFFFFFF00 +%FF00FFFF0000FF00FF0000FF0000FF000000FF00FF00FF0000FF00FF00FF +%FFFFFFFFFF00FFFF00FF00FF00FF00FFFF00FFFF00FFFF00FFFFFFFFFFFF +%FF00FFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000FF00FF00FF00FFFF00FFFFFFFFFF00FFFFFFFFFF +%FFFFFFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%000000000000FF00000000000000000000FF0000FF00FF00FF00FF00FF00 +%FFFF0000000000000000000000000000000000FF000000FFFF0000000000 +%00FFFFFF00FF00FF00FF00FF00FF00FF00FF00FFFF00FF0000FF00FF0000 +%0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFF000000000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FFFFFFFFFFFF00FFFF +%FFFF0000FFFFFFFF00FF00FF0000FFFFFF00FF00FF00FFFFFFFFFFFF0000 +%00FF000000FF00FF00FF0000000000FF00FF00FF00FF00FF0000FFFFFF00 +%FFFFFFFFFF00FFFF00FF00FF00FF00FFFF00FFFFFFFFFFFF00FFFFFFFF00 +%FFFF00FFFFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000FF00FFFF00FF00FFFFFF00FFFF00FFFFFFFFFFFF +%FFFF000000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%000000000000FFFF0000000000000000000000FF00FF00000000FF00FF00 +%FF00FFFFFF0000000000000000FF00FF00FF000000000000FF00FFFF0000 +%00000000FFFFFFFF00FF00000000FF00FF0000FF00FF00FF00FF00000000 +%0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFF0000000000 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF0000FFFFFFFFFFFFFF00FFFF +%FFFF00FFFFFFFFFF00FFFF00FF00FF00FFFF0000FFFFFFFFFFFFFF00FF00 +%000000FF00000000FF00FFFFFFFFFF00FF00FF00FF000000000000FF00FF +%FFFFFFFFFF00FF00FFFFFFFFFFFF00FFFF00FF00FF00FFFF00FFFFFFFF00 +%FFFFFF00FFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF000000FF00FFFF00FFFF00FFFF0000FFFFFFFFFFFFFF +%0000FFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000000000000000000000000000000000FF0000FFFFFF000000FF00 +%00FFFFFF0000FF00FF0000000000FF00FF00FF00FF00000000FF0000FF00 +%FF00000000000000FF000000FF0000FF00FF00FFFF00FF00000000FF00FF +%00000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFF00000000 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFF00FFFFFF +%FFFF00FFFFFFFFFF00FFFF00FFFF00FFFFFFFF00FFFFFFFFFFFF0000FFFF +%0000FF00FF00FF0000FF0000000000FF00FF00FF00FFFF000000FF00FFFF +%FFFFFFFFFF00FFFF00FFFFFFFFFFFFFF00FFFF00FF00FFFF00FFFFFFFFFF +%00FFFFFF00FFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000FF00FF0000FFFF00FF000000FFFFFFFFFFFF0000 +%FFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF0000000000000000000000000000000000FF0000FFFFFFFFFF00FF +%0000FF00FF0000FF00FF0000FFFFFFFF00FF000000FFFF00FF0000FF00FF +%00FFFFFF0000FF0000FF00000000FF00FF0000FFFF0000FF0000FF00FF00 +%FF00000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF0000FFFFFFFFFFFF0000FFFF +%FFFF00FFFFFFFFFF00FFFFFF00FFFF00FFFFFFFF00FFFFFFFF0000FFFFFF +%00000000000000FF0000FF00FFFFFF00FF00FF00000000000000FF0000FF +%FFFFFFFFFF00FF00FFFFFFFFFF0000FF00FFFFFFFFFF00FFFF00FFFFFFFF +%00FFFFFF0000FF00FF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000FF00FFFFFFFF00FF00FFFFFFFFFFFFFFFFFFFFFF +%FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF00000000000000000000000000000000FF00FFFFFFFFFFFFFFFF00 +%FFFFFFFF0000FFFFFF00FFFF00FFFFFFFF00FF0000FF0000FFFF0000FF00 +%FF00FFFF00FF00FFFF00FF00FFFF00FF00FF0000FF0000FFFF00FF0000FF +%00FF000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFF00FFFFFF +%FF00FFFFFFFFFFFFFF00FFFF00FF00FFFFFFFFFF00FFFFFF0000FFFFFFFF +%FF00FFFFFFFF0000000000FF0000000000000000FF00000000FFFFFF0000 +%FF00FFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFF00FFFFFFFFFF00FFFFFFFF +%00FFFF00FF00FFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF000000FF00FFFF00FF00FF00FF00FFFF00FFFF00FF00 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF00000000000000000000000000FF00FF0000FFFF0000FFFFFF +%00FFFF00FF00FF0000000000FFFF000000FF000000FFFFFFFFFF00FF00FF +%00FF00FFFF00FFFF00FF0000FF0000FF00FF00FFFF00FF00FF00FF0000FF +%00FFFF00FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFF00FFFFFFFF00FFFFFF +%FF0000FFFFFFFFFFFF00FFFF00FFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFF +%FF0000000000FFFFFFFF000000FF00FFFFFFFFFFFF00FF0000FFFFFFFF00 +%00FFFF000000FF00FFFFFFFFFF00FF00FFFFFFFF00FF00FFFF00FFFFFFFF +%00FFFFFFFF00FF0000FF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000FF00FFFF00FF0000FF00FFFF00FFFF0000FF0000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF00000000000000000000000000FF00FFFFFF00FF00FF00FF +%FF00000000FF00FF0000FF0000FF00FF00000000FFFF0000FFFFFF00FF00 +%FF00FFFFFF000000FF000000FF0000FF00FF0000FF0000FFFF00000000FF +%00FFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFF00FFFFFF0000FFFFFF +%FFFFFFFFFF00FFFFFF0000FFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFF +%FF000000FF0000FF00FFFFFFFFFFFFFFFF00FF0000000000FFFFFFFFFFFF +%000000FFFFFF00FF00FFFFFFFF000000FFFFFFFF00FFFFFFFFFF00FFFFFF +%00FF00FF00FF00FFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000FF000000FFFFFFFFFF0000FFFF00FF0000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF000000000000000000000000FF00FF00FF00FF00FF0000FF +%00FFFF000000FFFFFF0000000000FF00FFFF000000FFFF00FFFF0000FF00 +%FFFFFF0000FFFFFF0000FFFFFFFF00FF0000FF00FF00FF000000FF00FFFF +%00FFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF00FFFFFF00FF00FFFFFF +%0000FFFFFFFF00FF00FF00000000FFFFFFFFFF000000FFFFFFFFFFFFFFFF +%FFFF000000FF0000FF0000000000000000FF00FF00FF0000FFFFFFFFFFFF +%FFFF0000FF00FFFFFFFFFFFF0000FFFF00FFFFFF00FFFF00FF00FFFF00FF +%FF00FFFFFF00FF0000FF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF000000FF00FF00FF00FF00FFFF000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF00000000000000000000000000FF00FF00FFFFFFFFFFFF00 +%FFFF00FF000000FFFF00000000FF00FF00FFFF0000FFFF00FFFFFF000000 +%000000FFFFFF00FFFFFF0000FF0000FF00FF0000FF0000FFFF00000000FF +%00FF0000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF00FF00FF00FFFFFF00 +%FF00FF000000FF00FF00FF00FF000000000000FFFFFFFFFFFFFFFFFFFFFF +%FFFF0000000000FF00FF00FF00FF0000FF00FF00FF00FF00FFFFFFFFFFFF +%FFFFFFFF0000000000000000FF00FF00FF00FF00FF00FFFFFFFF00FFFF00 +%FF00FF00FFFF00FF00FFFF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF00000000FF00FF00FF00FF000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF000000000000000000000000FF00FF0000FF00FFFFFFFFFFFF +%0000FFFF00FF0000000000000000FF00FF00FF0000FF0000FF00000000FF +%0000FF00FF00FFFFFF0000FFFF00FF00FF0000FFFF00FFFF0000FF00FF00 +%FFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF0000FF000000FF00FF00 +%0000FFFFFFFF00FF0000FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF00FF00FF0000FFFF00FF00FFFF00FF00FF000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFF000000FFFF00FF00FF00FF00FF00FFFF00FF00FF00FFFF +%FF0000FF00FFFF00FFFF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF0000FF00FF00FF00000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF0000000000000000000000000000FF0000000000FFFFFFFFFF00 +%FF00FFFFFF0000FF00FF000000FF00FF00FFFF0000000000FF0000FF0000 +%00FF00FFFFFFFFFF00FF00FF00FF00FF000000FF00FF0000FF00FF000000 +%FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF000000FF00FFFF00FFFF00FF +%FF00FF000000FF0000FF00FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF0000000000FF00FF00FFFFFF00000000000000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF00000000FF00FF00FFFF00FF00FFFFFFFF00FFFF00 +%FF00FF00FF00FFFF0000FF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF000000000000000000000000000000FF00FF00FFFFFFFFFFFFFF +%0000FFFF0000FF000000FF00FF00FF0000000000000000000000FF0000FF +%FFFFFF000000FF00FF0000FF0000FF0000FF00FFFF00FF000000FF00FF00 +%00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF0000FF000000FF00FF00 +%00FF00FFFF00FF00FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF0000FF00000000000000000000FFFFFFFF00FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF000000FF00FF00FF00FF00FF00FF00FF00FF +%FFFF00FFFF00FFFFFF0000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF000000000000000000000000000000000000000000FFFFFFFFFF00 +%FFFF000000FF000000FFFF000000000000FF0000FF00000000FF0000FF00 +%FF00FFFFFF00FF00000000FF00FF0000FF0000FF000000FF00FF00000000 +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF0000FFFF0000FF00FF0000FF +%00FF00FF00FF00FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF00FF00FFFFFF00FF00FFFFFF0000000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFF00FF00FFFFFF00FF00 +%FF00FFFF00FFFF00FF00FF00FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF0000000000FF00000000000000000000FF0000FF00FF00000000FFFF +%FF00000000000000FF000000FF0000FF0000FF00000000FFFF0000FF00FF +%00FFFF0000FF00FF00FF0000FF00FF000000FF0000FF00000000FF000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF0000FF0000FF0000FF00 +%00FFFF00FF00FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF000000000000000000000000FF00FF000000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFF00FF00FF00FF +%00FF0000FF0000FF00FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF0000000000FFFF000000000000000000000000000000000000FFFF0000 +%00000000000000FF00FF00000000FF0000FF0000FFFF00FF0000FF00FF00 +%FFFF00FFFF000000000000FF00000000FF00FF00FF0000FF00000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF0000FFFF00FF00FFFFFF0000 +%FF0000FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF0000FF00FF00FF000000FF0000000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF00FF00FF00 +%FF00FFFF00FFFF00FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%000000000000FFFF0000000000000000000000000000000000FF00000000 +%000000000000FF00000000FF00FF00FF000000FF00FF00FF00FF00000000 +%0000FF0000000000FF00FF0000FF00FF0000FF000000000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF0000000000000000FF0000FF00 +%00FF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF0000000000FFFFFFFFFF00FF00000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000 +%000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%0000000000FFFFFFFF00000000000000000000000000000000000000FF00 +%00000000FF00FF00FFFF00FFFF0000000000FFFF00000000000000000000 +%00000000000000FF0000FF0000FF0000FF00FF00000000FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FF0000FF00FF00FF0000 +%00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF0000FFFF0000000000FF00000000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%00FF00000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%00000000FFFFFFFFFFFFFF000000FFFF00FF0000000000FF0000FF000000 +%0000000000FF00FF00FFFF00FF00000000FF000000FF0000000000000000 +%0000FF00FF00FF0000FF0000FF00FF000000000000FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000FF00000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF000000FFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF0000000000FF00 +%000000FFFF00FF00FF0000000000FF00FF00FF00FF000000000000000000 +%00FF000000000000FF0000FF00FF00000000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF0000FF00FFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000 +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF000000000000 +%0000FFFF00FF00FF00FF0000FF000000FF0000FF0000FFFF00000000FF00 +%000000FF00FF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF0000000000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF0000FF00FF00000000000000FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FF +%0000FF00FF00FF00000000FFFF0000FFFFFFFF0000FFFFFFFF0000000000 +%000000000000FF00FFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF000000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF0000FF0000FF0000000000FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000FFFF00 +%00FF00FF00000000000000FFFF00FFFFFF0000FFFFFFFFFFFF00FF00FF00 +%FFFFFFFFFFFF00FFFF00FFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000FF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF0000FF +%000000000000000000FF00FFFF00FF0000FFFFFFFFFFFFFFFFFF00FF00FF +%00FFFFFFFFFFFF0000FF00FFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF0000FFFF00 +%FF00000000FF00FFFF00000000000000FF00FF00FF000000FF00FF000000 +%FFFFFFFFFFFFFFFF00FF00FF00FFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF0000FF +%FF000000FF0000FFFFFFFFFFFF00FF00000000FF00FFFFFFFFFFFF00FFFF +%0000FFFFFFFFFFFFFF00FF00FFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFF +%FF000000FFFFFF0000FFFFFFFFFF00FFFFFFFFFFFF00FF00FF00FFFFFF00 +%FFFFFFFFFFFFFFFFFFFF00FF00FFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FF +%FFFF00FF0000FFFFFF0000FFFFFFFF00FFFFFFFFFFFFFFFFFFFFFF0000FF +%FF00FFFFFFFFFFFFFFFFFF00FF00FFFFFFFFFFFF00FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000 +%FFFF00FFFF0000FFFFFFFF0000FF00FFFF00FFFFFFFFFFFFFFFFFFFF00FF +%00FFFFFF00FF000000FF00FF00FF00FFFFFFFFFF0000FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00 +%00FFFF00FFFF000000FFFFFF0000FF00FFFFFFFFFFFFFFFFFFFFFF000000 +%FF0000FF00FF00FFFFFFFF000000FFFFFF0000FFFF00FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF +%00FFFFFF00FFFF00FFFF0000FF00000000FF00000000FFFFFFFFFFFFFF00 +%00FFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFF00FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%FF00FFFF0000FFFF0000FFFF00FFFFFFFF00FFFFFFFFFF00000000000000 +%FF0000FF00FF000000000000FF00FF00FFFFFFFFFFFF00FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 +%FF00FFFFFF00FFFFFFFF0000FFFF000000FFFFFFFFFFFFFFFFFFFF00FF00 +%00FFFF00FF00FF00FFFFFFFFFF0000FFFFFFFFFFFFFF00FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%00FF00FFFFFF00FFFFFFFFFF0000FFFFFF000000FFFFFFFFFFFFFFFF00FF +%FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF00FF00FFFFFF00FFFFFFFFFFFF0000FFFFFFFF000000FFFFFFFFFFFF00 +%0000FFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFFFFFF00FFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF00FF00FFFFFFFF00FFFFFFFFFFFFFF0000FFFFFFFFFFFF0000000000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFFFF0000FFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFF000000FFFFFF0000FFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFF00FF00 +%00FF00FFFFFFFF00FFFF00FF00000000FFFFFFFFFF00000000FFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF000000FFFFFF0000FFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFF0000 +%0000FF00FF00FFFFFFFFFFFFFFFF00FFFF000000FF00FF000000FFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFF000000FFFFFF000000FFFFFFFFFFFFFFFFFF00000000FF00FFFF +%FFFF00FF00FF00000000FF000000FF0000FFFFFFFF000000FF0000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF000000FFFFFF00FF0000FFFFFFFFFFFFFFFFFFFF0000FF00FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFF0000FFFF000000FFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFF000000FFFFFF00FF0000FFFFFFFFFFFFFFFFFFFFFF00FF00 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF0000FF000000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF0000FFFFFFFF00FFFF0000FFFFFFFFFFFFFFFF00FF00FF +%FFFF0000000000FFFFFFFFFF00FF00000000FFFFFF00FF0000FF0000FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF000000FFFFFF0000FF00000000FFFFFFFF0000FF00FF +%FFFFFFFF00FF000000000000FF00FFFFFFFFFFFFFFFF00FF0000FF0000FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFF000000FFFFFFFF00FFFF0000000000FFFF00000000 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FFFF00FF00FF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF0000FFFFFF0000FFFFFF0000FF00FF00FFFFFF +%FFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF0000FF000000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF00000000FFFFFF0000FFFFFF00000000FF0000 +%FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF00FF0000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF00FF00FFFF00FF0000FFFF +%FF0000000000FFFF0000000000FF00FFFFFFFFFFFFFF00FF00FFFF00FF00 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF00000000FF00FF000000 +%00FFFFFFFFFFFF00FFFFFFFFFF0000000000FF00FFFFFFFFFF0000FF0000 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FF00FF00FF00FFFFFFFFFF +%FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00000000FFFFFF00FF +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FF0000FF00FFFFFF +%FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF000000FF00 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FF0000FFFFFFFF +%FFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFF0000FF00FF000000 +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF00FF00FFFFFF +%FFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFF00FF00FF00FF +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF00FFFF +%FFFFFFFFFFFFFFFFFFFFFFFF00000000FF00FFFFFFFFFF00FF000000FF00 +%FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFF0000 +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFF00FF00 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFF +%0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF0000000000FFFFFF +%FFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF +%FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF00FF000000 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +%00FFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF000000FF00 +%FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +%000000FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00FF0000 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF000000FFFFFFFF00000000FFFFFFFFFFFFFF0000FF0000FF00FF00FF00 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFF00000000FFFFFFFF00000000FFFFFFFFFFFF00FF000000FF00FF00 +%FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFF00000000FFFFFFFF00FF000000FFFFFFFF00FF00FF00FF0000 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF000000FF00FF00000000000000FF0000000000000000 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFF00000000FF00FF00FF00000000FF00FF00FF00 +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000FF +%000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF00 +%00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%%EndBinary +XH +%AI5_EndRaster +B /BBAccumRotation (0.000000) XT +U /BBAccumRotation (0.000000) XT +LB +%AI5_EndLayer-- +%%PageTrailer +gsave annotatepage grestore showpage +%%Trailer +Adobe_Illustrator_AI5 /terminate get exec +Adobe_shading_AI8 /terminate get exec +Adobe_ColorImage_AI6 /terminate get exec +Adobe_cshow /terminate get exec +Adobe_level2_AI5 /terminate get exec +%%EOF diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/template/fly.eps b/src/trunk/org.gmodel.documentation/articles/0.1/template/fly.eps new file mode 100644 index 0000000..4f6c795 --- /dev/null +++ b/src/trunk/org.gmodel.documentation/articles/0.1/template/fly.eps @@ -0,0 +1,5827 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: Adobe Illustrator(R) 8.0 +%%AI8_CreatorVersion: 8.0.1 +%%For: (Mark W Richards) (Association for Computing Machinery) +%%Title: (newfly.eps) +%%CreationDate: (2/9/00) (11:18 AM) +%%BoundingBox: 289 380 323 412 +%%HiResBoundingBox: 289.4404 380.3994 322.5605 411.5996 +%%DocumentProcessColors: Black +%%DocumentSuppliedResources: procset Adobe_level2_AI5 1.2 0 +%%+ procset Adobe_ColorImage_AI6 1.3 0 +%%+ procset Adobe_Illustrator_AI5 1.3 0 +%%+ procset Adobe_cshow 2.0 8 +%%+ procset Adobe_shading_AI8 1.0 0 +%AI5_FileFormat 4.0 +%AI3_ColorUsage: Black&White +%AI3_IncludePlacedImages +%AI7_ImageSettings: 1 +%%CMYKProcessColor: 1 1 1 1 ([Registration]) +%%AI6_ColorSeparationSet: 1 1 (AI6 Default Color Separation Set) +%%+ Options: 1 16 0 1 0 1 1 1 0 1 1 1 1 18 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 2 3 4 +%%+ PPD: 1 21 0 0 60 45 2 2 1 0 0 1 0 0 0 0 0 0 0 0 0 0 () +%AI3_TemplateBox: 306.5 395.5 306.5 395.5 +%AI3_TileBox: 13 13 599 779 +%AI3_DocumentPreview: Header +%AI5_ArtSize: 612 792 +%AI5_RulerUnits: 0 +%AI5_ArtFlags: 1 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI8_OpenToView: 115 531 3 1016 675 18 0 1 8 65 0 0 +%AI5_OpenViewLayers: 7 +%%PageOrigin:13 13 +%%AI3_PaperRect:-13 779 599 -13 +%%AI3_Margin:13 -13 -13 13 +%AI7_GridSettings: 7.2 8 7.2 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 +%AI7_Thumbnail: 128 124 8 +%%BeginBinary +%0000330000660000990000CC0033000033330033660033990033CC0033FF +%0066000066330066660066990066CC0066FF009900009933009966009999 +%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 +%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 +%3333663333993333CC3333FF3366003366333366663366993366CC3366FF +%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 +%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 +%6600666600996600CC6600FF6633006633336633666633996633CC6633FF +%6666006666336666666666996666CC6666FF669900669933669966669999 +%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 +%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF +%9933009933339933669933999933CC9933FF996600996633996666996699 +%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 +%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF +%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 +%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 +%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF +%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC +%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 +%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 +%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 +%000011111111220000002200000022222222440000004400000044444444 +%550000005500000055555555770000007700000077777777880000008800 +%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB +%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF +%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF +%524C45FDFCFFFDFCFFFDAEFFF8FFF8F8F8FD7EFFFD05F8FD1EFFF8FD5EFF +%F8F8F8FD1DFFFD04F8FD5DFFF8F8F8FD1AFFFD08F8FD5CFFF8F8FD19FFFD +%06F8FD5FFFF8F8F8FD17FFFD05F8FD61FFF8F8F8FD16FFFD06F8FD61FFF8 +%F8F8FD16FFFD05F8FD62FFFD04F8FD15FFFD04F8FD64FFF8F8F8FD15FFFD +%04F8FD64FFF8F8F8FD14FFFD04F8FD66FFF8F8F8FD13FFFD04F8FD66FFF8 +%F8F8FD12FFFD04F8FD67FFFD04F8FD11FFFD04F8FD68FFFD05F8FD0EFFFD +%04F8FD69FFFD05F8FD0EFFFD04F8FD6AFFFD05F8FD0CFFFD04F8FD6BFFFD +%06F8FD0AFFFD05F8FD6CFFFD06F8FD09FFFD05F8FD6DFFFD06F8FD06FFFD +%06F8FD6FFFFD06F8FD05FFFD05F8FD71FFFD06F8FFFFFFFD06F8FD73FFFD +%0BF8FD76FFFD0AF8FFF8FD71FFFD10F8FD6FFFFD12F8FD6EFFFD12F8FD6D +%FFFD13F8FD6DFFFD13F8FD6EFFFD12F8FD6EFFFD12F8FD6DFFFD14F8FD6D +%FFFD06F8FFFD08F8FFFD04F8FD6BFFFD04F8FFFD04F8FFF8FFFD06F8FFF8 +%F8F8FD67FFFD09F8FFFFFFF8FFF8FFF8FFFFFD04F8FFF8F8F8FD64FFFD0D +%F8FFF8FFF8FFF8F8FFFD05F8FFF8F8FD63FFF8F8F8FFFD04F8FFF8FFF8FF +%F8FFF8FFF8F8FFFD04F8FFFD05F8FD60FFFD05F8FFFD07F8FFF8FFFFF8FF +%F8FFF8FFFD04F8FFFD05F8FD5FFFFD04F8FFF8FFF8F8F8FFF8FFF8FFF8FD +%05FFFD04F8FFF8F8FFFD04F8FD5EFFF8FFFD0AF8FD05FFF8FD04FFF8FFF8 +%F8F8FFFD04F8FFF8F8F8FD58FFFD06F8FFFD04F8FFF8F8FFF8FD05FFF8F8 +%FFFFF8FFFFFD08F8FFFFF8FFF8F8FD56FFF8F8F8FFF8FFF8FFFD06F8FFF8 +%FD04FFF8FD04FFFD09F8FFF8F8FFFFF8FFF8F8FD53FFF8F8F8FFF8F8FFFF +%F8FFF8F8FFF8FFF8F8FD05FFF8F8FFFFF8FFFFFFF8F8FFF8F8F8FFFFFFF8 +%FFFFF8FFF8FD53FFF8F8FFF8F8FFFFF8FFF8FFFD06F8FFF8FFFFF8FFFFFF +%F8FFF8F8F8FFFD04F8FFFFF8FFFFF8FFFFF8F8FD52FFF8FFFFF8F8FD04FF +%FD09F8FFFFF8F8FFF8FFF8FFF8F8FFFFFD0AF8FFF8FFFFF8F8FD4FFFF8F8 +%FFF8F8FD04FFF8F8F8FFFD08F8FFF8F8FFFFF8FFFFF8FFF8FFFD06F8FFF8 +%F8FFF8FFF8FFFFF8F8F8FD4CFFF8FFFFF8FD04FFFD06F8FFFFFD07F8FFFF +%F8FFF8FD05FFFD04F8FFFD07F8FFFFF8FFFD04F8FD4AFFFD04F8FD04FFF8 +%FFFFF8F8F8FFF8FFFFFD06F8FFFFFFF8F8F8FFF8FFFFFD06F8FFFD05F8FF +%FFFFF8F8FFF8F8F8FD48FFF8F8F8FD04FFF8F8FFFFF8FFF8F8F8FFF8FFF8 +%FFFD09F8FFF8FFF8FFF8FFF8FFFD05F8FFF8F8FFFFFFF8FFF8FFF8F8FD48 +%FFF8F8FD04FFF8F8FFFFF8F8FFFFF8F8F8FFF8FFFD04F8FFF8FFF8F8FFFD +%10F8FFF8FD05FFF8FFF8F8FD46FFF8F8FD04FFF8FFFFFFF8F8FFFFF8F8F8 +%FFF8FFF8FFFFF8F8F8FFF8F8FFF8FFFFF8FFFD09F8FFF8F8FFF8FD06FFF8 +%FFF8F8F8FD43FFF8F8FD04FFF8FFFFFFF8F8FFFFF8FFF8F8F8FFF8FFF8F8 +%FFFD04F8FFFFFFF8FFFFFD09F8FFF8F8FFFFF8F8FFFFF8FFFFFFF8FFF8FF +%F8FD41FFF8F8F8FFFFF8F8FFFFFFF8FFF8FFFFF8FFFD04F8FFF8FFF8F8FF +%F8F8F8FFFFF8F8FFF8FFFD08F8FFF8F8F8FFFFF8FFFFFFF8FD05FFF8F8FD +%40FFF8F8FFFFF8F8FD04FFF8FFF8FFFFF8FFFD06F8FFFD04F8FFFFF8F8F8 +%FFF8FFFD08F8FFF8FFF8FD05FFF8FFFFFFF8FFFFFFF8FFF8FFF8F8FD3BFF +%F8F8F8FFFFFFF8FD05FFF8FFF8FFF8FFFFF8FFFFFFF8F8F8FFFFFD09F8FF +%FD08F8FFFD05F8FFFFFFF8F8FFFFF8FD04FFF8FFF8FFF8FD3BFFF8F8FFFF +%FFF8F8FD04FFF8FFF8FFF8F8FFFFF8FD04FFF8FFFFF8F8FFF8FFFD04F8FF +%F8FFFD06F8FFF8FFF8FFF8F8F8FFFFFFF8FFFFFFF8FD04FFF8FFF8FFF8FD +%39FFF8F8FFFFFFF8FD06FFF8FFFFF8F8FFFFFFFD08F8FFFD05F8FFF8FD04 +%FFF8FFF8F8F8FFF8F8F8FFF8FFF8F8FFFFFFF8F8FFFFF8F8FD04FFF8FFF8 +%FD39FFF8F8F8FFFFF8FFF8FD04FFF8FFF8FFF8FFF8FFF8F8FFFFF8F8FFF8 +%F8F8FFF8F8FFFFF8FFF8F8FFFFFFFD06F8FFFFF8FFF8FFF8FFF8FD06FFF8 +%FD05FFF8FFF8F8FD36FFF8F8F8FFFFFFF8FFF8FD04FFF8FFF8FFF8F8FFF8 +%FFF8F8FFFFFD04F8FFF8FFF8F8F8FFF8FFF8FFFFF8FFFD08F8FFF8F8FFF8 +%FFF8FFF8FFFFFFF8F8FD05FFF8FFFFF8FD35FFF8F8FFFFF8F8FFF8FD04FF +%F8FFFFF8FFF8FD05FFF8FD04FFFD07F8FFF8FFF8F8FFF8FFFD05F8FFFFF8 +%F8FFF8F8FFF8FFF8FFF8FD04FFF8FD06FFF8F8FFF8FD33FFF8F8FFFFFFF8 +%FFF8F8FD04FFF8FFF8FFF8FFFFF8FFFFF8FFF8FFF8F8FFF8F8FFF8FFF8F8 +%FFFFF8FFF8FFF8FFF8FFF8FFF8F8FFFFF8F8F8FFFFF8FFFFF8FD04FFF8FD +%08FFF8FFF8FD31FFF8F8F8FFFFF8FFFFF8FD04FFF8FFFFF8FFFFF8FD06FF +%F8FFF8FFF8FFF8F8FFF8F8FFFFF8F8F8FFF8FFF8F8FFFD04F8FFFFF8F8F8 +%FFF8FFFD04F8FFFFFFF8F8FD06FFF8FFF8F8F8FD30FFF8F8FFFFF8F8FFF8 +%F8FD04FFF8FFFFF8FFFFF8FD04FFF8FFFFF8FFF8F8FFFFFD0DF8FFF8F8F8 +%FFFD06F8FFFFF8FFFFFFF8FD04FFF8F8FD06FFF8FFF8FFF8FD2EFFF8F8FF +%F8F8FFFFFFF8F8FFFFFFF8FFFFF8FFFFFFF8FD07FFF8F8FFF8F8F8FFF8FF +%FD04F8FFF8F8F8FFF8F8F8FFF8F8FFF8FFF8F8FFF8FFF8FD04FFF8FFFFFF +%F8FFF8FD04FFF8FFF8FFF8F8F8FD2CFFF8F8FFF8FFF8F8FFF8F8FD04FFF8 +%FFFFF8FFFFFFF8FFFFFFF8F8FFFFFFF8F8FFF8FFFFF8F8F8FD07FFFD05F8 +%FFF8F8FFF8F8FFF8FFFFF8FD04FFF8FD04FFF8FD05FFF8FFFFF8FFF8F8FD +%2CFFF8FFFFF8FFF8FFF8FFF8FFFFFFF8FD06FFF8FD04FFF8F8FD04FFF8F8 +%F8FFFFFFFD06F8FFFD04F8FFFFF8FFFD04F8FFFFF8FFFFF8FFFFF8FFFFF8 +%FFF8FFF8FFF8F8FFFFFFF8FFFFFFFD04F8FD2BFFFD04F8FFF8F8F8FD04FF +%F8FFFFF8FFFFFFF8FD09FFFD06F8FFF8F8FD07FFF8FFFFFFF8FFFD04F8FF +%FFF8FFFFFFF8FFF8FFFFF8F8FFF8F8FFFFF8FFFFFFF8FD04FFF8F8F8FD29 +%FFF8FFFFF8FFFFF8FFF8FFFFF8FFFFF8FFFFF8FFFFFFF8FD04FFF8F8FFFD +%06F8FFF8F8FFF8F8FD05FFF8FFF8F8F8FFF8F8FFFFF8FFFFF8FFFFFFF8FF +%F8FFFFFFF8FFF8FFF8FFF8F8FFFFF8FD04FFF8FFF8F8FD27FFF8F8FFF8FF +%F8FFFFFD06F8FD04FFF8FFFFFFF8FD06FFF8FFFD06F8FFF8F8FFF8FFF8FF +%FD04F8FFFD04F8FFF8F8F8FFF8FFF8FFFFF8FFF8FFFFF8FFF8FFF8F8FFFF +%F8FFFFFFF8FD04FFF8FFF8FD26FFF8F8FFF8FD04FFF8F8FFFFF8FFFFF8F8 +%FFF8F8FFFFF8F8FFF8FFF8FFF8FFFD08F8FFFD06F8FFF8FFF8FFF8F8F8FF +%F8F8FFF8FFFFFFF8FFFFFFF8F8FFFFFFF8F8F8FFF8FFFFF8FFFFFFF8FD05 +%FFF8F8F8FD25FFF8F8FD06FFF8FFF8FFF8F8F8FFFFF8FFF8FFF8FFF8FFF8 +%F8F8FFF8F8FFF8FFFD04F8FFF8FFF8F8F8FFFFF8FFF8FFF8F8FFFFF8FFFD +%06F8FFF8FFF8FFFFF8FFF8FFF8FFFFFFF8FFFFF8FFFFF8FD06FFF8F8F8FD +%23FFF8F8FD07FFF8FFF8FFF8FFFFF8FFF8F8FFF8FFFD04F8FFFFF8F8FFFD +%08F8FFF8FFFFF8F8F8FFF8FFF8F8F8FFFD06F8FFFFFFF8FFFFFFF8FFF8FF +%F8FFF8FFFFFFF8FD06FFF8FFFFFFF8FFFFF8F8FD23FFF8F8FFF8FD05FFF8 +%FFFFFFF8FFFFF8FFF8F8FFF8FFF8FFF8FFF8FFFFFFF8FFFD06F8FFF8FFFF +%F8F8FFFFF8FFF8FFF8F8FFF8F8FFF8F8F8FFFFF8F8FFF8FFF8FFF8FFF8FF +%F8FFFFFFF8FFF8F8FFFFFFF8FD04FFF8FFF8FFF8FD21FFF8F8FFFFF8FD04 +%FFF8FFF8FD07FFF8FFFFF8F8FFF8FFF8FFF8FD04FFF8F8FFF8F8F8FFFFF8 +%FFF8F8FFF8FFF8FFF8F8FFF8FFFFFD04F8FFFFFFF8FFFFFFF8FFF8FD04FF +%F8FFFFF8FD04FFF8FFFFF8FFFFF8FFF8FFF8F8FD21FFF8F8FFF8FD05FFF8 +%FFF8FFF8FFFFF8FFF8FFF8FD04FFF8FFF8FD06FFF8F8F8FFF8FFF8FD04FF +%F8FFFFF8FFFFF8F8FFF8FFF8FFF8F8F8FFFFF8FD04FFF8FFF8FD04FFF8FF +%FFF8F8FFF8F8FFFFF8FD04FFF8FFFFF8FD21FFF8F8FFFFF8FD04FFF8FFFF +%F8FFF8FFFFF8FFFFF8FD04FFF8FD09FFF8FFFD04F8FFF8FFF8F8FFF8FD04 +%FFF8F8FFFFFD06F8FFFFF8F8FFFFFFF8FFF8FD08FFF8FFFFF8FFF8FFF8F8 +%FFF8FFF8FFFFF8F8FD1FFFF8FFFFF8FD05FFF8FFFFF8FFF8FFF8F8FFF8FD +%06FFF8FFF8F8FD05FFF8F8F8FFF8F8FFF8FFF8FFFFF8FFFFF8F8F8FFF8FF +%FD06F8FFFFF8FD04FFF8FFF8FD04FFF8FFFFFFF8FFF8FFFFF8FFFFF8F8FF +%F8FD05FFF8FD1DFFF8F8FFFFF8FD05FFF8FFFFF8FD04FFF8FFFFF8FD04FF +%F8FD09FFF8FFFD05F8FFF8F8F8FFFFF8F8FFF8F8FFFFF8FFFD05F8FFFFFF +%F8FFFFFFF8FFFFF8FD04FFF8FFFFF8FFFFF8FFFFFFF8FFF8FD07FFF8FD1D +%FFF8FFFFF8FD05FFF8FFFFF8FFF8FFFFF8FFFFF8FFF8FFFFFFF8F8FFFFF8 +%FFFFFFF8FFFD04F8FFF8F8FFF8F8FFFFFFF8FFFFF8F8FFFFFFFD06F8FFF8 +%FFF8FFFFF8FFFFFFF8FD04FFF8FFFFFFF8FD07FFF8FD06FFF8FFF8FD1BFF +%F8F8FFF8F8FD05FFF8FFFFFFF8F8FFFFF8FFFFF8FD06FFF8FFFFF8FFFFF8 +%F8FFFFF8FFF8F8FFF8F8F8FFFFFFF8FFF8FFF8FFFD0AF8FFF8FFF8FFFFF8 +%FD07FFF8FFFFF8F8F8FFFFF8FD04FFF8FD05FFF8FFFFF8FD1AFFF8FFFFF8 +%FD05FFF8FD04FFF8FFFFFFF8FFFFF8FD06FFF8FD07FFF8FFF8F8FFF8F8F8 +%FFF8F8F8FFF8F8FFF8FFF8FFFFFD04F8FFF8F8FFFFF8FFF8FFF8FFFFFFF8 +%FFFFFFF8FFFFF8FFF8FFFFFFF8FD04FFF8F8FD05FFF8FFF8F8FD19FFF8FF +%FFF8FD05FFF8FD04FFF8FFFFFFF8FD04FFF8FD04FFF8FFFFF8FFF8F8F8FF +%FFF8F8F8FFFFFD06F8FFF8F8FFFD06F8FFF8F8F8FFFFFFF8FFFFF8FFF8F8 +%FFF8FFF8FFFFF8FFFFF8F8FD0AFFF8FD04FFF8FFFFF8FD18FFF8FFFFF8F8 +%FD05FFF8FD04FFF8FFFFFFF8FFFFF8FD06FFF8FFF8FFF8FD05FFF8FFF8F8 +%F8FFF8FFFFFFF8FFFD06F8FFFFFFF8F8F8FFF8FFFFF8FFF8FD05FFF8FFF8 +%FFF8FFF8FFF8F8FD04FFF8FD04FFF8FFF8FD05FFF8FFF8FD17FFF8F8FFF8 +%FD05FFF8F8FD04FFF8FD04FFF8FFF8FFF8FD06FFF8F8FFF8F8FFFFFFF8F8 +%FFF8F8F8FFF8F8FD06FFF8FFFD05F8FFF8F8F8FFFFF8FFFFFFF8FFFFF8FF +%F8FFF8FFF8FFF8FFF8FFF8FFFFF8FD04FFF8FFFFF8FD05FFF8F8FD17FFF8 +%FFF8F8FD05FFF8FD04FFF8FD04FFF8FFFFF8FFF8FFFFFFF8F8FFF8FFF8FD +%05FFF8FFF8FFFFF8F8FFF8F8F8FFF8F8FFF8F8F8FFF8FFFFF8F8FFF8FFF8 +%FD08FFF8FFF8FFF8FFF8FFFFF8FFF8FFFFF8FD07FFF8FD05FFF8FD18FFF8 +%F8FFF8FD05FFF8FD04FFF8F8FD04FFF8FFFFF8F8FFFFFFF8FFF8FFF8FD05 +%FFF8F8F8FFF8F8F8FFF8FFFFFD05F8FFF8FFF8FFF8F8FFF8F8FFFFFFF8FD +%07FFF8FFF8FFF8FFF8FFFFF8FD05FFF8FD04FFF8FFFFF8FFFFFFF8FFF8F8 +%FD15FFF8FFF8F8FD06FFF8FD04FFF8FD05FFF8FFF8FFF8FFF8FFFFF8F8FD +%06FFF8FFFD04F8FFFD05F8FD05FFF8FFF8FFF8FFFD05F8FFF8FD07FFF8FD +%06FFF8FFFFF8FFFFF8FFFFF8FD04FFF8FD09FFF8FD15FFFD04F8FD0BFFF8 +%FD05FFF8FFF8FFFFF8FD04FFF8FD05FFF8F8FFFFF8F8FFF8FFF8FFF8FFFD +%05F8FFF8FFF8FFF8FFF8F8F8FFF8FD09FFF8FD07FFF8FFFFFFF8FFFFF8FD +%05FFF8FFFFF8FFFFFFF8FFF8F8FD14FFF8FFF8F8FD06FFF8FD04FFF8FD05 +%FFF8FFFFF8FFFFF8FD04FFF8FFFFFFF8F8FFFFFFFD07F8FFF8FFF8FFFFFF +%F8FFF8FFFD06F8FFF8F8FD07FFF8FD05FFF8F8FFF8FD04FFF8FFFFF8FD04 +%FFF8FFFFF8F8FFF8FFF8FFF8FD14FFF8F8F8FD0BFFF8FD07FFF8FFF8FFF8 +%FD05FFF8FFFFFFF8FD05FFF8FD04FFFD04F8FFFD08F8FFF8F8F8FFFFFFF8 +%F8FFF8FD0CFFF8FD08FFF8FD04FFF8FFFFFFF8FFFFFFF8FFF8F8FD13FFF8 +%FFF8FFFFF8FD08FFF8F8FD06FFF8FFF8FD0AFFF8FD06FFFD05F8FFFFFFF8 +%F8F8FFF8FD07FFF8F8FD04FFF8F8FFFFF8F8FFF8FD05FFF8FFF8FFFFFFF8 +%FFF8FFFFF8FD04FFF8FFFFFFF8FFF8F8FFF8FFF8FD13FFF8F8FFFFF8FFFF +%FFF8FD04FFF8F8FD04FFF8FFF8FFF8F8F8FD05FFF8F8F8FD09FFF8F8F8FF +%FD0AF8FFF8FFF8F8F8FD08FFF8F8FD07FFF8F8FFFFF8FFFFF8FFFFF8FFF8 +%FFFFF8FFFFF8FFFFF8FFF8F8FFF8FFF8F8FD12FFFD04F8FFF8FFF8FFF8FF +%FFF8FFF8FFF8F8F8FFF8FFF8F8FFFD06F8FD0CFFFD05F8FFFFF8FFF8FFF8 +%F8FFF8FFF8FFFFF8FD0AFFFD07F8FFF8FFF8FFF8FFFFF8FD04FFF8FFFFF8 +%FFF8FFFFFFF8FFF8FFFFF8FFF8FD12FFF8F8F8FFF8F8FFFD04F8FFF8F8F8 +%FD04FFF8FFFD06F8FD11FFF8FFF8FFF8FFFFF8FFF8FFFFF8FFF8FFF8F8FD +%0DFFF8F8F8FFFFF8FFF8FFF8FFF8F8FFFFF8FFF8FFF8FFFFFFF8F8F8FFFF +%F8FFFFF8FFF8F8FD12FFF8FFF8F8F8FFF8FFFFF8FFF8FFFFF8FFF8F8F8FF +%F8F8FFFFF8F8FD12FFFD06F8FFF8FFFFFFFD06F8FD10FFFD04F8FFF8FFF8 +%FFFFFFF8FD04FFF8FFFFF8FFF8FFFFF8FFFFF8F8FFF8FFF8FD12FFF8F8F8 +%FFF8F8FFFD04F8FFF8F8FFF8FFFFF8FFF8FFF8F8F8FD14FFF8F8FFFD09F8 +%FD17FFF8F8F8FFF8FFF8F8FFF8FFF8FFF8FFF8FFFFFFF8FFF8FFFFFFF8F8 +%FFF8F8FD12FFF8FFF8F8FFFFF8F8FFF8F8F8FFF8FFF8FFF8FFF8FFF8F8F8 +%FD15FFF8FFF8FFFFF8FFF8FFFFFFFD05F8FD15FFFD04F8FFFFF8FFF8FFFF +%FFF8FFF8FFF8FFF8FFFFF8FFF8FFF8FFF8FD11FFFD04F8FFF8F8FFF8F8FF +%F8FFF8F8FFFFF8FFF8FFF8F8F8FD16FFFD0BF8FFF8FFF8F8FD17FFFD04F8 +%FFFFFFF8FFF8FFF8FFF8FFF8FFF8F8FFF8FFF8F8F8FD13FFF8FFF8F8FFFF +%F8FFF8FFFFF8F8FFF8F8FFFD04F8FD19FFF8F8FFFFF8FFF8F8F8FFFD05F8 +%FD1AFFFD04F8FFF8FFF8FFF8FFF8FFF8FFFFF8FFFD04F8FD12FFF8FFFD08 +%F8FFF8FFF8F8FFFD04F8FD1BFFFD04F8FD05FFF8FFFD04F8FD1CFFFD13F8 +%FD13FFFD05F8FFF8F8FFF8FFFFFD06F8FD1EFFF8F8FFFD05F8FFFD04F8FD +%25FFF8FFFD06F8FD17FFFD09F8FFF8F8F8FD22FFF8F8FD06FFFD05F8FD44 +%FFFD0AF8FD26FFF8FFF8FFFFFFFD05F8FD75FFF8FFF8FFFD07F8FD76FFF8 +%F8FFFD05F8FD78FFFD08F8FD79FFFD06F8FDFCFFFDFCFFFDFCFFFDFCFFFD +%FCFFFDFCFFFD56FFFF +%%EndBinary +%%EndComments +%%BeginProlog +%%BeginResource: procset Adobe_level2_AI5 1.2 0 +%%Title: (Adobe Illustrator (R) Version 5.0 Level 2 Emulation) +%%Version: 1.2 0 +%%CreationDate: (04/10/93) () +%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved) +userdict /Adobe_level2_AI5 26 dict dup begin + put + /packedarray where not + { + userdict begin + /packedarray + { + array astore readonly + } bind def + /setpacking /pop load def + /currentpacking false def + end + 0 + } if + pop + userdict /defaultpacking currentpacking put true setpacking + /initialize + { + Adobe_level2_AI5 begin + } bind def + /terminate + { + currentdict Adobe_level2_AI5 eq + { + end + } if + } bind def + mark + /setcustomcolor where not + { + /findcmykcustomcolor + { + (AI8_CMYK_CustomColor) + 6 packedarray + } bind def + /findrgbcustomcolor + { + (AI8_RGB_CustomColor) + 5 packedarray + } bind def + /setcustomcolor + { + exch + aload pop dup + (AI8_CMYK_CustomColor) eq + { + pop pop + 4 + { + 4 index mul + 4 1 roll + } repeat + 5 -1 roll pop + setcmykcolor + } + { + dup (AI8_RGB_CustomColor) eq + { + pop pop + 3 + { + 1 exch sub + 3 index mul + 1 exch sub + 3 1 roll + } repeat + 4 -1 roll pop + setrgbcolor + } + { + pop + 4 + { + 4 index mul 4 1 roll + } repeat + 5 -1 roll pop + setcmykcolor + } ifelse + } ifelse + } + def + } if + /setAIseparationgray + { + false setoverprint + 0 setgray + /setseparationgray where{ + pop setseparationgray + }{ + /setcolorspace where{ + pop + [/Separation (All) /DeviceCMYK {dup dup dup}] setcolorspace + 1 exch sub setcolor + }{ + setgray + }ifelse + }ifelse + } def + + /gt38? mark {version cvr cvx exec} stopped {cleartomark true} {38 gt exch pop} ifelse def + userdict /deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt put + userdict /level2? + systemdict /languagelevel known dup + { + pop systemdict /languagelevel get 2 ge + } if + put +/level2ScreenFreq +{ + begin + 60 + HalftoneType 1 eq + { + pop Frequency + } if + HalftoneType 2 eq + { + pop GrayFrequency + } if + HalftoneType 5 eq + { + pop Default level2ScreenFreq + } if + end +} bind def +userdict /currentScreenFreq + level2? {currenthalftone level2ScreenFreq} {currentscreen pop pop} ifelse put +level2? not + { + /setcmykcolor where not + { + /setcmykcolor + { + exch .11 mul add exch .59 mul add exch .3 mul add + 1 exch sub setgray + } def + } if + /currentcmykcolor where not + { + /currentcmykcolor + { + 0 0 0 1 currentgray sub + } def + } if + /setoverprint where not + { + /setoverprint /pop load def + } if + /selectfont where not + { + /selectfont + { + exch findfont exch + dup type /arraytype eq + { + makefont + } + { + scalefont + } ifelse + setfont + } bind def + } if + /cshow where not + { + /cshow + { + [ + 0 0 5 -1 roll aload pop + ] cvx bind forall + } bind def + } if + } if + cleartomark + /anyColor? + { + add add add 0 ne + } bind def + /testColor + { + gsave + setcmykcolor currentcmykcolor + grestore + } bind def + /testCMYKColorThrough + { + testColor anyColor? + } bind def + userdict /composite? + 1 0 0 0 testCMYKColorThrough + 0 1 0 0 testCMYKColorThrough + 0 0 1 0 testCMYKColorThrough + 0 0 0 1 testCMYKColorThrough + and and and + put + composite? not + { + userdict begin + gsave + /cyan? 1 0 0 0 testCMYKColorThrough def + /magenta? 0 1 0 0 testCMYKColorThrough def + /yellow? 0 0 1 0 testCMYKColorThrough def + /black? 0 0 0 1 testCMYKColorThrough def + grestore + /isCMYKSep? cyan? magenta? yellow? black? or or or def + /customColor? isCMYKSep? not def + end + } if + end defaultpacking setpacking +%%EndResource +%%BeginProcSet: Adobe_ColorImage_AI6 1.3 0 +userdict /Adobe_ColorImage_AI6 known not +{ + userdict /Adobe_ColorImage_AI6 53 dict put +} if +userdict /Adobe_ColorImage_AI6 get begin +/initialize { + Adobe_ColorImage_AI6 begin + Adobe_ColorImage_AI6 { + dup type /arraytype eq { + dup xcheck { + bind + } if + } if + pop pop + } forall +} def +/terminate { end } def +currentdict /Adobe_ColorImage_AI6_Vars known not { + /Adobe_ColorImage_AI6_Vars 41 dict def +} if +Adobe_ColorImage_AI6_Vars begin + /plateindex -1 def + /_newproc null def + /_proc1 null def + /_proc2 null def + /sourcearray 4 array def + /_ptispace null def + /_ptiname null def + /_pti0 0 def + /_pti1 0 def + /_ptiproc null def + /_ptiscale 0 def + /_pticomps 0 def + /_ptibuf 0 string def + /_gtigray 0 def + /_cticmyk null def + /_rtirgb null def + /XIEnable true def + /XIType 0 def + /XIEncoding 0 def + /XICompression 0 def + /XIChannelCount 0 def + /XIBitsPerPixel 0 def + /XIImageHeight 0 def + /XIImageWidth 0 def + /XIImageMatrix null def + /XIRowBytes 0 def + /XIFile null def + /XIBuffer1 null def + /XIBuffer2 null def + /XIBuffer3 null def + /XIDataProc null def + /XIColorSpace /DeviceGray def + /XIColorValues 0 def + /XIPlateList false def +end +/ci6colorimage /colorimage where {/colorimage get}{null} ifelse def +/ci6image systemdict /image get def +/ci6curtransfer systemdict /currenttransfer get def +/ci6curoverprint /currentoverprint where {/currentoverprint get}{{_of}} ifelse def +/ci6foureq { + 4 index ne { + pop pop pop false + }{ + 4 index ne { + pop pop false + }{ + 4 index ne { + pop false + }{ + 4 index eq + } ifelse + } ifelse + } ifelse +} def +/ci6testplate { + Adobe_ColorImage_AI6_Vars begin + /plateindex -1 def + /setcmykcolor where { + pop + gsave + 1 0 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub + 0 1 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub + 0 0 1 0 setcmykcolor systemdict /currentgray get exec 1 exch sub + 0 0 0 1 setcmykcolor systemdict /currentgray get exec 1 exch sub + grestore + 1 0 0 0 ci6foureq { + /plateindex 0 def + }{ + 0 1 0 0 ci6foureq { + /plateindex 1 def + }{ + 0 0 1 0 ci6foureq { + /plateindex 2 def + }{ + 0 0 0 1 ci6foureq { + /plateindex 3 def + }{ + 0 0 0 0 ci6foureq { + /plateindex 5 def + } if + } ifelse + } ifelse + } ifelse + } ifelse + pop pop pop pop + } if + plateindex + end +} def +/ci6concatprocs { + /packedarray where { + pop dup type /packedarraytype eq 2 index type + /packedarraytype eq or + }{ + false + } ifelse + { + /_proc2 exch cvlit def + /_proc1 exch cvlit def + _proc1 aload pop + _proc2 aload pop + _proc1 length + _proc2 length add + packedarray cvx + }{ + /_proc2 exch cvlit def + /_proc1 exch cvlit def + /_newproc _proc1 length _proc2 length add array def + _newproc 0 _proc1 putinterval + _newproc _proc1 length _proc2 putinterval + _newproc cvx + } ifelse +} def +/ci6istint { + type /arraytype eq +} def +/ci6isspot { + dup type /arraytype eq { + dup length 1 sub get /Separation eq + }{ + pop false + } ifelse +} def +/ci6spotname { + dup ci6isspot {dup length 2 sub get}{pop ()} ifelse +} def +/ci6altspace { + aload pop pop pop ci6colormake +} def +/ci6numcomps { + dup /DeviceGray eq { + pop 1 + }{ + dup /DeviceRGB eq { + pop 3 + }{ + /DeviceCMYK eq { + 4 + }{ + 1 + } ifelse + } ifelse + } ifelse +} def +/ci6marksplate { + dup /DeviceGray eq { + pop plateindex 3 eq + }{ + dup /DeviceRGB eq { + pop plateindex 5 ne + }{ + dup /DeviceCMYK eq { + pop plateindex 5 ne + }{ + dup ci6isspot { + /findcmykcustomcolor where { + pop + dup length 2 sub get + 0.1 0.1 0.1 0.1 5 -1 roll + findcmykcustomcolor 1 setcustomcolor + systemdict /currentgray get exec + 1 ne + }{ + pop plateindex 5 ne + } ifelse + }{ + pop plateindex 5 ne + } ifelse + } ifelse + } ifelse + } ifelse +} def +/ci6colormake { + dup ci6numcomps + exch 1 index 2 add 1 roll + dup 1 eq {pop}{array astore} ifelse + exch +} def +/ci6colorexpand { + dup ci6spotname exch + dup ci6istint { + ci6altspace + exch 4 1 roll + }{ + 1 3 1 roll + } ifelse +} def +/ci6colortint { + dup /DeviceGray eq { + 3 1 roll 1 exch sub mul 1 exch sub exch + }{ + dup /DeviceRGB eq { + 3 1 roll {1 exch sub 1 index mul 1 exch sub exch} forall pop 3 array astore exch + }{ + dup /DeviceCMYK eq { + 3 1 roll {1 index mul exch} forall pop 4 array astore exch + }{ + 3 1 roll mul exch + } ifelse + } ifelse + } ifelse +} def +/ci6colortocmyk { + dup /DeviceGray eq { + pop 1 exch sub 0 0 0 4 -1 roll 4 array astore + }{ + dup /DeviceRGB eq { + pop aload pop _rgbtocmyk 4 array astore + }{ + dup /DeviceCMYK eq { + pop + }{ + ci6altspace ci6colortint ci6colortocmyk + } ifelse + } ifelse + } ifelse +} def +/ci6makeimagedict { + 7 dict begin + /ImageType 1 def + /Decode exch def + /DataSource exch def + /ImageMatrix exch def + /BitsPerComponent exch def + /Height exch def + /Width exch def + currentdict end +} def +/ci6stringinvert { + 0 1 2 index length 1 sub { + dup 2 index exch get 255 exch sub 2 index 3 1 roll put + } for +} def +/ci6stringknockout { + 0 1 2 index length 1 sub { + 255 2 index 3 1 roll put + } for +} def +/ci6stringapply { + 0 1 4 index length 1 sub { + dup + 4 index exch get + 3 index 3 1 roll + 3 index exec + } for + pop exch pop +} def +/ci6walkrgbstring { + 0 3 index + dup length 1 sub 0 3 3 -1 roll { + 3 getinterval {} forall + 5 index exec + 3 index + } for + + 5 {pop} repeat +} def +/ci6walkcmykstring +{ + 0 3 index + dup length 1 sub 0 4 3 -1 roll { + 4 getinterval {} forall + + 6 index exec + + 3 index + + } for + + 5 { pop } repeat + +} def +/ci6putrgbtograystr +{ + .11 mul exch + + .59 mul add exch + + .3 mul add + + cvi 3 copy put + + pop 1 add +} def +/ci6putcmyktograystr +{ + exch .11 mul add + + exch .59 mul add + + exch .3 mul add + + dup 255 gt { pop 255 } if + + 255 exch sub cvi 3 copy put + + pop 1 add +} def +/ci6rgbtograyproc { + Adobe_ColorImage_AI6_Vars begin + sourcearray 0 get exec + XIBuffer3 + dup 3 1 roll + + /ci6putrgbtograystr load exch + ci6walkrgbstring + end +} def +/ci6cmyktograyproc { + Adobe_ColorImage_AI6_Vars begin + sourcearray 0 get exec + XIBuffer3 + dup 3 1 roll + + /ci6putcmyktograystr load exch + ci6walkcmykstring + end +} def +/ci6separatecmykproc { + Adobe_ColorImage_AI6_Vars begin + sourcearray 0 get exec + + XIBuffer3 + + 0 2 index + + plateindex 4 2 index length 1 sub { + get 255 exch sub + + 3 copy put pop 1 add + + 2 index + } for + pop pop exch pop + end +} def + +/ci6compositeimage { + dup 1 eq { + pop pop image + }{ + /ci6colorimage load null ne { + ci6colorimage + }{ + 3 1 roll pop + sourcearray 0 3 -1 roll put + 3 eq {/ci6rgbtograyproc}{/ci6cmyktograyproc} ifelse load + image + } ifelse + } ifelse +} def +/ci6knockoutimage { + gsave + 0 ci6curtransfer exec 1 ci6curtransfer exec + eq { + 0 ci6curtransfer exec 0.5 lt + }{ + 0 ci6curtransfer exec 1 ci6curtransfer exec gt + } ifelse + {{pop 0}}{{pop 1}} ifelse + systemdict /settransfer get exec + ci6compositeimage + grestore +} def +/ci6drawimage { + ci6testplate -1 eq { + pop ci6compositeimage + }{ + dup type /arraytype eq { + dup length plateindex gt {plateindex get}{pop false} ifelse + }{ + { + true + }{ + dup 1 eq {plateindex 3 eq}{plateindex 3 le} ifelse + } ifelse + } ifelse + { + dup 1 eq { + pop pop ci6image + }{ + dup 3 eq { + ci6compositeimage + }{ + pop pop + sourcearray 0 3 -1 roll put + /ci6separatecmykproc load + ci6image + } ifelse + } ifelse + }{ + ci6curoverprint { + 7 {pop} repeat + }{ + ci6knockoutimage + } ifelse + } ifelse + } ifelse +} def +/ci6proctintimage { + /_ptispace exch store /_ptiname exch store /_pti1 exch store /_pti0 exch store /_ptiproc exch store + /_pticomps _ptispace ci6numcomps store + /_ptiscale _pti1 _pti0 sub store + level2? { + _ptiname length 0 gt version cvr 2012 ge and { + [/Separation _ptiname _ptispace {_ptiproc}] setcolorspace + [_pti0 _pti1] ci6makeimagedict ci6image + }{ + [/Indexed _ptispace 255 {255 div _ptiscale mul _pti0 add _ptiproc}] setcolorspace + [0 255] ci6makeimagedict ci6image + } ifelse + }{ + _pticomps 1 eq { + { + dup + { + 255 div _ptiscale mul _pti0 add _ptiproc 255 mul cvi put + } ci6stringapply + } ci6concatprocs ci6image + }{ + { + dup length _pticomps mul dup _ptibuf length ne {/_ptibuf exch string store}{pop} ifelse + _ptibuf { + exch _pticomps mul exch 255 div _ptiscale mul _pti0 add _ptiproc + _pticomps 2 add -2 roll + _pticomps 1 sub -1 0 { + 1 index add 2 index exch + 5 -1 roll + 255 mul cvi put + } for + pop pop + } ci6stringapply + } ci6concatprocs false _pticomps + /ci6colorimage load null eq {7 {pop} repeat}{ci6colorimage} ifelse + } ifelse + } ifelse +} def +/ci6graytintimage { + /_gtigray 5 -1 roll store + {1 _gtigray sub mul 1 exch sub} 4 1 roll + /DeviceGray ci6proctintimage +} def +/ci6cmyktintimage { + /_cticmyk 5 -1 roll store + {_cticmyk {1 index mul exch} forall pop} 4 1 roll + /DeviceCMYK ci6proctintimage +} def +/ci6rgbtintimage { + /_rtirgb 5 -1 roll store + {_rtirgb {1 exch sub 1 index mul 1 exch sub exch} forall pop} 4 1 roll + /DeviceRGB ci6proctintimage +} def +/ci6tintimage { + ci6testplate -1 eq { + ci6colorexpand + 3 -1 roll 5 -1 roll {0}{0 exch} ifelse 4 2 roll + dup /DeviceGray eq { + pop ci6graytintimage + }{ + dup /DeviceRGB eq { + pop ci6rgbtintimage + }{ + pop ci6cmyktintimage + } ifelse + } ifelse + }{ + dup ci6marksplate { + plateindex 5 lt { + ci6colortocmyk plateindex get + dup 0 eq ci6curoverprint and { + 7 {pop} repeat + }{ + 1 exch sub + exch {1 0}{0 1} ifelse () ci6graytintimage + } ifelse + }{ + pop exch {0}{0 exch} ifelse 0 3 1 roll () ci6graytintimage + } ifelse + }{ + ci6curoverprint { + 8 {pop} repeat + }{ + pop pop pop + {pop 1} 0 1 () /DeviceGray ci6proctintimage + } ifelse + } ifelse + } ifelse +} def +/XINullImage { +} def +/XIImageMask { + XIImageWidth XIImageHeight false + [XIImageWidth 0 0 XIImageHeight neg 0 0] + /XIDataProc load + imagemask +} def +/XIImageTint { + XIImageWidth XIImageHeight XIBitsPerPixel + [XIImageWidth 0 0 XIImageHeight neg 0 0] + /XIDataProc load + XIType 3 eq XIColorValues XIColorSpace ci6tintimage +} def +/XIImage { + XIImageWidth XIImageHeight XIBitsPerPixel + [XIImageWidth 0 0 XIImageHeight neg 0 0] + /XIDataProc load + false XIChannelCount XIPlateList ci6drawimage +} def +/XG { + pop pop +} def +/XF { + 13 {pop} repeat +} def +/Xh { + Adobe_ColorImage_AI6_Vars begin + gsave + /XIType exch def + /XIImageHeight exch def + /XIImageWidth exch def + /XIImageMatrix exch def + 0 0 moveto + XIImageMatrix concat + XIImageWidth XIImageHeight scale + + /_lp /null ddef + _fc + /_lp /imagemask ddef + end +} def +/XH { + Adobe_ColorImage_AI6_Vars begin + grestore + end +} def +/XIEnable { + Adobe_ColorImage_AI6_Vars /XIEnable 3 -1 roll put +} def +/XC { + Adobe_ColorImage_AI6_Vars begin + ci6colormake + /XIColorSpace exch def + /XIColorValues exch def + end +} def +/XIPlates { + Adobe_ColorImage_AI6_Vars begin + /XIPlateList exch def + end +} def +/XI +{ + Adobe_ColorImage_AI6_Vars begin + gsave + /XIType exch def + cvi dup + 256 idiv /XICompression exch store + 256 mod /XIEncoding exch store + pop pop + /XIChannelCount exch def + /XIBitsPerPixel exch def + /XIImageHeight exch def + /XIImageWidth exch def + pop pop pop pop + /XIImageMatrix exch def + XIBitsPerPixel 1 eq { + XIImageWidth 8 div ceiling cvi + }{ + XIImageWidth XIChannelCount mul + } ifelse + /XIRowBytes exch def + XIEnable { + /XIBuffer3 XIImageWidth string def + XICompression 0 eq { + /XIBuffer1 XIRowBytes string def + XIEncoding 0 eq { + {currentfile XIBuffer1 readhexstring pop} + }{ + {currentfile XIBuffer1 readstring pop} + } ifelse + }{ + /XIBuffer1 256 string def + /XIBuffer2 XIRowBytes string def + {currentfile XIBuffer1 readline pop (%) anchorsearch {pop} if} + /ASCII85Decode filter /DCTDecode filter + /XIFile exch def + {XIFile XIBuffer2 readstring pop} + } ifelse + /XIDataProc exch def + + XIType 1 ne { + 0 setgray + } if + XIType 1 eq { + XIImageMask + }{ + XIType 2 eq XIType 3 eq or { + XIImageTint + }{ + XIImage + } ifelse + } ifelse + }{ + XINullImage + } ifelse + /XIPlateList false def + grestore + end +} def +end +%%EndProcSet +%%BeginResource: procset Adobe_Illustrator_AI5 1.3 0 +%%Title: (Adobe Illustrator (R) Version 8.0 Full Prolog) +%%Version: 1.3 0 +%%CreationDate: (3/7/1994) () +%%Copyright: ((C) 1987-1998 Adobe Systems Incorporated All Rights Reserved) +currentpacking true setpacking +userdict /Adobe_Illustrator_AI5_vars 112 dict dup begin +put +/_?cmyk false def +/_eo false def +/_lp /none def +/_pf +{ +} def +/_ps +{ +} def +/_psf +{ +} def +/_pss +{ +} def +/_pjsf +{ +} def +/_pjss +{ +} def +/_pola 0 def +/_doClip 0 def +/cf currentflat def +/_lineorientation 0 def +/_charorientation 0 def +/_yokoorientation 0 def +/_tm matrix def +/_renderStart +[ +/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0 +] def +/_renderEnd +[ +null null null null /i1 /i1 /i1 /i1 +] def +/_render -1 def +/_shift [0 0] def +/_ax 0 def +/_ay 0 def +/_cx 0 def +/_cy 0 def +/_leading +[ +0 0 +] def +/_ctm matrix def +/_mtx matrix def +/_sp 16#020 def +/_hyphen (-) def +/_fontSize 0 def +/_fontAscent 0 def +/_fontDescent 0 def +/_fontHeight 0 def +/_fontRotateAdjust 0 def +/Ss 256 string def +Ss 0 (fonts/) putinterval +/_cnt 0 def +/_scale [1 1] def +/_nativeEncoding 0 def +/_useNativeEncoding 0 def +/_tempEncode 0 def +/_pntr 0 def +/_tDict 2 dict def +/_hfname 100 string def +/_hffound false def +/Tx +{ +} def +/Tj +{ +} def +/CRender +{ +} def +/_AI3_savepage +{ +} def +/_gf null def +/_cf 4 array def +/_rgbf 3 array def +/_if null def +/_of false def +/_fc +{ +} def +/_gs null def +/_cs 4 array def +/_rgbs 3 array def +/_is null def +/_os false def +/_sc +{ +} def +/_pd 1 dict def +/_ed 15 dict def +/_pm matrix def +/_fm null def +/_fd null def +/_fdd null def +/_sm null def +/_sd null def +/_sdd null def +/_i null def +/_lobyte 0 def +/_hibyte 0 def +/_cproc null def +/_cscript 0 def +/_hvax 0 def +/_hvay 0 def +/_hvwb 0 def +/_hvcx 0 def +/_hvcy 0 def +/_bitfont null def +/_bitlobyte 0 def +/_bithibyte 0 def +/_bitkey null def +/_bitdata null def +/_bitindex 0 def +/discardSave null def +/buffer 256 string def +/beginString null def +/endString null def +/endStringLength null def +/layerCnt 1 def +/layerCount 1 def +/perCent (%) 0 get def +/perCentSeen? false def +/newBuff null def +/newBuffButFirst null def +/newBuffLast null def +/clipForward? false def +end +userdict /Adobe_Illustrator_AI5 known not { + userdict /Adobe_Illustrator_AI5 100 dict put +} if +userdict /Adobe_Illustrator_AI5 get begin +/initialize +{ + Adobe_Illustrator_AI5 dup begin + Adobe_Illustrator_AI5_vars begin + /_aicmykps where {pop /_?cmyk _aicmykps def}if + discardDict + { + bind pop pop + } forall + dup /nc get begin + { + dup xcheck 1 index type /operatortype ne and + { + bind + } if + pop pop + } forall + end + newpath +} def +/terminate +{ + end + end +} def +/_ +null def +/ddef +{ + Adobe_Illustrator_AI5_vars 3 1 roll put +} def +/xput +{ + dup load dup length exch maxlength eq + { + dup dup load dup + length 2 mul dict copy def + } if + load begin + def + end +} def +/npop +{ + { + pop + } repeat +} def +/hswj +{ + dup stringwidth 3 2 roll + { + _hvwb eq { exch _hvcx add exch _hvcy add } if + exch _hvax add exch _hvay add + } cforall +} def +/vswj +{ + 0 0 3 -1 roll + { + dup 255 le + _charorientation 1 eq + and + { + dup cstring stringwidth 5 2 roll + _hvwb eq { exch _hvcy sub exch _hvcx sub } if + exch _hvay sub exch _hvax sub + 4 -1 roll sub exch + 3 -1 roll sub exch + } + { + _hvwb eq { exch _hvcy sub exch _hvcx sub } if + exch _hvay sub exch _hvax sub + _fontHeight sub + } ifelse + } cforall +} def +/swj +{ + 6 1 roll + /_hvay exch ddef + /_hvax exch ddef + /_hvwb exch ddef + /_hvcy exch ddef + /_hvcx exch ddef + _lineorientation 0 eq { hswj } { vswj } ifelse +} def +/sw +{ + 0 0 0 6 3 roll swj +} def +/vjss +{ + 4 1 roll + { + dup cstring + dup length 1 eq + _charorientation 1 eq + and + { + -90 rotate + currentpoint + _fontRotateAdjust add + moveto + gsave + false charpath currentpoint + 5 index setmatrix stroke + grestore + _fontRotateAdjust sub + moveto + _sp eq + { + 5 index 5 index rmoveto + } if + 2 copy rmoveto + 90 rotate + } + { + currentpoint + _fontHeight sub + 5 index sub + 3 index _sp eq + { + 9 index sub + } if + + currentpoint + exch 4 index stringwidth pop 2 div sub + exch _fontAscent sub + moveto + + gsave + 2 index false charpath + 6 index setmatrix stroke + grestore + + moveto pop pop + } ifelse + } cforall + 6 npop +} def +/hjss +{ + 4 1 roll + { + dup cstring + gsave + false charpath currentpoint + 5 index setmatrix stroke + grestore + moveto + _sp eq + { + 5 index 5 index rmoveto + } if + 2 copy rmoveto + } cforall + 6 npop +} def +/jss +{ + _lineorientation 0 eq { hjss } { vjss } ifelse +} def +/ss +{ + 0 0 0 7 3 roll jss +} def +/vjsp +{ + 4 1 roll + { + dup cstring + dup length 1 eq + _charorientation 1 eq + and + { + -90 rotate + currentpoint + _fontRotateAdjust add + moveto + false charpath + currentpoint + _fontRotateAdjust sub + moveto + _sp eq + { + 5 index 5 index rmoveto + } if + 2 copy rmoveto + 90 rotate + } + { + currentpoint + _fontHeight sub + 5 index sub + 3 index _sp eq + { + 9 index sub + } if + + currentpoint + exch 4 index stringwidth pop 2 div sub + exch _fontAscent sub + moveto + + 2 index false charpath + + moveto pop pop + } ifelse + } cforall + 6 npop +} def +/hjsp +{ + 4 1 roll + { + dup cstring + false charpath + _sp eq + { + 5 index 5 index rmoveto + } if + 2 copy rmoveto + } cforall + 6 npop +} def +/jsp +{ + matrix currentmatrix + _lineorientation 0 eq {hjsp} {vjsp} ifelse +} def +/sp +{ + matrix currentmatrix + 0 0 0 7 3 roll + _lineorientation 0 eq {hjsp} {vjsp} ifelse +} def +/pl +{ + transform + 0.25 sub round 0.25 add exch + 0.25 sub round 0.25 add exch + itransform +} def +/setstrokeadjust where +{ + pop true setstrokeadjust + /c + { + curveto + } def + /C + /c load def + /v + { + currentpoint 6 2 roll curveto + } def + /V + /v load def + /y + { + 2 copy curveto + } def + /Y + /y load def + /l + { + lineto + } def + /L + /l load def + /m + { + moveto + } def +} +{ + /c + { + pl curveto + } def + /C + /c load def + /v + { + currentpoint 6 2 roll pl curveto + } def + /V + /v load def + /y + { + pl 2 copy curveto + } def + /Y + /y load def + /l + { + pl lineto + } def + /L + /l load def + /m + { + pl moveto + } def +} ifelse +/d +{ + setdash +} def +/cf +{ +} def +/i +{ + dup 0 eq + { + pop cf + } if + setflat +} def +/j +{ + setlinejoin +} def +/J +{ + setlinecap +} def +/M +{ + setmiterlimit +} def +/w +{ + setlinewidth +} def +/XR +{ + 0 ne + /_eo exch ddef +} def +/H +{ +} def +/h +{ + closepath +} def +/N +{ + _pola 0 eq + { + _doClip 1 eq + { + _eo {eoclip} {clip} ifelse /_doClip 0 ddef + } if + newpath + } + { + /CRender + { + N + } ddef + } ifelse +} def +/n +{ + N +} def +/F +{ + _pola 0 eq + { + _doClip 1 eq + { + gsave _pf grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _fc + /_doClip 0 ddef + } + { + _pf + } ifelse + } + { + /CRender + { + F + } ddef + } ifelse +} def +/f +{ + closepath + F +} def +/S +{ + _pola 0 eq + { + _doClip 1 eq + { + gsave _ps grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc + /_doClip 0 ddef + } + { + _ps + } ifelse + } + { + /CRender + { + S + } ddef + } ifelse +} def +/s +{ + closepath + S +} def +/B +{ + _pola 0 eq + { + _doClip 1 eq + gsave F grestore + { + gsave S grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc + /_doClip 0 ddef + } + { + S + } ifelse + } + { + /CRender + { + B + } ddef + } ifelse +} def +/b +{ + closepath + B +} def +/W +{ + /_doClip 1 ddef +} def +/* +{ + count 0 ne + { + dup type /stringtype eq + { + pop + } if + } if + newpath +} def +/u +{ +} def +/U +{ +} def +/q +{ + _pola 0 eq + { + gsave + } if +} def +/Q +{ + _pola 0 eq + { + grestore + } if +} def +/*u +{ + _pola 1 add /_pola exch ddef +} def +/*U +{ + _pola 1 sub /_pola exch ddef + _pola 0 eq + { + CRender + } if +} def +/D +{ + pop +} def +/*w +{ +} def +/*W +{ +} def +/` +{ + /_i save ddef + clipForward? + { + nulldevice + } if + 6 1 roll 4 npop + concat pop + userdict begin + /showpage + { + } def + 0 setgray + 0 setlinecap + 1 setlinewidth + 0 setlinejoin + 10 setmiterlimit + [] 0 setdash + /setstrokeadjust where {pop false setstrokeadjust} if + newpath + 0 setgray + false setoverprint +} def +/~ +{ + end + _i restore +} def +/_rgbtocmyk +{ + 3 + { + 1 exch sub 3 1 roll + } repeat + 3 copy 1 4 1 roll + 3 + { + 3 index 2 copy gt + { + exch + } if + pop 4 1 roll + } repeat + pop pop pop + 4 1 roll + 3 + { + 3 index sub + 3 1 roll + } repeat + 4 -1 roll +} def +/setrgbfill +{ + _rgbf astore pop + /_fc + { + _lp /fill ne + { + _of setoverprint + _rgbf aload pop setrgbcolor + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + hvashow + } ddef + /_pjsf + { + _fc + hvawidthshow + } ddef + /_lp /none ddef +} def +/setrgbstroke +{ + _rgbs astore pop + /_sc + { + _lp /stroke ne + { + _os setoverprint + _rgbs aload pop setrgbcolor + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/O +{ + 0 ne + /_of exch ddef + /_lp /none ddef +} def +/R +{ + 0 ne + /_os exch ddef + /_lp /none ddef +} def +/g +{ + /_gf exch ddef + /_fc + { + _lp /fill ne + { + _of setoverprint + _gf setgray + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + hvashow + } ddef + /_pjsf + { + _fc + hvawidthshow + } ddef + /_lp /none ddef +} def +/G +{ + /_gs exch ddef + /_sc + { + _lp /stroke ne + { + _os setoverprint + _gs setgray + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/k +{ + _cf astore pop + /_fc + { + _lp /fill ne + { + _of setoverprint + _cf aload pop setcmykcolor + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + hvashow + } ddef + /_pjsf + { + _fc + hvawidthshow + } ddef + /_lp /none ddef +} def +/K +{ + _cs astore pop + /_sc + { + _lp /stroke ne + { + _os setoverprint + _cs aload pop setcmykcolor + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/Xa +{ + _?cmyk { + 3 npop k + }{ + setrgbfill 4 npop + } ifelse +} def +/XA +{ + _?cmyk { + 3 npop K + }{ + setrgbstroke 4 npop + } ifelse +} def +/Xs +{ + /_gf exch ddef + 5 npop + /_fc + { + _lp /fill ne + { + _of setoverprint + _gf setAIseparationgray + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + hvashow + } ddef + /_pjsf + { + _fc + hvawidthshow + } ddef + /_lp /none ddef +} def +/XS +{ + /_gs exch ddef + 5 npop + /_sc + { + _lp /stroke ne + { + _os setoverprint + _gs setAIseparationgray + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/Xx +{ + exch + /_gf exch ddef + 0 eq { + findcmykcustomcolor + }{ + _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse + { + 4 1 roll 3 npop + findcmykcustomcolor + }{ + 8 -4 roll 4 npop + findrgbcustomcolor + } ifelse + } ifelse + /_if exch ddef + /_fc + { + _lp /fill ne + { + _of setoverprint + _if _gf 1 exch sub setcustomcolor + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + hvashow + } ddef + /_pjsf + { + _fc + hvawidthshow + } ddef + /_lp /none ddef +} def +/XX +{ + exch + /_gs exch ddef + 0 eq { + findcmykcustomcolor + }{ + _?cmyk {true}{/findrgbcustomcolor where{pop false}{true}ifelse}ifelse + { + 4 1 roll 3 npop + findcmykcustomcolor + }{ + 8 -4 roll 4 npop + findrgbcustomcolor + } ifelse + } ifelse + /_is exch ddef + /_sc + { + _lp /stroke ne + { + _os setoverprint + _is _gs 1 exch sub setcustomcolor + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/x +{ + /_gf exch ddef + findcmykcustomcolor + /_if exch ddef + /_fc + { + _lp /fill ne + { + _of setoverprint + _if _gf 1 exch sub setcustomcolor + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + hvashow + } ddef + /_pjsf + { + _fc + hvawidthshow + } ddef + /_lp /none ddef +} def +/X +{ + /_gs exch ddef + findcmykcustomcolor + /_is exch ddef + /_sc + { + _lp /stroke ne + { + _os setoverprint + _is _gs 1 exch sub setcustomcolor + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/XK +{ + 3 -1 roll pop + 0 eq + { + 1 exch sub + 3 {dup 3 1 roll mul 5 1 roll} repeat + mul 4 1 roll + K + } + { + 1 exch sub 4 1 roll + 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat + 4 -1 roll pop + XA + } ifelse +} def +/Xk +{ + 3 -1 roll pop + 0 eq + { + 1 exch sub + 3 {dup 3 1 roll mul 5 1 roll} repeat + mul 4 1 roll + k + } + { + 1 exch sub 4 1 roll + 3 {1 exch sub 3 index mul 1 exch sub 3 1 roll} repeat + 4 -1 roll pop + Xa + } ifelse +} def +/A +{ + pop +} def +/annotatepage +{ +userdict /annotatepage 2 copy known {get exec} {pop pop} ifelse +} def +/XT { + pop pop +} def +/Xt { + pop +} def +/discard +{ + save /discardSave exch store + discardDict begin + /endString exch store + gt38? + { + 2 add + } if + load + stopped + pop + end + discardSave restore +} bind def +userdict /discardDict 7 dict dup begin +put +/pre38Initialize +{ + /endStringLength endString length store + /newBuff buffer 0 endStringLength getinterval store + /newBuffButFirst newBuff 1 endStringLength 1 sub getinterval store + /newBuffLast newBuff endStringLength 1 sub 1 getinterval store +} def +/shiftBuffer +{ + newBuff 0 newBuffButFirst putinterval + newBuffLast 0 + currentfile read not + { + stop + } if + put +} def +0 +{ + pre38Initialize + mark + currentfile newBuff readstring exch pop + { + { + newBuff endString eq + { + cleartomark stop + } if + shiftBuffer + } loop + } + { + stop + } ifelse +} def +1 +{ + pre38Initialize + /beginString exch store + mark + currentfile newBuff readstring exch pop + { + { + newBuff beginString eq + { + /layerCount dup load 1 add store + } + { + newBuff endString eq + { + /layerCount dup load 1 sub store + layerCount 0 eq + { + cleartomark stop + } if + } if + } ifelse + shiftBuffer + } loop + } if +} def +2 +{ + mark + { + currentfile buffer {readline} stopped { + % assume error was due to overfilling the buffer + }{ + not + { + stop + } if + endString eq { + cleartomark stop + } if + }ifelse + } loop +} def +3 +{ + /beginString exch store + /layerCnt 1 store + mark + { + currentfile buffer {readline} stopped { + % assume error was due to overfilling the buffer + }{ + not + { + stop + } if + dup beginString eq + { + pop /layerCnt dup load 1 add store + } + { + endString eq + { + layerCnt 1 eq + { + cleartomark stop + } + { + /layerCnt dup load 1 sub store + } ifelse + } if + } ifelse + }ifelse + } loop +} def +end +userdict /clipRenderOff 15 dict dup begin +put +{ + /n /N /s /S /f /F /b /B +} +{ + { + _doClip 1 eq + { + /_doClip 0 ddef _eo {eoclip} {clip} ifelse + } if + newpath + } def +} forall +/Tr /pop load def +/Bb {} def +/BB /pop load def +/Bg {12 npop} def +/Bm {6 npop} def +/Bc /Bm load def +/Bh {4 npop} def +end +/Lb +{ + 6 npop + 7 2 roll + 5 npop + 0 eq + { + 0 eq + { + (%AI5_BeginLayer) 1 (%AI5_EndLayer--) discard + } + { + + /clipForward? true def + + /Tx /pop load def + /Tj /pop load def + + currentdict end clipRenderOff begin begin + } ifelse + } + { + 0 eq + { + save /discardSave exch store + } if + } ifelse +} bind def +/LB +{ + discardSave dup null ne + { + restore + } + { + pop + clipForward? + { + currentdict + end + end + begin + + /clipForward? false ddef + } if + } ifelse +} bind def +/Pb +{ + pop pop + 0 (%AI5_EndPalette) discard +} bind def +/Np +{ + 0 (%AI5_End_NonPrinting--) discard +} bind def +/Ln /pop load def +/Ap +/pop load def +/Ar +{ + 72 exch div + 0 dtransform dup mul exch dup mul add sqrt + dup 1 lt + { + pop 1 + } if + setflat +} def +/Mb +{ + q +} def +/Md +{ +} def +/MB +{ + Q +} def +/nc 4 dict def +nc begin +/setgray +{ + pop +} bind def +/setcmykcolor +{ + 4 npop +} bind def +/setrgbcolor +{ + 3 npop +} bind def +/setcustomcolor +{ + 2 npop +} bind def +currentdict readonly pop +end +/XP +{ + 4 npop +} bind def +/XD +{ + pop +} bind def +end +setpacking +%%EndResource +%%BeginResource: procset Adobe_cshow 2.0 8 +%%Title: (Writing System Operators) +%%Version: 2.0 8 +%%CreationDate: (1/23/89) () +%%Copyright: ((C) 1992-1996 Adobe Systems Incorporated All Rights Reserved) +currentpacking true setpacking +userdict /Adobe_cshow 14 dict dup begin put +/initialize +{ + Adobe_cshow begin + Adobe_cshow + { + dup xcheck + { + bind + } if + pop pop + } forall + end + Adobe_cshow begin +} def +/terminate +{ +currentdict Adobe_cshow eq + { + end + } if +} def +/cforall +{ + /_lobyte 0 ddef + /_hibyte 0 ddef + /_cproc exch ddef + /_cscript currentfont /FontScript known { currentfont /FontScript get } { -1 } ifelse ddef + { + /_lobyte exch ddef + _hibyte 0 eq + _cscript 1 eq + _lobyte 129 ge _lobyte 159 le and + _lobyte 224 ge _lobyte 252 le and or and + _cscript 2 eq + _lobyte 161 ge _lobyte 254 le and and + _cscript 3 eq + _lobyte 161 ge _lobyte 254 le and and + _cscript 25 eq + _lobyte 161 ge _lobyte 254 le and and + _cscript -1 eq + or or or or and + { + /_hibyte _lobyte ddef + } + { + _hibyte 256 mul _lobyte add + _cproc + /_hibyte 0 ddef + } ifelse + } forall +} def +/cstring +{ + dup 256 lt + { + (s) dup 0 4 3 roll put + } + { + dup 256 idiv exch 256 mod + (hl) dup dup 0 6 5 roll put 1 4 3 roll put + } ifelse +} def +/clength +{ + 0 exch + { 256 lt { 1 } { 2 } ifelse add } cforall +} def +/hawidthshow +{ + { + dup cstring + show + _hvax _hvay rmoveto + _hvwb eq { _hvcx _hvcy rmoveto } if + } cforall +} def +/vawidthshow +{ + { + dup 255 le + _charorientation 1 eq + and + { + -90 rotate + 0 _fontRotateAdjust rmoveto + cstring + _hvcx _hvcy _hvwb _hvax _hvay 6 -1 roll awidthshow + 0 _fontRotateAdjust neg rmoveto + 90 rotate + } + { + currentpoint + _fontHeight sub + exch _hvay sub exch _hvax sub + 2 index _hvwb eq { exch _hvcy sub exch _hvcx sub } if + 3 2 roll + cstring + dup stringwidth pop 2 div neg _fontAscent neg rmoveto + show + moveto + } ifelse + } cforall +} def +/hvawidthshow +{ + 6 1 roll + /_hvay exch ddef + /_hvax exch ddef + /_hvwb exch ddef + /_hvcy exch ddef + /_hvcx exch ddef + _lineorientation 0 eq { hawidthshow } { vawidthshow } ifelse +} def +/hvwidthshow +{ + 0 0 3 -1 roll hvawidthshow +} def +/hvashow +{ + 0 0 0 6 -3 roll hvawidthshow +} def +/hvshow +{ + 0 0 0 0 0 6 -1 roll hvawidthshow +} def +currentdict readonly pop end +setpacking +%%EndResource +%%BeginResource: procset Adobe_shading_AI8 1.0 0 +%%Title: (Adobe Illustrator 8 Shading Procset) +%%Version: 1.0 0 +%%CreationDate: (12/17/97) () +%%Copyright: ((C) 1987-1997 Adobe Systems Incorporated All Rights Reserved) +userdict /defaultpacking currentpacking put true setpacking +userdict /Adobe_shading_AI8 10 dict dup begin put +/initialize { + Adobe_shading_AI8 begin + Adobe_shading_AI8 bdprocs + Mesh /initialize get exec +} def +/terminate { + currentdict Adobe_shading_AI8 eq { + end + } if +} def +/bdprocs { + { + dup xcheck 1 index type /arraytype eq and { + bind + } if + pop pop + } forall +} def +/X! {pop} def +/X# {pop pop} def +/Mesh 40 dict def +Mesh begin +/initialize { + Mesh bdprocs + Mesh begin + /emulate? /AI8MeshEmulation where { + pop AI8MeshEmulation + }{ + systemdict /shfill known not + } ifelse def + end +} def +/bd { + shadingdict begin +} def +/paint { + emulate? { + end + }{ + /_lp /none ddef _fc /_lp /none ddef + + /AIColorSpace AIColorSpace tocolorspace store + /ColorSpace AIColorSpace topsspace store + + version_ge_3010.106 not systemdict /setsmoothness known and { + 0.0001 setsmoothness + } if + + composite? { + /DataSource getdatasrc def + Matrix concat + currentdict end + shfill + }{ + AIColorSpace makesmarks AIPlateList markingplate and not isoverprint and { + end + }{ + /ColorSpace /DeviceGray store + /Decode [0 1 0 1 0 1] store + /DataSource getplatesrc def + Matrix concat + currentdict end + shfill + } ifelse + } ifelse + } ifelse +} def +/shadingdict 12 dict def +shadingdict begin + /ShadingType 6 def + /BitsPerCoordinate 16 def + /BitsPerComponent 8 def + /BitsPerFlag 8 def +end +/datafile null def +/databuf 256 string def +/dataptr 0 def +/srcspace null def +/srcchannels 0 def +/dstchannels 0 def +/dstplate 0 def +/srctodstcolor null def +/getplatesrc { + /srcspace AIColorSpace store + /srcchannels AIColorSpace getnchannels store + /dstchannels 1 store + /dstplate getplateindex store + /srctodstcolor srcspace makesmarks { + dstplate 4 eq { + {1 exch sub} + }{ + {srcspace tocmyk 3 dstplate sub index 1 exch sub 5 1 roll 4 {pop} repeat} + } ifelse + }{ + {srcchannels {pop} repeat 1} + } ifelse store + /datafile getdatasrc store + /rdpatch168 load DataLength () /SubFileDecode filter +} def +/getdatasrc { + /rdcmntline load /ASCII85Decode filter +} def +/rdpatch168 { + /dataptr 0 store + 49 rdcount + 4 { + dup {pop srcchannels getint8} if + dup {pop srctodstcolor dstchannels putint8 true} if + } repeat + {databuf 0 dataptr getinterval}{()} ifelse +} def +/rdpatch3216 { + /dataptr 0 store + 97 rdcount + 4 { + dup {pop srcchannels getint16} if + dup {pop srctodstcolor dstchannels putint16 true} if + } repeat + {databuf 0 dataptr getinterval}{()} ifelse +} def +/rdcount { + dup 0 gt { + datafile databuf dataptr 4 -1 roll getinterval readstring + exch length dataptr add /dataptr exch store + }{ + true + } ifelse +} def +/getint8 { + mark true 3 -1 roll + { + dup {pop datafile read} if + dup {pop 255 div true} if + } repeat + { + counttomark 1 add -1 roll pop true + }{ + cleartomark false + } ifelse +} def +/putint8 { + dup dataptr add /dataptr exch store + dataptr exch + { + 1 sub exch + 255 mul cvi + databuf 2 index + 3 -1 roll put + } repeat + pop +} def +/getint16 { + mark true 3 -1 roll + { + dup {pop datafile read} if + dup {pop 256 mul datafile read} if + dup {pop add 65535 div true} if + } repeat + { + counttomark 1 add -1 roll pop true + }{ + cleartomark false + } ifelse +} def +/putint16 { + dup 2 mul dataptr add /dataptr exch store + dataptr exch + { + 2 sub exch + 65535 mul cvi dup + 256 idiv databuf 3 index 3 -1 roll put + 256 mod databuf 2 index 1 add 3 -1 roll put + } repeat + pop +} def +/srcbuf 256 string def +/rdcmntline { + currentfile srcbuf readline pop + (%) anchorsearch {pop} if +} def +/getplateindex { + 0 [cyan? magenta? yellow? black? customColor?] {{exit} if 1 add} forall +} def +/aicsarray 4 array def +/aicsaltvals 4 array def +/aicsaltcolr aicsaltvals def +/tocolorspace { + dup type /arraytype eq { + mark exch aload pop + aicsarray 0 3 -1 roll put + aicsarray 1 3 -1 roll put + dup aicsarray 2 3 -1 roll put + gettintxform aicsarray 3 3 -1 roll put + counttomark aicsaltvals 0 3 -1 roll getinterval /aicsaltcolr exch store + aicsaltcolr astore pop pop + aicsarray + } if +} def +/subtintxform {aicsaltcolr {1 index mul exch} forall pop} def +/addtintxform {aicsaltcolr {1 sub 1 index mul 1 add exch} forall pop} def +/gettintxform { + /DeviceRGB eq {/addtintxform}{/subtintxform} ifelse load +} def +/getnchannels { + dup type /arraytype eq {0 get} if + colorspacedict exch get begin Channels end +} def +/makesmarks { + composite? { + pop true + }{ + dup dup type /arraytype eq {0 get} if + colorspacedict exch get begin MarksPlate end + } ifelse +} def +/markingplate { + composite? { + pop true + }{ + dup type /arraytype eq { + dup length getplateindex gt {getplateindex get}{pop false} ifelse + } if + } ifelse +} def +/tocmyk { + dup dup type /arraytype eq {0 get} if + colorspacedict exch get begin ToCMYK end +} def +/topsspace { + dup dup type /arraytype eq {0 get} if + colorspacedict exch get begin ToPSSpace end +} def +/colorspacedict 5 dict dup begin + /DeviceGray 4 dict dup begin + /Channels 1 def + /MarksPlate {pop black?} def + /ToCMYK {pop 1 exch sub 0 0 0 4 -1 roll} def + /ToPSSpace {} def + end def + /DeviceRGB 4 dict dup begin + /Channels 3 def + /MarksPlate {pop isCMYKSep?} def + /ToCMYK {pop _rgbtocmyk} def + /ToPSSpace {} def + end def + /DeviceCMYK 4 dict dup begin + /Channels 4 def + /MarksPlate {pop isCMYKSep?} def + /ToCMYK {pop} def + /ToPSSpace {} def + end def + /Separation 4 dict dup begin + /Channels 1 def + /MarksPlate { + /findcmykcustomcolor where { + pop dup 1 exch ToCMYK 5 -1 roll 1 get + findcmykcustomcolor 1 setcustomcolor + systemdict /currentgray get exec + 1 ne + }{ + pop false + } ifelse + } def + /ToCMYK { + dup 2 get mark exch 4 2 roll + 3 get exec + counttomark -1 roll tocmyk + 5 -1 roll pop + } def + /ToPSSpace {} def + end def + /Process 4 dict dup begin + /Channels 1 def + /MarksPlate { + isCMYKSep? { + 1 exch ToCMYK 4 array astore getplateindex get 0 ne + }{ + pop false + } ifelse + } def + /ToCMYK { + dup 2 get mark exch 4 2 roll + 3 get exec + counttomark -1 roll tocmyk + 5 -1 roll pop + } def + /ToPSSpace { + 4 array copy dup 0 /Separation put + } def + end def +end def +/isoverprint { + /currentoverprint where {pop currentoverprint}{_of} ifelse +} def +/version_ge_3010.106 { + version {cvr} stopped { + pop + false + }{ + 3010.106 ge + } ifelse +} def +end +end +defaultpacking setpacking +%%EndResource +%%EndProlog +%%BeginSetup +userdict /_useSmoothShade false put +userdict /_aicmykps false put +userdict /_forceToCMYK false put +Adobe_level2_AI5 /initialize get exec +Adobe_cshow /initialize get exec +Adobe_ColorImage_AI6 /initialize get exec +Adobe_shading_AI8 /initialize get exec +Adobe_Illustrator_AI5 /initialize get exec +%AI5_Begin_NonPrinting +Np +%AI3_BeginPattern: (Brick) +(Brick) 0 0 72 72 [ +%AI3_Tile +(0 O 0 R 0.3 0.85 0.85 0 k + 0.3 0.85 0.85 0 K +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +0 0 m +0 72 L +72 72 L +72 0 L +0 0 L +f %AI6_EndPatternLayer +) & +(0 O 0 R 1 g + 1 G +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 0.3 w 4 M []0 d %AI3_Note: 0 D +0 XR +0 68.4097 m +72 68.4097 l +S 0 61.209 m +72 61.209 L +S 0 54.0088 m +72 54.0088 L +S 0 46.8076 m +72 46.8076 L +S 0 39.6084 m +72 39.6084 L +S 0 32.4072 m +72 32.4072 L +S 0 25.207 m +72 25.207 L +S 0 18.0059 m +72 18.0059 L +S 0 10.8057 m +72 10.8057 L +S 0 3.6064 m +72 3.6064 L +S 68.4102 68.4097 m +68.4102 61.2217 l +S 54.0098 68.4097 m +54.0098 61.2217 L +S 39.6094 68.4097 m +39.6094 61.2217 L +S 25.21 68.4097 m +25.21 61.2217 L +S 10.8105 68.4097 m +10.8105 61.2217 L +S 68.4102 53.9717 m +68.4102 46.7842 l +S 54.0098 53.9717 m +54.0098 46.7842 L +S 39.6094 53.9717 m +39.6094 46.7842 L +S 25.21 53.9717 m +25.21 46.7842 L +S 10.8105 53.9717 m +10.8105 46.7842 L +S 68.4102 39.5967 m +68.4102 32.4092 l +S 54.0098 39.5967 m +54.0098 32.4092 L +S 39.6094 39.5967 m +39.6094 32.4092 L +S 25.21 39.5967 m +25.21 32.4092 L +S 10.8105 39.5967 m +10.8105 32.4092 L +S 68.4102 25.2217 m +68.4102 18.0342 l +S 54.0098 25.2217 m +54.0098 18.0342 L +S 39.6094 25.2217 m +39.6094 18.0342 L +S 25.21 25.2217 m +25.21 18.0342 L +S 10.8105 25.2217 m +10.8105 18.0342 L +S 68.4102 10.7842 m +68.4102 3.5967 l +S 54.0098 10.7842 m +54.0098 3.5967 L +S 39.6094 10.7842 m +39.6094 3.5967 L +S 25.21 10.7842 m +25.21 3.5967 L +S 10.8105 10.7842 m +10.8105 3.5967 L +S 61.1973 3.5967 m +61.1973 0 L +S 46.7969 3.5967 m +46.7969 0 L +S 32.3965 3.5967 m +32.3965 0 L +S 17.9971 3.5967 m +17.9971 0 L +S 3.5967 3.5967 m +3.5967 0 l +S 61.1973 18.0342 m +61.1973 10.8467 L +S 46.7969 18.0342 m +46.7969 10.8467 L +S 32.3965 18.0342 m +32.3965 10.8467 L +S 17.9971 18.0342 m +17.9971 10.8467 L +S 3.5967 18.0342 m +3.5967 10.8467 l +S 61.1973 32.4092 m +61.1973 25.2217 L +S 46.7969 32.4092 m +46.7969 25.2217 L +S 17.9971 32.4092 m +17.9971 25.2217 L +S 3.5967 32.4092 m +3.5967 25.2217 l +S 61.1973 46.7842 m +61.1973 39.5967 L +S 46.7969 46.7842 m +46.7969 39.5967 L +S 32.3965 46.7842 m +32.3965 39.5967 L +S 17.9971 46.7842 m +17.9971 39.5967 L +S 3.5967 46.7842 m +3.5967 39.5967 l +S 61.1973 61.2217 m +61.1973 54.0347 L +S 46.7969 61.2217 m +46.7969 54.0347 L +S 32.3965 61.2217 m +32.3965 54.0347 L +S 17.9971 61.2217 m +17.9971 54.0347 L +S 3.5967 61.2217 m +3.5967 54.0347 l +S 61.1973 71.959 m +61.1973 68.4717 L +S 46.7969 71.959 m +46.7969 68.4717 L +S 32.3965 71.959 m +32.3965 68.4717 L +S 17.9971 71.959 m +17.9971 68.4717 L +S 3.5967 71.959 m +3.5967 68.4717 l +S 32.3965 32.4092 m +32.3965 25.2217 L +S %AI6_EndPatternLayer +) & +] E +%AI3_EndPattern +%AI3_BeginPattern: (Confetti) +(Confetti) 4.85 3.617 76.85 75.617 [ +%AI3_Tile +(0 O 0 R 1 g + 1 G +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +4.85 3.617 m +4.85 75.617 L +76.85 75.617 L +76.85 3.617 L +4.85 3.617 L +f %AI6_EndPatternLayer +) & +(0 O 0 R 0 g + 0 G +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 0.3 w 4 M []0 d %AI3_Note: 0 D +0 XR +10.6 64.867 m +7.85 62.867 l +S 9.1 8.617 m +6.85 6.867 l +S 78.1 68.617 m +74.85 67.867 l +S 76.85 56.867 m +74.35 55.117 l +S 79.6 51.617 m +76.6 51.617 l +S 76.35 44.117 m +73.6 45.867 l +S 78.6 35.867 m +76.6 34.367 l +S 76.1 23.867 m +73.35 26.117 l +S 78.1 12.867 m +73.85 13.617 l +S 68.35 14.617 m +66.1 12.867 l +S 76.6 30.617 m +73.6 30.617 l +S 62.85 58.117 m +60.956 60.941 l +S 32.85 59.617 m +31.196 62.181 l +S 47.891 64.061 m +49.744 66.742 l +S 72.814 2.769 m +73.928 5.729 l +S 67.976 2.633 m +67.35 5.909 l +S 61.85 27.617 m +59.956 30.441 l +S 53.504 56.053 m +51.85 58.617 l +S 52.762 1.779 m +52.876 4.776 l +S 45.391 5.311 m +47.244 7.992 l +S 37.062 3.375 m +35.639 5.43 l +S 55.165 34.828 m +57.518 37.491 l +S 20.795 3.242 m +22.12 5.193 l +S 14.097 4.747 m +15.008 8.965 l +S 9.736 1.91 m +8.073 4.225 l +S 31.891 5.573 m +32.005 8.571 l +S 12.1 70.367 m +15.6 68.867 l +S 9.35 54.867 m +9.6 58.117 l +S 12.85 31.867 m +14.35 28.117 l +S 10.1 37.367 m +12.35 41.117 l +S 34.1 71.117 m +31.85 68.617 l +S 38.35 71.117 m +41.6 68.367 l +S 55.1 71.117 m +58.35 69.117 l +S 57.35 65.117 m +55.35 61.867 l +S 64.35 66.367 m +69.35 68.617 l +S 71.85 62.867 m +69.35 61.117 l +S 23.6 70.867 m +23.6 67.867 l +S 20.6 65.867 m +17.35 65.367 l +S 24.85 61.367 m +25.35 58.117 l +S 25.85 65.867 m +29.35 66.617 l +S 14.1 54.117 m +16.85 56.117 l +S 12.35 11.617 m +12.6 15.617 l +S 12.1 19.867 m +14.35 22.367 l +S 26.1 9.867 m +23.6 13.367 l +S 34.6 47.117 m +32.1 45.367 l +S 62.6 41.867 m +59.85 43.367 l +S 31.6 35.617 m +27.85 36.367 l +S 36.35 26.117 m +34.35 24.617 l +S 33.85 14.117 m +31.1 16.367 l +S 37.1 9.867 m +35.1 11.117 l +S 34.35 20.867 m +31.35 20.867 l +S 44.6 56.617 m +42.1 54.867 l +S 47.35 51.367 m +44.35 51.367 l +S 44.1 43.867 m +41.35 45.617 l +S 43.35 33.117 m +42.6 30.617 l +S 43.85 23.617 m +41.1 25.867 l +S 44.35 15.617 m +42.35 16.867 l +S 67.823 31.1 m +64.823 31.1 l +S 27.1 32.617 m +29.6 30.867 l +S 31.85 55.117 m +34.85 55.117 l +S 19.6 40.867 m +22.1 39.117 l +S 16.85 35.617 m +19.85 35.617 l +S 20.1 28.117 m +22.85 29.867 l +S 52.1 42.617 m +54.484 44.178 l +S 52.437 50.146 m +54.821 48.325 l +S 59.572 54.133 m +59.35 51.117 l +S 50.185 10.055 m +53.234 9.928 l +S 51.187 15.896 m +53.571 14.075 l +S 58.322 19.883 m +59.445 16.823 l +S 53.1 32.117 m +50.6 30.367 l +S 52.85 24.617 m +49.6 25.617 l +S 61.85 9.117 m +59.1 10.867 l +S 69.35 34.617 m +66.6 36.367 l +S 67.1 23.617 m +65.1 22.117 l +S 24.435 46.055 m +27.484 45.928 l +S 25.437 51.896 m +27.821 50.075 l +S 62.6 47.117 m +65.321 46.575 l +S 19.85 19.867 m +20.35 16.617 l +S 21.85 21.867 m +25.35 22.617 l +S 37.6 62.867 m +41.6 62.117 l +S 38.323 42.1 m +38.823 38.6 l +S 69.35 52.617 m +66.85 53.867 l +S 14.85 62.117 m +18.1 59.367 l +S 9.6 46.117 m +7.1 44.367 l +S 20.6 51.617 m +18.6 50.117 l +S 46.141 70.811 m +47.994 73.492 l +S 69.391 40.561 m +71.244 43.242 l +S 38.641 49.311 m +39.35 52.117 l +S 25.141 16.811 m +25.85 19.617 l +S 36.6 32.867 m +34.6 31.367 l +S 6.1 68.617 m +2.85 67.867 l +S 4.85 56.867 m +2.35 55.117 l +S 7.6 51.617 m +4.6 51.617 l +S 6.6 35.867 m +4.6 34.367 l +S 6.1 12.867 m +1.85 13.617 l +S 4.6 30.617 m +1.6 30.617 l +S 72.814 74.769 m +73.928 77.729 l +S 67.976 74.633 m +67.35 77.909 l +S 52.762 73.779 m +52.876 76.776 l +S 37.062 75.375 m +35.639 77.43 l +S 20.795 75.242 m +22.12 77.193 l +S 9.736 73.91 m +8.073 76.225 l +S 10.1 23.617 m +6.35 24.367 l +S 73.217 18.276 m +71.323 21.1 l +S 28.823 39.6 m +29.505 42.389 l +S 49.6 38.617 m +47.6 37.117 l +S 60.323 73.6 m +62.323 76.6 l +S 60.323 1.6 m +62.323 4.6 l +S %AI6_EndPatternLayer +) & +] E +%AI3_EndPattern +%AI3_BeginPattern: (Leaves - Fall ) +(Leaves - Fall ) 0 0 64.0781 78.9336 [ +%AI3_Tile +(0 O 0 R 0.05 0.2 1 0 k + 0.05 0.2 1 0 K +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +64.0781 78.9336 m +64.0781 0 L +0 0 L +0 78.9336 L +64.0781 78.9336 L +f %AI6_EndPatternLayer +) & +(0 O 0 R 0.83 0 1 0 k + 0.83 0 1 0 K +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 1 D +0 XR +29.7578 0.9902 m +30.4346 1.1914 30.7246 1.3428 V +29.2559 4.0547 33.707 8.3359 34.627 9.0762 C +35.2275 8.8506 35.3477 6.3184 34.6699 4.9805 C +35.5137 5.1035 37.7031 3.7256 38.4609 2.4365 C +38.5254 3.125 40.0957 6.0664 40.9219 6.4434 C +40.002 6.8408 39.3359 8.3135 38.5742 9.7617 C +39.5957 9.9287 40.9961 9.0078 42.4668 8.1025 C +42.9814 8.9043 44.3555 9.875 45.6143 10.3916 C +44.5264 11.0781 44.0313 11.8203 43.5352 13.2793 C +42.4922 12.7139 40.3057 12.5645 39.7764 12.8516 C +40.291 13.9648 42.5371 14.5078 43.2676 14.4551 C +43.0137 15.3164 42.8652 17.4697 43.0391 20.0625 C +41.3789 18.7461 39.834 17.4297 38.1738 17.4883 C +38.4434 16.0664 37.8076 14.2607 37.4307 13.7676 C +36.8574 14.5117 36.4463 15.3389 36.8008 17.3164 C +35.3486 17.8008 34.1113 18.3467 32.7373 19.6045 C +32.7373 17.7734 32.166 16.5723 31.2969 15.2959 C +32.5576 14.8076 33.8301 13.6045 33.8252 12.5664 C +32.9775 12.7178 31.2852 13.4619 30.793 14.4551 C +30.0742 13.707 28.3906 12.3984 26.7871 12.3945 C +27.9746 11.5391 28.8945 10.5059 28.9893 8.5938 C +30.2422 9.5645 32.6953 10.1797 34.0752 9.582 C +29.2344 5.3457 29.7031 2.3125 29.7578 0.9902 C +f 13.8525 29.9844 m +13.3281 29.5127 13.1309 29.25 V +15.623 27.4326 13.3691 21.6074 12.8555 20.5439 C +12.2168 20.4883 10.8096 23.2285 10.8457 24.7266 C +9.7129 23.9707 8.0488 24.0918 6.4463 24.3779 C +7.0186 23.2891 6.6172 21.3447 5.8164 20.5439 C +6.8184 20.5801 8.1699 19.8652 9.4785 18.8838 C +8.6436 18.0645 6.8164 18.2246 4.9004 18.8838 C +4.9004 17.5107 4.0781 15.7734 3.2412 14.5918 C +4.5576 14.6484 5.7031 13.9629 6.5605 12.9316 C +7.2256 14.5 9.2598 15.6133 10.166 15.5645 C +10.1826 14.1992 8.6094 12.1094 7.5879 11.7109 C +8.1875 11.041 9.207 9.5107 10.166 7.0947 C +10.9648 9.0205 12.1348 10.2627 13.3672 11.1953 C +12.2256 12.7578 12.3994 13.6289 12.7988 15.1074 C +13.541 14.5664 14.5723 14.1338 14.7441 12.1309 C +16.4609 12.416 17.5957 12.3447 19.0938 11.4434 C +18.6387 13.1055 18.6348 14.707 18.9551 16.4063 C +17.1055 16.2666 15.5449 16.4795 14.5156 17.9688 C +15.3457 18.1953 17.6055 18.2549 18.4795 17.3223 C +18.8066 18.3047 19.7012 19.7109 21.1475 20.4043 C +19.707 20.6641 18.7227 21.7637 17.8135 23.4492 C +17.1006 22.0332 14.873 20.3691 13.3711 20.3145 C +15.373 24.3779 15.373 27.2959 13.8525 29.9844 C +f 41.2324 26.0742 m +41.5518 26.7021 41.7549 26.959 V +44.1523 25.0176 48.958 28.3262 49.8535 29.0957 C +49.7432 29.7266 47.6182 30.8643 45.9004 29.834 C +46.3408 31.123 45.4395 33.084 44.2402 34.126 C +45.9805 34.0254 48.126 35.3867 48.6484 36.1289 C +48.8701 35.1514 50.0527 33.8809 51.3379 32.8672 C +51.6895 33.8398 50.9941 35.958 50.0781 37.5605 C +51.3125 38.0605 52.4248 38.9912 52.8828 40.25 C +53.3398 38.9336 54.3428 38.2598 55.6875 37.5039 C +54.5273 36.0762 53.7471 33.9023 54.0273 33.0391 C +55.3496 33.374 56.9209 36.0918 57.0439 37.1816 C +57.9189 36.415 59.4727 35.7285 62.0537 35.4219 C +60.3535 34.3438 59.9902 32.3516 59.4063 30.9219 C +58.2588 31.3682 56.0898 31.4277 55.1152 30.8643 C +55.8281 30.2852 57.168 29.7344 59.1777 29.7207 C +59.1777 28.1758 59.6406 27.043 60.8945 25.8281 C +59.1719 25.8418 57.0723 25.3555 55.5762 24.9629 C +55.3281 26.292 54.4844 27.8887 53.3398 28.2891 C +53.334 27.4277 53.5996 25.1797 54.4844 24.5117 C +53.6201 23.9443 52.3672 22.5674 51.9102 20.8496 C +51.2881 22.1758 50.4268 23.4805 48.5645 23.9238 C +49.749 24.9766 50.584 26.9941 50.25 28.4609 C +45.1973 24.4785 42.5215 25.7773 41.2324 26.0742 C +f 27.7578 38.7324 m +28.4346 38.9316 28.7246 39.084 V +27.2559 41.7969 31.707 46.0776 32.627 46.8169 C +33.2275 46.5918 33.3477 44.0586 32.6699 42.7227 C +33.5137 42.8457 35.7031 41.4678 36.4609 40.1787 C +36.5254 40.8652 38.0957 43.8066 38.9219 44.1846 C +38.002 44.582 37.3359 46.0547 36.5742 47.5039 C +37.5957 47.6709 38.9961 46.7485 40.4668 45.8438 C +40.9814 46.6445 42.3555 47.6177 43.6143 48.1328 C +42.5264 48.8198 42.0313 49.5615 41.5352 51.0205 C +40.4922 50.4556 38.3057 50.3057 37.7764 50.5938 C +38.291 51.7056 40.5371 52.2485 41.2676 52.1958 C +41.0137 53.0576 40.8652 55.2109 41.0391 57.8037 C +39.3789 56.4878 37.834 55.1719 36.1738 55.2285 C +36.4434 53.8076 35.8076 52.002 35.4307 51.5088 C +34.8574 52.2529 34.4463 53.0796 34.8008 55.0576 C +33.3486 55.5425 32.1113 56.0879 30.7373 57.3467 C +30.7373 55.5146 30.166 54.314 29.2969 53.0366 C +30.5576 52.5488 31.8301 51.3467 31.8252 50.3076 C +30.9775 50.46 29.2852 51.2036 28.793 52.1958 C +28.0742 51.4497 26.3906 50.1396 24.7871 50.1357 C +25.9746 49.2817 26.8945 48.2466 26.9893 46.335 C +28.2422 47.3057 30.6953 47.9209 32.0752 47.3237 C +27.2344 43.0869 27.7031 40.0547 27.7578 38.7324 C +f 13.5195 70.3916 m +12.9941 69.9209 12.7988 69.6587 V +15.2891 67.8418 13.0352 62.0146 12.5225 60.9517 C +11.8828 60.8955 10.4766 63.6367 10.5117 65.1348 C +9.3809 64.3789 7.7148 64.4995 6.1133 64.7856 C +6.6855 63.6987 6.2842 61.7529 5.4834 60.9517 C +6.4854 60.9878 7.8359 60.2729 9.1455 59.2925 C +8.3105 58.4717 6.4834 58.6338 4.5674 59.2925 C +4.5674 57.9189 3.7461 56.1816 2.9082 54.9995 C +4.2246 55.0576 5.3691 54.3706 6.2275 53.3408 C +6.8926 54.9097 8.9258 56.0215 9.832 55.9727 C +9.8496 54.6079 8.2764 52.5176 7.2539 52.1187 C +7.8545 51.4497 8.873 49.9189 9.832 47.5039 C +10.6309 49.4297 11.8008 50.6719 13.0342 51.6045 C +11.8926 53.1655 12.0664 54.0366 12.4648 55.5146 C +13.209 54.9746 14.2393 54.5415 14.4102 52.5386 C +16.127 52.8247 17.2637 52.7529 18.7598 51.8525 C +18.3057 53.5137 18.3027 55.1147 18.623 56.8149 C +16.7725 56.6748 15.2129 56.8887 14.1826 58.377 C +15.0117 58.6035 17.2725 58.6626 18.1465 57.731 C +18.4736 58.7129 19.3691 60.1187 20.8145 60.8125 C +19.375 61.0728 18.3896 62.1719 17.4805 63.8579 C +16.7676 62.4429 14.541 60.7769 13.0371 60.7227 C +15.041 64.7856 15.041 67.7046 13.5195 70.3916 C +f 41.2324 64.4824 m +41.5518 65.1113 41.7549 65.3682 V +44.1523 63.4272 48.958 66.7354 49.8535 67.5034 C +49.7432 68.1362 47.6182 69.2725 45.9004 68.2422 C +46.3408 69.5313 45.4395 71.4922 44.2402 72.5342 C +45.9805 72.4341 48.126 73.7954 48.6484 74.5371 C +48.8701 73.5601 50.0527 72.29 51.3379 71.2754 C +51.6895 72.249 50.9941 74.3662 50.0781 75.9683 C +51.3125 76.4692 52.4248 77.3994 52.8828 78.6582 C +53.3398 77.3423 54.3428 76.667 55.6875 75.9111 C +54.5273 74.4844 53.7471 72.3101 54.0273 71.4473 C +55.3496 71.7822 56.9209 74.5 57.0439 75.5903 C +57.9189 74.8232 59.4727 74.1372 62.0537 73.8311 C +60.3535 72.7534 59.9902 70.7612 59.4063 69.3301 C +58.2588 69.7773 56.0898 69.8364 55.1152 69.2725 C +55.8281 68.6934 57.168 68.1431 59.1777 68.1284 C +59.1777 66.583 59.6406 65.4512 60.8945 64.2373 C +59.1719 64.249 57.0723 63.7632 55.5762 63.3721 C +55.3281 64.7002 54.4844 66.2974 53.3398 66.6973 C +53.334 65.8364 53.5996 63.5874 54.4844 62.9214 C +53.6201 62.353 52.3672 60.9751 51.9102 59.2583 C +51.2881 60.583 50.4268 61.8882 48.5645 62.333 C +49.749 63.3862 50.584 65.4033 50.25 66.8691 C +45.1973 62.8872 42.5215 64.1851 41.2324 64.4824 C +f %AI6_EndPatternLayer +) & +] E +%AI3_EndPattern +%AI3_BeginPattern: (Stripes) +(Stripes) 8.45 4.6001 80.45 76.6001 [ +%AI3_Tile +(0 O 0 R 1 0.07 1 0 k + 1 0.07 1 0 K +) @ +( +%AI6_BeginPatternLayer +800 Ar +0 J 0 j 3.6 w 4 M []0 d %AI3_Note: 0 D +0 XR +8.2 8.2 m +80.7 8.2 L +S 8.2 22.6001 m +80.7 22.6001 L +S 8.2 37.0002 m +80.7 37.0002 L +S 8.2 51.4 m +80.7 51.4 L +S 8.2 65.8001 m +80.7 65.8001 L +S 8.2 15.4 m +80.7 15.4 L +S 8.2 29.8001 m +80.7 29.8001 L +S 8.2 44.2 m +80.7 44.2 L +S 8.2 58.6001 m +80.7 58.6001 L +S 8.2 73.0002 m +80.7 73.0002 L +S %AI6_EndPatternLayer +) & +] E +%AI3_EndPattern +%AI5_End_NonPrinting-- +%AI5_Begin_NonPrinting +Np +%AI8_BeginBrushPattern +(New Pattern 1) +0 A +u 1 Ap +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7834.75 8587 m +-7834.75 8563 L +-7884.75 8563 L +-7884.75 8587 L +-7834.75 8587 L +n u 0 Ap +0 O +1 g +-7854.75 8585 m +-7866.96 8588.0527 -7875.4434 8578.0605 -7884.75 8570.9512 C +F -7844.75 8585 m +-7861.1279 8589.0947 -7870.8008 8569.7227 -7884.75 8565.3154 C +F -7884.75 8565 m +-7864.75 8560 -7854.75 8590 -7834.75 8585 C +F -7874.75 8565 m +-7858.3721 8560.9053 -7848.6992 8580.2773 -7834.75 8584.6846 C +F -7864.75 8565 m +-7852.54 8561.9473 -7844.0566 8571.9395 -7834.75 8579.0488 C +F -7844.75 8565 m +-7841.1279 8564.0947 -7837.835 8564.3408 -7834.75 8565.3154 C +F -7874.75 8585 m +-7878.3721 8585.9053 -7881.665 8585.6592 -7884.75 8584.6846 C +F -7844.7817 8565.125 m +-7850.9009 8563.6162 -7854.7817 8565.125 V +-7858.877 8563.6484 -7864.7817 8565.125 V +-7869.7446 8563.4492 -7874.7817 8565.125 V +-7880.7969 8563.5742 -7884.7817 8565.125 V +-7884.7817 8584.8096 L +-7881.6958 8585.7842 -7878.2969 8585.9912 -7874.3799 8584.9082 C +-7868.2134 8586.4912 -7864.4634 8584.9082 V +-7859.4634 8586.4912 -7854.3799 8584.8242 V +-7850.0474 8586.4082 -7844.3799 8584.9082 V +-7838.8799 8586.3242 -7834.7817 8585.125 V +-7834.7817 8565.4404 L +-7837.5254 8564.4287 -7840.6514 8563.9287 -7844.7817 8565.125 C +f 0 R +0 G +1 J 1 j 0.5 w -7864.75 8585 m +-7872.54 8586.9473 -7878.813 8583.585 -7884.75 8579.0488 C +S -7854.75 8585 m +-7866.96 8588.0527 -7875.4434 8578.0605 -7884.75 8570.9512 C +S -7844.75 8585 m +-7861.1279 8589.0947 -7870.8008 8569.7227 -7884.75 8565.3154 C +S -7884.75 8565 m +-7864.75 8560 -7854.75 8590 -7834.75 8585 C +S -7874.75 8565 m +-7858.3721 8560.9053 -7848.6992 8580.2773 -7834.75 8584.6846 C +S -7864.75 8565 m +-7852.54 8561.9473 -7844.0566 8571.9395 -7834.75 8579.0488 C +S -7854.75 8565 m +-7846.96 8563.0527 -7840.687 8566.415 -7834.75 8570.9512 C +S -7844.75 8565 m +-7841.1279 8564.0947 -7837.835 8564.3408 -7834.75 8565.3154 C +S -7874.75 8585 m +-7878.3721 8585.9053 -7881.665 8585.6592 -7884.75 8584.6846 C +S U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 2) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884 8586 m +-7819.187 8586 L +-7819.187 8521.9023 L +-7884 8521.9023 L +-7884 8586 L +n u 0 O +0 g +-7849.6978 8544.4297 m +-7851.6094 8521.9023 L +-7853.5215 8544.4297 L +-7852.9033 8544.3066 -7852.2642 8544.2402 -7851.6094 8544.2402 c +-7850.9551 8544.2402 -7850.3159 8544.3066 -7849.6978 8544.4297 C +f -7861.2402 8552.3975 m +-7884 8554.3301 L +-7861.1138 8556.2734 L +-7861.2856 8555.5469 -7861.3848 8554.793 -7861.3848 8554.0156 c +-7861.3848 8553.4629 -7861.3281 8552.9248 -7861.2402 8552.3975 C +f -7856.519 8545.5723 m +-7870.1626 8536.8047 L +-7860.2153 8549.377 L +-7859.3574 8547.791 -7858.0718 8546.4766 -7856.519 8545.5723 C +f -7853.481 8563.6074 m +-7851.5786 8586 L +-7849.6768 8563.5967 L +-7850.3018 8563.7227 -7850.9473 8563.791 -7851.6094 8563.791 c +-7852.25 8563.791 -7852.873 8563.7246 -7853.481 8563.6074 C +f -7841.9609 8555.5068 m +-7819.187 8553.5732 L +-7842.083 8551.6289 L +-7842.083 8551.8506 L +-7841.9258 8552.5488 -7841.834 8553.2695 -7841.834 8554.0156 c +-7841.834 8554.5234 -7841.8848 8555.0195 -7841.9609 8555.5068 C +f -7860.1138 8558.8262 m +-7870.1641 8571.5293 L +-7856.2778 8562.6055 L +-7857.8823 8561.7305 -7859.2114 8560.416 -7860.1138 8558.8262 C +f -7842.9961 8549.3945 m +-7832.875 8536.6055 L +-7846.7666 8545.5313 L +-7845.1768 8546.4414 -7843.8633 8547.7793 -7842.9961 8549.3945 C +f -7846.6895 8562.4512 m +-7832.873 8571.3281 L +-7842.9658 8558.5732 L +-7843.8198 8560.1895 -7845.1152 8561.5313 -7846.6895 8562.4512 C +f -7842.8887 8558.6133 m +-7842.3862 8557.6641 -7842.043 8556.6211 -7841.875 8555.5195 c +-7841.7993 8555.0293 -7841.748 8554.5273 -7841.748 8554.0156 c +-7841.748 8553.2637 -7841.8398 8552.5352 -7841.998 8551.8311 c +-7842.1958 8550.957 -7842.5049 8550.124 -7842.918 8549.3545 c +-7843.7954 8547.7246 -7845.1191 8546.374 -7846.7241 8545.4561 c +-7847.6294 8544.9375 -7848.6226 8544.5537 -7849.6802 8544.3457 c +-7850.3047 8544.2207 -7850.9497 8544.1523 -7851.6094 8544.1523 c +-7852.2695 8544.1523 -7852.915 8544.2207 -7853.5391 8544.3457 c +-7854.623 8544.5605 -7855.6382 8544.957 -7856.5625 8545.4961 c +-7858.1313 8546.4102 -7859.4282 8547.7363 -7860.291 8549.335 c +-7860.7969 8550.2695 -7861.145 8551.2969 -7861.3262 8552.3828 c +-7861.415 8552.916 -7861.4727 8553.459 -7861.4727 8554.0156 c +-7861.4727 8554.8008 -7861.3711 8555.5605 -7861.1978 8556.293 c +-7860.981 8557.207 -7860.6406 8558.0732 -7860.187 8558.8701 c +-7859.2793 8560.4727 -7857.939 8561.8008 -7856.3174 8562.6826 c +-7855.4487 8563.1553 -7854.5 8563.498 -7853.4961 8563.6934 c +-7852.8848 8563.8115 -7852.2554 8563.8779 -7851.6094 8563.8779 c +-7850.9414 8563.8779 -7850.29 8563.8086 -7849.6602 8563.6826 c +-7848.5786 8563.4668 -7847.5664 8563.0654 -7846.6455 8562.5273 c +-7845.0566 8561.5977 -7843.751 8560.2441 -7842.8887 8558.6133 c +f U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 3) +0 A +u 1 Ap +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7874.75 8587 m +-7874.75 8563 L +-7884.75 8563 L +-7884.75 8587 L +-7874.75 8587 L +n u u 0 Ap +0 O +1 g +-7875.4058 8578.5361 m +-7874.9878 8577.4355 -7874.75 8576.2471 -7874.75 8575 c +-7874.75 8573.1377 -7875.2681 8571.4004 -7876.1543 8569.9072 c +-7877.897 8566.9736 -7881.0898 8565 -7884.75 8565 C +-7884.75 8585 L +-7884.4297 8585 -7884.1143 8584.9814 -7883.8018 8584.9521 c +-7881.9121 8584.7754 -7880.1807 8584.0645 -7878.7441 8582.9824 c +-7877.2471 8581.8545 -7876.0801 8580.3184 -7875.4058 8578.5361 c +f 0 R +0 G +1 J 1 j 0.5 w -7884.75 8565.3174 m +-7881.7207 8566.2744 -7878.8926 8567.9326 -7876.1543 8569.9072 C +S -7884.75 8570.9512 m +-7881.5991 8573.3564 -7878.543 8576.0869 -7875.4058 8578.5361 C +S -7878.7441 8582.9824 m +-7880.8105 8581.8916 -7882.7993 8580.5342 -7884.75 8579.043 C +S -7883.8018 8584.9521 m +-7884.1191 8584.8682 -7884.4375 8584.7852 -7884.75 8584.6865 C +S -7878.7441 8582.9824 m +-7880.1807 8584.0645 -7881.9121 8584.7744 -7883.8018 8584.9521 C +S -7875.4058 8578.5361 m +-7874.9878 8577.4355 -7874.75 8576.2471 -7874.75 8575 c +-7874.75 8573.1377 -7875.2681 8571.4004 -7876.1543 8569.9072 C +S -7884.75 8585 m +-7884.4297 8585 -7884.1143 8584.9814 -7883.8018 8584.9521 C +S -7878.7441 8582.9824 m +-7877.2471 8581.8545 -7876.0801 8580.3184 -7875.4058 8578.5361 C +S -7876.1543 8569.9072 m +-7877.8975 8566.9736 -7881.0898 8565 -7884.75 8565 C +S U U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 5) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7726.3994 8587 m +-7726.3994 8573.4199 L +-7885 8573.4199 L +-7885 8587 L +-7726.3994 8587 L +n u u 0 O +0.285 0.228 0.171 0 k +-7741.0786 8585.4844 m +-7741.043 8586.6895 L +-7727.5103 8587.5176 -7726.8418 8586.2822 v +-7726.7441 8586.1016 -7726.647 8585.7148 -7726.561 8585.1934 C +-7728.584 8585.8242 -7738.291 8585.5713 -7741.0786 8585.4844 C +f 0.44 0.352 0.264 0 k +-7741.4063 8574.0234 m +-7741.3711 8575.2676 L +-7738.4912 8575.0488 -7728.1914 8574.3164 -7726.543 8574.8652 C +-7726.7031 8574.2188 -7726.9199 8573.7646 -7727.2046 8573.6152 c +-7728.8306 8572.7656 -7741.4063 8574.0234 Y +f 0.145 0.116 0.087 0 k +-7741.3711 8575.2676 m +-7741.0786 8585.4844 L +-7738.291 8585.5713 -7728.584 8585.8242 -7726.561 8585.1934 C +-7726.1519 8582.7773 -7725.9258 8577.3604 -7726.543 8574.8652 C +-7728.1914 8574.3164 -7738.4912 8575.0488 -7741.3711 8575.2676 C +f U u 0.155 0.124 0.093 0 k +-7766.9375 8579.2734 m +-7765.897 8579.6563 L +-7747.0728 8575.1465 L +-7747.481 8574.3145 L +-7766.3633 8576.7246 L +-7767.252 8577.0059 L +-7767.6504 8576.8936 -7768.1934 8576.8242 V +-7767.6094 8577.2373 -7767.1426 8578.1406 -7766.9375 8579.2734 C +f u 0.085 0.068 0.051 0 k +-7771.7993 8583.666 m +-7772.5977 8583.7217 -7769.749 8583.6641 Y +-7770.3481 8583.0176 -7770.771 8581.8203 -7770.8105 8580.4375 c +-7770.8169 8580.2246 -7770.8105 8580.0176 -7770.7993 8579.8135 C +-7771.041 8579.707 -7771.0918 8579.7734 -7771.6289 8579.5645 C +-7771 8583.6113 -7771.7993 8583.666 v +f 0.305 0.244 0.183 0 k +-7770.3442 8576.8672 m +-7770.5527 8576.8105 -7770.4937 8578.9307 Y +-7769.4785 8579.7588 L +-7767.8359 8578.9434 L +-7766.9375 8579.2734 L +-7767.1426 8578.1406 -7767.6094 8577.2373 -7768.1934 8576.8242 C +-7768.6094 8576.7715 -7769.874 8576.7998 -7770.3442 8576.8672 C +f U 0.115 0.092 0.069 0 k +-7766.9375 8579.2734 m +-7767.8359 8578.9434 L +-7769.4785 8579.7588 L +-7770.4937 8578.9307 L +-7770.793 8579.708 -7770.7993 8579.8135 V +-7769.5137 8580.3789 -7768.1831 8580.7402 -7766.8398 8580.9258 C +-7766.79 8580.7275 -7766.7842 8580.543 -7766.79 8580.3369 c +-7766.7998 8579.9717 -7766.8218 8579.6182 -7766.9375 8579.2734 C +f 0.41 0.328 0.246 0 k +-7747.4512 8575.3965 m +-7749.377 8576.6426 -7758.3862 8582.0986 -7766.8398 8580.9258 C +-7766.9038 8582.0928 -7767.248 8583.0908 -7767.75 8583.6631 C +-7767.1895 8583.6621 L +-7746.7402 8586.7559 L +-7747.0366 8576.4258 L +-7747.0728 8575.1465 L +-7747.2046 8575.2373 -7747.4512 8575.3965 v +f 0.395 0.316 0.237 0 k +-7770.8105 8580.4375 m +-7770.771 8581.8203 -7770.3481 8583.0176 -7769.749 8583.6641 C +-7767.6807 8583.6631 L +-7767.1782 8583.0908 -7766.8218 8582.0713 -7766.8398 8580.9258 C +-7768.1831 8580.7402 -7769.5137 8580.3789 -7770.7993 8579.8135 C +-7770.8105 8580.0176 -7770.8169 8580.2246 -7770.8105 8580.4375 c +f U u 0 0 0 0.11 k +-7741.2642 8574.2012 m +-7740.2407 8574.0352 L +-7741.2642 8574.2012 L +-7741.2642 8574.2012 L +f 0 0 0 0.34 k +-7747.481 8574.3145 m +-7747.0728 8575.1465 L +-7745.6714 8574.918 L +-7744.5234 8574.7314 L +-7742.6758 8574.4307 L +-7741.2642 8574.2012 L +-7740.2407 8574.0352 L +-7740.2954 8573.7168 -7740.3672 8573.498 -7740.4648 8573.4199 C +-7747.481 8574.3145 L +f 0 0 0 0.32 k +-7745.8042 8579.207 m +-7746.041 8586.8613 L +-7740.7144 8587 L +-7739.7266 8583.5146 -7740.1816 8579.1543 V +-7745.8042 8579.207 L +f U 0.025 0.02 0.015 0 k +-7739.3223 8576.3848 m +-7736.373 8576.9199 -7733.2402 8577.1602 -7730.3159 8576.3613 c +-7730.2856 8576.3496 -7730.2754 8576.3184 -7730.2871 8576.2969 c +-7730.2881 8576.2656 -7730.3198 8576.2559 -7730.3418 8576.2559 c +-7733.2422 8577.0645 -7736.375 8576.8242 -7739.3042 8576.2783 c +-7739.3262 8576.2793 -7739.3574 8576.291 -7739.3672 8576.3223 c +-7739.3662 8576.3438 -7739.355 8576.375 -7739.3223 8576.3848 c +-7739.3223 8576.3848 l +f -7737.8374 8575.3076 m +-7737.7295 8575.3789 -7737.6313 8575.4941 -7737.5234 8575.502 c +-7733.7886 8575.832 -7730.1631 8575.7813 -7726.4746 8575.6641 c +-7726.4526 8575.6641 -7726.4209 8575.6426 -7726.4214 8575.6211 c +-7726.4214 8575.5879 -7726.4551 8575.5684 -7726.4766 8575.5684 c +-7729.3223 8575.6816 -7732.1401 8575.6992 -7735.0039 8575.5352 c +-7735.9336 8575.4766 -7736.9082 8575.7402 -7737.7778 8575.2207 c +-7737.7993 8575.2109 -7737.8306 8575.2109 -7737.8506 8575.2334 c +-7737.8618 8575.2559 -7737.8594 8575.2871 -7737.8374 8575.3076 c +-7737.8374 8575.3076 l +f -7733.373 8577.3672 m +-7731.5098 8578.6797 -7729.3022 8579.374 -7727.1001 8579.8867 c +-7727.0679 8579.8965 -7727.0474 8579.8848 -7727.0366 8579.8535 c +-7727.0273 8579.8203 -7727.0488 8579.8008 -7727.0703 8579.79 c +-7729.2617 8579.2656 -7731.459 8578.6035 -7733.3105 8577.2803 c +-7733.3433 8577.2598 -7733.375 8577.2715 -7733.3848 8577.293 c +-7733.4058 8577.3145 -7733.3945 8577.3457 -7733.373 8577.3672 c +-7733.373 8577.3672 l +f -7738.9321 8584.0566 m +-7736.7295 8584.5703 -7734.5298 8585.0303 -7732.2798 8585.2754 c +-7732.2598 8585.2852 -7732.229 8585.2637 -7732.229 8585.2422 c +-7732.2183 8585.209 -7732.2407 8585.1777 -7732.2729 8585.1787 c +-7734.5122 8584.8809 -7736.7305 8584.5176 -7738.9126 8583.9502 c +-7738.9351 8583.9512 -7738.9673 8583.9629 -7738.9766 8583.9941 c +-7738.9751 8584.0156 -7738.9648 8584.0479 -7738.9321 8584.0566 c +-7738.9321 8584.0566 l +f -7738.439 8583.3604 m +-7736.3457 8584.1973 -7734.1016 8583.9297 -7731.9023 8583.9629 c +-7731.8706 8583.9609 -7731.8496 8583.9395 -7731.8506 8583.9082 c +-7731.8521 8583.875 -7731.873 8583.8555 -7731.8945 8583.8555 c +-7734.0928 8583.8438 -7736.3374 8584.0996 -7738.4209 8583.2529 c +-7738.4434 8583.2539 -7738.4746 8583.2656 -7738.4834 8583.2969 c +-7738.4834 8583.3184 -7738.4722 8583.3506 -7738.439 8583.3604 c +-7738.439 8583.3604 l +f -7737.707 8584.7051 m +-7736.3833 8584.752 -7735.1504 8584.5469 -7733.8271 8584.209 c +-7733.3594 8584.0996 -7732.9199 8584.2266 -7732.4609 8584.2129 c +-7731.897 8584.1973 l +-7731.874 8584.1963 -7731.8633 8584.1855 -7731.8535 8584.1738 c +-7731.834 8584.1523 -7731.8442 8584.1211 -7731.8662 8584.0996 c +-7732.0625 8583.9453 l +-7732.0742 8583.9453 -7732.085 8583.9355 -7732.0962 8583.9355 c +-7732.5 8583.9473 l +-7733.9551 8584.1914 -7735.457 8584.6719 -7736.8926 8584.0742 c +-7736.9258 8584.0645 -7736.957 8584.0859 -7736.9673 8584.1074 c +-7736.9673 8584.1396 -7736.9551 8584.1602 -7736.9336 8584.1709 c +-7735.647 8584.6992 -7734.1714 8584.4756 -7732.8818 8584.0547 c +-7732.0918 8584.043 L +-7732.124 8584.0332 L +-7731.9282 8584.1875 L +-7731.8984 8584.0898 L +-7732.4639 8584.1064 l +-7732.9321 8584.1406 -7733.3848 8583.9834 -7733.8398 8584.1035 c +-7735.1543 8584.4609 -7736.3975 8584.625 -7737.71 8584.5986 c +-7737.7422 8584.5996 -7737.7642 8584.6211 -7737.7617 8584.6533 c +-7737.7617 8584.6855 -7737.7402 8584.7061 -7737.707 8584.7051 c +-7737.707 8584.7051 l +f -7738.5718 8585.0605 m +-7735.8711 8586.2207 -7732.9023 8585.5703 -7730.1279 8585.1816 c +-7729.7832 8585.2891 l +-7729.7617 8585.2988 -7729.7417 8585.2871 -7729.7207 8585.2656 c +-7729.71 8585.2441 -7729.7217 8585.2129 -7729.7422 8585.2021 c +-7730.0801 8585.0098 l +-7732.7754 8584.3926 -7735.5391 8584.7813 -7738.271 8584.7852 c +-7738.3022 8584.7871 -7738.3232 8584.8086 -7738.3223 8584.8398 c +-7738.3198 8584.8721 -7738.2983 8584.8926 -7738.2681 8584.8926 c +-7735.6738 8584.9355 -7733.0303 8584.4434 -7730.4727 8585.0742 c +-7729.7954 8585.2891 L +-7729.7534 8585.1914 L +-7730.1406 8585.0859 l +-7732.9058 8585.4424 -7735.8418 8586.1348 -7738.5313 8584.9746 c +-7738.5537 8584.9648 -7738.585 8584.9648 -7738.5962 8584.998 c +-7738.6055 8585.0195 -7738.605 8585.0508 -7738.5718 8585.0605 c +-7738.5718 8585.0605 l +f -7735.6895 8578.3945 m +-7734.3945 8578.9004 -7732.9834 8578.6465 -7731.6802 8578.3438 c +-7731.647 8578.3418 -7731.6367 8578.3203 -7731.6382 8578.2891 c +-7731.6504 8578.2568 -7731.6714 8578.2461 -7731.7031 8578.248 c +-7732.998 8578.5303 -7734.377 8578.8154 -7735.6504 8578.2969 c +-7735.6826 8578.2871 -7735.7144 8578.2988 -7735.7246 8578.3311 c +-7735.7222 8578.3525 -7735.7114 8578.3848 -7735.6895 8578.3945 c +-7735.6895 8578.3945 l +f -7736.1401 8580.2207 m +-7734.2266 8580.6895 -7732.3145 8581.1035 -7730.355 8581.3242 c +-7730.3242 8581.334 -7730.3022 8581.3125 -7730.293 8581.2803 c +-7730.2954 8581.2598 -7730.3159 8581.2285 -7730.3374 8581.2285 c +-7732.2959 8581.0078 -7734.209 8580.582 -7736.1206 8580.1133 c +-7736.1426 8580.1152 -7736.1738 8580.126 -7736.1831 8580.1582 c +-7736.1831 8580.1797 -7736.1719 8580.2109 -7736.1401 8580.2207 c +-7736.1401 8580.2207 l +f -7736.9336 8582.6348 m +-7734.499 8583.4609 -7731.8647 8583.0547 -7729.3457 8583.0879 c +-7729.313 8583.0879 -7729.293 8583.0664 -7729.293 8583.0332 c +-7729.2954 8583.0117 -7729.3159 8582.9922 -7729.3481 8582.9922 c +-7731.8574 8582.916 -7734.481 8583.3848 -7736.8945 8582.5264 c +-7736.9282 8582.5273 -7736.959 8582.5391 -7736.9688 8582.5605 c +-7736.9678 8582.5918 -7736.9561 8582.624 -7736.9336 8582.6348 c +-7736.9336 8582.6348 l +f -7732.0542 8583.8496 m +-7730.6582 8584.5449 -7729.0503 8584.4033 -7727.5342 8584.4668 c +-7727.502 8584.4648 -7727.4824 8584.4434 -7727.4824 8584.4121 c +-7727.4834 8584.3906 -7727.5054 8584.3594 -7727.5366 8584.3594 c +-7729.0137 8584.2207 -7730.6489 8584.5234 -7732.0039 8583.7617 c +-7732.0366 8583.7529 -7732.0679 8583.7637 -7732.0786 8583.7861 c +-7732.0879 8583.8076 -7732.0767 8583.8398 -7732.0542 8583.8496 c +-7732.0542 8583.8496 l +f -7731.3418 8580.4248 m +-7730.3926 8580.3975 -7729.4336 8580.3701 -7728.4839 8580.3428 c +-7728.4526 8580.3418 -7728.4312 8580.3203 -7728.4336 8580.2881 c +-7728.4336 8580.2559 -7728.4551 8580.2354 -7728.4878 8580.2363 c +-7729.437 8580.2637 -7730.397 8580.291 -7731.3457 8580.3184 c +-7731.377 8580.3184 -7731.3975 8580.3418 -7731.3975 8580.373 c +-7731.397 8580.4043 -7731.374 8580.4258 -7731.3418 8580.4248 c +-7731.3418 8580.4248 l +f -7729.1592 8578.0361 m +-7728.6895 8578.0645 -7728.209 8578.0723 -7727.7383 8578.0918 c +-7727.7168 8578.0908 -7727.6855 8578.0684 -7727.6865 8578.0371 c +-7727.687 8578.0039 -7727.71 8577.9844 -7727.7417 8577.9844 c +-7728.2114 8577.9873 -7728.6816 8577.9375 -7729.1514 8577.9395 c +-7729.1831 8577.9297 -7729.2031 8577.9512 -7729.2134 8577.9844 c +-7729.2129 8578.0156 -7729.1914 8578.0371 -7729.1592 8578.0361 c +-7729.1592 8578.0361 l +f -7736.9702 8580.2344 m +-7736.5688 8580.5107 -7736.125 8580.6797 -7735.645 8580.751 c +-7735.6113 8580.7607 -7735.5918 8580.7383 -7735.5806 8580.7168 c +-7735.5703 8580.6855 -7735.5928 8580.6543 -7735.6152 8580.6543 c +-7736.0854 8580.5723 -7736.5176 8580.4023 -7736.9209 8580.1475 c +-7736.9521 8580.1377 -7736.9849 8580.1387 -7736.9946 8580.1709 c +-7737.0039 8580.1934 -7736.9922 8580.2246 -7736.9702 8580.2344 c +-7736.9702 8580.2344 l +f -7738.1904 8586.085 m +-7735.7344 8586.5273 -7733.2983 8587.001 -7730.7993 8586.7266 c +-7730.7778 8586.7266 -7730.7568 8586.7041 -7730.7578 8586.6719 c +-7730.7578 8586.6406 -7730.7798 8586.6191 -7730.8022 8586.6191 c +-7733.291 8586.873 -7735.7344 8586.4844 -7738.1719 8585.9775 c +-7738.1934 8585.9785 -7738.2256 8585.9902 -7738.2344 8586.0215 c +-7738.2344 8586.043 -7738.2222 8586.0752 -7738.1904 8586.085 c +-7738.1904 8586.085 l +f 0.195 0.156 0.117 0 k +-7738.166 8574.6445 m +-7735.7969 8574.2676 -7733.4058 8574.3477 -7731.0298 8574.5898 c +-7730.998 8574.5879 -7730.9766 8574.5664 -7730.9766 8574.5352 c +-7730.9785 8574.5137 -7731 8574.4824 -7731.0215 8574.4824 c +-7733.4082 8574.2422 -7735.791 8574.1602 -7738.1694 8574.5391 c +-7738.2026 8574.5391 -7738.2222 8574.5605 -7738.2217 8574.5938 c +-7738.2207 8574.625 -7738.1992 8574.6465 -7738.166 8574.6445 c +-7738.166 8574.6445 l +f 0.335 0.268 0.201 0 k +-7737.4351 8574.1113 m +-7734.9282 8574.1152 -7732.4146 8574.2773 -7729.918 8573.8965 c +-7729.8862 8573.8945 -7729.8647 8573.873 -7729.8662 8573.8418 c +-7729.8672 8573.8086 -7729.8896 8573.7891 -7729.9209 8573.7891 c +-7732.418 8574.1699 -7734.9297 8574.0293 -7737.4375 8574.0059 c +-7737.46 8574.0059 -7737.481 8574.0273 -7737.4785 8574.0596 c +-7737.4785 8574.0918 -7737.457 8574.1123 -7737.4351 8574.1113 c +-7737.4351 8574.1113 l +f 0.205 0.164 0.123 0 k +-7738.9766 8574.3262 m +-7737.5039 8574.668 -7736.0078 8574.4023 -7734.5391 8574.2207 c +-7734.5078 8574.2207 -7734.4873 8574.1973 -7734.499 8574.166 c +-7734.5 8574.1348 -7734.5215 8574.1133 -7734.5537 8574.125 c +-7736.0103 8574.2842 -7737.4961 8574.583 -7738.9473 8574.2188 c +-7738.9785 8574.2207 -7739.0103 8574.2324 -7739.0098 8574.2637 c +-7739.019 8574.2852 -7738.998 8574.3164 -7738.9766 8574.3262 c +-7738.9766 8574.3262 l +f -7732.3535 8573.7949 m +-7731.1978 8573.9219 -7730.0273 8573.8145 -7728.8926 8573.5898 c +-7728.8711 8573.5781 -7728.8506 8573.5566 -7728.8618 8573.5244 c +-7728.8623 8573.5029 -7728.8945 8573.4824 -7728.916 8573.4941 c +-7730.0503 8573.7402 -7731.1914 8573.7939 -7732.3462 8573.6885 c +-7732.3794 8573.6895 -7732.3984 8573.7109 -7732.4087 8573.7324 c +-7732.4082 8573.7646 -7732.3862 8573.7852 -7732.3535 8573.7949 c +-7732.3535 8573.7949 l +f 0.335 0.268 0.201 0 k +-7739.2681 8576.4473 m +-7737.9214 8577.1885 -7736.3066 8576.5977 -7734.855 8576.6416 c +-7734.8223 8576.6406 -7734.8022 8576.6191 -7734.8022 8576.5859 c +-7734.8042 8576.5654 -7734.8262 8576.5449 -7734.8574 8576.5449 c +-7736.2886 8576.4902 -7737.8823 8577.0801 -7739.2168 8576.3506 c +-7739.2383 8576.3398 -7739.2695 8576.3516 -7739.291 8576.374 c +-7739.3008 8576.3955 -7739.2886 8576.4277 -7739.2681 8576.4473 c +-7739.2681 8576.4473 l +f -7737.8945 8578.5645 m +-7735.6719 8579.0449 -7733.3896 8578.6162 -7731.1504 8578.5625 c +-7731.1177 8578.5615 -7731.0977 8578.5391 -7731.0977 8578.5078 c +-7731.1001 8578.4863 -7731.1318 8578.4668 -7731.1519 8578.4668 c +-7733.3833 8578.4775 -7735.6519 8578.9805 -7737.875 8578.457 c +-7737.8975 8578.457 -7737.9287 8578.4688 -7737.9375 8578.502 c +-7737.9375 8578.5225 -7737.9258 8578.5547 -7737.8945 8578.5645 c +-7737.8945 8578.5645 l +f -7732.0273 8575.1406 m +-7730.3496 8575.9688 -7728.499 8576.502 -7726.603 8576.3613 c +-7726.5718 8576.3613 -7726.5513 8576.3389 -7726.5527 8576.3066 c +-7726.5527 8576.2754 -7726.5742 8576.2539 -7726.6074 8576.2559 c +-7728.481 8576.416 -7730.3198 8575.8604 -7731.9873 8575.0547 c +-7732.0078 8575.0449 -7732.041 8575.0449 -7732.0503 8575.0781 c +-7732.061 8575.0996 -7732.061 8575.1309 -7732.0273 8575.1406 c +-7732.0273 8575.1406 l +f u 0.5 0.85 1 0.45 k +-7885 8581.9082 m +-7885.0254 8582.4883 -7884.5664 8583.1875 -7883.167 8583.9902 C +-7882.8521 8584.0029 -7881.3945 8584.0234 -7879.0889 8584.0488 C +-7879.0889 8581.8223 L +-7881.1382 8581.8457 -7883.1177 8581.8867 -7885 8581.9082 C +f -7884.5088 8580.9688 m +-7879.0889 8580.8447 L +-7879.0889 8579.8145 L +-7882.644 8579.959 L +-7883.8145 8580.3301 -7884.5088 8580.9688 V +f 0.5 0.85 1 0.32 k +-7879.0889 8580.8252 m +-7884.4746 8580.9434 L +-7884.7695 8581.2148 -7884.9849 8581.5566 -7885 8581.9277 C +-7883.1177 8581.9063 -7881.1382 8581.8848 -7879.0889 8581.8613 C +-7879.0889 8580.8252 L +f 0.5 0.85 1 0.45 k +-7774.1504 8580.6172 m +-7852.3584 8581.541 -7879.1079 8581.8418 V +-7879.1079 8584.0488 L +-7862.8145 8584.2324 -7803.9902 8584.707 Y +-7769.749 8583.6641 L +-7770.457 8580.5684 L +-7774.1504 8580.6172 L +f 0.5 0.85 1 0.12 k +-7879.1079 8579.8145 m +-7879.1079 8580.8447 L +-7770.4258 8579 L +-7770.3833 8576.8633 L +-7803.6553 8576.7129 L +-7879.1079 8579.8145 L +f u 0.065 0.052 0.039 0 k +-7747.0728 8575.1465 m +-7747.0366 8576.4258 L +-7747.2954 8575.1172 L +-7765.897 8579.6563 L +-7766.9375 8579.2734 L +-7766.8794 8579.6055 -7766.8398 8579.957 -7766.8306 8580.3223 c +-7766.8242 8580.5283 -7766.8281 8580.7285 -7766.8398 8580.9258 C +-7758.3862 8582.0986 -7748.9634 8577.6719 -7747.0366 8576.4258 C +-7746.7402 8586.7559 L +-7746.041 8586.8613 L +-7745.8042 8579.207 L +-7740.1816 8579.1543 L +-7740.0898 8577.0137 -7740.0718 8575.0215 -7740.2407 8574.0352 C +-7747.0728 8575.1465 L +f 0.4 0.7 1 0 k +-7770.457 8580.5879 m +-7770.4258 8578.9805 L +-7879.1079 8580.8252 L +-7879.1079 8581.8613 L +-7852.3584 8581.5605 -7770.457 8580.5879 Y +f U U 0.025 0.02 0.015 0 k +-7734.7344 8583.0293 m +-7734.7344 8583.0625 -7734.7129 8583.082 -7734.6802 8583.082 c +-7731.6714 8583.1133 -7729.4214 8582.9453 -7726.415 8582.8594 C +-7726.4087 8582.7656 L +-7729.3262 8582.8701 -7731.7607 8583.0078 -7734.6841 8582.9746 C +-7734.7168 8582.9766 -7734.7358 8582.998 -7734.7344 8583.0293 C +f -7726.3994 8582.7656 m +-7726.4082 8582.7441 L +-7726.4087 8582.7656 L +-7726.4063 8582.7656 -7726.4033 8582.7656 -7726.3994 8582.7656 C +f -7730.4487 8581.4238 m +-7731.4458 8581.292 -7732.3394 8581.7656 -7733.2114 8582.1973 C +-7733.2441 8582.208 -7733.2534 8582.2402 -7733.2422 8582.2715 C +-7733.2305 8582.293 -7733.1982 8582.3027 -7733.1777 8582.291 c +-7732.3262 8581.8301 -7731.4312 8581.4199 -7730.4678 8581.5195 c +-7729.1079 8581.6621 -7727.9038 8582.375 -7726.5254 8582.4531 C +-7726.4463 8582.3594 L +-7728.04 8582.2656 -7728.8647 8581.623 -7730.4487 8581.4238 c +f U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 6) +0 A +u 1 Ap +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884.75 8563 m +-7884.75 8587 L +-7874.75 8587 L +-7874.75 8563 L +-7884.75 8563 L +n 0 Ap +0 O +1 g +-7874.75 8565 m +-7875.0703 8565 -7875.3857 8565.0186 -7875.6982 8565.0479 c +-7877.5879 8565.2256 -7879.3198 8565.9346 -7880.7559 8567.0176 c +-7882.2529 8568.1465 -7883.4199 8569.6816 -7884.0942 8571.4639 c +-7884.5122 8572.5645 -7884.75 8573.7529 -7884.75 8575 c +-7884.75 8576.8623 -7884.2319 8578.5996 -7883.3457 8580.0918 c +-7881.6025 8583.0273 -7878.4102 8585 -7874.75 8585 C +-7874.75 8565 L +f 0 R +0 G +1 J 1 j 0.5 w -7874.75 8584.6816 m +-7877.7793 8583.7256 -7880.6074 8582.0674 -7883.3457 8580.0918 C +S -7874.75 8579.0488 m +-7877.8999 8576.6436 -7880.957 8573.9131 -7884.0942 8571.4639 C +S -7880.7559 8567.0176 m +-7878.6904 8568.1084 -7876.7017 8569.4668 -7874.75 8570.957 C +S -7875.6982 8565.0479 m +-7875.3809 8565.1309 -7875.063 8565.2148 -7874.75 8565.3145 C +S -7880.7559 8567.0176 m +-7879.3193 8565.9355 -7877.5879 8565.2256 -7875.6982 8565.0479 C +S -7884.0942 8571.4639 m +-7884.5122 8572.5645 -7884.75 8573.7529 -7884.75 8575 c +-7884.75 8576.8623 -7884.231 8578.5996 -7883.3457 8580.0918 C +S -7874.75 8565 m +-7875.0703 8565 -7875.3857 8565.0186 -7875.6982 8565.0479 C +S -7880.7559 8567.0176 m +-7882.2529 8568.1465 -7883.4199 8569.6816 -7884.0942 8571.4639 C +S -7883.3457 8580.0918 m +-7881.6025 8583.0273 -7878.4102 8585 -7874.75 8585 C +S U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 8) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7883.9521 8584.3125 m +-7776.7954 8584.3125 L +-7776.7954 8570.1855 L +-7883.9521 8570.1855 L +-7883.9521 8584.3125 L +n u 0 O +0 0 0 1 k +-7882.2832 8583.623 m +-7882.8535 8586 -7882.8184 8582.0039 V +-7883.0479 8578.8027 L +-7883.6167 8576.4551 L +-7883.4502 8574.123 L +-7881.9502 8573.4551 -7865.2832 8572.123 V +-7858.6167 8570.7891 -7849.6167 8570.7891 V +-7784.3936 8571.4766 -7779.4912 8572.8848 v +-7820.3882 8570.875 -7822.9688 8571.5117 v +-7783.8569 8573.1602 -7780.8545 8574.4316 v +-7818.79 8572.5469 -7822.167 8574.1777 v +-7787.249 8575.9102 -7783.021 8577.5313 v +-7789.7217 8576.8828 -7791.5127 8577.082 v +-7788.3896 8577.5703 l +-7793.4194 8577.502 l +-7796.3218 8577.1289 l +-7788.4521 8578.2422 -7787.9033 8578.8086 v +-7784.3154 8578.1309 -7798.5186 8578.3848 v +-7832.1177 8574.4551 -7882.2832 8583.623 V +f /BBAccumRotation (5.805971) XT +0 R +0 0 0 0.5 K +0.025 w -7883.9502 8573.123 m +-7863.667 8571.2949 -7843.9727 8570.2207 v +-7801.1514 8570.502 -7796.5737 8570.9004 v +-7784.1631 8571.0313 -7776.7959 8572.0273 v +S /BBAccumRotation (5.805971) XT +0 0 0 1 K +-7821.8369 8570.4082 m +-7825.2959 8570.0273 -7851.2607 8570.2793 Y +-7861.627 8570.1602 -7883.9502 8573.123 Y +S /BBAccumRotation (5.805971) XT +-7820.9873 8573.6641 m +-7790.3608 8574.582 -7783.6606 8575.2324 v +S /BBAccumRotation (5.805971) XT +0 0 0 0.5 K +-7829.6201 8578.2051 m +-7794.3706 8579.6172 -7791.4058 8580.1406 v +S /BBAccumRotation (5.805971) XT +U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 10) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884 8586 m +-7833.8921 8586 L +-7833.8921 8529.9756 L +-7884 8529.9756 L +-7884 8586 L +n u 0 O +0.1 1 1 0 k +-7846.9014 8551.5752 m +-7848.7178 8545.0957 -7858.8247 8548.4658 Y +-7858.791 8548.5303 L +-7868.8999 8545.1611 -7870.7144 8551.6396 V +-7876.6758 8569.0068 -7871.4922 8575.7451 V +-7864.7529 8585.3369 -7860.6055 8585.3369 V +-7857.0103 8585.2705 L +-7852.8638 8585.2705 -7846.125 8575.6816 Y +-7840.9409 8568.9424 -7846.9014 8551.5752 Y +f u 0 0 0 1 k +-7851.3926 8529.9756 m +-7852.1167 8531.4199 -7852.9238 8532.4756 V +-7852.4058 8532.0635 -7851.5151 8531.1924 -7851.3926 8529.9756 C +f -7865.064 8532.4854 m +-7865.8711 8531.4307 -7866.5942 8529.9863 Y +-7866.4727 8531.2021 -7865.582 8532.0732 -7865.064 8532.4854 C +f U 0 0.61 0.74 0 k +-7850.5977 8554.4609 m +-7851.9038 8549.7959 -7859.1816 8552.2217 Y +-7859.1567 8552.2686 L +-7866.436 8549.8428 -7867.7417 8554.5078 V +-7872.0337 8567.0117 -7868.3018 8571.8633 V +-7863.4487 8578.7686 -7860.4634 8578.7686 V +-7857.875 8578.7227 L +-7854.8887 8578.7227 -7850.0366 8571.8174 Y +-7846.3042 8566.9639 -7850.5977 8554.4609 Y +f u 1 Ap +0.73 0.43 1 0.22 k +0 R +0 0 0 1 K +-7854.6226 8557.2754 m +-7853.813 8557.2754 -7853.1558 8556.6182 -7853.1558 8555.8096 c +-7853.1558 8555 -7853.813 8554.3428 -7854.6226 8554.3428 c +-7855.4321 8554.3428 -7856.0889 8555 -7856.0889 8555.8096 c +-7856.0889 8556.6182 -7855.4321 8557.2754 -7854.6226 8557.2754 c +b -7854.3638 8568.9971 m +-7853.0806 8568.9971 -7852.0415 8568.1201 -7852.0415 8567.042 c +-7852.0415 8565.9619 -7853.0806 8565.0869 -7854.3638 8565.0869 c +-7855.645 8565.0869 -7856.6846 8565.9619 -7856.6846 8567.042 c +-7856.6846 8568.1201 -7855.645 8568.9971 -7854.3638 8568.9971 c +b -7853.834 8580.7861 m +-7852.2817 8580.7861 -7851.0239 8580.1299 -7851.0239 8579.3213 c +-7851.0239 8578.5117 -7852.2817 8577.8545 -7853.834 8577.8545 c +-7855.3862 8577.8545 -7856.645 8578.5117 -7856.645 8579.3213 c +-7856.645 8580.1299 -7855.3862 8580.7861 -7853.834 8580.7861 c +b -7849.6104 8552.5264 m +-7848.8687 8552.5264 -7848.2671 8551.8154 -7848.2671 8550.9365 c +-7848.2671 8550.0596 -7848.8687 8549.3477 -7849.6104 8549.3477 c +-7850.353 8549.3477 -7850.9546 8550.0596 -7850.9546 8550.9365 c +-7850.9546 8551.8154 -7850.353 8552.5264 -7849.6104 8552.5264 c +b -7848.0034 8574.083 m +-7848.8818 8573.7354 -7849.1494 8572.335 -7848.603 8570.9541 c +-7848.0566 8569.5752 -7846.9014 8568.7363 -7846.0234 8569.085 c +-7845.145 8569.4326 -7844.877 8570.833 -7845.4233 8572.2139 c +-7845.9702 8573.5947 -7847.125 8574.4316 -7848.0034 8574.083 c +b u -7863.0566 8557.1592 m +-7863.8662 8557.1592 -7864.5239 8556.502 -7864.5239 8555.6934 c +-7864.5239 8554.8828 -7863.8662 8554.2266 -7863.0566 8554.2266 c +-7862.248 8554.2266 -7861.5913 8554.8828 -7861.5913 8555.6934 c +-7861.5913 8556.502 -7862.248 8557.1592 -7863.0566 8557.1592 c +b -7863.3159 8568.8799 m +-7864.5991 8568.8799 -7865.6382 8568.0049 -7865.6382 8566.9248 c +-7865.6382 8565.8447 -7864.5991 8564.9697 -7863.3159 8564.9697 c +-7862.0342 8564.9697 -7860.9951 8565.8447 -7860.9951 8566.9248 c +-7860.9951 8568.0049 -7862.0342 8568.8799 -7863.3159 8568.8799 c +b -7863.8457 8580.6709 m +-7865.3975 8580.6709 -7866.6558 8580.0146 -7866.6558 8579.2041 c +-7866.6558 8578.3936 -7865.3975 8577.7383 -7863.8457 8577.7383 c +-7862.293 8577.7383 -7861.0352 8578.3936 -7861.0352 8579.2041 c +-7861.0352 8580.0146 -7862.293 8580.6709 -7863.8457 8580.6709 c +b -7868.0679 8552.4092 m +-7868.811 8552.4092 -7869.4121 8551.6982 -7869.4121 8550.8213 c +-7869.4121 8549.9443 -7868.811 8549.2334 -7868.0679 8549.2334 c +-7867.3262 8549.2334 -7866.7241 8549.9443 -7866.7241 8550.8213 c +-7866.7241 8551.6982 -7867.3262 8552.4092 -7868.0679 8552.4092 c +b -7869.6758 8573.9678 m +-7868.7983 8573.6201 -7868.5298 8572.2188 -7869.0762 8570.8379 c +-7869.6226 8569.457 -7870.7778 8568.6201 -7871.6558 8568.9678 c +-7872.5342 8569.3164 -7872.8032 8570.7178 -7872.2568 8572.0967 c +-7871.7104 8573.4775 -7870.5552 8574.3154 -7869.6758 8573.9678 c +b U U 0 Ap +0 0 0 1 k +-7859.1318 8552.6553 m +-7859.1318 8585.3145 l +F u -7843.3906 8538.5303 m +-7844.0815 8537.8369 -7847.019 8538.7021 Y +-7848.229 8538.874 -7848.0562 8541.2939 Y +-7847.019 8543.3682 -7847.7104 8543.1943 Y +-7848.2998 8543.1943 -7849.855 8543.1143 -7850.7822 8543.0635 C +-7851.1226 8541.6689 -7852.6128 8540.4756 -7854.7217 8539.7695 C +-7852.7578 8536.4775 -7854.5176 8535.7949 -7856.2935 8535.79 C +-7856.3096 8535.7021 -7856.332 8535.6162 -7856.3599 8535.5332 C +-7854.1089 8535.5791 -7853.6392 8533.2588 Y +-7853.4048 8533.0635 -7853.1606 8532.7861 -7852.9238 8532.4756 C +-7853.1416 8532.6475 -7853.2944 8532.7393 Y +-7854.2583 8532.7393 -7855.8774 8534.4941 -7856.4966 8535.207 C +-7856.9194 8534.4434 -7857.853 8533.9111 -7858.9434 8533.9111 c +-7860.0698 8533.9111 -7861.0322 8534.4795 -7861.4312 8535.2852 C +-7861.9985 8534.624 -7863.6968 8532.751 -7864.6943 8532.751 C +-7864.8462 8532.6572 -7865.064 8532.4854 V +-7864.8281 8532.7939 -7864.583 8533.0732 -7864.3481 8533.2686 C +-7863.8638 8535.6563 -7861.5254 8535.5342 V +-7861.5449 8535.5889 -7861.5674 8535.6436 -7861.5806 8535.7021 C +-7864.9238 8535.6924 -7863.937 8538.3174 -7863.2104 8539.6602 C +-7865.5918 8540.376 -7867.2646 8541.7012 -7867.5239 8543.25 C +-7868.4473 8543.2998 -7869.6729 8543.3584 -7870.1802 8543.3584 C +-7870.8726 8543.5313 -7869.835 8541.458 V +-7869.6626 8539.0391 -7870.8726 8538.8662 V +-7873.8096 8538.002 -7874.501 8538.6934 V +-7875.1919 8539.5566 -7876.0562 8538.3467 V +-7875.1919 8540.0752 -7873.291 8539.5566 V +-7870.6982 8538.8662 -7871.3906 8540.5938 V +-7871.9087 8544.0498 -7870.1802 8544.7402 V +-7868.0342 8545.8545 -7866.2822 8546.0889 V +-7865.9087 8546.4141 -7865.4639 8546.7109 -7864.958 8546.9766 C +-7867.5562 8547.0469 -7870.2246 8547.9209 -7871.0752 8550.9561 C +-7871.5151 8552.2432 -7872.0518 8554.2432 V +-7873.1025 8554.8252 -7874.3022 8556.0078 -7875.541 8558.2627 C +-7876.394 8561.4502 -7877.167 8556.7129 V +-7878.3975 8553.6494 -7879.6504 8553.5381 V +-7878.4702 8555.2871 -7878.9038 8556.416 V +-7877.2998 8560.917 -7875.6138 8559.8994 V +-7874.0986 8559.2197 -7872.688 8556.8154 V +-7873.0698 8558.4971 -7873.4326 8560.417 -7873.6743 8562.3906 C +-7874.4888 8562.3975 L +-7876.3506 8561.4795 -7876.3262 8564.959 V +-7877.1226 8568.9453 -7876.3594 8571.6826 V +-7875.647 8574.1504 -7878.1274 8572.9307 V +-7879.2842 8573.3242 -7879.9839 8572.7881 V +-7882.3882 8571.4131 -7884 8573.124 V +-7882.147 8572.8799 -7881.4482 8573.417 V +-7879.9785 8573.5615 -7879.897 8574.1787 V +-7876.9561 8574.8555 -7876.188 8574.0771 V +-7874.417 8573.2139 -7875.1304 8570.3604 V +-7875.8799 8562.4814 -7874.3198 8564.4053 V +-7874.1182 8564.4219 -7873.8784 8564.5176 V +-7874.1519 8568.4326 -7873.8018 8572.3252 -7871.9961 8574.8516 C +-7875.4536 8567.333 -7870.2974 8552.3037 Y +-7868.9609 8547.5303 -7863.127 8548.1016 -7860.145 8548.7344 C +-7860.0718 8550.1299 -7859.8374 8551.9492 -7859.1318 8552.6553 C +-7858.2134 8550.6963 -7858.2358 8549.0732 V +-7857.0762 8548.7217 -7850.2817 8546.8447 -7847.4487 8550.3369 C +-7848.4312 8547.8135 -7850.8262 8547.0186 -7853.2007 8546.9189 C +-7852.667 8546.6318 -7852.2041 8546.3047 -7851.8257 8545.9502 C +-7850.041 8545.7861 -7847.7104 8544.5771 Y +-7845.9814 8543.8857 -7846.5015 8540.4307 Y +-7847.1919 8538.7021 -7844.5991 8539.3936 Y +-7842.7002 8539.9111 -7841.835 8538.1836 Y +-7842.7002 8539.3936 -7843.3906 8538.5303 Y +f -7837.9082 8572.9521 m +-7838.6074 8573.4893 -7839.7632 8573.0938 Y +-7842.2446 8574.3135 -7841.5327 8571.8467 Y +-7840.769 8569.1104 -7841.564 8565.1221 Y +-7841.541 8561.6445 -7843.4014 8562.5596 Y +-7844.0342 8562.5557 L +-7844.3198 8560.6123 -7844.7046 8558.7549 -7845.0898 8557.1699 C +-7843.7129 8559.4199 -7842.2778 8560.0635 Y +-7840.5913 8561.082 -7838.9878 8556.5791 Y +-7839.4214 8555.4502 -7838.2417 8553.7021 Y +-7839.4937 8553.8125 -7840.7246 8556.876 Y +-7841.4976 8561.6152 -7842.3511 8558.4268 Y +-7843.5776 8556.1904 -7844.769 8555.0098 -7845.814 8554.4229 C +-7846.2026 8553.0635 -7846.4858 8552.2393 Y +-7846.7002 8551.4727 -7847.0337 8550.8486 -7847.4487 8550.3369 C +-7847.3799 8550.5127 -7847.3174 8550.6982 -7847.2632 8550.8916 C +-7841.3022 8568.2588 -7846.4858 8574.9971 V +-7853.2246 8584.5869 -7857.3721 8584.5869 V +-7860.9663 8584.6514 L +-7865.1138 8584.6514 -7871.853 8575.0615 Y +-7871.9038 8574.9961 -7871.9463 8574.9219 -7871.9961 8574.8516 C +-7871.7378 8575.4141 -7871.437 8575.9404 -7871.0752 8576.4092 C +-7864.3359 8586 -7860.189 8586 V +-7856.5942 8585.9346 L +-7852.4482 8585.9346 -7845.709 8576.3447 Y +-7843.5801 8573.5771 -7843.3306 8569.0176 -7843.7769 8564.6055 C +-7843.6553 8564.5752 -7843.5698 8564.5684 Y +-7842.0112 8562.6475 -7842.7598 8570.5244 Y +-7843.4746 8573.3789 -7841.7026 8574.2402 Y +-7840.9351 8575.0186 -7837.9946 8574.3428 Y +-7837.9136 8573.7256 -7836.4434 8573.5811 Y +-7835.7446 8573.0449 -7833.8921 8573.2881 Y +-7835.5024 8571.5771 -7837.9082 8572.9521 Y +f U U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 34) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884.0254 8586.0264 m +-7828.0542 8586.0264 L +-7828.0542 8524.5342 L +-7884.0254 8524.5342 L +-7884.0254 8586.0264 L +n u u 0 O +0.0745 0.9 0.9019 0.18 k +0 R +0 0 0 1 K +1 J 1 j 0.0518 w -7857.5991 8562.7217 m +-7857.3594 8573.5215 -7862.8794 8583.8398 v +-7862.4009 8586 -7860.959 8586 v +-7861.2002 8582.6406 -7860.2393 8582.1611 v +-7855.9199 8570.1602 -7856.6382 8562.2402 v +-7857.5991 8562.7217 l +b -7857.5991 8562.7217 m +-7859.2793 8568 -7871.0391 8569.2012 v +-7875.3594 8569.6807 -7875.5991 8571.1211 v +-7869.1206 8561.5195 -7868.1602 8561.7607 v +-7881.3594 8556.001 -7884 8550.7197 v +-7878.959 8553.6006 -7875.5991 8551.4404 v +-7867.6802 8551.2012 -7862.6406 8553.3613 v +-7858.8008 8555.2813 -7866.7202 8539.2012 v +-7862.8794 8550.9609 -7859.2793 8524.5605 v +-7858.3198 8529.8408 -7856.8799 8531.2813 v +-7850.8799 8538.9609 -7851.8398 8541.1211 v +-7852.3198 8544.9609 -7847.7598 8538.7207 v +-7848 8548.3213 -7850.4009 8551.6807 v +-7852.5591 8555.2813 -7846.5591 8553.1211 v +-7840.5591 8551.2012 -7835.2793 8552.8809 v +-7829.7598 8554.3203 -7828.0801 8551.4404 v +-7839.8398 8563.9209 -7845.5991 8563.6807 v +-7843.9194 8567.2813 l +-7841.519 8572.0811 -7842 8573.2813 v +-7857.2681 8563.8828 -7857.5991 8562.7217 v +b -7857.5991 8562.7217 m +-7854.959 8544.2402 -7857.5991 8536.5605 v +-7859.998 8526.001 -7859.2793 8524.5605 v +S -7856.1602 8551.4404 m +-7850.1602 8546.6406 -7848.959 8541.3604 v +S -7856.1602 8550.7197 m +-7865.0391 8543.041 -7866.7202 8539.2012 v +S -7828.0801 8551.4404 m +-7829.2793 8553.6006 -7857.3594 8561.7607 y +-7862.4009 8556.2422 -7873.9199 8553.8408 v +-7881.5986 8552.8809 -7884 8550.7197 v +S -7874.6382 8569.6807 m +-7863.1191 8560.5615 -7857.3594 8561.7607 y +-7843.1992 8568 -7842 8573.2813 v +S U U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 36) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7883.8496 8585.9961 m +-7833.96 8585.9961 L +-7833.96 8534.9258 L +-7883.8496 8534.9258 L +-7883.8496 8585.9961 L +n u 0 O +0.025 0.1 0.475 0 k +-7862.1504 8553.9043 m +-7864.4766 8552.8125 -7866.6914 8552.4434 -7868.373 8552.9238 c +-7869.0518 8553.1172 -7869.645 8553.4473 -7870.123 8553.9238 c +-7870.6006 8554.4023 -7870.9297 8554.9951 -7871.123 8555.6729 c +-7872.0088 8558.7715 -7870.0103 8563.6777 -7865.9233 8567.7666 c +-7861.834 8571.8535 -7856.9297 8573.8516 -7853.8286 8572.9668 c +-7853.1519 8572.7715 -7852.5586 8572.4424 -7852.0806 8571.9658 c +-7851.603 8571.4883 -7851.2754 8570.8955 -7851.082 8570.2168 c +-7850.5176 8568.2461 -7851.1226 8565.5449 -7852.6855 8562.7891 c +-7853.582 8561.21 -7854.791 8559.6133 -7856.2793 8558.123 c +-7858.1504 8556.2539 -7860.1914 8554.8242 -7862.1504 8553.9043 c +f u 0.0035 0.014 0.0665 0 k +-7861.2183 8552.9727 m +-7863.8306 8552.0215 -7866.3975 8551.9688 -7868.373 8552.9238 C +-7866.6914 8552.4434 -7864.4766 8552.8125 -7862.1504 8553.9043 c +-7861.6191 8554.1543 -7861.0806 8554.4434 -7860.543 8554.7676 C +-7858.8984 8554.0537 L +-7859.667 8553.6172 -7860.4434 8553.2539 -7861.2183 8552.9727 c +f 0.015 0.06 0.285 0 k +-7858.8984 8554.0537 m +-7860.543 8554.7676 L +-7859.0962 8555.6348 -7857.6426 8556.7607 -7856.2793 8558.123 c +-7856.1538 8558.25 -7856.0327 8558.3779 -7855.9102 8558.5059 C +-7855.2153 8556.8633 L +-7856.3706 8555.7236 -7857.6191 8554.7813 -7858.8984 8554.0537 C +f U u 0.039 0.156 0.741 0 k +-7849.687 8541.4043 m +-7849.9746 8541.6914 -7861.2183 8552.9727 Y +-7860.4434 8553.2539 -7859.667 8553.6172 -7858.8984 8554.0537 C +-7845.4146 8540.5703 L +-7847.061 8540.0996 -7848.6406 8540.3555 -7849.687 8541.4043 c +f 0.025 0.1 0.475 0 k +-7845.4146 8540.5703 m +-7858.8984 8554.0537 L +-7857.584 8554.8027 -7856.2969 8555.7754 -7855.1143 8556.957 c +-7855.084 8556.9863 -7855.0586 8557.0156 -7855.0278 8557.0449 C +-7841.3408 8543.3574 L +-7841.5264 8543.1328 -7841.7202 8542.9141 -7841.9302 8542.7012 c +-7843.0103 8541.623 -7844.2305 8540.9082 -7845.4146 8540.5703 C +f U u 0.0115 0.046 0.2185 0 k +-7835.9346 8550.3926 m +-7833.5337 8547.9893 -7833.335 8544.0898 -7835.1382 8540.6973 C +-7836.2954 8541.1182 L +-7834.0938 8544.4961 -7833.8398 8548.2949 -7835.9346 8550.3926 c +f 0.015 0.06 0.285 0 k +-7843.5337 8535.5957 m +-7842.582 8534.9258 L +-7845.2046 8534.3516 -7847.8306 8534.9141 -7849.6206 8536.7061 c +-7848.1719 8535.2578 -7845.9082 8534.9307 -7843.5337 8535.5957 C +f 0.0295 0.118 0.5605 0 k +-7843.5337 8535.5957 m +-7845.9082 8534.9307 -7848.1719 8535.2578 -7849.6206 8536.7061 c +-7851.019 8538.1055 -7851.3706 8540.2637 -7850.7954 8542.5469 C +-7848.8672 8539.5449 -7845.4082 8540.5537 V +-7843.585 8535.6309 L +-7843.5337 8535.5957 L +f *u +0.048 0.192 0.912 0 k +1 D +-7835.9346 8550.3926 m +-7837.2817 8551.7383 -7839.332 8552.1133 -7841.5234 8551.627 C +-7851.6714 8561.7734 L +-7851.7695 8561.5684 -7851.7695 8561.5684 -7851.6714 8561.7734 c +-7850.2246 8564.8145 -7849.9702 8567.916 -7851.082 8570.2168 C +-7850.5176 8568.2461 -7851.1226 8565.5449 -7852.6855 8562.7891 c +-7853.5054 8561.3438 -7854.5918 8559.8848 -7855.9102 8558.5059 C +-7855.2153 8556.8633 L +-7855.1816 8556.8945 -7855.1465 8556.9238 -7855.1143 8556.957 c +-7855.084 8556.9883 -7855.0566 8557.0176 -7855.0273 8557.0469 c +-7855.0278 8557.0469 -7855.0278 8557.0469 -7855.0278 8557.0449 C +-7841.3408 8543.3574 L +-7836.3262 8541.1289 L +-7836.2954 8541.1182 L +-7834.0938 8544.4961 -7833.8398 8548.2949 -7835.9346 8550.3926 c +f *U +0.0215 0.086 0.4085 0 k +0 D +-7842.582 8534.9258 m +-7843.5337 8535.5957 L +-7841.6846 8536.1113 -7839.7656 8537.2285 -7838.1138 8538.8828 c +-7837.4063 8539.5889 -7836.7998 8540.3418 -7836.2954 8541.1182 C +-7835.1382 8540.6973 L +-7835.6553 8539.7246 -7836.3374 8538.793 -7837.1802 8537.9512 c +-7838.7695 8536.3594 -7840.6758 8535.3428 -7842.582 8534.9258 C +f 0.0205 0.082 0.3895 0 k +-7836.2954 8541.1182 m +-7836.7998 8540.3418 -7837.4063 8539.5889 -7838.1138 8538.8828 c +-7839.7656 8537.2285 -7841.6846 8536.1113 -7843.5337 8535.5957 C +-7843.585 8535.6309 L +-7845.4082 8540.5537 L +-7844.2114 8540.9219 -7842.9878 8541.6436 -7841.9302 8542.7012 c +-7841.7202 8542.9141 -7841.5264 8543.1328 -7841.3408 8543.3574 C +-7836.3262 8541.1289 L +-7836.2954 8541.1182 L +f U u 0.445 0.356 0.267 0 k +-7883.8496 8585.9961 m +-7861.957 8562.9688 L +-7862.2007 8562.6494 -7862.5752 8562.6133 -7862.8887 8562.6592 C +-7867.1802 8567.2891 -7878.3145 8579.4561 -7882.7266 8584.2793 C +-7883.5649 8585.3516 -7884 8585.9932 -7883.8496 8585.9961 C +f 0.15 0.12 0.09 0 k +-7883.834 8585.9961 m +-7882.6606 8585.7031 -7861.6934 8564.0029 Y +-7861.6934 8563.502 -7861.7993 8563.1758 -7861.957 8562.9688 C +-7883.8496 8585.9961 L +-7883.8442 8585.9961 -7883.8418 8586 -7883.834 8585.9961 c +f 0.2 0.16 0.12 0 k +-7882.7266 8584.2793 m +-7878.3145 8579.4561 -7867.1802 8567.2891 -7862.8887 8562.6592 C +-7863.2002 8562.7041 -7863.4526 8562.8301 Y +-7864.603 8563.1328 -7878.5742 8578.9619 -7882.7266 8584.2793 C +f U U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 37) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7882.9502 8585.2324 m +-7833.0391 8585.2324 L +-7833.0391 8521.1152 L +-7882.9502 8521.1152 L +-7882.9502 8585.2324 L +n u 0 O +0 0 0 1 k +0 R +0 0 0 1 K +0 w -7833.2358 8521.1152 m +-7833.6064 8521.248 -7833.9858 8521.2832 -7834.3833 8521.2031 c +-7834.4863 8521.168 l +-7834.5254 8521.1602 -7834.5703 8521.1787 -7834.6025 8521.1992 c +-7834.9434 8521.3926 l +-7838.7129 8523.2959 -7842.0962 8525.8965 -7844.5 8529.4473 c +-7845.9634 8531.5918 -7847.123 8533.8789 -7848.7993 8535.8564 c +-7849.1729 8536.209 -7849.1758 8536.7725 -7848.834 8537.1309 c +-7848.4951 8537.501 -7847.918 8537.5078 -7847.561 8537.165 c +-7847.4038 8537.21 l +-7847.2642 8537.1289 -7847.0742 8537.0703 -7847.0234 8536.957 c +-7845.853 8534.2031 -7845.1895 8531.5137 -7843.4336 8529.1387 c +-7841.1719 8526.0947 -7838.1777 8523.9941 -7835.0298 8522.0234 c +-7834.3672 8521.6055 L +-7834.4966 8521.6348 L +-7833.7695 8521.6426 l +-7833.791 8521.6113 -7833.8008 8521.5957 -7833.8223 8521.5645 C +-7833.6064 8521.5234 -7833.377 8521.4746 -7833.1626 8521.4336 c +-7833.0762 8521.4238 -7833.0186 8521.3389 -7833.0391 8521.2383 c +-7833.0503 8521.1523 -7833.1382 8521.1084 -7833.2358 8521.1152 c +-7833.2358 8521.1152 l +b -7849.2222 8534.9951 m +-7849.5742 8534.8066 -7849.9658 8534.6719 -7850.248 8534.3887 c +-7856.4521 8528.1719 -7866.6802 8527.2734 -7874.0488 8533.6855 C +-7874.1582 8533.7813 -7874.1582 8533.957 -7874.063 8534.0645 C +-7871.0527 8532.9434 -7862.8838 8534.375 -7859.3223 8537.4121 C +-7859.2534 8537.4668 -7859.1465 8537.4531 -7859.1055 8537.3711 C +-7859.0503 8537.3047 -7859.0664 8537.1953 -7859.1328 8537.1563 C +-7862.5625 8534.0859 -7867.0674 8532.29 -7871.6729 8532.748 C +-7868.8535 8531.1855 -7865.6313 8530.4941 -7862.3984 8530.6885 c +-7857.7144 8530.9717 -7853.4634 8533.1191 -7849.3711 8535.2793 c +-7849.291 8535.3193 -7849.1978 8535.293 -7849.1553 8535.2109 C +-7849.1016 8535.1309 -7849.1426 8535.0352 -7849.2222 8534.9951 c +b -7858.647 8536.3359 m +-7860.2266 8540.3613 -7862.3911 8544.3203 -7865.8018 8547.0762 c +-7865.9648 8547.2119 -7865.9946 8547.4492 -7865.8711 8547.6055 c +-7865.7344 8547.7676 -7865.5049 8547.7793 -7865.3481 8547.6563 c +-7861.123 8545.5967 -7858.1904 8541.1309 -7858.1626 8536.4014 c +-7858.1626 8536.4014 l +-7858.1328 8536.2676 -7858.2354 8536.1348 -7858.3633 8536.1221 c +-7858.5039 8536.1055 -7858.6318 8536.1973 -7858.647 8536.3359 c +-7858.647 8536.3359 l +b -7852.9414 8541.0176 m +-7853.042 8541.1816 -7853.1152 8541.3838 -7853.2617 8541.4824 c +-7856.0806 8543.3906 -7858.9785 8544.6309 -7861.8848 8546.1328 c +-7862.0503 8546.209 -7862.1118 8546.418 -7862.0313 8546.5703 c +-7861.9512 8546.7227 -7861.7559 8546.7793 -7861.5898 8546.7041 c +-7858.439 8545.3232 -7854.313 8544.5 -7852.6729 8541.1797 c +-7852.6289 8541.1113 -7852.6455 8541.0146 -7852.7266 8540.9648 c +-7852.7959 8540.9199 -7852.897 8540.9492 -7852.9414 8541.0176 c +-7852.9414 8541.0176 l +b -7852.6602 8541.918 m +-7852.4438 8542.4297 -7852.1431 8542.8896 -7852.0503 8543.4355 c +-7851.2183 8548.2773 -7851.1152 8553.042 -7852.248 8557.6875 c +-7852.248 8557.6875 l +-7852.3418 8557.9531 -7852.2114 8558.2441 -7851.9438 8558.3389 c +-7851.6777 8558.4336 -7851.3882 8558.3125 -7851.2935 8558.0479 c +-7849.293 8552.8115 -7849.897 8546.7373 -7852.3711 8541.7832 c +-7852.4063 8541.7002 -7852.498 8541.6689 -7852.582 8541.6914 c +-7852.6641 8541.7275 -7852.6978 8541.835 -7852.6602 8541.918 c +-7852.6602 8541.918 l +b -7851.5352 8557.5938 m +-7848.8984 8555.2275 -7846.6816 8552.252 -7845.853 8548.7363 c +-7845.853 8548.7363 l +-7845.7246 8548.1816 -7846.0742 8547.623 -7846.6416 8547.4902 c +-7847.1992 8547.375 -7847.7578 8547.7246 -7847.8862 8548.2793 c +-7848.5649 8551.5313 -7849.8711 8554.6729 -7851.7954 8557.3867 c +-7851.7954 8557.3867 l +-7851.8462 8557.4551 -7851.834 8557.5576 -7851.7695 8557.6201 c +-7851.6992 8557.6699 -7851.5977 8557.6582 -7851.5352 8557.5938 c +-7851.5352 8557.5938 l +b -7836.3711 8550.1826 m +-7837.7114 8545.8301 -7840.2598 8542.0693 -7843.689 8539.1533 C +-7843.729 8539.0723 -7843.8242 8539.0322 -7843.9038 8539.0859 C +-7843.9863 8539.127 -7844.0122 8539.2207 -7843.9722 8539.3018 C +-7843.957 8539.7891 -7843.7144 8540.2334 -7843.4458 8540.5313 c +-7838.4063 8546.1621 -7834.9902 8554.7197 -7837.3433 8561.9551 C +-7837.0762 8556.4512 -7838.7241 8550.3008 -7842.1362 8545.6738 c +-7843.1606 8544.2695 -7844.7422 8544.1211 -7846.3081 8544.2031 C +-7846.4023 8544.1895 -7846.4834 8544.2432 -7846.4961 8544.3369 c +-7846.5098 8544.4189 -7846.4551 8544.5137 -7846.3623 8544.5254 C +-7843.1479 8545.7695 -7841.4878 8549.2246 -7840.084 8552.1943 c +-7838.415 8555.7441 -7837.7017 8559.6387 -7838.0054 8563.5 C +-7838.0454 8563.6777 -7838.1138 8565.3975 -7837.9775 8565.4102 C +-7837.8306 8565.4395 -7837.709 8565.3438 -7837.6802 8565.1943 C +-7837.645 8565.0449 -7834.6426 8555.7988 -7836.3711 8550.1826 c +b -7844.4863 8537.4912 m +-7843.3945 8533.6211 -7841.1094 8530.251 -7838.4824 8527.2383 c +-7838.3306 8527.1045 -7838.3145 8526.8867 -7838.4502 8526.7354 c +-7838.5752 8526.6006 -7838.8047 8526.582 -7838.957 8526.7178 c +-7842.3306 8529.332 -7843.4487 8533.541 -7844.7954 8537.375 c +-7844.7954 8537.375 l +-7844.8262 8537.4648 -7844.7754 8537.5586 -7844.6982 8537.5869 c +-7844.6094 8537.6191 -7844.5166 8537.5684 -7844.4863 8537.4912 c +-7844.4863 8537.4912 l +b -7838.5313 8562.1094 m +-7838.5991 8562.0566 -7838.707 8562.083 -7838.748 8562.1504 C +-7838.9634 8562.4746 -7840.6914 8564.5195 -7841.3926 8565.1406 c +-7846.1719 8569.3945 -7849.5137 8573.9609 -7857.5391 8577.7227 c +-7864.4512 8580.9639 -7867.1113 8583.5957 -7874.3862 8581.8262 c +-7877.687 8581.0293 -7879.0313 8580.5313 -7880.4351 8575.4551 C +-7881.9473 8569.2988 -7880.8672 8571.7832 -7881.084 8564.4385 c +-7881.2222 8559.6973 -7884 8548.4551 -7871.5254 8534.2598 C +-7871.4199 8534.1484 -7871.4336 8533.9961 -7871.5337 8533.9072 C +-7871.6328 8533.8027 -7871.7959 8533.8164 -7871.8862 8533.916 C +-7877.5786 8538.7168 -7881.0234 8545.6582 -7882.3145 8552.9424 c +-7883.2871 8558.4668 -7882.9199 8563.25 -7882.666 8569.6367 c +-7882.5688 8572.0938 -7883.6855 8579.0723 -7878.9102 8583.0625 c +-7875.3926 8586 -7870.3911 8585.5469 -7866.3545 8584.1563 c +-7860.6992 8582.2119 -7855.9727 8579.1465 -7850.8711 8575.6094 c +-7847.2656 8573.125 -7839.2881 8563.2852 -7838.4785 8562.3262 C +-7838.4351 8562.2588 -7838.4502 8562.1504 -7838.5313 8562.1094 C +b -7873.0503 8549.3057 m +-7872.168 8548.5029 -7871.7017 8549.8457 -7871.4297 8550.6016 c +-7871.1626 8551.3574 -7870.189 8551.25 -7870.5127 8551.5732 c +-7870.8369 8551.8975 -7870.8369 8551.9521 -7871.3232 8551.5195 c +-7871.8086 8551.0879 -7871.8086 8551.7363 -7872.5649 8551.25 c +-7873.3198 8550.7627 -7873.645 8549.8457 -7873.0503 8549.3057 c +b -7865.6519 8553.9492 m +-7865.3657 8553.5918 -7864.6802 8553.5723 -7864.4648 8553.8945 c +-7864.25 8554.2197 -7863.3306 8554.2734 -7863.4937 8554.5967 c +-7863.6543 8554.9219 -7863.6016 8555.1387 -7864.0874 8554.9219 c +-7864.5737 8554.7051 -7864.4121 8555.2998 -7864.897 8555.084 c +-7865.3833 8554.8672 -7865.8687 8554.2197 -7865.6519 8553.9492 c +b -7857.6074 8559.0791 m +-7857.1206 8558.7559 -7855.8794 8559.5117 -7856.4727 8559.5117 c +-7857.0674 8559.5117 -7856.311 8560.2676 -7856.8521 8560.4834 c +-7857.3906 8560.6992 -7857.2832 8560.4297 -7857.6074 8560.6445 c +-7857.9297 8560.8613 -7858.3633 8561.2393 -7858.5239 8560.4297 c +-7858.6855 8559.6191 -7858.3633 8559.6191 -7857.9849 8559.3496 c +-7857.6074 8559.0791 -7857.6074 8559.0791 y +b -7872.2402 8559.3496 m +-7871.1074 8559.2422 -7871.8633 8559.998 -7871.269 8560.4834 c +-7870.6738 8560.9697 -7869.918 8561.6172 -7870.729 8561.4004 c +-7871.5391 8561.1855 -7872.9961 8561.6719 -7872.9434 8560.5381 c +-7872.8887 8559.4033 -7872.6328 8559.3867 -7872.2402 8559.3496 c +b -7866.5703 8567.6113 m +-7866.1016 8567.3438 -7866.6802 8567.7197 -7866.0303 8567.6113 c +-7865.3833 8567.5039 -7864.7886 8567.6113 -7865.2207 8567.8281 c +-7865.6519 8568.0439 -7866.3008 8568.1523 -7866.4634 8567.9893 c +-7866.625 8567.8281 -7866.9473 8567.8281 -7866.5703 8567.6113 c +b -7857.0674 8567.1797 m +-7857.4785 8566.1797 -7856.0962 8566.4238 -7855.4473 8566.7461 c +-7854.7998 8567.0723 -7853.8262 8566.4775 -7854.4209 8566.9102 c +-7855.0137 8567.3418 -7854.7998 8566.9102 -7855.3926 8567.2334 c +-7855.9873 8567.5566 -7856.6895 8568.0977 -7857.0674 8567.1797 c +b -7872.6738 8573.0664 m +-7872.7222 8572.0752 -7871.8086 8572.957 -7871.269 8573.0117 c +-7870.729 8573.0664 -7870.0801 8573.0664 -7870.2432 8573.2813 c +-7870.4038 8573.498 -7870.459 8573.498 -7871.1626 8573.7129 c +-7871.8633 8573.9297 -7872.6191 8574.1445 -7872.6738 8573.0664 c +b -7873.1582 8567.6113 m +-7874.0664 8567.9746 -7874.293 8567.8809 -7874.5625 8568.2051 c +-7874.834 8568.5293 -7875.1558 8569.2314 -7875.5352 8568.0977 c +-7875.9121 8566.9629 -7875.4282 8565.7764 -7875.0479 8565.9375 c +-7874.6714 8566.0996 -7874.293 8566.7461 -7873.8618 8566.9629 c +-7873.4297 8567.1797 -7872.6191 8567.3945 -7873.1582 8567.6113 c +b U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 41) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884 8586 m +-7803 8586 L +-7803 8481 L +-7884 8481 L +-7884 8586 L +n u u u 0 O +0 0 0 1 k +-7865.8057 8498.4258 m +-7866.0742 8496.6621 -7867.1602 8495.291 -7868.5239 8495.3965 c +-7869.8862 8495.502 -7870.707 8497.0234 -7870.7432 8498.8066 c +-7870.748 8499.0693 -7870.6743 8500.2441 -7870.6304 8500.4775 C +-7870.6382 8500.582 -7870.6191 8500.6738 -7870.6104 8500.7803 c +-7870.5142 8502.0254 -7869.3574 8503.3604 -7867.9414 8503.25 c +-7866.5249 8503.1406 -7865.4897 8501.8613 -7865.6367 8500.4727 c +-7865.644 8500.4072 -7865.6958 8499.626 -7865.707 8499.5625 C +-7865.6816 8499.2852 -7865.7598 8498.7256 -7865.8057 8498.4258 c +f -7876.2646 8507.7334 m +-7876.9946 8515.916 -7871.5015 8515.1191 v +-7868.3682 8514.0186 -7869.4414 8511.1211 v +-7869.6426 8509.752 -7871.7847 8508.498 v +-7872.146 8508.25 -7872.7632 8507.1016 v +-7873.1294 8505.5977 -7874.5186 8505.2979 v +-7876.0762 8505.251 -7876.2646 8507.7334 v +f -7850.7646 8516.4971 m +F -7850.0762 8514.3408 m +-7850.7847 8513.1934 -7853.8848 8513.6279 Y +-7854.811 8513.6885 -7855.3799 8513.1113 Y +-7857.8394 8509.0918 -7861.0386 8509.8857 -7861.4082 8509.9932 C +-7861.4097 8509.9863 L +-7864.999 8510.6045 -7865.2666 8515.6035 V +-7865.4912 8516.3828 -7866.335 8516.7695 V +-7869.2695 8517.8613 -7869.3481 8519.208 V +-7869.8999 8521.1152 -7867.6006 8521.7422 V +-7865.6792 8522.2568 -7863.7886 8519.8945 V +-7862.6113 8518.6797 -7859.5762 8517.9395 V +-7859.5728 8517.9531 L +-7856.3594 8517.0459 -7854.6392 8517.5889 Y +-7851.8521 8518.7676 -7850.4063 8517.4014 Y +-7848.6826 8515.7559 -7850.0762 8514.3408 Y +f -7863.9834 8497.8789 m +-7864.5854 8496.2002 -7864.2822 8494.4775 -7863.0327 8493.9229 c +-7861.7842 8493.3672 -7860.3384 8494.3164 -7859.4585 8495.8672 c +-7859.3286 8496.0957 -7858.8359 8497.165 -7858.7632 8497.3906 C +-7858.7065 8497.4785 -7858.6792 8497.5684 -7858.6362 8497.667 c +-7858.1289 8498.8086 -7858.5122 8500.5303 -7859.8105 8501.1074 c +-7861.1089 8501.6855 -7862.6279 8501.0527 -7863.1582 8499.7617 c +-7863.1831 8499.7002 -7863.5078 8498.9883 -7863.5298 8498.9268 C +-7863.6831 8498.6963 -7863.8809 8498.166 -7863.9834 8497.8789 c +f -7849.7129 8500.9316 m +-7845.1802 8507.7822 -7850.3911 8509.6943 v +-7853.6714 8510.2168 -7854.103 8507.1572 v +-7854.5786 8505.8564 -7853.29 8503.7354 v +-7853.0903 8503.3447 -7853.0938 8502.04 v +-7853.4858 8500.5449 -7852.4082 8499.6182 v +-7851.0591 8498.8359 -7849.7129 8500.9316 v +f U u -7824.7358 8550.1074 m +-7824.3687 8548.3623 -7824.9048 8546.6963 -7826.2183 8546.3164 c +-7827.5322 8545.9375 -7828.8345 8547.0752 -7829.4937 8548.7324 c +-7829.5903 8548.9775 -7829.9326 8550.1025 -7829.9746 8550.3369 C +-7830.0176 8550.4326 -7830.0322 8550.5244 -7830.0625 8550.6279 c +-7830.4087 8551.8271 -7829.7935 8553.4805 -7828.4282 8553.875 c +-7827.063 8554.2695 -7825.645 8553.4365 -7825.2969 8552.085 c +-7825.2793 8552.0205 -7825.0552 8551.2705 -7825.0425 8551.207 C +-7824.9214 8550.9551 -7824.7983 8550.4053 -7824.7358 8550.1074 c +f -7838.2705 8554.6172 m +-7841.8242 8562.0244 -7836.3999 8563.2061 v +-7833.0801 8563.2754 -7833.0688 8560.1846 v +-7832.7778 8558.8311 -7834.3433 8556.9072 v +-7834.5942 8556.5459 -7834.7695 8555.2539 v +-7834.5854 8553.7188 -7835.7793 8552.9492 v +-7837.2222 8552.3594 -7838.2705 8554.6172 v +f -7817.4648 8571.7695 m +F -7816.063 8569.9912 m +-7816.3247 8568.6689 -7819.3799 8567.9883 Y +-7820.27 8567.7197 -7820.5986 8566.9795 Y +-7821.4922 8562.3535 -7824.7666 8561.9746 -7825.1494 8561.9453 C +-7825.1494 8561.9395 L +-7828.7271 8561.2588 -7830.731 8565.8467 V +-7831.2153 8566.4961 -7832.1416 8566.5625 V +-7835.272 8566.5557 -7835.8169 8567.7891 V +-7837.0039 8569.3809 -7835.0713 8570.7764 V +-7833.4526 8571.9316 -7830.853 8570.3818 V +-7829.3242 8569.6582 -7826.2222 8570.0293 V +-7826.2231 8570.042 L +-7822.896 8570.3213 -7821.4766 8571.4326 Y +-7819.2793 8573.5146 -7817.4463 8572.7432 Y +-7815.2554 8571.8057 -7816.063 8569.9912 Y +f -7822.8374 8550.2354 m +-7822.813 8548.4512 -7821.9258 8546.9453 -7820.5601 8546.8633 c +-7819.1943 8546.7803 -7818.1743 8548.1768 -7817.895 8549.9385 c +-7817.854 8550.1973 -7817.7666 8551.3711 -7817.7778 8551.6094 C +-7817.7559 8551.7109 -7817.7617 8551.8037 -7817.7559 8551.9121 c +-7817.6807 8553.1592 -7818.644 8554.6367 -7820.0625 8554.7217 c +-7821.4814 8554.8066 -7822.6826 8553.6826 -7822.7246 8552.2871 c +-7822.7271 8552.2217 -7822.7822 8551.4404 -7822.7798 8551.375 C +-7822.8433 8551.1045 -7822.8423 8550.54 -7822.8374 8550.2354 c +f -7811.0186 8557.5625 m +-7809.1777 8565.5684 -7814.7271 8565.5303 v +-7817.9834 8564.8691 -7817.3154 8561.8516 v +-7817.3032 8560.4668 -7815.353 8558.9326 v +-7815.0278 8558.6377 -7814.5742 8557.415 v +-7814.417 8555.876 -7813.083 8555.3877 v +-7811.5454 8555.1279 -7811.0186 8557.5625 v +f U U 1 Ap +-7884 8586 m +-7884 8481 L +-7803 8481 L +-7803 8586 L +-7884 8586 L +n U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 42) +0 A +u 0 Ap +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7857.4609 8559.085 m +-7885 8559.085 L +-7885 8586.624 L +-7857.4609 8586.624 L +-7857.4609 8559.085 L +n 0 O +0 0.55 1 0.12 k +-7871.7598 8577.3623 m +-7871.7598 8587 L +-7870.6343 8587 L +-7870.6343 8577.3623 L +-7871.7598 8577.3623 L +f 0 0.55 1 0.3 k +-7875.4233 8572.876 m +-7874.3096 8571.1553 -7870.8809 8569.457 -7866.4966 8569.457 c +-7862.1152 8569.457 -7858.6138 8571.1064 -7857.5718 8572.874 C +-7857.5718 8572.874 L +-7858.6138 8574.6006 -7862.1152 8576.2979 -7866.4966 8576.2979 c +-7870.875 8576.2979 -7874.3242 8574.5615 -7875.4233 8572.876 C +f U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 45) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7885 8543.918 m +-7885 8587 L +-7798.2217 8587 L +-7798.2217 8543.918 L +-7885 8543.918 L +n u u 0 O +0 0 0 1 k +-7825.2217 8573.2363 m +-7825.2217 8581.0742 L +-7813.2217 8574.1445 L +-7801.2217 8567.2168 L +-7813.2217 8560.2891 L +-7825.2217 8553.3613 L +-7825.2217 8561.4824 L +-7883.9351 8547.7168 L +-7870.9878 8566.8027 L +-7885 8587 L +-7825.2217 8573.2363 L +f 0 1 1 0.1 k +0 R +0 0 0 1 K +-7823.2217 8570.2363 m +-7823.2217 8578.0742 L +-7811.2217 8571.1445 L +-7799.2217 8564.2168 L +-7811.2217 8557.2891 L +-7823.2217 8550.3613 L +-7823.2217 8558.4824 L +-7881.9351 8544.7168 L +-7867.2754 8564.3594 L +-7881.9351 8584 L +-7823.2217 8570.2363 L +b U U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 50) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884 8586 m +-7756.877 8586 L +-7756.877 8538.415 L +-7884 8538.415 L +-7884 8586 L +n u *u +0 O +0.9529 0.949 0.1961 0.0745 k +-7857.793 8570.417 m +-7857.8232 8570.2676 L +-7859.9849 8564.3643 -7860.9438 8561.6377 -7861.2754 8560.2891 c +-7861.3657 8560.2891 L +-7861.6953 8561.6074 -7862.7754 8564.335 -7864.9673 8570.2676 c +-7864.9966 8570.417 L +-7857.793 8570.417 l +f 1 D +-7868.1182 8578.9678 m +-7869.6191 8582.5371 -7870.3994 8584.709 -7868.1182 8584.917 c +-7868.1182 8585.9678 L +-7870.6992 8585.9375 -7873.5806 8585.917 -7876.3418 8585.917 c +-7880.0649 8585.917 -7882.5273 8585.9375 -7884 8585.9678 c +-7884 8584.917 L +-7882.1064 8584.709 -7881.0542 8582.5674 -7873.5513 8565.5029 c +-7861.6953 8538.415 L +-7859.8638 8538.415 L +-7848.1582 8565.5029 L +-7840.8047 8582.5078 -7839.7246 8584.709 -7837.8887 8584.917 c +-7837.8887 8585.9678 L +-7839.5142 8585.9375 -7841.916 8585.917 -7845.5767 8585.917 c +-7848.5488 8585.917 -7851.6694 8585.9375 -7854.7026 8585.9678 c +-7854.7026 8584.917 L +-7852.481 8584.709 -7853.3218 8582.5078 -7854.7617 8578.9678 C +-7868.1182 8578.9678 l +f *U +*u +0 D +-7813.0762 8554.0811 m +-7813.0762 8550.4717 -7815.3535 8548.0947 -7819.1294 8548.0947 c +-7820.2383 8548.0947 -7821.0767 8548.2158 -7821.5273 8548.2451 c +-7821.5273 8560.5479 L +-7820.8672 8560.6084 -7820.208 8560.6084 -7819.729 8560.6084 c +-7818.2002 8560.6084 -7816.7026 8560.127 -7815.6841 8559.4053 c +-7814.3945 8558.5332 -7813.0762 8556.7881 -7813.0762 8554.1416 C +-7813.0762 8554.0811 l +f 1 D +-7832.0806 8558.3926 m +-7832.0806 8542.6445 -7832.0806 8540.4287 -7834.542 8540.2783 c +-7834.542 8539.3184 L +-7833.042 8539.2588 -7830.3174 8539.1992 -7827.5664 8539.1689 c +-7825.6538 8539.1084 -7822.3945 8539.0186 -7820.1479 8538.9775 c +-7816.582 8538.9775 -7813.585 8539.4258 -7811.0049 8540.2627 c +-7806.353 8541.8477 -7801.9702 8545.8525 -7801.9702 8553.6602 c +-7801.9702 8558.7432 -7804.4014 8562.3193 -7806.5034 8564.0605 c +-7807.583 8565.0215 -7808.8135 8565.832 -7809.7744 8566.3125 c +-7809.7744 8566.4629 L +-7807.5234 8569.4912 -7805.6025 8572.0625 -7799.3906 8580.6426 c +-7797.5 8583.0645 -7795.9102 8584.7383 -7794.7402 8584.9775 c +-7794.7402 8586 L +-7796.6602 8586 -7799 8585.8848 -7801.1294 8585.8848 c +-7803.3511 8585.8848 -7804.8521 8586 -7806.4424 8586 c +-7807.6729 8586 -7808.7241 8585.9404 -7809.5039 8585.2725 c +-7813.0151 8579.8477 -7816.9121 8573.7559 -7820.1182 8568.7139 c +-7820.5078 8568.7139 -7820.957 8568.7139 -7821.5273 8568.7139 c +-7821.5273 8571.2852 L +-7821.5273 8582.5264 -7821.437 8584.7686 -7819.1895 8584.9775 c +-7819.1895 8585.9697 L +-7820.6279 8585.9404 -7823.9194 8585.915 -7826.6992 8585.915 c +-7829.9287 8585.915 -7832.8921 8585.9404 -7834.5122 8585.9697 c +-7834.5122 8584.9775 L +-7832.0518 8584.7686 -7832.0806 8582.5264 -7832.0806 8565.5918 C +-7832.0806 8558.3926 l +f *U +*u +0 D +-7781.4561 8565.5928 m +-7781.4561 8582.4941 -7781.4561 8584.6484 -7784.2832 8584.9775 C +-7784.2832 8585.9697 l +-7782.3887 8585.9404 -7779.0542 8585.915 -7775.7822 8585.915 c +-7772.6294 8585.915 -7769.5688 8585.9404 -7767.2881 8585.9697 C +-7767.2881 8584.9775 l +-7770.2578 8584.9775 -7770.2881 8582.5244 -7770.2881 8565.5928 C +-7770.2881 8548.1514 L +-7762.8193 8548.1514 l +-7759.999 8548.1514 -7758.5298 8548.96 -7757.8994 8551.2627 C +-7756.9072 8551.2627 l +-7756.9072 8546.4697 -7756.877 8542.415 -7756.877 8539.1709 c +-7761.3486 8539.2012 -7766.748 8539.2314 -7772.0601 8539.2314 C +-7779.7446 8539.2314 l +-7784.5537 8539.2314 -7789.9966 8539.2012 -7794.9614 8539.1709 c +-7794.9614 8542.3848 -7794.9326 8546.4697 -7794.9326 8551.2627 C +-7793.9072 8551.2627 l +-7793.3657 8549.1094 -7791.771 8548.1514 -7788.9438 8548.1514 C +-7781.4561 8548.1514 l +-7781.4561 8565.5928 L +f *U +U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 62) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7885 8587 m +-7885 8548.7305 L +-7846.7305 8548.7305 L +-7846.7305 8587 L +-7885 8587 L +n 0 O +1 0.14 0.09 0 k +-7846.7305 8569.9043 m +-7846.7305 8561.3408 L +-7885 8561.3408 L +-7885 8569.9043 L +-7846.7305 8569.9043 L +f -7846.7305 8573.0967 m +-7846.7305 8572.4229 L +-7885 8572.4229 L +-7885 8573.0967 L +-7846.7305 8573.0967 L +f U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 63) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7885 8587 m +-7885 8548.7305 L +-7846.7305 8548.7305 L +-7846.7305 8587 L +-7885 8587 L +n 0 O +1 0.14 0.09 0 k +-7846.7305 8565.8262 m +-7846.7305 8574.3896 L +-7859.3408 8574.3896 L +-7859.3408 8587 L +-7867.9038 8587 L +-7867.9063 8565.8262 L +-7867.9038 8565.8262 L +-7867.9038 8565.8252 L +-7846.7305 8565.8262 L +f -7846.7305 8563.3076 m +-7870.4233 8563.3076 L +-7870.4233 8587 L +-7871.0967 8587 L +-7871.0977 8562.6328 L +-7846.7305 8562.6328 L +-7846.7305 8563.3076 L +f U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 64) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7885 8586.999 m +-7885 8548.7285 L +-7846.7305 8548.7285 L +-7846.7305 8586.999 L +-7885 8586.999 L +n 0 O +1 0.14 0.09 0 k +-7846.7305 8561.3389 m +-7872.3896 8561.3389 L +-7872.3896 8586.999 L +-7863.8262 8587 L +-7863.8262 8569.9033 L +-7846.7305 8569.9033 L +-7846.7305 8561.3389 L +f -7846.7305 8572.4219 m +-7861.3081 8572.4219 L +-7861.3081 8587 L +-7860.6338 8587 L +-7860.6338 8573.0957 L +-7846.7305 8573.0957 L +-7846.7305 8572.4219 L +f U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 65) +0 A +u 1 Ap +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7857.0625 8559.4609 m +-7884.6025 8559.4609 L +-7884.6025 8587 L +-7857.0625 8587 L +-7857.0625 8559.4609 L +n 0 O +0 0.55 1 0.12 k +-7856.8418 8572.7002 m +-7885 8572.7002 L +-7885 8573.8252 L +-7856.8418 8573.8252 L +-7856.8418 8572.7002 L +f u 0 0.55 1 0.3 k +-7883.9814 8560.5215 m +-7884.4102 8562.5254 -7883.1865 8566.1514 -7880.0874 8569.251 c +-7876.9878 8572.3496 -7873.3457 8573.6602 -7871.3594 8573.1455 C +-7871.3594 8573.1455 L +-7870.875 8571.1895 -7872.1519 8567.5117 -7875.25 8564.4141 c +-7878.3457 8561.3184 -7882.0122 8560.1064 -7883.9814 8560.5215 C +f 0 0.39 0.7 0.12 k +-7883.9814 8585.9912 m +-7884.4102 8583.9883 -7883.1865 8580.3613 -7880.0874 8577.2617 c +-7876.9878 8574.1641 -7873.3457 8572.8535 -7871.3594 8573.3672 C +-7871.3594 8573.3672 L +-7870.875 8575.3242 -7872.1519 8579.001 -7875.25 8582.0996 c +-7878.3457 8585.1953 -7882.0122 8586.4063 -7883.9814 8585.9912 C +f U u 0 0.55 1 0.3 k +-7870.1782 8585.9912 m +-7870.6074 8583.9883 -7869.3838 8580.3613 -7866.2842 8577.2617 c +-7863.1855 8574.1641 -7859.543 8572.8535 -7857.5576 8573.3672 C +-7857.5566 8573.3672 L +-7857.0718 8575.3242 -7858.3496 8579.001 -7861.4473 8582.0996 c +-7864.543 8585.1953 -7868.209 8586.4063 -7870.1782 8585.9912 C +f 0 0.39 0.7 0.12 k +-7870.1782 8560.5215 m +-7870.6074 8562.5254 -7869.3838 8566.1514 -7866.2842 8569.251 c +-7863.1855 8572.3496 -7859.543 8573.6602 -7857.5576 8573.1455 C +-7857.5566 8573.1455 L +-7857.0718 8571.1895 -7858.3496 8567.5117 -7861.4473 8564.4141 c +-7864.543 8561.3184 -7868.209 8560.1064 -7870.1782 8560.5215 C +f U U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 67) +0 A +u 0 Ap +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7857.4609 8559.085 m +-7885 8559.085 L +-7885 8586.624 L +-7857.4609 8586.624 L +-7857.4609 8559.085 L +n 0 O +0 0.55 1 0.12 k +-7871.7598 8577.3623 m +-7871.7598 8587 L +-7870.6343 8587 L +-7870.6343 8577.3623 L +-7871.7598 8577.3623 L +f 0 0.55 1 0.3 k +-7875.4233 8572.876 m +-7874.3096 8571.1553 -7870.8809 8569.457 -7866.4966 8569.457 c +-7862.1152 8569.457 -7858.6138 8571.1064 -7857.5718 8572.874 C +-7857.5718 8572.874 L +-7858.6138 8574.6006 -7862.1152 8576.2979 -7866.4966 8576.2979 c +-7870.875 8576.2979 -7874.3242 8574.5615 -7875.4233 8572.876 C +f U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 69) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7857.4609 8559.4609 m +-7885 8559.4609 L +-7885 8587 L +-7857.4609 8587 L +-7857.4609 8559.4609 L +n 0 O +0 0.55 1 0.3 k +-7875.4233 8573.252 m +-7874.3096 8571.5313 -7870.8809 8569.833 -7866.4966 8569.833 c +-7862.1152 8569.833 -7858.6138 8571.4824 -7857.5718 8573.25 C +-7857.5718 8573.25 L +-7858.6138 8574.9766 -7862.1152 8576.6738 -7866.4966 8576.6738 c +-7870.875 8576.6738 -7874.3242 8574.9375 -7875.4233 8573.252 C +f U %AI8_EndBrushPattern +%AI8_BeginBrushPattern +(New Pattern 83) +0 A +u 800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +-7884 8585.9355 m +-7670.4009 8585.9355 L +-7670.4009 8578.1348 L +-7884 8578.1348 L +-7884 8585.9355 L +n 0 O +0 0 0 1 k +-7884 8582.0352 m +-7873.9858 8584.5273 -7867.187 8585.875 -7855.2007 8585.9355 c +-7842.2183 8586 -7777.2002 8585.9355 y +-7712.1816 8586 -7699.2002 8585.9355 v +-7687.2129 8585.875 -7680.415 8584.5273 -7670.4009 8582.0352 C +-7680.415 8579.543 -7687.2129 8578.1953 -7699.2002 8578.1348 c +-7712.1816 8578.0693 -7777.2002 8578.1348 y +-7842.2183 8578.0693 -7855.2007 8578.1348 v +-7867.187 8578.1953 -7873.9858 8579.543 -7884 8582.0352 C +f U %AI8_EndBrushPattern +%AI5_End_NonPrinting-- +%AI5_Begin_NonPrinting +Np +4 Bn +%AI5_BeginGradient: (Black, White) +(Black, White) 0 2 Bd +[ +< +FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 +D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 +AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 +87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 +5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 +37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 +0F0E0D0C0B0A09080706050403020100 +> +0 %_Br +[ +0 0 50 100 %_BS +%_0 0 50 100 Bs +1 0 50 0 %_BS +%_1 0 50 0 Bs +BD +%AI5_EndGradient +%AI5_BeginGradient: (Chrome) +(Chrome) 0 6 Bd +[ +0 +< +464646454545444444444343434342424241414141404040403F3F3F3E3E3E3E3D3D3D3C3C3C3C3B +3B3B3B3A3A3A39393939383838383737373636363635353535343434333333333232323131313130 +3030302F2F2F2E2E2E2E2D2D2D2D2C2C2C2B2B2B2B2A2A2A2A292929282828282727272626262625 +2525252424242323232322222222212121202020201F1F1F1F1E1E1E1D1D1D1D1C1C1C1B1B1B1B1A +1A1A1A1919191818181817171717161616151515151414141413131312121212111111101010100F +0F0F0F0E0E0E0D0D0D0D0C0C0C0C0B0B0B0A0A0A0A09090909080808070707070606060505050504 +04040403030302020202010101010000 +> +< +FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 +D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 +AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 +87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 +5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 +37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 +0F0E0D0C0B0A09080706050403020100 +> +< +1F1E1E1E1E1E1E1E1E1E1D1D1D1D1D1D1D1D1C1C1C1C1C1C1C1C1B1B1B1B1B1B1B1B1B1A1A1A1A1A +1A1A1A19191919191919191818181818181818181717171717171717161616161616161615151515 +15151515151414141414141414131313131313131312121212121212121211111111111111111010 +1010101010100F0F0F0F0F0F0F0F0F0E0E0E0E0E0E0E0E0D0D0D0D0D0D0D0D0C0C0C0C0C0C0C0C0C +0B0B0B0B0B0B0B0B0A0A0A0A0A0A0A0A090909090909090909080808080808080807070707070707 +07060606060606060606050505050505050504040404040404040303030303030303030202020202 +02020201010101010101010000000000 +> +1 %_Br +0 +0.275 +1 +< +6B6A696867666564636261605F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544 +434241403F3E3D3C3B3A393837363534333231302F2E2D2C2B2A292827262524232221201F +> +1 %_Br +0 +< +00000101010102020202030303040404040505050606060607070707080808090909090A0A0A0A0B +0B0B0C0C0C0C0D0D0D0D0E0E0E0F0F0F0F1010101111111112121212131313141414141515151516 +161617171717181818181919191A1A1A1A1B1B1B1C1C1C1C1D1D1D1D1E1E1E1F1F1F1F2020202021 +212122222222232323232424242525252526262627272727282828282929292A2A2A2A2B2B2B2B2C +2C2C2D2D2D2D2E2E2E2E2F2F2F303030303131313232323233333333343434353535353636363637 +373738383838393939393A3A3A3B3B3B3B3C3C3C3D3D3D3D3E3E3E3E3F3F3F404040404141414142 +42424343434344444444454545464646 +> +< +000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 +28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F +505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 +78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F +A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 +C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF +F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF +> +< +00000101020203030304040505050606070708080809090A0A0B0B0B0C0C0D0D0D0E0E0F0F101010 +1111121212131314141515151616171718181819191A1A1A1B1B1C1C1D1D1D1E1E1F1F1F20202121 +222222232324242525252626272727282829292A2A2A2B2B2C2C2D2D2D2E2E2F2F2F303031313232 +32333334343435353636373737383839393A3A3A3B3B3C3C3C3D3D3E3E3F3F3F4040414142424243 +4344444445454646474747484849494A4A4A4B4B4C4C4C4D4D4E4E4F4F4F50505151515252535354 +54545555565657575758585959595A5A5B5B5C5C5C5D5D5E5E5E5F5F606061616162626363646464 +6565666666676768686969696A6A6B6B +> +1 %_Br +1 +0 %_Br +< +FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 +D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 +AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 +87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 +5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 +37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 +0F0E0D0C0B0A09080706050403020100 +> +< +4D4C4C4C4B4B4B4A4A4A4A4949494848484747474746464645454544444444434343424242414141 +414040403F3F3F3E3E3E3E3D3D3D3C3C3C3B3B3B3B3A3A3A39393938383838373737363636353535 +35343434333333323232323131313030302F2F2F2F2E2E2E2D2D2D2C2C2C2C2B2B2B2A2A2A292929 +2928282827272726262626252525242424232323232222222121212020201F1F1F1F1E1E1E1D1D1D +1C1C1C1C1B1B1B1A1A1A191919191818181717171616161615151514141413131313121212111111 +101010100F0F0F0E0E0E0D0D0D0D0C0C0C0B0B0B0A0A0A0A09090908080807070707060606050505 +04040404030303020202010101010000 +> +0 +0 +1 %_Br +[ +1 0 50 92 %_BS +%_1 0 50 92 Bs +0 0.275 1 0.12 1 50 59 %_BS +%_0 0.275 1 0.12 1 50 59 Bs +0 0.275 1 0.42 1 50 50 %_BS +%_0 0.275 1 0.42 1 50 50 Bs +1 0 50 49 %_BS +%_1 0 50 49 Bs +1 0 50 41 %_BS +%_1 0 50 41 Bs +1 0.3 0 0 1 50 0 %_BS +%_1 0.3 0 0 1 50 0 Bs +BD +%AI5_EndGradient +%AI5_BeginGradient: (Rainbow) +(Rainbow) 0 6 Bd +[ +< +FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 +D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 +AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 +87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 +5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 +37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 +0F0E0D0C0B0A09080706050403020100 +> +1 +0 +0 +1 %_Br +1 +< +0708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E +2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F50515253545556 +5758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E +7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6 +A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCE +CFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6 +F7F8F9FAFBFCFDFEFF +> +0 +0 +1 %_Br +1 +< +00000000000000000000000000000000000001010101010101010101010101010101010101010101 +01010101010101010101010101010202020202020202020202020202020202020202020202020202 +02020202020202020202030303030303030303030303030303030303030303030303030303030303 +03030303030304040404040404040404040404040404040404040404040404040404040404040404 +04040505050505050505050505050505050505050505050505050505050505050505050505050606 +06060606060606060606060606060606060606060606060606060606060606060607070707070707 +07070707070707070707070707070707 +> +< +FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 +D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 +AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 +87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 +5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 +37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 +0F0E0D0C0B0A09080706050403020100 +> +0 +1 %_Br +< +000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 +28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F +505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 +78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F +A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 +C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF +F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF +> +0 +1 +0 +1 %_Br +0 +< +FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 +D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 +AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 +87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 +5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 +37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 +0F0E0D0C0B0A09080706050403020100 +> +1 +0 +1 %_Br +[ +0 1 0 0 1 50 100 %_BS +%_0 1 0 0 1 50 100 Bs +1 1 0 0 1 50 80 %_BS +%_1 1 0 0 1 50 80 Bs +1 0.0279 0 0 1 50 60 %_BS +%_1 0.0279 0 0 1 50 60 Bs +1 0 1 0 1 50 40 %_BS +%_1 0 1 0 1 50 40 Bs +0 0 1 0 1 50 20 %_BS +%_0 0 1 0 1 50 20 Bs +0 1 1 0 1 50 0 %_BS +%_0 1 1 0 1 50 0 Bs +BD +%AI5_EndGradient +%AI5_BeginGradient: (Yellow & Orange Radial) +(Yellow & Orange Radial) 1 2 Bd +[ +0 +< +0001010203040506060708090A0B0C0C0D0E0F10111213131415161718191A1B1C1D1D1E1F202122 +232425262728292A2B2B2C2D2E2F303132333435363738393A3B3C3D3E3E3F404142434445464748 +494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F60606162636465666768696A6B6C6D6E6F +707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C +> +< +FFFFFFFFFEFEFEFEFEFEFEFDFDFDFDFDFDFCFCFCFCFCFCFBFBFBFBFBFBFAFAFAFAFAFAF9F9F9F9F9 +F9F8F8F8F8F8F8F7F7F7F7F7F7F6F6F6F6F6F6F5F5F5F5F5F5F4F4F4F4F4F3F3F3F3F3F3F2F2F2F2 +F2F2F1F1F1F1F1F0F0F0F0F0F0EFEFEFEFEFEFEEEEEEEEEEEDEDEDEDEDEDECECECECECEBEBEBEBEB +EBEAEAEAEAEAE9E9E9E9E9E9E8E8E8E8E8E8E7E7E7E7E7E6E6E6E6E6E6 +> +0 +1 %_Br +[ +0 0 1 0 1 52 19 %_BS +%_0 0 1 0 1 52 19 Bs +0 0.55 0.9 0 1 50 100 %_BS +%_0 0.55 0.9 0 1 50 100 Bs +BD +%AI5_EndGradient +%AI5_End_NonPrinting-- +%AI5_BeginPalette +0 0 Pb +1 1 1 1 ([Registration]) 0 Xs +([Registration]) Pc +0 0 0 0 k +(C=0 M=0 Y=0 K=0) Pc +0 0 0 1 k +(C=0 M=0 Y=0 K=100) Pc +0 0.1 1 0 k +(C=0 M=10 Y=100 K=0) Pc +0 0.5 0 0 k +(C=0 M=50 Y=0 K=0) Pc +0 0.5 1 0 k +(C=0 M=50 Y=100 K=0) Pc +1 0.55 1 0 k +(C=100 M=55 Y=100 K=0) Pc +1 0.9 0.1 0 k +(C=100 M=90 Y=10 K=0) Pc +0.15 1 1 0 k +(C=15 M=100 Y=100 K=0) Pc +0.45 0.9 0 0 k +(C=45 M=90 Y=0 K=0) Pc +0.5 0.4 0.3 0 k +(C=50 M=40 Y=30 K=0) Pc +0.5 0.85 1 0 k +(C=50 M=85 Y=100 K=0) Pc +0.75 0.05 1 0 k +(C=75 M=5 Y=100 K=0) Pc +0.75 0.9 0 0 k +(C=75 M=90 Y=0 K=0) Pc +0.8 0.05 0 0 k +(C=80 M=5 Y=0 K=0) Pc +Bb +2 (Black, White) -7885 8587 0 0 1 0 0 1 0 0 Bg +0 BB +(Black, White) Pc +Bb +2 (Chrome) -7885 8587 0 0 1 0 0 1 0 0 Bg +0 BB +(Chrome) Pc +Bb +2 (Rainbow) -7885 8587 0 0 1 0 0 1 0 0 Bg +0 BB +(Rainbow) Pc +Bb +0 0 0 0 Bh +2 (Yellow & Orange Radial) -7885 8587 0 0 1 0 0 1 0 0 Bg +0 BB +(Yellow & Orange Radial) Pc +(Brick) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p +(Brick) Pc +(Confetti) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p +(Confetti) Pc +(Leaves - Fall ) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p +(Leaves - Fall ) Pc +(Stripes) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p +(Stripes) Pc +PB +%AI5_EndPalette +%AI5_Begin_NonPrinting +Np +%AI8_BeginPluginObject +(Adobe Scatter Brush Tool) +(Dog Tracks) +(1 /New Pattern 41/ 1 0 0 0 1 / 0 1 1 0 1 1 0 0 0 0 -90 -90 0 1 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Scatter Brush Tool) +(Fall Leaf) +(1 /New Pattern 34/ 1 0.0745 0.9 0.9019 0.18 / 0 0.602793 1 1 0.1 1 1 -) - +(1 1 1 -180 180 1 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Scatter Brush Tool) +(Ladybug) +(1 /New Pattern 10/ 5 0.898039 0 0 / 0 1 1 0 0.803911 1.2 1 -1.55 1.55 ) - +(1 -180 180 1 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Scatter Brush Tool) +(Push Pin) +(1 /New Pattern 36/ 1 0.025 0.1 0.475 0 / 0 1 1 0 0.401676 1 1 -1.06145) - +( 1.06 1 -180 180 1 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Scatter Brush Tool) +(Strawberry) +(1 /New Pattern 37/ 1 0 0 0 1 / 0 0.803911 1 1 0.803911 1 1 -0.5 0.5 1 ) - +(-75 75.419 1 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Scatter Brush Tool) +(Twinkle Star ) +(1 /New Pattern 2/ 0 1 / 1 0.5 1 1 0.25 1 1 -0.5 0.5 1 0 0 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe PatternOnPath Brush Tool) +(Double Lines) +(1 / New Pattern 62/ New Pattern 63/ New Pattern 64/ / / 1 1 0.14 0.09 ) - +(0 / 1 0 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe PatternOnPath Brush Tool) +(Laurel) +(1 / New Pattern 65/ New Pattern 42/ New Pattern 67/ / New Pattern 69/ ) - +(1 0 0.55 1 0.3 / 1 0 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe PatternOnPath Brush Tool) +(Rope ) +(1 / New Pattern 1/ / / New Pattern 3/ New Pattern 6/ 5 0 0 0 / 1 0 1 ) - +(0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe ArtOnPath Brush Tool) +(Arrow) +(1 / New Pattern 45/ / / / / 5 0.898039 0 0 / 2 0 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe ArtOnPath Brush Tool) +(Marker) +(1 / New Pattern 8/ / / / / 0 0 / 1 1 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe ArtOnPath Brush Tool) +(Paintbrush) +(1 / New Pattern 5/ / / / / 1 0.5 0.85 1 0.45 / 0 0 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe ArtOnPath Brush Tool) +(Tapered Stroke) +(1 / New Pattern 83/ / / / / 1 0 0 0 1 / 1 1 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe ArtOnPath Brush Tool) +(Type) +(1 / New Pattern 50/ / / / / 1 0.952941 0.94902 0.196078 0.0745098 / 1) - +( 0 1 0 1 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Calligraphic Brush Tool) +(6 pt Flat ) +(1 4 8 10 10 90 90 2 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Calligraphic Brush Tool) +(10 pt Oval) +(1 1 19 15 15 130 130 2 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Calligraphic Brush Tool) +(12 pt Oval ) +(1 7 17 45 45 0 0 2 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Calligraphic Brush Tool) +(20 pt Oval) +(1 20 20 20 100 40 80 0 2 1 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Calligraphic Brush Tool) +(25 pt Round ) +(1 10 40 100 100 0 0 2 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Calligraphic Brush Tool) +(50 pt Flat) +(1 40 60 0 0 44 44 0 0 0 0) . +%AI8_EndPluginObject +%AI8_BeginPluginObject +(Adobe Brush Manager Order) +(Adobe Brush Manager Order) +( Adobe Calligraphic Brush Tool/ 6 pt Flat / Adobe Calligraphic Brush T) - +(ool/ 10 pt Oval/ Adobe Calligraphic Brush Tool/ 12 pt Oval / Adobe Cal) - +(ligraphic Brush Tool/ 20 pt Oval/ Adobe Calligraphic Brush Tool/ 25 pt) - +( Round / Adobe Calligraphic Brush Tool/ 50 pt Flat/ Adobe Scatter Brus) - +(h Tool/ Dog Tracks/ Adobe Scatter Brush Tool/ Fall Leaf/ Adobe Scatter) - +( Brush Tool/ Ladybug/ Adobe Scatter Brush Tool/ Push Pin/ Adobe Scatte) - +(r Brush Tool/ Strawberry/ Adobe Scatter Brush Tool/ Twinkle Star / Ado) - +(be ArtOnPath Brush Tool/ Marker/ Adobe ArtOnPath Brush Tool/ Tapered S) - +(troke/ Adobe ArtOnPath Brush Tool/ Arrow/ Adobe ArtOnPath Brush Tool/ ) - +(Paintbrush/ Adobe ArtOnPath Brush Tool/ Type/ Adobe PatternOnPath Brus) - +(h Tool/ Double Lines/ Adobe PatternOnPath Brush Tool/ Laurel/ Adobe Pa) - +(tternOnPath Brush Tool/ Rope /) . +%AI8_EndPluginObject +%AI5_End_NonPrinting-- +%AI5_Begin_NonPrinting +Np +%AI8_PluginGroupInfo +(Adobe Path Blends) (Adobe Blends Plugin) (Live Blends.aip) +%AI8_PluginGroupInfo +(Adobe PatternOnPath Brush Tool) (Adobe Pattern Brush Plugin) (ArtOnPath.aip) +%AI8_PluginGroupInfo +(Adobe ArtOnPath Brush Tool) (Adobe Art Brush Plugin) (ArtOnPath.aip) +%AI8_PluginGroupInfo +(Adobe Calligraphic Brush Tool) (Adobe Calligraphic Brush Plugin) (Calligraphic Brush Tool.aip) +%AI8_PluginGroupInfo +(Adobe Scatter Brush Tool) (Adobe Scatter Brush Plugin) (Scatter Brush Tool.aip) +%AI5_End_NonPrinting-- +%%EndSetup +%AI5_BeginLayer +1 1 1 1 0 0 1 0 79 128 255 0 50 Lb +(Layer 1) Ln +0 A +u 0 O +0 g +800 Ar +0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D +0 XR +%AI5_File: +%AI5_BeginRaster +() 1 XG +[ 0.24 0 0 0.24 289.4404 411.5996 ] 138 130 0 Xh +[ 0.24 0 0 0.24 289.4404 411.5996 ] 0 0 138 130 138 130 1 1 0 0 0 0 +%%BeginBinary +XI +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFA3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD07FFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFF03FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFFFFC +%3FFFFFFF87FFFFFFFFFFFFFFFFFFFFFFFFFE1FFFFFFE01FFFFFFFFFFFFFF +%FFFFFFFFFFFF1FFFFFFC0FFFFFFFFFFFFFFFFFFFFFFFFFFF0FFFFFF83FFF +%FFFFFFFFFFFFFFFFFFFFFFFF8FFFFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFF +%8FFFFFF07FFFFFFFFFFFFFFFFFFFFFFFFFFF87FFFFE0FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFC7FFFFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFC7FFFFC1FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFE3FFFFC1FFFFFFFFFFFFFFFFFFFFFFFFFFFF +%E3FFFF83FFFFFFFFFFFFFFFFFFFFFFFFFFFFE1FFFF83FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFE0FFFF83FFFFFFFFFFFFFFFFFFFFFFFFFFFFF07FFF07FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFF07FFF07FFFFFFFFFFFFFFFFFFFFFFFFFFFF +%F83FFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81FFC0FFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFC0FFC1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE07F03FFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF01F07FFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF80E07FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE001FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFF0017FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80003FFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00000FFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFE00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00000FFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFF00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FF00001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE000007FFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFF010083FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE125021FFFF +%FFFFFFFFFFFFFFFFFFFFFFFFF005AB047FFFFFFFFFFFFFFFFFFFFFFFFFFF +%E00054813FFFFFFFFFFFFFFFFFFFFFFFFFFFE214A9041FFFFFFFFFFFFFFF +%FFFFFFFFFFFF82016A820FFFFFFFFFFFFFFFFFFFFFFFFFFF0514BE090FFF +%FFFFFFFFFFFFFFFFFFFFFFFE400FDE8423FFFFFFFFFFFFFFFFFFFFFFFFF8 +%004FAC4049FFFFFFFFFFFFFFFFFFFFFFFFE0A12FCD8034FFFFFFFFFFFFFF +%FFFFFFFFFFE2502FBC109A7FFFFFFFFFFFFFFFFFFFFFFF89529F9B88ED3F +%FFFFFFFFFFFFFFFFFFFFFF93A8157451B63FFFFFFFFFFFFFFFFFFFFFFF67 +%C01AA9800B1FFFFFFFFFFFFFFFFFFFFFFC9E1008DA909587FFFFFFFFFFFF +%FFFFFFFFFB780C075F0406C3FFFFFFFFFFFFFFFFFFFFF0F616078B010751 +%FFFFFFFFFFFFFFFFFFFFE3CD8A8215482769FFFFFFFFFFFFFFFFFFFFC799 +%450920100BB4FFFFFFFFFFFFFFFFFFFF8F730AC45A004BBA3FFFFFFFFFFF +%FFFFFFFF1EE6C522EC1099DD5FFFFFFFFFFFFFFFFFFE39D6C290CA008DEF +%9FFFFFFFFFFFFFFFFFFCF3DDA5AA04012CEEA7FFFFFFFFFFFFFFFFFCE7AD +%810C2802BEF753FFFFFFFFFFFFFFFFF1CFABB8C008020E77ABFFFFFFFFFF +%FFFFFFF3AF53BD941405473BD5FFFFFFFFFFFFFFFFE75F670042BD08A759 +%EAFFFFFFFFFFFFFFFFC69EAAB2254E0355BDF57FFFFFFFFFFFFFFF8EBEA5 +%1852AD104A9CFABFFFFFFFFFFFFFFF997DAF5E014A064ADEFD5FFFFFFFFF +%FFFFFF3A7D5B292AD5498DDEFEAFFFFFFFFFFFFFFE36FB6F6A938A518A4E +%7E47FFFFFFFFFFFFFE64FB6FB4C000840DEF3EABFFFFFFFFFFFFFC9CF6EF +%7228222295B75F51FFFFFFFFFFFFF949F6EEB961FC092DF7BF69FFFFFFFF +%FFFFF899EEFFBC00D4166DBB2FF4FFFFFFFFFFFFF355EFDEBC7010D86DDA +%A7B87FFFFFFFFFFFF423EDDFF813FDD86ED937BC7FFFFFFFFFFFE6D6CDDE +%A048FA236EDD53BD3FFFFFFFFFFFCD605DDFD024A104569A9BDEBFFFFFFF +%FFFF9BCDA99520121519775C5BDF1FFFFFFFFFFF97D4555194286A640AAA +%EDDF8FFFFFFFFFFF37D5B286A0151450772AEFEECFFFFFFFFFFF2FDDB2AB +%502C6A54652AE8EF57FFFFFFFFFE6FAFF655723654A8776F6EB6A7FFFFFF +%FFFE5FAB6BD7F15D6CB46F6F646F6BFFFFFFFFFCDF6B77BFF42ABCD0676F +%F752B5FFFFFFFFFDBF6A6FD3F12BB1406F6F74D97AFFFFFFFFF9BF6F77BF +%F412C9A07777B775FAFFFFFFFFF97FF66FD3E90F55104F6FB7BDFA7FFFFF +%FFFB7ED6EB9BD093D9C056F7BBFDFD7FFFFFFFF27EE6EFDB9A45AA002B7F +%B1DEFDBFFFFFFFF6FDEEEFDF691295826AB76BDE7E9FFFFFFFF6FDEEFBDA +%98C04818ED55B2FFBEDFFFFFFFECFDEEEFD57A2F40E16BB552EF5FAFFFFF +%FFE5F9EF6BF2B911FA046EAAAB6F6FCFFFFFFFE9FBDEEB95FACA48A95FB5 +%5B6FEFDFFFFFFFE5FBCF53ABF1150554EFB55BF7B7A7FFFFFFD3FBDF6ACF +%E842FAA05FAFDAB7BBF7FFFFFFC3F7DF6DEFCCA90558BFB7F6B7DDD3FFFF +%FFD3F3DF76F79C04BA809FAF97DBDCABFFFFFFC7F7BFB5F73EF04021CBFF +%EEFBDAE9FFFFFFD6F79FB7FE7E0F17E9E62FAF5BDE95FFFFFFC6E7FB9FF9 +%FE25FE83F1D78F7DD579FFFFFFCDD73D43E3FF120153FCBF376B6E94FFFF +%FFC2AEA2A81FFF0552ABFF00AABDAB5AFFFFFFC48A3D21FFFFA9AD47FFE3 +%556AE5B4FFFFFFD16DA253FFFF82B80FFFF856BDAACAFFFFFFC48A5A87FF +%FFC801EFFFFF155576E4FFFFFFD329550FFFFFD75C1FFFFFC3AEADAAFFFF +%FF84926A3FFFFFC0028FFFFFF0755251FFFFFFD35C90FFFFFFE5441FFFFF +%FF0AADA1FFFFFFA01243FFFFFFE0FA1FFFFFFFC00003FFFFFF82540FFFFF +%FFF3043FFFFFFFFFD01FFFFFFFC010FFFFFFFFF1F83FFFFFFFFFFFFFFFFF +%FFC007FFFFFFFFF9707FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9407FFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFC907FFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFE41FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE01FFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +%%EndBinary +XH +%AI5_EndRaster +F /BBAccumRotation (0.000000) XT +U /BBAccumRotation (0.000000) XT +LB +%AI5_EndLayer-- +%%PageTrailer +gsave annotatepage grestore showpage +%%Trailer +Adobe_Illustrator_AI5 /terminate get exec +Adobe_shading_AI8 /terminate get exec +Adobe_ColorImage_AI6 /terminate get exec +Adobe_cshow /terminate get exec +Adobe_level2_AI5 /terminate get exec +%%EOF diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/template/sigproc-sp.aux b/src/trunk/org.gmodel.documentation/articles/0.1/template/sigproc-sp.aux new file mode 100644 index 0000000..9d607b9 --- /dev/null +++ b/src/trunk/org.gmodel.documentation/articles/0.1/template/sigproc-sp.aux @@ -0,0 +1,48 @@ +\relax +\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{\thepage }} +\citation{Lamport:LaTeX} +\citation{Lamport:LaTeX} +\citation{bowman:reasoning} +\citation{clark:pct} +\citation{braams:babel} +\citation{herlihy:methodology} +\citation{clark:pct} +\citation{salas:calculus} +\citation{Lamport:LaTeX} +\citation{Lamport:LaTeX} +\citation{Lamport:LaTeX} +\@writefile{toc}{\contentsline {section}{\numberline {2}The {\secit Body} of The Paper}{\thepage }} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Type Changes and {\subsecit Special} Characters}{\thepage }} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Math Equations}{\thepage }} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.1}Inline (In-text) Equations}{\thepage }} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.2}Display Equations}{\thepage }} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Citations}{\thepage }} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Tables}{\thepage }} +\citation{salas:calculus} +\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Frequency of Special Characters}}{\thepage }} +\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces A sample black and white graphic (.eps format).}}{\thepage }} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.5}Figures}{\thepage }} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.6}Theorem-like Constructs}{\thepage }} +\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces A sample black and white graphic (.eps format) that has been resized with the \texttt {epsfig} command.}}{\thepage }} +\bibstyle{abbrv} +\bibdata{sigproc} +\@writefile{lot}{\contentsline {table}{\numberline {2}{\ignorespaces Some Typical Commands}}{\thepage }} +\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces A sample black and white graphic (.eps format) that needs to span two columns of text.}}{\thepage }} +\@writefile{toc}{\contentsline {section}{\numberline {3}Conclusions}{\thepage }} +\@writefile{toc}{\contentsline {section}{\numberline {4}Acknowledgments}{\thepage }} +\@writefile{toc}{\contentsline {section}{\numberline {A}Headings in Appendices}{\thepage }} +\@writefile{toc}{\contentsline {subsection}{\numberline {A.1}Introduction}{\thepage }} +\@writefile{toc}{\contentsline {subsection}{\numberline {A.2}The Body of the Paper}{\thepage }} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.2.1}Type Changes and Special Characters}{\thepage }} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.2.2}Math Equations}{\thepage }} +\@writefile{toc}{\contentsline {paragraph}{Inline (In-text) Equations}{\thepage }} +\@writefile{toc}{\contentsline {paragraph}{Display Equations}{\thepage }} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.2.3}Citations}{\thepage }} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.2.4}Tables}{\thepage }} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.2.5}Figures}{\thepage }} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.2.6}Theorem-like Constructs}{\thepage }} +\@writefile{toc}{\contentsline {subsection}{\numberline {A.3}Conclusions}{\thepage }} +\@writefile{toc}{\contentsline {subsection}{\numberline {A.4}Acknowledgments}{\thepage }} +\@writefile{toc}{\contentsline {subsection}{\numberline {A.5}Additional Authors}{\thepage }} +\@writefile{toc}{\contentsline {subsection}{\numberline {A.6}References}{\thepage }} +\@writefile{toc}{\contentsline {section}{\numberline {B}More Help for the Hardy}{\thepage }} diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/template/sigproc-sp.dvi b/src/trunk/org.gmodel.documentation/articles/0.1/template/sigproc-sp.dvi new file mode 100644 index 0000000..c8d8409 Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/template/sigproc-sp.dvi differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/template/sigproc-sp.log b/src/trunk/org.gmodel.documentation/articles/0.1/template/sigproc-sp.log new file mode 100644 index 0000000..e09c9ab --- /dev/null +++ b/src/trunk/org.gmodel.documentation/articles/0.1/template/sigproc-sp.log @@ -0,0 +1,347 @@ +This is pdfTeXk, Version 3.1415926-1.40.9 (Web2C 7.5.7) (format=latex 2009.1.5) 29 JUL 2010 09:45 +entering extended mode + %&-line parsing enabled. +**sigproc-sp.tex +(./sigproc-sp.tex +LaTeX2e <2005/12/01> +Babel and hyphenation patterns for english, usenglishmax, dumylang, noh +yphenation, german-x-2008-06-18, ngerman-x-2008-06-18, ancientgreek, ibycus, ar +abic, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danish, dutc +h, esperanto, estonian, farsi, finnish, french, galician, german, ngerman, mono +greek, greek, hungarian, icelandic, indonesian, interlingua, irish, italian, la +tin, lithuanian, mongolian, mongolian2a, bokmal, nynorsk, polish, portuguese, r +omanian, russian, sanskrit, serbian, slovak, slovenian, spanish, swedish, turki +sh, ukenglish, ukrainian, uppersorbian, welsh, loaded. +(./acm_proc_article-sp.cls +(/usr/local/texlive/2008/texmf-dist/tex/latex/graphics/epsfig.sty +Package: epsfig 1999/02/16 v1.7a (e)psfig emulation (SPQR) + +(/usr/local/texlive/2008/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2008/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 1999/03/16 v1.13 key=value parser (DPC) +\KV@toks@=\toks14 +) +(/usr/local/texlive/2008/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2006/02/20 v1.0o Standard LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2008/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 1999/03/16 v1.09 sin cos tan (DPC) +) +(/usr/local/texlive/2008/texmf/tex/latex/config/graphics.cfg +File: graphics.cfg 2007/01/18 v1.5 graphics configuration of teTeX/TeXLive +) +Package graphics Info: Driver file: dvips.def on input line 90. + +(/usr/local/texlive/2008/texmf-dist/tex/latex/graphics/dvips.def +File: dvips.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR) +)) +\Gin@req@height=\dimen102 +\Gin@req@width=\dimen103 +) +\epsfxsize=\dimen104 +\epsfysize=\dimen105 +) +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsfonts/amssymb.sty +Package: amssymb 2002/01/22 v2.2d + +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2001/10/25 v2.2f +\@emptytoks=\toks15 +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 132. +)) +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2000/07/18 v2.13 AMS math features +\@mathmargin=\skip41 + +For additional information on amsmath, use the `?' option. +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 + +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 +\@emptytoks=\toks16 +\ex@=\dimen106 +)) +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d +\pmbraise@=\dimen107 +) +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 1999/12/14 v2.01 operator names +) +\inf@bad=\count79 +LaTeX Info: Redefining \frac on input line 211. +\uproot@=\count80 +\leftroot@=\count81 +LaTeX Info: Redefining \overline on input line 307. +\classnum@=\count82 +\DOTSCASE@=\count83 +LaTeX Info: Redefining \ldots on input line 379. +LaTeX Info: Redefining \dots on input line 382. +LaTeX Info: Redefining \cdots on input line 467. +\Mathstrutbox@=\box26 +\strutbox@=\box27 +\big@size=\dimen108 +LaTeX Font Info: Redeclaring font encoding OML on input line 567. +LaTeX Font Info: Redeclaring font encoding OMS on input line 568. +\macc@depth=\count84 +\c@MaxMatrixCols=\count85 +\dotsspace@=\muskip10 +\c@parentequation=\count86 +\dspbrk@lvl=\count87 +\tag@help=\toks17 +\row@=\count88 +\column@=\count89 +\maxfields@=\count90 +\andhelp@=\toks18 +\eqnshift@=\dimen109 +\alignsep@=\dimen110 +\tagshift@=\dimen111 +\tagwidth@=\dimen112 +\totwidth@=\dimen113 +\lineht@=\dimen114 +\@envbody=\toks19 +\multlinegap=\skip42 +\multlinetaggap=\skip43 +\mathdisplay@stack=\toks20 +LaTeX Info: Redefining \[ on input line 2666. +LaTeX Info: Redefining \] on input line 2667. +) +Document Class 'acm_proc_article-sp' <22nd. April '09>. Modified by G.K.M. Tobi +n +Based in part upon document Style `acmconf' <22 May 89>. Hacked 4/91 by +shivers@cs.cmu.edu, 4/93 by theobald@cs.mcgill.ca +Excerpts were taken from (Journal Style) 'esub2acm.cls'. +****** Bugs/comments/suggestions to Gerry Murray -- murray@hq.acm.org ****** +\footheight=\dimen115 +\@maxsep=\dimen116 +\@dblmaxsep=\dimen117 +\aucount=\count91 +\originalaucount=\count92 +\auwidth=\dimen118 +\auskip=\dimen119 +\auskipcount=\count93 +\auskip=\dimen120 +\allauboxes=\dimen121 +\addauthors=\toks21 +\addauflag=\count94 +\subtitletext=\toks22 +\savesection=\count95 +\sectioncntr=\count96 +\c@figure=\count97 +\c@table=\count98 +\titleboxnotes=\toks23 +\titleboxnoteflag=\count99 +Document Class: acm_proc_article-sp 2009/04/22 - V3.2SP - based on esub2acm.sty + <23 April 96> +(/usr/local/texlive/2008/texmf-dist/tex/latex/base/latexsym.sty +Package: latexsym 1998/08/17 v2.2e Standard LaTeX package (lasy symbols) +\symlasy=\mathgroup6 +LaTeX Font Info: Overwriting symbol font `lasy' in version `bold' +(Font) U/lasy/m/n --> U/lasy/b/n on input line 47. +) +\@acmtitlebox=\box28 +\titlenotecount=\count100 +\tntoks=\toks24 +\tntokstwo=\toks25 +\tntoksthree=\toks26 +\tntoksfour=\toks27 +\tntoksfive=\toks28 +\catcount=\count101 +\copyrightnotice=\toks29 +\conf=\toks30 +\confinfo=\toks31 +\c@part=\count102 +\c@section=\count103 +\c@subsection=\count104 +\c@subsubsection=\count105 +\c@paragraph=\count106 + +Using 'Abbrev' bibliography style +LaTeX Info: Redefining \cite on input line 1236. +\bibindent=\dimen122 +\colcntr=\count107 +\saveb@x=\box29 +\copyrtyr=\toks32 +\acmcopyr=\toks33 +\boilerplate=\toks34 +\copyrightetc=\toks35 +(/usr/local/texlive/2008/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2005/09/27 v1.99g Standard LaTeX package + +(/usr/local/texlive/2008/texmf-dist/tex/latex/base/t1enc.def +File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file +LaTeX Font Info: Redeclaring font encoding T1 on input line 43. +) +LaTeX Font Info: Try loading font information for T1+aer on input line 100. + +(/usr/local/texlive/2008/texmf-dist/tex/latex/ae/t1aer.fd +File: t1aer.fd 1997/11/16 Font definitions for T1/aer. +))) (./sigproc-sp.aux) +\openout1 = `sigproc-sp.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 31. +LaTeX Font Info: ... okay on input line 31. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 31. +LaTeX Font Info: ... okay on input line 31. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 31. +LaTeX Font Info: ... okay on input line 31. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 31. +LaTeX Font Info: ... okay on input line 31. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 31. +LaTeX Font Info: ... okay on input line 31. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 31. +LaTeX Font Info: ... okay on input line 31. +LaTeX Font Info: Try loading font information for U+msa on input line 134. +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2002/01/19 v2.2g AMS font definitions +) +LaTeX Font Info: Try loading font information for U+msb on input line 134. + +(/usr/local/texlive/2008/texmf-dist/tex/latex/amsfonts/umsb.fd +File: umsb.fd 2002/01/19 v2.2g AMS font definitions +) +LaTeX Font Info: Try loading font information for U+lasy on input line 134. + +(/usr/local/texlive/2008/texmf-dist/tex/latex/base/ulasy.fd +File: ulasy.fd 1998/08/17 v2.2e LaTeX symbol font definitions +) +Overfull \hbox (10.71048pt too wide) in paragraph at lines 134--134 + []\eaddfnt lleipuner@researchlabs.org| + [] + + +Underfull \hbox (badness 1418) in paragraph at lines 135--135 +[][]\T1/aer/m/n/9 (Does NOT pro-duce the per-mis-sion block, copy-right + [] + + +Underfull \hbox (badness 6032) in paragraph at lines 135--135 +\T1/aer/m/n/9 in-for-ma-tion nor page num-ber-ing). For use with + [] + +LaTeX Font Info: Try loading font information for T1+aett on input line 135. + +(/usr/local/texlive/2008/texmf-dist/tex/latex/ae/t1aett.fd +File: t1aett.fd 1997/11/16 Font definitions for T1/aett. +) +Overfull \hbox (1.0793pt too wide) in paragraph at lines 136--142 +\T1/aer/m/it/9 Prepar-ing ACM SIG Pro-ceed-ings Us-ing L[]T[]X$\OT1/cmr/m/n/9 2 +[]$ \T1/aer/m/it/9 and BibT[]X\T1/aer/m/n/9 . + [] + + +Underfull \vbox (badness 2680) has occurred while \output is active [] + + +Overfull \hbox (1.26794pt too wide) in paragraph at lines 158--159 +\T1/aer/m/n/9 H.4 [\T1/aer/bx/n/9 Information Sys-tems Ap-pli-ca-tions\T1/aer/m +/n/9 ]: Mis-cel-la-neous; + [] + + +Underfull \hbox (badness 1360) in paragraph at lines 182--182 +[][]\T1/aer/m/n/9 Two of these, the \T1/aett/m/n/9 \num-bero-fau-thors \T1/aer/ +m/n/9 and \T1/aett/m/n/9 \alig-nau- + [] + +[1 + + +] + +LaTeX Warning: Citation `Lamport:LaTeX' on page \thepage undefined on input li +ne 238. + + +LaTeX Warning: Citation `Lamport:LaTeX' on page \thepage undefined on input li +ne 253. + + +LaTeX Warning: Citation `bowman:reasoning' on page \thepage undefined on input + line 279. + + +LaTeX Warning: Citation `clark:pct' on page \thepage undefined on input line 2 +79. + + +LaTeX Warning: Citation `braams:babel' on page \thepage undefined on input lin +e 279. + + +LaTeX Warning: Citation `herlihy:methodology' on page \thepage undefined on in +put line 279. + + +LaTeX Warning: Citation `clark:pct' on page \thepage undefined on input line 2 +81. + + +LaTeX Warning: Citation `salas:calculus' on page \thepage undefined on input l +ine 281. + + +LaTeX Warning: Citation `Lamport:LaTeX' on page \thepage undefined on input li +ne 281. + + +LaTeX Warning: Citation `Lamport:LaTeX' on page \thepage undefined on input li +ne 287. + + +LaTeX Warning: Citation `Lamport:LaTeX' on page \thepage undefined on input li +ne 298. + +[2] +File: fly.eps Graphic file (type eps) + +File: fly.eps Graphic file (type eps) + + +LaTeX Font Warning: Font shape `T1/aett/bx/n' undefined +(Font) using `T1/aett/m/n' instead on input line 381. + +\c@theorem=\count108 + +Underfull \hbox (badness 1603) in paragraph at lines 405--409 +[]\T1/aer/m/n/9 This uses the \T1/aer/bx/n/9 the-o-rem \T1/aer/m/n/9 en-vi-ron- +ment, cre-ated by the + [] + +\c@definition=\count109 +File: flies.eps Graphic file (type eps) + +Overfull \hbox (15.60826pt too wide) detected at line 454 +\OML/cmm/m/it/9 l \OT1/cmr/m/n/9 = [] \OML/cmm/m/it/9 f\OT1/cmr/m/n/9 (\OML/cmm +/m/it/9 x\OT1/cmr/m/n/9 ) = [] [] = [] \OML/cmm/m/it/9 g\OT1/cmr/m/n/9 (\OML/cm +m/m/it/9 x\OT1/cmr/m/n/9 ) \OMS/cmsy/m/n/9 ^^A [] [] \OT1/cmr/m/n/9 = 0 \OMS/cm +sy/m/n/9 ^^A \OML/cmm/m/it/9 L \OT1/cmr/m/n/9 = 0\OML/cmm/m/it/9 ; + [] + + +LaTeX Warning: Citation `salas:calculus' on page \thepage undefined on input l +ine 464. + +[3] +No file sigproc-sp.bbl. +[4] (./sigproc-sp.aux) + +LaTeX Font Warning: Some font shapes were not available, defaults substituted. + + ) +Here is how much of TeX's memory you used: + 1858 strings out of 493877 + 20998 string characters out of 1150592 + 81418 words of memory out of 3000000 + 5117 multiletter control sequences out of 10000+50000 + 45095 words of font info for 55 fonts, out of 3000000 for 5000 + 714 hyphenation exceptions out of 8191 + 39i,12n,26p,228b,310s stack positions out of 5000i,500n,10000p,200000b,50000s + +Output written on sigproc-sp.dvi (4 pages, 26868 bytes). diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/template/sigproc-sp.pdf b/src/trunk/org.gmodel.documentation/articles/0.1/template/sigproc-sp.pdf new file mode 100644 index 0000000..c100833 Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/template/sigproc-sp.pdf differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/template/sigproc-sp.synctex.gz(busy) b/src/trunk/org.gmodel.documentation/articles/0.1/template/sigproc-sp.synctex.gz(busy) new file mode 100644 index 0000000..2eae6a4 Binary files /dev/null and b/src/trunk/org.gmodel.documentation/articles/0.1/template/sigproc-sp.synctex.gz(busy) differ diff --git a/src/trunk/org.gmodel.documentation/articles/0.1/template/sigproc-sp.tex b/src/trunk/org.gmodel.documentation/articles/0.1/template/sigproc-sp.tex new file mode 100644 index 0000000..9d25bdf --- /dev/null +++ b/src/trunk/org.gmodel.documentation/articles/0.1/template/sigproc-sp.tex @@ -0,0 +1,564 @@ +% THIS IS SIGPROC-SP.TEX - VERSION 3.1 +% WORKS WITH V3.2SP OF ACM_PROC_ARTICLE-SP.CLS +% APRIL 2009 +% +% It is an example file showing how to use the 'acm_proc_article-sp.cls' V3.2SP +% LaTeX2e document class file for Conference Proceedings submissions. +% ---------------------------------------------------------------------------------------------------------------- +% This .tex file (and associated .cls V3.2SP) *DOES NOT* produce: +% 1) The Permission Statement +% 2) The Conference (location) Info information +% 3) The Copyright Line with ACM data +% 4) Page numbering +% --------------------------------------------------------------------------------------------------------------- +% It is an example which *does* use the .bib file (from which the .bbl file +% is produced). +% REMEMBER HOWEVER: After having produced the .bbl file, +% and prior to final submission, +% you need to 'insert' your .bbl file into your source .tex file so as to provide +% ONE 'self-contained' source file. +% +% Questions regarding SIGS should be sent to +% Adrienne Griscti ---> griscti@acm.org +% +% Questions/suggestions regarding the guidelines, .tex and .cls files, etc. to +% Gerald Murray ---> murray@hq.acm.org +% +% For tracking purposes - this is V3.1SP - APRIL 2009 + +\documentclass{acm_proc_article-sp} + +\begin{document} + +\title{A Sample {\ttlit ACM} SIG Proceedings Paper in LaTeX +Format\titlenote{(Does NOT produce the permission block, copyright information nor page numbering). For use with ACM\_PROC\_ARTICLE-SP.CLS. Supported by ACM.}} +\subtitle{[Extended Abstract] +\titlenote{A full version of this paper is available as +\textit{Author's Guide to Preparing ACM SIG Proceedings Using +\LaTeX$2_\epsilon$\ and BibTeX} at +\texttt{www.acm.org/eaddress.htm}}} +% +% You need the command \numberofauthors to handle the 'placement +% and alignment' of the authors beneath the title. +% +% For aesthetic reasons, we recommend 'three authors at a time' +% i.e. three 'name/affiliation blocks' be placed beneath the title. +% +% NOTE: You are NOT restricted in how many 'rows' of +% "name/affiliations" may appear. We just ask that you restrict +% the number of 'columns' to three. +% +% Because of the available 'opening page real-estate' +% we ask you to refrain from putting more than six authors +% (two rows with three columns) beneath the article title. +% More than six makes the first-page appear very cluttered indeed. +% +% Use the \alignauthor commands to handle the names +% and affiliations for an 'aesthetic maximum' of six authors. +% Add names, affiliations, addresses for +% the seventh etc. author(s) as the argument for the +% \additionalauthors command. +% These 'additional authors' will be output/set for you +% without further effort on your part as the last section in +% the body of your article BEFORE References or any Appendices. + +\numberofauthors{8} % in this sample file, there are a *total* +% of EIGHT authors. SIX appear on the 'first-page' (for formatting +% reasons) and the remaining two appear in the \additionalauthors section. +% +\author{ +% You can go ahead and credit any number of authors here, +% e.g. one 'row of three' or two rows (consisting of one row of three +% and a second row of one, two or three). +% +% The command \alignauthor (no curly braces needed) should +% precede each author name, affiliation/snail-mail address and +% e-mail address. Additionally, tag each line of +% affiliation/address with \affaddr, and tag the +% e-mail address with \email. +% +% 1st. author +\alignauthor +Ben Trovato\titlenote{Dr.~Trovato insisted his name be first.}\\ + \affaddr{Institute for Clarity in Documentation}\\ + \affaddr{1932 Wallamaloo Lane}\\ + \affaddr{Wallamaloo, New Zealand}\\ + \email{trovato@corporation.com} +% 2nd. author +\alignauthor +G.K.M. Tobin\titlenote{The secretary disavows +any knowledge of this author's actions.}\\ + \affaddr{Institute for Clarity in Documentation}\\ + \affaddr{P.O. Box 1212}\\ + \affaddr{Dublin, Ohio 43017-6221}\\ + \email{webmaster@marysville-ohio.com} +% 3rd. author +\alignauthor Lars Th{\o}rv{\"a}ld\titlenote{This author is the +one who did all the really hard work.}\\ + \affaddr{The Th{\o}rv{\"a}ld Group}\\ + \affaddr{1 Th{\o}rv{\"a}ld Circle}\\ + \affaddr{Hekla, Iceland}\\ + \email{larst@affiliation.org} +\and % use '\and' if you need 'another row' of author names +% 4th. author +\alignauthor Lawrence P. Leipuner\\ + \affaddr{Brookhaven Laboratories}\\ + \affaddr{Brookhaven National Lab}\\ + \affaddr{P.O. Box 5000}\\ + \email{lleipuner@researchlabs.org} +% 5th. author +\alignauthor Sean Fogarty\\ + \affaddr{NASA Ames Research Center}\\ + \affaddr{Moffett Field}\\ + \affaddr{California 94035}\\ + \email{fogartys@amesres.org} +% 6th. author +\alignauthor Charles Palmer\\ + \affaddr{Palmer Research Laboratories}\\ + \affaddr{8600 Datapoint Drive}\\ + \affaddr{San Antonio, Texas 78229}\\ + \email{cpalmer@prl.com} +} +% There's nothing stopping you putting the seventh, eighth, etc. +% author on the opening page (as the 'third row') but we ask, +% for aesthetic reasons that you place these 'additional authors' +% in the \additional authors block, viz. +\additionalauthors{Additional authors: John Smith (The Th{\o}rv{\"a}ld Group, +email: {\texttt{jsmith@affiliation.org}}) and Julius P.~Kumquat +(The Kumquat Consortium, email: {\texttt{jpkumquat@consortium.net}}).} +\date{30 July 1999} +% Just remember to make sure that the TOTAL number of authors +% is the number that will appear on the first page PLUS the +% number that will appear in the \additionalauthors section. + +\maketitle +\begin{abstract} +This paper provides a sample of a \LaTeX\ document which conforms to +the formatting guidelines for ACM SIG Proceedings. +It complements the document \textit{Author's Guide to Preparing +ACM SIG Proceedings Using \LaTeX$2_\epsilon$\ and Bib\TeX}. This +source file has been written with the intention of being +compiled under \LaTeX$2_\epsilon$\ and BibTeX. + +The developers have tried to include every imaginable sort +of ``bells and whistles", such as a subtitle, footnotes on +title, subtitle and authors, as well as in the text, and +every optional component (e.g. Acknowledgments, Additional +Authors, Appendices), not to mention examples of +equations, theorems, tables and figures. + +To make best use of this sample document, run it through \LaTeX\ +and BibTeX, and compare this source code with the printed +output produced by the dvi file. +\end{abstract} + +% A category with the (minimum) three required fields +\category{H.4}{Information Systems Applications}{Miscellaneous} +%A category including the fourth, optional field follows... +\category{D.2.8}{Software Engineering}{Metrics}[complexity measures, performance measures] + +\terms{Theory} + +\keywords{ACM proceedings, \LaTeX, text tagging} % NOT required for Proceedings + +\section{Introduction} +The \textit{proceedings} are the records of a conference. +ACM seeks to give these conference by-products a uniform, +high-quality appearance. To do this, ACM has some rigid +requirements for the format of the proceedings documents: there +is a specified format (balanced double columns), a specified +set of fonts (Arial or Helvetica and Times Roman) in +certain specified sizes (for instance, 9 point for body copy), +a specified live area (18 $\times$ 23.5 cm [7" $\times$ 9.25"]) centered on +the page, specified size of margins (2.54cm [1"] top and +bottom and 1.9cm [.75"] left and right; specified column width +(8.45cm [3.33"]) and gutter size (.083cm [.33"]). + +The good news is, with only a handful of manual +settings\footnote{Two of these, the {\texttt{\char'134 numberofauthors}} +and {\texttt{\char'134 alignauthor}} commands, you have +already used; another, {\texttt{\char'134 balancecolumns}}, will +be used in your very last run of \LaTeX\ to ensure +balanced column heights on the last page.}, the \LaTeX\ document +class file handles all of this for you. + +The remainder of this document is concerned with showing, in +the context of an ``actual'' document, the \LaTeX\ commands +specifically available for denoting the structure of a +proceedings paper, rather than with giving rigorous descriptions +or explanations of such commands. + +\section{The {\secit Body} of The Paper} +Typically, the body of a paper is organized +into a hierarchical structure, with numbered or unnumbered +headings for sections, subsections, sub-subsections, and even +smaller sections. The command \texttt{{\char'134}section} that +precedes this paragraph is part of such a +hierarchy.\footnote{This is the second footnote. It +starts a series of three footnotes that add nothing +informational, but just give an idea of how footnotes work +and look. It is a wordy one, just so you see +how a longish one plays out.} \LaTeX\ handles the numbering +and placement of these headings for you, when you use +the appropriate heading commands around the titles +of the headings. If you want a sub-subsection or +smaller part to be unnumbered in your output, simply append an +asterisk to the command name. Examples of both +numbered and unnumbered headings will appear throughout the +balance of this sample document. + +Because the entire article is contained in +the \textbf{document} environment, you can indicate the +start of a new paragraph with a blank line in your +input file; that is why this sentence forms a separate paragraph. + +\subsection{Type Changes and {\subsecit Special} Characters} +We have already seen several typeface changes in this sample. You +can indicate italicized words or phrases in your text with +the command \texttt{{\char'134}textit}; emboldening with the +command \texttt{{\char'134}textbf} +and typewriter-style (for instance, for computer code) with +\texttt{{\char'134}texttt}. But remember, you do not +have to indicate typestyle changes when such changes are +part of the \textit{structural} elements of your +article; for instance, the heading of this subsection will +be in a sans serif\footnote{A third footnote, here. +Let's make this a rather short one to +see how it looks.} typeface, but that is handled by the +document class file. Take care with the use +of\footnote{A fourth, and last, footnote.} +the curly braces in typeface changes; they mark +the beginning and end of +the text that is to be in the different typeface. + +You can use whatever symbols, accented characters, or +non-English characters you need anywhere in your document; +you can find a complete list of what is +available in the \textit{\LaTeX\ +User's Guide}\cite{Lamport:LaTeX}. + +\subsection{Math Equations} +You may want to display math equations in three distinct styles: +inline, numbered or non-numbered display. Each of +the three are discussed in the next sections. + +\subsubsection{Inline (In-text) Equations} +A formula that appears in the running text is called an +inline or in-text formula. It is produced by the +\textbf{math} environment, which can be +invoked with the usual \texttt{{\char'134}begin. . .{\char'134}end} +construction or with the short form \texttt{\$. . .\$}. You +can use any of the symbols and structures, +from $\alpha$ to $\omega$, available in +\LaTeX\cite{Lamport:LaTeX}; this section will simply show a +few examples of in-text equations in context. Notice how +this equation: \begin{math}\lim_{n\rightarrow \infty}x=0\end{math}, +set here in in-line math style, looks slightly different when +set in display style. (See next section). + +\subsubsection{Display Equations} +A numbered display equation -- one set off by vertical space +from the text and centered horizontally -- is produced +by the \textbf{equation} environment. An unnumbered display +equation is produced by the \textbf{displaymath} environment. + +Again, in either environment, you can use any of the symbols +and structures available in \LaTeX; this section will just +give a couple of examples of display equations in context. +First, consider the equation, shown as an inline equation above: +\begin{equation}\lim_{n\rightarrow \infty}x=0\end{equation} +Notice how it is formatted somewhat differently in +the \textbf{displaymath} +environment. Now, we'll enter an unnumbered equation: +\begin{displaymath}\sum_{i=0}^{\infty} x + 1\end{displaymath} +and follow it with another numbered equation: +\begin{equation}\sum_{i=0}^{\infty}x_i=\int_{0}^{\pi+2} f\end{equation} +just to demonstrate \LaTeX's able handling of numbering. + +\subsection{Citations} +Citations to articles \cite{bowman:reasoning, clark:pct, braams:babel, herlihy:methodology}, +conference +proceedings \cite{clark:pct} or books \cite{salas:calculus, Lamport:LaTeX} listed +in the Bibliography section of your +article will occur throughout the text of your article. +You should use BibTeX to automatically produce this bibliography; +you simply need to insert one of several citation commands with +a key of the item cited in the proper location in +the \texttt{.tex} file \cite{Lamport:LaTeX}. +The key is a short reference you invent to uniquely +identify each work; in this sample document, the key is +the first author's surname and a +word from the title. This identifying key is included +with each item in the \texttt{.bib} file for your article. + +The details of the construction of the \texttt{.bib} file +are beyond the scope of this sample document, but more +information can be found in the \textit{Author's Guide}, +and exhaustive details in the \textit{\LaTeX\ User's +Guide}\cite{Lamport:LaTeX}. + +This article shows only the plainest form +of the citation command, using \texttt{{\char'134}cite}. +This is what is stipulated in the SIGS style specifications. +No other citation format is endorsed. + +\subsection{Tables} +Because tables cannot be split across pages, the best +placement for them is typically the top of the page +nearest their initial cite. To +ensure this proper ``floating'' placement of tables, use the +environment \textbf{table} to enclose the table's contents and +the table caption. The contents of the table itself must go +in the \textbf{tabular} environment, to +be aligned properly in rows and columns, with the desired +horizontal and vertical rules. Again, detailed instructions +on \textbf{tabular} material +is found in the \textit{\LaTeX\ User's Guide}. + +Immediately following this sentence is the point at which +Table 1 is included in the input file; compare the +placement of the table here with the table in the printed +dvi output of this document. + +\begin{table} +\centering +\caption{Frequency of Special Characters} +\begin{tabular}{|c|c|l|} \hline +Non-English or Math&Frequency&Comments\\ \hline +\O & 1 in 1,000& For Swedish names\\ \hline +$\pi$ & 1 in 5& Common in math\\ \hline +\$ & 4 in 5 & Used in business\\ \hline +$\Psi^2_1$ & 1 in 40,000& Unexplained usage\\ +\hline\end{tabular} +\end{table} + +To set a wider table, which takes up the whole width of +the page's live area, use the environment +\textbf{table*} to enclose the table's contents and +the table caption. As with a single-column table, this wide +table will ``float" to a location deemed more desirable. +Immediately following this sentence is the point at which +Table 2 is included in the input file; again, it is +instructive to compare the placement of the +table here with the table in the printed dvi +output of this document. + + +\begin{table*} +\centering +\caption{Some Typical Commands} +\begin{tabular}{|c|c|l|} \hline +Command&A Number&Comments\\ \hline +\texttt{{\char'134}alignauthor} & 100& Author alignment\\ \hline +\texttt{{\char'134}numberofauthors}& 200& Author enumeration\\ \hline +\texttt{{\char'134}table}& 300 & For tables\\ \hline +\texttt{{\char'134}table*}& 400& For wider tables\\ \hline\end{tabular} +\end{table*} +% end the environment with {table*}, NOTE not {table}! + +\subsection{Figures} +Like tables, figures cannot be split across pages; the +best placement for them +is typically the top or the bottom of the page nearest +their initial cite. To ensure this proper ``floating'' placement +of figures, use the environment +\textbf{figure} to enclose the figure and its caption. + +This sample document contains examples of \textbf{.eps} +and \textbf{.ps} files to be displayable with \LaTeX. More +details on each of these is found in the \textit{Author's Guide}. + +\begin{figure} +\centering +\epsfig{file=fly.eps} +\caption{A sample black and white graphic (.eps format).} +\end{figure} + +\begin{figure} +\centering +\epsfig{file=fly.eps, height=1in, width=1in} +\caption{A sample black and white graphic (.eps format) +that has been resized with the \texttt{epsfig} command.} +\end{figure} + + +As was the case with tables, you may want a figure +that spans two columns. To do this, and still to +ensure proper ``floating'' placement of tables, use the environment +\textbf{figure*} to enclose the figure and its caption. + +Note that either {\textbf{.ps}} or {\textbf{.eps}} formats are +used; use +the \texttt{{\char'134}epsfig} or \texttt{{\char'134}psfig} +commands as appropriate for the different file types. + +\subsection{Theorem-like Constructs} +Other common constructs that may occur in your article are +the forms for logical constructs like theorems, axioms, +corollaries and proofs. There are +two forms, one produced by the +command \texttt{{\char'134}newtheorem} and the +other by the command \texttt{{\char'134}newdef}; perhaps +the clearest and easiest way to distinguish them is +to compare the two in the output of this sample document: + +This uses the \textbf{theorem} environment, created by +the\linebreak\texttt{{\char'134}newtheorem} command: +\newtheorem{theorem}{Theorem} +\begin{theorem} +Let $f$ be continuous on $[a,b]$. If $G$ is +an antiderivative for $f$ on $[a,b]$, then +\begin{displaymath}\int^b_af(t)dt = G(b) - G(a).\end{displaymath} +\end{theorem} + +The other uses the \textbf{definition} environment, created +by the \texttt{{\char'134}newdef} command: +\newdef{definition}{Definition} +\begin{definition} +If $z$ is irrational, then by $e^z$ we mean the +unique number which has +logarithm $z$: \begin{displaymath}{\log e^z = z}\end{displaymath} +\end{definition} + +Two lists of constructs that use one of these +forms is given in the +\textit{Author's Guidelines}. + +\begin{figure*} +\centering +\epsfig{file=flies.eps} +\caption{A sample black and white graphic (.eps format) +that needs to span two columns of text.} +\end{figure*} +and don't forget to end the environment with +{figure*}, not {figure}! + +There is one other similar construct environment, which is +already set up +for you; i.e. you must \textit{not} use +a \texttt{{\char'134}newdef} command to +create it: the \textbf{proof} environment. Here +is a example of its use: +\begin{proof} +Suppose on the contrary there exists a real number $L$ such that +\begin{displaymath} +\lim_{x\rightarrow\infty} \frac{f(x)}{g(x)} = L. +\end{displaymath} +Then +\begin{displaymath} +l=\lim_{x\rightarrow c} f(x) += \lim_{x\rightarrow c} +\left[ g{x} \cdot \frac{f(x)}{g(x)} \right ] += \lim_{x\rightarrow c} g(x) \cdot \lim_{x\rightarrow c} +\frac{f(x)}{g(x)} = 0\cdot L = 0, +\end{displaymath} +which contradicts our assumption that $l\neq 0$. +\end{proof} + +Complete rules about using these environments and using the +two different creation commands are in the +\textit{Author's Guide}; please consult it for more +detailed instructions. If you need to use another construct, +not listed therein, which you want to have the same +formatting as the Theorem +or the Definition\cite{salas:calculus} shown above, +use the \texttt{{\char'134}newtheorem} or the +\texttt{{\char'134}newdef} command, +respectively, to create it. + +\subsection*{A {\secit Caveat} for the \TeX\ Expert} +Because you have just been given permission to +use the \texttt{{\char'134}newdef} command to create a +new form, you might think you can +use \TeX's \texttt{{\char'134}def} to create a +new command: \textit{Please refrain from doing this!} +Remember that your \LaTeX\ source code is primarily intended +to create camera-ready copy, but may be converted +to other forms -- e.g. HTML. If you inadvertently omit +some or all of the \texttt{{\char'134}def}s recompilation will +be, to say the least, problematic. + +\section{Conclusions} +This paragraph will end the body of this sample document. +Remember that you might still have Acknowledgments or +Appendices; brief samples of these +follow. There is still the Bibliography to deal with; and +we will make a disclaimer about that here: with the exception +of the reference to the \LaTeX\ book, the citations in +this paper are to articles which have nothing to +do with the present subject and are used as +examples only. +%\end{document} % This is where a 'short' article might terminate + +%ACKNOWLEDGMENTS are optional +\section{Acknowledgments} +This section is optional; it is a location for you +to acknowledge grants, funding, editing assistance and +what have you. In the present case, for example, the +authors would like to thank Gerald Murray of ACM for +his help in codifying this \textit{Author's Guide} +and the \textbf{.cls} and \textbf{.tex} files that it describes. + +% +% The following two commands are all you need in the +% initial runs of your .tex file to +% produce the bibliography for the citations in your paper. +\bibliographystyle{abbrv} +\bibliography{sigproc} % sigproc.bib is the name of the Bibliography in this case +% You must have a proper ".bib" file +% and remember to run: +% latex bibtex latex latex +% to resolve all references +% +% ACM needs 'a single self-contained file'! +% +%APPENDICES are optional +%\balancecolumns +\appendix +%Appendix A +\section{Headings in Appendices} +The rules about hierarchical headings discussed above for +the body of the article are different in the appendices. +In the \textbf{appendix} environment, the command +\textbf{section} is used to +indicate the start of each Appendix, with alphabetic order +designation (i.e. the first is A, the second B, etc.) and +a title (if you include one). So, if you need +hierarchical structure +\textit{within} an Appendix, start with \textbf{subsection} as the +highest level. Here is an outline of the body of this +document in Appendix-appropriate form: +\subsection{Introduction} +\subsection{The Body of the Paper} +\subsubsection{Type Changes and Special Characters} +\subsubsection{Math Equations} +\paragraph{Inline (In-text) Equations} +\paragraph{Display Equations} +\subsubsection{Citations} +\subsubsection{Tables} +\subsubsection{Figures} +\subsubsection{Theorem-like Constructs} +\subsubsection*{A Caveat for the \TeX\ Expert} +\subsection{Conclusions} +\subsection{Acknowledgments} +\subsection{Additional Authors} +This section is inserted by \LaTeX; you do not insert it. +You just add the names and information in the +\texttt{{\char'134}additionalauthors} command at the start +of the document. +\subsection{References} +Generated by bibtex from your ~.bib file. Run latex, +then bibtex, then latex twice (to resolve references) +to create the ~.bbl file. Insert that ~.bbl file into +the .tex source file and comment out +the command \texttt{{\char'134}thebibliography}. +% This next section command marks the start of +% Appendix B, and does not continue the present hierarchy +\section{More Help for the Hardy} +The acm\_proc\_article-sp document class file itself is chock-full of succinct +and helpful comments. If you consider yourself a moderately +experienced to expert user of \LaTeX, you may find reading +it useful but please remember not to change it. +\balancecolumns +% That's all folks! +\end{document} diff --git a/src/trunk/org.gmodel.documentation/progdoc/pdhighlight b/src/trunk/org.gmodel.documentation/progdoc/pdhighlight new file mode 100644 index 0000000..ba397e9 Binary files /dev/null and b/src/trunk/org.gmodel.documentation/progdoc/pdhighlight differ diff --git a/src/trunk/org.gmodel.documentation/progdoc/pdlsthighlight b/src/trunk/org.gmodel.documentation/progdoc/pdlsthighlight new file mode 100644 index 0000000..a526888 Binary files /dev/null and b/src/trunk/org.gmodel.documentation/progdoc/pdlsthighlight differ diff --git a/src/trunk/org.gmodel.documentation/progdoc/pdweave b/src/trunk/org.gmodel.documentation/progdoc/pdweave new file mode 100644 index 0000000..9c93ef6 --- /dev/null +++ b/src/trunk/org.gmodel.documentation/progdoc/pdweave @@ -0,0 +1,552 @@ +#!/usr/bin/awk -f + +#/****************************************************************************/ +#/* */ +#/* (c) 1997,89,99 by vhs-soft */ +#/* */ +#/* $Id: pdweave.awk,v 1.21 2003/03/03 13:23:24 volker Exp $ +#/* */ +#/* This file is distributed under the GNU Public License */ +#/* */ +#/* Volker Simonis email : simonis@informatik.uni-tuebingen.de */ +#/* */ +#/****************************************************************************/ + +function error(errNo) { + cvs_version = "$Revision: 1.21 $"; + cvs_version = substr(cvs_version, index(cvs_version, " ") + 1); + cvs_version = substr(cvs_version, 1, index(cvs_version, " ")); + if (errNo == 1) { + printf("\npdweave error : one argument required.\n\n") } + else if (errNo == 2) { + printf("\npdweave error : can't open \"%s\".\n\n", ARGV[1]) } + else if (errNo == 3) { + printf("\npdweave error : input file wasn't a \".pd\" file.\n\n") } + else if (errNo == 4) { + printf("\npdweave error : can't open source file \"%s\".\n\n", + realSourceFile)} + else if (errNo == 5) { + printf("\n\\sourceinput error : "); + printf("You must supply at least 2 parameters.\n\n")} + else if (errNo == 6) { + printf("\npdweave error : can't find label \"%s\" in file \"%s\".\n\n", + example, realSourceFile)} + printf("pdweave %s\n\n", cvs_version); + printf("usage : pdweave file.pd\n"); + printf(" where file.pd is a latex file with the special\n"); + printf(" \\sourceinput command, which will be replaced by the\n"); + printf(" actual sourcecode an written to a file named file.tex\n"); + exit -1; +} + +# This function tries to make a primitive name mangling in order to ensure +# unique labels in the created source listing. Every listing gets a label +# which is composed out of the string 'ProgDoc' the source file name and +# the tagname. Additionally, characters in this labelname which can cause +# problems in Tex are relpaced by a 'X'. +function makeLabel(tagname) { + tagname = "ProgDoc" sourceFile tagname; + gsub(/\\/, "X", tagname); + gsub(/\//, "X", tagname); + gsub(/\./, "X", tagname); + gsub(/_/, "X", tagname); + gsub(/~/, "X", tagname); + return tagname; +} + +# This function parses the optional arguments common to the +# "\sourcebegin" and "\sourceinput" commands. +function parseArguments() { + label = 0; + fontname = 0; + fontenc = 0; + fontsize = 0; + linesep = 0; + center = 0; + underline = 0; + listing = 0; + listingType = 0; + linenr = 0; + type = 0; + count = 0; + caption = 0; + highlighter = 0; + useLongtable = 0; + comment=0; + wrap = 0; + TAB = 8; + # All arguments enclosed between apostrophs ('') will be handeled like a + # single parameter. Inbetween the apostrophs an apostroph character can be + # used by quoting it with a slash (\'). + # In order to handle this we first replace all strings between apostrophs + # by placeholders of the form "_____n_____", where 'n' is a number between + # 0 and 9, and remember the original strings in the array 'repl'. + while (match($2, /'([^']|\\')*'/)) { + repl[count] = gensub(/\\'/, "'", "g", substr($2, RSTART+1, RLENGTH-2));#" + sub(/'([^']|\\')*'/, "_____" count "_____", $2); + count++; + } + nrArgs = split($2, optArg, ","); + for (i=1;i<=nrArgs;i++) { + optArg[i] = " " optArg[i]; + nrOfFields = split(optArg[i], optArgVal, "[ \t=]+"); + # If the argument was a string enclosed by apostrophs, we redo the + # substitution which was done before and restore the old value of the + # parameter string. + if (nrOfFields == 3 && match(optArgVal[3], /_____[0-9]_____/)) { + optArgVal[3] = repl[gensub(/_____/, "", "g", optArgVal[3])]; + } + if (index(optArg[i], "label")) label = optArgVal[3]; + if (index(optArg[i], "fontname")) fontname = optArgVal[3]; + if (index(optArg[i], "fontenc")) fontenc = optArgVal[3]; + if (index(optArg[i], "fontsize")) fontsize = optArgVal[3]; + if (index(optArg[i], "linesep")) linesep = optArgVal[3]; + if (index(optArg[i], "listing")) { + listing = 1; + if (nrOfFields == 3 && optArgVal[3] == "noUnderline") + listingType = "noUnderline"; + } + if (index(optArg[i], "linenr")) linenr = 1; + if (index(optArg[i], "center")) center = 1; + if (index(optArg[i], "useLongtable")) useLongtable = 1; + if (index(optArg[i], "underline")) underline = 1; + if (index(optArg[i], "type")) type = optArgVal[3]; + if (index(optArg[i], "caption")) caption = optArgVal[3]; + if (index(optArg[i], "wrap")) wrap = optArgVal[3]; + if (index(optArg[i], "highlighter")) highlighter = optArgVal[3]; + if (index(optArg[i], "comment")) comment = optArgVal[3]; + if (index(optArg[i], "tab")) TAB = optArgVal[3]; + } + if (highlighter != 0) { + CPP2L_CMD = highlighter; + } + else { + CPP2L_CMD = CPP2L_CMD_DEFAULT; + } + if (CPP2L_CMD == "pdhighlight") { + wrapChar = "\\\037"; + } + else if (index(CPP2L_CMD, "pdlsthighlight")) { + wrapChar = "&@!&$\\hookleftarrow$@"; + } +} + +# This function converts the type argument of the +# "\sourcebegin" and "\sourceinput" commands into a valid 'pdhighlight' +# argument. If the 'type' argument is not supported, 'pdhighlight' will be +# called with the 'text-mode' option. +function typeName(typeArg) { + if (typeArg == "c") typeArg = "c-mode"; + else if (typeArg == "cpp") typeArg = "cpp-mode"; + else if (typeArg == "java") typeArg = "java-mode"; + else if (typeArg == "text") typeArg = "text-mode"; + else if (typeArg == "xml") typeArg = "xml-mode"; + else if (typeArg == "scm") typeArg = "scheme-mode"; + else if (typeArg == "el") typeArg = "elisp-mode"; + else typeArg = "text-mode"; + return typeArg; +} + +# This function returns true if its argument is the token which +# begins a comment in the actual language-mode (determined by the +# 'type' variable). If 'type' was not set by the user C/C++ mode is assumed. +function beginComment(token) { + if (comment && token == comment) return 1; + if (!type) mode = "cpp"; else mode = type; + if (mode == "cpp" || mode == "C++" || mode == "c" || mode == "C" || + mode == "java" || mode == "Java" ) + if (token == "/*" || token == "//") return 1; else return 0; + else if (mode == "xml") + if (token == " + + + + + + + + + diff --git a/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/CustomField-0.9.3.jar b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/CustomField-0.9.3.jar new file mode 100644 index 0000000..0f16e6b Binary files /dev/null and b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/CustomField-0.9.3.jar differ diff --git a/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/activation.jar b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/activation.jar new file mode 100644 index 0000000..e31e71c Binary files /dev/null and b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/activation.jar differ diff --git a/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/commons-codec-1.4.jar b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/commons-codec-1.4.jar new file mode 100644 index 0000000..458d432 Binary files /dev/null and b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/commons-codec-1.4.jar differ diff --git a/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/commons-collections-3.2.1.jar b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/commons-collections-3.2.1.jar new file mode 100644 index 0000000..c35fa1f Binary files /dev/null and b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/commons-collections-3.2.1.jar differ diff --git a/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/commons-dbcp-1.3.jar b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/commons-dbcp-1.3.jar new file mode 100644 index 0000000..d293397 Binary files /dev/null and b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/commons-dbcp-1.3.jar differ diff --git a/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/commons-io-1.4.jar b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/commons-io-1.4.jar new file mode 100644 index 0000000..133dc6c Binary files /dev/null and b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/commons-io-1.4.jar differ diff --git a/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/commons-lang-2.6.jar b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/commons-lang-2.6.jar new file mode 100644 index 0000000..98467d3 Binary files /dev/null and b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/commons-lang-2.6.jar differ diff --git a/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/commons-pool-1.5.5.jar b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/commons-pool-1.5.5.jar new file mode 100644 index 0000000..7a96587 Binary files /dev/null and b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/commons-pool-1.5.5.jar differ diff --git a/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/icepush-0.2.1.jar b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/icepush-0.2.1.jar new file mode 100644 index 0000000..573ddc4 Binary files /dev/null and b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/icepush-0.2.1.jar differ diff --git a/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/icepush-gwt.jar b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/icepush-gwt.jar new file mode 100644 index 0000000..b6930ab Binary files /dev/null and b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/icepush-gwt.jar differ diff --git a/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/icepush.jar b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/icepush.jar new file mode 100644 index 0000000..a11be37 Binary files /dev/null and b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/icepush.jar differ diff --git a/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/javax.xml.stream.jar b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/javax.xml.stream.jar new file mode 100644 index 0000000..87ff1c1 Binary files /dev/null and b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/javax.xml.stream.jar differ diff --git a/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/jaxb-api-2.0.jar b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/jaxb-api-2.0.jar new file mode 100644 index 0000000..bcc7119 Binary files /dev/null and b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/jaxb-api-2.0.jar differ diff --git a/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/jaxb-impl-2.0.jar b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/jaxb-impl-2.0.jar new file mode 100644 index 0000000..428119e Binary files /dev/null and b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/jaxb-impl-2.0.jar differ diff --git a/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/jetlang-0.2.1.jar b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/jetlang-0.2.1.jar new file mode 100644 index 0000000..194ac15 Binary files /dev/null and b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/jetlang-0.2.1.jar differ diff --git a/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/mysql-connector-java-5.1.15-bin.jar b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/mysql-connector-java-5.1.15-bin.jar new file mode 100644 index 0000000..560c5f0 Binary files /dev/null and b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/mysql-connector-java-5.1.15-bin.jar differ diff --git a/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/org.apache.xerces_2.9.0.v201005080400.jar b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/org.apache.xerces_2.9.0.v201005080400.jar new file mode 100644 index 0000000..2c491db Binary files /dev/null and b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/org.apache.xerces_2.9.0.v201005080400.jar differ diff --git a/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/rabbitmq-client.jar b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/rabbitmq-client.jar new file mode 100644 index 0000000..d91143d Binary files /dev/null and b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/rabbitmq-client.jar differ diff --git a/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/vaadin-6.6.0.jar b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/vaadin-6.6.0.jar new file mode 100644 index 0000000..43e2fc3 Binary files /dev/null and b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/lib/vaadin-6.6.0.jar differ diff --git a/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/web.xml b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..d52c1cd --- /dev/null +++ b/src/trunk/org.gmodel.editor.semanticdomain/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,51 @@ + + + org.gmodel.editor.semanticdomain + + + Vaadin production mode + productionMode + false + + + Gmodel Editor + com.vaadin.terminal.gwt.server.ApplicationServlet + + + + + Vaadin application class to start + application + org.gmodel.editor.semanticdomain.Editor + + + + Application widgetset + widgetset + org.gmodel.editor.semanticdomain.widgetset.Org_gmodel_editor_semanticdomainWidgetset + + + + icepush + org.icepush.servlet.ICEpushServlet + 1 + + + icepush + *.icepush + + + Gmodel Editor + /* + + + index.html + index.htm + index.jsp + default.html + default.htm + default.jsp + + diff --git a/src/trunk/org.gmodel.hibernateosgi/.classpath b/src/trunk/org.gmodel.hibernateosgi/.classpath new file mode 100644 index 0000000..d42e216 --- /dev/null +++ b/src/trunk/org.gmodel.hibernateosgi/.classpath @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/trunk/org.gmodel.hibernateosgi/.project b/src/trunk/org.gmodel.hibernateosgi/.project new file mode 100644 index 0000000..5e86033 --- /dev/null +++ b/src/trunk/org.gmodel.hibernateosgi/.project @@ -0,0 +1,38 @@ + + + org.gmodel.hibernateosgi + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.sse.core.structuredbuilder + + + + + com.ibm.sse.model.structuredbuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/src/trunk/org.gmodel.hibernateosgi/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.hibernateosgi/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..a4a9f39 --- /dev/null +++ b/src/trunk/org.gmodel.hibernateosgi/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,8 @@ +#Fri Sep 17 01:35:43 CEST 2010 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.hibernateosgi/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.hibernateosgi/META-INF/MANIFEST.MF new file mode 100644 index 0000000..78b24c3 --- /dev/null +++ b/src/trunk/org.gmodel.hibernateosgi/META-INF/MANIFEST.MF @@ -0,0 +1,561 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.hibernateosgi +Bundle-SymbolicName: org.gmodel.hibernateosgi +Bundle-Version: 0.0.0 +Bundle-ClassPath: lib/ant-1.6.5.jar, + lib/ant-antlr-1.6.5.jar, + lib/ant-junit-1.6.5.jar, + lib/ant-launcher-1.6.5.jar, + lib/antlr-2.7.6.jar, + lib/ant-swing-1.6.5.jar, + lib/asm.jar, + lib/asm-attrs.jar, + lib/c3p0-0.9.1.jar, + lib/cglib-2.1.3.jar, + lib/checkstyle-all.jar, + lib/cleanimports.jar, + lib/commons-collections-2.1.1.jar, + lib/commons-logging-1.0.4.jar, + lib/concurrent-1.3.2.jar, + lib/dom4j-1.6.1.jar, + lib/ehcache-1.2.3.jar, + lib/ejb3-persistence.jar, + lib/hibernate-commons-annotations.jar, + lib/jaas.jar, + lib/jacc-1_0-fr.jar, + lib/javassist.jar, + lib/jaxen-1.1-beta-7.jar, + lib/jboss-cache.jar, + lib/jboss-common.jar, + lib/jboss-jmx.jar, + lib/jboss-system.jar, + lib/jgroups-2.2.8.jar, + lib/jta.jar, + lib/junit-3.8.1.jar, + lib/log4j-1.2.11.jar, + lib/oscache-2.1.jar, + lib/proxool-0.8.3.jar, + lib/swarmcache-1.0rc2.jar, + lib/syndiag2.jar, + lib/versioncheck.jar, + lib/xerces-2.6.2.jar, + lib/xml-apis.jar, + lib/hibernate3.jar, + lib/hibernate-annotations.jar +Export-Package: EDU.oswego.cs.dl.util.concurrent, + antlr, + antlr.ASdebug, + antlr.actions.cpp, + antlr.actions.csharp, + antlr.actions.java, + antlr.actions.python, + antlr.build, + antlr.collections, + antlr.collections.impl, + antlr.debug, + antlr.debug.misc, + antlr.preprocessor, + com.mchange, + com.mchange.lang, + com.mchange.util, + com.mchange.v1, + com.mchange.v1.db, + com.mchange.v1.db.sql, + com.mchange.v1.identicator, + com.mchange.v1.io, + com.mchange.v1.lang, + com.mchange.v1.util, + com.mchange.v1.xml, + com.mchange.v2, + com.mchange.v2.async, + com.mchange.v2.beans, + com.mchange.v2.c3p0, + com.mchange.v2.c3p0.cfg, + com.mchange.v2.c3p0.filter, + com.mchange.v2.c3p0.impl, + com.mchange.v2.c3p0.jboss, + com.mchange.v2.c3p0.management, + com.mchange.v2.c3p0.mbean, + com.mchange.v2.c3p0.stmt, + com.mchange.v2.c3p0.subst, + com.mchange.v2.c3p0.util, + com.mchange.v2.cfg, + com.mchange.v2.coalesce, + com.mchange.v2.codegen, + com.mchange.v2.codegen.bean, + com.mchange.v2.codegen.intfc, + com.mchange.v2.debug, + com.mchange.v2.encounter, + com.mchange.v2.holders, + com.mchange.v2.io, + com.mchange.v2.lang, + com.mchange.v2.log, + com.mchange.v2.log.jdk14logging, + com.mchange.v2.log.log4j, + com.mchange.v2.management, + com.mchange.v2.naming, + com.mchange.v2.resourcepool, + com.mchange.v2.ser, + com.mchange.v2.sql, + com.mchange.v2.sql.filter, + com.mchange.v2.util, + com.opensymphony.oscache.base, + com.opensymphony.oscache.base.algorithm, + com.opensymphony.oscache.base.events, + com.opensymphony.oscache.base.persistence, + com.opensymphony.oscache.extra, + com.opensymphony.oscache.general, + com.opensymphony.oscache.plugins.clustersupport, + com.opensymphony.oscache.plugins.diskpersistence, + com.opensymphony.oscache.util, + com.opensymphony.oscache.web, + com.opensymphony.oscache.web.filter, + com.opensymphony.oscache.web.tag, + com.puppycrawl.tools.checkstyle, + com.puppycrawl.tools.checkstyle.api, + com.puppycrawl.tools.checkstyle.checks, + com.puppycrawl.tools.checkstyle.checks.blocks, + com.puppycrawl.tools.checkstyle.checks.coding, + com.puppycrawl.tools.checkstyle.checks.design, + com.puppycrawl.tools.checkstyle.checks.duplicates, + com.puppycrawl.tools.checkstyle.checks.imports, + com.puppycrawl.tools.checkstyle.checks.indentation, + com.puppycrawl.tools.checkstyle.checks.javadoc, + com.puppycrawl.tools.checkstyle.checks.metrics, + com.puppycrawl.tools.checkstyle.checks.naming, + com.puppycrawl.tools.checkstyle.checks.sizes, + com.puppycrawl.tools.checkstyle.checks.whitespace, + com.puppycrawl.tools.checkstyle.doclets, + com.puppycrawl.tools.checkstyle.filters, + com.puppycrawl.tools.checkstyle.grammars, + com.puppycrawl.tools.checkstyle.gui, + com.sun.security.auth, + com.sun.security.auth.login, + com.tombrus.cleanImports.ant, + com.tombrus.cleanImports.engine, + com.tombrus.cleanImports.model, + com.tombrus.cleanImports.parser, + com.tombrus.cleanImports.parser.compiler140, + com.tombrus.cleanImports.parser.compiler141, + com.tombrus.cleanImports.parser.test, + com.tombrus.javaParser, + com.tombrus.javaParser.compiler140, + com.tombrus.javaParser.compiler141, + com.tombrus.javaParser.example, + com.tombrus.javaParser.example.compiler140, + com.tombrus.javaParser.example.compiler141, + com.tombrus.util, + edu.usfca.syndiag, + javassist, + javassist.bytecode, + javassist.bytecode.annotation, + javassist.compiler, + javassist.compiler.ast, + javassist.convert, + javassist.expr, + javassist.runtime, + javassist.scopedpool, + javassist.tools, + javassist.tools.reflect, + javassist.tools.rmi, + javassist.tools.web, + javassist.util, + javassist.util.proxy, + javax.management, + javax.management.loading, + javax.management.modelmbean, + javax.management.monitor, + javax.management.openmbean, + javax.management.relation, + javax.management.timer, + javax.persistence, + javax.persistence.spi, + javax.security.auth, + javax.security.auth.callback, + javax.security.auth.login, + javax.security.auth.spi, + javax.security.jacc, + javax.transaction, + javax.transaction.xa, + javax.xml.parsers, + javax.xml.transform, + javax.xml.transform.dom, + javax.xml.transform.sax, + javax.xml.transform.stream, + junit.awtui, + junit.extensions, + junit.framework, + junit.runner, + junit.swingui, + junit.textui, + net.mark_malakanov.sdg2, + net.sf.cglib.beans, + net.sf.cglib.core, + net.sf.cglib.proxy, + net.sf.cglib.reflect, + net.sf.cglib.transform, + net.sf.cglib.transform.hook, + net.sf.cglib.transform.impl, + net.sf.cglib.util, + net.sf.ehcache, + net.sf.ehcache.bootstrap, + net.sf.ehcache.config, + net.sf.ehcache.constructs.asynchronous, + net.sf.ehcache.constructs.blocking, + net.sf.ehcache.constructs.concurrent, + net.sf.ehcache.constructs.web, + net.sf.ehcache.constructs.web.filter, + net.sf.ehcache.distribution, + net.sf.ehcache.event, + net.sf.ehcache.hibernate, + net.sf.ehcache.store, + net.sf.ehcache.util, + net.sf.swarmcache, + org.apache.commons.beanutils, + org.apache.commons.beanutils.converters, + org.apache.commons.beanutils.locale, + org.apache.commons.beanutils.locale.converters, + org.apache.commons.cli, + org.apache.commons.collections, + org.apache.commons.collections.comparators, + org.apache.commons.collections.iterators, + org.apache.commons.logging, + org.apache.commons.logging.impl, + org.apache.html.dom, + org.apache.log4j, + org.apache.log4j.chainsaw, + org.apache.log4j.config, + org.apache.log4j.helpers, + org.apache.log4j.jdbc, + org.apache.log4j.jmx, + org.apache.log4j.lf5, + org.apache.log4j.lf5.util, + org.apache.log4j.lf5.viewer, + org.apache.log4j.lf5.viewer.categoryexplorer, + org.apache.log4j.lf5.viewer.configure, + org.apache.log4j.net, + org.apache.log4j.nt, + org.apache.log4j.or, + org.apache.log4j.or.jms, + org.apache.log4j.or.sax, + org.apache.log4j.spi, + org.apache.log4j.varia, + org.apache.log4j.xml, + org.apache.regexp, + org.apache.tools.ant, + org.apache.tools.ant.filters, + org.apache.tools.ant.filters.util, + org.apache.tools.ant.helper, + org.apache.tools.ant.input, + org.apache.tools.ant.launch, + org.apache.tools.ant.listener, + org.apache.tools.ant.loader, + org.apache.tools.ant.taskdefs, + org.apache.tools.ant.taskdefs.compilers, + org.apache.tools.ant.taskdefs.condition, + org.apache.tools.ant.taskdefs.cvslib, + org.apache.tools.ant.taskdefs.email, + org.apache.tools.ant.taskdefs.optional, + org.apache.tools.ant.taskdefs.optional.junit, + org.apache.tools.ant.taskdefs.optional.splash, + org.apache.tools.ant.taskdefs.rmic, + org.apache.tools.ant.types, + org.apache.tools.ant.types.mappers, + org.apache.tools.ant.types.resolver, + org.apache.tools.ant.types.selectors, + org.apache.tools.ant.types.selectors.modifiedselector, + org.apache.tools.ant.util, + org.apache.tools.ant.util.facade, + org.apache.tools.ant.util.regexp, + org.apache.tools.bzip2, + org.apache.tools.mail, + org.apache.tools.tar, + org.apache.tools.zip, + org.apache.wml, + org.apache.wml.dom, + org.apache.xerces.dom, + org.apache.xerces.dom.events, + org.apache.xerces.dom3, + org.apache.xerces.dom3.as, + org.apache.xerces.dom3.bootstrap, + org.apache.xerces.impl, + org.apache.xerces.impl.dtd, + org.apache.xerces.impl.dtd.models, + org.apache.xerces.impl.dv, + org.apache.xerces.impl.dv.dtd, + org.apache.xerces.impl.dv.util, + org.apache.xerces.impl.dv.xs, + org.apache.xerces.impl.io, + org.apache.xerces.impl.msg, + org.apache.xerces.impl.validation, + org.apache.xerces.impl.xpath, + org.apache.xerces.impl.xpath.regex, + org.apache.xerces.impl.xs, + org.apache.xerces.impl.xs.identity, + org.apache.xerces.impl.xs.models, + org.apache.xerces.impl.xs.opti, + org.apache.xerces.impl.xs.traversers, + org.apache.xerces.impl.xs.util, + org.apache.xerces.jaxp, + org.apache.xerces.parsers, + org.apache.xerces.util, + org.apache.xerces.xinclude, + org.apache.xerces.xni, + org.apache.xerces.xni.grammars, + org.apache.xerces.xni.parser, + org.apache.xerces.xs, + org.apache.xml.serialize, + org.apache.xmlcommons, + org.dom4j, + org.dom4j.bean, + org.dom4j.datatype, + org.dom4j.dom, + org.dom4j.dtd, + org.dom4j.io, + org.dom4j.jaxb, + org.dom4j.rule, + org.dom4j.rule.pattern, + org.dom4j.swing, + org.dom4j.tree, + org.dom4j.util, + org.dom4j.xpath, + org.dom4j.xpp, + org.hibernate, + org.hibernate.action, + org.hibernate.annotations, + org.hibernate.annotations.common, + org.hibernate.annotations.common.annotationfactory, + org.hibernate.annotations.common.reflection, + org.hibernate.annotations.common.reflection.java, + org.hibernate.annotations.common.reflection.java.generics, + org.hibernate.annotations.common.util, + org.hibernate.bytecode, + org.hibernate.bytecode.cglib, + org.hibernate.bytecode.javassist, + org.hibernate.bytecode.util, + org.hibernate.cache, + org.hibernate.cache.entry, + org.hibernate.cfg, + org.hibernate.cfg.annotations, + org.hibernate.cfg.annotations.reflection, + org.hibernate.cfg.search, + org.hibernate.classic, + org.hibernate.collection, + org.hibernate.connection, + org.hibernate.context, + org.hibernate.criterion, + org.hibernate.dialect, + org.hibernate.dialect.function, + org.hibernate.dialect.lock, + org.hibernate.engine, + org.hibernate.engine.loading, + org.hibernate.engine.query, + org.hibernate.engine.query.sql, + org.hibernate.engine.transaction, + org.hibernate.event, + org.hibernate.event.def, + org.hibernate.exception, + org.hibernate.hql, + org.hibernate.hql.antlr, + org.hibernate.hql.ast, + org.hibernate.hql.ast.exec, + org.hibernate.hql.ast.tree, + org.hibernate.hql.ast.util, + org.hibernate.hql.classic, + org.hibernate.id, + org.hibernate.id.enhanced, + org.hibernate.id.insert, + org.hibernate.impl, + org.hibernate.intercept, + org.hibernate.intercept.cglib, + org.hibernate.intercept.javassist, + org.hibernate.jdbc, + org.hibernate.jmx, + org.hibernate.loader, + org.hibernate.loader.collection, + org.hibernate.loader.criteria, + org.hibernate.loader.custom, + org.hibernate.loader.custom.sql, + org.hibernate.loader.entity, + org.hibernate.loader.hql, + org.hibernate.lob, + org.hibernate.mapping, + org.hibernate.metadata, + org.hibernate.param, + org.hibernate.persister, + org.hibernate.persister.collection, + org.hibernate.persister.entity, + org.hibernate.pretty, + org.hibernate.property, + org.hibernate.proxy, + org.hibernate.proxy.dom4j, + org.hibernate.proxy.map, + org.hibernate.proxy.pojo, + org.hibernate.proxy.pojo.cglib, + org.hibernate.proxy.pojo.javassist, + org.hibernate.secure, + org.hibernate.sql, + org.hibernate.stat, + org.hibernate.tool.hbm2ddl, + org.hibernate.tool.instrument, + org.hibernate.tool.instrument.cglib, + org.hibernate.tool.instrument.javassist, + org.hibernate.transaction, + org.hibernate.transform, + org.hibernate.tuple, + org.hibernate.tuple.component, + org.hibernate.tuple.entity, + org.hibernate.type, + org.hibernate.usertype, + org.hibernate.util, + org.jaxen, + org.jaxen.dom, + org.jaxen.dom4j, + org.jaxen.expr, + org.jaxen.expr.iter, + org.jaxen.function, + org.jaxen.function.ext, + org.jaxen.function.xslt, + org.jaxen.javabean, + org.jaxen.jdom, + org.jaxen.pattern, + org.jaxen.saxpath, + org.jaxen.saxpath.base, + org.jaxen.saxpath.helpers, + org.jaxen.util, + org.jaxen.xom, + org.jboss, + org.jboss.cache, + org.jboss.cache.aop, + org.jboss.cache.aop.collection, + org.jboss.cache.aop.util, + org.jboss.cache.config, + org.jboss.cache.eviction, + org.jboss.cache.factories, + org.jboss.cache.interceptors, + org.jboss.cache.loader, + org.jboss.cache.loader.bdbje, + org.jboss.cache.loader.rmi, + org.jboss.cache.loader.tcp, + org.jboss.cache.lock, + org.jboss.cache.marshall, + org.jboss.cache.optimistic, + org.jboss.cache.rpc, + org.jboss.cache.statetransfer, + org.jboss.cache.transaction, + org.jboss.cache.util, + org.jboss.cache.xml, + org.jboss.deployment, + org.jboss.deployment.cache, + org.jboss.deployment.scanner, + org.jboss.logging, + org.jboss.logging.appender, + org.jboss.logging.filter, + org.jboss.logging.layout, + org.jboss.logging.util, + org.jboss.mx.capability, + org.jboss.mx.interceptor, + org.jboss.mx.loading, + org.jboss.mx.metadata, + org.jboss.mx.modelmbean, + org.jboss.mx.notification, + org.jboss.mx.persistence, + org.jboss.mx.server, + org.jboss.mx.server.registry, + org.jboss.mx.service, + org.jboss.mx.util, + org.jboss.mx.util.propertyeditor, + org.jboss.net.protocol, + org.jboss.net.protocol.file, + org.jboss.net.protocol.http, + org.jboss.net.protocol.njar, + org.jboss.net.protocol.resource, + org.jboss.net.sockets, + org.jboss.net.ssl, + org.jboss.system, + org.jboss.system.pm, + org.jboss.system.server, + org.jboss.util, + org.jboss.util.coerce, + org.jboss.util.collection, + org.jboss.util.deadlock, + org.jboss.util.file, + org.jboss.util.id, + org.jboss.util.loading, + org.jboss.util.platform, + org.jboss.util.property, + org.jboss.util.property.jmx, + org.jboss.util.propertyeditor, + org.jboss.util.state, + org.jboss.util.state.xml, + org.jboss.util.stream, + org.jboss.util.threadpool, + org.jboss.util.timeout, + org.jboss.util.xml, + org.jboss.xml, + org.jboss.xml.binding, + org.jboss.xml.binding.metadata, + org.jboss.xml.binding.metadata.marshalling, + org.jboss.xml.binding.metadata.unmarshalling, + org.jboss.xml.binding.metadata.unmarshalling.impl, + org.jboss.xml.binding.parser, + org.jboss.xml.binding.parser.sax, + org.jboss.xml.binding.parser.xni, + org.jgroups, + org.jgroups.blocks, + org.jgroups.conf, + org.jgroups.debug, + org.jgroups.demos, + org.jgroups.demos.applets, + org.jgroups.demos.wb, + org.jgroups.persistence, + org.jgroups.protocols, + org.jgroups.protocols.pbcast, + org.jgroups.protocols.ring, + org.jgroups.service, + org.jgroups.service.lease, + org.jgroups.stack, + org.jgroups.tests, + org.jgroups.tests.adapt, + org.jgroups.tests.adaptjms, + org.jgroups.tests.adapttcp, + org.jgroups.tests.adaptudp, + org.jgroups.tests.perf, + org.jgroups.tests.perf.transports, + org.jgroups.tests.stack, + org.jgroups.util, + org.logicalcobwebs.asm, + org.logicalcobwebs.asm.tree, + org.logicalcobwebs.asm.util, + org.logicalcobwebs.cglib.core, + org.logicalcobwebs.cglib.proxy, + org.logicalcobwebs.cglib.reflect, + org.logicalcobwebs.cglib.util, + org.logicalcobwebs.concurrent, + org.logicalcobwebs.logging, + org.logicalcobwebs.logging.impl, + org.logicalcobwebs.proxool, + org.logicalcobwebs.proxool.admin, + org.logicalcobwebs.proxool.admin.jmx, + org.logicalcobwebs.proxool.admin.servlet, + org.logicalcobwebs.proxool.configuration, + org.logicalcobwebs.proxool.resources, + org.logicalcobwebs.proxool.util, + org.objectweb.asm, + org.objectweb.asm.attrs, + org.w3c.dom, + org.w3c.dom.css, + org.w3c.dom.events, + org.w3c.dom.html, + org.w3c.dom.ls, + org.w3c.dom.ranges, + org.w3c.dom.stylesheets, + org.w3c.dom.traversal, + org.w3c.dom.views, + org.xml.sax, + org.xml.sax.ext, + org.xml.sax.helpers, + versioncheck +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Eclipse-BuddyPolicy: registered diff --git a/src/trunk/org.gmodel.hibernateosgi/META-INF/readme.txt b/src/trunk/org.gmodel.hibernateosgi/META-INF/readme.txt new file mode 100644 index 0000000..3d5555a --- /dev/null +++ b/src/trunk/org.gmodel.hibernateosgi/META-INF/readme.txt @@ -0,0 +1,90 @@ +SDG2 +A Syntax Diagram Generator 2 (for ANTLR) + +SDG2 allows to visualize textual syntax diagrams (ANTLR) +as "railroad" diagrams. + +Mark Malakanov +Max Andersen (adjusted this readme.txt to reflect reality and packaged it as a jar) + +Usage: java net.mark_malakanov.sdg2.Main [-?|-help] [-width 600] [-blind] \ +[-save image.ext] [-savehtml file.html [-savehtmldir dir] \ +[-savehtmltitle "html Title"] [-savehtmlheader "html Header"] \ +[-saveimgborder 0] [-saveimgtype ext] [-i] [input.g] + + +-blind Runs SDG2 without showing GUI. Exits after one run. + +-i Reads grammar from standard input. + +-? +-help +--help Prints usage information + +-save Saves whole diagram into image file. + Format must be supported. PNG and JPG are. + +-savehtml Name of HTML document that unites images of rules saved into + separate files. + +-savehtmldir A directory where to store images of rules. + It will be created if does not exist. + +-savehtmlheader A header of HTML document. (

tag) + +-savehtmltitle Title of HTML document. ( tag) + +-saveimgborder Width of a border around each image in HTML document. + +-saveimgtype Type of raster images when -savehtml specified. + Default is "png". + +-width Wraps wide rules to accomodate into page of width specified. + (Actually page will be wider) + +input.g The grammar file. Currently ANTLR only supported. + +ANTLR libraries must be included into classpath. + +Features: +1. Visualization of ANTLR synax in a form of diagram (Swing graphic) +2. Saving whole diagram to raster image formats like PING or JPEG. +3. Saving whole diagram to vector image format SVG. +4. Saving into multiple raster images and one consolidating HTML document. + Hyperlinks are supported for navigation. + + +This tool allows to visualize ANTLR synax as BNF diagrams. +You can also save the diagram in a variety of raster image formats. +Currently PING and JPEG are supplied with JDK/JRE. +Other formats are supported if their IIO providers available. +SDG2 chooses format by a file extention specified. + +Vector image format SVG is supported. You have to use any SVG viewer or +install SVG plugin in your browser. I tested this with Adobe's SVG plugin, +which is not perferct, in my opinion, but shows SVG image with great quality +and allows some navigation. + +Another useful feature is exporting into multiple raster image files. +Separate image file will be created for each rule, named with rule's name. +One HTML file will bind the whole picture pointing to files above. +The "image map" navigation is supported. Just click on oval element and go to +a rule where it is expanded. + +SDG2 does not support printing itself. +I did not try to test printing of saved diagrams. Assumable it should work from +any image viewer or HTML browser. + +Although diagrams are black-and-whites, raster images are saved in RGB 24bite. + +SDG2 has been created on a base of SynDiag which is a GREAT tool, +but does not allow to save diagrams. +Author of SynDiag is Jennifer Zheng (jzheng@cs.usfca.edu). + +Some SynDiag's antlr and java sources have been slightly modified to achieve +more graphic accuracy. + +I hope you enjoy it. + +Mark Malakanov +mark.malakanov@rogers.com diff --git a/src/trunk/org.gmodel.hibernateosgi/META-INF/services/javax.xml.parsers.DocumentBuilderFactory b/src/trunk/org.gmodel.hibernateosgi/META-INF/services/javax.xml.parsers.DocumentBuilderFactory new file mode 100644 index 0000000..0828a4e --- /dev/null +++ b/src/trunk/org.gmodel.hibernateosgi/META-INF/services/javax.xml.parsers.DocumentBuilderFactory @@ -0,0 +1 @@ +org.apache.xerces.jaxp.DocumentBuilderFactoryImpl diff --git a/src/trunk/org.gmodel.hibernateosgi/META-INF/services/javax.xml.parsers.SAXParserFactory b/src/trunk/org.gmodel.hibernateosgi/META-INF/services/javax.xml.parsers.SAXParserFactory new file mode 100644 index 0000000..47b300d --- /dev/null +++ b/src/trunk/org.gmodel.hibernateosgi/META-INF/services/javax.xml.parsers.SAXParserFactory @@ -0,0 +1 @@ +org.apache.xerces.jaxp.SAXParserFactoryImpl diff --git a/src/trunk/org.gmodel.hibernateosgi/META-INF/services/org.apache.xerces.xni.parser.XMLParserConfiguration b/src/trunk/org.gmodel.hibernateosgi/META-INF/services/org.apache.xerces.xni.parser.XMLParserConfiguration new file mode 100644 index 0000000..86e3a1e --- /dev/null +++ b/src/trunk/org.gmodel.hibernateosgi/META-INF/services/org.apache.xerces.xni.parser.XMLParserConfiguration @@ -0,0 +1 @@ +org.apache.xerces.parsers.XML11Configuration diff --git a/src/trunk/org.gmodel.hibernateosgi/META-INF/services/org.xml.sax.driver b/src/trunk/org.gmodel.hibernateosgi/META-INF/services/org.xml.sax.driver new file mode 100644 index 0000000..469d7b3 --- /dev/null +++ b/src/trunk/org.gmodel.hibernateosgi/META-INF/services/org.xml.sax.driver @@ -0,0 +1,2 @@ +org.apache.xerces.parsers.SAXParser + diff --git a/src/trunk/org.gmodel.hibernateosgi/META-INF/taglib.tld b/src/trunk/org.gmodel.hibernateosgi/META-INF/taglib.tld new file mode 100644 index 0000000..15dc685 --- /dev/null +++ b/src/trunk/org.gmodel.hibernateosgi/META-INF/taglib.tld @@ -0,0 +1,141 @@ +<?xml version="1.0" encoding="ISO-8859-1" ?> + +<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"> + +<taglib> + <tlib-version>1.6</tlib-version> + <jsp-version>1.2</jsp-version> + <short-name>oscache</short-name> + <uri>/oscache</uri> + <display-name>OSCache Tag Library</display-name> + <description>OSCache - see http://www.opensymphony.com/oscache</description> + + <tag> + <name>cache</name> + <tag-class>com.opensymphony.oscache.web.tag.CacheTag</tag-class> + <body-content>JSP</body-content> + <description>A tag to cache post-processed JSP contents</description> + + <attribute> + <name>time</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + + <attribute> + <name>duration</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + + <attribute> + <name>cron</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + + <attribute> + <name>refreshpolicyclass</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + + <attribute> + <name>refreshpolicyparam</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + + <attribute> + <name>scope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + + <attribute> + <name>refresh</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + + <attribute> + <name>mode</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + + <attribute> + <name>key</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + + <attribute> + <name>groups</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + + <attribute> + <name>language</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + </tag> + + <tag> + <name>usecached</name> + <tag-class>com.opensymphony.oscache.web.tag.UseCachedTag</tag-class> + <description>A tag to tell the cache to use the cached version</description> + + <attribute> + <name>use</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + </tag> + + <tag> + <name>flush</name> + <tag-class>com.opensymphony.oscache.web.tag.FlushTag</tag-class> + <description>A tag to flush the cache</description> + + <attribute> + <name>scope</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>key</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>group</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>language</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>pattern</name> + <required>false</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + </tag> + + <tag> + <name>addgroup</name> + <tag-class>com.opensymphony.oscache.web.tag.GroupTag</tag-class> + <description>A tag to add a group to an ancestor cache tag</description> + <attribute> + <name>group</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + </tag> + +</taglib> diff --git a/src/trunk/org.gmodel.hibernateosgi/README.txt b/src/trunk/org.gmodel.hibernateosgi/README.txt new file mode 100644 index 0000000..e9a8892 --- /dev/null +++ b/src/trunk/org.gmodel.hibernateosgi/README.txt @@ -0,0 +1,13 @@ +Steps by which this Plug-in was created: + +1) Downloaded the "plugin" jar from http://code.google.com/p/osgi-hibernate/ + (com.googlecode.osgihibernate_3.2.6.GA.jar) + +2) Unzipped its contents + +3) Used the "Plug-in from Existing JAR Archives" wizard to generate a new Plug-in project, making + sure to + * check the "Update references to the JAR files" and + * uncheck the "Unzip the JAR archives into the project" + +4) Removed all directories containing class files \ No newline at end of file diff --git a/src/trunk/org.gmodel.hibernateosgi/build.properties b/src/trunk/org.gmodel.hibernateosgi/build.properties new file mode 100644 index 0000000..352a45a --- /dev/null +++ b/src/trunk/org.gmodel.hibernateosgi/build.properties @@ -0,0 +1,41 @@ +bin.includes = META-INF/,\ + lib/ant-1.6.5.jar,\ + lib/ant-antlr-1.6.5.jar,\ + lib/ant-junit-1.6.5.jar,\ + lib/ant-launcher-1.6.5.jar,\ + lib/antlr-2.7.6.jar,\ + lib/ant-swing-1.6.5.jar,\ + lib/asm.jar,\ + lib/asm-attrs.jar,\ + lib/c3p0-0.9.1.jar,\ + lib/cglib-2.1.3.jar,\ + lib/checkstyle-all.jar,\ + lib/cleanimports.jar,\ + lib/commons-collections-2.1.1.jar,\ + lib/commons-logging-1.0.4.jar,\ + lib/concurrent-1.3.2.jar,\ + lib/dom4j-1.6.1.jar,\ + lib/ehcache-1.2.3.jar,\ + lib/ejb3-persistence.jar,\ + lib/hibernate-commons-annotations.jar,\ + lib/jaas.jar,\ + lib/jacc-1_0-fr.jar,\ + lib/javassist.jar,\ + lib/jaxen-1.1-beta-7.jar,\ + lib/jboss-cache.jar,\ + lib/jboss-common.jar,\ + lib/jboss-jmx.jar,\ + lib/jboss-system.jar,\ + lib/jgroups-2.2.8.jar,\ + lib/jta.jar,\ + lib/junit-3.8.1.jar,\ + lib/log4j-1.2.11.jar,\ + lib/oscache-2.1.jar,\ + lib/proxool-0.8.3.jar,\ + lib/swarmcache-1.0rc2.jar,\ + lib/syndiag2.jar,\ + lib/versioncheck.jar,\ + lib/xerces-2.6.2.jar,\ + lib/xml-apis.jar,\ + lib/hibernate3.jar,\ + lib/hibernate-annotations.jar diff --git a/src/trunk/org.gmodel.hibernateosgi/export.jardesc b/src/trunk/org.gmodel.hibernateosgi/export.jardesc new file mode 100644 index 0000000..c582a39 --- /dev/null +++ b/src/trunk/org.gmodel.hibernateosgi/export.jardesc @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<jardesc> + <jar path="C:/temp/versionproperty.jar"/> + <options overwrite="false" compress="true" exportErrors="true" exportWarnings="true" saveDescription="true" descriptionLocation="/versionproperty/export.jardesc" useSourceFolders="false" buildIfNeeded="true"/> + <manifest manifestVersion="1.0" usesManifest="true" reuseManifest="false" saveManifest="false" generateManifest="true" manifestLocation=""> + <sealing sealJar="false"> + <packagesToSeal/> + <packagesToUnSeal/> + </sealing> + </manifest> + <selectedElements exportClassFiles="true" exportOutputFolder="false" exportJavaFiles="false"> + <folder path="/versionproperty/build"/> + </selectedElements> +</jardesc> diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/ant-1.6.5.jar b/src/trunk/org.gmodel.hibernateosgi/lib/ant-1.6.5.jar new file mode 100644 index 0000000..3beb3b8 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/ant-1.6.5.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/ant-antlr-1.6.5.jar b/src/trunk/org.gmodel.hibernateosgi/lib/ant-antlr-1.6.5.jar new file mode 100644 index 0000000..167ac03 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/ant-antlr-1.6.5.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/ant-junit-1.6.5.jar b/src/trunk/org.gmodel.hibernateosgi/lib/ant-junit-1.6.5.jar new file mode 100644 index 0000000..5ee4f7f Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/ant-junit-1.6.5.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/ant-launcher-1.6.5.jar b/src/trunk/org.gmodel.hibernateosgi/lib/ant-launcher-1.6.5.jar new file mode 100644 index 0000000..1a71612 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/ant-launcher-1.6.5.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/ant-swing-1.6.5.jar b/src/trunk/org.gmodel.hibernateosgi/lib/ant-swing-1.6.5.jar new file mode 100644 index 0000000..c85ec08 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/ant-swing-1.6.5.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/antlr-2.7.6.jar b/src/trunk/org.gmodel.hibernateosgi/lib/antlr-2.7.6.jar new file mode 100644 index 0000000..3702b64 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/antlr-2.7.6.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/asm-attrs.jar b/src/trunk/org.gmodel.hibernateosgi/lib/asm-attrs.jar new file mode 100644 index 0000000..f07bcb2 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/asm-attrs.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/asm.jar b/src/trunk/org.gmodel.hibernateosgi/lib/asm.jar new file mode 100644 index 0000000..ee0c7cc Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/asm.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/c3p0-0.9.1.jar b/src/trunk/org.gmodel.hibernateosgi/lib/c3p0-0.9.1.jar new file mode 100644 index 0000000..693667a Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/c3p0-0.9.1.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/cglib-2.1.3.jar b/src/trunk/org.gmodel.hibernateosgi/lib/cglib-2.1.3.jar new file mode 100644 index 0000000..ddfbdb0 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/cglib-2.1.3.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/checkstyle-all.jar b/src/trunk/org.gmodel.hibernateosgi/lib/checkstyle-all.jar new file mode 100644 index 0000000..aa86825 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/checkstyle-all.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/cleanimports.jar b/src/trunk/org.gmodel.hibernateosgi/lib/cleanimports.jar new file mode 100644 index 0000000..25a00f6 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/cleanimports.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/commons-collections-2.1.1.jar b/src/trunk/org.gmodel.hibernateosgi/lib/commons-collections-2.1.1.jar new file mode 100644 index 0000000..3272f2b Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/commons-collections-2.1.1.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/commons-logging-1.0.4.jar b/src/trunk/org.gmodel.hibernateosgi/lib/commons-logging-1.0.4.jar new file mode 100644 index 0000000..b73a80f Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/commons-logging-1.0.4.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/concurrent-1.3.2.jar b/src/trunk/org.gmodel.hibernateosgi/lib/concurrent-1.3.2.jar new file mode 100644 index 0000000..a08c3ba Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/concurrent-1.3.2.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/dom4j-1.6.1.jar b/src/trunk/org.gmodel.hibernateosgi/lib/dom4j-1.6.1.jar new file mode 100644 index 0000000..c8c4dbb Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/dom4j-1.6.1.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/ehcache-1.2.3.jar b/src/trunk/org.gmodel.hibernateosgi/lib/ehcache-1.2.3.jar new file mode 100644 index 0000000..86415b3 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/ehcache-1.2.3.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/ejb3-persistence.jar b/src/trunk/org.gmodel.hibernateosgi/lib/ejb3-persistence.jar new file mode 100644 index 0000000..5aaf777 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/ejb3-persistence.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/hibernate-annotations.jar b/src/trunk/org.gmodel.hibernateosgi/lib/hibernate-annotations.jar new file mode 100644 index 0000000..1764d76 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/hibernate-annotations.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/hibernate-commons-annotations.jar b/src/trunk/org.gmodel.hibernateosgi/lib/hibernate-commons-annotations.jar new file mode 100644 index 0000000..8284aa2 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/hibernate-commons-annotations.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/hibernate3.jar b/src/trunk/org.gmodel.hibernateosgi/lib/hibernate3.jar new file mode 100644 index 0000000..b87dcb0 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/hibernate3.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/jaas.jar b/src/trunk/org.gmodel.hibernateosgi/lib/jaas.jar new file mode 100644 index 0000000..92216c0 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/jaas.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/jacc-1_0-fr.jar b/src/trunk/org.gmodel.hibernateosgi/lib/jacc-1_0-fr.jar new file mode 100644 index 0000000..82d8f0d Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/jacc-1_0-fr.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/javassist.jar b/src/trunk/org.gmodel.hibernateosgi/lib/javassist.jar new file mode 100644 index 0000000..a6bde77 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/javassist.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/jaxen-1.1-beta-7.jar b/src/trunk/org.gmodel.hibernateosgi/lib/jaxen-1.1-beta-7.jar new file mode 100644 index 0000000..c773f85 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/jaxen-1.1-beta-7.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/jboss-cache.jar b/src/trunk/org.gmodel.hibernateosgi/lib/jboss-cache.jar new file mode 100644 index 0000000..7bd3c60 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/jboss-cache.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/jboss-common.jar b/src/trunk/org.gmodel.hibernateosgi/lib/jboss-common.jar new file mode 100644 index 0000000..7e5de18 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/jboss-common.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/jboss-jmx.jar b/src/trunk/org.gmodel.hibernateosgi/lib/jboss-jmx.jar new file mode 100644 index 0000000..355d440 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/jboss-jmx.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/jboss-system.jar b/src/trunk/org.gmodel.hibernateosgi/lib/jboss-system.jar new file mode 100644 index 0000000..441674b Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/jboss-system.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/jgroups-2.2.8.jar b/src/trunk/org.gmodel.hibernateosgi/lib/jgroups-2.2.8.jar new file mode 100644 index 0000000..e55365c Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/jgroups-2.2.8.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/jta.jar b/src/trunk/org.gmodel.hibernateosgi/lib/jta.jar new file mode 100644 index 0000000..e0822a9 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/jta.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/junit-3.8.1.jar b/src/trunk/org.gmodel.hibernateosgi/lib/junit-3.8.1.jar new file mode 100644 index 0000000..674d71e Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/junit-3.8.1.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/log4j-1.2.11.jar b/src/trunk/org.gmodel.hibernateosgi/lib/log4j-1.2.11.jar new file mode 100644 index 0000000..b603fe6 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/log4j-1.2.11.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/oscache-2.1.jar b/src/trunk/org.gmodel.hibernateosgi/lib/oscache-2.1.jar new file mode 100644 index 0000000..4496a88 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/oscache-2.1.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/proxool-0.8.3.jar b/src/trunk/org.gmodel.hibernateosgi/lib/proxool-0.8.3.jar new file mode 100644 index 0000000..c4f700c Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/proxool-0.8.3.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/swarmcache-1.0rc2.jar b/src/trunk/org.gmodel.hibernateosgi/lib/swarmcache-1.0rc2.jar new file mode 100644 index 0000000..f0cb0d0 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/swarmcache-1.0rc2.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/syndiag2.jar b/src/trunk/org.gmodel.hibernateosgi/lib/syndiag2.jar new file mode 100644 index 0000000..e1e76c8 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/syndiag2.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/versioncheck.jar b/src/trunk/org.gmodel.hibernateosgi/lib/versioncheck.jar new file mode 100644 index 0000000..bf9e33e Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/versioncheck.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/xerces-2.6.2.jar b/src/trunk/org.gmodel.hibernateosgi/lib/xerces-2.6.2.jar new file mode 100644 index 0000000..14c3162 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/xerces-2.6.2.jar differ diff --git a/src/trunk/org.gmodel.hibernateosgi/lib/xml-apis.jar b/src/trunk/org.gmodel.hibernateosgi/lib/xml-apis.jar new file mode 100644 index 0000000..6ba4ff8 Binary files /dev/null and b/src/trunk/org.gmodel.hibernateosgi/lib/xml-apis.jar differ diff --git a/src/trunk/org.gmodel.kernel.testbench/.classpath b/src/trunk/org.gmodel.kernel.testbench/.classpath new file mode 100644 index 0000000..2d1a430 --- /dev/null +++ b/src/trunk/org.gmodel.kernel.testbench/.classpath @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="src" path="src"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/src/trunk/org.gmodel.kernel.testbench/.project b/src/trunk/org.gmodel.kernel.testbench/.project new file mode 100644 index 0000000..99a717c --- /dev/null +++ b/src/trunk/org.gmodel.kernel.testbench/.project @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.gmodel.kernel.testbench</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + </natures> +</projectDescription> diff --git a/src/trunk/org.gmodel.kernel.testbench/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.kernel.testbench/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..8f6dc3d --- /dev/null +++ b/src/trunk/org.gmodel.kernel.testbench/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,70 @@ +#Wed May 13 15:07:03 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.kernel.testbench/.settings/org.eclipse.jdt.ui.prefs b/src/trunk/org.gmodel.kernel.testbench/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000..d20f2b5 --- /dev/null +++ b/src/trunk/org.gmodel.kernel.testbench/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,54 @@ +#Mon Jun 01 15:10:28 CEST 2009 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=false +sp_cleanup.format_source_code=false +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/src/trunk/org.gmodel.kernel.testbench/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.kernel.testbench/META-INF/MANIFEST.MF new file mode 100644 index 0000000..17d06cd --- /dev/null +++ b/src/trunk/org.gmodel.kernel.testbench/META-INF/MANIFEST.MF @@ -0,0 +1,8 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.kernel.testbench +Bundle-SymbolicName: org.gmodel.kernel.testbench;singleton:=true +Bundle-Version: 1.0.0 +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Export-Package: org.gmodel.testbench +Require-Bundle: org.gmodel.kernel;bundle-version="1.0.0" diff --git a/src/trunk/org.gmodel.kernel.testbench/build.properties b/src/trunk/org.gmodel.kernel.testbench/build.properties new file mode 100644 index 0000000..b107977 --- /dev/null +++ b/src/trunk/org.gmodel.kernel.testbench/build.properties @@ -0,0 +1,3 @@ +source.. = src/ +bin.includes = META-INF/,\ + . diff --git a/src/trunk/org.gmodel.kernel.testbench/src/org/gmodel/testbench/Ecore.ecore b/src/trunk/org.gmodel.kernel.testbench/src/org/gmodel/testbench/Ecore.ecore new file mode 100644 index 0000000..99de5df --- /dev/null +++ b/src/trunk/org.gmodel.kernel.testbench/src/org/gmodel/testbench/Ecore.ecore @@ -0,0 +1,5329 @@ + + + + +<!DOCTYPE html> +<html> +<head> + <link rel="icon" type="image/vnd.microsoft.icon" href="http://www.gstatic.com/codesite/ph/images/phosting.ico"> + + + <script type="text/javascript"> + + + + + var codesite_token = "be2d5ffc047db7e47046fc750f8a46fd"; + + + var CS_env = {"profileUrl":["/u/114757815731922588908/"],"token":"be2d5ffc047db7e47046fc750f8a46fd","assetHostPath":"http://www.gstatic.com/codesite/ph","domainName":null,"assetVersionPath":"http://www.gstatic.com/codesite/ph/10977552491916013749","projectHomeUrl":"/p/gmodel","relativeBaseUrl":"","projectName":"gmodel","loggedInUserEmail":"a.shewring@gmail.com"}; + var _gaq = _gaq || []; + _gaq.push( + ['siteTracker._setAccount', 'UA-18071-1'], + ['siteTracker._trackPageview']); + + + </script> + + + <title>Ecore.ecore - + gmodel - + + + Gmodel - The Semantic Database - Google Project Hosting + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + a.shewring@gmail.com + + + | My favorites + | Profile + | Sign out + + + +
+ +
+
+ + +
+ + + + + + + + + + + + +
+ +
+ gmodel +
+ + + + +
+ +
+ + + +
+ +
+ +
+ + +
+ Project Home + + + + + Downloads + + + + + + Wiki + + + + + + Issues + + + + + + Source + + + Administer + + + + +
+
+ + + + + + + + + + + + + + +
+
+
+ + + + + Checkout   + Browse   + Changes   + + +   +
+ +   + + + + + Request code review + + + +
+
+
+ +
+ + + +
+ + + + + + + +
+
+ + + + + + + + + + + +
+ + + + + + + +
+
+
 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 357
+
+
+
+
<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="ecore"
nsURI="http://www.eclipse.org/emf/2002/Ecore" nsPrefix="ecore">
<eClassifiers xsi:type="ecore:EClass" name="EAttribute" eSuperTypes="#//EStructuralFeature">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eAttributeType" lowerBound="1"
eType="#//EDataType" changeable="false" volatile="true" transient="true" derived="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EAnnotation" eSuperTypes="#//EModelElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="source" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="details" upperBound="-1"
eType="#//EStringToStringMapEntry" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eModelElement" eType="#//EModelElement"
transient="true" resolveProxies="false" eOpposite="#//EModelElement/eAnnotations"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="contents" upperBound="-1"
eType="#//EObject" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="references" upperBound="-1"
eType="#//EObject"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EClass" eSuperTypes="#//EClassifier">
<eOperations name="isSuperTypeOf" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eParameters name="someClass" eType="#//EClass"/>
</eOperations>
<eOperations name="getFeatureCount" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
<eOperations name="getEStructuralFeature" eType="#//EStructuralFeature">
<eParameters name="featureID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
</eOperations>
<eOperations name="getFeatureID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
<eParameters name="feature" eType="#//EStructuralFeature"/>
</eOperations>
<eOperations name="getEStructuralFeature" eType="#//EStructuralFeature">
<eParameters name="featureName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="interface" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eSuperTypes" upperBound="-1"
eType="#//EClass"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eOperations" upperBound="-1"
eType="#//EOperation" containment="true" resolveProxies="false" eOpposite="#//EOperation/eContainingClass"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eAllAttributes" upperBound="-1"
eType="#//EAttribute" changeable="false" volatile="true" transient="true"
derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eAllReferences" upperBound="-1"
eType="#//EReference" changeable="false" volatile="true" transient="true"
derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eReferences" upperBound="-1"
eType="#//EReference" changeable="false" volatile="true" transient="true"
derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eAttributes" upperBound="-1"
eType="#//EAttribute" changeable="false" volatile="true" transient="true"
derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eAllContainments" upperBound="-1"
eType="#//EReference" changeable="false" volatile="true" transient="true"
derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eAllOperations" upperBound="-1"
eType="#//EOperation" changeable="false" volatile="true" transient="true"
derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eAllStructuralFeatures"
upperBound="-1" eType="#//EStructuralFeature" changeable="false" volatile="true"
transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eAllSuperTypes" upperBound="-1"
eType="#//EClass" changeable="false" volatile="true" transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eIDAttribute" eType="#//EAttribute"
changeable="false" volatile="true" transient="true" derived="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eStructuralFeatures" upperBound="-1"
eType="#//EStructuralFeature" containment="true" resolveProxies="false" eOpposite="#//EStructuralFeature/eContainingClass"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EClassifier" abstract="true" eSuperTypes="#//ENamedElement">
<eOperations name="isInstance" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eParameters name="object" eType="#//EJavaObject"/>
</eOperations>
<eOperations name="getClassifierID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="instanceClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="instanceClass" eType="#//EJavaClass"
changeable="false" volatile="true" transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValue" eType="#//EJavaObject"
changeable="false" volatile="true" transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="ePackage" eType="#//EPackage"
changeable="false" transient="true" eOpposite="#//EPackage/eClassifiers"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EDataType" eSuperTypes="#//EClassifier">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="serializable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
defaultValueLiteral="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EEnum" eSuperTypes="#//EDataType">
<eOperations name="getEEnumLiteral" eType="#//EEnumLiteral">
<eParameters name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eOperations>
<eOperations name="getEEnumLiteral" eType="#//EEnumLiteral">
<eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
</eOperations>
<eOperations name="getEEnumLiteralByLiteral" eType="#//EEnumLiteral">
<eParameters name="literal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="eLiterals" upperBound="-1"
eType="#//EEnumLiteral" containment="true" resolveProxies="false" eOpposite="#//EEnumLiteral/eEnum"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EEnumLiteral" eSuperTypes="#//ENamedElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="instance" eType="#//EEnumerator"
transient="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="literal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eEnum" eType="#//EEnum"
changeable="false" transient="true" resolveProxies="false" eOpposite="#//EEnum/eLiterals"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EFactory" eSuperTypes="#//EModelElement">
<eOperations name="create" eType="#//EObject">
<eParameters name="eClass" eType="#//EClass"/>
</eOperations>
<eOperations name="createFromString" eType="#//EJavaObject">
<eParameters name="eDataType" eType="#//EDataType"/>
<eParameters name="literalValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eOperations>
<eOperations name="convertToString" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eParameters name="eDataType" eType="#//EDataType"/>
<eParameters name="instanceValue" eType="#//EJavaObject"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="ePackage" lowerBound="1"
eType="#//EPackage" transient="true" resolveProxies="false" eOpposite="#//EPackage/eFactoryInstance"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EModelElement" abstract="true" eSuperTypes="#//EObject">
<eOperations name="getEAnnotation" eType="#//EAnnotation">
<eParameters name="source" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="eAnnotations" upperBound="-1"
eType="#//EAnnotation" containment="true" resolveProxies="false" eOpposite="#//EAnnotation/eModelElement"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ENamedElement" abstract="true" eSuperTypes="#//EModelElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EObject">
<eOperations name="eClass" eType="#//EClass"/>
<eOperations name="eIsProxy" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eOperations name="eResource" eType="#//EResource"/>
<eOperations name="eContainer" eType="#//EObject"/>
<eOperations name="eContainingFeature" eType="#//EStructuralFeature"/>
<eOperations name="eContainmentFeature" eType="#//EReference"/>
<eOperations name="eContents" eType="#//EEList"/>
<eOperations name="eAllContents" eType="#//ETreeIterator"/>
<eOperations name="eCrossReferences" eType="#//EEList"/>
<eOperations name="eGet" eType="#//EJavaObject">
<eParameters name="feature" eType="#//EStructuralFeature"/>
</eOperations>
<eOperations name="eGet" eType="#//EJavaObject">
<eParameters name="feature" eType="#//EStructuralFeature"/>
<eParameters name="resolve" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
</eOperations>
<eOperations name="eSet">
<eParameters name="feature" eType="#//EStructuralFeature"/>
<eParameters name="newValue" eType="#//EJavaObject"/>
</eOperations>
<eOperations name="eIsSet" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eParameters name="feature" eType="#//EStructuralFeature"/>
</eOperations>
<eOperations name="eUnset">
<eParameters name="feature" eType="#//EStructuralFeature"/>
</eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EOperation" eSuperTypes="#//ETypedElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="eContainingClass" eType="#//EClass"
changeable="false" transient="true" resolveProxies="false" eOpposite="#//EClass/eOperations"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eParameters" upperBound="-1"
eType="#//EParameter" containment="true" resolveProxies="false" eOpposite="#//EParameter/eOperation"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eExceptions" upperBound="-1"
eType="#//EClassifier"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EPackage" eSuperTypes="#//ENamedElement">
<eOperations name="getEClassifier" eType="#//EClassifier">
<eParameters name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="nsURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="nsPrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eFactoryInstance" lowerBound="1"
eType="#//EFactory" transient="true" resolveProxies="false" eOpposite="#//EFactory/ePackage"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eClassifiers" upperBound="-1"
eType="#//EClassifier" containment="true" eOpposite="#//EClassifier/ePackage"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eSubpackages" upperBound="-1"
eType="#//EPackage" containment="true" eOpposite="#//EPackage/eSuperPackage"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eSuperPackage" eType="#//EPackage"
changeable="false" transient="true" eOpposite="#//EPackage/eSubpackages"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EParameter" eSuperTypes="#//ETypedElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="eOperation" eType="#//EOperation"
changeable="false" transient="true" resolveProxies="false" eOpposite="#//EOperation/eParameters"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EReference" eSuperTypes="#//EStructuralFeature">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="containment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="container" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
changeable="false" volatile="true" transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="resolveProxies" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
defaultValueLiteral="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eOpposite" eType="#//EReference"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eReferenceType" lowerBound="1"
eType="#//EClass" changeable="false" volatile="true" transient="true" derived="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EStructuralFeature" abstract="true"
eSuperTypes="#//ETypedElement">
<eOperations name="getFeatureID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
<eOperations name="getContainerClass" eType="#//EJavaClass"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="changeable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
defaultValueLiteral="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="volatile" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="transient" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValueLiteral" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValue" eType="#//EJavaObject"
changeable="false" volatile="true" transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="unsettable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="derived" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eContainingClass" eType="#//EClass"
changeable="false" transient="true" resolveProxies="false" eOpposite="#//EClass/eStructuralFeatures"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ETypedElement" abstract="true" eSuperTypes="#//ENamedElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="ordered" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
defaultValueLiteral="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="unique" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
defaultValueLiteral="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
defaultValueLiteral="1"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="many" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
changeable="false" volatile="true" transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="required" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
changeable="false" volatile="true" transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="eType" eType="#//EClassifier"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="EBigDecimal" instanceClassName="java.math.BigDecimal">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="baseType" value="http://www.w3.org/2001/XMLSchema#decimal"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="EBigInteger" instanceClassName="java.math.BigInteger">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="baseType" value="http://www.w3.org/2001/XMLSchema#integer"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="EBoolean" instanceClassName="boolean">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="baseType" value="http://www.w3.org/2001/XMLSchema#boolean"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="EBooleanObject" instanceClassName="java.lang.Boolean">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="baseType" value="EBoolean"/>
<details key="name" value="EBoolean:Object"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="EByte" instanceClassName="byte">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="baseType" value="http://www.w3.org/2001/XMLSchema#byte"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="EByteArray" instanceClassName="byte[]">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="baseType" value="http://www.w3.org/2001/XMLSchema#hexBinary"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="EByteObject" instanceClassName="java.lang.Byte">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="baseType" value="EByte"/>
<details key="name" value="EByte:Object"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="EChar" instanceClassName="char"/>
<eClassifiers xsi:type="ecore:EDataType" name="ECharacterObject" instanceClassName="java.lang.Character">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="baseType" value="EChar"/>
<details key="name" value="EChar:Object"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="EDate" instanceClassName="java.util.Date"/>
<eClassifiers xsi:type="ecore:EDataType" name="EDiagnosticChain" instanceClassName="org.eclipse.emf.common.util.DiagnosticChain"
serializable="false"/>
<eClassifiers xsi:type="ecore:EDataType" name="EDouble" instanceClassName="double">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="baseType" value="http://www.w3.org/2001/XMLSchema#double"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="EDoubleObject" instanceClassName="java.lang.Double">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="baseType" value="EDouble"/>
<details key="name" value="EDouble:Object"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="EEList" instanceClassName="org.eclipse.emf.common.util.EList"
serializable="false"/>
<eClassifiers xsi:type="ecore:EDataType" name="EEnumerator" instanceClassName="org.eclipse.emf.common.util.Enumerator"
serializable="false"/>
<eClassifiers xsi:type="ecore:EDataType" name="EFeatureMap" instanceClassName="org.eclipse.emf.ecore.util.FeatureMap"
serializable="false"/>
<eClassifiers xsi:type="ecore:EDataType" name="EFeatureMapEntry" instanceClassName="org.eclipse.emf.ecore.util.FeatureMap$Entry"/>
<eClassifiers xsi:type="ecore:EDataType" name="EFloat" instanceClassName="float">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="baseType" value="http://www.w3.org/2001/XMLSchema#float"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="EFloatObject" instanceClassName="java.lang.Float">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="baseType" value="EFloat"/>
<details key="name" value="EFloat:Object"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="EInt" instanceClassName="int">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="baseType" value="http://www.w3.org/2001/XMLSchema#int"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="EIntegerObject" instanceClassName="java.lang.Integer">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="baseType" value="EInt"/>
<details key="name" value="EInt:Object"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="EJavaClass" instanceClassName="java.lang.Class"/>
<eClassifiers xsi:type="ecore:EDataType" name="EJavaObject" instanceClassName="java.lang.Object"
serializable="false"/>
<eClassifiers xsi:type="ecore:EDataType" name="ELong" instanceClassName="long">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="baseType" value="http://www.w3.org/2001/XMLSchema#long"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="ELongObject" instanceClassName="java.lang.Long">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="baseType" value="ELong"/>
<details key="name" value="ELong:Object"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="EMap" instanceClassName="java.util.Map"
serializable="false"/>
<eClassifiers xsi:type="ecore:EDataType" name="EResource" instanceClassName="org.eclipse.emf.ecore.resource.Resource"
serializable="false"/>
<eClassifiers xsi:type="ecore:EDataType" name="EResourceSet" instanceClassName="org.eclipse.emf.ecore.resource.ResourceSet"
serializable="false"/>
<eClassifiers xsi:type="ecore:EDataType" name="EShort" instanceClassName="short">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="baseType" value="http://www.w3.org/2001/XMLSchema#short"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="EShortObject" instanceClassName="java.lang.Short">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="baseType" value="EShort"/>
<details key="name" value="EShort:Object"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="EString" instanceClassName="java.lang.String">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="baseType" value="http://www.w3.org/2001/XMLSchema#string"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EStringToStringMapEntry" instanceClassName="java.util.Map$Entry">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="key" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="ETreeIterator" instanceClassName="org.eclipse.emf.common.util.TreeIterator"
serializable="false"/>
</ecore:EPackage>
+
+
+ + + + + + +
+ +
+ + +
+
+
+
+
+
+

Change log

+
+ r756 + by jorn.bettin + on Yesterday (20 hours ago) +   Diff +
+
essential kernel tests
+
+ + + + + + + + + + +
+
Go to:  + +
+ + +
+ Publish your comments +
Double click a line to add a comment
+
+ +
+ + +
+
+
+
+
+
+
+
+
+
+
+

Older revisions

+ + All revisions of this file +
+
+
+
+
+
+ +
+
+
+
+
+
+

File info

+ +
Size: 25726 bytes, + 357 lines
+ + +
+ +
+
+
+
+
+
+
+ + +
+ +
+
+ + + + + + + + + + + + + + + + + + + +
+ +
+ Powered by Google Project Hosting +
+ + + + + + + + diff --git a/src/trunk/org.gmodel.kernel.testbench/src/org/gmodel/testbench/KernelTestSequence.java b/src/trunk/org.gmodel.kernel.testbench/src/org/gmodel/testbench/KernelTestSequence.java new file mode 100644 index 0000000..327e395 --- /dev/null +++ b/src/trunk/org.gmodel.kernel.testbench/src/org/gmodel/testbench/KernelTestSequence.java @@ -0,0 +1,267 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.testbench; + +import static org.gmodel.G.coreGraphs; + +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.api.models.ArtifactDerivation; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models2.EnterpriseArchitecture; +import org.gmodel.api.models2.RepositoryStructure; +import org.gmodel.api.models2.Visualization; +import org.gmodel.core.SemanticIdentityRegistry; +import org.gmodel.impl.DerivationCode; + +public class KernelTestSequence { + + private static SemanticIdentityRegistry nameRegistry; + // just for the fun of it we create an instance of an edge + public static final Set testDomain = Instantiation.addSemanticDomain("test domain", "test domains", GmodelSemanticDomains.finiteSets); + public static final Set whoToWho = Instantiation.link(coreGraphs.edge, Instantiation.addDisjunctSemanticIdentitySet("who to who", "set of who to who", testDomain), +// F_SemanticStateOfInMemoryModel.addAnonymousDisjunctSemanticIdentitySet(testDomain), EnterpriseArchitecture.who, + EnterpriseArchitecture.who, EnterpriseArchitecture.who, + GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_FALSE, +// F_SemanticStateOfInMemoryModel.addAnonymousDisjunctSemanticIdentitySet(testDomain), EnterpriseArchitecture.who, + EnterpriseArchitecture.who, EnterpriseArchitecture.who, + GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_FALSE); + + + public static void run() { + entityRelationshipModelling(); + } + + public static final Set acmeEA = RepositoryStructure.domainengineering.addConcrete(EnterpriseArchitecture.enterpriseArchitectureGraph, + Instantiation.addDisjunctSemanticIdentitySet("ACME Enterprise Architecture", "set of ACME Enterprise Architecture", testDomain)); + + public static final Set acmeMelbourne = RepositoryStructure.applicationengineering.addConcrete(acmeEA, + Instantiation.addDisjunctSemanticIdentitySet("ACME Melbourne Enterprise Architecture", "set of ACME Melbourne Enterprise Architecture", testDomain)); + + public static final Set entityrelationshipschema = RepositoryStructure.domainengineering.addConcrete(coreGraphs.vertex, + Instantiation.addDisjunctSemanticIdentitySet("entity relationship schema", "entity relationship schemas", testDomain)); + public static final Set hierarchicalerschema = RepositoryStructure.domainengineering.addConcrete(coreGraphs.vertex, + Instantiation.addDisjunctSemanticIdentitySet("hierarchical entity relationship schema", "hierarchical entity relationship schemas", testDomain)); + + public static final Set crm = RepositoryStructure.applicationengineering.addConcrete(entityrelationshipschema, + Instantiation.addDisjunctSemanticIdentitySet("customer relationship management", "customer relationship management", testDomain)); + public static final Set entity = entityrelationshipschema.addConcrete(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("entity", "entities" , testDomain)); + + public static final Set crm_product = crm.addConcrete(entity, + Instantiation.addDisjunctSemanticIdentitySet("product", "products" , testDomain)); + + + public static void entityRelationshipModelling() { + + final Set sex = Instantiation.addDisjunctSemanticIdentitySet("sex", "sexes" , testDomain); + final Set male = Instantiation.addDisjunctSemanticIdentitySet("male", "males" , testDomain); + final Set female = Instantiation.addDisjunctSemanticIdentitySet("female", "females" , testDomain); + + sex.addElement(male); + sex.addElement(female); + + Instantiation.link(coreGraphs.visibility, entityrelationshipschema, testDomain); + // TODO: don't allow the creation of visibilities with target within a semantic domain such as: F_SemanticStateOfInMemoryModel.link(coreGraphs.visibility, entity, sex); + + Instantiation.link(coreGraphs.visibility, RepositoryStructure.applicationengineering, testDomain); + Instantiation.link(coreGraphs.visibility, crm, testDomain); + Instantiation.link(coreGraphs.visibility, crm_product, testDomain); + Instantiation.link(coreGraphs.visibility, hierarchicalerschema, testDomain); + + // EXAMPLE CODE FOR DEFINING DERIVEDARTEFACTS + + final Set sqltabledefinition = entityrelationshipschema.addConcrete(ArtifactDerivation.derivedFile, + Instantiation.addDisjunctSemanticIdentitySet("sql table definition", "sql table definitions" , testDomain)); + final Set userviewdefinition = entityrelationshipschema.addConcrete(ArtifactDerivation.derivedFile, + Instantiation.addDisjunctSemanticIdentitySet("user view definition", "user view definitions" , testDomain)); + + final Set entityTargetLocation = org.gmodel.core.F_Instantiation.addDisjunctSemanticIdentitySetInKernel("some_path_in_filesystem", "some_path_in_filesystem" , GmodelSemanticDomains.gmodel, nameRegistry.somePathInFileSystem.ordinal()); + + ArtifactDerivation.locationFunction.addElement(entityTargetLocation); + + final Set derived_sqltabledefinition_to_entity = Instantiation.link(ArtifactDerivation.derivationRule, + Instantiation.addDisjunctSemanticIdentitySet("SQL table definition to entity", "SQL table definition to entity", testDomain), + sqltabledefinition, + sqltabledefinition, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.isNavigable_FALSE, + GmodelSemanticDomains.isContainer_FALSE, + entity, + entity, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.isNavigable_FALSE, + GmodelSemanticDomains.isContainer_FALSE + ); + derived_sqltabledefinition_to_entity.addToValues(ArtifactDerivation.xpand); + derived_sqltabledefinition_to_entity.addToValues(entityTargetLocation); + + final Set derived_userviewdefinition_to_entity = Instantiation.link(ArtifactDerivation.derivationRule, + Instantiation.addDisjunctSemanticIdentitySet("user view definition to entity", "user view definition to entity", testDomain), + Instantiation.addAnonymousDisjunctSemanticIdentitySet(testDomain), + userviewdefinition, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.isNavigable_FALSE, + GmodelSemanticDomains.isContainer_FALSE, + entity, + entity, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.isNavigable_FALSE, + GmodelSemanticDomains.isContainer_FALSE + ); + derived_userviewdefinition_to_entity.addToValues(ArtifactDerivation.xpand); + derived_userviewdefinition_to_entity.addToValues(entityTargetLocation); + + // FURTHER STUFF + + final Set attribute = entityrelationshipschema.addConcrete(coreGraphs.vertex, + Instantiation.addDisjunctSemanticIdentitySet("attribute", "attributes" , testDomain)); + + //TODO Fix up + /* final Set entity_to_sex = Instantiation.link(coreGraphs.edge, + Instantiation.addDisjunctSemanticIdentitySet("owner", "owners" , testDomain), + Instantiation.addDisjunctSemanticIdentitySet("entity to sex", "entity to sex", testDomain), + entity, + GmodelSemanticDomains.minCardinality_0, + GmodelSemanticDomains.maxCardinality_n, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_TRUE, + sex, + sex, + GmodelSemanticDomains.minCardinality_1, + GmodelSemanticDomains.maxCardinality_1, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE + ); */ + final Set entity_to_attribute = Instantiation.link(coreGraphs.edge, + Instantiation.addDisjunctSemanticIdentitySet("owner", "owners" , testDomain), + Instantiation.addDisjunctSemanticIdentitySet("entity to attribute", "entity to attribute", testDomain), + entity, + GmodelSemanticDomains.minCardinality_1, + GmodelSemanticDomains.maxCardinality_1, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_TRUE, + Instantiation.addDisjunctSemanticIdentitySet("attribute", "attributes" , testDomain), + attribute, + GmodelSemanticDomains.minCardinality_0, + GmodelSemanticDomains.maxCardinality_n, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE + ); + final Set entity_to_entity = Instantiation.link(coreGraphs.edge, + Instantiation.addDisjunctSemanticIdentitySet("source", "sources" , testDomain), + Instantiation.addDisjunctSemanticIdentitySet("entity to entity", "entity to entity", testDomain), + entity, + GmodelSemanticDomains.minCardinality_0, + GmodelSemanticDomains.maxCardinality_n, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE, + Instantiation.addDisjunctSemanticIdentitySet("target", "targets" , testDomain), + entity, + GmodelSemanticDomains.minCardinality_0, + GmodelSemanticDomains.maxCardinality_n, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE + ); + + // Instantiation level 2 + + //crm_product.setValue(male); + //TODO Fix up + + /* final Set crm_product_to_sex = Instantiation.link(entity_to_sex, + Instantiation.addDisjunctSemanticIdentitySet("crm_product_to_sex", "crm_product_to_sex" , testDomain), + crm_product, + crm_product, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, + GmodelSemanticDomains.isContainer_NOTAPPLICABLE, + male, + male, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, + GmodelSemanticDomains.isContainer_NOTAPPLICABLE + ); + */ + final Set order = crm.addConcrete(entity, + Instantiation.addDisjunctSemanticIdentitySet("order", "orders", testDomain)); + final Set price = crm.addConcrete(attribute, + Instantiation.addDisjunctSemanticIdentitySet("price", "prices" , testDomain)); + + final Set product_to_order = Instantiation.link(entity_to_entity, + Instantiation.addDisjunctSemanticIdentitySet("order", "orders" , testDomain), + Instantiation.addDisjunctSemanticIdentitySet("order to crm product", "order to crm product", testDomain), + order, + GmodelSemanticDomains.minCardinality_0, + GmodelSemanticDomains.maxCardinality_n, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE, + Instantiation.addDisjunctSemanticIdentitySet("product", "products" , testDomain), + crm_product, + GmodelSemanticDomains.minCardinality_0, + GmodelSemanticDomains.maxCardinality_n, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE + ); + final Set product_to_price = Instantiation.link(entity_to_attribute, + Instantiation.addDisjunctSemanticIdentitySet("owner", "owners" , testDomain), + Instantiation.addDisjunctSemanticIdentitySet("crm product to price", "crm product to price", testDomain), + crm_product, + GmodelSemanticDomains.minCardinality_1, + GmodelSemanticDomains.maxCardinality_1, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_TRUE, + Instantiation.addDisjunctSemanticIdentitySet("price", "prices" , testDomain), + price, + GmodelSemanticDomains.minCardinality_0, + GmodelSemanticDomains.maxCardinality_n, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE + ); + + //allowableEdgeFlavoredLinkTest() + if (entity.allowableEdgeCategories(attribute).size() < 2) { + Instantiation.raiseError(GmodelSemanticDomains.kernelDefect_KernelHasReachedAnIllegalState, GmodelSemanticDomains.kernelDefect); + } + + + // EXAMPLE OF CODE GENERATION + // Execute the derivations for sqltabledefinitions + + DerivationCode.execute(derived_sqltabledefinition_to_entity, entityrelationshipschema.filterFlavor(coreGraphs.vertex)); + } + + public static final Set crm_aviz = RepositoryStructure.graphVisualizations.addConcrete(Visualization.graphVisualization, + Instantiation.addDisjunctSemanticIdentitySet("crm schema container visualizedGraph", "crm schema container graphVisualizations", testDomain)); + + + +} diff --git a/src/trunk/org.gmodel.kernel.testbench/src/org/gmodel/testbench/Test.java b/src/trunk/org.gmodel.kernel.testbench/src/org/gmodel/testbench/Test.java new file mode 100644 index 0000000..f853335 --- /dev/null +++ b/src/trunk/org.gmodel.kernel.testbench/src/org/gmodel/testbench/Test.java @@ -0,0 +1,58 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.testbench; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.G.coreSets; +import static org.gmodel.core.F_Instantiation.identityFactory; + +import org.gmodel.Set; +import org.gmodel.api.models.Root; + +public class Test { + + /** + * @param args + */ + public static void main(final String[] args) { + org.gmodel.G.boot(); + TestSequence.run(); + + final Set g = coreGraphs.graph; + final Set kerDef = g.filter(coreSets.kernelDefect); + final Set semErr = g.filter(coreSets.semanticErr); + final Set v = coreGraphs.vertex; + final Set l = coreGraphs.link; + final Set e = coreGraphs.edge; + final Set viz = coreGraphs.visibility; + final Set s = coreGraphs.superSetReference; + final int kernelComplexity = identityFactory.kernelComplexity(); + final Set root = Root.root; + final Set g0 = g; + + } + +} diff --git a/src/trunk/org.gmodel.kernel.testbench/src/org/gmodel/testbench/TestSequence.java b/src/trunk/org.gmodel.kernel.testbench/src/org/gmodel/testbench/TestSequence.java new file mode 100644 index 0000000..283e92b --- /dev/null +++ b/src/trunk/org.gmodel.kernel.testbench/src/org/gmodel/testbench/TestSequence.java @@ -0,0 +1,302 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.testbench; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.api.Instantiation.addDisjunctSemanticIdentitySet; +import static org.gmodel.api.Instantiation.addSemanticDomain; +import static org.gmodel.api.Instantiation.link; + +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models2.EnterpriseArchitecture; +import org.gmodel.api.models2.RepositoryStructure; +import org.gmodel.api.models2.Visualization; +import org.gmodel.core.SemanticIdentityRegistry; + +public class TestSequence { + + private static SemanticIdentityRegistry nameRegistry; + // just for the fun of it we create an instance of an edge + public static final Set testDomain = addSemanticDomain("test domain", "test domains", GmodelSemanticDomains.finiteSets); + public static final Set whoToWho = link(coreGraphs.edge, addDisjunctSemanticIdentitySet("who to who", "set of who to who", testDomain), +// F_SemanticStateOfInMemoryModel.addAnonymousDisjunctSemanticIdentitySet(testDomain), EnterpriseArchitecture.who, + EnterpriseArchitecture.who, EnterpriseArchitecture.who, + GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_FALSE, +// F_SemanticStateOfInMemoryModel.addAnonymousDisjunctSemanticIdentitySet(testDomain), EnterpriseArchitecture.who, + EnterpriseArchitecture.who, EnterpriseArchitecture.who, + GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_FALSE); + + + public static void run() { + + //EcoreEmulation.run(); + // Jorn: visualizationExample can only run one, as part of KernelTestSequence, otherwise leads to cardinality violation + //visualizationExample(); + + } + + public static final Set acmeEA = RepositoryStructure.domainengineering.addConcrete(EnterpriseArchitecture.enterpriseArchitectureGraph, + addDisjunctSemanticIdentitySet("ACME Enterprise Architecture", "set of ACME Enterprise Architecture", testDomain)); + + public static final Set acmeMelbourne = RepositoryStructure.applicationengineering.addConcrete(acmeEA, + addDisjunctSemanticIdentitySet("ACME Melbourne Enterprise Architecture", "set of ACME Melbourne Enterprise Architecture", testDomain)); + + public static final Set entityrelationshipschema = RepositoryStructure.domainengineering.addConcrete(coreGraphs.vertex, + addDisjunctSemanticIdentitySet("entity relationship schema", "entity relationship schemas", testDomain)); + public static final Set hierarchicalerschema = RepositoryStructure.domainengineering.addConcrete(coreGraphs.vertex, + addDisjunctSemanticIdentitySet("hierarchical entity relationship schema", "hierarchical entity relationship schemas", testDomain)); + + public static final Set crm = RepositoryStructure.applicationengineering.addConcrete(entityrelationshipschema, + addDisjunctSemanticIdentitySet("customer relationship management", "customer relationship management", testDomain)); + public static final Set entity = entityrelationshipschema.addConcrete(coreGraphs.vertex, addDisjunctSemanticIdentitySet("entity", "entities" , testDomain)); + + public static Set crm_product = crm.addConcrete(entity, + addDisjunctSemanticIdentitySet("product", "products" , testDomain)); + + public static Set attribute = entityrelationshipschema.addConcrete(coreGraphs.vertex, + Instantiation.addDisjunctSemanticIdentitySet("attribute", "attributes" , testDomain)); + + public static Set entity_to_attribute = Instantiation.link(coreGraphs.edge, + Instantiation.addDisjunctSemanticIdentitySet("owner", "owners" , testDomain), + Instantiation.addDisjunctSemanticIdentitySet("entity to attribute", "entity to attribute", testDomain), + entity, + GmodelSemanticDomains.minCardinality_1, + GmodelSemanticDomains.maxCardinality_1, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_TRUE, + Instantiation.addDisjunctSemanticIdentitySet("attribute", "attributes" , testDomain), + attribute, + GmodelSemanticDomains.minCardinality_0, + GmodelSemanticDomains.maxCardinality_n, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE + ); + + public static Set price = crm.addConcrete(attribute, + Instantiation.addDisjunctSemanticIdentitySet("price", "prices" , testDomain)); + + public static Set product_to_price = Instantiation.link(entity_to_attribute, + Instantiation.addDisjunctSemanticIdentitySet("owner", "owners" , testDomain), + Instantiation.addDisjunctSemanticIdentitySet("crm product to price", "crm product to price", testDomain), + crm_product, + GmodelSemanticDomains.minCardinality_1, + GmodelSemanticDomains.maxCardinality_1, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_TRUE, + Instantiation.addDisjunctSemanticIdentitySet("price", "prices" , testDomain), + price, + GmodelSemanticDomains.minCardinality_0, + GmodelSemanticDomains.maxCardinality_n, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE + ); + + + public static Set order = crm.addConcrete(entity, + Instantiation.addDisjunctSemanticIdentitySet("order", "orders", testDomain)); + + + public static final Set crm_aviz = RepositoryStructure.graphVisualizations.addConcrete(Visualization.graphVisualization, + addDisjunctSemanticIdentitySet("crm schema container visualizedGraph", "crm schema container graphVisualizations", testDomain)); + + public static Set crm_viz_structure_diag_product; + + public static void visualizationExample() { + final Set crm_viz = crm_aviz.addConcrete(Visualization.visualizedGraph, + addDisjunctSemanticIdentitySet("crm schema visualizedGraph", "crm schema graphVisualizations", testDomain)); + + final Set crm_viz_details = crm_aviz.addConcrete(Visualization.details, + addDisjunctSemanticIdentitySet("crm schema visualizedGraph | details", "crm schema visualizedGraph | details", testDomain)); + + final Set crm_viz_structure = crm_aviz.addConcrete(Visualization.structure, + addDisjunctSemanticIdentitySet("crm schema visualizedGraph | structure", "crm schema visualizedGraph | structures", testDomain)); + + final Set crm_viz_reuse = crm_aviz.addConcrete(Visualization.reuse, + addDisjunctSemanticIdentitySet("crm schema visualizedGraph | reuse", "crm schema visualizedGraph | reuses", testDomain)); + + final Set crm_viz_visibilities = crm_aviz.addConcrete(Visualization.visibilities, + addDisjunctSemanticIdentitySet("crm schema visualizedGraph | visibilities", "crm schema visualizedGraph | visibilities", testDomain)); + + // add diagram information + final Set crm_viz_structure_diag = crm_aviz.addConcrete(Visualization.diagram, + addDisjunctSemanticIdentitySet("crm schema visualizedGraph | structure diag 1", "crm schema visualizedGraph | structure diag 1", testDomain)); + link(Visualization.visualizedAspect_to_diagram, + GmodelSemanticDomains.anonymous, crm_viz_structure, + crm_viz_structure, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_TRUE, + crm_viz_structure_diag, + crm_viz_structure_diag, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + + // add representation information + crm_viz_structure_diag_product = crm_aviz.addConcrete(Visualization.representation, + addDisjunctSemanticIdentitySet("crm schema visualizedGraph | structure diag 1 | product", "crm schema visualizedGraph | structure diag 1 | product", testDomain)); + link(Visualization.diagram_to_representation, + GmodelSemanticDomains.anonymous, crm_viz_structure_diag, + crm_viz_structure_diag, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_TRUE, + crm_viz_structure_diag_product, + crm_viz_structure_diag_product, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + // add icon to representation + final Set crm_viz_structure_diag_product_icon = crm_aviz.addConcrete(Visualization.symbol, + addDisjunctSemanticIdentitySet("crm schema visualizedGraph | structure diag 1 | product icon", "crm schema visualizedGraph | structure diag 1 | product icon", testDomain)); + crm_viz_structure_diag_product_icon.identity().setPayload("here goes the content of the icon file"); + link(Visualization.symbol_to_semantic_identity, + GmodelSemanticDomains.anonymous, crm_viz_structure_diag_product_icon, + crm_viz_structure_diag_product_icon, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_TRUE, + crm_viz_structure_diag_product.semanticIdentity(), + crm_viz_structure_diag_product.semanticIdentity(), + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + // add coordinates to representation + final Set crm_viz_structure_diag_product_x = crm_aviz.addConcrete(Visualization.x, + addDisjunctSemanticIdentitySet("crm schema visualizedGraph | structure diag 1 | product x", "crm schema visualizedGraph | structure diag 1 | product x", testDomain)); + crm_viz_structure_diag_product_x.identity().setPayload("57"); + link(Visualization.representation_to_x, + GmodelSemanticDomains.anonymous, crm_viz_structure_diag_product, + crm_viz_structure_diag_product, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_TRUE, + crm_viz_structure_diag_product_x, + crm_viz_structure_diag_product_x, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + final Set crm_viz_structure_diag_product_y = crm_aviz.addConcrete(Visualization.y, + addDisjunctSemanticIdentitySet("crm schema visualizedGraph | structure diag 1 | product y", "crm schema visualizedGraph | structure diag 1 | product y", testDomain)); + crm_viz_structure_diag_product_y.identity().setPayload("4"); + link(Visualization.representation_to_y, + GmodelSemanticDomains.anonymous, crm_viz_structure_diag_product, + crm_viz_structure_diag_product, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_TRUE, + crm_viz_structure_diag_product_y, + crm_viz_structure_diag_product_y, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + final Set crm_viz_structure_diag_product_z = crm_aviz.addConcrete(Visualization.z, + addDisjunctSemanticIdentitySet("crm schema visualizedGraph | structure diag 1 | product z", "crm schema visualizedGraph | structure diag 1 | product z", testDomain)); + crm_viz_structure_diag_product_z.identity().setPayload("0"); + link(Visualization.representation_to_z, + GmodelSemanticDomains.anonymous, crm_viz_structure_diag_product, + crm_viz_structure_diag_product, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_TRUE, + crm_viz_structure_diag_product_z, + crm_viz_structure_diag_product_z, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + /* *** exclude as this causes cardinality violation if script is run more than once + F_SemanticStateOfInMemoryModel.link(Visualization.visualizedGraph_to_graph, + F_SemanticStateOfInMemoryModel.GmodelSemanticDomains.anonymous, crm_viz, + crm_viz, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE, + crm, + crm, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + + F_SemanticStateOfInMemoryModel.link(Visualization.representation_to_representedInstance, + F_SemanticStateOfInMemoryModel.GmodelSemanticDomains.anonymous, crm_viz_structure_diag_product, + crm_viz_structure_diag_product, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE, + crm_product, + crm_product, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + *** exclude as this causes cardinality violation if script is run more than once */ + + } + + public static Set createGraphVisualization(final Set semanticDomain) { + final Set gv = RepositoryStructure.graphVisualizations.addConcrete(Visualization.graphVisualization, semanticDomain); + final Set v = gv.addConcrete(Visualization.visualizedGraph, semanticDomain); + + final Set vg_to_semanticDomain = link(Visualization.visualizedGraph_to_graph, + Visualization.visualizedGraph_to_graph, + Visualization.visualizedGraph, + v, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, + GmodelSemanticDomains.isContainer_FALSE, + semanticDomain, + semanticDomain, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, + GmodelSemanticDomains.isContainer_FALSE); + + final Set details = gv.addConcrete(Visualization.details,Visualization.details); + final Set structure = gv.addConcrete(Visualization.structure,Visualization.structure); + final Set reuse = gv.addConcrete(Visualization.reuse,Visualization.reuse); + final Set visibilities = gv.addConcrete(Visualization.visibilities,Visualization.visibilities); + return gv; + } + + public static void addIcon(final Set semanticIdentity, final String iconFile) { + final Set semanticDomain = semanticIdentity.container(); + + Set graphVisualization = GmodelSemanticDomains.is_UNKNOWN;; + for (final Set gv : RepositoryStructure.graphVisualizations.filterPolymorphic(Visualization.graphVisualization)) { + for (final Set v_to_vg : gv.filterPolymorphic(Visualization.visualizedGraph_to_graph)) { + if (v_to_vg.to().isEqualTo(semanticDomain)) { + graphVisualization = gv; + } + } + } + if (graphVisualization.isEqualTo(GmodelSemanticDomains.is_UNKNOWN)) { + graphVisualization = createGraphVisualization(semanticDomain); + } + + + // add icon to representation + for (final Set s_to_si : graphVisualization.filterPolymorphic(Visualization.symbol_to_semantic_identity)) { + if (s_to_si.to().isEqualTo(semanticIdentity) + && s_to_si.toEdgeEnd().isEqualTo(semanticIdentity) ) { + final Set symbol = s_to_si.from(); + } + } + + + final Set icon = graphVisualization.addConcrete(Visualization.symbol, Visualization.symbol); + icon.identity().setPayload(iconFile); + link(Visualization.symbol_to_semantic_identity, + GmodelSemanticDomains.anonymous, + //SemanticExtensionsDomain.theDefault, + icon, + icon, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_TRUE, + semanticIdentity, + semanticIdentity, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + + } + +} diff --git a/src/trunk/org.gmodel.kernel.tests/.classpath b/src/trunk/org.gmodel.kernel.tests/.classpath new file mode 100644 index 0000000..454a29c --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/trunk/org.gmodel.kernel.tests/.project b/src/trunk/org.gmodel.kernel.tests/.project new file mode 100644 index 0000000..a70bdb4 --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/.project @@ -0,0 +1,34 @@ + + + org.gmodel.kernel.tests + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.xtend.shared.ui.xtendBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + org.eclipse.xtend.shared.ui.xtendXPandNature + + diff --git a/src/trunk/org.gmodel.kernel.tests/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.kernel.tests/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..8f6dc3d --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,70 @@ +#Wed May 13 15:07:03 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.kernel.tests/.settings/org.eclipse.jdt.ui.prefs b/src/trunk/org.gmodel.kernel.tests/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000..d20f2b5 --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,54 @@ +#Mon Jun 01 15:10:28 CEST 2009 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=false +sp_cleanup.format_source_code=false +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/src/trunk/org.gmodel.kernel.tests/.settings/org.eclipse.xtend.shared.ui.prefs b/src/trunk/org.gmodel.kernel.tests/.settings/org.eclipse.xtend.shared.ui.prefs new file mode 100644 index 0000000..c626ccc --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/.settings/org.eclipse.xtend.shared.ui.prefs @@ -0,0 +1,4 @@ +#Tue May 18 19:37:36 CEST 2010 +eclipse.preferences.version=1 +metamodelContributor=org.gmodel.openarchitectureware.ui.GmodelMetamodelContributor +project.specific.metamodel=true diff --git a/src/trunk/org.gmodel.kernel.tests/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.kernel.tests/META-INF/MANIFEST.MF new file mode 100644 index 0000000..8b14d4a --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/META-INF/MANIFEST.MF @@ -0,0 +1,10 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.kernel.tests +Bundle-SymbolicName: org.gmodel.kernel.tests +Bundle-Version: 1.0.0 +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Require-Bundle: org.gmodel.kernel;bundle-version="1.0.0",org.junit4 +Bundle-ActivationPolicy: lazy +Export-Package: org.gmodel.kernel.artifactinstantiation, + org.gmodel.kernel.tests diff --git a/src/trunk/org.gmodel.kernel.tests/build.properties b/src/trunk/org.gmodel.kernel.tests/build.properties new file mode 100644 index 0000000..7efa428 --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = target/classes/ +bin.includes = META-INF/,\ + . diff --git a/src/trunk/org.gmodel.kernel.tests/org.gmodel.kernel.tests.launch b/src/trunk/org.gmodel.kernel.tests/org.gmodel.kernel.tests.launch new file mode 100644 index 0000000..20d8f6c --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/org.gmodel.kernel.tests.launch @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/trunk/org.gmodel.kernel.tests/pom.xml b/src/trunk/org.gmodel.kernel.tests/pom.xml new file mode 100644 index 0000000..45e709c --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/pom.xml @@ -0,0 +1,10 @@ + + 4.0.0 + + org.gmodel + org.gmodel.eclipse + 1.0.0 + + org.gmodel.kernel.tests + eclipse-test-plugin + \ No newline at end of file diff --git a/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/artifactinstantiation/Ecore.ecore b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/artifactinstantiation/Ecore.ecore new file mode 100644 index 0000000..fbc688d --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/artifactinstantiation/Ecore.ecore @@ -0,0 +1,357 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + +
+ + + + +
+
+ + + + +
+ + + + +
+ + + + +
+
+ + + + + +
+
+ + + + + + +
+ + + + +
+
+ + + + + + + + +
+ + + + +
+
+ + + + +
+ + + + +
+
+ + + + + + +
+ + + + +
+
+ + + + + + + +
+ + + + +
+
+ + + + +
+ + + + + + + + diff --git a/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/artifactinstantiation/InstantiationSequences.java b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/artifactinstantiation/InstantiationSequences.java new file mode 100644 index 0000000..098ba99 --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/artifactinstantiation/InstantiationSequences.java @@ -0,0 +1,258 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.kernel.artifactinstantiation; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.api.Instantiation.addDisjunctSemanticIdentitySet; +import static org.gmodel.api.Instantiation.addSemanticDomain; +import static org.gmodel.api.Instantiation.link; + +import org.gmodel.Set; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models2.EnterpriseArchitecture; +import org.gmodel.api.models2.RepositoryStructure; +import org.gmodel.api.models2.Visualization; +import org.gmodel.core.SemanticIdentityRegistry; + +public class InstantiationSequences { + + private static SemanticIdentityRegistry nameRegistry; + // just for the fun of it we create an instance of an edge + public static final Set testDomain = addSemanticDomain("test domain", "test domains", GmodelSemanticDomains.finiteSets); + public static final Set whoToWho = link(coreGraphs.edge, addDisjunctSemanticIdentitySet("who to who", "set of who to who", testDomain), +// F_SemanticStateOfInMemoryModel.addAnonymousDisjunctSemanticIdentitySet(testDomain), EnterpriseArchitecture.who, + EnterpriseArchitecture.who, EnterpriseArchitecture.who, + GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_FALSE, +// F_SemanticStateOfInMemoryModel.addAnonymousDisjunctSemanticIdentitySet(testDomain), EnterpriseArchitecture.who, + EnterpriseArchitecture.who, EnterpriseArchitecture.who, + GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_FALSE); + + + public static void run() { + RunInstantiationSequence.run(); + } + + public static final Set acmeEA = RepositoryStructure.domainengineering.addConcrete(EnterpriseArchitecture.enterpriseArchitectureGraph, + addDisjunctSemanticIdentitySet("ACME Enterprise Architecture", "set of ACME Enterprise Architecture", testDomain)); + + public static final Set acmeMelbourne = RepositoryStructure.applicationengineering.addConcrete(acmeEA, + addDisjunctSemanticIdentitySet("ACME Melbourne Enterprise Architecture", "set of ACME Melbourne Enterprise Architecture", testDomain)); + + public static final Set entityrelationshipschema = RepositoryStructure.domainengineering.addConcrete(coreGraphs.vertex, + addDisjunctSemanticIdentitySet("entity relationship schema", "entity relationship schemas", testDomain)); + public static final Set hierarchicalerschema = RepositoryStructure.domainengineering.addConcrete(coreGraphs.vertex, + addDisjunctSemanticIdentitySet("hierarchical entity relationship schema", "hierarchical entity relationship schemas", testDomain)); + + public static final Set crm = RepositoryStructure.applicationengineering.addConcrete(entityrelationshipschema, + addDisjunctSemanticIdentitySet("customer relationship management", "customer relationship management", testDomain)); + public static final Set entity = entityrelationshipschema.addConcrete(coreGraphs.vertex, addDisjunctSemanticIdentitySet("entity", "entities" , testDomain)); + + public static final Set crm_product = crm.addConcrete(entity, + addDisjunctSemanticIdentitySet("product", "products" , testDomain)); + + public static Set product_to_price; + public static Set order; + + + public static final Set crm_aviz = RepositoryStructure.graphVisualizations.addConcrete(Visualization.graphVisualization, + addDisjunctSemanticIdentitySet("crm schema container visualizedGraph", "crm schema container graphVisualizations", testDomain)); + + public static Set crm_viz_structure_diag_product; + + public static void visualizationExample() { + final Set crm_viz = crm_aviz.addConcrete(Visualization.visualizedGraph, + addDisjunctSemanticIdentitySet("crm schema visualizedGraph", "crm schema graphVisualizations", testDomain)); + + final Set crm_viz_details = crm_aviz.addConcrete(Visualization.details, + addDisjunctSemanticIdentitySet("crm schema visualizedGraph | details", "crm schema visualizedGraph | details", testDomain)); + + final Set crm_viz_structure = crm_aviz.addConcrete(Visualization.structure, + addDisjunctSemanticIdentitySet("crm schema visualizedGraph | structure", "crm schema visualizedGraph | structures", testDomain)); + + final Set crm_viz_reuse = crm_aviz.addConcrete(Visualization.reuse, + addDisjunctSemanticIdentitySet("crm schema visualizedGraph | reuse", "crm schema visualizedGraph | reuses", testDomain)); + + final Set crm_viz_visibilities = crm_aviz.addConcrete(Visualization.visibilities, + addDisjunctSemanticIdentitySet("crm schema visualizedGraph | visibilities", "crm schema visualizedGraph | visibilities", testDomain)); + + // add diagram information + final Set crm_viz_structure_diag = crm_aviz.addConcrete(Visualization.diagram, + addDisjunctSemanticIdentitySet("crm schema visualizedGraph | structure diag 1", "crm schema visualizedGraph | structure diag 1", testDomain)); + link(Visualization.visualizedAspect_to_diagram, + GmodelSemanticDomains.anonymous, crm_viz_structure, + crm_viz_structure, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_TRUE, + crm_viz_structure_diag, + crm_viz_structure_diag, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + + // add representation information + crm_viz_structure_diag_product = crm_aviz.addConcrete(Visualization.representation, + addDisjunctSemanticIdentitySet("crm schema visualizedGraph | structure diag 1 | product", "crm schema visualizedGraph | structure diag 1 | product", testDomain)); + link(Visualization.diagram_to_representation, + GmodelSemanticDomains.anonymous, crm_viz_structure_diag, + crm_viz_structure_diag, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_TRUE, + crm_viz_structure_diag_product, + crm_viz_structure_diag_product, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + // add icon to representation + final Set crm_viz_structure_diag_product_icon = crm_aviz.addConcrete(Visualization.symbol, + addDisjunctSemanticIdentitySet("crm schema visualizedGraph | structure diag 1 | product icon", "crm schema visualizedGraph | structure diag 1 | product icon", testDomain)); + crm_viz_structure_diag_product_icon.identity().setPayload("here goes the content of the icon file"); + link(Visualization.symbol_to_semantic_identity, + GmodelSemanticDomains.anonymous, crm_viz_structure_diag_product_icon, + crm_viz_structure_diag_product_icon, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_TRUE, + crm_viz_structure_diag_product.semanticIdentity(), + crm_viz_structure_diag_product.semanticIdentity(), + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + // add coordinates to representation + final Set crm_viz_structure_diag_product_x = crm_aviz.addConcrete(Visualization.x, + addDisjunctSemanticIdentitySet("crm schema visualizedGraph | structure diag 1 | product x", "crm schema visualizedGraph | structure diag 1 | product x", testDomain)); + crm_viz_structure_diag_product_x.identity().setPayload("57"); + link(Visualization.representation_to_x, + GmodelSemanticDomains.anonymous, crm_viz_structure_diag_product, + crm_viz_structure_diag_product, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_TRUE, + crm_viz_structure_diag_product_x, + crm_viz_structure_diag_product_x, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + final Set crm_viz_structure_diag_product_y = crm_aviz.addConcrete(Visualization.y, + addDisjunctSemanticIdentitySet("crm schema visualizedGraph | structure diag 1 | product y", "crm schema visualizedGraph | structure diag 1 | product y", testDomain)); + crm_viz_structure_diag_product_y.identity().setPayload("4"); + link(Visualization.representation_to_y, + GmodelSemanticDomains.anonymous, crm_viz_structure_diag_product, + crm_viz_structure_diag_product, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_TRUE, + crm_viz_structure_diag_product_y, + crm_viz_structure_diag_product_y, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + final Set crm_viz_structure_diag_product_z = crm_aviz.addConcrete(Visualization.z, + addDisjunctSemanticIdentitySet("crm schema visualizedGraph | structure diag 1 | product z", "crm schema visualizedGraph | structure diag 1 | product z", testDomain)); + crm_viz_structure_diag_product_z.identity().setPayload("0"); + link(Visualization.representation_to_z, + GmodelSemanticDomains.anonymous, crm_viz_structure_diag_product, + crm_viz_structure_diag_product, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_TRUE, + crm_viz_structure_diag_product_z, + crm_viz_structure_diag_product_z, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + /* *** exclude as this causes cardinality violation if script is run more than once + F_SemanticStateOfInMemoryModel.link(Visualization.visualizedGraph_to_graph, + F_SemanticStateOfInMemoryModel.GmodelSemanticDomains.anonymous, crm_viz, + crm_viz, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE, + crm, + crm, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + + F_SemanticStateOfInMemoryModel.link(Visualization.representation_to_representedInstance, + F_SemanticStateOfInMemoryModel.GmodelSemanticDomains.anonymous, crm_viz_structure_diag_product, + crm_viz_structure_diag_product, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE, + crm_product, + crm_product, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + *** exclude as this causes cardinality violation if script is run more than once */ + + } + + public static Set createGraphVisualization(final Set semanticDomain) { + final Set gv = RepositoryStructure.graphVisualizations.addConcrete(Visualization.graphVisualization, semanticDomain); + final Set v = gv.addConcrete(Visualization.visualizedGraph, semanticDomain); + + final Set vg_to_semanticDomain = link(Visualization.visualizedGraph_to_graph, + Visualization.visualizedGraph_to_graph, + Visualization.visualizedGraph, + v, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, + GmodelSemanticDomains.isContainer_FALSE, + semanticDomain, + semanticDomain, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, + GmodelSemanticDomains.isContainer_FALSE); + + final Set details = gv.addConcrete(Visualization.details,Visualization.details); + final Set structure = gv.addConcrete(Visualization.structure,Visualization.structure); + final Set reuse = gv.addConcrete(Visualization.reuse,Visualization.reuse); + final Set visibilities = gv.addConcrete(Visualization.visibilities,Visualization.visibilities); + return gv; + } + + public static void addIcon(final Set semanticIdentity, final String iconFile) { + final Set semanticDomain = semanticIdentity.container(); + + Set graphVisualization = GmodelSemanticDomains.is_UNKNOWN;; + for (final Set gv : RepositoryStructure.graphVisualizations.filterPolymorphic(Visualization.graphVisualization)) { + for (final Set v_to_vg : gv.filterPolymorphic(Visualization.visualizedGraph_to_graph)) { + if (v_to_vg.to().isEqualTo(semanticDomain)) { + graphVisualization = gv; + } + } + } + if (graphVisualization.isEqualTo(GmodelSemanticDomains.is_UNKNOWN)) { + graphVisualization = createGraphVisualization(semanticDomain); + } + + + // add icon to representation + for (final Set s_to_si : graphVisualization.filterPolymorphic(Visualization.symbol_to_semantic_identity)) { + if (s_to_si.to().isEqualTo(semanticIdentity) + && s_to_si.toEdgeEnd().isEqualTo(semanticIdentity) ) { + final Set symbol = s_to_si.from(); + } + } + + + final Set icon = graphVisualization.addConcrete(Visualization.symbol, Visualization.symbol); + icon.identity().setPayload(iconFile); + link(Visualization.symbol_to_semantic_identity, + GmodelSemanticDomains.anonymous, + //SemanticExtensionsDomain.theDefault, + icon, + icon, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_TRUE, + semanticIdentity, + semanticIdentity, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + + } + +} diff --git a/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/artifactinstantiation/KernelTestSequence.java b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/artifactinstantiation/KernelTestSequence.java new file mode 100644 index 0000000..ba789b9 --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/artifactinstantiation/KernelTestSequence.java @@ -0,0 +1,81 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.kernel.artifactinstantiation; + +import static org.gmodel.G.coreGraphs; + +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models2.EnterpriseArchitecture; +import org.gmodel.api.models2.RepositoryStructure; +import org.gmodel.api.models2.Visualization; +import org.gmodel.core.SemanticIdentityRegistry; + +public class KernelTestSequence { + + private static SemanticIdentityRegistry nameRegistry; + // just for the fun of it we create an instance of an edge + public static final Set testDomain = Instantiation.addSemanticDomain("test domain", "test domains", GmodelSemanticDomains.finiteSets); + public static final Set whoToWho = Instantiation.link(coreGraphs.edge, Instantiation.addDisjunctSemanticIdentitySet("who to who", "set of who to who", testDomain), +// F_SemanticStateOfInMemoryModel.addAnonymousDisjunctSemanticIdentitySet(testDomain), EnterpriseArchitecture.who, + EnterpriseArchitecture.who, EnterpriseArchitecture.who, + GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_FALSE, +// F_SemanticStateOfInMemoryModel.addAnonymousDisjunctSemanticIdentitySet(testDomain), EnterpriseArchitecture.who, + EnterpriseArchitecture.who, EnterpriseArchitecture.who, + GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_FALSE); + + + public static void run() { + // empty for now + } + + public static final Set acmeEA = RepositoryStructure.domainengineering.addConcrete(EnterpriseArchitecture.enterpriseArchitectureGraph, + Instantiation.addDisjunctSemanticIdentitySet("ACME Enterprise Architecture", "set of ACME Enterprise Architecture", testDomain)); + + public static final Set acmeMelbourne = RepositoryStructure.applicationengineering.addConcrete(acmeEA, + Instantiation.addDisjunctSemanticIdentitySet("ACME Melbourne Enterprise Architecture", "set of ACME Melbourne Enterprise Architecture", testDomain)); + + public static final Set entityrelationshipschema = RepositoryStructure.domainengineering.addConcrete(coreGraphs.vertex, + Instantiation.addDisjunctSemanticIdentitySet("entity relationship schema", "entity relationship schemas", testDomain)); + public static final Set hierarchicalerschema = RepositoryStructure.domainengineering.addConcrete(coreGraphs.vertex, + Instantiation.addDisjunctSemanticIdentitySet("hierarchical entity relationship schema", "hierarchical entity relationship schemas", testDomain)); + + public static final Set crm = RepositoryStructure.applicationengineering.addConcrete(entityrelationshipschema, + Instantiation.addDisjunctSemanticIdentitySet("customer relationship management", "customer relationship management", testDomain)); + public static final Set entity = entityrelationshipschema.addConcrete(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("entity", "entities" , testDomain)); + + public static final Set crm_product = crm.addConcrete(entity, + Instantiation.addDisjunctSemanticIdentitySet("product", "products" , testDomain)); + + + + public static final Set crm_aviz = RepositoryStructure.graphVisualizations.addConcrete(Visualization.graphVisualization, + Instantiation.addDisjunctSemanticIdentitySet("crm schema container visualizedGraph", "crm schema container graphVisualizations", testDomain)); + + + +} diff --git a/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/artifactinstantiation/RunInstantiationSequence.java b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/artifactinstantiation/RunInstantiationSequence.java new file mode 100644 index 0000000..6ea19b4 --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/artifactinstantiation/RunInstantiationSequence.java @@ -0,0 +1,39 @@ +package org.gmodel.kernel.artifactinstantiation; + +import org.gmodel.kernel.tests.ArtefactDerivationTest; +import org.gmodel.kernel.tests.EcoreEmulationTest; +import org.gmodel.kernel.tests.EnterpriseArchitectureModellingTest; +import org.gmodel.kernel.tests.EntityRelationshipModellingTest; +import org.gmodel.kernel.tests.EventHandlingTest; +import org.gmodel.kernel.tests.GmodelTestCase; +import org.gmodel.kernel.tests.GraphVisualisationCreationTest; +import org.gmodel.kernel.tests.InformationQualityLogicTest; +import org.gmodel.kernel.tests.InformationQualityLogicTestB; +import org.gmodel.kernel.tests.QueryTest; +import org.gmodel.kernel.tests.SemanticIdentityReconstitutionTest; +import org.gmodel.kernel.tests.VisualisationExampleTest; + +public class RunInstantiationSequence { + + public static void run() { + new RunInstantiationSequence(); + } + + private RunInstantiationSequence() { + execute(new ArtefactDerivationTest()); + execute(new EcoreEmulationTest()); + execute(new EnterpriseArchitectureModellingTest()); + execute(new EntityRelationshipModellingTest()); + execute(new GraphVisualisationCreationTest()); + execute(new InformationQualityLogicTest()); + execute(new InformationQualityLogicTestB()); + execute(new QueryTest()); + execute(new SemanticIdentityReconstitutionTest()); + execute(new VisualisationExampleTest()); + execute(new EventHandlingTest()); + } + + private void execute(final GmodelTestCase testCase) { + testCase.testInstantiationSequence(); + } +} diff --git a/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/ArtefactDerivationTest.java b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/ArtefactDerivationTest.java new file mode 100644 index 0000000..5bafbfe --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/ArtefactDerivationTest.java @@ -0,0 +1,72 @@ +package org.gmodel.kernel.tests; + +import static org.gmodel.G.coreGraphs; + +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.api.models.ArtifactDerivation; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.core.SemanticIdentityRegistry; +import org.gmodel.impl.DerivationCode; +import org.gmodel.kernel.artifactinstantiation.InstantiationSequences; + +public class ArtefactDerivationTest extends GmodelTestCase { + + @Override + protected void executeInstantiationSequence() { + final Set entityrelationshipschema = InstantiationSequences.entityrelationshipschema; + final Set testDomain = InstantiationSequences.testDomain; + final Set entity = InstantiationSequences.entity; + final SemanticIdentityRegistry path = SemanticIdentityRegistry.somePathInFileSystem; + + + final Set sqltabledefinition = entityrelationshipschema.addConcrete(ArtifactDerivation.derivedFile, + Instantiation.addDisjunctSemanticIdentitySet("sql table definition", "sql table definitions" , testDomain)); + final Set userviewdefinition = entityrelationshipschema.addConcrete(ArtifactDerivation.derivedFile, + Instantiation.addDisjunctSemanticIdentitySet("user view definition", "user view definitions" , testDomain)); + + final Set entityTargetLocation = org.gmodel.core.F_Instantiation.addDisjunctSemanticIdentitySetInKernel("some_path_in_filesystem", "some_path_in_filesystem" , GmodelSemanticDomains.gmodel, path.ordinal()); + + ArtifactDerivation.locationFunction.addElement(entityTargetLocation); + + final Set derived_sqltabledefinition_to_entity = Instantiation.link(ArtifactDerivation.derivationRule, + Instantiation.addDisjunctSemanticIdentitySet("SQL table definition to entity", "SQL table definition to entity", testDomain), + sqltabledefinition, + sqltabledefinition, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.isNavigable_FALSE, + GmodelSemanticDomains.isContainer_FALSE, + entity, + entity, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.isNavigable_FALSE, + GmodelSemanticDomains.isContainer_FALSE + ); + derived_sqltabledefinition_to_entity.addToValues(ArtifactDerivation.xpand); + derived_sqltabledefinition_to_entity.addToValues(entityTargetLocation); + + final Set derived_userviewdefinition_to_entity = Instantiation.link(ArtifactDerivation.derivationRule, + Instantiation.addDisjunctSemanticIdentitySet("user view definition to entity", "user view definition to entity", testDomain), + Instantiation.addAnonymousDisjunctSemanticIdentitySet(testDomain), + userviewdefinition, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.isNavigable_FALSE, + GmodelSemanticDomains.isContainer_FALSE, + entity, + entity, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.isNavigable_FALSE, + GmodelSemanticDomains.isContainer_FALSE + ); + derived_userviewdefinition_to_entity.addToValues(ArtifactDerivation.xpand); + derived_userviewdefinition_to_entity.addToValues(entityTargetLocation); + + // Execute the derivations for sqltabledefinitions + DerivationCode.execute(derived_sqltabledefinition_to_entity, entityrelationshipschema.filterFlavor(coreGraphs.vertex)); + } + +} diff --git a/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/Ecore.ecore b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/Ecore.ecore new file mode 100644 index 0000000..fbc688d --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/Ecore.ecore @@ -0,0 +1,357 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + +
+ + + + +
+
+ + + + +
+ + + + +
+ + + + +
+
+ + + + + +
+
+ + + + + + +
+ + + + +
+
+ + + + + + + + +
+ + + + +
+
+ + + + +
+ + + + +
+
+ + + + + + +
+ + + + +
+
+ + + + + + + +
+ + + + +
+
+ + + + +
+ + + + + + + + diff --git a/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/EcoreEmulationTest.java b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/EcoreEmulationTest.java new file mode 100644 index 0000000..74c8c01 --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/EcoreEmulationTest.java @@ -0,0 +1,502 @@ +package org.gmodel.kernel.tests; + +import static org.gmodel.G.coreGraphs; + +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models2.RepositoryStructure; + +public class EcoreEmulationTest extends GmodelTestCase { + + private Set EReference; + private Set EcoreDomain; + private Set eClassReference; + + // metamodel level + private Set ecoreERSchemaMM; + private Set ecoreERSchema; + private Set ecoreEntity; + private Set ecoreAttribute; + private Set ecoreRelationship; + + private Set eReference_SchemaToEntities; + private Set eReference_EntityToAttribute; + private Set eReference_SchemaToRelationships; + private Set eReference_RelationshipToSource; + private Set eReference_RelationshipToTarget; + + @Override + protected void executeInstantiationSequence() { + eclipseModellingFramework(); + ecoreERMetaModel(); + } + + public void eclipseModellingFramework() { + + EcoreDomain = Instantiation.addSemanticDomain("EcoreDomain", "EcoreDomain", GmodelSemanticDomains.finiteSets); + final Set ecore = Instantiation.addDisjunctSemanticIdentitySet("Ecore", "Ecore", EcoreDomain); + final Set eObject = Instantiation.addDisjunctSemanticIdentitySet("EObject", "EObjects", EcoreDomain); + final Set eModelElement = Instantiation.addDisjunctSemanticIdentitySet("EModelElement", "EModelElements", EcoreDomain); + final Set eAnnotation = Instantiation.addDisjunctSemanticIdentitySet("EAnnotation", "EAnnotation", EcoreDomain); + final Set eFactory = Instantiation.addDisjunctSemanticIdentitySet("EFactory", "EFactories", EcoreDomain); + final Set eNamedElement = Instantiation.addDisjunctSemanticIdentitySet("ENamedElement", "ENamedElements", EcoreDomain); + final Set ePackage = Instantiation.addDisjunctSemanticIdentitySet("EPackage", "EPackages", EcoreDomain); + final Set eClassifier = Instantiation.addDisjunctSemanticIdentitySet("EClassifier", "EClassifiers", EcoreDomain); + final Set eEnumLiteral = Instantiation.addDisjunctSemanticIdentitySet("EEnumLiteral", "EEnumLiterals", EcoreDomain); + final Set eTypedElement = Instantiation.addDisjunctSemanticIdentitySet("ETypedElement", "ETypedElements", EcoreDomain); + final Set eClass = Instantiation.addDisjunctSemanticIdentitySet("EClass", "EClasses", EcoreDomain); + final Set eDataType = Instantiation.addDisjunctSemanticIdentitySet("EDataType", "EDataTypes", EcoreDomain); + final Set eEnum = Instantiation.addDisjunctSemanticIdentitySet("EEnum", "EEnums", EcoreDomain); + final Set eStructuralFeature = Instantiation.addDisjunctSemanticIdentitySet("EStructuralFeature", "EStructuralFeatures", EcoreDomain); + final Set eOperation = Instantiation.addDisjunctSemanticIdentitySet("EOperation", "EOperations", EcoreDomain); + final Set eParameter = Instantiation.addDisjunctSemanticIdentitySet("EParameter", "EParameters", EcoreDomain); + final Set eAttribute = Instantiation.addDisjunctSemanticIdentitySet("EAttribute", "EAttributes", EcoreDomain); + final Set eReference = Instantiation.addDisjunctSemanticIdentitySet("EReference", "EReferences", EcoreDomain); + + final Set ecoreDataTypes = Instantiation.addDisjunctSemanticIdentitySet("EcoreDataTypes", "EcoreDataTypes", EcoreDomain); + final Set eBigDecimal = Instantiation.addDisjunctSemanticIdentitySet("EBigDecimal", "EBigDecimals", EcoreDomain); + final Set eBigInteger = Instantiation.addDisjunctSemanticIdentitySet("EBigInteger", "EBigIntegers", EcoreDomain); + final Set eBoolean = Instantiation.addDisjunctSemanticIdentitySet("EBoolean", "EBooleans", EcoreDomain); + final Set eBooleanObject = Instantiation.addDisjunctSemanticIdentitySet("EBooleanObject", "EBooleanObjects", EcoreDomain); + final Set eByte = Instantiation.addDisjunctSemanticIdentitySet("EByte", "EBytes", EcoreDomain); + final Set eByteArray = Instantiation.addDisjunctSemanticIdentitySet("EByteArray", "EByteArrays", EcoreDomain); + final Set eByteObject = Instantiation.addDisjunctSemanticIdentitySet("EByteObject", "EByteObjects", EcoreDomain); + final Set eChar = Instantiation.addDisjunctSemanticIdentitySet("EChar", "EChars", EcoreDomain); + final Set eCharacterObject = Instantiation.addDisjunctSemanticIdentitySet("ECharacterObject", "ECharacterObjects", EcoreDomain); + final Set eDate = Instantiation.addDisjunctSemanticIdentitySet("EDate", "EDates", EcoreDomain); + final Set eDiagnosticChain = Instantiation.addDisjunctSemanticIdentitySet("EDiagnosticChain", "EDiagnosticChains", EcoreDomain); + final Set eDouble = Instantiation.addDisjunctSemanticIdentitySet("EDouble", "EDoubles", EcoreDomain); + final Set eDoubleObject = Instantiation.addDisjunctSemanticIdentitySet("EDoubleObject", "EDoubleObjects", EcoreDomain); + final Set eList = Instantiation.addDisjunctSemanticIdentitySet("EList", "ELists", EcoreDomain); + final Set eEnumerator = Instantiation.addDisjunctSemanticIdentitySet("EEnumerator", "EEnumerators", EcoreDomain); + final Set eFeatureMap = Instantiation.addDisjunctSemanticIdentitySet("EFeatureMap", "EFeatureMaps", EcoreDomain); + final Set eFeatureMapEntry = Instantiation.addDisjunctSemanticIdentitySet("EFeatureMapEntry", "EFeatureMapEntrys", EcoreDomain); + final Set eFloat = Instantiation.addDisjunctSemanticIdentitySet("EFloat", "EFloats", EcoreDomain); + final Set eFloatObject = Instantiation.addDisjunctSemanticIdentitySet("EFloatObject", "EFloatObjects", EcoreDomain); + final Set eInt = Instantiation.addDisjunctSemanticIdentitySet("EInt", "EInts", EcoreDomain); + final Set eIntegerObject = Instantiation.addDisjunctSemanticIdentitySet("EIntegerObject", "EIntegerObjects", EcoreDomain); + final Set eJavaClass = Instantiation.addDisjunctSemanticIdentitySet("EJavaClass", "EJavaClasss", EcoreDomain); + final Set eJavaObject = Instantiation.addDisjunctSemanticIdentitySet("EJavaObject", "EJavaObjects", EcoreDomain); + final Set eLong = Instantiation.addDisjunctSemanticIdentitySet("ELong", "ELongs", EcoreDomain); + final Set eLongObject = Instantiation.addDisjunctSemanticIdentitySet("ELongObject", "ELongObjects", EcoreDomain); + final Set eMap = Instantiation.addDisjunctSemanticIdentitySet("EMap", "EMaps", EcoreDomain); + final Set eResource = Instantiation.addDisjunctSemanticIdentitySet("EResource", "EResources", EcoreDomain); + final Set eResourceSet = Instantiation.addDisjunctSemanticIdentitySet("EResourceSet", "EResourceSets", EcoreDomain); + final Set eShort = Instantiation.addDisjunctSemanticIdentitySet("EShort", "EShorts", EcoreDomain); + final Set eShortObject = Instantiation.addDisjunctSemanticIdentitySet("EShortObject", "EShortObjects", EcoreDomain); + final Set eString = Instantiation.addDisjunctSemanticIdentitySet("EString", "EStrings", EcoreDomain); + final Set eStringToStringMapEntry = Instantiation.addDisjunctSemanticIdentitySet("EStringToStringMapEntry", "EStringToStringMapEntrys", EcoreDomain); + final Set eTreeIterator = Instantiation.addDisjunctSemanticIdentitySet("ETreeIterator", "ETreeIterators", EcoreDomain); + + final Set source = Instantiation.addSemanticRole("source", "source", EcoreDomain, eString); + final Set details = Instantiation.addSemanticRole("details", "details", EcoreDomain, eString); + final Set name = Instantiation.addSemanticRole("name", "name", EcoreDomain, eString); + final Set instanceClassName = Instantiation.addSemanticRole("instanceClassName", "instanceClassName", EcoreDomain, eString); + final Set instanceClass = Instantiation.addSemanticRole("instanceClass", "instanceClass", EcoreDomain, eJavaClass); + final Set defaultValue = Instantiation.addSemanticRole("defaultValue", "defaultValue", EcoreDomain, eJavaObject); + final Set ordered = Instantiation.addSemanticRole("ordered", "ordered", EcoreDomain, eBoolean); + final Set unique = Instantiation.addSemanticRole("unique", "unique", EcoreDomain, eBoolean); + final Set lowerBound = Instantiation.addSemanticRole("lowerBound", "lowerBound", EcoreDomain, eInt); + final Set upperBound = Instantiation.addSemanticRole("upperBound", "upperBound", EcoreDomain, eInt); + final Set many = Instantiation.addSemanticRole("many", "many", EcoreDomain, eBoolean); + final Set required = Instantiation.addSemanticRole("required", "required", EcoreDomain, eBoolean); + final Set nsURI = Instantiation.addSemanticRole("nsURI", "nsURI", EcoreDomain, eString); + final Set nsPrefix = Instantiation.addSemanticRole("nsPrefix", "nsPrefix", EcoreDomain, eString); + final Set eCoreAbstract = Instantiation.addSemanticRole("abstract", "abstract", EcoreDomain, eBoolean); + final Set ecoreInterface = Instantiation.addSemanticRole("interface", "interface", EcoreDomain, eBoolean); + final Set serializable = Instantiation.addSemanticRole("serializable", "serializable", EcoreDomain, eBoolean); + final Set value = Instantiation.addSemanticRole("value", "value", EcoreDomain, eInt); + final Set instance = Instantiation.addSemanticRole("instance", "instance", EcoreDomain, eEnumerator); + final Set containment = Instantiation.addSemanticRole("containment", "containment", EcoreDomain, eBoolean); + final Set container = Instantiation.addSemanticRole("container", "container", EcoreDomain, eBoolean); + final Set resolveProxies = Instantiation.addSemanticRole("resolveProxies", "resolveProxies", EcoreDomain, eBoolean); + final Set iD = Instantiation.addSemanticRole("iD", "iD", EcoreDomain, eBoolean); + final Set changeable = Instantiation.addSemanticRole("changeable", "changeable", EcoreDomain, eBoolean); + final Set eCoreVolatile = Instantiation.addSemanticRole("eCoreVolatile", "eCoreVolatile", EcoreDomain, eBoolean); + final Set eCoreTransient = Instantiation.addSemanticRole("eCoreTransient", "eCoreTransient", EcoreDomain, eBoolean); + final Set defaultValueLiteral = Instantiation.addSemanticRole("defaultValueLiteral", "defaultValueLiteral", EcoreDomain, eString); + final Set unsettable = Instantiation.addSemanticRole("unsettable", "unsettable", EcoreDomain, eBoolean); + final Set derived = Instantiation.addSemanticRole("derived", "derived", EcoreDomain, eBoolean); + final Set stringKey = Instantiation.addSemanticRole("key", "key", EcoreDomain, eString); + final Set stringValue = Instantiation.addSemanticRole("value", "value", EcoreDomain, eString); + + final Set Ecore = RepositoryStructure.domainengineering.addConcrete(coreGraphs.vertex, ecore); + + final Set EObject = Ecore.addConcrete(coreGraphs.vertex,eObject); + final Set sr1 = Instantiation.link(coreGraphs.superSetReference, EObject, coreGraphs.vertex); + EReference = Instantiation.link(coreGraphs.edge, eReference, + EObject, EObject, GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n, GmodelSemanticDomains.isNavigable_FALSE, GmodelSemanticDomains.isContainer_FALSE, + Instantiation.addDisjunctSemanticIdentitySet("eReferenceType", "eReferenceType", EcoreDomain), EObject, GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_FALSE); + + final Set EModelElement = Ecore.addAbstract(EObject, eModelElement); + final Set sr2 = Instantiation.link(coreGraphs.superSetReference, EModelElement, EObject); + final Set EAnnotation = Ecore.addConcrete(EObject, eAnnotation); + final Set sr3 = Instantiation.link(coreGraphs.superSetReference, EAnnotation, EModelElement); + final Set EFactory = Ecore.addConcrete(EObject, eFactory); + final Set sr4 = Instantiation.link(coreGraphs.superSetReference, EFactory, EModelElement); + final Set ENamedElement = Ecore.addAbstract(EObject, eNamedElement); + final Set sr5 = Instantiation.link(coreGraphs.superSetReference, ENamedElement, EModelElement); + final Set EPackage = Ecore.addConcrete(EObject, ePackage); + final Set sr6 = Instantiation.link(coreGraphs.superSetReference, EPackage, ENamedElement); + final Set EClassifier = Ecore.addAbstract(EObject, eClassifier); + final Set sr7 = Instantiation.link(coreGraphs.superSetReference, EClassifier, ENamedElement); + final Set EEnumLiteral = Ecore.addConcrete(EObject, eEnumLiteral); + final Set sr8 = Instantiation.link(coreGraphs.superSetReference, EEnumLiteral, ENamedElement); + final Set ETypedElement = Ecore.addAbstract(EObject, eTypedElement); + final Set sr9 = Instantiation.link(coreGraphs.superSetReference, ETypedElement, ENamedElement); + final Set EClass = Ecore.addConcrete(EObject, eClass); + final Set sr10 = Instantiation.link(coreGraphs.superSetReference, EClass, EClassifier); + final Set EDataType = Ecore.addConcrete(EObject, eDataType); + final Set sr11 = Instantiation.link(coreGraphs.superSetReference, EDataType, EClassifier); + final Set EEnum = Ecore.addConcrete(EObject, eEnum); + final Set sr12 = Instantiation.link(coreGraphs.superSetReference, EEnum, EDataType); + final Set EStructuralFeature = Ecore.addAbstract(EObject, eStructuralFeature); + final Set sr13 = Instantiation.link(coreGraphs.superSetReference, EStructuralFeature, ETypedElement); + final Set EOperation = Ecore.addConcrete(EObject, eOperation); + final Set sr14 = Instantiation.link(coreGraphs.superSetReference, EOperation, ETypedElement); + final Set EParameter = Ecore.addConcrete(EObject, eParameter); + final Set sr15 = Instantiation.link(coreGraphs.superSetReference, EParameter, ETypedElement); + final Set EAttribute = Ecore.addConcrete(EObject, eAttribute); + final Set sr16 = Instantiation.link(coreGraphs.superSetReference, EAttribute, EStructuralFeature); + final Set sr17 = Instantiation.link(coreGraphs.superSetReference, EReference, EStructuralFeature); + + final Set vis1 = Instantiation.link(coreGraphs.visibility, RepositoryStructure.domainengineering, Ecore); + + final Set eModelElement_to_eAnnotations = linkByContainment(EModelElement, "eModelElement", "eAnnotations", EAnnotation); + final Set eFactoryInstance_to_ePackage = linkBySimpleReference(EFactory, "eFactoryInstance", "ePackage", EPackage); + final Set ePackage_to_eClassifiers = linkByContainment(EPackage, "ePackage", "eClassifiers", EClassifier); + final Set eSuperPackage_to_eSubpackages = linkByContainment(EPackage, "eSuperPackage", "eSubpackages", EPackage); + final Set eOperation_to_eParameters = linkByContainment(EOperation, "eOperation", "eParameters", EParameter); + final Set eOperation_to_eExceptions = linkBySimpleReference(EOperation, "eExceptions", EClassifier, GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n); + final Set eContainingClass_to_eOperations = linkByContainment(EClass, "eContainingClass", "eOperations", EOperation); + final Set eContainingClass_to_eStructuralFeatures = linkByContainment(EClass, "eContainingClass", "eStructuralFeatures", EStructuralFeature); + final Set to_eSuperTypes = linkBySimpleReference(EClass, "eSuperTypes", EClass, GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n); + // Set to_eOpposite = linkBySimpleReference(EReference, "eOpposite", EReference, GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_1); + final Set eEnum_to_eLiterals = linkByContainment(EEnum, "eEnum", "eLiterals", EEnumLiteral); + //Set eAnnotation_to_contents = linkByContainment(EAnnotation, "contents", EObject); + //Set eAnnotation_to_references = linkBySimpleReference(EAnnotation, "references", EObject, GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_1); + eClassReference = linkBySimpleReference(EClass, "eClassReference", EClass, GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n); + + final Set EcoreDataTypes = RepositoryStructure.domainengineering.addConcrete(coreGraphs.vertex, ecoreDataTypes); + final Set vis2 = Instantiation.link(coreGraphs.visibility, RepositoryStructure.domainengineering, EcoreDataTypes); + final Set vis3 = Instantiation.link(coreGraphs.visibility, Ecore, EcoreDataTypes); + + final Set EBigDecimal = EcoreDataTypes.addConcrete(EDataType, eBigDecimal); + final Set EBigInteger = EcoreDataTypes.addConcrete(EDataType, eBigInteger); + final Set EBoolean = EcoreDataTypes.addConcrete(EDataType, eBoolean); + final Set EBooleanObject = EcoreDataTypes.addConcrete(EDataType, eBooleanObject); + final Set EByte = EcoreDataTypes.addConcrete(EDataType, eByte); + final Set EByteArray = EcoreDataTypes.addConcrete(EDataType, eByteArray); + final Set EByteObject = EcoreDataTypes.addConcrete(EDataType, eByteObject); + final Set EChar = EcoreDataTypes.addConcrete(EDataType, eChar); + final Set ECharacterObject = EcoreDataTypes.addConcrete(EDataType, eCharacterObject); + final Set EDate = EcoreDataTypes.addConcrete(EDataType, eDate); + final Set EDiagnosticChain = EcoreDataTypes.addConcrete(EDataType, eDiagnosticChain); + final Set EDouble = EcoreDataTypes.addConcrete(EDataType, eDouble); + final Set EDoubleObject = EcoreDataTypes.addConcrete(EDataType, eDoubleObject); + final Set EList = EcoreDataTypes.addConcrete(EDataType, eList); + final Set EEnumerator = EcoreDataTypes.addConcrete(EDataType, eEnumerator); + final Set EFeatureMap = EcoreDataTypes.addConcrete(EDataType, eFeatureMap); + final Set EFeatureMapEntry = EcoreDataTypes.addConcrete(EDataType, eFeatureMapEntry); + final Set EFloat = EcoreDataTypes.addConcrete(EDataType, eFloat); + final Set EFloatObject = EcoreDataTypes.addConcrete(EDataType, eFloatObject); + final Set EInt = EcoreDataTypes.addConcrete(EDataType, eInt); + final Set EIntegerObject = EcoreDataTypes.addConcrete(EDataType, eIntegerObject); + final Set EJavaClass = EcoreDataTypes.addConcrete(EDataType, eJavaClass); + final Set EJavaObject = EcoreDataTypes.addConcrete(EDataType, eJavaObject); + final Set ELong = EcoreDataTypes.addConcrete(EDataType, eLong); + final Set ELongObject = EcoreDataTypes.addConcrete(EDataType, eLongObject); + final Set EMap = EcoreDataTypes.addConcrete(EDataType, eMap); + final Set EResource = EcoreDataTypes.addConcrete(EDataType, eResource); + final Set EResourceSet = EcoreDataTypes.addConcrete(EDataType, eResourceSet); + final Set EShort = EcoreDataTypes.addConcrete(EDataType, eShort); + final Set EShortObject = EcoreDataTypes.addConcrete(EDataType, eShortObject); + final Set EString = EcoreDataTypes.addConcrete(EDataType, eString); + final Set EStringToStringMapEntry = EcoreDataTypes.addConcrete(EDataType, eStringToStringMapEntry); + final Set ETreeIterator = EcoreDataTypes.addConcrete(EDataType, eTreeIterator); + + final Set sourceEString = EcoreDataTypes.addConcrete(EDataType, source); + final Set detailsEStringToStringMapEntry = EcoreDataTypes.addConcrete(EDataType, details); + final Set nameEString = EcoreDataTypes.addConcrete(EDataType, name); + final Set instanceClassNameEString = EcoreDataTypes.addConcrete(EDataType, instanceClassName); + final Set instanceClassEJavaClass = EcoreDataTypes.addConcrete(EDataType, instanceClass); + final Set defaultValueEJavaObject = EcoreDataTypes.addConcrete(EDataType, defaultValue); + final Set orderedEBoolean = EcoreDataTypes.addConcrete(EDataType, ordered); + final Set uniqueEBoolean = EcoreDataTypes.addConcrete(EDataType, unique); + final Set lowerBoundEInt = EcoreDataTypes.addConcrete(EDataType, lowerBound); + final Set upperBoundEInt = EcoreDataTypes.addConcrete(EDataType, upperBound); + final Set manyEBoolean = EcoreDataTypes.addConcrete(EDataType, many); + final Set requiredEBoolean = EcoreDataTypes.addConcrete(EDataType, required); + final Set nsURIEString = EcoreDataTypes.addConcrete(EDataType, nsURI); + final Set nsPrefixEString = EcoreDataTypes.addConcrete(EDataType, nsPrefix); + final Set abstractEBoolean = EcoreDataTypes.addConcrete(EDataType, eCoreAbstract); + final Set interfaceEBoolean = EcoreDataTypes.addConcrete(EDataType, ecoreInterface); + final Set serializableEBoolean = EcoreDataTypes.addConcrete(EDataType, serializable); + final Set valueEInt = EcoreDataTypes.addConcrete(EDataType, value); + final Set instanceEEnumerator = EcoreDataTypes.addConcrete(EDataType, instance); + final Set containmentEBoolean = EcoreDataTypes.addConcrete(EDataType, containment); + final Set containerEBoolean = EcoreDataTypes.addConcrete(EDataType, container); + final Set resolveProxiesEBoolean = EcoreDataTypes.addConcrete(EDataType, resolveProxies); + final Set iDEBoolean = EcoreDataTypes.addConcrete(EDataType, iD); + final Set changeableEBoolean = EcoreDataTypes.addConcrete(EDataType, changeable); + final Set volatileEBoolean = EcoreDataTypes.addConcrete(EDataType, eCoreVolatile); + final Set transientEBoolean = EcoreDataTypes.addConcrete(EDataType, eCoreTransient); + final Set defaultValueLiteralEString = EcoreDataTypes.addConcrete(EDataType, defaultValueLiteral); + final Set unsettableEBoolean = EcoreDataTypes.addConcrete(EDataType, unsettable); + final Set derivedEBoolean = EcoreDataTypes.addConcrete(EDataType, derived); + final Set keyEString = EcoreDataTypes.addConcrete(EDataType, stringKey); + final Set valueEString = EcoreDataTypes.addConcrete(EDataType, stringValue); + + + ecoreERSchemaMM = RepositoryStructure.domainengineering.addConcrete(EClass, + Instantiation.addDisjunctSemanticIdentitySet("ecoreERSchema Metamodel", "ecoreERSchema Metamodel", EcoreDomain)); + ecoreERSchema = ecoreERSchemaMM.addConcrete(EClass, + Instantiation.addDisjunctSemanticIdentitySet("ecoreERSchema", "ecoreERSchema", EcoreDomain)); + ecoreEntity = ecoreERSchemaMM.addConcrete(EClass, + Instantiation.addDisjunctSemanticIdentitySet("ecoreEntity", "ecoreEntity", EcoreDomain)); + ecoreAttribute = ecoreERSchemaMM.addConcrete(EClass, + Instantiation.addDisjunctSemanticIdentitySet("ecoreAttribute", "ecoreAttribute", EcoreDomain)); + ecoreRelationship = ecoreERSchemaMM.addConcrete(EClass, + Instantiation.addDisjunctSemanticIdentitySet("ecoreRelationship", "ecoreRelationship", EcoreDomain)); + + eReference_SchemaToEntities = refByContainment(ecoreERSchema, "Entities", ecoreEntity); + eReference_EntityToAttribute = refByContainment(ecoreEntity, "Attributes", ecoreAttribute); + eReference_SchemaToRelationships = refByContainment(ecoreERSchema, "Relationships", ecoreRelationship); + eReference_RelationshipToSource = refBySimpleToOne(ecoreRelationship, "Source", ecoreEntity); + eReference_RelationshipToTarget = refBySimpleToOne(ecoreRelationship, "Target", ecoreEntity); + + + + + ecore.addElement(eObject); + ecore.addElement(eModelElement); + ecore.addElement(eAnnotation); + ecore.addElement(eFactory); + ecore.addElement(eNamedElement); + ecore.addElement(ePackage); + ecore.addElement(eClassifier); + ecore.addElement(eEnumLiteral); + ecore.addElement(eTypedElement); + ecore.addElement(eClass); + ecore.addElement(eDataType); + ecore.addElement(eEnum); + ecore.addElement(eStructuralFeature); + ecore.addElement(eOperation); + ecore.addElement(eParameter); + ecore.addElement(eAttribute); + ecore.addElement(eReference); + + ecoreDataTypes.addElement(eBigDecimal); + ecoreDataTypes.addElement(eBigInteger); + ecoreDataTypes.addElement(eBoolean); + ecoreDataTypes.addElement(eBooleanObject); + ecoreDataTypes.addElement(eByte); + ecoreDataTypes.addElement(eByteArray); + ecoreDataTypes.addElement(eByteObject); + ecoreDataTypes.addElement(eChar); + ecoreDataTypes.addElement(eCharacterObject); + ecoreDataTypes.addElement(eDate); + ecoreDataTypes.addElement(eDiagnosticChain); + ecoreDataTypes.addElement(eDouble); + ecoreDataTypes.addElement(eDoubleObject); + ecoreDataTypes.addElement(eList); + ecoreDataTypes.addElement(eEnumerator); + ecoreDataTypes.addElement(eFeatureMap); + ecoreDataTypes.addElement(eFeatureMapEntry); + ecoreDataTypes.addElement(eFloat); + ecoreDataTypes.addElement(eFloatObject); + ecoreDataTypes.addElement(eInt); + ecoreDataTypes.addElement(eIntegerObject); + ecoreDataTypes.addElement(eJavaClass); + ecoreDataTypes.addElement(eJavaObject); + ecoreDataTypes.addElement(eLong); + ecoreDataTypes.addElement(eLongObject); + ecoreDataTypes.addElement(eMap); + ecoreDataTypes.addElement(eResource); + ecoreDataTypes.addElement(eResourceSet); + ecoreDataTypes.addElement(eShort); + ecoreDataTypes.addElement(eShortObject); + ecoreDataTypes.addElement(eString); + ecoreDataTypes.addElement(eStringToStringMapEntry); + ecoreDataTypes.addElement(eTreeIterator); + + EAnnotation.addToVariables(sourceEString); + EAnnotation.addToVariables(detailsEStringToStringMapEntry); + ENamedElement.addToVariables(sourceEString); + EClassifier.addToVariables(instanceClassNameEString); + EClassifier.addToVariables(instanceClassEJavaClass); + EClassifier.addToVariables(defaultValueEJavaObject); + ETypedElement.addToVariables(orderedEBoolean); + ETypedElement.addToVariables(uniqueEBoolean); + ETypedElement.addToVariables(lowerBoundEInt); + ETypedElement.addToVariables(upperBoundEInt); + ETypedElement.addToVariables(manyEBoolean); + ETypedElement.addToVariables(requiredEBoolean); + EPackage.addToVariables(nsURIEString); + EPackage.addToVariables(nsPrefixEString); + EClass.addToVariables(abstractEBoolean); + EClass.addToVariables(interfaceEBoolean); + EDataType.addToVariables(serializableEBoolean); + EEnumLiteral.addToVariables(valueEInt); + EEnumLiteral.addToVariables(instanceEEnumerator); + EReference.addToVariables(containmentEBoolean); + EReference.addToVariables(containerEBoolean); + EReference.addToVariables(resolveProxiesEBoolean); + EAttribute.addToVariables(iDEBoolean); + EStructuralFeature.addToVariables(changeableEBoolean); + EStructuralFeature.addToVariables(volatileEBoolean); + EStructuralFeature.addToVariables(transientEBoolean); + EStructuralFeature.addToVariables(defaultValueLiteralEString); + EStructuralFeature.addToVariables(defaultValueEJavaObject); + EStructuralFeature.addToVariables(unsettableEBoolean); + EStructuralFeature.addToVariables(derivedEBoolean); + EStringToStringMapEntry.addToVariables(keyEString); + EStringToStringMapEntry.addToVariables(valueEString); + + + } + + private final Set linkBySimpleReference(final Set fromElement, final String toRole, final Set toElement, final Set min, final Set max) { + return Instantiation.link(EReference, Instantiation.addDisjunctSemanticIdentitySet("ecore Uni-directional Simple Link", "ecore Uni-directional Simple Links", EcoreDomain), + fromElement, fromElement, GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n, GmodelSemanticDomains.isNavigable_FALSE, GmodelSemanticDomains.isContainer_FALSE, + Instantiation.addDisjunctSemanticIdentitySet(toRole, toRole, EcoreDomain), toElement, min, max, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_FALSE); + } + + private final Set linkBySimpleReference(final Set fromElement, final String fromRole, final String toRole, final Set toElement) { + return Instantiation.link(EReference, Instantiation.addDisjunctSemanticIdentitySet("ecore Bi-directional Simple Link", "ecore Bi-directional Simple Links", EcoreDomain), + Instantiation.addDisjunctSemanticIdentitySet(fromRole, fromRole, EcoreDomain), fromElement, GmodelSemanticDomains.minCardinality_1, GmodelSemanticDomains.maxCardinality_1, GmodelSemanticDomains.isNavigable_FALSE, GmodelSemanticDomains.isContainer_FALSE, + Instantiation.addDisjunctSemanticIdentitySet(toRole, toRole, EcoreDomain), toElement, GmodelSemanticDomains.minCardinality_1, GmodelSemanticDomains.maxCardinality_1, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_FALSE); + } + + private final Set linkByContainment(final Set fromElement, final String fromRole, final String toRole, final Set toElement) { + return Instantiation.link(EReference, Instantiation.addDisjunctSemanticIdentitySet("ecore Bi-directional Containment Link", "ecore Bi-directional Containment Links", EcoreDomain), + Instantiation.addDisjunctSemanticIdentitySet(fromRole, fromRole, EcoreDomain), fromElement, GmodelSemanticDomains.minCardinality_1, GmodelSemanticDomains.maxCardinality_1, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_TRUE, + Instantiation.addDisjunctSemanticIdentitySet(toRole, toRole, EcoreDomain), toElement, GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_FALSE); + } + + private final Set refByContainment(final Set fromElement, final String toRole, final Set toElement) { + return Instantiation.link(eClassReference, Instantiation.addDisjunctSemanticIdentitySet("ecore Containment Reference", "ecore Containment References", EcoreDomain), + fromElement, fromElement, GmodelSemanticDomains.minCardinality_1, GmodelSemanticDomains.maxCardinality_1, GmodelSemanticDomains.isNavigable_FALSE, GmodelSemanticDomains.isContainer_TRUE, + Instantiation.addDisjunctSemanticIdentitySet(toRole, toRole, EcoreDomain), toElement, GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_FALSE); + } + + private final Set refBySimpleToOne(final Set fromElement, final String toRole, final Set toElement) { + return Instantiation.link(eClassReference, Instantiation.addDisjunctSemanticIdentitySet("ecore Simple To-One Reference", "ecore Simple To-One References", EcoreDomain), + fromElement, fromElement, GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n, GmodelSemanticDomains.isNavigable_FALSE, GmodelSemanticDomains.isContainer_FALSE, + Instantiation.addDisjunctSemanticIdentitySet(toRole, toRole, EcoreDomain), toElement, GmodelSemanticDomains.minCardinality_1, GmodelSemanticDomains.maxCardinality_1, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_FALSE); + } + + public void ecoreERMetaModel() { + // model level + //final Set ecoreCrmM = F_SemanticStateOfInMemoryModel.instantiateConcrete(ecoreERSchemaMM, identityFactory.createIdentity("ecoreCRM Model")); + final Set ecoreCrmM = RepositoryStructure.applicationengineering.addConcrete(ecoreERSchemaMM, + Instantiation.addDisjunctSemanticIdentitySet("ecoreCRM Model", "ecoreCRM Model", EcoreDomain)); + final Set ecoreCrm = ecoreCrmM.addConcrete(ecoreERSchema, + Instantiation.addDisjunctSemanticIdentitySet("ecoreCRM", "ecoreCRM", EcoreDomain)); + final Set ecoreCustomer = ecoreCrmM.addConcrete(ecoreEntity, + Instantiation.addDisjunctSemanticIdentitySet("ecoreCustomer", "ecoreCustomer", EcoreDomain)); + + final Set ecoreCustomers = refToManyParts(eReference_SchemaToEntities, ecoreCrm, "", ecoreCustomer); + final Set ecoreAddress = ecoreCrmM.addConcrete(ecoreAttribute, + Instantiation.addDisjunctSemanticIdentitySet("ecoreAddress", "ecoreAddress", EcoreDomain)); + final Set ecoreCustomerAttribute1 = refToOnePart(eReference_EntityToAttribute, ecoreCustomer, "", ecoreAddress); + + final Set ecoreProduct = ecoreCrmM.addConcrete(ecoreEntity, + Instantiation.addDisjunctSemanticIdentitySet("ecoreProduct", "ecoreProduct", EcoreDomain)); + final Set ecoreProducts = refToManyParts(eReference_SchemaToEntities, ecoreCrm, "", ecoreProduct); + final Set ecorePrice = ecoreCrmM.addConcrete(ecoreAttribute, + Instantiation.addDisjunctSemanticIdentitySet("ecorePrice", "ecorePrice", EcoreDomain)); + final Set ecoreProductAttribute1 = refToOnePart(eReference_EntityToAttribute, ecoreProduct, "", ecorePrice); + + final Set ecoreOrder = ecoreCrmM.addConcrete(ecoreEntity, + Instantiation.addDisjunctSemanticIdentitySet("ecoreOrder", "ecoreOrder", EcoreDomain)); + final Set ecoreOrders = refToManyParts(eReference_SchemaToEntities, ecoreCrm, "", ecoreOrder); + final Set ecoreReceivedDate = ecoreCrmM.addConcrete(ecoreAttribute, + Instantiation.addDisjunctSemanticIdentitySet("ecoreReceivedDate", "ecoreReceivedDate", EcoreDomain)); + final Set ecorePaidDate = ecoreCrmM.addConcrete(ecoreAttribute, + Instantiation.addDisjunctSemanticIdentitySet("ecorePaidDate", "ecorePaidDate", EcoreDomain)); + final Set ecoreOrderAttribute1 = refToOnePart(eReference_EntityToAttribute, ecoreOrder, "", ecoreReceivedDate); + final Set ecoreOrderAttribute2 = refToOnePart(eReference_EntityToAttribute, ecoreOrder, "", ecorePaidDate); + + final Set ecoreOrderToCustomer = ecoreCrmM.addConcrete(ecoreRelationship, + Instantiation.addDisjunctSemanticIdentitySet("ecoreOrderToCustomer", "ecoreOrderToCustomer", EcoreDomain)); + final Set ecoreOrderToCustomerRel = refToManyParts(eReference_SchemaToRelationships, ecoreCrm, "", ecoreOrderToCustomer); + final Set ecoreOrderToCustomerSource = refToOne(eReference_RelationshipToSource, ecoreOrderToCustomer, "order", ecoreOrder); + final Set ecoreOrderToCustomerTarget = refToOne(eReference_RelationshipToTarget, ecoreOrderToCustomer, "customer", ecoreCustomer); + + final Set ecoreOrderToProduct = ecoreCrmM.addConcrete(ecoreRelationship, + Instantiation.addDisjunctSemanticIdentitySet("ecoreOrderToProduct", "ecoreOrderToProduct", EcoreDomain)); + final Set ecoreOrderToProductRel = refToManyParts(eReference_SchemaToRelationships, ecoreCrm, "", ecoreOrderToProduct); + final Set ecoreOrderToProductSource = refToOne(eReference_RelationshipToSource, ecoreOrderToProduct, "order", ecoreOrder); + final Set ecoreOrderToProductTarget = refToOne(eReference_RelationshipToTarget, ecoreOrderToProduct, "product", ecoreProduct); + + //instance level + //final Set ecoreCrmMSofismo = F_SemanticStateOfInMemoryModel.instantiateConcrete(ecoreCrmM, identityFactory.createIdentity("Sofismo Instance")); + final Set ecoreCrmMSofismo = RepositoryStructure.applicationoperation.addConcrete(ecoreCrmM, + Instantiation.addDisjunctSemanticIdentitySet("Sofismo Instance", "Sofismo Instance", EcoreDomain)); + final Set ecoreCrmSofismo = ecoreCrmMSofismo.addConcrete(ecoreCrm, + Instantiation.addDisjunctSemanticIdentitySet("Sofismo", "Sofismo", EcoreDomain)); + + final Set ecoreJoeBloggs = ecoreCrmMSofismo.addConcrete(ecoreCustomer, + Instantiation.addDisjunctSemanticIdentitySet("Joe Bloggs", "Joe Bloggs", EcoreDomain)); + final Set ecoreSofismoCustomer1 = refToInstancePart(ecoreCustomers, ecoreCrmSofismo, "", ecoreJoeBloggs); + + final Set ecoreLife = ecoreCrmMSofismo.addConcrete(ecoreProduct, + Instantiation.addDisjunctSemanticIdentitySet("BasicLifeInsurance", "BasicLifeInsurance", EcoreDomain)); + final Set ecoreSofismoProduct1 = refToInstancePart(ecoreProducts, ecoreCrmSofismo, "", ecoreLife); + + final Set ecoreJoeBloggsLife = ecoreCrmMSofismo.addConcrete(ecoreOrder, + Instantiation.addDisjunctSemanticIdentitySet("123456", "123456", EcoreDomain)); + final Set ecoreSofismoOrder1 = refToInstancePart(ecoreOrders, ecoreCrmSofismo, "", ecoreJoeBloggsLife); + + final Set ecoreLifeToJoeBoggs = ecoreCrmMSofismo.addConcrete(ecoreOrderToCustomer, + Instantiation.addDisjunctSemanticIdentitySet("123456--JoeBoggs", "123456--JoeBoggs", EcoreDomain)); + final Set ecoreSofismoOrderToCustomerRel = refToInstancePart(ecoreOrderToCustomerRel, ecoreCrmSofismo, "", ecoreLifeToJoeBoggs); + final Set ecoreSofismoOrderToCustomerSource = refToInstance(ecoreOrderToCustomerSource, ecoreLifeToJoeBoggs, "", ecoreJoeBloggsLife); + final Set ecoreSofismoOrderToCustomerTarget = refToInstance(ecoreOrderToCustomerTarget, ecoreLifeToJoeBoggs, "", ecoreJoeBloggs); + + final Set ecoreLifeToSofismoProduct1 = ecoreCrmMSofismo.addConcrete(ecoreOrderToProduct, + Instantiation.addDisjunctSemanticIdentitySet("123456--BasicLifeInsurance", "123456--BasicLifeInsurance", EcoreDomain)); + final Set ecoreSofismoOrderToProduct1Rel = refToInstancePart(ecoreOrderToProductRel, ecoreCrmSofismo, "", ecoreLifeToSofismoProduct1); + final Set ecoreSofismoOrderToCustomer1Source = refToInstance(ecoreOrderToProductSource, ecoreLifeToSofismoProduct1, "", ecoreJoeBloggsLife); + final Set ecoreSofismoOrderToCustomer1Target = refToInstance(ecoreOrderToProductTarget, ecoreLifeToSofismoProduct1, "", ecoreLife); + + } + + private final Set refToInstance(final Set refType, final Set fromElement, final String toRole, final Set toElement) { + return Instantiation.link(refType, Instantiation.addDisjunctSemanticIdentitySet("ecore Reference to Instance", "ecore Reference to Instances", EcoreDomain), + fromElement, fromElement, GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_FALSE, GmodelSemanticDomains.isContainer_FALSE, + Instantiation.addDisjunctSemanticIdentitySet(toRole, toRole, EcoreDomain), toElement, GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_FALSE, GmodelSemanticDomains.isContainer_FALSE); + } + + private final Set refToInstancePart(final Set refType, final Set fromElement, final String toRole, final Set toElement) { + return Instantiation.link(refType,Instantiation.addDisjunctSemanticIdentitySet("ecore Reference to Instance Part", "ecore Reference to Instance Parts", EcoreDomain), + fromElement, fromElement, GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_FALSE, GmodelSemanticDomains.isContainer_TRUE, + Instantiation.addDisjunctSemanticIdentitySet(toRole, toRole, EcoreDomain), toElement, GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_FALSE, GmodelSemanticDomains.isContainer_FALSE); + } + + private final Set refToOne(final Set refType, final Set fromElement, final String toRole, final Set toElement) { + return Instantiation.link(refType, Instantiation.addDisjunctSemanticIdentitySet("ecore Reference to One", "set of ecore Reference to One", EcoreDomain), + fromElement, fromElement, GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n, GmodelSemanticDomains.isNavigable_FALSE, GmodelSemanticDomains.isContainer_FALSE, + Instantiation.addDisjunctSemanticIdentitySet(toRole, toRole, EcoreDomain), toElement, GmodelSemanticDomains.minCardinality_1, GmodelSemanticDomains.maxCardinality_1, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_FALSE); + } + + private final Set refToOnePart(final Set refType, final Set fromElement, final String toRole, final Set toElement) { + return Instantiation.link(refType, Instantiation.addDisjunctSemanticIdentitySet("ecore Reference to One Part", "set of ecore Reference to One Part", EcoreDomain), + fromElement, fromElement, GmodelSemanticDomains.minCardinality_1, GmodelSemanticDomains.maxCardinality_1, GmodelSemanticDomains.isNavigable_FALSE, GmodelSemanticDomains.isContainer_TRUE, + Instantiation.addDisjunctSemanticIdentitySet(toRole, toRole, EcoreDomain), toElement, GmodelSemanticDomains.minCardinality_1, GmodelSemanticDomains.maxCardinality_1, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_FALSE); + } + + private final Set refToMany(final Set refType, final Set fromElement, final String toRole, final Set toElement) { + return Instantiation.link(refType, Instantiation.addDisjunctSemanticIdentitySet("ecore Reference to Many", "set of ecore Reference to Many", EcoreDomain), + fromElement, fromElement, GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n, GmodelSemanticDomains.isNavigable_FALSE, GmodelSemanticDomains.isContainer_FALSE, + Instantiation.addDisjunctSemanticIdentitySet(toRole, toRole, EcoreDomain), toElement, GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_FALSE); + } + + private final Set refToManyParts(final Set refType, final Set fromElement, final String toRole, final Set toElement) { + return Instantiation.link(refType, Instantiation.addDisjunctSemanticIdentitySet("ecore Reference to Many Parts", "set of ecore Reference to Many Parts", EcoreDomain), + fromElement, fromElement, GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n, GmodelSemanticDomains.isNavigable_FALSE, GmodelSemanticDomains.isContainer_TRUE, + Instantiation.addDisjunctSemanticIdentitySet(toRole, toRole, EcoreDomain), toElement, GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_FALSE); + } +} diff --git a/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/EnterpriseArchitectureModellingTest.java b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/EnterpriseArchitectureModellingTest.java new file mode 100644 index 0000000..11b28e4 --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/EnterpriseArchitectureModellingTest.java @@ -0,0 +1,56 @@ +package org.gmodel.kernel.tests; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.api.Instantiation.addDisjunctSemanticIdentitySet; +import static org.gmodel.api.Instantiation.link; + +import org.gmodel.Set; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models2.EnterpriseArchitecture; +import org.gmodel.kernel.artifactinstantiation.InstantiationSequences; + +public class EnterpriseArchitectureModellingTest extends GmodelTestCase { + + @Override + protected void executeInstantiationSequence() { + final Set acmeEA = InstantiationSequences.acmeEA; + final Set acmeMelbourne = InstantiationSequences.acmeMelbourne; + final Set testDomain = InstantiationSequences.testDomain; + final Set whoToWho = InstantiationSequences.whoToWho; + + // instantiation level 1 + final Set person = acmeEA.addConcrete(EnterpriseArchitecture.who, + addDisjunctSemanticIdentitySet("person", "persons", testDomain)); + final Set organization = acmeEA.addConcrete(EnterpriseArchitecture.who, + addDisjunctSemanticIdentitySet("organization", "organizations", testDomain)); + // Notice that we can instantiate an edge, this is only because "who" is not only an instance of vertex, but also a subSet of a vertex! + // The enterpriseArchitectureGraph is a true extension of Graph (we remain at instantiation level 0!), and we can refine the Graph semantics as we please + final Set employeesToEmployers = link(coreGraphs.edge , addDisjunctSemanticIdentitySet("employees To Employers", "employees To Employers", testDomain), + addDisjunctSemanticIdentitySet("employee", "employees", testDomain), + person, + GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_FALSE, + addDisjunctSemanticIdentitySet("employer", "employers", testDomain), + organization, + GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_FALSE); + + // Here we see that we can instantiate the whoToWho as well - this is the easy part + // just for the fun of it we also create an instance of an edge + + link(whoToWho, addDisjunctSemanticIdentitySet("fun to more fun", "fun to more fun", testDomain), + addDisjunctSemanticIdentitySet("fun", "fun", testDomain), person, + GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_FALSE, + addDisjunctSemanticIdentitySet("more fun", "more fun", testDomain), organization, + GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_FALSE); + + // instantiation level 2 + final Set joeBloggs = acmeMelbourne.addConcrete(person, addDisjunctSemanticIdentitySet("Joe Bloggs", "Joe Bloggs", testDomain)); + final Set canberraHQ = acmeMelbourne.addConcrete(organization, addDisjunctSemanticIdentitySet("Melbourne HQ", "Melbourne HQ", testDomain)); + + link(employeesToEmployers, addDisjunctSemanticIdentitySet("Business Analyst to Main Employer", "Business Analyst to Main Employer", testDomain), + addDisjunctSemanticIdentitySet("Business Analyst", "Business Analyst", testDomain), joeBloggs, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_FALSE, + addDisjunctSemanticIdentitySet("main employer", "main employer", testDomain), canberraHQ, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_FALSE); + } + +} diff --git a/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/EntityRelationshipModellingTest.java b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/EntityRelationshipModellingTest.java new file mode 100644 index 0000000..a34bb29 --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/EntityRelationshipModellingTest.java @@ -0,0 +1,160 @@ +package org.gmodel.kernel.tests; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.api.Instantiation.addDisjunctSemanticIdentitySet; +import static org.gmodel.api.Instantiation.link; + +import org.gmodel.Set; +import org.gmodel.api.models.ArtifactDerivation; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.kernel.artifactinstantiation.InstantiationSequences; + +public class EntityRelationshipModellingTest extends GmodelTestCase { + + @Override + protected void executeInstantiationSequence() { + final Set testDomain = InstantiationSequences.testDomain; + final Set entityrelationshipschema = InstantiationSequences.entityrelationshipschema; + final Set crm = InstantiationSequences.crm; + final Set crm_product = InstantiationSequences.crm_product; + final Set hierarchicalerschema = InstantiationSequences.hierarchicalerschema; + final Set entity = InstantiationSequences.entity; + + final Set sex = addDisjunctSemanticIdentitySet("sex", "sexes" , testDomain); + final Set male = addDisjunctSemanticIdentitySet("male", "males" , testDomain); + final Set female = addDisjunctSemanticIdentitySet("female", "females" , testDomain); + + sex.addElement(male); + sex.addElement(female); + + /* +*/ + + /* + link(coreGraphs.visibility, entityrelationshipschema, testDomain); + // TODO: don't allow the creation of visibilities with target within a semantic domain such as: F_SemanticStateOfInMemoryModel.link(coreGraphs.visibility, entity, sex); + + link(coreGraphs.visibility, RepositoryStructure.applicationengineering, testDomain); + link(coreGraphs.visibility, crm, testDomain); + link(coreGraphs.visibility, crm_product, testDomain); + */ + link(coreGraphs.visibility, hierarchicalerschema, testDomain); + + // EXAMPLE CODE FOR DEFINING DERIVEDARTEFACTS + + final Set sqltabledefinition = entityrelationshipschema.addConcrete(ArtifactDerivation.derivedFile, + addDisjunctSemanticIdentitySet("sql table definition", "sql table definitions" , testDomain)); + final Set userviewdefinition = entityrelationshipschema.addConcrete(ArtifactDerivation.derivedFile, + addDisjunctSemanticIdentitySet("user view definition", "user view definitions" , testDomain)); + + // FURTHER STUFF + + final Set attribute = entityrelationshipschema.addConcrete(coreGraphs.vertex, + addDisjunctSemanticIdentitySet("attribute", "attributes" , testDomain)); + + final Set entity_to_sex = link(coreGraphs.edge, + addDisjunctSemanticIdentitySet("owner", "owners" , testDomain), + addDisjunctSemanticIdentitySet("entity to sex", "entity to sex", testDomain), + entity, + GmodelSemanticDomains.minCardinality_0, + GmodelSemanticDomains.maxCardinality_n, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_TRUE, + sex, + sex, + GmodelSemanticDomains.minCardinality_1, + GmodelSemanticDomains.maxCardinality_1, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE + ); + final Set entity_to_attribute = link(coreGraphs.edge, + addDisjunctSemanticIdentitySet("owner", "owners" , testDomain), + addDisjunctSemanticIdentitySet("entity to attribute", "entity to attribute", testDomain), + entity, + GmodelSemanticDomains.minCardinality_1, + GmodelSemanticDomains.maxCardinality_1, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_TRUE, + addDisjunctSemanticIdentitySet("attribute", "attributes" , testDomain), + attribute, + GmodelSemanticDomains.minCardinality_0, + GmodelSemanticDomains.maxCardinality_n, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE + ); + final Set entity_to_entity = link(coreGraphs.edge, + addDisjunctSemanticIdentitySet("source", "sources" , testDomain), + addDisjunctSemanticIdentitySet("entity to entity", "entity to entity", testDomain), + entity, + GmodelSemanticDomains.minCardinality_0, + GmodelSemanticDomains.maxCardinality_n, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE, + addDisjunctSemanticIdentitySet("target", "targets" , testDomain), + entity, + GmodelSemanticDomains.minCardinality_0, + GmodelSemanticDomains.maxCardinality_n, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE + ); + + // Instantiation level 2 + + final Set crm_product_to_sex = link(entity_to_sex, + addDisjunctSemanticIdentitySet("crm_product_to_sex", "crm_product_to_sex" , testDomain), + crm_product, + crm_product, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, + GmodelSemanticDomains.isContainer_NOTAPPLICABLE, + male, + male, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, + GmodelSemanticDomains.isContainer_NOTAPPLICABLE + ); + final Set order = crm.addConcrete(entity, + addDisjunctSemanticIdentitySet("order", "orders", testDomain)); + final Set price = crm.addConcrete(attribute, + addDisjunctSemanticIdentitySet("price", "prices" , testDomain)); + + final Set product_to_order = link(entity_to_entity, + addDisjunctSemanticIdentitySet("order", "orders" , testDomain), + addDisjunctSemanticIdentitySet("order to crm product", "order to crm product", testDomain), + order, + GmodelSemanticDomains.minCardinality_0, + GmodelSemanticDomains.maxCardinality_n, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE, + addDisjunctSemanticIdentitySet("product", "products" , testDomain), + crm_product, + GmodelSemanticDomains.minCardinality_0, + GmodelSemanticDomains.maxCardinality_n, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE + ); + final Set product_to_price = link(entity_to_attribute, + addDisjunctSemanticIdentitySet("owner", "owners" , testDomain), + addDisjunctSemanticIdentitySet("crm product to price", "crm product to price", testDomain), + crm_product, + GmodelSemanticDomains.minCardinality_1, + GmodelSemanticDomains.maxCardinality_1, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_TRUE, + addDisjunctSemanticIdentitySet("price", "prices" , testDomain), + price, + GmodelSemanticDomains.minCardinality_0, + GmodelSemanticDomains.maxCardinality_n, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE + ); + + if (entity.allowableEdgeCategories(attribute).size() < 2) { + raiseError(); + } + + } + +} diff --git a/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/EventHandlingTest.java b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/EventHandlingTest.java new file mode 100644 index 0000000..391a7dc --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/EventHandlingTest.java @@ -0,0 +1,59 @@ +package org.gmodel.kernel.tests; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.api.Instantiation.addDisjunctSemanticIdentitySet; +import static org.gmodel.api.Instantiation.addSemanticDomain; +import static org.gmodel.api.Instantiation.link; + +import org.gmodel.Set; +import org.gmodel.api.Query; +import org.gmodel.api.Transaction; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models2.EnterpriseArchitecture; + +public class EventHandlingTest extends GmodelTestCase { + + @Override + protected void executeInstantiationSequence() { + try { + addSubscriptions(); + + // Event #1 , triggered by "addEvent" in inMemorySets() + final Set testDomain = addSemanticDomain("test domain", "test domains", GmodelSemanticDomains.finiteSets); + + // Event #2 .. #5 , triggered by "addEvent" in inMemorySets : 1 new SemanticIdentity, 1 new Edge, and 2 new EdgeEnds + // Event #6 , triggered by "addEvent" in who.instanceSet : 1 new Edge + final Set l = link(coreGraphs.edge, addDisjunctSemanticIdentitySet("who to who", "set of who to who", testDomain), + EnterpriseArchitecture.who, EnterpriseArchitecture.who, + GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_FALSE, + EnterpriseArchitecture.who, EnterpriseArchitecture.who, + GmodelSemanticDomains.minCardinality_0, GmodelSemanticDomains.maxCardinality_n, GmodelSemanticDomains.isNavigable_TRUE, GmodelSemanticDomains.isContainer_FALSE); + + // decommission generates no events, since no elements are removed from any sets + l.decommission(); + + // Event #7 , triggered by "commitChangedSets()", which removes the added edge from who.instanceSet + // notice that the edge and the edge ends still remain in-memory, therefore no events on inMemorySets! + Transaction.commitChangedSets(); + + } finally { + removeSubscriptions(); + } + + if (setMaintenanceEvents.size() != 7) { + raiseError(); + } + } + + private void addSubscriptions() { + // example of adding a subscriber to the inMemorySets + Query.inMemorySets().addSubscriber(this); + // example of adding a subscriber to the instance set of the container of "who" + EnterpriseArchitecture.who.container().filterInstances().addSubscriber(this); + } + + private void removeSubscriptions() { + EnterpriseArchitecture.who.container().filterInstances().removeSubscriber(this); + Query.inMemorySets().removeSubscriber(this); + } +} \ No newline at end of file diff --git a/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/GmodelTestCase.java b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/GmodelTestCase.java new file mode 100644 index 0000000..c8cc602 --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/GmodelTestCase.java @@ -0,0 +1,62 @@ +package org.gmodel.kernel.tests; + +import java.util.ArrayList; +import java.util.List; + +import junit.framework.TestCase; + +import org.gmodel.Set; +import org.gmodel.api.EventListener; +import org.gmodel.api.Instantiation; +import org.gmodel.api.Query; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.junit.Test; + +public abstract class GmodelTestCase extends TestCase implements EventListener { + + private static boolean kernelHasBooted = false; + + protected static InstantiationData testData; + + protected final List setMaintenanceEvents = new ArrayList(); + + @Override + protected void setUp() throws Exception { + if (!kernelHasBooted) { + org.gmodel.G.boot(); + testData = new InstantiationData(); + kernelHasBooted = true; + } + } + + @Test + public void testInstantiationSequence() { + this.setMaintenanceEvents.clear(); + executeInstantiationSequence(); + checkForRuntimeErrors(); + } + + protected abstract void executeInstantiationSequence(); + + private void checkForRuntimeErrors() { + final Set runtimeErrors = Query.runtimeErrors(); + if (!runtimeErrors.isEmpty()) { + final StringBuilder builder = new StringBuilder("The following runtime errors were encountered:\n"); + // TODO improve display of sets + for (final Set set: runtimeErrors) { + builder.append(set); + builder.append("\n"); + } + fail(builder.toString()); + } + } + + public void raiseError() { + Instantiation.raiseError(GmodelSemanticDomains.kernelDefect_KernelHasReachedAnIllegalState, GmodelSemanticDomains.kernelDefect); + } + + public Set processEvent(final Set event) { + setMaintenanceEvents.add(event); + return event; + } +} diff --git a/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/GraphVisualisationCreationTest.java b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/GraphVisualisationCreationTest.java new file mode 100644 index 0000000..f1088db --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/GraphVisualisationCreationTest.java @@ -0,0 +1,40 @@ +package org.gmodel.kernel.tests; + +import static org.gmodel.api.Instantiation.link; + +import org.gmodel.Set; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models2.RepositoryStructure; +import org.gmodel.api.models2.Visualization; + +public class GraphVisualisationCreationTest extends GmodelTestCase { + + @Override + protected void executeInstantiationSequence() { + final Set semanticDomain = GmodelSemanticDomains.gmodel; + + final Set gv = RepositoryStructure.graphVisualizations.addConcrete(Visualization.graphVisualization, semanticDomain); + final Set v = gv.addConcrete(Visualization.visualizedGraph, semanticDomain); + + final Set vg_to_semanticDomain = link(Visualization.visualizedGraph_to_graph, + Visualization.visualizedGraph_to_graph, + Visualization.visualizedGraph, + v, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, + GmodelSemanticDomains.isContainer_FALSE, + semanticDomain, + semanticDomain, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, + GmodelSemanticDomains.isContainer_FALSE); + + final Set details = gv.addConcrete(Visualization.details,Visualization.details); + final Set structure = gv.addConcrete(Visualization.structure,Visualization.structure); + final Set reuse = gv.addConcrete(Visualization.reuse,Visualization.reuse); + final Set visibilities = gv.addConcrete(Visualization.visibilities,Visualization.visibilities); + } + +} diff --git a/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/InformationQualityLogicTest.java b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/InformationQualityLogicTest.java new file mode 100644 index 0000000..b49a25b --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/InformationQualityLogicTest.java @@ -0,0 +1,174 @@ +package org.gmodel.kernel.tests; + +import static org.gmodel.api.InformationQualityLogic.and; +import static org.gmodel.api.InformationQualityLogic.isGreaterThan; +import static org.gmodel.api.InformationQualityLogic.isInformation; +import static org.gmodel.api.InformationQualityLogic.isQuality; +import static org.gmodel.api.InformationQualityLogic.isSmallerThan; +import static org.gmodel.api.InformationQualityLogic.not; +import static org.gmodel.api.InformationQualityLogic.or; +import static org.gmodel.api.Instantiation.addDisjunctSemanticIdentitySet; +import static org.gmodel.api.Query.vertex; +import static org.gmodel.api.models.GmodelSemanticDomains.is_FALSE; +import static org.gmodel.api.models.GmodelSemanticDomains.is_NOTAPPLICABLE; +import static org.gmodel.api.models.GmodelSemanticDomains.is_TRUE; +import static org.gmodel.api.models.GmodelSemanticDomains.is_UNKNOWN; + +import org.gmodel.Set; +import org.gmodel.api.InformationQualityLogic; +import org.gmodel.api.models2.RepositoryStructure; +import org.gmodel.kernel.artifactinstantiation.InstantiationSequences; + +public class InformationQualityLogicTest extends GmodelTestCase { + + @Override + protected void executeInstantiationSequence() { + final Set entity = InstantiationSequences.entity; + final Set testDomain = InstantiationSequences.testDomain; + final Set crm_product = InstantiationSequences.crm_product; + + final Set iqLogicTest = RepositoryStructure.domainengineering.addConcrete(vertex, addDisjunctSemanticIdentitySet("IQ-Logic Test", "set of IQ-Logic Tests", testDomain)); + + final Set NOTAPPLICABLE = is_NOTAPPLICABLE; + final Set FALSE = is_FALSE; + final Set UNKNOWN = is_UNKNOWN; + final Set TRUE = is_TRUE; + + iqLogicTest.addConcrete(vertex, NOTAPPLICABLE); + iqLogicTest.addConcrete(vertex, FALSE); + iqLogicTest.addConcrete(vertex, UNKNOWN); + iqLogicTest.addConcrete(vertex, TRUE); + + // and + final boolean t1 = InformationQualityLogic.is_NOTAPPLICABLE(and(NOTAPPLICABLE, NOTAPPLICABLE)); + final boolean t2 = InformationQualityLogic.is_NOTAPPLICABLE(and(NOTAPPLICABLE, FALSE)); + final boolean t3 = InformationQualityLogic.is_NOTAPPLICABLE(and(NOTAPPLICABLE, UNKNOWN)); + final boolean t4 = InformationQualityLogic.is_NOTAPPLICABLE(and(NOTAPPLICABLE, TRUE)); + + final boolean t5 = InformationQualityLogic.is_NOTAPPLICABLE(and(FALSE, NOTAPPLICABLE)); + final boolean t6 = InformationQualityLogic.is_FALSE(and(FALSE, FALSE)); + final boolean t7 = InformationQualityLogic.is_FALSE(and(FALSE, UNKNOWN)); + final boolean t8 = InformationQualityLogic.is_FALSE(and(FALSE, TRUE)); + + final boolean t9 = InformationQualityLogic.is_NOTAPPLICABLE(and(UNKNOWN, NOTAPPLICABLE)); + final boolean t10 = InformationQualityLogic.is_FALSE(and(UNKNOWN, FALSE)); + final boolean t11 = InformationQualityLogic.is_UNKNOWN(and(UNKNOWN, UNKNOWN)); + final boolean t12 = InformationQualityLogic.is_UNKNOWN(and(UNKNOWN, TRUE)); + + final boolean t13 = InformationQualityLogic.is_NOTAPPLICABLE(and(TRUE, NOTAPPLICABLE)); + final boolean t14 = InformationQualityLogic.is_FALSE(and(TRUE, FALSE)); + final boolean t15 = InformationQualityLogic.is_UNKNOWN(and(TRUE, UNKNOWN)); + final boolean t16 = InformationQualityLogic.is_TRUE(and(TRUE, TRUE)); + + final boolean t17 = InformationQualityLogic.is_NOTAPPLICABLE(and(iqLogicTest.filterInstances())); + // or + final boolean t18 = InformationQualityLogic.is_NOTAPPLICABLE(or(NOTAPPLICABLE, NOTAPPLICABLE)); + final boolean t19 = InformationQualityLogic.is_FALSE(or(NOTAPPLICABLE, FALSE)); + final boolean t20 = InformationQualityLogic.is_UNKNOWN(or(NOTAPPLICABLE, UNKNOWN)); + final boolean t21 = InformationQualityLogic.is_TRUE(or(NOTAPPLICABLE, TRUE)); + + final boolean t22 = InformationQualityLogic.is_FALSE(or(FALSE, NOTAPPLICABLE)); + final boolean t23 = InformationQualityLogic.is_FALSE(or(FALSE, FALSE)); + final boolean t24 = InformationQualityLogic.is_UNKNOWN(or(FALSE, UNKNOWN)); + final boolean t25 = InformationQualityLogic.is_TRUE(or(FALSE, TRUE)); + + final boolean t26 = InformationQualityLogic.is_UNKNOWN(or(UNKNOWN, NOTAPPLICABLE)); + final boolean t27 = InformationQualityLogic.is_UNKNOWN(or(UNKNOWN, FALSE)); + final boolean t28 = InformationQualityLogic.is_UNKNOWN(or(UNKNOWN, UNKNOWN)); + final boolean t29 = InformationQualityLogic.is_TRUE(or(UNKNOWN, TRUE)); + + final boolean t30 = InformationQualityLogic.is_TRUE(or(TRUE, NOTAPPLICABLE)); + final boolean t31 = InformationQualityLogic.is_TRUE(or(TRUE, FALSE)); + final boolean t32 = InformationQualityLogic.is_TRUE(or(TRUE, UNKNOWN)); + final boolean t33 = InformationQualityLogic.is_TRUE(or(TRUE, TRUE)); + + final boolean t34 = InformationQualityLogic.is_TRUE(or(iqLogicTest.filterInstances())); + + // not + final boolean t35 = InformationQualityLogic.is_UNKNOWN(not(NOTAPPLICABLE)); + final boolean t36 = InformationQualityLogic.is_TRUE(not(FALSE)); + final boolean t37 = InformationQualityLogic.is_NOTAPPLICABLE(not(UNKNOWN)); + final boolean t38 = InformationQualityLogic.is_FALSE(not(TRUE)); + + // isQuality + final boolean t39 = InformationQualityLogic.is_TRUE(isQuality(NOTAPPLICABLE)); + final boolean t40 = InformationQualityLogic.is_FALSE(isQuality(FALSE)); + final boolean t41 = InformationQualityLogic.is_TRUE(isQuality(UNKNOWN)); + final boolean t42 = InformationQualityLogic.is_FALSE(isQuality(TRUE)); + + // isInformation + final boolean t43 = InformationQualityLogic.is_FALSE(isInformation(NOTAPPLICABLE)); + final boolean t44 = InformationQualityLogic.is_TRUE(isInformation(FALSE)); + final boolean t45 = InformationQualityLogic.is_FALSE(isInformation(UNKNOWN)); + final boolean t46 = InformationQualityLogic.is_TRUE(isInformation(TRUE)); + + // isSmallerThan + final boolean t47 = InformationQualityLogic.is_FALSE(isSmallerThan(NOTAPPLICABLE, NOTAPPLICABLE)); + final boolean t48 = InformationQualityLogic.is_TRUE(isSmallerThan(NOTAPPLICABLE, FALSE)); + final boolean t49 = InformationQualityLogic.is_TRUE(isSmallerThan(NOTAPPLICABLE, UNKNOWN)); + final boolean t50 = InformationQualityLogic.is_TRUE(isSmallerThan(NOTAPPLICABLE, TRUE)); + + final boolean t51 = InformationQualityLogic.is_FALSE(isSmallerThan(FALSE, NOTAPPLICABLE)); + final boolean t52 = InformationQualityLogic.is_FALSE(isSmallerThan(FALSE, FALSE)); + final boolean t53 = InformationQualityLogic.is_TRUE(isSmallerThan(FALSE, UNKNOWN)); + final boolean t54 = InformationQualityLogic.is_TRUE(isSmallerThan(FALSE, TRUE)); + + final boolean t55 = InformationQualityLogic.is_FALSE(isSmallerThan(UNKNOWN, NOTAPPLICABLE)); + final boolean t56 = InformationQualityLogic.is_FALSE(isSmallerThan(UNKNOWN, FALSE)); + final boolean t57 = InformationQualityLogic.is_FALSE(isSmallerThan(UNKNOWN, UNKNOWN)); + final boolean t58 = InformationQualityLogic.is_TRUE(isSmallerThan(UNKNOWN, TRUE)); + + final boolean t59 = InformationQualityLogic.is_FALSE(isSmallerThan(TRUE, NOTAPPLICABLE)); + final boolean t60 = InformationQualityLogic.is_FALSE(isSmallerThan(TRUE, FALSE)); + final boolean t61 = InformationQualityLogic.is_FALSE(isSmallerThan(TRUE, UNKNOWN)); + final boolean t62 = InformationQualityLogic.is_FALSE(isSmallerThan(TRUE, TRUE)); + + // isGreaterThan + final boolean t63 = InformationQualityLogic.is_FALSE(isGreaterThan(NOTAPPLICABLE, NOTAPPLICABLE)); + final boolean t64 = InformationQualityLogic.is_FALSE(isGreaterThan(NOTAPPLICABLE, FALSE)); + final boolean t65 = InformationQualityLogic.is_FALSE(isGreaterThan(NOTAPPLICABLE, UNKNOWN)); + final boolean t66 = InformationQualityLogic.is_FALSE(isGreaterThan(NOTAPPLICABLE, TRUE)); + + final boolean t67 = InformationQualityLogic.is_TRUE(isGreaterThan(FALSE, NOTAPPLICABLE)); + final boolean t68 = InformationQualityLogic.is_FALSE(isGreaterThan(FALSE, FALSE)); + final boolean t69 = InformationQualityLogic.is_FALSE(isGreaterThan(FALSE, UNKNOWN)); + final boolean t70 = InformationQualityLogic.is_FALSE(isGreaterThan(FALSE, TRUE)); + + final boolean t71 = InformationQualityLogic.is_TRUE(isGreaterThan(UNKNOWN, NOTAPPLICABLE)); + final boolean t72 = InformationQualityLogic.is_TRUE(isGreaterThan(UNKNOWN, FALSE)); + final boolean t73 = InformationQualityLogic.is_FALSE(isGreaterThan(UNKNOWN, UNKNOWN)); + final boolean t74 = InformationQualityLogic.is_FALSE(isGreaterThan(UNKNOWN, TRUE)); + + + final boolean t75 = InformationQualityLogic.is_TRUE(isGreaterThan(TRUE, NOTAPPLICABLE)); + final boolean t76 = InformationQualityLogic.is_TRUE(isGreaterThan(TRUE, FALSE)); + final boolean t77 = InformationQualityLogic.is_TRUE(isGreaterThan(TRUE, UNKNOWN)); + final boolean t78 = InformationQualityLogic.is_FALSE(isGreaterThan(TRUE, TRUE)); + + final Set iqLogicTest2 = crm_product.addConcrete(entity, addDisjunctSemanticIdentitySet("IQ-Logic Test2", "set of IQ-Logic Test2s", testDomain)); + + iqLogicTest2.addConcrete(entity, NOTAPPLICABLE); + iqLogicTest2.addConcrete(entity, FALSE); + iqLogicTest2.addConcrete(entity, UNKNOWN); + iqLogicTest2.addConcrete(entity, TRUE); + + final boolean t79 = InformationQualityLogic.is_NOTAPPLICABLE(and(iqLogicTest2.filterInstances())); + final boolean t80 = InformationQualityLogic.is_TRUE(or(iqLogicTest2.filterInstances())); + //final boolean t81 = InformationQualityLogic.is_NOTAPPLICABLE(and(iqLogicTest2.instanceSet()).transformToOrderedSetOfSemanticIdentities().union(semanticIdentity)); + //final boolean t82 = InformationQualityLogic.is_TRUE(or(iqLogicTest2.instanceSet())); + + + final boolean result = (t1 && t2 && t3 && t4 && t5 && t6 && t7 && t8 && t9 && + t10 && t11 && t12 && t13 && t14 && t15 && t16 && t17 && t18 && t19 && + t20 && t21 && t22 && t23 && t24 && t25 && t26 && t27 && t28 && t29 && + t30 && t31 && t32 && t33 && t34 && t35 && t36 && t37 && t38 && t39 && + t40 && t41 && t42 && t43 && t44 && t45 && t46 && t47 && t48 && t49 && + t50 && t51 && t52 && t53 && t54 && t55 && t56 && t57 && t58 && t59 && + t60 && t61 && t62 && t63 && t64 && t65 && t66 && t67 && t68 && t69 && + t70 && t71 && t72 && t73 && t74 && t75 && t76 && t77 && t78 &t79 && t80); + if (!result) { + raiseError(); + } + } + +} diff --git a/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/InformationQualityLogicTestB.java b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/InformationQualityLogicTestB.java new file mode 100644 index 0000000..69127f6 --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/InformationQualityLogicTestB.java @@ -0,0 +1,98 @@ +package org.gmodel.kernel.tests; + +import static org.gmodel.api.Instantiation.addDisjunctSemanticIdentitySet; +import static org.gmodel.api.Query.vertex; +import static org.gmodel.api.models.GmodelSemanticDomains.is_FALSE; +import static org.gmodel.api.models.GmodelSemanticDomains.is_NOTAPPLICABLE; +import static org.gmodel.api.models.GmodelSemanticDomains.is_TRUE; +import static org.gmodel.api.models.GmodelSemanticDomains.is_UNKNOWN; + +import org.gmodel.Set; +import org.gmodel.api.models2.RepositoryStructure; +import org.gmodel.kernel.artifactinstantiation.InstantiationSequences; + +public class InformationQualityLogicTestB extends GmodelTestCase { + + @Override + protected void executeInstantiationSequence() { + final Set entity = InstantiationSequences.entity; + final Set testDomain = InstantiationSequences.testDomain; + final Set crm_product = InstantiationSequences.crm_product; + + final Set iqLogicTest = RepositoryStructure.domainengineering.addConcrete(vertex, addDisjunctSemanticIdentitySet("IQ-Logic Test", "set of IQ-Logic Tests", testDomain)); + + final Set NOTAPPLICABLE = is_NOTAPPLICABLE; + final Set FALSE = is_FALSE; + final Set UNKNOWN = is_UNKNOWN; + final Set TRUE = is_TRUE; + + iqLogicTest.addConcrete(vertex, NOTAPPLICABLE); + iqLogicTest.addConcrete(vertex, FALSE); + iqLogicTest.addConcrete(vertex, UNKNOWN); + iqLogicTest.addConcrete(vertex, TRUE); + + // and + final boolean t1 = NOTAPPLICABLE.and(NOTAPPLICABLE).is_NOTAPPLICABLE(); + final boolean t2 = NOTAPPLICABLE.and(FALSE).is_NOTAPPLICABLE(); + final boolean t3 = NOTAPPLICABLE.and(UNKNOWN).is_NOTAPPLICABLE(); + final boolean t4 = NOTAPPLICABLE.and(TRUE).is_NOTAPPLICABLE(); + + final boolean t5 = FALSE.and(NOTAPPLICABLE).is_NOTAPPLICABLE(); + final boolean t6 = FALSE.and(FALSE).is_FALSE(); + final boolean t7 = FALSE.and(UNKNOWN).is_FALSE(); + final boolean t8 = FALSE.and(TRUE).is_FALSE(); + + final boolean t9 = UNKNOWN.and(NOTAPPLICABLE).is_NOTAPPLICABLE(); + final boolean t10 = UNKNOWN.and(FALSE).is_FALSE(); + final boolean t11 = UNKNOWN.and(UNKNOWN).is_UNKNOWN(); + final boolean t12 = UNKNOWN.and(TRUE).is_UNKNOWN(); + + final boolean t13 = TRUE.and(NOTAPPLICABLE).is_NOTAPPLICABLE(); + final boolean t14 = TRUE.and(FALSE).is_FALSE(); + final boolean t15 = TRUE.and(UNKNOWN).is_UNKNOWN(); + final boolean t16 = TRUE.and(TRUE).is_TRUE(); + + final boolean t17 = iqLogicTest.filterInstances().and().is_NOTAPPLICABLE(); + final boolean t18 = iqLogicTest.filterInstances().and(UNKNOWN).is_NOTAPPLICABLE(); + + // or + final boolean t33 = iqLogicTest.filterInstances().or().is_TRUE(); + final boolean t34 = iqLogicTest.filterInstances().or(UNKNOWN).is_TRUE(); + + // not + final boolean t35 = iqLogicTest.filterInstances().not().and().is_NOTAPPLICABLE(); + final boolean t36 = TRUE.not().is_FALSE(); + final boolean t37 = NOTAPPLICABLE.not().is_UNKNOWN(); + + + // isQuality + final boolean t39 = TRUE.isQuality().is_FALSE(); + final boolean t41 = UNKNOWN.isQuality().is_TRUE(); + + // isInformation + final boolean t43 = TRUE.isInformation().is_TRUE(); + final boolean t44 = UNKNOWN.isInformation().is_FALSE(); + + final Set iqLogicTest2 = crm_product.addConcrete(entity, addDisjunctSemanticIdentitySet("IQ-Logic Test2", "set of IQ-Logic Test2s", testDomain)); + + iqLogicTest2.addConcrete(entity, NOTAPPLICABLE); + iqLogicTest2.addConcrete(entity, FALSE); + iqLogicTest2.addConcrete(entity, UNKNOWN); + iqLogicTest2.addConcrete(entity, TRUE); + + final boolean t79 = iqLogicTest2.filterInstances().and().is_NOTAPPLICABLE(); + final boolean t80 = iqLogicTest2.filterInstances().or().is_TRUE(); + + + + final boolean result = (t1 && t2 && t3 && t4 && t5 && t6 && t7 && t8 && t9 && + t10 && t11 && t12 && t13 && t14 && t15 && t16 && t17 && t18 && + t33 && t34 && t35 && t36 && t37 && t39 && + t41 && t43 && t44 && + t79 && t80); + if (!result) { + raiseError(); + } + } + +} diff --git a/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/InstantiationData.java b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/InstantiationData.java new file mode 100644 index 0000000..e7383cf --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/InstantiationData.java @@ -0,0 +1,146 @@ +package org.gmodel.kernel.tests; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.api.Instantiation.addDisjunctSemanticIdentitySet; +import static org.gmodel.api.Instantiation.link; + +import org.gmodel.Set; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models2.RepositoryStructure; +import org.gmodel.kernel.artifactinstantiation.InstantiationSequences; + +// This could eventually replace the fields in TestSequence +public class InstantiationData { + + public final Set crm_product; + public final Set product_to_price; + public final Set order; + + public InstantiationData() { + final Set entityrelationshipschema = InstantiationSequences.entityrelationshipschema; + final Set entity = InstantiationSequences.entity; + final Set testDomain = InstantiationSequences.testDomain; + final Set crm = InstantiationSequences.crm; + + crm_product = InstantiationSequences.crm_product; + + final Set sex = addDisjunctSemanticIdentitySet("sex", "sexes" , testDomain); + final Set male = addDisjunctSemanticIdentitySet("male", "males" , testDomain); + final Set female = addDisjunctSemanticIdentitySet("female", "females" , testDomain); + + sex.addElement(male); + sex.addElement(female); + + link(coreGraphs.visibility, entityrelationshipschema, testDomain); + // TODO: don't allow the creation of visibilities with target within a semantic domain such as: F_SemanticStateOfInMemoryModel.link(coreGraphs.visibility, entity, sex); + + link(coreGraphs.visibility, RepositoryStructure.applicationengineering, testDomain); + link(coreGraphs.visibility, crm, testDomain); + link(coreGraphs.visibility, crm_product, testDomain); + + final Set attribute = entityrelationshipschema.addConcrete(coreGraphs.vertex, + addDisjunctSemanticIdentitySet("attribute", "attributes" , testDomain)); + + final Set entity_to_sex = link(coreGraphs.edge, + addDisjunctSemanticIdentitySet("owner", "owners" , testDomain), + addDisjunctSemanticIdentitySet("entity to sex", "entity to sex", testDomain), + entity, + GmodelSemanticDomains.minCardinality_0, + GmodelSemanticDomains.maxCardinality_n, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_TRUE, + sex, + sex, + GmodelSemanticDomains.minCardinality_1, + GmodelSemanticDomains.maxCardinality_1, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE + ); + final Set entity_to_attribute = link(coreGraphs.edge, + addDisjunctSemanticIdentitySet("owner", "owners" , testDomain), + addDisjunctSemanticIdentitySet("entity to attribute", "entity to attribute", testDomain), + entity, + GmodelSemanticDomains.minCardinality_1, + GmodelSemanticDomains.maxCardinality_1, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_TRUE, + addDisjunctSemanticIdentitySet("attribute", "attributes" , testDomain), + attribute, + GmodelSemanticDomains.minCardinality_0, + GmodelSemanticDomains.maxCardinality_n, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE + ); + final Set entity_to_entity = link(coreGraphs.edge, + addDisjunctSemanticIdentitySet("source", "sources" , testDomain), + addDisjunctSemanticIdentitySet("entity to entity", "entity to entity", testDomain), + entity, + GmodelSemanticDomains.minCardinality_0, + GmodelSemanticDomains.maxCardinality_n, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE, + addDisjunctSemanticIdentitySet("target", "targets" , testDomain), + entity, + GmodelSemanticDomains.minCardinality_0, + GmodelSemanticDomains.maxCardinality_n, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE + ); + + // Instantiation level 2 + + final Set crm_product_to_sex = link(entity_to_sex, + addDisjunctSemanticIdentitySet("crm_product_to_sex", "crm_product_to_sex" , testDomain), + crm_product, + crm_product, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, + GmodelSemanticDomains.isContainer_NOTAPPLICABLE, + male, + male, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, + GmodelSemanticDomains.isContainer_NOTAPPLICABLE + ); + order = crm.addConcrete(entity, + addDisjunctSemanticIdentitySet("order", "orders", testDomain)); + final Set price = crm.addConcrete(attribute, + addDisjunctSemanticIdentitySet("price", "prices" , testDomain)); + + final Set product_to_order = link(entity_to_entity, + addDisjunctSemanticIdentitySet("order", "orders" , testDomain), + addDisjunctSemanticIdentitySet("order to crm product", "order to crm product", testDomain), + order, + GmodelSemanticDomains.minCardinality_0, + GmodelSemanticDomains.maxCardinality_n, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE, + addDisjunctSemanticIdentitySet("product", "products" , testDomain), + crm_product, + GmodelSemanticDomains.minCardinality_0, + GmodelSemanticDomains.maxCardinality_n, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE + ); + product_to_price = link(entity_to_attribute, + addDisjunctSemanticIdentitySet("owner", "owners" , testDomain), + addDisjunctSemanticIdentitySet("crm product to price", "crm product to price", testDomain), + crm_product, + GmodelSemanticDomains.minCardinality_1, + GmodelSemanticDomains.maxCardinality_1, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_TRUE, + addDisjunctSemanticIdentitySet("price", "prices" , testDomain), + price, + GmodelSemanticDomains.minCardinality_0, + GmodelSemanticDomains.maxCardinality_n, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE + ); + + + } + +} diff --git a/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/MyIgnoredTest.java b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/MyIgnoredTest.java new file mode 100644 index 0000000..c412f5b --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/MyIgnoredTest.java @@ -0,0 +1,14 @@ +package org.gmodel.kernel.tests; + +import org.junit.Ignore; + +@Ignore +public class MyIgnoredTest extends GmodelTestCase { + + @Override + protected void executeInstantiationSequence() { + // TODO Auto-generated method stub + + } + +} diff --git a/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/QueryTest.java b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/QueryTest.java new file mode 100644 index 0000000..66e0df1 --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/QueryTest.java @@ -0,0 +1,38 @@ +package org.gmodel.kernel.tests; + +import static org.gmodel.api.models.GmodelSemanticDomains.is_TRUE; +import static org.gmodel.api.models.GmodelSemanticDomains.is_UNKNOWN; + +import org.gmodel.Set; +import org.gmodel.api.Query; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.kernel.artifactinstantiation.InstantiationSequences; + +public class QueryTest extends GmodelTestCase { + + @Override + protected void executeInstantiationSequence() { + final Set crm_product = InstantiationSequences.crm_product; + final Set entityrelationshipschema = InstantiationSequences.entityrelationshipschema; + + final boolean t1 = Query.visibility.isEqualToRepresentation(Query.findSet(Query.visibility.identity().uniqueRepresentationReference().toString())); + final boolean t2 = crm_product.isEqualToRepresentation(Query.findSet(crm_product.identity().uniqueRepresentationReference().toString())); + final boolean t3 = entityrelationshipschema.isEqualToRepresentation(Query.findSet(entityrelationshipschema.identity().uniqueRepresentationReference().toString())); + final boolean t4 = GmodelSemanticDomains.maxCardinality_n.isEqualToRepresentation(Query.findSet(GmodelSemanticDomains.maxCardinality_n.identity().uniqueRepresentationReference().toString())); + final boolean t5 = GmodelSemanticDomains.maxCardinality_n.isEqualToRepresentation(Query.findSet(GmodelSemanticDomains.maxCardinality_n.identity().uniqueRepresentationReference().toString())); + final boolean t6 = (GmodelSemanticDomains.gmodel.filterInstances().filterByEquivalenceClass(is_UNKNOWN).size() == 0); + // changed > 25 to > 5 + final boolean t7 = (Query.inMemorySets().filterByLinkedTo(Query.vertex).size() > 5); + final boolean t71 = (Query.inMemorySets().filter(Query.vertex).size() > 25); + final boolean t72 = (Query.inMemorySets().filterPolymorphic(Query.vertex).size() > 25); + final boolean t73 = (Query.inMemorySets().filterFromAndTo().size() > 25); + final boolean t8 = (GmodelSemanticDomains.gmodel.filterInstances().filterByEquivalenceClass(GmodelSemanticDomains.isAbstract_FALSE).size() == 0); + final boolean t9 = (GmodelSemanticDomains.gmodel.filterInstances().filterBySemanticIdentity(is_TRUE).size() == 1); + + final boolean result = (t1 && t2 && t3 && t4 && t5 && t6 && t7 && t71 && t72 && t73 && t8 && t9); + if (!result) { + raiseError(); + } + } + +} diff --git a/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/SemanticIdentityReconstitutionTest.java b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/SemanticIdentityReconstitutionTest.java new file mode 100644 index 0000000..9b3b2d9 --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/SemanticIdentityReconstitutionTest.java @@ -0,0 +1,28 @@ +package org.gmodel.kernel.tests; + +import java.util.UUID; + +import org.gmodel.Identity; +import org.gmodel.Set; +import org.gmodel.api.serializerinterface.Reconstitution; + +public class SemanticIdentityReconstitutionTest extends GmodelTestCase { + + @Override + protected void executeInstantiationSequence() { + final Set crm_product = testData.crm_product; + final Set product_to_price = testData.product_to_price; + + final Identity semanticIdentityTest1 = Reconstitution.reconstituteIdentity("rat", "rats", + UUID.fromString("c7c8f8b0-8b22-11df-a4ee-0800200c9a66"), + UUID.fromString("c7c8f8b1-8b22-11df-a4ee-0800200c9a66")); + final Identity semanticIdentityTest2 = Reconstitution.reconstituteIdentity("rabbit", "rabbits", + UUID.fromString("c7c8f8b2-8b22-11df-a4ee-0800200c9a66"), + UUID.fromString("f87684f0-8b22-11df-a4ee-0800200c9a66")); + final Identity semanticIdentityTest3 = Reconstitution.reconstituteIdentity("mouse", "mice", + UUID.fromString(UUID.randomUUID().toString()), + UUID.fromString(UUID.randomUUID().toString())); + final Set p1 = Reconstitution.testDeserialisationPrerequisites(crm_product); + final Set p2 = Reconstitution.testDeserialisationPrerequisites(product_to_price); + } +} \ No newline at end of file diff --git a/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/VisualisationExampleTest.java b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/VisualisationExampleTest.java new file mode 100644 index 0000000..1374c06 --- /dev/null +++ b/src/trunk/org.gmodel.kernel.tests/src/org/gmodel/kernel/tests/VisualisationExampleTest.java @@ -0,0 +1,122 @@ +package org.gmodel.kernel.tests; + +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models2.Visualization; +import org.gmodel.kernel.artifactinstantiation.InstantiationSequences; + +public class VisualisationExampleTest extends GmodelTestCase { + + @Override + protected void executeInstantiationSequence() { + final Set crm_aviz = InstantiationSequences.crm_aviz; + final Set testDomain = InstantiationSequences.testDomain; + final Set crm = InstantiationSequences.crm; + final Set crm_product = InstantiationSequences.crm_product; + + final Set crm_viz = crm_aviz.addConcrete(Visualization.visualizedGraph, + Instantiation.addDisjunctSemanticIdentitySet("crm schema visualizedGraph", "crm schema graphVisualizations", testDomain)); + + final Set crm_viz_details = crm_aviz.addConcrete(Visualization.details, + Instantiation.addDisjunctSemanticIdentitySet("crm schema visualizedGraph | details", "crm schema visualizedGraph | details", testDomain)); + + final Set crm_viz_structure = crm_aviz.addConcrete(Visualization.structure, + Instantiation.addDisjunctSemanticIdentitySet("crm schema visualizedGraph | structure", "crm schema visualizedGraph | structures", testDomain)); + + final Set crm_viz_reuse = crm_aviz.addConcrete(Visualization.reuse, + Instantiation.addDisjunctSemanticIdentitySet("crm schema visualizedGraph | reuse", "crm schema visualizedGraph | reuses", testDomain)); + + final Set crm_viz_visibilities = crm_aviz.addConcrete(Visualization.visibilities, + Instantiation.addDisjunctSemanticIdentitySet("crm schema visualizedGraph | visibilities", "crm schema visualizedGraph | visibilities", testDomain)); + + // add diagram information + final Set crm_viz_structure_diag = crm_aviz.addConcrete(Visualization.diagram, + Instantiation.addDisjunctSemanticIdentitySet("crm schema visualizedGraph | structure diag 1", "crm schema visualizedGraph | structure diag 1", testDomain)); + Instantiation.link(Visualization.visualizedAspect_to_diagram, + GmodelSemanticDomains.anonymous, crm_viz_structure, + crm_viz_structure, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_TRUE, + crm_viz_structure_diag, + crm_viz_structure_diag, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + + // add representation information + final Set crm_viz_structure_diag_product = crm_aviz.addConcrete(Visualization.representation, + Instantiation.addDisjunctSemanticIdentitySet("crm schema visualizedGraph | structure diag 1 | product", "crm schema visualizedGraph | structure diag 1 | product", testDomain)); + Instantiation.link(Visualization.diagram_to_representation, + GmodelSemanticDomains.anonymous, crm_viz_structure_diag, + crm_viz_structure_diag, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_TRUE, + crm_viz_structure_diag_product, + crm_viz_structure_diag_product, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + // add icon to representation + final Set crm_viz_structure_diag_product_icon = crm_aviz.addConcrete(Visualization.symbol, + Instantiation.addDisjunctSemanticIdentitySet("crm schema visualizedGraph | structure diag 1 | product icon", "crm schema visualizedGraph | structure diag 1 | product icon", testDomain)); + crm_viz_structure_diag_product_icon.identity().setPayload("here goes the content of the icon file"); + Instantiation.link(Visualization.symbol_to_semantic_identity, + GmodelSemanticDomains.anonymous, crm_viz_structure_diag_product_icon, + crm_viz_structure_diag_product_icon, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_TRUE, + crm_viz_structure_diag_product.semanticIdentity(), + crm_viz_structure_diag_product.semanticIdentity(), + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + // add coordinates to representation + final Set crm_viz_structure_diag_product_x = crm_aviz.addConcrete(Visualization.x, + Instantiation.addDisjunctSemanticIdentitySet("crm schema visualizedGraph | structure diag 1 | product x", "crm schema visualizedGraph | structure diag 1 | product x", testDomain)); + crm_viz_structure_diag_product_x.identity().setPayload("57"); + Instantiation.link(Visualization.representation_to_x, + GmodelSemanticDomains.anonymous, crm_viz_structure_diag_product, + crm_viz_structure_diag_product, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_TRUE, + crm_viz_structure_diag_product_x, + crm_viz_structure_diag_product_x, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + final Set crm_viz_structure_diag_product_y = crm_aviz.addConcrete(Visualization.y, + Instantiation.addDisjunctSemanticIdentitySet("crm schema visualizedGraph | structure diag 1 | product y", "crm schema visualizedGraph | structure diag 1 | product y", testDomain)); + crm_viz_structure_diag_product_y.identity().setPayload("4"); + Instantiation.link(Visualization.representation_to_y, + GmodelSemanticDomains.anonymous, crm_viz_structure_diag_product, + crm_viz_structure_diag_product, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_TRUE, + crm_viz_structure_diag_product_y, + crm_viz_structure_diag_product_y, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + final Set crm_viz_structure_diag_product_z = crm_aviz.addConcrete(Visualization.z, + Instantiation.addDisjunctSemanticIdentitySet("crm schema visualizedGraph | structure diag 1 | product z", "crm schema visualizedGraph | structure diag 1 | product z", testDomain)); + + crm_viz_structure_diag_product_z.identity().setPayload("0"); + Instantiation.link(Visualization.representation_to_z, + GmodelSemanticDomains.anonymous, crm_viz_structure_diag_product, + crm_viz_structure_diag_product, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_TRUE, + crm_viz_structure_diag_product_z, + crm_viz_structure_diag_product_z, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + + Instantiation.link(Visualization.visualizedGraph_to_graph, + GmodelSemanticDomains.anonymous, crm_viz, + crm_viz, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE, + crm, + crm, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + Instantiation.link(Visualization.representation_to_representedInstance, + GmodelSemanticDomains.anonymous, crm_viz_structure_diag_product, + crm_viz_structure_diag_product, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE, + crm_product, + crm_product, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + } + +} diff --git a/src/trunk/org.gmodel.kernel/.classpath b/src/trunk/org.gmodel.kernel/.classpath new file mode 100644 index 0000000..68a1330 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/.classpath @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/trunk/org.gmodel.kernel/.project b/src/trunk/org.gmodel.kernel/.project new file mode 100644 index 0000000..8a2f992 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/.project @@ -0,0 +1,26 @@ + + + org.gmodel.kernel + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/src/trunk/org.gmodel.kernel/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.kernel/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..af73d12 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,77 @@ +#Fri Nov 25 19:18:31 EST 2011 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.kernel/.settings/org.eclipse.jdt.ui.prefs b/src/trunk/org.gmodel.kernel/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000..c1d287e --- /dev/null +++ b/src/trunk/org.gmodel.kernel/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,55 @@ +#Fri Nov 25 19:18:31 EST 2011 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=false +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=false +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/src/trunk/org.gmodel.kernel/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.kernel/META-INF/MANIFEST.MF new file mode 100644 index 0000000..31dfc98 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/META-INF/MANIFEST.MF @@ -0,0 +1,18 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.kernel +Bundle-SymbolicName: org.gmodel.kernel; singleton:=true +Bundle-Version: 0.0.0 +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Export-Package: org.gmodel, + org.gmodel.api, + org.gmodel.api.models, + org.gmodel.api.models2, + org.gmodel.api.serializerinterface, + org.gmodel.computation, + org.gmodel.flavors, + org.gmodel.event, + org.gmodel.core, + org.gmodel.impl +Bundle-ClassPath: lib/commons-collections-3.2.1.jar, + . diff --git a/src/trunk/org.gmodel.kernel/build.properties b/src/trunk/org.gmodel.kernel/build.properties new file mode 100644 index 0000000..7189b19 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/build.properties @@ -0,0 +1,5 @@ +source.. = src/ +bin.includes = META-INF/,\ + .,\ + lib/,\ + lib/commons-collections-3.2.1.jar diff --git a/src/trunk/org.gmodel.kernel/lib/commons-collections-3.2.1-javadoc.jar b/src/trunk/org.gmodel.kernel/lib/commons-collections-3.2.1-javadoc.jar new file mode 100644 index 0000000..aeba457 Binary files /dev/null and b/src/trunk/org.gmodel.kernel/lib/commons-collections-3.2.1-javadoc.jar differ diff --git a/src/trunk/org.gmodel.kernel/lib/commons-collections-3.2.1.jar b/src/trunk/org.gmodel.kernel/lib/commons-collections-3.2.1.jar new file mode 100644 index 0000000..c35fa1f Binary files /dev/null and b/src/trunk/org.gmodel.kernel/lib/commons-collections-3.2.1.jar differ diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/G.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/G.java new file mode 100644 index 0000000..388f5a2 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/G.java @@ -0,0 +1,94 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel; + + +import org.gmodel.api.CoreGraphs; +import org.gmodel.api.CoreSets; +import org.gmodel.api.models2.EnterpriseArchitecture; +import org.gmodel.api.models2.RepositoryStructure; +import org.gmodel.api.models2.Visualization; +import org.gmodel.core.F_Instantiation; +import org.gmodel.core.F_SemanticStateOfInMemoryModel; + +/** + * {@link F_SemanticStateOfInMemoryModel} provides access to the Sets and Properties of the Gmodel kernel + * that constitute the basic Gmodel vocabulary. + * + * Additionally F_SemanticStateOfInMemoryModel enables the creation of links between Sets, + * and automatically attaches the link to the appropriate container Set. + * + * Note: F_SemanticStateOfInMemoryModel contains no implementation, it simply delegates to LinkConstraints, IdentityFactory, CoreSets, + * and KernelOrderedSets. + * + * Extensions: Gmodel is designed to be extensible. All extensions that only involve a structural extension + * of the meta model can be achieved by modelling the extension in Gmodel. Beyond such basic extensions, + * Gmodel can be extended/modified by plugging in a different IdentityFactory and/or by writing a custom Shell. + * Such extensions are created by creating a subclass of F_SemanticStateOfInMemoryModel that + * + * (a) adds a method that references the appropriate SemanticIndentityFactory: + * + * public static final CustomSemanticIdentityFactory customSemanticIdentityFactory = new CustomSemanticIdentityFactory(); + * + * and/or + * + * (b) reference the appropriate custom Shell by overriding the raiseError and link methods in F_SemanticStateOfInMemoryModel and by delegating to LinkConstraints + * to invoke the raiseError and link methods in the kernel. + * + * All extensions must use F_SemanticStateOfInMemoryModel's CoreSets and KernelOrderedSets. + * + */ +public class G { + + public static final CoreSets coreSets = new CoreSets(F_Instantiation.identityFactory); + public static final CoreGraphs coreGraphs = new CoreGraphs(); + + /** + * COMMANDS + */ + + public static void switchOnDebugMode() { + org.gmodel.core.F_SemanticStateOfInMemoryModel.switchOnDebugMode(); + } + public static void switchOffDebugMode() { + org.gmodel.core.F_SemanticStateOfInMemoryModel.switchOffDebugMode(); + } + public static void goLiveWithGmodelEditor() { + org.gmodel.core.F_SemanticStateOfInMemoryModel.goLiveWithGmodelEditor(); + } + public static void completeOpenSourceKernelInitialization() { + org.gmodel.core.F_SemanticStateOfInMemoryModel.completeGmodelSemanticDomainInitialization(); + if (!SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + Visualization.instantiateFeature(); + EnterpriseArchitecture.instantiateFeature(); + RepositoryStructure.instantiateFeature(); + } + SemanticStateOfInMemoryModel.openSourceKernelIsInitialized = true; + } + public static void boot() { + completeOpenSourceKernelInitialization(); + } +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/Identity.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/Identity.java new file mode 100644 index 0000000..c9f03b6 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/Identity.java @@ -0,0 +1,113 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel; + +import java.util.UUID; + +public interface Identity { + + /** + * Simplistic prototypical implementation of a unique identifier for SemanticIdentities. + * Must be replaced by a mechanism that scales to distributed systems + */ + UUID identifier(); + + /** + * Simplistic prototypical implementation of a unique identifier for representations. + * Must be replaced by a mechanism that scales to distributed systems + */ + UUID uniqueRepresentationReference(); + + /** + * Retrieves the name, e.g. "identity" + */ + String name(); + + /** + * Retrieves the plural name, e.g., "identities" + */ + String pluralName(); + + /** + * Computes a technicalName that is suitable for use as a name in textual programming languages + * In the multi-vocabulary edition of Gmodel, the result depends on the context in which the + * getTechnicalName() is used. + * In a "Java" context the result may comply with specific naming standards, + * in a "COBOL" context the result may comply with different naming standards, + * and in an "SQL"context the result may comply with yet another naming standard + */ + String technicalName(); + /** + * Indicates whether the provided {@link Identity} concept + * concept is equal to this one + * + * @param concept + * @return whether the provided {@link Identity} concept is equal to this one + */ + boolean isEqualTo(Identity concept) ; + /** + * Indicates whether the provided {@link Identity} representation + * concept is equal to this one + * + * @param concept + * @return whether the provided {@link Identity} representation is equal to this one + */ + boolean isEqualToRepresentation(Identity representation) ; + + /** + * Indicates whether the Identity is part of the Gmodel kernel. + * All kernel Identities have immutable identifiers and immutable uniqueRepresentationReferences + * (the corresponding UUIDs are fixed in all Gmodel systems) + */ + boolean isPartOfKernel(); + + /** + * Indicates whether the Identity is part of the universal container concept. + * All artifacts based on Identities that are part of the universal container concept + * can be instantiated such that the instances may reference any container, + * without any need for visibility based declarations of scope + */ + boolean isPartOfUniversalArtifactConcept(); + /** + * An Identity can be made part of the universal container concept. + * Once an Identity is part of the universal container concept, it may reference any container, + * without any need for visibility based declarations of scope. + * There is no operation to reverse the effect of the makePartOfUniversalArtifactConcept(), + * as such an operation could leave a repository in a corrupt state with respect to + * semantics relating to scope (visibility declarations). + */ + void makePartOfUniversalArtifactConcept(); + + /** + * Retrieves the payload + */ + String payload(); + /** + * Sets the payload + */ + String setPayload(String payload); + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/SemanticStateOfInMemoryModel.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/SemanticStateOfInMemoryModel.java new file mode 100644 index 0000000..81f1532 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/SemanticStateOfInMemoryModel.java @@ -0,0 +1,51 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ +package org.gmodel; + +public class SemanticStateOfInMemoryModel { + + public static boolean semanticDomainIsInitialized() { + return org.gmodel.core.F_SemanticStateOfInMemoryModel.semanticDomainIsInitialized(); + } + + public static boolean gmodelSemanticDomainIsInitialized() { + return org.gmodel.core.F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized(); + } + + public static boolean gmodelEditorIsLive() { + return org.gmodel.core.F_SemanticStateOfInMemoryModel.gmodelEditorIsLive(); + } + + public static boolean openSourceKernelIsInitialized() { + return openSourceKernelIsInitialized; + } + + public static boolean isDebugModeOn() { + return org.gmodel.core.F_SemanticStateOfInMemoryModel.isDebugModeOn(); + } + + static boolean openSourceKernelIsInitialized = false; + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/Set.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/Set.java new file mode 100644 index 0000000..e38aac7 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/Set.java @@ -0,0 +1,64 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel; + +import org.gmodel.flavors.OrderedPairFlavor; +import org.gmodel.flavors.OrderedSetFlavor; + + +/** + *

The Gmodel {@link Set} interface enables the attachment of new artifacts and container content + * to the Gmodel repository. An {@link Set} has the role of {@link Graph}, which includes the role + * of a list ({@link OrderedSetFlavor}).

+ * + *

IMPORTANT NOTE: Gmodel does not make use of the Java typing mechanism

+ * + *

In Gmodel every element is part of the following technical Java interface hierarchy: + * + *

    + *
  • {@link OrderedPairFlavor} <-- {@link Artifact} <-- {@link Set}
  • + *
+ * + *

The user can plug in an external SemanticIdentity mechanism as needed + * The classification mechanism used in Gmodel is the isInformation, + * which is a recursively applicable mechanism that enables multi-level modelling

+ * + *

In Gmodel the only things that a user creates are: + * + *

    + *
  1. {@link Set}s, which require an externally provided {@link Identity}
  2. + *
  3. Links between {@link Set}s, which are also {@link Set}s
  4. + *
  5. {@link Variables} and {@link Values}, are {@link Set}s that reference {@link Set}s + * that lie beyond the container boundary, and which are not considered + * to be first-class citizens from the + * view point of the container that is being modelled
  6. + *
+ *

+ */ +public interface Set extends OrderedPairFlavor { + + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/api/CoreGraphs.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/CoreGraphs.java new file mode 100644 index 0000000..3b551fb --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/CoreGraphs.java @@ -0,0 +1,54 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.api; + +import org.gmodel.Set; +import org.gmodel.core.F_Query; + +// functionality is scheduled to be removed +// TODO remove all usage of this class + +public final class CoreGraphs { + + public final Set vertex; + public final Set edgeEnd; + public final Set link; + public final Set edge; + public final Set superSetReference; + public final Set visibility; + public final Set graph; + + public CoreGraphs() { + vertex = F_Query.vertexFlavor(); + edgeEnd = F_Query.edgeEndFlavor(); + link = F_Query.linkFlavor(); + edge = F_Query.edgeFlavor(); + superSetReference = F_Query.superSetReferenceFlavor(); + visibility = F_Query.visibilityFlavor(); + graph = F_Query.graph(); + } + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/api/CoreSets.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/CoreSets.java new file mode 100644 index 0000000..04c45a5 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/CoreSets.java @@ -0,0 +1,499 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.api; + +import static org.gmodel.core.F_Instantiation.identityFactory; + +import org.gmodel.Set; +import org.gmodel.core.F_InstantiationImpl; +import org.gmodel.core.F_Query; +import org.gmodel.core.KernelIdentities; +import org.gmodel.core.OrderedPair; + +//functionality is scheduled to be limited to the Gmodel core +//TODO remove all usage of this class outside the core package + +public final class CoreSets { + + public final Set orderedPair; + public final Set anonymous; + + public final Set isAbstract; + public final Set isAbstract_TRUE; + public final Set isAbstract_FALSE; + + public final Set minCardinality; + public final Set minCardinality_0; + public final Set minCardinality_1; + public final Set minCardinality_2; + public final Set minCardinality_n; + public final Set minCardinality_NOTAPPLICABLE; + public final Set minCardinality_UNKNOWN; + + public final Set maxCardinality; + public final Set maxCardinality_0; + public final Set maxCardinality_1; + public final Set maxCardinality_2; + public final Set maxCardinality_n; + public final Set maxCardinality_NOTAPPLICABLE; + public final Set maxCardinality_UNKNOWN; + + public final Set isNavigable; + public final Set isNavigable_TRUE; + public final Set isNavigable_FALSE; + public final Set isNavigable_NOTAPPLICABLE; + public final Set isNavigable_UNKNOWN; + + public final Set isContainer; + public final Set isContainer_TRUE; + public final Set isContainer_FALSE; + public final Set isContainer_NOTAPPLICABLE; + public final Set isContainer_UNKNOWN; + + public final Set iqLogicValue; + public final Set is_TRUE; + public final Set is_FALSE; + public final Set is_NOTAPPLICABLE; + public final Set is_UNKNOWN; + + public final Set booleanValue; + + public final Set completion; + public final Set successful; + public final Set maxSearchSpaceDepth; + + public final Set kernelDefect; + public final Set kernelDefect_KernelHasReachedAnIllegalState; + + public final Set semanticErr; + public final Set semanticErr_OnlyEdgeFlavoredInstancesHaveEdgeEndFlavors; + public final Set semanticErr_OnlyEdgeFlavoredInstancesHaveConnectedRoles; + public final Set semanticErr_OnlyEdgeFlavoredInstancesHaveConnectedInstances; + public final Set semanticErr_OnlyVisibilityFlavoredInstancesHaveFromSubGraph; + public final Set semanticErr_OnlyVisibilityFlavoredInstancesHaveToSubGraph; + public final Set semanticErr_OnlySuperSetReferenceFlavoredInstancesHaveSuperSet; + public final Set semanticErr_OnlySuperSetReferenceFlavoredInstancesHaveSubSet; + public final Set semanticErr_OnlyEdgeTraceFlavoredInstancesHaveAbstraction; + public final Set semanticErr_OnlyEdgeTraceFlavoredInstancesHaveDetail; + public final Set semanticErr_OnlyEdgeEndFlavoredInstancesHaveEdgeEndVertex; + public final Set semanticErr_OnlyInstancesHaveIsAbstract; + public final Set semanticErr_OnlyEdgeEndFlavoredInstancesHaveMinCardinality; + public final Set semanticErr_OnlyEdgeEndFlavoredInstancesHaveMaxCardinality; + public final Set semanticErr_OnlyEdgeEndFlavoredInstancesHaveIsContainer; + public final Set semanticErr_OnlyEdgeEndFlavoredInstancesHaveIsNavigable; + public final Set semanticErr_ValueIsNotAssigned; + public final Set semanticErr_LinkIsNotApplicable; + public final Set semanticErr_TargetIsNotWithinVisibility; + public final Set semanticErr_AddConcreteIsOnlyValidForConcreteVertexFlavor; + public final Set semanticErr_AddAbstractIsOnlyValidForAbstractVertexFlavor; + public final Set semanticErr_GraphGraphCantBeModified; + public final Set semanticErr_VariableCantBeRemovedArtifactStillHasInstances; + public final Set semanticErr_GraphsCantBeDecommissioned; + public final Set semanticErr_ValueIsNotAnInstanceOfVariableOfCategoryOfInstance; + public final Set semanticErr_maxFromCardinalityIsOne; + public final Set semanticErr_maxFromCardinalityIsTwo; + public final Set semanticErr_maxFromCardinalityIsIllegal; + public final Set semanticErr_maxToCardinalityIsOne; + public final Set semanticErr_maxToCardinalityIsTwo; + public final Set semanticErr_maxToCardinalityIsIllegal; + public final Set semanticErr_operationIsIllegalOnThisInstance; + public final Set semanticErr_operationIsNotYetImplemented; + public final Set semanticErr_OnlyTransportContainerCanHaveContentElements; + public final Set semanticErr_ThisSetIsNotAvailableInMemory; + + public final Set parameter; + public final Set target; + public final Set subGraph; + public final Set isInformation; + public final Set flavor; + + public final Set orderedSet; + + /** + * core functions + */ + public final Set function; + public final Set command; + public final Set commandFunction; + public final Set flavorCommandFunction; + public final Set query ; + public final Set queryFunction ; + public final Set flavorQueryFunction ; + + /** + * OrderedPairFlavor queries + */ + + //public final Set flavor; + public final Set identity ; + public final Set isEqualTo ; + public final Set semanticIdentity; + + //public final Set isInformation ; + /** + * OrderedSetFlavor commands + */ + + public final Set union; + public final Set intersection; + public final Set complement; + + /** + * OrderedSetFlavor queries + */ + + public final Set contains ; + public final Set containsAll ; + public final Set get ; + public final Set indexOf ; + public final Set isEmpty ; + public final Set lastIndexOf ; + public final Set listIterator ; + public final Set listIteratorInt ; + public final Set size ; + public final Set toArray ; + public final Set toArrayInstance ; + public final Set indexOfIdentifier; + + /** + * GraphFlavor commands + */ + + public final Set addAbstract ; + public final Set addConcrete ; + public final Set addAbstractSubGraph ; + public final Set isASemanticIdentity ; + public final Set addToVariables ; + public final Set addToValues ; + public final Set decommission ; + public final Set instantiateAbstract ; + public final Set instantiateConcrete ; + public final Set removeFromVariables ; + public final Set removeFromValues ; + public final Set setValue ; + + /** + * SemanticIdntity commands + */ + + public final Set addElement ; + public final Set removeElement ; + + public final Set setMaintenanceCommand ; + + /** + * SemanticIdntity queries + */ + public final Set isElementOf; + /** + * GraphFlavor, VertexFlavor, EdgeEndFlavor queries + */ + + public final Set artifact ; + public final Set filter ; + public final Set containsEdgeFromOrTo ; + public final Set filterFlavor; + public final Set hasVisibilityOf ; + public final Set filterInstances ; + public final Set isSuperSetOf ; + public final Set isLocalSuperSetOf ; + public final Set filterLinks ; + public final Set localRootSuperSetOf ; + public final Set directSuperSetOf ; + public final Set category ; + public final Set containerCategory ; + public final Set variables ; + public final Set value ; + public final Set values ; + public final Set visibleArtifactsForSubGraph ; + public final Set allowableEdgeCategories; + public final Set filterPolymorphic; + public final Set queries ; + public final Set commands ; + public final Set executableQueries ; + public final Set executableCommands ; + + + /** + * LinkFlavor queries + */ + + public final Set from ; + public final Set isExternal ; + public final Set to; + + /** + * EdgeFlavor queries + */ + + public final Set edgeEnds; + public final Set fromEdgeEnd ; + public final Set toEdgeEnd ; + + + public final Set name; + public final Set pluralName; + public final Set technicalName; + public final Set identifier; + + public final Set referencingSemanticRole; + + /** + * Events + */ + + public final Set event; + public final Set elementAdded; + public final Set elementRemoved; + + public CoreSets(final KernelIdentities fundamentalSIDs) { + orderedPair = OrderedPair.orderedPair; + + anonymous = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.anonymous(), orderedPair); + + isAbstract = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.isAbstract(), orderedPair); + isAbstract_TRUE = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.isAbstract_TRUE(), isAbstract); + isAbstract_FALSE = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.isAbstract_FALSE(), isAbstract); + + minCardinality = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.minCardinality(), orderedPair); + minCardinality_0 = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.minCardinality_0(), minCardinality); + minCardinality_1 = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.minCardinality_1(), minCardinality); + minCardinality_2 = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.minCardinality_2(), minCardinality); + minCardinality_n = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.minCardinality_n(), minCardinality); + minCardinality_NOTAPPLICABLE = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.minCardinality_NOTAPPLICABLE(), minCardinality); + minCardinality_UNKNOWN = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.minCardinality_UNKNOWN(), minCardinality); + + maxCardinality = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.maxCardinality(), orderedPair); + maxCardinality_0 = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.maxCardinality_0(), maxCardinality); + maxCardinality_1 = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.maxCardinality_1(), maxCardinality); + maxCardinality_2 = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.maxCardinality_2(), maxCardinality); + maxCardinality_n = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.maxCardinality_n(), maxCardinality); + maxCardinality_NOTAPPLICABLE = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.maxCardinality_NOTAPPLICABLE(), maxCardinality); + maxCardinality_UNKNOWN = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.maxCardinality_UNKNOWN(), maxCardinality); + + isNavigable = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.isNavigable(), orderedPair); + isNavigable_TRUE = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.isNavigable_TRUE(), isNavigable); + isNavigable_FALSE = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.isNavigable_FALSE(), isNavigable); + isNavigable_NOTAPPLICABLE = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.isNavigable_NOTAPPLICABLE(), isNavigable); + isNavigable_UNKNOWN = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.isNavigable_UNKNOWN(), isNavigable); + + isContainer = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.isContainer(), orderedPair); + isContainer_TRUE = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.isContainer_TRUE(), isContainer); + isContainer_FALSE = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.isContainer_FALSE(), isContainer); + isContainer_NOTAPPLICABLE = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.isContainer_NOTAPPLICABLE(), isContainer); + isContainer_UNKNOWN = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.isContainer_UNKNOWN(), isContainer); + + iqLogicValue = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.iqLogicValue(), orderedPair); + is_TRUE = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.is_TRUE(), iqLogicValue); + is_FALSE = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.is_FALSE(), iqLogicValue); + is_NOTAPPLICABLE = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.is_NOTAPPLICABLE(), iqLogicValue); + is_UNKNOWN = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.is_UNKNOWN(), iqLogicValue); + + booleanValue = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.booleanValue(), orderedPair); + + + completion = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.completion(), orderedPair); + successful = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.completion_successful(), completion); + + maxSearchSpaceDepth = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.maxSearchSpaceDepth(), orderedPair); + + kernelDefect = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.kernelDefect(), orderedPair); + kernelDefect_KernelHasReachedAnIllegalState = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.kernelDefect_KernelHasReachedAnIllegalState(), kernelDefect); + + semanticErr = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr(), orderedPair); + semanticErr_OnlyEdgeFlavoredInstancesHaveEdgeEndFlavors = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_OnlyEdgeFlavoredInstancesHaveEdgeEndFlavors(), semanticErr); + semanticErr_OnlyEdgeFlavoredInstancesHaveConnectedRoles = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_OnlyEdgeFlavoredInstancesHaveConnectedRoles(), semanticErr); + semanticErr_OnlyEdgeFlavoredInstancesHaveConnectedInstances = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_OnlyEdgeFlavoredInstancesHaveConnectedInstances(), semanticErr); + semanticErr_OnlyVisibilityFlavoredInstancesHaveFromSubGraph = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_OnlyVisibilityFlavoredInstancesHaveFromSubGraph(), semanticErr); + semanticErr_OnlyVisibilityFlavoredInstancesHaveToSubGraph = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_OnlyVisibilityFlavoredInstancesHaveToSubGraph(), semanticErr); + semanticErr_OnlySuperSetReferenceFlavoredInstancesHaveSuperSet = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_OnlySuperSetReferenceFlavoredInstancesHaveSuperSet(), semanticErr); + semanticErr_OnlySuperSetReferenceFlavoredInstancesHaveSubSet = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_OnlySuperSetReferenceFlavoredInstancesHaveSubSet(), semanticErr); + semanticErr_OnlyEdgeTraceFlavoredInstancesHaveAbstraction = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_OnlyEdgeTraceFlavoredInstancesHaveAbstraction(), semanticErr); + semanticErr_OnlyEdgeTraceFlavoredInstancesHaveDetail = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_OnlyEdgeTraceFlavoredInstancesHaveDetail(), semanticErr); + semanticErr_OnlyEdgeEndFlavoredInstancesHaveEdgeEndVertex = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_OnlyEdgeEndFlavoredInstancesHaveEdgeEndVertex(), semanticErr); + semanticErr_OnlyInstancesHaveIsAbstract = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_OnlyInstancesHaveIsAbstract(), semanticErr); + semanticErr_OnlyEdgeEndFlavoredInstancesHaveMinCardinality = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_OnlyEdgeEndFlavoredInstancesHaveMinCardinality(), semanticErr); + semanticErr_OnlyEdgeEndFlavoredInstancesHaveMaxCardinality = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_OnlyEdgeEndFlavoredInstancesHaveMaxCardinality(), semanticErr); + semanticErr_OnlyEdgeEndFlavoredInstancesHaveIsContainer = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_OnlyEdgeEndFlavoredInstancesHaveIsContainer(), semanticErr); + semanticErr_OnlyEdgeEndFlavoredInstancesHaveIsNavigable = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_OnlyEdgeEndFlavoredInstancesHaveIsNavigable(), semanticErr); + semanticErr_ValueIsNotAssigned = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_ValueIsNotAssigned(), semanticErr); + semanticErr_LinkIsNotApplicable = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_LinkIsNotApplicable(), semanticErr); + semanticErr_TargetIsNotWithinVisibility = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_TargetIsNotWithinVisibility(), semanticErr); + semanticErr_AddConcreteIsOnlyValidForConcreteVertexFlavor = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_AddConcreteIsOnlyValidForConcreteVertexFlavor(), semanticErr); + semanticErr_AddAbstractIsOnlyValidForAbstractVertexFlavor = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_AddAbstractIsOnlyValidForAbstractVertexFlavor(), semanticErr); + semanticErr_GraphGraphCantBeModified = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_GraphGraphCantBeModified(), semanticErr); + semanticErr_VariableCantBeRemovedArtifactStillHasInstances = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_VariableCantBeRemovedArtifactStillHasInstances(), semanticErr); + semanticErr_GraphsCantBeDecommissioned = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_GraphsCantBeDecommissioned(), semanticErr); + semanticErr_ValueIsNotAnInstanceOfVariableOfCategoryOfInstance = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_ValueIsNotAnInstanceOfVariableOfCategoryOfInstance(), semanticErr); + semanticErr_maxFromCardinalityIsOne = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_maxFromCardinalityIsOne(), semanticErr); + semanticErr_maxFromCardinalityIsTwo = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_maxFromCardinalityIsTwo(), semanticErr); + semanticErr_maxFromCardinalityIsIllegal = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_maxFromCardinalityIsIllegal(), semanticErr); + semanticErr_maxToCardinalityIsOne = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_maxToCardinalityIsOne(), semanticErr); + semanticErr_maxToCardinalityIsTwo = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_maxToCardinalityIsTwo(), semanticErr); + semanticErr_maxToCardinalityIsIllegal = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_maxToCardinalityIsIllegal(), semanticErr); + semanticErr_operationIsIllegalOnThisInstance = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_operationIsIllegalOnThisInstance(), semanticErr); + semanticErr_operationIsNotYetImplemented = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_operationIsNotYetImplemented(), semanticErr); + semanticErr_OnlyTransportContainerCanHaveContentElements = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_OnlyTransportContainerCanHaveContentElements(), semanticErr); + semanticErr_ThisSetIsNotAvailableInMemory = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.semanticErr_ThisSetIsNotAvailableInMemory(), semanticErr); + + parameter = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.parameter(), orderedPair); + flavor = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.flavor(), parameter); + target = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.target(), parameter); + subGraph = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.subGraph(), parameter); + name = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.name(), orderedPair); + pluralName = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.pluralName(), orderedPair); + technicalName = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.technicalName(), orderedPair); + identifier = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.identifier(), orderedPair); + + /** + * EventImpl concepts + */ + + event = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.event(), orderedPair); + elementAdded = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.elementAdded(), event); + elementRemoved = F_InstantiationImpl.createOrderedPair(fundamentalSIDs.elementRemoved(), event); + + /** + * Graph concepts + */ + orderedSet = F_Query.orderedSetFlavor(); + + /** Core functions + */ + function = F_InstantiationImpl.createFunction(identityFactory.function(), orderedSet); + + command = F_InstantiationImpl.createFunction(identityFactory.command(), function); + commandFunction = F_InstantiationImpl.createFunction(identityFactory.commandFunction(), command); + flavorCommandFunction = F_InstantiationImpl.createFunction(identityFactory.flavorCommandFunction(), command); + + query = F_InstantiationImpl.createFunction(identityFactory.query(), function) ; + queryFunction = F_InstantiationImpl.createOrderedPair(identityFactory.queryFunction(), query) ; + flavorQueryFunction = F_InstantiationImpl.createOrderedPair(identityFactory.flavorQueryFunction(), query) ; + + /** + * OrderedPairFlavor queries + */ + identity = F_InstantiationImpl.createFunction(identityFactory.identity(), flavorQueryFunction) ; + isEqualTo = F_InstantiationImpl.createFunction(identityFactory.isEqualTo(), flavorQueryFunction) ; + semanticIdentity = F_InstantiationImpl.createFunction(identityFactory.filterPolymorphic(), flavorQueryFunction); + isASemanticIdentity = F_InstantiationImpl.createFunction(identityFactory.isASemanticIdentity(), flavorCommandFunction) ; + isInformation = F_InstantiationImpl.createFunction(identityFactory.isInformation(), query); + + /** + * OrderedSetFlavor commands + */ + union = F_InstantiationImpl.createFunction(identityFactory.union(), flavorCommandFunction) ; + intersection = F_InstantiationImpl.createFunction(identityFactory.intersection(), flavorCommandFunction) ; + complement = F_InstantiationImpl.createFunction(identityFactory.complement(), flavorCommandFunction) ; + + /** + * OrderedSetFlavor queries + */ + contains = F_InstantiationImpl.createFunction(identityFactory.contains(), flavorQueryFunction) ; + containsAll = F_InstantiationImpl.createFunction(identityFactory.containsAll(), flavorQueryFunction) ; + get = F_InstantiationImpl.createFunction(identityFactory.get(), flavorQueryFunction) ; + indexOf = F_InstantiationImpl.createFunction(identityFactory.indexOf(), flavorQueryFunction) ; + isEmpty = F_InstantiationImpl.createFunction(identityFactory.isEmpty(), flavorQueryFunction) ; + lastIndexOf = F_InstantiationImpl.createFunction(identityFactory.lastIndexOf(), flavorQueryFunction) ; + listIterator = F_InstantiationImpl.createFunction(identityFactory.listIterator(), flavorQueryFunction) ; + listIteratorInt = F_InstantiationImpl.createFunction(identityFactory.listIteratorInt(), flavorQueryFunction) ; + size = F_InstantiationImpl.createFunction(identityFactory.size(), flavorQueryFunction) ; + toArray = F_InstantiationImpl.createFunction(identityFactory.toArray(), flavorQueryFunction) ; + toArrayInstance = F_InstantiationImpl.createFunction(identityFactory.toArrayInstance(), flavorQueryFunction) ; + indexOfIdentifier = F_InstantiationImpl.createFunction(identityFactory.indexOfIdentifier(), flavorQueryFunction) ; + + /** + * SemanticIdentity commands + */ + addElement = F_InstantiationImpl.createFunction(identityFactory.addElement(), commandFunction) ; + removeElement = F_InstantiationImpl.createFunction(identityFactory.removeElement(), commandFunction) ; + + setMaintenanceCommand = F_InstantiationImpl.createFunction(identityFactory.setMaintenanceCommand(), commandFunction) ; + + isElementOf = F_InstantiationImpl.createFunction(identityFactory.isElementOf(), queryFunction) ; + + /** + * GraphFlavor commands + */ + addAbstract = F_InstantiationImpl.createFunction(identityFactory.addAbstract(), flavorCommandFunction) ; + addConcrete = F_InstantiationImpl.createFunction(identityFactory.addConcrete(), flavorCommandFunction) ; + addAbstractSubGraph = F_InstantiationImpl.createFunction(identityFactory.isALink(), flavorCommandFunction) ; + addToVariables = F_InstantiationImpl.createFunction(identityFactory.addToVariables(), flavorCommandFunction) ; + addToValues = F_InstantiationImpl.createFunction(identityFactory.addToValues(), flavorCommandFunction) ; + decommission = F_InstantiationImpl.createFunction(identityFactory.decommission(), flavorCommandFunction) ; + instantiateAbstract = F_InstantiationImpl.createFunction(identityFactory.instantiateAbstract(), flavorCommandFunction) ; + instantiateConcrete = F_InstantiationImpl.createFunction(identityFactory.instantiateConcrete(), flavorCommandFunction) ; + removeFromVariables = F_InstantiationImpl.createFunction(identityFactory.removeFromVariables(), flavorCommandFunction) ; + removeFromValues = F_InstantiationImpl.createFunction(identityFactory.removeFromValues(), flavorCommandFunction) ; + setValue = F_InstantiationImpl.createFunction(identityFactory.setValue(), flavorCommandFunction) ; + /** + * GraphFlavor queries + */ + artifact = F_InstantiationImpl.createFunction(identityFactory.container(), flavorQueryFunction); + filter = F_InstantiationImpl.createFunction(identityFactory.filter(), isInformation, flavorQueryFunction); + containsEdgeFromOrTo = F_InstantiationImpl.createFunction(identityFactory.containsEdgeFromOrTo(), orderedPair, flavorQueryFunction); + filterFlavor = F_InstantiationImpl.createFunction(identityFactory.filterFlavor(), flavor, flavorQueryFunction); + hasVisibilityOf = F_InstantiationImpl.createFunction(identityFactory.hasVisibilityOf(), target, flavorQueryFunction); + filterInstances = F_InstantiationImpl.createFunction(identityFactory.filterInstances(), flavorQueryFunction); + isSuperSetOf = F_InstantiationImpl.createFunction(identityFactory.isSuperSetOf(), orderedPair, flavorQueryFunction); + isLocalSuperSetOf = F_InstantiationImpl.createFunction(identityFactory.isLocalSuperSetOf(), orderedPair, flavorQueryFunction); + filterLinks = F_InstantiationImpl.createFunction(identityFactory.filterLinks(), flavorQueryFunction); + localRootSuperSetOf = F_InstantiationImpl.createFunction(identityFactory.localRootSuperSetOf(), orderedPair, flavorQueryFunction); + directSuperSetOf = F_InstantiationImpl.createFunction(identityFactory.directSuperSetOf(), orderedPair, flavorQueryFunction); + category = F_InstantiationImpl.createFunction(identityFactory.category(), flavorQueryFunction); + containerCategory = F_InstantiationImpl.createFunction(identityFactory.containerCategory(), target, flavorQueryFunction); + variables = F_InstantiationImpl.createFunction(identityFactory.variables(), flavorQueryFunction); + value = F_InstantiationImpl.createFunction(identityFactory.value(), orderedPair, flavorQueryFunction); + values = F_InstantiationImpl.createFunction(identityFactory.values(), flavorQueryFunction); + visibleArtifactsForSubGraph = F_InstantiationImpl.createFunction(identityFactory.visibleArtifactsForSubGraph(), subGraph, flavorQueryFunction); + allowableEdgeCategories = F_InstantiationImpl.createFunction(identityFactory.allowableEdgeCategories(), orderedPair, flavorQueryFunction); + filterPolymorphic = F_InstantiationImpl.createFunction(identityFactory.filterPolymorphic(), category, flavorQueryFunction); + queries = F_InstantiationImpl.createFunction(identityFactory.queries(), flavorQueryFunction); + commands = F_InstantiationImpl.createFunction(identityFactory.commands(), flavorQueryFunction); + executableQueries = F_InstantiationImpl.createFunction(identityFactory.executableQueries(), flavorQueryFunction); + executableCommands = F_InstantiationImpl.createFunction(identityFactory.executableCommands(), flavorQueryFunction); + + /** + * LinkFlavor queries + */ + from = F_InstantiationImpl.createFunction(identityFactory.from(), flavorQueryFunction); + isExternal = F_InstantiationImpl.createFunction(identityFactory.isExternal(), flavorQueryFunction); + to = F_InstantiationImpl.createFunction(identityFactory.to(), flavorQueryFunction); + + /** + * EdgeFlavor queries + */ + edgeEnds = F_InstantiationImpl.createFunction(identityFactory.edgeEnds(), flavorQueryFunction); + fromEdgeEnd = F_InstantiationImpl.createFunction(identityFactory.fromEdgeEnd(), flavorQueryFunction); + toEdgeEnd = F_InstantiationImpl.createFunction(identityFactory.toEdgeEnd(), flavorQueryFunction); + + + + referencingSemanticRole = F_InstantiationImpl.createFunction(identityFactory.referencingSemanticRole(), orderedPair); + + } + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/api/Event.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/Event.java new file mode 100644 index 0000000..6e267ec --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/Event.java @@ -0,0 +1,42 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Limited (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.api; + +import org.gmodel.Set; + + + +public interface Event { + + /** + * QUERIES + */ + + Set generatingSet(); + Set generatingElement(); + Set setMaintenanceCommand(); + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/api/EventListener.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/EventListener.java new file mode 100644 index 0000000..39c3dd9 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/EventListener.java @@ -0,0 +1,32 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Ltd (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ +package org.gmodel.api; + +import org.gmodel.Set; + + +public interface EventListener { + Set processEvent(Set event); +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/api/InformationQualityLogic.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/InformationQualityLogic.java new file mode 100644 index 0000000..dafc941 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/InformationQualityLogic.java @@ -0,0 +1,105 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Limited (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.api; + +import org.gmodel.Set; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.core.F_IqLogic; + +public class InformationQualityLogic { + + public static Set and(final Set orderedSet) { + return F_IqLogic.and(orderedSet); + } + public static Set and(final Set a, final Set b) { + return F_IqLogic.and(a, b); + } + public static Set includesValue(final Set set, final Set value, final Set equivalenceClass) { + return F_IqLogic.includesValue(set, value, equivalenceClass); + } + + public static boolean is_FALSE(final Set set) { + return set.isEqualTo(GmodelSemanticDomains.is_FALSE); + } + + public static boolean is_NOTAPPLICABLE(final Set set) { + return set.isEqualTo(GmodelSemanticDomains.is_NOTAPPLICABLE); + } + + public static boolean is_TRUE(final Set set) { + return set.isEqualTo(GmodelSemanticDomains.is_TRUE); + } + + public static boolean is_UNKNOWN(final Set set) { + return set.isEqualTo(GmodelSemanticDomains.is_UNKNOWN); + } + + public static Set isEqualTo(final Set a, final Set b) { + return F_IqLogic.isEqualTo(a, b); + } + public static Set isEqualTo(final Set a, final Set b, final Set equivalenceClass) { + return F_IqLogic.isEqualTo(a, b, equivalenceClass); + } + + public static Set isGreaterThan(final Set a, final Set b) { + return F_IqLogic.isGreaterThan(a, b); + } + + public static Set isInformation(final Set set) { + return F_IqLogic.isInformation(set); + } + public static Set isQuality(final Set set) { + return F_IqLogic.isQuality(set); + } + public static Set isSmallerThan(final Set a, final Set b) { + return F_IqLogic.isSmallerThan(a, b); + } + + public static Set maximum(final Set orderedSet) { + return F_IqLogic.maximum(orderedSet); + } + + public static Set maximum(final Set a, final Set b) { + return F_IqLogic.maximum(a, b); + } + public static Set minimum(final Set orderedSet) { + return F_IqLogic.minimum(orderedSet); + } + public static Set minimum(final Set a, final Set b) { + return F_IqLogic.minimum(a, b); + } + public static Set not(final Set set) { + return F_IqLogic.not(set); + } + public static Set or(final Set orderedSet) { + return F_IqLogic.or(orderedSet); + } + public static Set or(final Set a, final Set b) { + return F_IqLogic.or(a, b); + } + + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/api/Instantiation.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/Instantiation.java new file mode 100644 index 0000000..7be3bef --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/Instantiation.java @@ -0,0 +1,121 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ +package org.gmodel.api; + +import static org.gmodel.core.F_Instantiation.identityFactory; + +import org.gmodel.Set; +import org.gmodel.api.models.SemanticDomain; +import org.gmodel.api.serializerinterface.Reconstitution; +import org.gmodel.core.F_Instantiation; +import org.gmodel.core.Graph; +import org.gmodel.impl.SemanticDomainCode; + +public class Instantiation { + + /** + * QUERIES + */ + // TODO this value must be made private, but is currently accessed by a test that is external to the kernel - the test needs to be reworked + public static final int indexIsNotAvailable = org.gmodel.core.F_SemanticStateOfInMemoryModel.indexIsNotAvailable; + + public static Set addAnonymousDisjunctSemanticIdentitySet(final Set semanticDomain) { + return ((Graph)semanticDomain).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, identityFactory.createAnonymousIdentity(false)); + } + + public static Set addAnonymousSemanticRole(final Set semanticDomain, final Set referencedSemanticIdentity) { + final Set result = ((Graph)semanticDomain).addConcrete(SemanticDomain.semanticRole, identityFactory.createAnonymousIdentity(false)); + SemanticDomainCode.addSemanticRole(result, referencedSemanticIdentity); + return result; + } + + public static Set addDisjunctSemanticIdentitySet(final String name, final String pluralName, final Set semanticDomain) { + return ((Graph)semanticDomain).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, identityFactory.createIdentity(name, pluralName, Instantiation.indexIsNotAvailable)); + } + + public static Set addSemanticDomain(final String name, final String pluralName, final Set semanticDomain) { + return ((Graph)semanticDomain).addAbstract(SemanticDomain.semanticdomain, identityFactory.createIdentity(name, pluralName)); + } + + public static Set addSemanticIdentitySet(final String name, final String pluralName, final Set semanticDomain) { + return ((Graph)semanticDomain).addConcrete(SemanticDomain.semanticIdentitySet, identityFactory.createIdentity(name, pluralName, Instantiation.indexIsNotAvailable)); + } + + public static Set addSemanticRole(final String name, final String pluralName, final Set semanticDomain, final Set referencedSemanticIdentity) { + return F_Instantiation.addSemanticRole(name, pluralName, semanticDomain, referencedSemanticIdentity); + } + + public static Set instantiateAbstract(final Set category, final Set semanticIdentity) { + return Reconstitution.instantiateAbstract(category, org.gmodel.core.F_Instantiation.reuseSemanticIdentity(semanticIdentity)); + } + + public static Set instantiateConcrete(final Set category, final Set semanticIdentity) { + return Reconstitution.instantiateConcrete(category, org.gmodel.core.F_Instantiation.reuseSemanticIdentity(semanticIdentity)); + } + public static Set link(final Set category, final Set fromInstance, final Set toInstance) { + return org.gmodel.core.F_Instantiation.link(category, fromInstance, toInstance); + } + + public static Set link(final Set category, + final Set edgeFlavoredIdentity, + final Set firstSemanticIdentity, + final Set firstOrderedPair, + final Set firstMinCardinality, + final Set firstMaxCardinality, + final Set firstIsNavigable, + final Set firstIsContainer, + final Set secondSemanticIdentity, + final Set secondOrderedPair, + final Set secondMinCardinality, + final Set secondMaxCardinality, + final Set secondIsNavigable, + final Set secondIsContainer + ) { + return org.gmodel.core.F_Instantiation.link(category, + org.gmodel.core.F_Instantiation.reuseSemanticIdentity(edgeFlavoredIdentity), + org.gmodel.core.F_Instantiation.reuseSemanticIdentity(firstSemanticIdentity), + firstOrderedPair, + firstMinCardinality, + firstMaxCardinality, + firstIsNavigable, + firstIsContainer, + org.gmodel.core.F_Instantiation.reuseSemanticIdentity(secondSemanticIdentity), + secondOrderedPair, + secondMinCardinality, + secondMaxCardinality, + secondIsNavigable, + secondIsContainer + ); + } + + public static Set linktoEquivalenceClass(final Set newSemanticRole, final Set equivalenceClass) { + return F_Instantiation.linkToEquivalenceClass(newSemanticRole, equivalenceClass); + } + + public static Set raiseError(final Set semanticIdentity, final Set category) { + return org.gmodel.core.F_Instantiation.raiseError(semanticIdentity.identity(), category); + } + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/api/Query.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/Query.java new file mode 100644 index 0000000..bc832c6 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/Query.java @@ -0,0 +1,196 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Limited (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.api; + +import org.gmodel.G; +import org.gmodel.Set; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models2.Visualization; +import org.gmodel.core.Edge; +import org.gmodel.core.EdgeEnd; +import org.gmodel.core.F_Query; +import org.gmodel.core.Link; +import org.gmodel.core.OrderedSet; +import org.gmodel.core.SuperSetReference; +import org.gmodel.core.Vertex; +import org.gmodel.core.Visibility; + + + +/** + * {@link Query} provides access to the Sets and Properties of the Gmodel kernel + * that constitute the basic Gmodel vocabulary. + * + * Additionally F_SemanticStateOfInMemoryModel enables the creation of links between Sets, + * and automatically attaches the link to the appropriate container Set. + * + * Note: F_SemanticStateOfInMemoryModel contains no implementation, it simply delegates to LinkConstraints, IdentityFactory, CoreSets, + * and KernelOrderedSets. + * + * Extensions: Gmodel is designed to be extensible. All extensions that only involve a structural extension + * of the meta model can be achieved by modelling the extension in Gmodel. Beyond such basic extensions, + * Gmodel can be extended/modified by plugging in a different IdentityFactory and/or by writing a custom Shell. + * Such extensions are created by creating a subclass of F_SemanticStateOfInMemoryModel that + * + * (a) adds a method that references the appropriate SemanticIndentityFactory: + * + * public static final CustomSemanticIdentityFactory customSemanticIdentityFactory = new CustomSemanticIdentityFactory(); + * + * and/or + * + * (b) reference the appropriate custom Shell by overriding the raiseError and link methods in F_SemanticStateOfInMemoryModel and by delegating to LinkConstraints + * to invoke the raiseError and link methods in the kernel. + * + * All extensions must use F_SemanticStateOfInMemoryModel's CoreSets and KernelOrderedSets. + * + */ +public class Query { + + public static Set vertex = vertex(); + + public static Set orderedSet = orderedSet(); + + public static Set link = link(); + + public static Set superSetReference = superSetReference(); + public static Set visibility = visibility(); + public static Set graph = graph(); + public static Set edgeEnd = edgeEnd(); + + public static Set edge = edge(); + public static Set changedSets() { + return F_Query.changedSets(); + } + + private static Edge edge() { + return F_Query.edgeFlavor(); + } + private static EdgeEnd edgeEnd() { + return F_Query.edgeEndFlavor(); + } + + public static Set find(final Set searchSpaceContainer, final Set searchSpaceDepth) { + // TODO: implement + return GmodelSemanticDomains.isEmpty; + } + public static Set find(final Set searchSpaceContainer, final Set searchSpaceDepth, final Set category) { + // TODO: implement + return GmodelSemanticDomains.isEmpty; + } + + public static Set findByName(final String instanceNameFragment, final String categoryNameFragment, final String containerNameFragment) { + // TODO: implement + return GmodelSemanticDomains.isEmpty; + } + public static Set findDependentInstances(final Set category) { + return F_Query.findDependentInstances(category); + } + + public static Set findDependentLinks(final Set referencedSet) { + return F_Query.findDependentLinks(referencedSet); + } + public static Set findDependentSets(final Set set) { + // relevant for DECOMMISSION_SEMANTICS + // TODO: implement additional repository based query to confirm that no dependent sets exit beyond the in-memory representation + return F_Query.findDependentSets(set); + } + + public static Set findFromSets(final Set toSet) { + // TODO: implement + return GmodelSemanticDomains.isEmpty; + } + public static Set findFromSets(final Set categoryOfLink, final Set toSet) { + // TODO: implement + return GmodelSemanticDomains.isEmpty; + } + + public static Set findFromSets(final Set categoryOfLink, final Set toEdgeEnd, final Set toSet) { + // TODO: implement + return GmodelSemanticDomains.isEmpty; + } + + public static Set findFromSets(final Set categoryOfLink, final Set fromEdgeEnd, final Set toEdgeEnd, final Set toSet) { + // TODO: implement + return GmodelSemanticDomains.isEmpty; + } + + public static Set findGraphVisualization(final Set set) { + return findUniqueFromSet(Visualization.visualizedGraph_to_graph, set) ; + } + + public static Set findSet(final String uniqueRepresentationReference) { + return org.gmodel.core.F_Query.findSet(uniqueRepresentationReference); + } + public static Set findUniqueFromSet(final Set categoryOfLink, final Set toSet) { + // TODO: implement + return GmodelSemanticDomains.isEmpty; + } + public static Set findUniqueFromSet(final Set categoryOfLink, final Set toEdgeEnd, final Set toSet) { + // TODO: implement + return GmodelSemanticDomains.isEmpty; + } + public static Set findUniqueFromSet(final Set categoryOfLink, final Set fromEdgeEnd, final Set toEdgeEnd, final Set toSet) { + // TODO: implement + return GmodelSemanticDomains.isEmpty; + } + private static Set graph() { + return F_Query.graph(); + } + + public static Set inMemorySets() { + return F_Query.inMemorySets(); + } + + public static Set isLoadedInLocalMemory(final Set set) { + if (Query.inMemorySets().containsRepresentation(set)) { + return G.coreSets.is_TRUE; + } else {return G.coreSets.is_FALSE; + } + } + + private static Link link() { + return F_Query.linkFlavor(); + } + + private static OrderedSet orderedSet() { + return F_Query.orderedSetFlavor(); + } + + public static Set runtimeErrors() { + return F_Query.runtimeErrors(); + } + + private static SuperSetReference superSetReference() { + return F_Query.superSetReferenceFlavor(); + } + private static Vertex vertex() { + return F_Query.vertexFlavor(); + } + private static Visibility visibility() { + return F_Query.visibilityFlavor(); + } + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/api/SetAlgebra.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/SetAlgebra.java new file mode 100644 index 0000000..ce6b278 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/SetAlgebra.java @@ -0,0 +1,50 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Limited (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.api; + +import org.gmodel.Set; +import org.gmodel.core.F_SetAlgebra; + +public class SetAlgebra { + public static Set complement(final Set set1, final Set set2) { + return F_SetAlgebra.complement(set1, set2); + } + public static Set intersection(final Set set1, final Set set2) { + return F_SetAlgebra.intersection(set1, set2); + } + public static Set isElementOf(final Set set1, final Set set2) { + return F_SetAlgebra.isElementOf(set1, set2); + } + public static Set transformToOrderedSetOfSemanticIdentities(final Set set) { + return F_SetAlgebra.transformToOrderedSetOfSemanticIdentities(set); + } + public static Set union(final Set set1, final Set set2) { + return F_SetAlgebra.union(set1, set2); + } + public static Set unionOfconnectingLinks(final Set set1, final Set set2) { + return F_SetAlgebra.unionOfconnectingLinks( set1, set2); + } +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/api/Transaction.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/Transaction.java new file mode 100644 index 0000000..a67ced1 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/Transaction.java @@ -0,0 +1,40 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Limited (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ +package org.gmodel.api; + +import org.gmodel.Set; +import org.gmodel.core.F_Transaction; + +public class Transaction { + + public static Set commitChangedSets() { + return F_Transaction.commitChangedSets(); + } + + public static Set rollbackChangedSets() { + return F_Transaction.rollbackChangedSets(); + } + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/api/VisitorFunction.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/VisitorFunction.java new file mode 100644 index 0000000..500730c --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/VisitorFunction.java @@ -0,0 +1,32 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Ltd (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ +package org.gmodel.api; + +import org.gmodel.Set; + +public interface VisitorFunction { + Set initialize(Set startLocation); + Set compute(Set location); +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/api/models/ArtifactDerivation.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/models/ArtifactDerivation.java new file mode 100644 index 0000000..8c29c50 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/models/ArtifactDerivation.java @@ -0,0 +1,83 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.api.models; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.G.coreSets; + +import org.gmodel.Set; +import org.gmodel.core.F_Instantiation; +import org.gmodel.core.SemanticIdentityRegistry; +import org.gmodel.impl.SemanticDomainCode; + +/** + * {@link ArtifactDerivation} implements all instantiation semantics related to DerivedArtifacts + * that must be enforced for all Instances/artifacts (instantiation level n, with n > 0) + * + * The semantics enforced in ArtifactDerivation apply to all use cases that involve model transformation and text generation + * on the basis of Gmodel artifacts. + * + */ +public final class ArtifactDerivation { + + public static final Set file = coreGraphs.vertex.addConcrete(coreGraphs.vertex, F_Instantiation.addDisjunctSemanticIdentitySetInKernel("file", "files", GmodelSemanticDomains.gmodel, SemanticIdentityRegistry.file.ordinal())); + public static final Set derivedFile = coreGraphs.vertex.addConcrete(coreGraphs.vertex, F_Instantiation.addDisjunctSemanticIdentitySetInKernel("derived file", "derived files", GmodelSemanticDomains.gmodel, SemanticIdentityRegistry.derivedFile.ordinal())); + public static final Set derivationTechnology = F_Instantiation.addDisjunctSemanticIdentitySetInKernel("derivation technology", "derivation technology", GmodelSemanticDomains.gmodel, SemanticIdentityRegistry.derivationTechnology.ordinal()); + public static final Set xpand = F_Instantiation.addDisjunctSemanticIdentitySetInKernel("xpand", "xpand", GmodelSemanticDomains.gmodel, SemanticIdentityRegistry.xpand.ordinal()); + public static final Set locationFunction = F_Instantiation.addDisjunctSemanticIdentitySetInKernel("location function", "location functions", GmodelSemanticDomains.gmodel, SemanticIdentityRegistry.locationFunction.ordinal()); + + final private static Set file_isSubSetOf_vertex = F_Instantiation.link(coreGraphs.superSetReference, file, coreGraphs.vertex); + final private static Set filederivation = F_Instantiation.link(coreGraphs.superSetReference,derivedFile, file); + + public static final Set derivationRule = org.gmodel.api.Instantiation.link(coreGraphs.edge, + F_Instantiation.addDisjunctSemanticIdentitySetInKernel("derivation rule", "set of derivation rules", GmodelSemanticDomains.gmodel, SemanticIdentityRegistry.derivationRule.ordinal()), + F_Instantiation.addDisjunctSemanticIdentitySetInKernel("derived container", "set of derived artifacts", GmodelSemanticDomains.gmodel, SemanticIdentityRegistry.derivedArtifact.ordinal()), + coreGraphs.vertex, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + F_Instantiation.addDisjunctSemanticIdentitySetInKernel("source container", "set of source artifacts", GmodelSemanticDomains.gmodel, SemanticIdentityRegistry.sourceArtifact.ordinal()), + coreGraphs.vertex, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE + ); + + /** + * execute command + */ + public static Set execute = derivationRule.addToCommands(org.gmodel.core.F_InstantiationImpl.createFunction(F_Instantiation.addDisjunctSemanticIdentitySetInKernel("execute", "execute", GmodelSemanticDomains.gmodel, SemanticIdentityRegistry.execute.ordinal()).identity(), coreSets.orderedSet, coreSets.commandFunction)); + + public static Set instantiateFeature() { + SemanticDomainCode.addElement(derivationTechnology, xpand); + derivationRule.addToVariables(derivationTechnology); + derivationRule.addToVariables(locationFunction); + + return coreGraphs.graph; + } +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/api/models/GmodelSemanticDomains.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/models/GmodelSemanticDomains.java new file mode 100644 index 0000000..d145c0f --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/models/GmodelSemanticDomains.java @@ -0,0 +1,528 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.api.models; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.G.coreSets; +import static org.gmodel.core.F_Instantiation.xtensionIdentityFactory; + +import org.gmodel.G; +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.core.F_Instantiation; +import org.gmodel.core.Graph; + +public class GmodelSemanticDomains { + + // Instantiation level 2, SemanticDomain : Gmodel + + // STRUCTURE OF SEMANTIC DOMAIN REPOSITORY + + public static final Set infiniteSets = F_Instantiation.instantiateSemanticDomain(org.gmodel.core.F_Instantiation.reuseSemanticIdentity(xtensionIdentityFactory.infiniteSets())); + public static final Set finiteSets = F_Instantiation.instantiateSemanticDomain(org.gmodel.core.F_Instantiation.reuseSemanticIdentity(xtensionIdentityFactory.finiteSets())); + + public static final Set gmodel = ((Graph)finiteSets).addAbstract(SemanticDomain.semanticdomain, xtensionIdentityFactory.gmodel() ); + public static final Set root = gmodel.addConcrete(SemanticDomain.disjunctSemanticIdentitySet, Root.root); + public static final Set semanticDomains = gmodel.addConcrete(SemanticDomain.disjunctSemanticIdentitySet, Root.semanticdomains); + public static final Set models = gmodel.addConcrete(SemanticDomain.disjunctSemanticIdentitySet, Root.models); + + public static final Set semanticDomain = gmodel.addConcrete(SemanticDomain.disjunctSemanticIdentitySet, SemanticDomain.semanticdomain); + public static final Set sd = semanticDomain; + public static final Set semanticIdentity = gmodel.addConcrete(SemanticDomain.disjunctSemanticIdentitySet, SemanticDomain.semanticIdentity); + + public static final Set semanticIdentitySet = gmodel.addConcrete(SemanticDomain.disjunctSemanticIdentitySet, SemanticDomain.semanticIdentitySet); + public static final Set semanticRole = gmodel.addConcrete(SemanticDomain.disjunctSemanticIdentitySet, SemanticDomain.semanticRole); + public static final Set disjunctSemanticIdentitySet = gmodel.addConcrete(SemanticDomain.disjunctSemanticIdentitySet, SemanticDomain.disjunctSemanticIdentitySet); + public static final Set variantDisjunctSemanticIdentitySet = gmodel.addConcrete(SemanticDomain.disjunctSemanticIdentitySet, SemanticDomain.variantDisjunctSemanticIdentitySet); + public static final Set equivalenceClass = gmodel.addConcrete(SemanticDomain.disjunctSemanticIdentitySet, SemanticDomain.semanticRole_to_equivalenceClass.toEdgeEnd()); + public static final Set element = gmodel.addConcrete(SemanticDomain.disjunctSemanticIdentitySet, SemanticDomain.elements_to_semanticIdentitySet.fromEdgeEnd()); + + public static final Set orderedPair = gmodel.addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.orderedPair); + public static final Set orderedSet = gmodel.addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.orderedSet); + public static final Set anonymous = gmodel.addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.anonymous); + public static final Set parameter = gmodel.addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.parameter); + public static final Set target = gmodel.addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.target); + public static final Set subGraph = gmodel.addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.subGraph); + public static final Set categoryOfOrderedPair = gmodel.addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.isInformation); + public static final Set flavor = gmodel.addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.flavor); + + public static final Set iqLogicValue = gmodel.addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.iqLogicValue); + public static final Set is_NOTAPPLICABLE = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.is_NOTAPPLICABLE); + public static final Set is_FALSE = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.is_FALSE); + public static final Set is_UNKNOWN = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.is_UNKNOWN); + public static final Set is_TRUE = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.is_TRUE); + + public static final Set booleanValue = gmodel.addConcrete(SemanticDomain.semanticIdentitySet, coreSets.booleanValue); + + public static final Set isAbstract = ((Graph)gmodel).addConcrete(SemanticDomain.semanticIdentitySet, coreSets.isAbstract); + public static final Set isAbstract_TRUE = ((Graph)gmodel).addConcrete(SemanticDomain.semanticRole, coreSets.isAbstract_TRUE); + public static final Set isAbstract_FALSE = ((Graph)gmodel).addConcrete(SemanticDomain.semanticRole, coreSets.isAbstract_FALSE); + + public static final Set minCardinality = ((Graph)gmodel).addConcrete(SemanticDomain.semanticIdentitySet, coreSets.minCardinality); + public static final Set minCardinality_0 = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.minCardinality_0); + public static final Set minCardinality_1 = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.minCardinality_1); + public static final Set minCardinality_2 = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.minCardinality_2); + public static final Set minCardinality_n = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.minCardinality_n); + public static final Set minCardinality_NOTAPPLICABLE = ((Graph)gmodel).addConcrete(SemanticDomain.semanticRole, coreSets.minCardinality_NOTAPPLICABLE); + public static final Set minCardinality_UNKNOWN = ((Graph)gmodel).addConcrete(SemanticDomain.semanticRole, coreSets.minCardinality_UNKNOWN); + + public static final Set maxCardinality = ((Graph)gmodel).addConcrete(SemanticDomain.semanticIdentitySet, coreSets.maxCardinality); + public static final Set maxCardinality_0 = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.maxCardinality_0); + public static final Set maxCardinality_1 = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.maxCardinality_1); + public static final Set maxCardinality_2 = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.maxCardinality_2); + public static final Set maxCardinality_n = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.maxCardinality_n); + public static final Set maxCardinality_NOTAPPLICABLE = ((Graph)gmodel).addConcrete(SemanticDomain.semanticRole, coreSets.maxCardinality_NOTAPPLICABLE); + public static final Set maxCardinality_UNKNOWN = ((Graph)gmodel).addConcrete(SemanticDomain.semanticRole, coreSets.maxCardinality_UNKNOWN); + + public static final Set isNavigable = ((Graph)gmodel).addConcrete(SemanticDomain.semanticIdentitySet, coreSets.isNavigable); + public static final Set isNavigable_TRUE = ((Graph)gmodel).addConcrete(SemanticDomain.semanticRole, coreSets.isNavigable_TRUE); + public static final Set isNavigable_FALSE = ((Graph)gmodel).addConcrete(SemanticDomain.semanticRole, coreSets.isNavigable_FALSE); + public static final Set isNavigable_NOTAPPLICABLE = ((Graph)gmodel).addConcrete(SemanticDomain.semanticRole, coreSets.isNavigable_NOTAPPLICABLE); + public static final Set isNavigable_UNKNOWN = ((Graph)gmodel).addConcrete(SemanticDomain.semanticRole, coreSets.isNavigable_UNKNOWN); + + public static final Set isContainer = ((Graph)gmodel).addConcrete(SemanticDomain.semanticIdentitySet, coreSets.isContainer); + public static final Set isContainer_TRUE = ((Graph)gmodel).addConcrete(SemanticDomain.semanticRole, coreSets.isContainer_TRUE); + public static final Set isContainer_FALSE = ((Graph)gmodel).addConcrete(SemanticDomain.semanticRole, coreSets.isContainer_FALSE); + public static final Set isContainer_NOTAPPLICABLE = ((Graph)gmodel).addConcrete(SemanticDomain.semanticRole, coreSets.isContainer_NOTAPPLICABLE); + public static final Set isContainer_UNKNOWN = ((Graph)gmodel).addConcrete(SemanticDomain.semanticRole, coreSets.isContainer_UNKNOWN); + + public static final Set completion = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.completion); + public static final Set successful = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.successful); + + public static final Set name = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.name); + public static final Set pluralName = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.pluralName); + public static final Set identifier = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.identifier); + public static final Set technicalName = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.technicalName); + public static final Set referencingSemanticRole = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.referencingSemanticRole); + + public static final Set kernelDefect = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.kernelDefect); + public static final Set kernelDefect_KernelHasReachedAnIllegalState = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.kernelDefect_KernelHasReachedAnIllegalState); + + public static final Set semanticErr = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr); + public static final Set semanticErr_OnlyEdgeFlavoredInstancesHaveEdgeEndFlavors = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_OnlyEdgeFlavoredInstancesHaveEdgeEndFlavors); + public static final Set semanticErr_OnlyEdgeFlavoredInstancesHaveConnectedRoles = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_OnlyEdgeFlavoredInstancesHaveConnectedRoles); + public static final Set semanticErr_OnlyEdgeFlavoredInstancesHaveConnectedInstances = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_OnlyEdgeFlavoredInstancesHaveConnectedInstances); + public static final Set semanticErr_OnlyVisibilityFlavoredInstancesHaveFromSubGraph = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_OnlyVisibilityFlavoredInstancesHaveFromSubGraph); + public static final Set semanticErr_OnlyVisibilityFlavoredInstancesHaveToSubGraph = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_OnlyVisibilityFlavoredInstancesHaveToSubGraph); + public static final Set semanticErr_OnlySuperSetReferenceFlavoredInstancesHaveSuperSet = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_OnlySuperSetReferenceFlavoredInstancesHaveSuperSet); + public static final Set semanticErr_OnlySuperSetReferenceFlavoredInstancesHaveSubSet = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_OnlySuperSetReferenceFlavoredInstancesHaveSubSet); + public static final Set semanticErr_OnlyEdgeTraceFlavoredInstancesHaveAbstraction = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_OnlyEdgeTraceFlavoredInstancesHaveAbstraction); + public static final Set semanticErr_OnlyEdgeTraceFlavoredInstancesHaveDetail = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_OnlyEdgeTraceFlavoredInstancesHaveDetail); + public static final Set semanticErr_OnlyEdgeEndFlavoredInstancesHaveEdgeEndVertex = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_OnlyEdgeEndFlavoredInstancesHaveEdgeEndVertex); + public static final Set semanticErr_OnlyInstancesHaveIsAbstract = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_OnlyInstancesHaveIsAbstract); + public static final Set semanticErr_OnlyEdgeEndFlavoredInstancesHaveMinCardinality = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_OnlyEdgeEndFlavoredInstancesHaveMinCardinality); + public static final Set semanticErr_OnlyEdgeEndFlavoredInstancesHaveMaxCardinality = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_OnlyEdgeEndFlavoredInstancesHaveMaxCardinality); + public static final Set semanticErr_OnlyEdgeEndFlavoredInstancesHaveIsContainer = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_OnlyEdgeEndFlavoredInstancesHaveIsContainer); + public static final Set semanticErr_OnlyEdgeEndFlavoredInstancesHaveIsNavigable = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_OnlyEdgeEndFlavoredInstancesHaveIsNavigable); + public static final Set semanticErr_ValueIsNotAssigned = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_ValueIsNotAssigned); + public static final Set semanticErr_LinkIsNotApplicable = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_LinkIsNotApplicable); + public static final Set semanticErr_TargetIsNotWithinVisibility = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_TargetIsNotWithinVisibility); + public static final Set semanticErr_AddConcreteIsOnlyValidForConcreteVertexFlavor = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_AddConcreteIsOnlyValidForConcreteVertexFlavor); + public static final Set semanticErr_AddAbstractIsOnlyValidForAbstractVertexFlavor = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_AddAbstractIsOnlyValidForAbstractVertexFlavor); + public static final Set semanticErr_GraphGraphCantBeModified = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_GraphGraphCantBeModified); + public static final Set semanticErr_VariableCantBeRemovedArtifactStillHasInstances = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_VariableCantBeRemovedArtifactStillHasInstances); + public static final Set semanticErr_GraphsCantBeDecommissioned = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_GraphsCantBeDecommissioned); + public static final Set semanticErr_ValueIsNotAnInstanceOfVariableOfCategoryOfInstance = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_ValueIsNotAnInstanceOfVariableOfCategoryOfInstance); + public static final Set semanticErr_maxFromCardinalityIsOne = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_maxFromCardinalityIsOne); + public static final Set semanticErr_maxFromCardinalityIsTwo = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_maxFromCardinalityIsTwo); + public static final Set semanticErr_maxFromCardinalityIsIllegal = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_maxFromCardinalityIsIllegal); + public static final Set semanticErr_maxToCardinalityIsOne = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_maxToCardinalityIsOne); + public static final Set semanticErr_maxToCardinalityIsTwo = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_maxToCardinalityIsTwo); + public static final Set semanticErr_maxToCardinalityIsIllegal = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_maxToCardinalityIsIllegal); + public static final Set semanticErr_operationIsIllegalOnThisInstance = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_operationIsIllegalOnThisInstance); + public static final Set semanticErr_operationIsNotYetImplemented = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_operationIsNotYetImplemented); + public static final Set semanticErr_ThisSetIsNotAvailableInMemory = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.semanticErr_ThisSetIsNotAvailableInMemory); + + /** + * core functions + */ + public static final Set function = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.function); + public static final Set command = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.command); + public static final Set commandFunction = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.commandFunction); + public static final Set flavorCommandFunction = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.flavorCommandFunction); + public static final Set query = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.query); + public static final Set queryFunction = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.queryFunction); + public static final Set flavorQueryFunction = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.flavorQueryFunction); + + /** + * OrderedPairFlavor queries + */ + public static final Set identity = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.identity); + public static final Set isEqualTo = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.isEqualTo); + + /** + * OrderedSetFlavor queries + */ + public static final Set contains = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.contains); + public static final Set containsAll = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.containsAll); + public static final Set get = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.get); + public static final Set indexOf = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.indexOf); + public static final Set isEmpty = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.isEmpty); + public static final Set lastIndexOf = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.lastIndexOf); + public static final Set listIterator = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.listIterator); + public static final Set listIteratorInt = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.listIteratorInt); + public static final Set size = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.size); + public static final Set toArray = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.toArray); + public static final Set toArrayInstance = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.toArrayInstance); + + /** + * GraphFlavor commands + */ + public static final Set addAbstract = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.addAbstract); + public static final Set addConcrete = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.addConcrete); + public static final Set isALink = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.addAbstractSubGraph); + public static final Set addConcreteSubGraph = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.isASemanticIdentity); + public static final Set addToVariables = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.addToVariables); + public static final Set addToValues = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.addToValues); + public static final Set decommission = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.decommission); + public static final Set instantiateAbstract = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.instantiateAbstract); + public static final Set instantiateConcrete = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.instantiateConcrete); + public static final Set removeFromVariables = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.removeFromVariables); + public static final Set removeFromValues = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.removeFromValues); + public static final Set setPropertyValue = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.setValue); + + /** + * GraphFlavor, VertexFlavor, EdgeEndFlavor queries + */ + + public static final Set artifact = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.artifact); + public static final Set categorizedSet = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.filter); + public static final Set containsEdgeFromOrTo = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.containsEdgeFromOrTo); + public static final Set flavoredSet = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.filterFlavor); + public static final Set hasVisibilityOf = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.hasVisibilityOf); + public static final Set instanceSet = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.filterInstances); + public static final Set isSuperSetOf = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.isSuperSetOf); + public static final Set isLocalSuperSetOf = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.isLocalSuperSetOf); + public static final Set linkSet = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.filterLinks); + public static final Set localRootSuperSetOf = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.localRootSuperSetOf); + public static final Set directSuperSetOf = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.directSuperSetOf); + public static final Set category = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.category); + public static final Set containerCategory = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.containerCategory); + public static final Set variables = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.variables); + public static final Set value = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.value); + public static final Set values = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.values); + public static final Set visibleArtifactsForSubGraph = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.visibleArtifactsForSubGraph); + + /** + * F_SemanticStateOfInMemoryModel commands + */ + + /** + * LinkFlavor queries + */ + + public static final Set from = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.from); + public static final Set isExternal = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.isExternal); + public static final Set to = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.to); + + /** + * EdgeFlavor queries + */ + + public static final Set edgeEnds = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.edgeEnds); + public static final Set fromEdgeEnd = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.fromEdgeEnd); + public static final Set toEdgeEnd = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.toEdgeEnd); + + + public static final Set event = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.event); + public static final Set setMaintenanceCommand = ((Graph)gmodel).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, coreSets.setMaintenanceCommand); + + public static void instantiateFeature() { + + // Instantiation level 2 + + // VISIBILITIES WITHIN THE SEMANTICDOMAINS REPOSITORY + Instantiation.link(coreGraphs.visibility, GmodelSemanticDomains.finiteSets, GmodelSemanticDomains.infiniteSets); + + // MODELS --> SEMANTICDOMAINS + Instantiation.link(coreGraphs.visibility, Root.models, GmodelSemanticDomains.finiteSets); + Instantiation.link(coreGraphs.visibility, Root.models, GmodelSemanticDomains.infiniteSets); + + iqLogicValue.addElement(is_NOTAPPLICABLE); + iqLogicValue.addElement(is_FALSE); + iqLogicValue.addElement(is_UNKNOWN); + iqLogicValue.addElement(is_TRUE); + + booleanValue.addElement(is_FALSE); + booleanValue.addElement(is_TRUE); + + isAbstract.addElement(is_TRUE); + isAbstract.addElement(is_FALSE); + Instantiation.linktoEquivalenceClass(isAbstract_TRUE, is_TRUE); + Instantiation.linktoEquivalenceClass(isAbstract_FALSE, is_FALSE); + + minCardinality.addElement(minCardinality_0); + minCardinality.addElement(minCardinality_1); + minCardinality.addElement(minCardinality_2); + minCardinality.addElement(minCardinality_n); + minCardinality.addElement(is_NOTAPPLICABLE); + minCardinality.addElement(is_UNKNOWN); + Instantiation.linktoEquivalenceClass(minCardinality_NOTAPPLICABLE, is_NOTAPPLICABLE); + Instantiation.linktoEquivalenceClass(minCardinality_UNKNOWN, is_UNKNOWN); + + maxCardinality.addElement(maxCardinality_0); + maxCardinality.addElement(maxCardinality_1); + maxCardinality.addElement(maxCardinality_2); + maxCardinality.addElement(maxCardinality_n); + maxCardinality.addElement(is_NOTAPPLICABLE); + maxCardinality.addElement(is_UNKNOWN); + Instantiation.linktoEquivalenceClass(maxCardinality_NOTAPPLICABLE, is_NOTAPPLICABLE); + Instantiation.linktoEquivalenceClass(maxCardinality_UNKNOWN, is_UNKNOWN); + + + isNavigable.addElement(is_NOTAPPLICABLE); + isNavigable.addElement(is_FALSE); + isNavigable.addElement(is_UNKNOWN); + isNavigable.addElement(is_TRUE); + Instantiation.linktoEquivalenceClass(isNavigable_TRUE, is_TRUE); + Instantiation.linktoEquivalenceClass(isNavigable_FALSE, is_FALSE); + Instantiation.linktoEquivalenceClass(isNavigable_NOTAPPLICABLE, is_NOTAPPLICABLE); + Instantiation.linktoEquivalenceClass(isNavigable_UNKNOWN, is_UNKNOWN); + + isContainer.addElement(is_NOTAPPLICABLE); + isContainer.addElement(is_FALSE); + isContainer.addElement(is_UNKNOWN); + isContainer.addElement(is_TRUE); + Instantiation.linktoEquivalenceClass(isContainer_TRUE, is_TRUE); + Instantiation.linktoEquivalenceClass(isContainer_FALSE, is_FALSE); + Instantiation.linktoEquivalenceClass(isContainer_NOTAPPLICABLE, is_NOTAPPLICABLE); + Instantiation.linktoEquivalenceClass(isContainer_UNKNOWN, is_UNKNOWN); + + // ensure that the inMemorySets contain all elements, including all elememts of the Gmodel kernel + addGmodelKernelElementsToInMemorySets(); + + } + + private static void addGmodelKernelElementsToInMemorySets() { + Graph.addSetToInMemorySets(infiniteSets ); + Graph.addSetToInMemorySets(finiteSets); + + Graph.addSetToInMemorySets(gmodel) ; + Graph.addSetToInMemorySets(root); + Graph.addSetToInMemorySets(semanticDomains ); + Graph.addSetToInMemorySets(models ); + + Graph.addSetToInMemorySets(semanticDomain ); + Graph.addSetToInMemorySets(semanticIdentity ); + + Graph.addSetToInMemorySets(semanticIdentitySet ); + Graph.addSetToInMemorySets(semanticRole ); + Graph.addSetToInMemorySets(disjunctSemanticIdentitySet) ; + Graph.addSetToInMemorySets(variantDisjunctSemanticIdentitySet); + Graph.addSetToInMemorySets(equivalenceClass); + Graph.addSetToInMemorySets(element); + + Graph.addSetToInMemorySets(G.coreGraphs.graph); + Graph.addSetToInMemorySets(G.coreGraphs.vertex); + Graph.addSetToInMemorySets(G.coreGraphs.link); + Graph.addSetToInMemorySets(G.coreGraphs.edge); + Graph.addSetToInMemorySets(G.coreGraphs.visibility); + Graph.addSetToInMemorySets(G.coreGraphs.superSetReference); + Graph.addSetToInMemorySets(G.coreGraphs.edgeEnd); + /* core sets */ + Graph.addSetToInMemorySets(orderedPair); + Graph.addSetToInMemorySets(orderedSet); + Graph.addSetToInMemorySets(anonymous); + + Graph.addSetToInMemorySets(isAbstract); + Graph.addSetToInMemorySets(isAbstract_TRUE); + Graph.addSetToInMemorySets(isAbstract_FALSE); + + Graph.addSetToInMemorySets(minCardinality); + Graph.addSetToInMemorySets(minCardinality_0); + Graph.addSetToInMemorySets(minCardinality_1); + Graph.addSetToInMemorySets(minCardinality_2); + Graph.addSetToInMemorySets(minCardinality_n); + Graph.addSetToInMemorySets(minCardinality_NOTAPPLICABLE); + Graph.addSetToInMemorySets(minCardinality_UNKNOWN); + + Graph.addSetToInMemorySets(maxCardinality); + Graph.addSetToInMemorySets(maxCardinality_0); + Graph.addSetToInMemorySets(maxCardinality_1); + Graph.addSetToInMemorySets(maxCardinality_2); + Graph.addSetToInMemorySets(maxCardinality_n); + Graph.addSetToInMemorySets(maxCardinality_NOTAPPLICABLE); + Graph.addSetToInMemorySets(maxCardinality_UNKNOWN); + + Graph.addSetToInMemorySets(isNavigable); + Graph.addSetToInMemorySets(isNavigable_TRUE); + Graph.addSetToInMemorySets(isNavigable_FALSE); + Graph.addSetToInMemorySets(isNavigable_NOTAPPLICABLE); + Graph.addSetToInMemorySets(isNavigable_UNKNOWN); + + Graph.addSetToInMemorySets(isContainer); + Graph.addSetToInMemorySets(isContainer_TRUE); + Graph.addSetToInMemorySets(isContainer_FALSE); + Graph.addSetToInMemorySets(isContainer_NOTAPPLICABLE); + Graph.addSetToInMemorySets(isContainer_UNKNOWN); + + Graph.addSetToInMemorySets(iqLogicValue); + Graph.addSetToInMemorySets(is_TRUE); + Graph.addSetToInMemorySets(is_FALSE); + Graph.addSetToInMemorySets(is_NOTAPPLICABLE); + Graph.addSetToInMemorySets(is_UNKNOWN); + + Graph.addSetToInMemorySets(completion); + Graph.addSetToInMemorySets(successful); + Graph.addSetToInMemorySets(kernelDefect); + Graph.addSetToInMemorySets(kernelDefect_KernelHasReachedAnIllegalState); + + Graph.addSetToInMemorySets(semanticErr); + Graph.addSetToInMemorySets(semanticErr_OnlyEdgeFlavoredInstancesHaveEdgeEndFlavors); + Graph.addSetToInMemorySets(semanticErr_OnlyEdgeFlavoredInstancesHaveConnectedRoles); + Graph.addSetToInMemorySets(semanticErr_OnlyEdgeFlavoredInstancesHaveConnectedInstances); + Graph.addSetToInMemorySets(semanticErr_OnlyVisibilityFlavoredInstancesHaveFromSubGraph); + Graph.addSetToInMemorySets(semanticErr_OnlyVisibilityFlavoredInstancesHaveToSubGraph); + Graph.addSetToInMemorySets(semanticErr_OnlySuperSetReferenceFlavoredInstancesHaveSuperSet); + Graph.addSetToInMemorySets(semanticErr_OnlySuperSetReferenceFlavoredInstancesHaveSubSet); + Graph.addSetToInMemorySets(semanticErr_OnlyEdgeTraceFlavoredInstancesHaveAbstraction); + Graph.addSetToInMemorySets(semanticErr_OnlyEdgeTraceFlavoredInstancesHaveDetail); + Graph.addSetToInMemorySets(semanticErr_OnlyEdgeEndFlavoredInstancesHaveEdgeEndVertex); + Graph.addSetToInMemorySets(semanticErr_OnlyInstancesHaveIsAbstract); + Graph.addSetToInMemorySets(semanticErr_OnlyEdgeEndFlavoredInstancesHaveMinCardinality); + Graph.addSetToInMemorySets(semanticErr_OnlyEdgeEndFlavoredInstancesHaveMaxCardinality); + Graph.addSetToInMemorySets(semanticErr_OnlyEdgeEndFlavoredInstancesHaveIsContainer); + Graph.addSetToInMemorySets(semanticErr_OnlyEdgeEndFlavoredInstancesHaveIsNavigable); + Graph.addSetToInMemorySets(semanticErr_ValueIsNotAssigned); + Graph.addSetToInMemorySets(semanticErr_LinkIsNotApplicable); + Graph.addSetToInMemorySets(semanticErr_TargetIsNotWithinVisibility); + Graph.addSetToInMemorySets(semanticErr_AddConcreteIsOnlyValidForConcreteVertexFlavor); + Graph.addSetToInMemorySets(semanticErr_AddAbstractIsOnlyValidForAbstractVertexFlavor); + Graph.addSetToInMemorySets(semanticErr_GraphGraphCantBeModified); + Graph.addSetToInMemorySets(semanticErr_VariableCantBeRemovedArtifactStillHasInstances); + Graph.addSetToInMemorySets(semanticErr_GraphsCantBeDecommissioned); + Graph.addSetToInMemorySets(semanticErr_ValueIsNotAnInstanceOfVariableOfCategoryOfInstance); + Graph.addSetToInMemorySets(semanticErr_maxFromCardinalityIsOne); + Graph.addSetToInMemorySets(semanticErr_maxFromCardinalityIsTwo); + Graph.addSetToInMemorySets(semanticErr_maxFromCardinalityIsIllegal); + Graph.addSetToInMemorySets(semanticErr_maxToCardinalityIsOne); + Graph.addSetToInMemorySets(semanticErr_maxToCardinalityIsTwo); + Graph.addSetToInMemorySets(semanticErr_maxToCardinalityIsIllegal); + Graph.addSetToInMemorySets(semanticErr_operationIsIllegalOnThisInstance); + Graph.addSetToInMemorySets(semanticErr_operationIsNotYetImplemented); + + Graph.addSetToInMemorySets(parameter); + Graph.addSetToInMemorySets(target); + Graph.addSetToInMemorySets(subGraph); + Graph.addSetToInMemorySets(categoryOfOrderedPair); + Graph.addSetToInMemorySets(flavor); + + /** + * core functions + */ + Graph.addSetToInMemorySets(function); + Graph.addSetToInMemorySets(command); + Graph.addSetToInMemorySets(commandFunction); + Graph.addSetToInMemorySets(flavorCommandFunction); + Graph.addSetToInMemorySets(query ); + Graph.addSetToInMemorySets(queryFunction ); + Graph.addSetToInMemorySets(flavorQueryFunction ); + + /** + * OrderedPairFlavor queries + */ + + Graph.addSetToInMemorySets(identity ); + Graph.addSetToInMemorySets(isEqualTo ); + + + /** + * OrderedSetFlavor queries + */ + + Graph.addSetToInMemorySets(contains ); + Graph.addSetToInMemorySets(containsAll ); + Graph.addSetToInMemorySets(get ); + Graph.addSetToInMemorySets(indexOf ); + Graph.addSetToInMemorySets(isEmpty ); + Graph.addSetToInMemorySets(lastIndexOf ); + Graph.addSetToInMemorySets(listIterator ); + Graph.addSetToInMemorySets(listIteratorInt ); + Graph.addSetToInMemorySets(size ); + Graph.addSetToInMemorySets(toArray ); + Graph.addSetToInMemorySets(toArrayInstance ); + + /** + * GraphFlavor commands + */ + + Graph.addSetToInMemorySets(addAbstract ); + Graph.addSetToInMemorySets(addConcrete ); + Graph.addSetToInMemorySets(isALink ); + Graph.addSetToInMemorySets(addConcreteSubGraph ); + Graph.addSetToInMemorySets(addToVariables ); + Graph.addSetToInMemorySets(addToValues ); + Graph.addSetToInMemorySets(decommission ); + Graph.addSetToInMemorySets(instantiateAbstract ); + Graph.addSetToInMemorySets(instantiateConcrete ); + Graph.addSetToInMemorySets(removeFromVariables ); + Graph.addSetToInMemorySets(removeFromValues ); + Graph.addSetToInMemorySets(setPropertyValue ); + + /** + * GraphFlavor, VertexFlavor, EdgeEndFlavor queries + */ + + Graph.addSetToInMemorySets(artifact ); + Graph.addSetToInMemorySets(categorizedSet ); + Graph.addSetToInMemorySets(containsEdgeFromOrTo ); + Graph.addSetToInMemorySets(flavoredSet); + Graph.addSetToInMemorySets(hasVisibilityOf ); + Graph.addSetToInMemorySets(instanceSet ); + Graph.addSetToInMemorySets(isSuperSetOf ); + Graph.addSetToInMemorySets(isLocalSuperSetOf ); + Graph.addSetToInMemorySets(linkSet ); + Graph.addSetToInMemorySets(localRootSuperSetOf ); + Graph.addSetToInMemorySets(directSuperSetOf ); + Graph.addSetToInMemorySets(category ); + Graph.addSetToInMemorySets(containerCategory ); + Graph.addSetToInMemorySets(variables ); + Graph.addSetToInMemorySets(value ); + Graph.addSetToInMemorySets(values ); + Graph.addSetToInMemorySets(visibleArtifactsForSubGraph ); + + /** + * LinkFlavor queries + */ + + Graph.addSetToInMemorySets(from ); + Graph.addSetToInMemorySets(isExternal ); + Graph.addSetToInMemorySets(to); + + /** + * EdgeFlavor queries + */ + + Graph.addSetToInMemorySets(edgeEnds ); + Graph.addSetToInMemorySets(fromEdgeEnd ); + Graph.addSetToInMemorySets(toEdgeEnd ); + + Graph.addSetToInMemorySets(event ); + Graph.addSetToInMemorySets(setMaintenanceCommand ); + + } + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/api/models/HTMLRepresentation.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/models/HTMLRepresentation.java new file mode 100644 index 0000000..a8b8142 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/models/HTMLRepresentation.java @@ -0,0 +1,69 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.api.models; + +import static org.gmodel.G.coreGraphs; + +import org.gmodel.Set; +import org.gmodel.core.F_Instantiation; +import org.gmodel.core.SemanticIdentityRegistry; + +/** + * {@link HTMLRepresentation} implements all instantiation semantics related to HTMLRepresentation + * that must be enforced for all Instances/artifacts (instantiation level n, with n > 0) + * + * The semantics enforced in HTMLRepresentation apply to Gmodel artifacts. + * + */ +public final class HTMLRepresentation { + + public static final Set htmlRepresentation = coreGraphs.vertex.addConcrete(ArtifactDerivation.derivedFile, F_Instantiation.addDisjunctSemanticIdentitySetInKernel("html representation", "html representation", GmodelSemanticDomains.gmodel, SemanticIdentityRegistry.htmlRepresentation.ordinal())); + public static final Set htmlTargetLocation = F_Instantiation.addDisjunctSemanticIdentitySetInKernel("/html/", "/html/", GmodelSemanticDomains.gmodel, SemanticIdentityRegistry.htmlTargetLocation.ordinal()); + + public static final Set html_to_artifact = org.gmodel.api.Instantiation.link(ArtifactDerivation.derivationRule, + F_Instantiation.addDisjunctSemanticIdentitySetInKernel("html to container", "html to artifacts", GmodelSemanticDomains.gmodel, SemanticIdentityRegistry.html_to_artifact.ordinal()), + htmlRepresentation, + htmlRepresentation, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.isNavigable_FALSE, + GmodelSemanticDomains.isContainer_FALSE, + GmodelSemanticDomains.artifact, + coreGraphs.vertex, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.isNavigable_FALSE, + GmodelSemanticDomains.isContainer_TRUE + ); + + + public static Set instantiateFeature() { + ArtifactDerivation.locationFunction.addElement(htmlTargetLocation); + html_to_artifact.addToValues(ArtifactDerivation.xpand); + html_to_artifact.addToValues(htmlTargetLocation); + return coreGraphs.graph; + } +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/api/models/Root.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/models/Root.java new file mode 100644 index 0000000..ead1551 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/models/Root.java @@ -0,0 +1,56 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.api.models; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.core.F_Instantiation.identityFactory; + +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.core.Graph; +import org.gmodel.core.SemanticIdentityRegistry; + +public class Root { + + public static final Set root = ((Graph)coreGraphs.vertex).addConcrete(coreGraphs.vertex, identityFactory.createIdentityInKernel("root", "roots", SemanticIdentityRegistry.root.ordinal())); + public static final Set timestamp = ((Graph)coreGraphs.vertex).addConcrete(coreGraphs.vertex, identityFactory.createIdentityInKernel("timestamp", "set of timestamps", SemanticIdentityRegistry.timestamp.ordinal())); + + // ALL MODELS ARE BASED ON SEMANTIC DOMAINS + + public static final Set semanticdomains = ((Graph)Root.root).addConcrete(coreGraphs.vertex, identityFactory.createIdentityInKernel("semantic domains", "set of semantic domains", SemanticIdentityRegistry.semanticdomains.ordinal())); + public static final Set models = ((Graph)Root.root).addConcrete(coreGraphs.vertex, identityFactory.createIdentityInKernel("models", "set of models", SemanticIdentityRegistry.models.ordinal())); + public static final Set universalartifactengineering = ((Graph)models).addConcrete(coreGraphs.vertex, identityFactory.createIdentityInKernel("universal container engineering", "set of universal container engineering", SemanticIdentityRegistry.universalartifactengineering.ordinal())); + + public static void instantiateFeature() { + Instantiation.link(coreGraphs.visibility, Root.root, semanticdomains); + Instantiation.link(coreGraphs.visibility, Root.root, models); + + // MODELS --> SEMANTICDOMAINS + Instantiation.link(coreGraphs.visibility, models, semanticdomains); + + } + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/api/models/SemanticDomain.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/models/SemanticDomain.java new file mode 100644 index 0000000..3148e4c --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/models/SemanticDomain.java @@ -0,0 +1,164 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.api.models; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.G.coreSets; +import static org.gmodel.core.F_Instantiation.identityFactory; + +import org.gmodel.Set; +import org.gmodel.core.F_Instantiation; +import org.gmodel.core.F_InstantiationImpl; +import org.gmodel.core.Graph; + +public class SemanticDomain { + + // Instantiation level 1, Graph : SemanticDomain + + public static final Set semanticdomain = ((Graph)Root.models).addConcrete(coreGraphs.vertex, identityFactory.semanticDomain()); + public static final Set semanticIdentity = ((Graph)semanticdomain).addAbstract(coreGraphs.vertex, identityFactory.semanticIdentity()); + public static final Set semanticIdentitySet = ((Graph)semanticdomain).addConcrete(coreGraphs.vertex, identityFactory.semanticIdentitySet()); + public static final Set semanticRole = ((Graph)semanticdomain).addConcrete(coreGraphs.vertex, identityFactory.semanticRole()); + public static final Set disjunctSemanticIdentitySet = ((Graph)semanticdomain).addConcrete(coreGraphs.vertex, identityFactory.disjunctSemanticIdentitySet()); + public static final Set variantDisjunctSemanticIdentitySet = ((Graph)semanticdomain).addConcrete(coreGraphs.vertex, identityFactory.variantDisjunctSemanticIdentitySet()); + + public static final Set semanticRole_to_equivalenceClass = F_Instantiation.link(coreGraphs.edge, + F_Instantiation.reuseSemanticIdentity(semanticRole.identity()), + semanticRole, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + F_Instantiation.reuseSemanticIdentity(identityFactory.equivalenceClass()), + //abstractSemanticRole, + semanticIdentity, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + + public static final Set elements_to_disjunctSemanticIdentitySet = F_Instantiation.link(coreGraphs.edge, + F_Instantiation.reuseSemanticIdentity(identityFactory.element()), + disjunctSemanticIdentitySet, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE, + + F_Instantiation.reuseSemanticIdentity(identityFactory.disjunctSemanticIdentitySet()), + disjunctSemanticIdentitySet, + coreSets.minCardinality_0, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + + ); + public static final Set elements_to_semanticIdentitySet = F_Instantiation.link(coreGraphs.edge, + + F_Instantiation.reuseSemanticIdentity(identityFactory.element()), + semanticIdentity, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE, + + F_Instantiation.reuseSemanticIdentity(semanticIdentitySet.identity()), + semanticIdentitySet, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE + ); + + public static void instantiateFeature() { + + // Instantiation level 1 + + F_Instantiation.link(coreGraphs.superSetReference, semanticIdentitySet, semanticIdentity); + F_Instantiation.link(coreGraphs.superSetReference, semanticRole, semanticIdentity); + F_Instantiation.link(coreGraphs.superSetReference, disjunctSemanticIdentitySet, semanticIdentity); + F_Instantiation.link(coreGraphs.superSetReference, variantDisjunctSemanticIdentitySet, disjunctSemanticIdentitySet); + + final Set disjunctSemanticIdentitySet_to_semanticIdentitySet = F_Instantiation.link(coreGraphs.edge, + F_Instantiation.reuseSemanticIdentity(disjunctSemanticIdentitySet.identity()), + disjunctSemanticIdentitySet, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + F_Instantiation.reuseSemanticIdentity(identityFactory.variabilityDimension()), + semanticIdentitySet, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + final Set disjunctSemanticIdentitySet_to_variantDisjunctSemanticIdentitySet = F_Instantiation.link(coreGraphs.edge, + F_Instantiation.reuseSemanticIdentity(disjunctSemanticIdentitySet.identity()), + disjunctSemanticIdentitySet, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + F_Instantiation.reuseSemanticIdentity(identityFactory.variantIdentifier()), + variantDisjunctSemanticIdentitySet, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + + semanticIdentitySet.addToQueries(F_InstantiationImpl.createFunction(identityFactory.filterFlavor(), coreSets.flavor, coreSets.queryFunction)); + + /** + * semanticIdentitySet and disjunctSemanticIdentitySet commands + */ + + final Set semanticIdentitySet_addElement = F_InstantiationImpl.createFunction(identityFactory.addElement(), semanticIdentity, coreSets.commandFunction); + semanticIdentitySet.addToCommands(semanticIdentitySet_addElement); + + final Set disjunctSemanticIdentitySet_addElement = F_InstantiationImpl.createFunction(identityFactory.addElement(), disjunctSemanticIdentitySet, coreSets.commandFunction); + disjunctSemanticIdentitySet.addToCommands(disjunctSemanticIdentitySet_addElement); + + final Set semanticIdentitySet_removeElement = F_InstantiationImpl.createFunction(identityFactory.removeElement(), semanticIdentity, coreSets.commandFunction); + semanticIdentitySet.addToCommands(semanticIdentitySet_removeElement); + + final Set disjunctSemanticIdentitySet_removeElement = F_InstantiationImpl.createFunction(identityFactory.removeElement(), disjunctSemanticIdentitySet, coreSets.commandFunction); + disjunctSemanticIdentitySet.addToCommands(disjunctSemanticIdentitySet_removeElement); + + /** + * semanticIdentitySet and disjunctSemanticIdentitySet queries + */ + + final Set semanticIdentitySet_elements = F_InstantiationImpl.createFunction(identityFactory.elementsOfSemanticIdentitySet(), coreSets.queryFunction); + semanticIdentitySet.addToQueries(semanticIdentitySet_elements); + + final Set disjunctSemanticIdentitySet_elements = F_InstantiationImpl.createFunction(identityFactory.elementsOfSemanticIdentitySet(), coreSets.queryFunction); + disjunctSemanticIdentitySet.addToQueries(disjunctSemanticIdentitySet_elements); + + } +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/api/models2/EnterpriseArchitecture.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/models2/EnterpriseArchitecture.java new file mode 100644 index 0000000..2524da7 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/models2/EnterpriseArchitecture.java @@ -0,0 +1,70 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.api.models2; + +import static org.gmodel.G.coreGraphs; + +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models.Root; + +/** + * {@link EnterpriseArchitecture} implements all instantiation semantics related to Enterprise Architecture information modelling + * that must be enforced for all Instances/artifacts (instantiation level n, with n > 0) + * + * The semantics enforced in EnterpriseArchitecture relate to specific subsets of vertices + * that are useful for classifying Enterprise Architecture information + * + */ +public final class EnterpriseArchitecture { + + //public static final Set enterpriseArchitectureGraph = F_SemanticStateOfInMemoryModel.instantiateConcrete(StateConsciousArtifact.stateConsciousArtifact, F_SemanticStateOfInMemoryModel.addDisjunctSemanticIdentitySet("enterprise architecture", "set of enterprise architecture", GmodelSemanticDomains.gmodel)); + public static final Set enterpriseArchitectureGraph = Root.universalartifactengineering.addConcrete(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("enterprise architecture", "set of enterprise architecture", GmodelSemanticDomains.gmodel)); + public static final Set how = enterpriseArchitectureGraph.addConcrete(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("how", "how? - processes", GmodelSemanticDomains.gmodel)); + public static final Set who = enterpriseArchitectureGraph.addConcrete(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("who", "who? - persons, organisations, groups", GmodelSemanticDomains.gmodel)); + public static final Set what = enterpriseArchitectureGraph.addConcrete(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("what", "what? - funding, assets, resources", GmodelSemanticDomains.gmodel)); + public static final Set when = enterpriseArchitectureGraph.addConcrete(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("when", "when? - actions, events, episodes", GmodelSemanticDomains.gmodel)); + public static final Set where = enterpriseArchitectureGraph.addConcrete(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("where", "where? - location, addresses, spacial shapes", GmodelSemanticDomains.gmodel)); + public static final Set why = enterpriseArchitectureGraph.addConcrete(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("why", "why? - laws, policies, agreements", GmodelSemanticDomains.gmodel)); + + public static Set instantiateFeature() { + + // Here we ensure that the enterpriseArchitectureGraph is a true extension of Graph, + // so that effectively the enterpriseArchitectureGraph is still at Instantiation level 0 - the same as Graph. + // See the TestSequence script to understand the effect. + Instantiation.link(coreGraphs.superSetReference, enterpriseArchitectureGraph, coreGraphs.vertex); + Instantiation.link(coreGraphs.superSetReference, how, coreGraphs.vertex); + Instantiation.link(coreGraphs.superSetReference, who, coreGraphs.vertex); + Instantiation.link(coreGraphs.superSetReference, what, coreGraphs.vertex); + Instantiation.link(coreGraphs.superSetReference, when, coreGraphs.vertex); + Instantiation.link(coreGraphs.superSetReference, where, coreGraphs.vertex); + Instantiation.link(coreGraphs.superSetReference, why, coreGraphs.vertex); + + return enterpriseArchitectureGraph; + } + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/api/models2/RepositoryStructure.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/models2/RepositoryStructure.java new file mode 100644 index 0000000..f597708 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/models2/RepositoryStructure.java @@ -0,0 +1,95 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.api.models2; + +import static org.gmodel.G.coreGraphs; + +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models.Root; + +public class RepositoryStructure { + + // STRUCTURE OF SEMANTIC DOMAIN REPOSITORY + public static final Set integers = Instantiation.addSemanticDomain("integers", "set of integers", GmodelSemanticDomains.infiniteSets); + public static final Set rationals = Instantiation.addSemanticDomain("rationals", "set of rationals", GmodelSemanticDomains.infiniteSets); + public static final Set reals = Instantiation.addSemanticDomain("reals", "set of reals", GmodelSemanticDomains.infiniteSets); + public static final Set complex = Instantiation.addSemanticDomain("complex", "set of complex", GmodelSemanticDomains.infiniteSets); + public static final Set dates = Instantiation.addSemanticDomain("dates", "set of dates", GmodelSemanticDomains.infiniteSets); + public static final Set strings = Instantiation.addSemanticDomain("strings", "set of strings", GmodelSemanticDomains.infiniteSets); + public static final Set htmlRepresentations = Instantiation.addSemanticDomain("htmlRepresentations", "set of htmlRepresentations", GmodelSemanticDomains.finiteSets); + + // STRUCTURE OF MODEL REPOSITORY + public static final Set domainengineering = Root.models.addConcrete(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("domain engineering", "set of domain engineering", GmodelSemanticDomains.finiteSets)); + public static final Set projectmanagement = Root.models.addAbstract(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("project management", "", GmodelSemanticDomains.finiteSets)); + public static final Set productmanagement = Root.models.addAbstract(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("product management", "", GmodelSemanticDomains.finiteSets)); + public static final Set productlinemanagement = Root.models.addAbstract(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("product line management", "", GmodelSemanticDomains.finiteSets)); + public static final Set graphVisualizations = Root.models.addAbstract(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("graph visualizations", "", GmodelSemanticDomains.finiteSets)); + public static final Set applicationengineering = Instantiation.instantiateConcrete(domainengineering, Instantiation.addDisjunctSemanticIdentitySet("application engineering", "", GmodelSemanticDomains.finiteSets)); + public static final Set applicationoperation = Instantiation.instantiateConcrete(applicationengineering, Instantiation.addDisjunctSemanticIdentitySet("application operation", "", GmodelSemanticDomains.finiteSets)); + + public static final Set organization = productlinemanagement.addConcrete(EnterpriseArchitecture.who, Instantiation.addDisjunctSemanticIdentitySet("organization", "organizations", GmodelSemanticDomains.finiteSets)); + public static final Set system = productlinemanagement.addConcrete(EnterpriseArchitecture.what, Instantiation.addDisjunctSemanticIdentitySet("system", "systems", GmodelSemanticDomains.finiteSets)); + public static final Set managedfeature = productlinemanagement.addConcrete(EnterpriseArchitecture.what, Instantiation.addDisjunctSemanticIdentitySet("managed feature", "managed features", GmodelSemanticDomains.finiteSets)); + + public static final Set product = productmanagement.addConcrete(EnterpriseArchitecture.what, Instantiation.addDisjunctSemanticIdentitySet("product", "products", GmodelSemanticDomains.finiteSets)); + public static final Set productfeedback = productmanagement.addConcrete(EnterpriseArchitecture.what, Instantiation.addDisjunctSemanticIdentitySet("product feedback", "product feedbacks", GmodelSemanticDomains.finiteSets)); + public static final Set usecase = productmanagement.addConcrete(EnterpriseArchitecture.how, Instantiation.addDisjunctSemanticIdentitySet("use case", "use cases", GmodelSemanticDomains.finiteSets)); + + public static final Set timebox = projectmanagement.addConcrete(EnterpriseArchitecture.when, Instantiation.addDisjunctSemanticIdentitySet("timebox", "timeboxes", GmodelSemanticDomains.finiteSets)); + + public static void instantiateFeature() { + + // VISIBILITIES WITHIN THE MODEL REPOSITORY + Instantiation.link(coreGraphs.visibility, Root.models, domainengineering); + + Instantiation.link(coreGraphs.visibility, domainengineering, GmodelSemanticDomains.finiteSets); + Instantiation.link(coreGraphs.visibility, projectmanagement, GmodelSemanticDomains.finiteSets); + + Instantiation.link(coreGraphs.visibility, domainengineering, productlinemanagement); + Instantiation.link(coreGraphs.visibility, domainengineering, productmanagement); + + Instantiation.link(coreGraphs.visibility, projectmanagement, productmanagement); + Instantiation.link(coreGraphs.visibility, productmanagement, productlinemanagement); + Instantiation.link(coreGraphs.visibility, applicationengineering, productmanagement); + Instantiation.link(coreGraphs.visibility, applicationengineering, productlinemanagement); + Instantiation.link(coreGraphs.visibility, applicationengineering, domainengineering); + + Instantiation.link(coreGraphs.visibility, organization, system); + Instantiation.link(coreGraphs.visibility, system, managedfeature); + + Instantiation.link(coreGraphs.visibility, product, productfeedback); + Instantiation.link(coreGraphs.visibility, product, usecase); + Instantiation.link(coreGraphs.visibility, productfeedback, organization); + Instantiation.link(coreGraphs.visibility, usecase, organization); + Instantiation.link(coreGraphs.visibility, usecase, managedfeature); + + Instantiation.link(coreGraphs.visibility, timebox, product); + + } + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/api/models2/Visualization.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/models2/Visualization.java new file mode 100644 index 0000000..081a060 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/models2/Visualization.java @@ -0,0 +1,254 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.api.models2; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.G.coreSets; + +import org.gmodel.G; +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models.Root; +import org.gmodel.api.models.SemanticDomain; + +/** + * {@link Visualization} implements all semantics related to visualizing an container + * that must be enforced for all Instances/artifacts (instantiation level n, with n > 0) + * + * The semantics enforced in visualizedGraph provide the basis for modelling the of 1, 2, and 3 dimensional representations of Gmodel artifacts + */ +public final class Visualization { + + public static final Set graphVisualization = Root.universalartifactengineering.addConcrete(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("graph visualizedGraph", "graph visualizations", GmodelSemanticDomains.gmodel)); + + public static final Set visualizedGraph = graphVisualization.addConcrete(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("visualized graph", "visualized graphs", GmodelSemanticDomains.gmodel)); + private static final Set maxC = visualizedGraph.addToValues(GmodelSemanticDomains.maxCardinality_1); + public static final Set visualizedAspect = graphVisualization.addAbstract(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("visualized aspect", "visualized aspects", GmodelSemanticDomains.gmodel)); + public static final Set structure = graphVisualization.addConcrete(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("structure", "structures", GmodelSemanticDomains.gmodel)); + private static final Set maxC1 = structure.addToValues(GmodelSemanticDomains.maxCardinality_1); + public static final Set reuse = graphVisualization.addConcrete(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("reuse", "set of reuses", GmodelSemanticDomains.gmodel)); + private static final Set maxC2 = reuse.addToValues(GmodelSemanticDomains.maxCardinality_1); + public static final Set visibilities = graphVisualization.addConcrete(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("visibilities", "set of visibilities", GmodelSemanticDomains.gmodel)); + private static final Set maxC3 = visibilities.addToValues(GmodelSemanticDomains.maxCardinality_1); + public static final Set details = graphVisualization.addConcrete(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("details", "set of details", GmodelSemanticDomains.gmodel)); + private static final Set maxC4 = details.addToValues(GmodelSemanticDomains.maxCardinality_1); + public static final Set diagram = graphVisualization.addConcrete(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("diagram", "diagrams", GmodelSemanticDomains.gmodel)); + public static final Set representation = graphVisualization.addConcrete(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("representation", "representations", GmodelSemanticDomains.gmodel)); + public static final Set symbol = graphVisualization.addConcrete(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("symbol", "symbols", GmodelSemanticDomains.gmodel)); + public static final Set x = graphVisualization.addConcrete(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("x", "set of x", GmodelSemanticDomains.gmodel)); + public static final Set y = graphVisualization.addConcrete(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("y", "set of y", GmodelSemanticDomains.gmodel)); + public static final Set z = graphVisualization.addConcrete(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("z", "set of z", GmodelSemanticDomains.gmodel)); + public static final Set width = graphVisualization.addConcrete(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("width", "set of widths", GmodelSemanticDomains.gmodel)); + public static final Set height = graphVisualization.addConcrete(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("height", "set of heights", GmodelSemanticDomains.gmodel)); + public static final Set depth = graphVisualization.addConcrete(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("depth", "set of depths", GmodelSemanticDomains.gmodel)); + + public static final Set visualizedAspect_to_diagram = Instantiation.link(coreGraphs.edge, + Instantiation.addDisjunctSemanticIdentitySet("visualizedAspect_to_diagram", "visualizedAspect_to_diagram", GmodelSemanticDomains.gmodel), + visualizedAspect, + visualizedAspect, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_TRUE, + diagram, + diagram, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + public static final Set diagram_to_representation = Instantiation.link(coreGraphs.edge, + Instantiation.addDisjunctSemanticIdentitySet("diagram_to_representation", "diagram_to_representation", GmodelSemanticDomains.gmodel), + diagram, + diagram, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_TRUE, + representation, + representation, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + + public static final Set representation_to_x = Instantiation.link(coreGraphs.edge, + Instantiation.addDisjunctSemanticIdentitySet("representation_to_x", "representation_to_x", GmodelSemanticDomains.gmodel), + representation, + representation, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_TRUE, + x, + x, + coreSets.minCardinality_0, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + public static final Set representation_to_y = Instantiation.link(coreGraphs.edge, + Instantiation.addDisjunctSemanticIdentitySet("representation_to_y", "representation_to_y", GmodelSemanticDomains.gmodel), + representation, + representation, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_TRUE, + y, + y, + coreSets.minCardinality_0, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + public static final Set representation_to_z = Instantiation.link(coreGraphs.edge, + Instantiation.addDisjunctSemanticIdentitySet("representation_to_z", "representation_to_z", GmodelSemanticDomains.gmodel), + representation, + representation, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_TRUE, + z, + z, + coreSets.minCardinality_0, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + public static final Set representation_to_width = Instantiation.link(coreGraphs.edge, + Instantiation.addDisjunctSemanticIdentitySet("representation_to_width", "representation_to_width", GmodelSemanticDomains.gmodel), + representation, + representation, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_TRUE, + width, + width, + coreSets.minCardinality_0, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + public static final Set representation_to_height = Instantiation.link(coreGraphs.edge, + Instantiation.addDisjunctSemanticIdentitySet("representation_to_height", "representation_to_height", GmodelSemanticDomains.gmodel), + representation, + representation, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_TRUE, + height, + height, + coreSets.minCardinality_0, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + public static final Set representation_to_depth = Instantiation.link(coreGraphs.edge, + Instantiation.addDisjunctSemanticIdentitySet("representation_to_depth", "representation_to_depth", GmodelSemanticDomains.gmodel), + representation, + representation, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_TRUE, + depth, + depth, + coreSets.minCardinality_0, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + public static final Set representation_to_representedInstance = Instantiation.link(coreGraphs.edge, + Instantiation.addDisjunctSemanticIdentitySet("representation_to_representedInstance", "representation_to_representedInstance", GmodelSemanticDomains.gmodel), + representation, + representation, + coreSets.minCardinality_1, + coreSets.maxCardinality_n, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + Instantiation.addDisjunctSemanticIdentitySet("represented instance", "represented instances", GmodelSemanticDomains.gmodel), + G.coreGraphs.graph, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + public static final Set visualizedGraph_to_graph = Instantiation.link(coreGraphs.edge, + Instantiation.addDisjunctSemanticIdentitySet("visualizedGraph_to_graph", "visualizedGraph_to_graph", GmodelSemanticDomains.gmodel), + visualizedGraph, + visualizedGraph, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + G.coreGraphs.graph, + G.coreGraphs.graph, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + + public static final Set symbol_to_semantic_identity = Instantiation.link(coreGraphs.edge, + Instantiation.addDisjunctSemanticIdentitySet("symbol_to_semantic_identity", "symbols_to_semantic_identities", GmodelSemanticDomains.gmodel), + symbol, + symbol, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE, + SemanticDomain.semanticIdentity, + SemanticDomain.semanticIdentity, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + + public static Set instantiateFeature() { + + Instantiation.link(coreGraphs.superSetReference, graphVisualization, coreGraphs.vertex); + Instantiation.link(coreGraphs.superSetReference, visualizedGraph, coreGraphs.vertex); + Instantiation.link(coreGraphs.superSetReference, representation, coreGraphs.vertex); + Instantiation.link(coreGraphs.superSetReference, details, visualizedAspect); + Instantiation.link(coreGraphs.superSetReference, structure, visualizedAspect); + Instantiation.link(coreGraphs.superSetReference, reuse, visualizedAspect); + Instantiation.link(coreGraphs.superSetReference, visibilities, visualizedAspect); + + visualizedGraph.identity().makePartOfUniversalArtifactConcept(); + representation.identity().makePartOfUniversalArtifactConcept(); + symbol.identity().makePartOfUniversalArtifactConcept(); + + return visualizedGraph; + } + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/api/serializerinterface/Reconstitution.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/serializerinterface/Reconstitution.java new file mode 100644 index 0000000..3acf047 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/api/serializerinterface/Reconstitution.java @@ -0,0 +1,114 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Limited (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.api.serializerinterface; + +import java.util.UUID; + +import org.gmodel.Identity; +import org.gmodel.Set; +import org.gmodel.core.F_Instantiation; +import org.gmodel.core.F_Query; +import org.gmodel.core.Graph; + + + +/** + * {@link Reconstitution} complements the public org.gmodel.G API and is only for use in the context of deserialization + */ +public class Reconstitution { + + public static Set addAbstract(final Set artifact, final Set category, final Identity identity) { + return ((Graph)artifact).addAbstract(category, identity); + } + + public static Set addConcrete(final Set artifact, final Set category, final Identity identity) { + return ((Graph)artifact).addConcrete(category, identity); + } + + public static void completeGmodelSemanticDomainInitialization() { + org.gmodel.core.F_SemanticStateOfInMemoryModel.completeGmodelSemanticDomainInitialization(); + } + public static Set getSetFromLocalMemory(final Identity identity) { + return org.gmodel.core.F_Query.getSetFromLocalMemory(identity); + } + public static Set instantiateAbstract(final Set category, final Identity semanticIdentity) { + return F_Instantiation.instantiateAbstractArtifact(semanticIdentity, category); + } + + public static Set instantiateConcrete(final Set category, final Identity semanticIdentity) { + return F_Instantiation.instantiateConcreteArtifact(semanticIdentity, category); + } + + public static Set instantiateSemanticDomain(final Identity semanticIdentity) { + return F_Instantiation.instantiateSemanticDomain(semanticIdentity); + } + + public static Set raiseError(final Identity semanticIdentity, final Set category) { + return org.gmodel.core.F_Instantiation.raiseError(semanticIdentity, category); + } + + public static Identity reconstituteIdentity(final String name, final String pluralName, final UUID identifier, final UUID uniqueRepresentationReference) { + return org.gmodel.core.F_Instantiation.reconstituteIdentity(name, pluralName, identifier, uniqueRepresentationReference); + } + public static Set reconstituteLink(final Identity category, final Identity edgeFlavoredIdentity, final Identity fromInstance, final Identity toInstance) { + return org.gmodel.core.F_Instantiation.reconstituteLink(category, edgeFlavoredIdentity, fromInstance, toInstance); + } + public static Set reconstituteLink(final Identity category, + final Identity edgeFlavoredIdentity, + final Identity firstSemanticIdentity, + final Identity firstOrderedPair, + final Identity firstMinCardinality, + final Identity firstMaxCardinality, + final Identity firstIsNavigable, + final Identity firstIsContainer, + final Identity secondSemanticIdentity, + final Identity secondOrderedPair, + final Identity secondMinCardinality, + final Identity secondMaxCardinality, + final Identity secondIsNavigable, + final Identity secondIsContainer + ) { + return org.gmodel.core.F_Instantiation.reconstituteLink(category, + edgeFlavoredIdentity, + firstSemanticIdentity, + firstOrderedPair, + firstMinCardinality, + firstMaxCardinality, + firstIsNavigable, + firstIsContainer, + secondSemanticIdentity, + secondOrderedPair, + secondMinCardinality, + secondMaxCardinality, + secondIsNavigable, + secondIsContainer + ) ; + } + + public static Set testDeserialisationPrerequisites(final Set set) { + return F_Query.testDeserialisationPrerequisites(set); + } +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/computation/Computation.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/computation/Computation.java new file mode 100644 index 0000000..4da4b35 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/computation/Computation.java @@ -0,0 +1,36 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Limited (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ +package org.gmodel.computation; + +import org.gmodel.Set; +import org.gmodel.api.VisitorFunction; + +public interface Computation { + Set initializeWalk(final VisitorFunction visitorFunction); + Set walkDownThenRight(final VisitorFunction visitorFunction) ; + Set walkDownThenLeft(final VisitorFunction visitorFunction) ; + Set walkRightThenDown(final VisitorFunction visitorFunction) ; + Set walkLeftThenDown(final VisitorFunction visitorFunction); +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/Edge.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/Edge.java new file mode 100644 index 0000000..cef90c0 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/Edge.java @@ -0,0 +1,319 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.core; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.G.coreSets; +import static org.gmodel.core.F_Instantiation.identityFactory; + +import org.gmodel.Identity; +import org.gmodel.SemanticStateOfInMemoryModel; +import org.gmodel.Set; + +public final class Edge extends Link { + + private static final Set minCardinality_0 = coreSets.minCardinality_0; + private static final Set minCardinality_1 = coreSets.minCardinality_1; + + private static final Set maxCardinality_1 = coreSets.maxCardinality_1; + private static final Set maxCardinality_n = coreSets.maxCardinality_n; + + private static final Set isNavigable_FALSE = coreSets.isNavigable_FALSE; + private static final Set isNavigable_TRUE = coreSets.isNavigable_TRUE; + + private static final Set isContainer_FALSE = coreSets.isContainer_FALSE; + + /* Reify the Gmodel Edge concept */ + public static final Edge edge = new Edge(); + private Set container; + private final OrderedSet edgeEnd = new OrderedSet(identityFactory.createAnonymousIdentityInKernel()); + + protected Edge(final Identity firstEdgeEndIdentity, + final Set firstSet, + final Set firstMinCardinality, + final Set firstMaxCardinality, + final Set firstIsNavigable, + final Set firstIsContainer, + final Identity secondEdgeEndIdentity, + final Set secondSet, + final Set secondMinCardinality, + final Set secondMaxCardinality, + final Set secondIsNavigable, + final Set secondIsContainer, + final Set category) { + // The new Edge must be made part of the same container as the firstProperty (a subtype Graph) edgeEnd! + super(identityFactory.createAnonymousIdentity(firstSet.identity().isPartOfKernel()), category); + this.setContainer(firstSet.container()); + this.addToValues(coreSets.isAbstract_FALSE); + this.addEdgeEnds(firstEdgeEndIdentity, + firstSet, + firstMinCardinality, + firstMaxCardinality, + firstIsNavigable, + firstIsContainer, + secondEdgeEndIdentity, + secondSet, + secondMinCardinality, + secondMaxCardinality, + secondIsNavigable, + secondIsContainer); + ((Graph) this.container()).addToEdges(this); + Graph.addSetToInMemorySets(this); + if (SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + ((Graph) this.container()).setContainsNewSets(true); + Graph.addSetToChangedSets(this); + Graph.addSetToChangedSets(this.container()); + } + } + protected Edge(final Identity firstEdgeEndIdentity, + final Set firstSet, + final Set firstMinCardinality, + final Set firstMaxCardinality, + final Set firstIsNavigable, + final Set firstIsContainer, + final Identity secondEdgeEndIdentity, + final Set secondSet, + final Set secondMinCardinality, + final Set secondMaxCardinality, + final Set secondIsNavigable, + final Set secondIsContainer, + final Set category, + final Identity edgeFlavoredIdentity) { + // The new Edge must be made part of the same container as the firstProperty (a subtype Graph) edgeEnd! + super(edgeFlavoredIdentity, category); + this.setContainer(firstSet.container()); + this.addToValues(coreSets.isAbstract_FALSE); + this.addEdgeEnds(firstEdgeEndIdentity, + firstSet, + firstMinCardinality, + firstMaxCardinality, + firstIsNavigable, + firstIsContainer, + secondEdgeEndIdentity, + secondSet, + secondMinCardinality, + secondMaxCardinality, + secondIsNavigable, + secondIsContainer); + ((Graph) this.container()).addToEdges(this); + Graph.addSetToInMemorySets(this); + if (SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + ((Graph) this.container()).setContainsNewSets(true); + Graph.addSetToChangedSets(this); + Graph.addSetToChangedSets(this.container()); + } + } + protected Edge(final Identity semanticIdentity, + final Set firstOrderedPair, + final Identity semanticIdentity2, + final Set secondOrderedPair) { + // The new Edge must be made part of the Graph.graph container! + super(identityFactory.createAnonymousIdentity(firstOrderedPair.identity().isPartOfKernel()), Edge.edge); + this.setContainer(Graph.graph); + this.addToValues(coreSets.isAbstract_FALSE); + this.addEdgeEnds(semanticIdentity, + firstOrderedPair, minCardinality_0, maxCardinality_n, isNavigable_FALSE, isContainer_FALSE, + semanticIdentity2, + secondOrderedPair, minCardinality_1, maxCardinality_1, isNavigable_TRUE, isContainer_FALSE); + ((Graph) this.container()).addToEdges(this); + Graph.addSetToInMemorySets(this); + if (SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + ((Graph) this.container()).setContainsNewSets(true); + Graph.addSetToChangedSets(this); + Graph.addSetToChangedSets(this.container()); + } + } + + private Edge() { + super(identityFactory.edge()); + this.setContainer(Graph.graph); + this.addToValues(coreSets.isAbstract_FALSE); + this.addFlavorQueries(); + } + + @Override + public String toString() { + return this.localVisualRecognitionText(); + } + + @Override + public String localVisualRecognitionText() { + if (this.category().isEqualTo(this)) { + return visualRecognitionText() + " : " + visualRecognitionText(); + } + if (this.isExternal().is_TRUE()) { + return "(" + this.from().identity().name() + " -E-> " + + this.to().visualRecognitionText() + ") : " + + this.category().localVisualRecognitionText(); + } else { + return "(" + this.from().identity().name() + " -E-> " + + this.to().identity().name() + ") : " + + this.category().localVisualRecognitionText(); + } + } + @Override + public String localVisualRecognitionTextWithEdgeEnds() { + if (this.isExternal().is_TRUE()) { + return "(" + this.from().identity().name() + + "[" + this.fromEdgeEnd().identity().name() + "] -E-> [" + + this.toEdgeEnd().identity().name() + "]" + + this.to().visualRecognitionText() + ")"; + } else { + return "(" + this.from().identity().name() + + "[" + this.fromEdgeEnd().identity().name() + "] -E-> [" + + this.toEdgeEnd().identity().name() + "]" + + this.to().identity().name() + ")"; + } + } + @Override + public String visualRecognitionText() { + if (this.category().isEqualTo(this)) { + return this.identity().name(); + } else { + if (this.isExternal().is_TRUE()) { + return "(" + this.from().identity().name() + " -E-> " + + this.to().visualRecognitionText() + ")." + + this.container().visualRecognitionText(); + } else { + return "(" + this.from().identity().name() + " -E-> " + + this.to().identity().name() + ")." + + this.container().visualRecognitionText(); + } + } + } + @Override + public String fullVisualRecognitionText() { + return this.visualRecognitionText() + " : " + this.category().visualRecognitionText(); + } + + + /* Implementation of semantics */ + + @Override + public Set container() { + return container; + } + private void setContainer(final Set set) { + this.container = set; + } + + private void addToEdgeEnds(final EdgeEnd anElement) { + this.edgeEnd.add(anElement); + } + + private void addEdgeEnds(final Identity firstEdgeEndIdentity, + final Set firstSet, + final Set firstMinCardinality, + final Set firstMaxCardinality, + final Set firstIsNavigable, + final Set firstIsContainer, + final Identity secondEdgeEndIdentity, + final Set secondSet, + final Set secondMinCardinality, + final Set secondMaxCardinality, + final Set secondIsNavigable, + final Set secondIsContainer) + { + final EdgeEnd first = F_InstantiationImpl.createEdgeEnd(firstSet.container(), firstEdgeEndIdentity, firstSet); + first.addToValues(firstMinCardinality); + first.addToValues(firstMaxCardinality); + first.addToValues(firstIsNavigable); + first.addToValues(firstIsContainer); + this.addToEdgeEnds(first); + final EdgeEnd second = F_InstantiationImpl.createEdgeEnd(firstSet.container(), secondEdgeEndIdentity, secondSet); + second.addToValues(secondMinCardinality); + second.addToValues(secondMaxCardinality); + second.addToValues(secondIsNavigable); + second.addToValues(secondIsContainer); + this.addToEdgeEnds(second); + } + + @Override + public Set isExternal() { + for (final Set connectedSet : this.edgeEnds()) { + if ((connectedSet.flavor().isEqualTo(coreSets.orderedPair)) && (!(this.container().isEqualTo(Graph.graph)))) { + return coreSets.is_TRUE; + } else + if (!(((Graph)connectedSet).container().isEqualTo(this.container()))) { + return coreSets.is_TRUE; + } + } + return coreSets.is_FALSE; + } + + @Override + public final Set from() { + if (!this.isEqualTo(edge)) { + return ((EdgeEnd) fromEdgeEnd()).connectedSet(); + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + } + @Override + public final Set to() { + if (!this.isEqualTo(edge)) { + return ((EdgeEnd) toEdgeEnd()).connectedSet(); + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + } + + @Override + public final Set fromEdgeEnd() { + if (this.isEqualTo(Edge.edge)){ + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + return this.edgeEnds().extractFirst(); + } + @Override + public final Set toEdgeEnd() { + if (this.isEqualTo(Edge.edge)){ + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + return this.edgeEnds().extractLast(); + } + + + @Override + public final Set edgeEnds() { + return this.edgeEnd; + } + + @Override + public Set flavor() { + return coreGraphs.edge; + } + /** + * EdgeFlavor queries + */ + @Override + protected final void addFlavorQueries() { + super.addFlavorQueries(); + this.addToQueries(coreSets.edgeEnds); + this.addToQueries(coreSets.from); + this.addToQueries(coreSets.to); + } +} \ No newline at end of file diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/EdgeEnd.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/EdgeEnd.java new file mode 100644 index 0000000..c2cc04a --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/EdgeEnd.java @@ -0,0 +1,84 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.core; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.G.coreSets; +import static org.gmodel.core.F_Instantiation.identityFactory; + +import org.gmodel.Identity; +import org.gmodel.Set; + +public final class EdgeEnd extends Graph { + + /* Reify the Gmodel EdgeEnd concept */ + public static final EdgeEnd edgeEnd = new EdgeEnd(); + private Set connectedSet; + private final Set container; + + protected EdgeEnd(final Set container, final Identity firstSemanticIdentity, final Set vertex) { + super(firstSemanticIdentity, edgeEnd); + this.connectedSet = vertex; + this.container = container; + + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized() + && !(firstSemanticIdentity.isEqualTo(identityFactory.element())) + && !(firstSemanticIdentity.isEqualTo(identityFactory.set())) + && !(firstSemanticIdentity.isEqualTo(identityFactory.referencingSemanticRole())) + && !(firstSemanticIdentity.isEqualTo(identityFactory.referencedSemanticRole())) + ) { + Graph.addSetToInMemorySets(this); + } + } + private EdgeEnd() { + super(identityFactory.edgeEnd()); + this.addToVariables(coreSets.minCardinality); + //this.addToVariables(coreSets.maxCardinality); + this.addToVariables(coreSets.isNavigable); + this.addToVariables(coreSets.isContainer); + this.addToValues(coreSets.isAbstract_FALSE); + this.addFlavorQueries(); + this.container = Graph.graph; + } + + @Override + public String toString() { + return this.localVisualRecognitionText(); + } + + @Override + public Set container() { + return container; + } + + public Set connectedSet() { + return connectedSet; + } + @Override + public Set flavor() { + return coreGraphs.edgeEnd; + } +} \ No newline at end of file diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/EventImpl.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/EventImpl.java new file mode 100644 index 0000000..237dea1 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/EventImpl.java @@ -0,0 +1,71 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Limited (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.core; + +import static org.gmodel.G.coreSets; + +import org.gmodel.Identity; +import org.gmodel.Set; + +public final class EventImpl extends OrderedPair { + + private final Set generatingSet; + private final Set generatingElement; + + protected EventImpl(final Identity semanticIdentity, final Set category, final Set generatingElement, final Set generatingSet) { + super(semanticIdentity, category); + this.generatingElement = generatingElement; + this.generatingSet = generatingSet; + } + + @Override + public Set generatingSet(){ + if (this.category().isEqualTo(coreSets.elementAdded) + || this.category().isEqualTo(coreSets.elementRemoved) ) { + return generatingSet; + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + } + @Override + public Set generatingElement(){ + if (this.category().isEqualTo(coreSets.elementAdded) + || this.category().isEqualTo(coreSets.elementRemoved)) { + return generatingElement; + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + } + @Override + public Set setMaintenanceCommand(){ + if (this.category().isEqualTo(coreSets.elementAdded) + || this.category().isEqualTo(coreSets.elementRemoved) ) { + return this.category; + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + } +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_Computation.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_Computation.java new file mode 100644 index 0000000..91fab5e --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_Computation.java @@ -0,0 +1,73 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Limited (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ +package org.gmodel.core; + +import org.gmodel.Set; +import org.gmodel.api.VisitorFunction; + +public class F_Computation { + + public static void initializeWalk(final Set startSet, final VisitorFunction visitorFunction) { + visitorFunction.initialize(startSet); + } + + public static Set walkDownThenRight(final Set location, final VisitorFunction visitorFunction) { + final Set content = location.filterInstances(); + for (final Set element : content) { + walkDownThenRight(element, visitorFunction) ; + } + return visitorFunction.compute(location); + } + + public static Set walkDownThenLeft(final Set location, final VisitorFunction visitorFunction) { + final Set content = location.filterInstances(); + Set element = content.extractLast(); + for (int i = 0; i < content.size() ; i++) { + walkDownThenLeft(element, visitorFunction) ; + element = content.extractPrevious(element); + } + return visitorFunction.compute(location); + } + + public static Set walkRightThenDown(final Set location, final VisitorFunction visitorFunction) { + final Set content = location.filterInstances(); + for (final Set element : content) { + visitorFunction.compute(element); + } + walkRightThenDown(location, visitorFunction) ; + return visitorFunction.compute(location); + } + public static Set walkLeftThenDown(final Set location, final VisitorFunction visitorFunction) { + final Set content = location.filterInstances(); + Set element = content.extractLast(); + visitorFunction.compute(element); + for (int i = 0; i < content.size() ; i++) { + element = content.extractPrevious(element); + visitorFunction.compute(element); + } + walkLeftThenDown(location, visitorFunction) ; + return visitorFunction.compute(location); + } +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_Instantiation.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_Instantiation.java new file mode 100644 index 0000000..184f8fe --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_Instantiation.java @@ -0,0 +1,338 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.core; + +import static org.gmodel.G.coreSets; + +import java.util.UUID; + +import org.gmodel.Identity; +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.api.models.Root; +import org.gmodel.api.models.SemanticDomain; +import org.gmodel.impl.SemanticDomainCode; + +public final class F_Instantiation { + + public static final IdentityFactory identityFactory = new IdentityFactory(); + public static final XtensionIdentityFactory xtensionIdentityFactory = new XtensionIdentityFactory(); + + public static Vertex addConcreteVertex(final Graph container, final Identity semanticIdentity, final Set category) { + // the category (vertex) must be an isAbstract_FALSE vertex in the container.metaArtifact() container + final Graph containerCategory = container.category(); + if ( (containerCategory.isSuperSetOf(category)).isEqualTo(coreSets.is_TRUE) + || (containerCategory.container().localRootSuperSetOf(containerCategory).isEqualTo(category.container().localRootSuperSetOf(category))) // see example ecoreERmodelling + || (containerCategory.getVertices().containsSemanticMatch(category)) + || (containerCategory.containsEdgeTo(category).isEqualTo(coreSets.is_TRUE))) + { + if (category.value(coreSets.isAbstract).isEqualTo( coreSets.isAbstract_FALSE)) { + + if ((category.value(coreSets.maxCardinality).isEqualTo(coreSets.maxCardinality_1) && container.filterPolymorphic(category).size() < 1) + || + (category.value(coreSets.maxCardinality).isEqualTo(coreSets.maxCardinality_2) && container.filterPolymorphic(category).size() < 2) + || + (category.value(coreSets.maxCardinality).isEqualTo(coreSets.maxCardinality_n)) + ) { + final Vertex temp = new Vertex(container, semanticIdentity, category); + temp.addToValues(coreSets.isAbstract_FALSE); + return temp; + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_maxToCardinalityIsOne.identity(), coreSets.semanticErr); + } + } + } else { + if (F_SemanticStateOfInMemoryModel.semanticDomainIsInitialized()) { + // TODO Potentially add further kinds of vertices that appear in SemanticDomain! + if (category.isEqualTo(SemanticDomain.semanticRole)) { + final Vertex temp = new Vertex(container, semanticIdentity, category); + temp.addToValues(coreSets.isAbstract_FALSE); + return temp; + } + } + } + return F_InstantiationImpl.raiseError(coreSets.semanticErr_AddConcreteIsOnlyValidForConcreteVertexFlavor.identity(), coreSets.semanticErr); + } + + public static Vertex addAbstractVertex(final Graph container, final Identity semanticIdentity, final Set category) { + // the category must be an isAbstract_FALSE vertex in the container.category() container + final Graph containerCategory = container.category(); + if ( (containerCategory.isSuperSetOf(category)).isEqualTo(coreSets.is_TRUE) + || (containerCategory.container().localRootSuperSetOf(containerCategory).isEqualTo(category.container().localRootSuperSetOf(category))) // see example ecoreERmodelling + || (containerCategory.getVertices().containsSemanticMatch(category)) + || (containerCategory.containsEdgeTo(category).isEqualTo(coreSets.is_TRUE))) + { + if (category.value(coreSets.isAbstract).isEqualTo( coreSets.isAbstract_FALSE)) { + if ((category.value(coreSets.maxCardinality).isEqualTo(coreSets.maxCardinality_1) && container.filterPolymorphic(category).size() < 1) + || + (category.value(coreSets.maxCardinality).isEqualTo(coreSets.maxCardinality_2) && container.filterPolymorphic(category).size() < 2) + || + (category.value(coreSets.maxCardinality).isEqualTo(coreSets.maxCardinality_n)) + ) { + final Vertex temp = new Vertex(container, semanticIdentity, category); + temp.addToValues(coreSets.isAbstract_TRUE); + return temp; + + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_maxToCardinalityIsOne.identity(), coreSets.semanticErr); + } + } + } + return F_InstantiationImpl.raiseError(coreSets.semanticErr_AddAbstractIsOnlyValidForAbstractVertexFlavor.identity(), coreSets.semanticErr); + } + + public static Set addVisibility(final Set fromSubGraph, final Set toSubGraph) { + if (fromSubGraph.hasVisibilityOf(toSubGraph).isEqualTo(coreSets.is_TRUE) + || ((toSubGraph.category().isEqualTo(SemanticDomain.semanticdomain)) + && + !(fromSubGraph.category().isEqualTo(SemanticDomain.semanticdomain)))) { + return new Visibility(fromSubGraph, toSubGraph, ((Graph)fromSubGraph).categoryOfVisibility(toSubGraph)); + } + else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_TargetIsNotWithinVisibility.identity(), coreSets.semanticErr); + } + } + + /* only used for reconstitution during deserialisation */ + public static Set reconstituteVisibility(final Identity identity, final Set fromSubGraph, final Set toSubGraph) { + if (fromSubGraph.hasVisibilityOf(toSubGraph).isEqualTo(coreSets.is_TRUE) + || ((toSubGraph.category().isEqualTo(SemanticDomain.semanticdomain)) + && + !(fromSubGraph.category().isEqualTo(SemanticDomain.semanticdomain)))) { + return new Visibility(identity, fromSubGraph, toSubGraph, ((Graph)fromSubGraph).categoryOfVisibility(toSubGraph)); + } + else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_TargetIsNotWithinVisibility.identity(), coreSets.semanticErr); + } + } + + public static Set addSuperSetReference(final Set subSet, final Set superSet, final Set category) { + if ( (subSet.hasVisibilityOf(superSet).isEqualTo(coreSets.is_TRUE)) + || (subSet.category().isEqualTo(superSet)) + ) { + return F_InstantiationImpl.createSuperSetReference(subSet, superSet, category); + } + else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_TargetIsNotWithinVisibility.identity(), coreSets.semanticErr); + } + } + + /* only used for reconstitution during deserialisation */ + public static Set reconstituteSuperSetReference(final Identity identity, final Set subSet, final Set superSet, final Set category) { + if ( (subSet.hasVisibilityOf(superSet).isEqualTo(coreSets.is_TRUE)) + || (subSet.category().isEqualTo(superSet)) + ) { + return new SuperSetReference(identity, subSet, superSet, category); + } + else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_TargetIsNotWithinVisibility.identity(), coreSets.semanticErr); + } + } + + public static Vertex instantiateConcreteArtifact(final Identity semanticIdentity, final Set category) { + if (semanticIdentity.isEqualTo(SemanticDomain.semanticdomain.identity())) { + final Vertex temp = new Vertex((Graph) Root.models, semanticIdentity, category); + temp.addToValues(coreSets.isAbstract_FALSE); + + return temp; + } else { + if (category.identity().isEqualTo(SemanticDomain.semanticdomain.identity())) { + return F_Instantiation.instantiateSemanticDomain(semanticIdentity); + } else { + if ((category).value(coreSets.isAbstract).isEqualTo( coreSets.isAbstract_FALSE) ) { + final Vertex temp; + temp = new Vertex((Graph) Root.models, semanticIdentity, category); + temp.addToValues(coreSets.isAbstract_FALSE); + return temp; + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + } + } + } + + public static Vertex instantiateSemanticDomain(final Identity semanticIdentity) { + final Vertex temp; + temp = new Vertex((Graph) Root.semanticdomains, semanticIdentity, ((Graph) SemanticDomain.semanticdomain)); + temp.addToValues(coreSets.isAbstract_FALSE); + + return temp; + } + + public static Vertex instantiateAbstractArtifact(final Identity semanticIdentity, final Set category) { + if ((category).value(coreSets.isAbstract).isEqualTo( coreSets.isAbstract_FALSE) ) { + final Vertex temp; + temp = new Vertex((Graph) Root.models, semanticIdentity, category); + temp.addToValues(coreSets.isAbstract_TRUE); + return temp; + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + } + + public static Set addDisjunctSemanticIdentitySetInKernel(final String name, final String pluralName, final Set semanticDomain, final int index) { + return ((Graph)semanticDomain).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, identityFactory.createIdentityInKernel(name, pluralName, index)); + } + + public static Set addAnonymousDisjunctSemanticIdentitySetInKernel(final Set semanticDomain) { + return ((Graph)semanticDomain).addConcrete(SemanticDomain.disjunctSemanticIdentitySet, identityFactory.createAnonymousIdentity(true)); + } + + public static Set link(final Set category, + final Identity firstSemanticIdentity, + final Set firstOrderedPair, + final Set firstMinCardinality, + final Set firstMaxCardinality, + final Set firstIsNavigable, + final Set firstIsContainer, + final Identity secondSemanticIdentity, + final Set secondOrderedPair, + final Set secondMinCardinality, + final Set secondMaxCardinality, + final Set secondIsNavigable, + final Set secondIsContainer + ) { + return LinkConstraints.link(category, + identityFactory.anonymous(), + firstSemanticIdentity, + firstOrderedPair, + firstMinCardinality, + firstMaxCardinality, + firstIsNavigable, + firstIsContainer, + secondSemanticIdentity, + secondOrderedPair, + secondMinCardinality, + secondMaxCardinality, + secondIsNavigable, + secondIsContainer + ); + } + + public static Set link(final Set category, + final Identity edgeFlavoredIdentity, + final Identity firstSemanticIdentity, + final Set firstOrderedPair, + final Set firstMinCardinality, + final Set firstMaxCardinality, + final Set firstIsNavigable, + final Set firstIsContainer, + final Identity secondSemanticIdentity, + final Set secondOrderedPair, + final Set secondMinCardinality, + final Set secondMaxCardinality, + final Set secondIsNavigable, + final Set secondIsContainer + ) { + return LinkConstraints.link(category, + edgeFlavoredIdentity, + firstSemanticIdentity, + firstOrderedPair, + firstMinCardinality, + firstMaxCardinality, + firstIsNavigable, + firstIsContainer, + secondSemanticIdentity, + secondOrderedPair, + secondMinCardinality, + secondMaxCardinality, + secondIsNavigable, + secondIsContainer + ); + } + + public static Set link(final Set category, final Set fromInstance, final Set toInstance) { + return LinkConstraints.link(category, fromInstance, toInstance); + } + + // only for use in the context of deserialization! + public static Set reconstituteLink(final Identity category, + final Identity edgeFlavoredIdentity, + final Identity firstSemanticIdentity, + final Identity firstOrderedPair, + final Identity firstMinCardinality, + final Identity firstMaxCardinality, + final Identity firstIsNavigable, + final Identity firstIsContainer, + final Identity secondSemanticIdentity, + final Identity secondOrderedPair, + final Identity secondMinCardinality, + final Identity secondMaxCardinality, + final Identity secondIsNavigable, + final Identity secondIsContainer + ) { + return link(F_Query.getSetFromLocalMemory(category), + edgeFlavoredIdentity, + firstSemanticIdentity, + F_Query.getSetFromLocalMemory(firstOrderedPair), + F_Query.getSetFromLocalMemory(firstMinCardinality), + F_Query.getSetFromLocalMemory(firstMaxCardinality), + F_Query.getSetFromLocalMemory(firstIsNavigable), + F_Query.getSetFromLocalMemory(firstIsContainer), + secondSemanticIdentity, + F_Query.getSetFromLocalMemory(secondOrderedPair), + F_Query.getSetFromLocalMemory(secondMinCardinality), + F_Query.getSetFromLocalMemory(secondMaxCardinality), + F_Query.getSetFromLocalMemory(secondIsNavigable), + F_Query.getSetFromLocalMemory(secondIsContainer) + ) ; + } + + public static Set addSemanticRole(final String name, final String pluralName, final Set semanticDomain, final Set referencedSemanticIdentity) { + final Set result = ((Graph)semanticDomain).addConcrete(SemanticDomain.semanticRole, identityFactory.createIdentity(name, pluralName, Instantiation.indexIsNotAvailable)); + SemanticDomainCode.addSemanticRole(result, referencedSemanticIdentity); + return result; + } + + public static Set linkToEquivalenceClass(final Set newSemanticRole, final Set equivalenceClass) { + return SemanticDomainCode.linkSemanticRole(newSemanticRole, equivalenceClass); + } + + // only for use in the context of deserialization! + public static Set reconstituteLink(final Identity category, final Identity edgeFlavoredIdentity, final Identity fromInstance, final Identity toInstance) { + return LinkConstraints.reconstituteLink(F_Query.getSetFromLocalMemory(category), edgeFlavoredIdentity, F_Query.getSetFromLocalMemory(fromInstance), F_Query.getSetFromLocalMemory(toInstance)); + } + + // only for use in the context of deserialization! + public static Identity reconstituteIdentity(final String name, final String pluralName, final UUID identifier, final UUID uniqueRepresentationReference) { + return new IdentityImpl(name, pluralName, identifier, uniqueRepresentationReference); + } + + public static Set raiseError(final Identity semanticIdentity, final Set category) { + return LinkConstraints.raiseError(semanticIdentity, category); + } + + // to reuse an existing SemanticIdentity + public static Identity reuseSemanticIdentity(final Set semanticIdentity) { + return new IdentityImpl(semanticIdentity.identity()); + } + + // only for use within the inner Shell � is not part of the public Gmodel API + public static Identity reuseSemanticIdentity(final Identity semanticIdentity) { + return new IdentityImpl(semanticIdentity); + } +} + diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_InstantiationImpl.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_InstantiationImpl.java new file mode 100644 index 0000000..834ffaf --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_InstantiationImpl.java @@ -0,0 +1,125 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.core; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.core.F_Instantiation.identityFactory; + +import org.gmodel.Identity; +import org.gmodel.Set; + +public final class F_InstantiationImpl { + + public static Set createOrderedPair(final Identity semanticIdentity, final Set category) { + return new OrderedPair(semanticIdentity, category); + } + + public static Set createOrderedPair(final Identity semanticIdentity) { + return new OrderedPair(semanticIdentity, OrderedPair.orderedPair); + } + + public static Set createFunction(final Identity semanticIdentity, final Set category) { + return new OrderedSet(semanticIdentity, category); + } + public static Set createFunction(final Identity semanticIdentity, final Set parameter, final Set category) { + final OrderedSet os = new OrderedSet(semanticIdentity, category); + os.add(parameter); + return os; + } + + protected static Vertex createSemanticIdentityVertex() { + return new Vertex(Graph.graph, identityFactory.createIdentityReification(), Vertex.vertex); + } + + public static Vertex raiseError(final Identity semanticIdentity, final Set category) { + // Errors are attached to the Gmodel Graph container. + // Currently errors are not stored in a persistent log. + // Persisent logging is a matter of reading & serialising the error vertices contained in the Gmodel Graph + return new Vertex((Graph) coreGraphs.graph, semanticIdentity, category); + } + + protected static EdgeEnd createEdgeEnd(final Set container, final Identity firstSemanticIdentity, final Set firstValue) { + return new EdgeEnd(container, firstSemanticIdentity, firstValue); + } + protected static Edge createEdge(final Identity firstEdgeEndIdentity, + final Set firstSet, + final Set firstMinCardinality, + final Set firstMaxCardinality, + final Set firstIsNavigable, + final Set firstIsContainer, + final Identity secondEdgeEndIdentity, + final Set secondSet, + final Set secondMinCardinality, + final Set secondMaxCardinality, + final Set secondIsNavigable, + final Set secondIsContainer, + final Set category, + final Identity edgeFlavoredIdentity) { + if (edgeFlavoredIdentity.isEqualTo(identityFactory.anonymous())) { + return new Edge(firstEdgeEndIdentity, + firstSet, + firstMinCardinality, + firstMaxCardinality, + firstIsNavigable, + firstIsContainer, + secondEdgeEndIdentity, + secondSet, + secondMinCardinality, + secondMaxCardinality, + secondIsNavigable, + secondIsContainer, + category); + } else { + return new Edge(firstEdgeEndIdentity, + firstSet, + firstMinCardinality, + firstMaxCardinality, + firstIsNavigable, + firstIsContainer, + secondEdgeEndIdentity, + secondSet, + secondMinCardinality, + secondMaxCardinality, + secondIsNavigable, + secondIsContainer, + category, + edgeFlavoredIdentity); + } + } + protected static Edge createEdge(final Identity firstSemanticIdentity,final Set firstValue, + final Identity seconSemanticIdentity, final Set secondValue) { + return new Edge(firstSemanticIdentity, firstValue, seconSemanticIdentity, secondValue); + } + protected static SuperSetReference createSuperSetReference(final Set specialization, final Set generalization, final Set category) { + return new SuperSetReference(specialization, generalization, category); + } + protected static Link createInstanceListIterator() { + return new Link(identityFactory.createAnonymousIdentity()); + } + protected static Link createInstanceIterator() { + return new Link(identityFactory.createAnonymousIdentity()); + } +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_IqLogic.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_IqLogic.java new file mode 100644 index 0000000..a3dc48d --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_IqLogic.java @@ -0,0 +1,250 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Limited (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.core; + +import static org.gmodel.api.InformationQualityLogic.is_TRUE; + +import org.gmodel.Set; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models.SemanticDomain; +import org.gmodel.impl.SemanticDomainCode; + +public final class F_IqLogic { + + public static Set isEqualTo(final Set a, final Set b) { + if (a.isEqualTo(b)) { + return GmodelSemanticDomains.is_TRUE; + } else { + return GmodelSemanticDomains.is_FALSE; + } + } + + private static Set isEqualToRepresentation(final Set a, final Set b) { + if (a.isEqualToRepresentation(b)) { + return GmodelSemanticDomains.is_TRUE; + } else { + return GmodelSemanticDomains.is_FALSE; + } + } + + public static Set isEqualTo(final Set a, final Set b, final Set equivalenceClass) { + if (equivalenceClass.isEqualToRepresentation(GmodelSemanticDomains.semanticIdentity)) { + return isEqualTo(a,b); + } else { + if (equivalenceClass.isEqualToRepresentation(GmodelSemanticDomains.identifier)) { + return isEqualToRepresentation(a,b); + } + if (SemanticDomain.semanticIdentity.isSuperSetOf(equivalenceClass.category()).is_TRUE()) { + Set aSemantics = a; + if (SemanticDomain.semanticIdentity.isSuperSetOf(a.category()).is_FALSE()) { + aSemantics = a.semanticIdentity(); + } + Set bSemantics = b; + if (SemanticDomain.semanticIdentity.isSuperSetOf(b.category()).is_FALSE()) { + bSemantics = b.semanticIdentity(); + } + return isEqualTo(SemanticDomainCode.transformSemanticRoleToEquivalenceClass(aSemantics),(SemanticDomainCode.transformSemanticRoleToEquivalenceClass(bSemantics))); + } + } + return GmodelSemanticDomains.is_NOTAPPLICABLE; + } + + private static int order(final Set set) { + if (set.isEqualTo(GmodelSemanticDomains.is_NOTAPPLICABLE)) { + return 1; + } + if (set.isEqualTo(GmodelSemanticDomains.is_FALSE)) { + return 2; + } + if (set.isEqualTo(GmodelSemanticDomains.is_UNKNOWN)) { + return 3; + } + if (set.isEqualTo(GmodelSemanticDomains.is_TRUE)) { + return 4; + } + return 1; + } + + public static Set isGreaterThan(final Set a, final Set b) { + if (order(a) > order(b)) { + return GmodelSemanticDomains.is_TRUE; + } else { + return GmodelSemanticDomains.is_FALSE; + } + } + + public static Set isSmallerThan(final Set a, final Set b) { + return isGreaterThan(b, a); + } + + public static Set maximum(final Set a, final Set b) { + if (isGreaterThan(a,b).isEqualTo(GmodelSemanticDomains.is_TRUE)) { + return a; + } else { + if (order(b) > 1) { + return b; + } else { + return GmodelSemanticDomains.is_NOTAPPLICABLE; + } + } + } + + public static Set minimum(final Set a, final Set b) { + if (isGreaterThan(a,b).isEqualTo(GmodelSemanticDomains.is_FALSE)) { + return a; + } else { + if (order(b) > 1) { + return b; + } else { + return GmodelSemanticDomains.is_NOTAPPLICABLE; + } + } + } + + public static Set not(final Set set) { + if (set.flavor().isEqualTo(GmodelSemanticDomains.orderedSet)) { + final OrderedSet result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + for (final Set element: set) { + result.add(not(element)); + } + return result; + } else { + if (set.isEqualTo(GmodelSemanticDomains.is_UNKNOWN)) {return GmodelSemanticDomains.is_NOTAPPLICABLE;} + if (set.isEqualTo(GmodelSemanticDomains.is_NOTAPPLICABLE)) {return GmodelSemanticDomains.is_UNKNOWN;} + if (set.isEqualTo(GmodelSemanticDomains.is_FALSE)) {return GmodelSemanticDomains.is_TRUE;} + if (set.isEqualTo(GmodelSemanticDomains.is_TRUE)) {return GmodelSemanticDomains.is_FALSE;} + return GmodelSemanticDomains.is_NOTAPPLICABLE; + } + + } + + public static Set and(final Set a, final Set b) { + if (a.flavor().isEqualTo(GmodelSemanticDomains.orderedSet)) { + and(and(a),b); + } + if (b.flavor().isEqualTo(GmodelSemanticDomains.orderedSet)) { + and(a,and(b)); + } + return minimum(a,b); + } + public static Set or(final Set a, final Set b) { + if (a.flavor().isEqualTo(GmodelSemanticDomains.orderedSet)) { + or(or(a),b); + } + if (b.flavor().isEqualTo(GmodelSemanticDomains.orderedSet)) { + or(a,or(b)); + } + return maximum(a,b); + } + + public static Set and(final Set orderedSet) { + if (orderedSet.flavor().isEqualTo(GmodelSemanticDomains.orderedSet) && orderedSet.size() > 0) { + final OrderedSet b = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + final Set a = orderedSet.extractFirst(); + for (final Set element : orderedSet) { + if (!element.isEqualToRepresentation(a)) { + b.add(element); + } + } + if (b.size() > 1) { + return and(a, and(b)); + } else + if (b.size() == 1) { + return and(a, b.extractFirst()); + } else { + return a; + } + } else { + if (!orderedSet.flavor().isEqualTo(GmodelSemanticDomains.orderedSet)) { + return and(orderedSet, orderedSet); + } else { + return GmodelSemanticDomains.is_NOTAPPLICABLE; + } + } + } + + public static Set or(final Set orderedSet) { + if (orderedSet.flavor().isEqualTo(GmodelSemanticDomains.orderedSet) && orderedSet.size() > 0) { + final OrderedSet b = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + final Set a = orderedSet.extractFirst(); + for (final Set element : orderedSet) { + if (!element.isEqualToRepresentation(a)) { + b.add(element); + } + } + if (b.size() > 1) { + return or(a, or(b)); + } else + if (b.size() == 1) { + return or(a, b.extractFirst()); + } else { + return a; + } + } else { + if (!orderedSet.flavor().isEqualTo(GmodelSemanticDomains.orderedSet)) { + return or(orderedSet, orderedSet); + } else { + return GmodelSemanticDomains.is_NOTAPPLICABLE; + } + } + } + public static Set minimum(final Set orderedSet) { + return and(orderedSet); + } + public static Set maximum(final Set orderedSet) { + return or(orderedSet); + } + + public static Set isQuality(final Set set) { + if (set.isEqualTo(GmodelSemanticDomains.is_NOTAPPLICABLE) + || set.isEqualTo(GmodelSemanticDomains.is_UNKNOWN)) { + return GmodelSemanticDomains.is_TRUE; + } else { + return GmodelSemanticDomains.is_FALSE; + } + } + public static Set isInformation(final Set set) { + return(not(isQuality(set))); + } + public static Set includesValue(final Set set, final Set value, final Set equivalenceClass) { + if (set.isEqualTo(value)) { + return GmodelSemanticDomains.is_TRUE; + } else { + if (set.flavor().isEqualTo(GmodelSemanticDomains.orderedSet)) { + Set result = GmodelSemanticDomains.is_FALSE; + for (final Set element: set) { + if (is_TRUE(includesValue(element, value, equivalenceClass))) { + result = GmodelSemanticDomains.is_TRUE; + } + } + return result; + } else { + return includesValue(set.filterInstances(), value, equivalenceClass); + } + } + } + +} \ No newline at end of file diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_Query.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_Query.java new file mode 100644 index 0000000..2f01969 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_Query.java @@ -0,0 +1,187 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Limited (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.core; + +import static org.gmodel.G.coreSets; +import static org.gmodel.api.models.SemanticDomain.disjunctSemanticIdentitySet; +import static org.gmodel.api.models.SemanticDomain.elements_to_disjunctSemanticIdentitySet; +import static org.gmodel.api.models.SemanticDomain.semanticIdentitySet; +import static org.gmodel.api.models.SemanticDomain.variantDisjunctSemanticIdentitySet; +import static org.gmodel.core.F_Instantiation.identityFactory; + +import org.gmodel.Identity; +import org.gmodel.Set; +import org.gmodel.api.Query; +import org.gmodel.api.models.Root; +import org.gmodel.api.models.SemanticDomain; + +public final class F_Query { + + public static Set findSet(final String uniqueRepresentationReference) { + return Query.inMemorySets().extractUniqueMatch(uniqueRepresentationReference); + } + + public static Set findDependentLinks(final Set referencedSet) { + final OrderedSet result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + for (final Set instance : inMemorySets()) { + for (final Set link : referencedSet.unionOfconnectingLinks(instance)) { + result.add(link); + } + } + return result; + } + + public static Set findDependentInstances(final Set category) { + final OrderedSet result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + for (final Set instance : inMemorySets()) { + if (instance.category().isEqualToRepresentation(category)) { + result.add(instance); + } + } + return result; + } + + public static Set findDependentSets(final Set set) { + // relevant for DECOMMISSION_SEMANTICS + final OrderedSet result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + // test for child instances in the containment tree + for (final Set instance : set.filterInstances()) { + result.add(instance); + } + for (final Set instance : inMemorySets()) { + // test for instances that are linked with the set + for (final Set link : set.unionOfconnectingLinks(instance)) { + result.add(link); + } + // test for instances that depend on a category + if (instance.category().isEqualToRepresentation(set)) { + result.add(instance); + } + // test for instances that depend on a semantic identity + if (SemanticDomain.semanticIdentity.isSuperSetOf(set.category()).isEqualTo(coreSets.is_TRUE) + && (instance.isEqualTo(set)) + && (!instance.isEqualToRepresentation(set))) { + result.add(instance); + } + } + return result; + } + + public static Set inMemorySets() { + return Graph.inMemorySets; + } + + public static Set inMemorySemanticIdentities() { + return Graph.inMemorySemanticIdentities; + } + + public static Set changedSets() { + return Graph.changedSets; + } + + public static Vertex vertexFlavor() { + return Vertex.vertex; + } + + public static OrderedSet orderedSetFlavor() { + return OrderedSet.orderedSet; + } + + public static Link linkFlavor() { + return Link.link; + } + + public static SuperSetReference superSetReferenceFlavor() { + return SuperSetReference.superSetReference; + } + + public static Visibility visibilityFlavor() { + return Visibility.visibility; + } + + public static Set graph() { + return Graph.graph; + } + + public static EdgeEnd edgeEndFlavor() { + return EdgeEnd.edgeEnd; + } + + public static Edge edgeFlavor() { + return Edge.edge; + } + + public static Set getSetFromLocalMemory(final Identity identity) { + final Set r = F_Query.inMemorySemanticIdentities().extractUniqueMatch(identity); + if (r.is_NOTAPPLICABLE()) { + return F_Instantiation.raiseError(identityFactory.semanticErr_ThisSetIsNotAvailableInMemory(), coreSets.semanticErr); + } else { + return r; + } + } + + public static Set runtimeErrors() { + return Query.graph.filter(coreSets.semanticErr).union(Query.graph.filter(coreSets.kernelDefect)); + } + + public static Set elementsOfSemanticIdentitySet(final Set semanticDomain, final Set set) { + if ((semanticDomain.category().isEqualTo(SemanticDomain.semanticdomain) && (set.category().isEqualTo(disjunctSemanticIdentitySet) + || set.category().isEqualTo(variantDisjunctSemanticIdentitySet) + || set.category().isEqualTo(semanticIdentitySet) + ))) { + final Set elementLinks = semanticDomain.filter(SemanticDomain.elements_to_semanticIdentitySet); + final OrderedSet result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + + for (final Set element : elementLinks) { + if (element.to().isEqualTo(set)) { + result.add(element.from()); + } + } + final Set elementLinks2 = semanticDomain.filter(elements_to_disjunctSemanticIdentitySet); + for (final Set element : elementLinks2) { + if (element.to().isEqualTo(set)) { + result.add(element.from()); + } + } + return result; + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + } + + public static Set testDeserialisationPrerequisites(final Set set) { + if (set.container().isEqualTo(Root.root)) { + return set.container().visibleArtifactsForSubGraph(set); + } else { + final OrderedSet prerequisites = ((OrderedSet) testDeserialisationPrerequisites(set.container())); + for (final Set visibleSet : set.container().visibleArtifactsForSubGraph(set)) { + prerequisites.add(visibleSet); + } + return prerequisites; + } + } +} + diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_SemanticStateOfInMemoryModel.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_SemanticStateOfInMemoryModel.java new file mode 100644 index 0000000..0a30c11 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_SemanticStateOfInMemoryModel.java @@ -0,0 +1,152 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Limited (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.core; + +import static org.gmodel.core.F_Instantiation.identityFactory; + +import org.gmodel.api.models.ArtifactDerivation; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models.HTMLRepresentation; +import org.gmodel.api.models.Root; +import org.gmodel.api.models.SemanticDomain; + +/** + * {@link F_SemanticStateOfInMemoryModel} provides access to the Sets and Properties of the Gmodel kernel + * that constitute the basic Gmodel vocabulary. + * + * Additionally F_SemanticStateOfInMemoryModel enables the creation of links between Sets, + * and automatically attaches the link to the appropriate container Set. + * + * Note: F_SemanticStateOfInMemoryModel contains no implementation, it simply delegates to LinkConstraints, IdentityFactory, CoreSets, + * and KernelOrderedSets. + * + * Extensions: Gmodel is designed to be extensible. All extensions that only involve a structural extension + * of the meta model can be achieved by modelling the extension in Gmodel. Beyond such basic extensions, + * Gmodel can be extended/modified by plugging in a different IdentityFactory and/or by writing a custom Shell. + * Such extensions are created by creating a subclass of F_SemanticStateOfInMemoryModel that + * + * (a) adds a method that references the appropriate SemanticIndentityFactory: + * + * public static final CustomSemanticIdentityFactory customSemanticIdentityFactory = new CustomSemanticIdentityFactory(); + * + * and/or + * + * (b) reference the appropriate custom Shell by overriding the raiseError and link methods in F_SemanticStateOfInMemoryModel and by delegating to LinkConstraints + * to invoke the raiseError and link methods in the kernel. + * + * All extensions must use F_SemanticStateOfInMemoryModel's CoreSets and KernelOrderedSets. + * + */ +public class F_SemanticStateOfInMemoryModel { + + /** + * QUERIES + */ + //public static final CoreSets coreSets = new CoreSets(F_Instantiation.identityFactory); + //public static final CoreGraphs coreGraphs = new CoreGraphs(); + public static final int indexIsNotAvailable = -1; + + private static boolean semanticDomainIsInitialized = false; + private static boolean gmodelSemanticDomainIsInitialized = false; + private static boolean gmodelEditorIsLive = false; + private static boolean isDebugModeOn = false; + + public static boolean semanticDomainIsInitialized() { + return semanticDomainIsInitialized; + } + + public static boolean gmodelSemanticDomainIsInitialized() { + return gmodelSemanticDomainIsInitialized; + } + + public static boolean gmodelEditorIsLive() { + return gmodelEditorIsLive; + } + + public static boolean isDebugModeOn() { + return isDebugModeOn; + } + + /** + * COMMANDS + */ + + public static void completeSemanticDomainInitialization() { + Root.instantiateFeature(); + SemanticDomain.instantiateFeature(); + final int kernelComplexity = identityFactory.kernelComplexity(); + final int inMemoryComplexity = identityFactory.inMemoryComplexity(); + semanticDomainIsInitialized = true; + } + + public static void completeGmodelSemanticDomainInitialization() { + if (!gmodelEditorIsLive()) { + if (!semanticDomainIsInitialized) { + completeSemanticDomainInitialization(); + } + GmodelSemanticDomains.instantiateFeature(); + ArtifactDerivation.instantiateFeature(); + HTMLRepresentation.instantiateFeature(); + } + final int kernelComplexity = identityFactory.kernelComplexity(); + final int inMemoryComplexity = identityFactory.inMemoryComplexity(); + gmodelSemanticDomainIsInitialized = true; + semanticDomainIsInitialized = true; + } + + public static void goLiveWithGmodelEditor() { + gmodelEditorIsLive = true; + } + + public static void switchOnDebugMode() { + isDebugModeOn = true; + } + + public static void switchOffDebugMode() { + isDebugModeOn = false; + } + //public static Set inMemorySets() { + // return F_Query.inMemorySets(); + //} + + //public static Set isLoadedInLocalMemory(final Set set) { + // if (Query.inMemorySets().containsRepresentation(set)) { + // return F_SemanticStateOfInMemoryModel.coreSets.is_TRUE; + // } else {return F_SemanticStateOfInMemoryModel.coreSets.is_FALSE; + // } + //} + //public static Set changedSets() { + // return F_Query.changedSets(); + //} + //public static Set commitChangedSets() { + // return F_Transaction.commitChangedSets(); + //} + //public static Set rollbackChangedSets() { + // return F_Transaction.rollbackChangedSets(); + //} + + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_Semantics.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_Semantics.java new file mode 100644 index 0000000..1a3fccc --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_Semantics.java @@ -0,0 +1,75 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Limited (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.core; + +import org.gmodel.Set; +import org.gmodel.api.models.GmodelSemanticDomains; + +public final class F_Semantics { + + private static Set transformToUniqueSemanticIdentity(final Set a) { + if (a.flavor().isEqualTo(GmodelSemanticDomains.orderedSet)) { + final Set aS = a.transformToOrderedSetOfSemanticIdentities(); + if (aS.size() == 1) { + return aS.extractFirst(); + } else { + return GmodelSemanticDomains.is_NOTAPPLICABLE; + } + } + else { + if (a.isASemanticIdentity()) { + return a; + } else { + return a.semanticIdentity(); + } + } + } + + public static Set $D(final Set a, final Set b) { + final Set a1 = transformToUniqueSemanticIdentity(a); + final Set b1 = transformToUniqueSemanticIdentity(b); + if (a1.isEqualTo(b1)) { + return a1; + } else { + return F_IqLogic.and(a1,b1); + } + } + + public static Set $C(final Set a, final Set b) { + if (a.isASemanticIdentity()) { + if (a.isEqualTo(b)) { + + } + } + if (a.isASemanticIdentity() && b.isASemanticIdentity()) { + + } + return a; + } + + +} + diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_SetAlgebra.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_SetAlgebra.java new file mode 100644 index 0000000..7862e6a --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_SetAlgebra.java @@ -0,0 +1,132 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Limited (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.core; + +import org.gmodel.Set; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models.SemanticDomain; +import org.gmodel.impl.SemanticDomainCode; + +public final class F_SetAlgebra { + + public static Set union(final Set set1, final Set set2) { + final Set result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + final Set a = transformToOrderedSet(set1); + final Set b = transformToOrderedSet(set2); + for (final Set element : a) { + ((OrderedSet) result).add(element); + } + for (final Set element : b) { + if (!result.containsRepresentation(element)) { + ((OrderedSet) result).add(element); + } + } + return result; + } + + public static Set unionOfconnectingLinks(final Set set1, final Set set2) { + return set1.unionOfconnectingLinks(set2); + } + + public static Set intersection(final Set set1, final Set set2) { + final Set result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + final Set a = transformToOrderedSet(set1); + final Set b = transformToOrderedSet(set2); + for (final Set element : a) { + if (b.containsRepresentation(element)) { + ((OrderedSet) result).add(element); + } + } + return result; + } + + public static Set complement(final Set set1, final Set set2) { + final Set a = transformToOrderedSet(set1); + final Set b = transformToOrderedSet(set2); + final Set intersection = intersection(a, b); + final Set result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + for (final Set element : a) { + if (!intersection.containsRepresentation(element)) { + ((OrderedSet) result).add(element); + } + } + return result; + } + + public static Set isElementOf(final Set element, final Set set) { + if (SemanticDomain.semanticIdentity.isSuperSetOf(element.category()).isEqualTo(GmodelSemanticDomains.is_TRUE) + && (SemanticDomain.semanticIdentity.isSuperSetOf(set.category()).isEqualTo(GmodelSemanticDomains.is_TRUE))) { + return SemanticDomainCode.isElementOf(element.container(), element, set); + } else { + if (transformToOrderedSet(set).containsRepresentation(element)) { + return GmodelSemanticDomains.is_TRUE; + } else { + return GmodelSemanticDomains.is_FALSE; + } + } + } + + public static Set transformToOrderedSetOfSemanticIdentities(final Set set) { + final Set result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + for (final Set element : set) { + if (!result.containsSemanticMatch(element)) { + ((OrderedSet) result).add(element.semanticIdentity()); + } + } + return result; + } + // TODO unify with implementation of SemanticDomainCode.isElementOf(final Set semanticDomain, final Set element, final Set set) + private static Set transformSemanticIdentitySetToOrderedSet(final Set set) { + final Set result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + final Set elementLinks1 = set.container().filter(SemanticDomain.elements_to_semanticIdentitySet); + for (final Set link : elementLinks1) { + if (link.to().isEqualTo(set)) { + ((OrderedSet) result).add(link.from()); + } + } + final Set elementLinks2 = set.container().filter(SemanticDomain.elements_to_disjunctSemanticIdentitySet); + for (final Set link : elementLinks2) { + if (link.to().isEqualTo(set)) { + ((OrderedSet) result).add(link.from()); + } + } + return result; + } + + private static Set transformToOrderedSet(final Set set) { + if(set.flavor().isEqualTo(GmodelSemanticDomains.orderedSet)) { + return set; + } else { + if (SemanticDomain.semanticIdentity.isSuperSetOf(set.category()).isEqualTo(GmodelSemanticDomains.is_TRUE)) { + return transformSemanticIdentitySetToOrderedSet(set); + } else { + return set.filterInstances(); + } + } + } + +} + diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_Transaction.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_Transaction.java new file mode 100644 index 0000000..45ac613 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/F_Transaction.java @@ -0,0 +1,101 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Limited (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.core; + +import static org.gmodel.G.coreSets; + +import java.util.List; + +import org.gmodel.Set; +import org.gmodel.api.models.SemanticDomain; + +public final class F_Transaction { + + public static Set commitChangedSets() { + for (final Set element : Graph.changedSets) { + if (element.isDecommissioned().isEqualTo(coreSets.is_TRUE)) { + ((Graph) element.container()).delete(element); + } + if (element.category().isEqualTo(SemanticDomain.semanticIdentity) + || element.category().isEqualTo(SemanticDomain.semanticIdentitySet) + || element.category().isEqualTo(SemanticDomain.disjunctSemanticIdentitySet) + // || iSet.category().isEqualTo(SemanticDomain.abstractSemanticRole) + || element.category().isEqualTo(SemanticDomain.semanticRole) + || element.category().isEqualTo(SemanticDomain.variantDisjunctSemanticIdentitySet)) { + if (element.hasNewName().isEqualTo(coreSets.is_TRUE)) { + ((IdentityImpl)element.identity()).commitNewName(); + } + if (element.hasNewPluralName().isEqualTo(coreSets.is_TRUE)) { + ((IdentityImpl) element.identity()).commitNewPluralName(); + } + } + ((Graph) element).clearModificationState(); + } + + final List c = Graph.changedSets.asList(); + for (final Set element : c) { + Graph.changedSets.remove(element); + } + + final int max = Graph.changedSets.size(); + return Graph.changedSets; + } + + public static Set rollbackChangedSets() { + for (final Set element : Graph.changedSets) { + //final Set iSet = Graph.changedSets.getFirstElement(); + if (element.isNewInstance().isEqualTo(coreSets.is_TRUE)) { + ((Graph) element.container()).delete(element); + } + if (element.category().isEqualTo(SemanticDomain.semanticIdentity) + || element.category().isEqualTo(SemanticDomain.semanticIdentitySet) + || element.category().isEqualTo(SemanticDomain.disjunctSemanticIdentitySet) + // || iSet.category().isEqualTo(SemanticDomain.abstractSemanticRole) + || element.category().isEqualTo(SemanticDomain.semanticRole) + || element.category().isEqualTo(SemanticDomain.variantDisjunctSemanticIdentitySet)) { + if (element.hasNewName().isEqualTo(coreSets.is_TRUE)) { + ((IdentityImpl) element.identity()).rollbackNewName(); + } + if (element.hasNewPluralName().isEqualTo(coreSets.is_TRUE)) { + ((IdentityImpl) element.identity()).rollbackNewPluralName(); + } + } + ((Graph) element).clearModificationState(); + } + + final List c = Graph.changedSets.asList(); + for (final Set element : c) { + Graph.changedSets.remove(element); + } + + final int max = Graph.changedSets.size(); + return Graph.changedSets; + } + + + +} + diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/Graph.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/Graph.java new file mode 100644 index 0000000..3b19a36 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/Graph.java @@ -0,0 +1,1400 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.core; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.G.coreSets; +import static org.gmodel.core.F_Instantiation.identityFactory; + +import java.util.List; +import java.util.ListIterator; + +import org.gmodel.Identity; +import org.gmodel.Set; +import org.gmodel.api.Query; +import org.gmodel.api.VisitorFunction; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models.SemanticDomain; +import org.gmodel.api.models2.Visualization; + +public class Graph extends OrderedPair implements Set { + + /* Reify the Gmodel Graph concept */ + protected static final Graph graph = new Graph(); + protected static final OrderedSet inMemorySets = new OrderedSet(); + protected static final OrderedSet inMemorySemanticIdentities = new OrderedSet(); + protected static final OrderedSet changedSets = new OrderedSet(); + + private boolean orderedSetsInitialized; + private boolean executableFunctionsInitialized; + + private OrderedSet edgeFlavored; + private OrderedSet allContainedLinkInstances; + private OrderedSet superSetReferenceFlavored; + private OrderedSet vertexFlavored; + private OrderedSet visibilityFlavored; + private OrderedSet allContainedInstances; + + private OrderedSet variables; + private OrderedSet values; + private OrderedSet commands; + private OrderedSet queries; + private OrderedSet executableCommands; + private OrderedSet executableQueries; + + + + /* modification state */ + private boolean containsDecommissionedSets; + private boolean containsNewSets; + private boolean hasDecommissionedPayload; + private boolean hasNewPayload; + private boolean isDecommissioned; + private boolean isNewInstance; + private boolean hasNewName; + private boolean hasNewPluralName; + + + protected Graph(final Identity semanticIdentity, final Set categoryOfElement) { + super(semanticIdentity, categoryOfElement); + } + protected Graph(final Identity semanticIdentity) { + super(semanticIdentity); + } + private Graph() { + super(identityFactory.graph()); + this.addToValues(coreSets.orderedPair); + this.addToVariables(coreSets.maxCardinality); + this.addToVariables(coreSets.isAbstract); + this.addToValues(coreSets.isAbstract_TRUE); + this.addFlavorQueries(); + this.addFlavorCommands(); + this.containsDecommissionedSets = false; + this.containsNewSets = false; + this.isDecommissioned = false; + if (F_SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + this.isNewInstance = true; + } else { + this.isNewInstance = false; + } + this.hasNewName = false; + this.hasNewPluralName =false; + this.hasNewPayload = false; + this.hasDecommissionedPayload = false; + } + public static void addSetToInMemorySets(final Set e) { + if (!F_SemanticStateOfInMemoryModel.isDebugModeOn()) { + Graph.inMemorySets.add(e); + if (F_SemanticStateOfInMemoryModel.semanticDomainIsInitialized()) { + if (SemanticDomain.semanticdomain.isEqualTo(e.container().category())) { + Graph.inMemorySemanticIdentities.add(e); + } + } + } else { + if (Graph.inMemorySets.containsRepresentation(e)) { + F_Instantiation.raiseError(identityFactory.semanticErr_ASetWithThisIdentityAndRepresentationIsAlreadyLoaded(), coreSets.semanticErr); + } + else { + Graph.inMemorySets.add(e); + if (F_SemanticStateOfInMemoryModel.semanticDomainIsInitialized()) { + if (SemanticDomain.semanticdomain.isEqualTo(e.container().category())) { + Graph.inMemorySemanticIdentities.add(e); + } + } + } + } + + } + public static void addSetToChangedSets(final Set e) { + Graph.changedSets.add(e); + } + @Override + public String toString() { + return this.localVisualRecognitionText(); + } + + @Override + public Graph category() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) { + /* + * orderedPairCategory() duplicates category() but is essential to break recursive loop in Graph + * This is the only class/method in Gmodel where orderedPairCategory() must be used + * All other code must only use category() + */ + if (this.orderedPairCategory().isEqualTo(coreSets.semanticErr)) {return ((Graph) GmodelSemanticDomains.semanticErr);} + if (this.orderedPairCategory().isEqualTo(coreSets.kernelDefect)) {return ((Graph) GmodelSemanticDomains.kernelDefect);} + } + return ((Graph) category); + } + + @Override + public Set variables() { + this.ensureInitializedOrderedSets(); + return variables; + } + @Override + public Set addToVariables(final Set set) { + this.ensureInitializedOrderedSets(); + if (this.identity().isPartOfKernel()) { + if (!this.variables.containsSemanticMatch(set)) { + this.variables.add(set); + if (F_SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + this.containsNewSets = true; + Graph.addSetToChangedSets(this); + } + } + return coreSets.successful; + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + } + + @Override + public Set values() { + this.ensureInitializedOrderedSets(); + return values; + } + + private void setValue(final Set value) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) { + if (!this.values.containsSemanticMatch(value)) { + this.values.add(value); + if (F_SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + this.containsNewSets = true; + Graph.addSetToChangedSets(this); + } + } + } else { + this.values.add(value); + if (F_SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + this.containsNewSets = true; + Graph.addSetToChangedSets(this); + } + } + } + + @Override + public Set addToValues(final Set anElement) { + // a value can only be set once, and can never be modified! + this.ensureInitializedOrderedSets(); + if ((this.identity().isPartOfKernel() && !this.values.containsSemanticMatch(anElement)) + || ( + (this.category().flavor().variables().containsSemanticMatch(((OrderedPair)anElement).category()) + || this.category().variables().containsSemanticMatch(((OrderedPair)anElement).category()) + || anElement.category().isEqualTo(coreSets.isAbstract) + || anElement.category().isEqualTo(coreSets.maxCardinality) + ) + && (!this.values.containsSemanticMatch(anElement)) + ) + ) { + this.setValue(anElement); + return coreSets.successful; + } else { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) { + final Set theSemanticIdentity = anElement.semanticIdentity(); + for (final Set variable : this.category().flavor().variables()) { + if (theSemanticIdentity.isElementOf(variable.semanticIdentity()).isEqualTo(coreSets.is_TRUE)) { + this.setValue(theSemanticIdentity); + return GmodelSemanticDomains.successful; + } + } + for (final Set variable : this.category().variables()) { + if (theSemanticIdentity.isElementOf(GmodelSemanticDomains.isAbstract).isEqualTo(coreSets.is_TRUE) + || theSemanticIdentity.isElementOf(GmodelSemanticDomains.maxCardinality).isEqualTo(coreSets.is_TRUE) + || theSemanticIdentity.isElementOf(variable.semanticIdentity()).isEqualTo(coreSets.is_TRUE)) { + this.setValue(theSemanticIdentity); + return GmodelSemanticDomains.successful; + } + } + return F_InstantiationImpl.raiseError(coreSets.semanticErr_ValueIsNotAnInstanceOfVariableOfCategoryOfInstance.identity(), coreSets.semanticErr); + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_ValueIsNotAnInstanceOfVariableOfCategoryOfInstance.identity(), coreSets.semanticErr); + } + } + } + + @Override + public Set value(final Set variable) { + this.ensureInitializedOrderedSets(); + for (final Set value : values) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) { + if (value.semanticIdentity().isElementOf(variable.semanticIdentity()).isEqualTo(coreSets.is_TRUE)) { + return value; + } + } else { + if (value.category().isEqualTo(variable)) { + return value; + } + } + } + // logic for max cardinality constraint for physical containment of graphs + if (variable.isEqualTo(coreSets.maxCardinality)) { + return coreSets.maxCardinality_n; + } else { + return coreSets.semanticErr_ValueIsNotAssigned; + } + } + + @Override + public Set commands() { + this.ensureInitializedOrderedSets(); + return commands; + } + @Override + public Set executableCommands() { + this.ensureInitializedOrderedSets(); + this.ensureInitializedExecutableFunctions(); + return executableCommands; + } + + + @Override + public Set addToCommands(final Set anElement) { + this.ensureInitializedOrderedSets(); + if (!this.commands.containsSemanticMatch(anElement)) { + this.commands.add(anElement); + if (F_SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + this.containsNewSets = true; + Graph.addSetToChangedSets(this); + } + } + return coreSets.successful; + } + + + @Override + public Set removeFromCommands(final Set anElement) { + this.ensureInitializedOrderedSets(); + if (!(this.container().isEqualTo(Graph.graph))) { + this.commands.remove(anElement); + if (F_SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + this.containsNewSets = true; + Graph.addSetToChangedSets(this); + } + return coreSets.successful; + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_GraphGraphCantBeModified.identity(), coreSets.semanticErr); + } + } + @Override + public Set queries() { + this.ensureInitializedOrderedSets(); + return queries; + } + + private void ensureInitializedExecutableFunctions() { + if (!executableFunctionsInitialized) { + if (!isEqualTo(Graph.graph)) { + // ensure that all flavor-level queries are included in the result + addFlavorQueries(); + addFlavorCommands(); + } + final Set superClasses = this.category().container().filterPolymorphic(this.category().container().localRootSuperSetOf(this.category())); + for (final Set superClass : superClasses) { + executableQueries = ((OrderedSet) executableQueries.union(superClass.queries())); + executableCommands = ((OrderedSet) executableCommands.union(superClass.commands())); + } + executableFunctionsInitialized = true; + } + } + @Override + public Set executableQueries() { + this.ensureInitializedOrderedSets(); + this.ensureInitializedExecutableFunctions(); + return executableQueries; + } + + @Override + public Set addToQueries(final Set anElement) { + this.ensureInitializedOrderedSets(); + if (!this.queries.containsSemanticMatch(anElement)) { + this.queries.add(anElement); + if (F_SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + this.containsNewSets = true; + Graph.addSetToChangedSets(this); + } + } + return coreSets.successful; + } + + protected Set addToExecutableQueries(final Set anElement) { + this.ensureInitializedOrderedSets(); + if (!this.executableQueries.containsSemanticMatch(anElement)) { + this.executableQueries.add(anElement); + } + return coreSets.successful; + } + protected Set addToExecutableCommands(final Set anElement) { + this.ensureInitializedOrderedSets(); + if (!this.executableCommands.containsSemanticMatch(anElement)) { + this.executableCommands.add(anElement); + } + return coreSets.successful; + } + + @Override + public Set removeFromQueries(final Set anElement) { + this.ensureInitializedOrderedSets(); + if (!(this.container().isEqualTo(Graph.graph))) { + this.queries.remove(anElement); + if (F_SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + this.containsNewSets = true; + Graph.addSetToChangedSets(this); + } + return coreSets.successful; + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_GraphGraphCantBeModified.identity(), coreSets.semanticErr); + } + } + + private void ensureInitializedOrderedSets() { + if (!orderedSetsInitialized) { + values = new OrderedSet(identityFactory.createAnonymousIdentity()); + variables = new OrderedSet(identityFactory.createAnonymousIdentity()); + allContainedInstances = new OrderedSet(identityFactory.createAnonymousIdentity()); + vertexFlavored = new OrderedSet(identityFactory.createAnonymousIdentity()); + edgeFlavored = new OrderedSet(identityFactory.createAnonymousIdentity()); + allContainedLinkInstances = new OrderedSet(identityFactory.createAnonymousIdentity()); + superSetReferenceFlavored = new OrderedSet(identityFactory.createAnonymousIdentity()); + visibilityFlavored = new OrderedSet(identityFactory.createAnonymousIdentity()); + commands = new OrderedSet(identityFactory.createAnonymousIdentity()); + queries = new OrderedSet(identityFactory.createAnonymousIdentity()); + executableCommands = new OrderedSet(identityFactory.createAnonymousIdentity()); + executableQueries = new OrderedSet(identityFactory.createAnonymousIdentity()); + + orderedSetsInitialized = true; + } + } + + protected Set getVertices() { + this.ensureInitializedOrderedSets(); + return vertexFlavored; + } + + protected void addToVertices(final Vertex anElement) { + this.ensureInitializedOrderedSets(); + this.vertexFlavored.add(anElement); + this.allContainedInstances.add(anElement); + } + + protected void removeFromVertices(final Vertex anElement) { + this.ensureInitializedOrderedSets(); + this.vertexFlavored.remove(anElement); + this.allContainedInstances.remove(anElement); + } + + protected Set getEdges() { + this.ensureInitializedOrderedSets(); + return edgeFlavored; + } + + protected void addToEdges(final Edge anElement) { + this.ensureInitializedOrderedSets(); + this.edgeFlavored.add(anElement); + this.allContainedLinkInstances.add(anElement); + this.allContainedInstances.add(anElement); + } + + protected void removeFromEdges(final Edge anElement) { + this.ensureInitializedOrderedSets(); + this.edgeFlavored.remove(anElement); + this.allContainedLinkInstances.remove(anElement); + this.allContainedInstances.remove(anElement); + } + + protected Set getSuperSetReferences() { + this.ensureInitializedOrderedSets(); + return superSetReferenceFlavored; + } + + protected void addToSuperSetReferences(final SuperSetReference anElement) { + this.ensureInitializedOrderedSets(); + this.superSetReferenceFlavored.add(anElement); + this.allContainedLinkInstances.add(anElement); + this.allContainedInstances.add(anElement); + } + + protected void removeFromGeneralizationReferences(final SuperSetReference anElement) { + this.ensureInitializedOrderedSets(); + this.superSetReferenceFlavored.remove(anElement); + this.allContainedLinkInstances.remove(anElement); + this.allContainedInstances.remove(anElement); + } + + protected Set getVisibilities() { + this.ensureInitializedOrderedSets(); + return visibilityFlavored; + } + + protected void addToVisibilities(final Visibility anElement) { + this.ensureInitializedOrderedSets(); + this.visibilityFlavored.add(anElement); + this.allContainedLinkInstances.add(anElement); + this.allContainedInstances.add(anElement); + } + + protected void removeFromVisibilities(final Visibility anElement) { + this.ensureInitializedOrderedSets(); + this.visibilityFlavored.remove(anElement); + this.allContainedLinkInstances.remove(anElement); + this.allContainedInstances.remove(anElement); + } + + @Override + public Set container() { + if (this.flavor().isEqualTo(Vertex.vertex)) { + return ((Vertex) this).container(); + } + else if (this.flavor().isEqualTo(Edge.edge)) { + return ((Edge) this).container(); + } + else if (this.flavor().isEqualTo(Visibility.visibility)) { + return ((Visibility) this).container(); + } + else if (this.flavor().isEqualTo(SuperSetReference.superSetReference)) { + return ((SuperSetReference) this).container(); + } + else if (this.flavor().isEqualTo(Link.link)) { + return ((Link) this).container(); + } + else if (this.isEqualTo(Graph.graph)) { + return Graph.graph; + } else { + return F_InstantiationImpl.raiseError(coreSets.kernelDefect_KernelHasReachedAnIllegalState.identity(), coreSets.kernelDefect); + } + } + + @Override + public Set isSuperSetOf(final Set orderedPair) { + if (this.isEqualToRepresentation(orderedPair)) {return coreSets.is_TRUE;} + // only for performance optimisation + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) { + if (this.isEqualTo(GmodelSemanticDomains.semanticIdentity) + && (((OrderedPair)orderedPair.category()).isASemanticIdentity())) {return GmodelSemanticDomains.is_TRUE;} + } + + final Set a = this; + final Set aSuper = a.container().directSuperSetOf(a); + final boolean aHasTrueSuper = !aSuper.isEqualToRepresentation(a); + + final Set b = orderedPair; + final Set bSuper = b.container().directSuperSetOf(b); + final boolean bHasTrueSuper = !bSuper.isEqualToRepresentation(b); + + if (aHasTrueSuper && aSuper.isEqualToRepresentation(b)) {return coreSets.is_FALSE;} + if (bHasTrueSuper && bSuper.isEqualToRepresentation(a)) {return coreSets.is_TRUE;} + if (bHasTrueSuper) {return a.isSuperSetOf(bSuper);} + if (aHasTrueSuper) {return aSuper.isSuperSetOf(b);} + return coreSets.is_FALSE; + + } + + @Override + public Set localRootSuperSetOf(final Set orderedPair) { + Set temp = this.directSuperSetOf(orderedPair); + if (!(temp.isEqualToRepresentation(orderedPair))) { + if (this.allContainedInstances.containsRepresentation(temp)) { + temp = this.localRootSuperSetOf(temp);} else { + return temp; + } + } + return temp; + } + + @Override + public Set isLocalSuperSetOf(final Set orderedPair) { + if (this.isEqualToRepresentation(orderedPair)) { + return coreSets.is_TRUE; + } + else { + if (this.allContainedInstances.containsRepresentation(orderedPair)) { + Set temp = this.directSuperSetOf(orderedPair); + while ((!(temp.isEqualToRepresentation(this))) && (!(temp.isEqualToRepresentation(orderedPair)))) { + temp = this.directSuperSetOf(temp); + } + if (temp.isEqualToRepresentation(this)) { + return coreSets.is_TRUE; + } else { + return coreSets.is_FALSE; + } + } else { + return coreSets.is_FALSE; + } + } + } + + @Override + public Set directSuperSetOf(final Set orderedPair) { + if (this.allContainedInstances.containsRepresentation(orderedPair)) { + for (final Set superSetReference : this.getSuperSetReferences()) { + if (superSetReference.from().isEqualToRepresentation(orderedPair)) { + return ((SuperSetReference)superSetReference).getSuperSet(); + } + } + return orderedPair; + } else { + if (this.isEqualTo(graph) && ( + (orderedPair.isEqualTo(graph) + || (orderedPair.isEqualTo(Link.link)) + || (orderedPair.isEqualTo(Vertex.vertex)) + ))) { + return graph; + } else { + if (this.isEqualTo(graph) && ( + (orderedPair.isEqualTo(Edge.edge) + || (orderedPair.isEqualTo(SuperSetReference.superSetReference)) + || (orderedPair.isEqualTo(Visibility.visibility)) + + ))) { + return graph; + } + }} + return orderedPair; + // TODO : verify that there is no use case where the error condition below adds value + // return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + @Override + public Set visibleArtifactsForSubGraph(final Set subGraph) { + final OrderedSet visibleGraphs = new OrderedSet(identityFactory.createAnonymousIdentity()); + final OrderedSet visibleChildren = new OrderedSet(identityFactory.createAnonymousIdentity()); + + // add the universally visible core instances + visibleGraphs.add(coreGraphs.vertex); + visibleGraphs.add(coreGraphs.graph); + for (final Set coreInstance : coreGraphs.vertex.filterFlavor(coreGraphs.vertex)) { + visibleGraphs.add(coreInstance); + } + + for (final Set visibleSet : this.getVisibilities()) { + final Visibility iVisibility = (Visibility) visibleSet; + if (iVisibility.from().isEqualTo(subGraph)) { + visibleGraphs.add(((iVisibility.to()))); + // collect all the GraphFlavored content of the toSubGraph + for (final Set visibleChild : iVisibility.to().filterInstances()) { + visibleChildren.add(visibleChild); + } + } + } + + // also add all the GraphFlavored content of the toSubGraph to the visibility + for (final Set visibleChild : visibleChildren) { + visibleGraphs.add(visibleChild); + } + + return visibleGraphs; + } + + @Override + public Set hasVisibilityOf(final Set target) { + if ( (this.container().isEqualTo(target.container())) + || (this.isEqualTo(target.container())) + || (this.category().identity().isPartOfUniversalArtifactConcept()) + ) { + return coreSets.is_TRUE; + } else { + final Set viz = this.container().container().visibleArtifactsForSubGraph(this.container()); + if (viz.containsSemanticMatch(target)) { + return coreSets.is_TRUE; + } else { + if (F_SemanticStateOfInMemoryModel.semanticDomainIsInitialized()) { + if (target.category().container().isEqualTo(SemanticDomain.semanticdomain) && viz.containsSemanticMatch(target.container()) + || (this.isEqualTo(Visualization.symbol)) ) { + return coreSets.is_TRUE; + } + } + return coreSets.is_FALSE; + } + } + } + + private Set getCategoryOfVisibility(final Graph target) { + if ( (this.container().isEqualTo(target.container())) + || (this.isEqualTo(target.container()))) { + return Visibility.visibility; + } else { + final Set viz = this.container().container().filterFlavor(coreGraphs.visibility); + for (final Set visibility : viz) { + if ( visibility.from().isEqualTo(this.container()) + && (visibility.to().isEqualTo(target.container()) + || (visibility.to().isEqualTo(target) )) + ) { + return visibility; + } + } + return F_InstantiationImpl.raiseError(coreSets.semanticErr_TargetIsNotWithinVisibility.identity(), coreSets.semanticErr); + } + } + + @Override + public Set filterInstances() { + this.ensureInitializedOrderedSets(); + return this.allContainedInstances; + } + + @Override + public Set filterLinks() { + this.ensureInitializedOrderedSets(); + return this.allContainedLinkInstances; + } + + @Override + public Set filterLinks(final Set flavorOrCategory, final Set fromSet, final Set toSet) { + if (flavorOrCategory.isInformation().is_TRUE()) { + if (fromSet.isInformation().is_FALSE() + && toSet.isInformation().is_FALSE()) { + if (((OrderedPair)flavorOrCategory).isLinkFlavor()) { + return this.filterFlavor(flavorOrCategory); + } else { + return this.filterLinks().filter(flavorOrCategory); + } + } + if (((OrderedPair)flavorOrCategory).isLinkFlavor()) { + return this.filterFlavor(flavorOrCategory).filterByLinkedFromAndTo(fromSet, toSet); + } else { + return this.filterLinks().filter(flavorOrCategory).filterByLinkedFromAndTo(fromSet, toSet); + } + } else { + return this.filterLinks().filterByLinkedFromAndTo(fromSet, toSet); + } + } + + @Override + public Set filterFlavor(final Set flavor) { + this.ensureInitializedOrderedSets(); + if (flavor.isEqualTo(coreGraphs.vertex)) { + return this.vertexFlavored; + } else if (flavor.isEqualTo(coreGraphs.link) && this.isEqualTo(Graph.graph)) { + return Link.link; + } else if (flavor.isEqualTo(coreGraphs.link)) { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } else if (flavor.isEqualTo(coreGraphs.edge)) { + return this.edgeFlavored; + } else if (flavor.isEqualTo(coreGraphs.visibility)) { + return this.visibilityFlavored; + } else if (flavor.isEqualTo(coreGraphs.superSetReference)) { + return this.superSetReferenceFlavored; + } else if (flavor.isEqualTo(coreGraphs.edgeEnd)) { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } else if (flavor.isEqualTo(coreGraphs.graph) && this.isEqualTo(Graph.graph)) { + return this.allContainedInstances; + } else if (flavor.isEqualTo(coreGraphs.graph)) { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } else { + return F_InstantiationImpl.raiseError(coreSets.kernelDefect_KernelHasReachedAnIllegalState.identity(), coreSets.kernelDefect); + } + } + + @Override + public Set filter(final Set category) { + this.ensureInitializedOrderedSets(); + final OrderedSet resultSet = new OrderedSet(identityFactory.createAnonymousIdentity()); + for (final Set instance : this.allContainedInstances) { + if (instance.category().isEqualTo(category)) { + resultSet.add(instance); + } + } + return resultSet; + } + + @Override + public Set filterPolymorphic(final Set category) { + this.ensureInitializedOrderedSets(); + final OrderedSet resultSet = new OrderedSet(identityFactory.createAnonymousIdentity()); + for (final Set instance : this.allContainedInstances) { + if (category.isSuperSetOf(instance.category()).isEqualTo(coreSets.is_TRUE) + && category.isSuperSetOf(instance).isEqualTo(coreSets.is_FALSE)) { + resultSet.add(instance); + } + } + return resultSet; + } + + @Override + public Set categoryOfVisibility(final Set target) { + return this.getCategoryOfVisibility((Graph)target); + } + + @Override + public Set containsEdgeTo (final Set anElement) { + for (final Set edge : this.getEdges()) { + if ( (edge.from().isEqualTo(anElement)) + || (edge.to().isEqualTo(anElement)) ) { + return coreSets.is_TRUE; + } + } + return coreSets.is_FALSE; + } + + @Override + public Set from() { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_OnlyEdgeEndFlavoredInstancesHaveEdgeEndVertex.identity(), coreSets.semanticErr); + } + + @Override + public Set to() { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_OnlyEdgeEndFlavoredInstancesHaveEdgeEndVertex.identity(), coreSets.semanticErr); + } + + @Override + public Set fromEdgeEnd() { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_OnlyEdgeFlavoredInstancesHaveConnectedRoles.identity(), coreSets.semanticErr); + } + + @Override + public Set toEdgeEnd() { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_OnlyEdgeFlavoredInstancesHaveConnectedRoles.identity(), coreSets.semanticErr); + } + + @Override + public Set edgeEnds() { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_OnlyEdgeFlavoredInstancesHaveConnectedRoles.identity(), coreSets.semanticErr); + } + + @Override + public Set flavor() { + return Graph.graph; + } + + public Set addConcrete(final Set category, final Identity semanticIdentity) { + if (category.flavor().isEqualTo(coreGraphs.vertex)) { + return (F_Instantiation.addConcreteVertex(this, semanticIdentity, category)); + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_AddConcreteIsOnlyValidForConcreteVertexFlavor.identity(), coreSets.semanticErr); + } + } + + @Override + public Set addConcrete(final Set category, final Set semanticIdentity) { + if (category.flavor().isEqualTo(coreGraphs.vertex)) { + return (F_Instantiation.addConcreteVertex(this, identityFactory.reuseSemanticIdentity(semanticIdentity.identity()), category)); + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_AddConcreteIsOnlyValidForConcreteVertexFlavor.identity(), coreSets.semanticErr); + } + } + + public Set addAbstract(final Set category, final Identity semanticIdentity) { + if (category.flavor().isEqualTo(coreGraphs.vertex)) { + return (F_Instantiation.addAbstractVertex(this, semanticIdentity, category)); + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_AddAbstractIsOnlyValidForAbstractVertexFlavor.identity(), coreSets.semanticErr); + } + } + + @Override + public Set addAbstract(final Set category, final Set semanticIdentity) { + if (category.flavor().isEqualTo(coreGraphs.vertex)) { + return (F_Instantiation.addAbstractVertex(this, identityFactory.reuseSemanticIdentity(semanticIdentity.identity()), category)); + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_AddAbstractIsOnlyValidForAbstractVertexFlavor.identity(), coreSets.semanticErr); + } + } + + @Override + public Set decommission() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) { + final Set dependentSets = Query.findDependentSets(this); + if (dependentSets.size() == 0) { + this.isDecommissioned = true; + this.isNewInstance = false; + Graph.addSetToChangedSets(this); + ((Graph) this.container()).setContainsDecommissionedSets(true); + Graph.addSetToChangedSets(this.container()); + return coreSets.successful; + } else { + return dependentSets; + } + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + } + + public Set delete(final Set set) { + if (set.category().flavor().isEqualTo(coreGraphs.vertex)) { + this.removeFromVertices((Vertex)set); + return set; + } else { + if (set.category().flavor().isEqualTo(coreGraphs.edge)) { + this.removeFromEdges((Edge)set); + return set; + } else { + + if (set.category().flavor().isEqualTo(coreGraphs.superSetReference)) { + this.removeFromGeneralizationReferences((SuperSetReference)set); + return set; + } else { + if (set.category().flavor().isEqualTo(coreGraphs.visibility)) { + this.removeFromVisibilities((Visibility)set); + return set; + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_GraphsCantBeDecommissioned.identity(), coreSets.semanticErr); + } + } + + } + } + } + + protected void setContainsNewSets(final boolean value) { + this.containsNewSets = value; + } + + protected void setContainsDecommissionedSets(final boolean value) { + this.containsDecommissionedSets = value; + } + + protected void setHasNewPayload(final boolean value) { + this.hasNewPayload = value; + } + + protected void setHasDecommissionedPayload(final boolean value) { + this.hasDecommissionedPayload = value; + } + + @Override + public Set isExternal() { + if ( this.flavor().isEqualTo(coreGraphs.edge) + || this.flavor().isEqualTo(coreGraphs.superSetReference) + || this.flavor().isEqualTo(coreGraphs.visibility) + ) { + return F_InstantiationImpl.raiseError(coreSets.kernelDefect_KernelHasReachedAnIllegalState.identity(), coreSets.kernelDefect); // result must be overriden by specialization! + } else { + return coreSets.is_FALSE; + } + } + + /** + * GraphFlavor queries + */ + protected void addFlavorQueries() { + this.addToExecutableQueries(coreSets.identity); + this.addToExecutableQueries(coreSets.artifact); + this.addToExecutableQueries(coreSets.filter); + this.addToExecutableQueries(coreSets.containsEdgeFromOrTo); + this.addToExecutableQueries(coreSets.filterFlavor); + this.addToExecutableQueries(coreSets.hasVisibilityOf); + this.addToExecutableQueries(coreSets.filterInstances); + this.addToExecutableQueries(coreSets.isLocalSuperSetOf); + this.addToExecutableQueries(coreSets.isSuperSetOf); + this.addToExecutableQueries(coreSets.filterLinks); + this.addToExecutableQueries(coreSets.localRootSuperSetOf); + this.addToExecutableQueries(coreSets.directSuperSetOf); + this.addToExecutableQueries(coreSets.category); + this.addToExecutableQueries(coreSets.containerCategory); + this.addToExecutableQueries(coreSets.variables); + this.addToExecutableQueries(coreSets.value); + this.addToExecutableQueries(coreSets.values); + this.addToExecutableQueries(coreSets.visibleArtifactsForSubGraph); + this.addToExecutableQueries(coreSets.allowableEdgeCategories); + this.addToExecutableQueries(coreSets.filterPolymorphic); + this.addToExecutableQueries(coreSets.semanticIdentity); + this.addToExecutableQueries(coreSets.commands); + this.addToExecutableQueries(coreSets.queries); + this.addToExecutableQueries(coreSets.executableCommands); + this.addToExecutableQueries(coreSets.executableQueries); + } + + /** + * GraphFlavor commands + */ + protected void addFlavorCommands() { + this.addToExecutableCommands(coreSets.addAbstract); + this.addToExecutableCommands(coreSets.addConcrete); + } + + @Override + public Set containsDecommissionedSets() { + if (containsDecommissionedSets) { + return coreSets.is_TRUE; + } else { + return coreSets.is_FALSE; + } + } + + @Override + public Set containsNewSets() { + if (containsNewSets) { + return coreSets.is_TRUE; + } else { + return coreSets.is_FALSE; + } + } + + @Override + public Set hasNewPayload() { + if (hasNewPayload) { + return coreSets.is_TRUE; + } else { + return coreSets.is_FALSE; + } + } + + @Override + public Set hasDecommissionedPayload() { + if (hasDecommissionedPayload) { + return coreSets.is_TRUE; + } else { + return coreSets.is_FALSE; + } + } + + @Override + public Set hasNewName() { + if (SemanticDomain.semanticIdentity.isSuperSetOf(this.category()).isEqualTo(coreSets.is_TRUE)) { + if (hasNewName) { + return coreSets.is_TRUE; + } else { + return coreSets.is_FALSE; + } + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + } + + @Override + public Set hasNewPluralName() { + if (SemanticDomain.semanticIdentity.isSuperSetOf(this.category()).isEqualTo(coreSets.is_TRUE)) { + if (hasNewPluralName) { + return coreSets.is_TRUE; + } else { + return coreSets.is_FALSE; + } + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + } + + @Override + public Set isDecommissioned() { + if (isDecommissioned) { + return coreSets.is_TRUE; + } else { + return coreSets.is_FALSE; + } + } + + @Override + public Set isNewInstance() { + if (isNewInstance) { + return coreSets.is_TRUE; + } else { + return coreSets.is_FALSE; + } + } + + @Override + public Set assignNewName(final String newName) { + if (SemanticDomain.semanticIdentity.isSuperSetOf(this.category()).isEqualTo(coreSets.is_TRUE)) { + ((IdentityImpl) this.identity()).assignNewName(newName); + if (F_SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + this.hasNewName = true; + Graph.addSetToChangedSets(this); + } + return coreSets.successful;} + else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + } + + @Override + public Set assignNewPluralName(final String newPluralName) { + if (SemanticDomain.semanticIdentity.isSuperSetOf(this.category()).isEqualTo(coreSets.is_TRUE)) { + ((IdentityImpl) this.identity()).assignNewPluralName(newPluralName); + if (F_SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + this.hasNewPluralName = true; + Graph.addSetToChangedSets(this); + } + return coreSets.successful;} + else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + } + + @Override + public Set assignNewPayload(final String newPayload) { + this.identity().setPayload(newPayload); + if (F_SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + this.setHasNewPayload(true); + this.setHasDecommissionedPayload(false); + Graph.addSetToChangedSets(this); + } + return coreSets.successful; + } + + @Override + public Set decommissionPayload() { + this.identity().setPayload(null); + if (F_SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + this.setHasDecommissionedPayload(true); + this.setHasNewPayload(false); + Graph.addSetToChangedSets(this); + } + return coreSets.successful; + } + + public Set clearModificationState() { + isNewInstance = false; + isDecommissioned = false; + containsNewSets = false; + containsDecommissionedSets = false; + hasNewName = false; + hasNewPluralName = false; + hasNewPayload = false; + hasDecommissionedPayload = false; + return coreSets.successful; + } + + @Override + public Set allowableEdgeCategories(final Set orderedPair) { + final OrderedSet result = new OrderedSet(identityFactory.createAnonymousIdentity()); + for (final Set edge : this.category().container().filterFlavor(Edge.edge)) { + if (((edge.from().isSuperSetOf(this.category()).isEqualTo(coreSets.is_TRUE))) + && (LinkConstraints.isAllowableEdgeFlavoredLinkCategory(edge, this, orderedPair).isEqualTo(coreSets.is_TRUE))) { + result.add(edge); + } + if (this.category().container().isEqualTo(graph)) { + result.add(Edge.edge); + } + } + return result; + } + + @Override + public Set processEvent(final Set event) { + return event; + } + + @Override + public Set unionOfconnectingLinks(final Set instance) { + final OrderedSet result = new OrderedSet(identityFactory.createAnonymousIdentity()); + for (final Set link : instance.container().filterLinks()) { + if ((link.from().isEqualToRepresentation(instance) && (link.to().isEqualToRepresentation(this))) + || ((link.from().isEqualToRepresentation(this) && link.to().isEqualToRepresentation(instance)))) { + result.add(link); + } + } + for (final Set link : this.container().filterLinks()) { + if ((link.from().isEqualToRepresentation(instance) && (link.to().isEqualToRepresentation(this))) + || ((link.from().isEqualToRepresentation(this) && link.to().isEqualToRepresentation(instance)))) { + result.add(link); + } + } + return result; + } + + @Override + public String localVisualRecognitionText() { + return this.identity().name() + " : " + this.category().identity().name(); + } + @Override + public String visualRecognitionText() { + if (this.category().isEqualTo(this)) { + return this.identity().name(); + } else { + return this.identity().name() + "." + this.container().visualRecognitionText(); + } + } + @Override + public String fullVisualRecognitionText() { + return this.visualRecognitionText() + " : " + this.category().visualRecognitionText(); + } + + /** + * Support for Information Quality Logic + */ + + @Override + public Set not() { + return F_IqLogic.not(this); + } + + @Override + public Set and(final Set b) { + return F_IqLogic.and(this, b); + } + @Override + public Set or(final Set b) { + return F_IqLogic.or(this, b); + } + + @Override + public Set isQuality() { + return F_IqLogic.isQuality(this); + } + + @Override + public Set isInformation() { + return F_IqLogic.isInformation(this); + } + @Override + public boolean is_NOTAPPLICABLE() { + return this.isEqualTo(GmodelSemanticDomains.is_NOTAPPLICABLE); + } + @Override + public boolean is_FALSE() { + return this.isEqualTo(GmodelSemanticDomains.is_FALSE); + } + @Override + public boolean is_UNKNOWN() { + return this.isEqualTo(GmodelSemanticDomains.is_UNKNOWN); + } + @Override + public boolean is_TRUE() { + return this.isEqualTo(GmodelSemanticDomains.is_TRUE); + } + @Override + public Set includesValue(final Set value, final Set equivalenceClass) { + return F_IqLogic.includesValue(this, value, equivalenceClass); + } + @Override + public Set isEqualTo(final Set set, final Set equivalenceClass) { + return F_IqLogic.isEqualTo(set, equivalenceClass); + } + + /** + * support of Set Algebra + **/ + + + /** + * the union of this and semanticIdentity + */ + @Override + public Set union(final Set semanticIdentity) { + return F_SetAlgebra.union(this, semanticIdentity); + } + /** + * the intersection of this and semanticIdentity + */ + @Override + public Set intersection(final Set set) { + return F_SetAlgebra.intersection(this, set); + } + /** + * the complement of this and semanticIdentity + */ + @Override + public Set complement(final Set set) { + return F_SetAlgebra.complement(this, set); + } + @Override + public Set isElementOf(final Set semanticIdentity){ + return F_SetAlgebra.isElementOf(this, semanticIdentity); + } + @Override + public Set transformToOrderedSetOfSemanticIdentities() { + return F_SetAlgebra.transformToOrderedSetOfSemanticIdentities(this.filterInstances()); + } + + /** + * Establish symmetry between graphs and ordered set + * Delegate to the instanceSet + */ + + @Override + public Set filterByLinkedTo(final Set toSet) { + return this.filterLinks().filterByLinkedTo(toSet); + } + @Override + public Set filterByLinkedFrom(final Set fromSet) { + return this.filterLinks().filterByLinkedFrom(fromSet); + } + @Override + public Set filterByLinkedFromAndTo(final Set fromSet, final Set toSet) { + return this.filterLinks().filterByLinkedFromAndTo(toSet, fromSet); + } + @Override + public Set filterByLinkedToVia(final Set toEdgeEnd) { + return this.filterLinks().filterByLinkedToVia(toEdgeEnd); + } + @Override + public Set filterByLinkedFromVia(final Set fromEdgeEnd) { + return this.filterLinks().filterByLinkedFromVia(fromEdgeEnd); + } + @Override + public Set filterByLinkedFromAndToVia(final Set fromEdgeEnd, final Set toEdgeEnd) { + return this.filterLinks().filterByLinkedFromAndToVia(fromEdgeEnd, toEdgeEnd ); + } + @Override + public Set filterFrom() { + return this.filterLinks().filterFrom(); + } + @Override + public Set filterTo() { + return this.filterLinks().filterTo(); + } + @Override + public Set filterFromAndTo() { + return this.filterLinks().filterFromAndTo(); + } + @Override + public Set filterByLinkedToSemanticRole(final Set toSetReferencedSemanticRole) { + return this.filterLinks().filterByLinkedToSemanticRole(toSetReferencedSemanticRole); + } + @Override + public Set filterByLinkedFromSemanticRole(final Set fromSetReferencedSemanticRole) { + return this.filterLinks().filterByLinkedFromSemanticRole(fromSetReferencedSemanticRole); + } + @Override + public Set filterByLinkedFromAndToSemanticRole(final Set fromSetReferencedSemanticRole, final Set toSetReferencedSemanticRole) { + return this.filterLinks().filterByLinkedFromAndToSemanticRole(fromSetReferencedSemanticRole, toSetReferencedSemanticRole); + } + @Override + public Set filterBySemanticIdentity(final Set set) { + return this.filterInstances().filterBySemanticIdentity(set); + } + @Override + public Set filterByEquivalenceClass(final Set set) { + return this.filterInstances().filterByEquivalenceClass(set); + } + @Override + public Set extractUniqueMatch(final Set set) { + return this.filterInstances().extractUniqueMatch(set); + } + @Override + public Set extractUniqueMatch(final Identity identity) { + return this.filterInstances().extractUniqueMatch(identity); + } + @Override + public Set extractUniqueMatch(final String uuidAsString) { + return this.filterInstances().extractUniqueMatch(uuidAsString); + } + @Override + public Set extractFirst() { + return this.filterInstances().extractFirst(); + } + @Override + public Set extractSecond() { + return this.filterInstances().extractSecond(); + } + @Override + public Set extractLast() { + return this.filterInstances().extractLast(); + } + @Override + public Set extractNext(final Set element) { + return this.filterInstances().extractNext(element); + } + @Override + public Set extractPrevious(final Set element) { + return this.filterInstances().extractPrevious(element); + } + /** + * See {@link java.util.List#contains(Object)} + */ + @Override + public boolean containsSemanticMatch(final Set set) { + return this.filterInstances().containsSemanticMatch(set); + } + @Override + public boolean containsRepresentation(final Set set) { + return this.filterInstances().containsSemanticMatch(set); + } + @Override + public boolean containsSemanticMatchesForAll(final Set set) { + return this.filterInstances().containsSemanticMatchesForAll(set); + } + @Override + public boolean containsAllRepresentations(final Set set) { + return this.filterInstances().containsAllRepresentations(set); + } + @Override + public boolean isEmpty() { + return this.filterInstances().isEmpty(); + } + @Override + public ListIterator listIterator() { + return this.filterInstances().listIterator(); + } + @Override + public ListIterator listIterator(final int index) { + return this.filterInstances().listIterator(index); + } + @Override + public int size() { + return this.filterInstances().size(); + } + @Override + public Set[] toArray() { + return this.filterInstances().toArray(); + } + @Override + public Set[] toArray(final Set[] a) { + return this.filterInstances().toArray(a); + } + @Override + public List asList() { + return this.filterInstances().asList(); + } + @Override + public Set and() { + return this.filterInstances().and(); + } + @Override + public Set or() { + return this.filterInstances().or(); + } + public Set initializeWalk(final VisitorFunction visitorFunction) { + return visitorFunction.initialize(this); + } + + public Set walkDownThenRight(final VisitorFunction visitorFunction) { + final Set content = this.filterInstances(); + for (final Set element : content) { + element.walkDownThenRight(visitorFunction) ; + } + return visitorFunction.compute(this); + } + + public Set walkDownThenLeft(final VisitorFunction visitorFunction) { + final Set content = this.filterInstances(); + Set element = content.extractLast(); + for (int i = 0; i < content.size() ; i++) { + element.walkDownThenLeft(visitorFunction) ; + element = content.extractPrevious(element); + } + return visitorFunction.compute(this); + } + + public Set walkRightThenDown(final VisitorFunction visitorFunction) { + final Set content = this.filterInstances(); + for (final Set element : content) { + visitorFunction.compute(element); + } + return this.walkRightThenDown(visitorFunction) ; + } + public Set walkLeftThenDown(final VisitorFunction visitorFunction) { + final Set content = this.filterInstances(); + Set element = content.extractLast(); + visitorFunction.compute(element); + for (int i = 0; i < content.size() ; i++) { + element = content.extractPrevious(element); + visitorFunction.compute(element); + } + this.walkLeftThenDown(visitorFunction) ; + return visitorFunction.compute(this); + } +} \ No newline at end of file diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/IdentityFactory.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/IdentityFactory.java new file mode 100644 index 0000000..397637d --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/IdentityFactory.java @@ -0,0 +1,334 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.core; + +import static org.gmodel.core.F_Instantiation.identityFactory; + +import java.util.UUID; + +import org.apache.commons.collections.map.ListOrderedMap; +import org.gmodel.Identity; +import org.gmodel.api.Instantiation; + +/** + * {@link IdentityFactory} is a factory for Semantic Identities that connects + * to the basic implementation of SemanticIdentity delivered with Gmodel. + * + * The implementation can be overridden as needed by an alternative class that implements + * the FundamentalSemanticIdentities interface. + */ +public class IdentityFactory implements KernelIdentities { + private final ListOrderedMap inMemoryIdentities = new ListOrderedMap(); + private final UUIDReservoirForKernelGraph uUIDReservoir = new UUIDReservoirForKernelGraph(); + + + public IdentityFactory() { + // final UUIDReservoirForKernelGraph uUIDReservoir = new UUIDReservoirForKernelGraph(); + uUIDReservoir.fill(); + IdentityImpl.initialize(uUIDReservoir); + orderedPair(); + graph(); + } + + public final Identity abstractSemanticRole() {return identityFactory.createIdentityInKernel("abstract semantic role", "abstract semantic roles", SemanticIdentityRegistry.abstractSemanticRole.ordinal());} + public final Identity addAbstract() {return createIdentityInKernel("addAbstract" , "addAbstract", SemanticIdentityRegistry.addAbstract.ordinal());} + public final Identity addConcrete() {return createIdentityInKernel("addConcrete" , "addConcrete", SemanticIdentityRegistry.addConcrete.ordinal());} + public final Identity addElement() {return createIdentityInKernel("addElement" , "addElement", SemanticIdentityRegistry.addElement.ordinal());} + public final Identity addToCommands() {return createIdentityInKernel("addToCommands" , "addToCommands", SemanticIdentityRegistry.addToCommands.ordinal());} + public final Identity addToQueries() {return createIdentityInKernel("addToQueries" , "addToQueries", SemanticIdentityRegistry.addToQueries.ordinal());} + public final Identity addToValues() {return createIdentityInKernel("addToValues" , "addToValues", SemanticIdentityRegistry.addToValues.ordinal());} + public final Identity addToVariables() {return createIdentityInKernel("addToVariables" , "addToVariables", SemanticIdentityRegistry.addToVariables.ordinal());} + public final Identity allowableEdgeCategories() {return createIdentityInKernel("allowableEdgeCategories" , "allowableEdgeCategories", SemanticIdentityRegistry.allowableEdgeCategories.ordinal());} + public final Identity anonymous() {return createAnonymousIdentity();} + public final Identity anonymousInKernel() {return createAnonymousIdentityInKernel();} + public final Identity asList() {return createIdentityInKernel("asList" , "asList", SemanticIdentityRegistry.asList.ordinal());} + public final Identity assignNewName() {return createIdentityInKernel("assignNewName" , "assignNewName", SemanticIdentityRegistry.assignNewName.ordinal());} + public final Identity assignNewPayload() {return createIdentityInKernel("assignNewPayload" , "assignNewPayload", SemanticIdentityRegistry.assignNewPayload.ordinal());} + public final Identity assignNewPluralName() {return createIdentityInKernel("assignNewPluralName" , "assignNewPluralName", SemanticIdentityRegistry.assignNewPluralName.ordinal());} + + public final Identity booleanValue() {return createIdentityInKernel("boolean value" , "boolean values", SemanticIdentityRegistry.booleanValue.ordinal());} + + public final Identity category() {return createIdentityInKernel("category" , "category", SemanticIdentityRegistry.category.ordinal());} + public final Identity command() {return createIdentityInKernel("command" , "commands", SemanticIdentityRegistry.command.ordinal());} + public final Identity commandFunction() {return createIdentityInKernel("command function" , "command functions", SemanticIdentityRegistry.commandFunction.ordinal());} + public final Identity commands() {return createIdentityInKernel("commands" , "commands", SemanticIdentityRegistry.commands.ordinal());} + public final Identity complement() {return createIdentityInKernel("complement" , "complement", SemanticIdentityRegistry.complement.ordinal());} + public final Identity completion() {return createIdentityInKernel("completion" , "completion", SemanticIdentityRegistry.completion.ordinal());} + public final Identity completion_successful() {return createIdentityInKernel("successful" , "successful", SemanticIdentityRegistry.completion_successful.ordinal());} + public final Identity container() {return createIdentityInKernel("container" , "container", SemanticIdentityRegistry.container.ordinal());} + public final Identity containerCategory() {return createIdentityInKernel("containerCategory" , "containerCategory", SemanticIdentityRegistry.containerCategory.ordinal());} + public final Identity contains() {return createIdentityInKernel("contains" , "contains", SemanticIdentityRegistry.contains.ordinal());} + public final Identity containsAll() {return createIdentityInKernel("containsAll" , "containsAll", SemanticIdentityRegistry.containsAll.ordinal());} + public final Identity containsAllRepresentations() {return createIdentityInKernel("containsAllRepresentations" , "containsAllRepresentations", SemanticIdentityRegistry.containsAllRepresentations.ordinal());} + public final Identity containsEdgeFromOrTo() {return createIdentityInKernel("containsEdgeFromOrTo" , "containsEdgeFromOrTo", SemanticIdentityRegistry.containsEdgeFromOrTo.ordinal());} + public final Identity containsRepresentations() {return createIdentityInKernel("containsRepresentations" , "containsRepresentations", SemanticIdentityRegistry.containsRepresentations.ordinal());} + public Identity createAnonymousIdentity() { + return deduplicate(new IdentityImpl("ANONYMOUS", "ANONYMOUS", SemanticIdentityRegistry.anonymous.ordinal())); + } + public Identity createAnonymousIdentity(final boolean isKernelIdentity) { + if (isKernelIdentity) { + return createAnonymousIdentityInKernel(); + } else { + return createAnonymousIdentity(); + } + } + public Identity createAnonymousIdentityInKernel() { + return deduplicate(new IdentityImpl("ANONYMOUS IN KERNEL", "ANONYMOUS IN KERNEL", SemanticIdentityRegistry.anonymousInKernel.ordinal())); + } + public Identity createIdentity(final String name) { + return deduplicate(new IdentityImpl(name, "set of ".concat(name), Instantiation.indexIsNotAvailable)); + } + public Identity createIdentity(final String name, final String pluralName) { + return deduplicate(new IdentityImpl(name, pluralName, Instantiation.indexIsNotAvailable)); + } + public Identity createIdentity(final String name, final String pluralName, final int index) { + return deduplicate(new IdentityImpl(name, pluralName, index)); + } + public Identity createIdentityInKernel(final String name, final String pluralName, final int index) { + return createIdentity(name, pluralName, index); + } + public Identity createIdentityReification() { + return semanticIdentity(); + } + + public final Identity decommission() {return createIdentityInKernel("decommission" , "decommission", SemanticIdentityRegistry.decommission.ordinal());} + private Identity deduplicate(final Identity id) { + if (this.inMemoryIdentities.containsKey(id.uniqueRepresentationReference().toString())) { + return (Identity) this.inMemoryIdentities.get(id.uniqueRepresentationReference().toString()); + } else + { + this.inMemoryIdentities.put(id.uniqueRepresentationReference().toString(), id); + return id; + } + } + public final Identity directSuperSetOf() {return createIdentityInKernel("directSuperSetOf" , "directSuperSetOf", SemanticIdentityRegistry.directSuperSetOf.ordinal());} + public final Identity disjunctSemanticIdentitySet() {return createIdentityInKernel("disjunct semantic identity set","disjunct semantic identity sets", SemanticIdentityRegistry.disjunctSemanticIdentitySet.ordinal());} + + public final Identity edge() {return createIdentityInKernel("edge" , "edges", SemanticIdentityRegistry.edge.ordinal());} + public final Identity edgeEnd() {return createIdentityInKernel("edge end" , "edge ends", SemanticIdentityRegistry.edgeEnd.ordinal());} + public final Identity edgeEnds() {return createIdentityInKernel("edgeEnds" , "edgeEnds", SemanticIdentityRegistry.edgeEnds.ordinal());} + public final Identity edgeTrace() {return createIdentityInKernel("edge trace" , "edge traces", SemanticIdentityRegistry.edgeTrace.ordinal());} + public final Identity element() {return identityFactory.createIdentityInKernel("element", "elements", SemanticIdentityRegistry.element.ordinal());} + public final Identity elementAdded() {return createIdentityInKernel("elementAdded" , "elementAdded", SemanticIdentityRegistry.elementAdded.ordinal());} + public final Identity elementRemoved() {return createIdentityInKernel("elementRemoved" , "elementRemoved", SemanticIdentityRegistry.elementRemoved.ordinal());} + public final Identity elements() {return createIdentityInKernel("elements" , "elements", SemanticIdentityRegistry.elements.ordinal());} + public final Identity elementsOfSemanticIdentitySet() {return createIdentityInKernel("elementsOfSemanticIdentitySet" , "elementsOfSemanticIdentitySet", SemanticIdentityRegistry.elementsOfSemanticIdentitySet.ordinal());} + public final Identity equivalenceClass() {return createIdentityInKernel("equivalence class","equivalence classes", SemanticIdentityRegistry.equivalenceClass.ordinal());} + public final Identity event() {return createIdentityInKernel("event" , "event", SemanticIdentityRegistry.event.ordinal());} + public final Identity executableCommands() {return createIdentityInKernel("executableCommands" , "executableCommands", SemanticIdentityRegistry.executableCommands.ordinal());} + public final Identity executableQueries() {return createIdentityInKernel("executableQueries" , "executableQueries", SemanticIdentityRegistry.executableQueries.ordinal());} + public final Identity extractFirst() {return createIdentityInKernel("extractFirst" , "extractFirst", SemanticIdentityRegistry.extractFirst.ordinal());} + public final Identity extractSecond() {return createIdentityInKernel("extractSecond" , "extractSecond", SemanticIdentityRegistry.extractSecond.ordinal());} + public final Identity extractLast() {return createIdentityInKernel("extractLast" , "extractLast", SemanticIdentityRegistry.extractLast.ordinal());} + public final Identity extractUniqueMatch() {return createIdentityInKernel("extractUniqueMatch" , "extractUniqueMatch", SemanticIdentityRegistry.extractUniqueMatch.ordinal());} + + + public final Identity filter() {return createIdentityInKernel("filter" , "filter", SemanticIdentityRegistry.filter.ordinal());} + public final Identity filterFlavor() {return createIdentityInKernel("filterFlavor" , "filterFlavor", SemanticIdentityRegistry.filterFlavor.ordinal());} + public final Identity filterInstances() {return createIdentityInKernel("filterInstances" , "filterInstances", SemanticIdentityRegistry.filterInstances.ordinal());} + public final Identity filterLinks() {return createIdentityInKernel("filterLinks" , "filterLinks", SemanticIdentityRegistry.filterLinks.ordinal());} + public final Identity filterPolymorphic() {return createIdentityInKernel("filterPolymorphic" , "filterPolymorphic", SemanticIdentityRegistry.filterPolymorphic.ordinal());} + public final Identity flavor() {return createIdentityInKernel("flavor" , "flavor", SemanticIdentityRegistry.flavor.ordinal());} + public final Identity flavorCommandFunction() {return createIdentityInKernel("flavor command function" , "flavor command functions", SemanticIdentityRegistry.flavorCommandFunction.ordinal());} + public final Identity flavorQueryFunction() {return createIdentityInKernel("flavor query function" , "flavor query functions", SemanticIdentityRegistry.flavorQueryFunction.ordinal());} + public final Identity from() {return createIdentityInKernel("from" , "from", SemanticIdentityRegistry.from.ordinal());} + public final Identity fromEdgeEnd() {return createIdentityInKernel("fromEdgeEnd" , "fromEdgeEnd", SemanticIdentityRegistry.fromEdgeEnd.ordinal());} + public final Identity function() {return createIdentityInKernel("function" , "functions", SemanticIdentityRegistry.function.ordinal());} + + public final Identity get() {return createIdentityInKernel("get" , "get", SemanticIdentityRegistry.get.ordinal());} + public final Identity graph() {return createIdentityInKernel("graph" , "graphs", SemanticIdentityRegistry.graph.ordinal());} + + public final Identity hasVisibilityOf() {return createIdentityInKernel("hasVisibilityOf" , "hasVisibilityOf", SemanticIdentityRegistry.hasVisibilityOf.ordinal());} + + public final Identity identifier() {return createIdentityInKernel("identifier" , "identifier", SemanticIdentityRegistry.identifier.ordinal());} + public final Identity identity() {return createIdentityInKernel("identity" , "identity", SemanticIdentityRegistry.identity.ordinal());} + public final Identity indexOf() {return createIdentityInKernel("indexOf" , "indexOf", SemanticIdentityRegistry.indexOf.ordinal());} + public final Identity indexOfIdentifier() {return createIdentityInKernel("indexOfIdentifier" , "indexOfIdentifier", SemanticIdentityRegistry.indexOfIdentifier.ordinal());} + // the number of identities that have been loaded into memory + public int inMemoryComplexity() { + return this.inMemoryIdentities.size(); + } + public final Identity instantiateAbstract() {return createIdentityInKernel("instantiateAbstract" , "instantiateAbstract", SemanticIdentityRegistry.instantiateAbstract.ordinal());} + public final Identity instantiateConcrete() {return createIdentityInKernel("instantiateConcrete" , "instantiateConcrete", SemanticIdentityRegistry.instantiateConcrete.ordinal());} + public final Identity intersection() {return createIdentityInKernel("intersection" , "intersection", SemanticIdentityRegistry.intersection.ordinal());} + public final Identity iqLogicValue() {return createIdentityInKernel("iq-logic value" , "iq-logic values", SemanticIdentityRegistry.iqLogicValue.ordinal());} + public final Identity is_FALSE() {return createIdentityInKernel("FALSE" , "FALSEs", SemanticIdentityRegistry.is_FALSE.ordinal());} + public final Identity is_NOTAPPLICABLE() {return createIdentityInKernel("N/A" , "N/As", SemanticIdentityRegistry.is_NOTAPPLICABLE.ordinal());} + public final Identity is_TRUE() {return createIdentityInKernel("TRUE" , "TRUEs", SemanticIdentityRegistry.is_TRUE.ordinal());} + public final Identity is_UNKNOWN() {return createIdentityInKernel("UNKNOWN" , "UNKNOWNs", SemanticIdentityRegistry.is_UNKNOWN.ordinal());} + public final Identity isAbstract() {return createIdentityInKernel("is abstract" , "are abstract", SemanticIdentityRegistry.isAbstract.ordinal());} + public final Identity isAbstract_FALSE() {return createIdentityInKernel("isAbs FALSE" , "FALSEs", SemanticIdentityRegistry.isAbstract_FALSE.ordinal());} + public final Identity isAbstract_TRUE() {return createIdentityInKernel("isAbs TRUE" , "TRUEs", SemanticIdentityRegistry.isAbstract_TRUE.ordinal());} + public final Identity isALink() {return createIdentityInKernel("isALink" , "isALink", SemanticIdentityRegistry.isALink.ordinal());} + public final Identity isASemanticIdentity() {return createIdentityInKernel("isASemanticIdentity" , "isASemanticIdentity", SemanticIdentityRegistry.isASemantikIdentity.ordinal());} + public final Identity isContainer() {return createIdentityInKernel("is container" , "is container", SemanticIdentityRegistry.isContainer.ordinal());} + public final Identity isContainer_FALSE() {return createIdentityInKernel("isCont FALSE" , "FALSEs", SemanticIdentityRegistry.isContainer_FALSE.ordinal());} + public final Identity isContainer_NOTAPPLICABLE() {return createIdentityInKernel("isCont N/A" , "N/As", SemanticIdentityRegistry.isContainer_NOTAPPLICABLE.ordinal());} + public final Identity isContainer_TRUE() {return createIdentityInKernel("isCont TRUE" , "TRUEs", SemanticIdentityRegistry.isContainer_TRUE.ordinal());} + public final Identity isContainer_UNKNOWN() {return createIdentityInKernel("isCont UNKNOWN" , "UNKNOWNs", SemanticIdentityRegistry.isContainer_UNKNOWN.ordinal());} + public final Identity isElementOf() {return createIdentityInKernel("isElementOf" , "isElementOf", SemanticIdentityRegistry.isElementOf.ordinal());} + public final Identity isEmpty() {return createIdentityInKernel("isEmpty" , "isEmpty", SemanticIdentityRegistry.isEmpty.ordinal());} + public final Identity isEqualTo() {return createIdentityInKernel("isEqualTo" , "isEqualTo", SemanticIdentityRegistry.isEqualTo.ordinal());} + public final Identity isEqualToRepresentation() {return createIdentityInKernel("isEqualToRepresentation" , "isEqualToRepresentation", SemanticIdentityRegistry.isEqualToRepresentation.ordinal());} + public final Identity isExternal() {return createIdentityInKernel("isExternal" , "isExternal", SemanticIdentityRegistry.isExternal.ordinal());} + public final Identity isInformation() {return createIdentityInKernel("isInformation" , "isInformation", SemanticIdentityRegistry.isInformation.ordinal());} + public final Identity isLocalSuperSetOf() {return createIdentityInKernel("isLocalSuperSetOf" , "isLocalSuperSetOf", SemanticIdentityRegistry.isLocalSuperSetOf.ordinal());} + public final Identity isNavigable() {return createIdentityInKernel("is navigable" , "are navigable", SemanticIdentityRegistry.isNavigable.ordinal());} + public final Identity isNavigable_FALSE() {return createIdentityInKernel("isNav FALSE" , "FALSEs", SemanticIdentityRegistry.isNavigable_FALSE.ordinal());} + public final Identity isNavigable_NOTAPPLICABLE() {return createIdentityInKernel("isNav N/A" , "N/As", SemanticIdentityRegistry.isNavigable_NOTAPPLICABLE.ordinal());} + public final Identity isNavigable_TRUE() {return createIdentityInKernel("isNav TRUE" , "TRUEs", SemanticIdentityRegistry.isNavigable_TRUE.ordinal());} + public final Identity isNavigable_UNKNOWN() {return createIdentityInKernel("isNav UNKNOWN" , "UNKNOWNs", SemanticIdentityRegistry.isNavigable_UNKNOWN.ordinal());} + public final Identity isSuperSetOf() {return createIdentityInKernel("isSuperSetOf" , "isSuperSetOf", SemanticIdentityRegistry.isSuperSetOf.ordinal());} + + // the size of the kernel in terms of the number of UUID that have been assigned + public int kernelComplexity() { + int complexity = 0; + for (int i=0; i < this.inMemoryIdentities.size(); i++) { + final Identity iIdentity = (Identity) this.inMemoryIdentities.getValue(i); + if (uUIDReservoir.isPartOfKernel(iIdentity.uniqueRepresentationReference())) { + complexity = complexity+1; + } + } + return complexity; + } + public final Identity kernelDefect() {return createIdentityInKernel("kernel defect - this should never happen" , "kernelDefects", SemanticIdentityRegistry.kernelDefect.ordinal());} + public final Identity kernelDefect_KernelHasReachedAnIllegalState() {return createIdentityInKernel("kernel CONSTRAINTVIOLATION" , "the Gmodel kernel has reached an illegal state", SemanticIdentityRegistry.kernelDefect_KernelHasReachedAnIllegalState.ordinal());} + + public final Identity lastIndexOf() {return createIdentityInKernel("lastIndexOf" , "lastIndexOf", SemanticIdentityRegistry.lastIndexOf.ordinal());} + public final Identity link() {return createIdentityInKernel("link" , "links", SemanticIdentityRegistry.link.ordinal());} + public final Identity listIterator() {return createIdentityInKernel("listIterator" , "listIterator", SemanticIdentityRegistry.listIterator.ordinal());} + public final Identity listIteratorInt() {return createIdentityInKernel("listIterator(int)" , "listIterator(int)", SemanticIdentityRegistry.listIteratorInt.ordinal());} + public final Identity localRootSuperSetOf() {return createIdentityInKernel("localRootSuperSetOf" , "localRootSuperSetOf", SemanticIdentityRegistry.localRootSuperSetOf.ordinal());} + + public final Identity maxCardinality() {return createIdentityInKernel("max cardinality" , "max cardinalities", SemanticIdentityRegistry.maxCardinality.ordinal());} + public final Identity maxCardinality_0() {return createIdentityInKernel("0]" , "0s]", SemanticIdentityRegistry.maxCardinality_0.ordinal());} + public final Identity maxCardinality_1() {return createIdentityInKernel("1]" , "1s]", SemanticIdentityRegistry.maxCardinality_1.ordinal());} + public final Identity maxCardinality_2() {return createIdentityInKernel("2]" , "2s]", SemanticIdentityRegistry.maxCardinality_2.ordinal());} + public final Identity maxCardinality_n() {return createIdentityInKernel("*]" , "*s]", SemanticIdentityRegistry.maxCardinality_n.ordinal());} + public final Identity maxCardinality_NOTAPPLICABLE() {return createIdentityInKernel("max N/A" , "N/As", SemanticIdentityRegistry.maxCardinality_NOTAPPLICABLE.ordinal());} + public final Identity maxCardinality_UNKNOWN() {return createIdentityInKernel("max UNKNOWN" , "UNKNOWNs", SemanticIdentityRegistry.maxCardinality_UNKNOWN.ordinal());} + public final Identity maxSearchSpaceDepth() {return createIdentityInKernel("maxSearchSpaceDepth" , "maxSearchSpaceDepth", SemanticIdentityRegistry.maxSearchSpaceDepth.ordinal());} + public final Identity minCardinality() {return createIdentityInKernel("min cardinality" , "min cardinalities", SemanticIdentityRegistry.minCardinality.ordinal());} + public final Identity minCardinality_0() {return createIdentityInKernel("[0" , "[0s", SemanticIdentityRegistry.minCardinality_0.ordinal());} + public final Identity minCardinality_1() {return createIdentityInKernel("[1" , "[1s", SemanticIdentityRegistry.minCardinality_1.ordinal());} + public final Identity minCardinality_2() {return createIdentityInKernel("[2" , "[2s", SemanticIdentityRegistry.minCardinality_2.ordinal());} + public final Identity minCardinality_n() {return createIdentityInKernel("[*" , "[*s", SemanticIdentityRegistry.minCardinality_n.ordinal());} + public final Identity minCardinality_NOTAPPLICABLE() {return createIdentityInKernel("min N/A" , "N/As", SemanticIdentityRegistry.minCardinality_NOTAPPLICABLE.ordinal());} + public final Identity minCardinality_UNKNOWN() {return createIdentityInKernel("min UNKNOWN" , "UNKNOWNs", SemanticIdentityRegistry.minCardinality_UNKNOWN.ordinal());} + + public final Identity name() {return createIdentityInKernel("name" , "name", SemanticIdentityRegistry.name.ordinal());} + + public final Identity orderedPair() {return createIdentityInKernel("ordered pair" , "ordered pairs", SemanticIdentityRegistry.orderedPair.ordinal());} + public final Identity orderedSet() {return createIdentityInKernel("ordered set" , "ordered sets", SemanticIdentityRegistry.orderedSet.ordinal());} + + public final Identity parameter() {return createIdentityInKernel("parameter" , "parameters", SemanticIdentityRegistry.parameter.ordinal());} + public final Identity pluralName() {return createIdentityInKernel("pluralName" , "pluralName", SemanticIdentityRegistry.pluralName.ordinal());} + public final Identity queries() {return createIdentityInKernel("queries" , "queries", SemanticIdentityRegistry.queries.ordinal());} + public final Identity query() {return createIdentityInKernel("query" , "queries", SemanticIdentityRegistry.query.ordinal());} + public final Identity queryFunction() {return createIdentityInKernel("query function" , "querie functions", SemanticIdentityRegistry.queryFunction.ordinal());} + // only for use in the context of deserialization! + public Identity reconstituteSemanticIdentity(final String name, final String pluralName, final UUID identifier, final UUID uniqueRepresentationReference) { + return new IdentityImpl(name, pluralName, identifier, uniqueRepresentationReference); + } + public final Identity referencedSemanticRole() {return identityFactory.createIdentityInKernel("referenced semantic role", "referenced semantic roles", SemanticIdentityRegistry.referencedSemanticRole.ordinal());} + public final Identity referencingSemanticRole() {return identityFactory.createIdentityInKernel("referencing semantic role", "referencing semantic roles", SemanticIdentityRegistry.referencingSemanticRole.ordinal());} + public final Identity removeElement() {return createIdentityInKernel("removeElement" , "removeElement", SemanticIdentityRegistry.removeElement.ordinal());} + public final Identity removeFromCommands() {return createIdentityInKernel("removeFromCommands" , "removeFromCommands", SemanticIdentityRegistry.removeFromCommands.ordinal());} + public final Identity removeFromQueries() {return createIdentityInKernel("removeFromQueries" , "removeFromQueries", SemanticIdentityRegistry.removeFromQueries.ordinal());} + public final Identity removeFromValues() {return createIdentityInKernel("removeFromValues" , "removeFromValues", SemanticIdentityRegistry.removeFromValues.ordinal());} + public final Identity removeFromVariables() {return createIdentityInKernel("removeFromVariables" , "removeFromVariables", SemanticIdentityRegistry.removeFromVariables.ordinal());} + // to reuse an existing SemanticIdentity + public Identity reuseSemanticIdentity(final Identity semanticIdentity) { + return new IdentityImpl(semanticIdentity); + } + + public final Identity semanticDomain() {return createIdentityInKernel("semantic domain" , "semantic domain", SemanticIdentityRegistry.semanticDomain.ordinal());} + public final Identity semanticErr() {return createIdentityInKernel("semantic error - attempt to violate Gmodel semantics" , "semantic errors", SemanticIdentityRegistry.semanticErr.ordinal());} + public final Identity semanticErr_AddAbstractIsOnlyValidForAbstractVertexFlavor() {return createIdentityInKernel("addAbstract(category, semanticIdentity) is only valid for abstract VertexFlavored Instances" , "addConcrete(category, semanticIdentity) is only valid for abstract VertexFlavored Instances", SemanticIdentityRegistry.semanticErr_AddAbstractIsOnlyValidForAbstractVertexFlavor.ordinal());} + public final Identity semanticErr_AddConcreteIsOnlyValidForConcreteVertexFlavor() {return createIdentityInKernel("addConcrete(category, semanticIdentity) is only valid for concrete VertexFlavored Instances" , "addConcrete(category, semanticIdentity) is only valid for concrete VertexFlavored Instances", SemanticIdentityRegistry.semanticErr_AddConcreteIsOnlyValidForConcreteVertexFlavor.ordinal());} + public final Identity semanticErr_ASetWithThisIdentityAndRepresentationIsAlreadyLoaded() {return createIdentityInKernel("attempt to ceate a second copy of a set in memory","a set with this identity and representation is already loaded", SemanticIdentityRegistry.semanticErr_ASetWithThisIdentityAndRepresentationIsAlreadyLoaded.ordinal());} + public final Identity semanticErr_GraphGraphCantBeModified() {return createIdentityInKernel("Graph.graph is the representation of the Gmodel kernel and can't be modified" , "Graph.graph is the representation of the Gmodel kernel and can't be modified", SemanticIdentityRegistry.semanticErr_GraphGraphCantBeModified.ordinal());} + public final Identity semanticErr_GraphsCantBeDecommissioned() {return createIdentityInKernel("Graphs are transient and can't be decommissioned" , "Graphs are transient and can't be decommissioned", SemanticIdentityRegistry.semanticErr_GraphsCantBeDecommissioned.ordinal());} + public final Identity semanticErr_LinkIsNotApplicable() {return createIdentityInKernel("link(isInformation, fromInstance, toInstance) is NOTAPPLICABLE" , "link(isInformation, fromInstance, toInstance) is only applicable when the isInformation is of visibility, edgeTrace, or generalizationReference flavor", SemanticIdentityRegistry.semanticErr_LinkIsNotApplicable.ordinal());} + public final Identity semanticErr_maxFromCardinalityIsIllegal() {return createIdentityInKernel("maximumFromCardinality is illegal" , "maximumFromCardinality is illegal", SemanticIdentityRegistry.semanticErr_maxFromCardinalityIsIllegal.ordinal());} + public final Identity semanticErr_maxFromCardinalityIsOne() {return createIdentityInKernel("maximumFromCardinality is 1" , "maximumFromCardinality is 1", SemanticIdentityRegistry.semanticErr_maxFromCardinalityIsOne.ordinal());} + public final Identity semanticErr_maxFromCardinalityIsTwo() {return createIdentityInKernel("maximumFromCardinality is 2" , "maximumFromCardinality is 2", SemanticIdentityRegistry.semanticErr_maxFromCardinalityIsTwo.ordinal());} + public final Identity semanticErr_maxToCardinalityIsIllegal() {return createIdentityInKernel("maximumToCardinality is illegal" , "maximumToCardinality is illegal", SemanticIdentityRegistry.semanticErr_maxToCardinalityIsIllegal.ordinal());} + public final Identity semanticErr_maxToCardinalityIsOne() {return createIdentityInKernel("maximumToCardinality is 1" , "maximumToCardinality is 1", SemanticIdentityRegistry.semanticErr_maxToCardinalityIsOne.ordinal());} + public final Identity semanticErr_maxToCardinalityIsTwo() {return createIdentityInKernel("maximumToCardinality is 2" , "maximumToCardinality is 2", SemanticIdentityRegistry.semanticErr_maxToCardinalityIsTwo.ordinal());} + public final Identity semanticErr_OnlyEdgeEndFlavoredInstancesHaveEdgeEndVertex() {return createIdentityInKernel("operation is NOTAPPLICABLE" , "Only edgeEnds instances have an edgeEndVertex", SemanticIdentityRegistry.semanticErr_OnlyEdgeEndFlavoredInstancesHaveEdgeEndVertex.ordinal());} + public final Identity semanticErr_OnlyEdgeEndFlavoredInstancesHaveIsContainer() {return createIdentityInKernel("operation is NOTAPPLICABLE" , "Only edgeEnds instances have an isContainer value", SemanticIdentityRegistry.semanticErr_OnlyEdgeEndFlavoredInstancesHaveIsContainer.ordinal());} + public final Identity semanticErr_OnlyEdgeEndFlavoredInstancesHaveIsNavigable() {return createIdentityInKernel("operation is NOTAPPLICABLE" , "Only edgeEnds instances have an isNavigable value", SemanticIdentityRegistry.semanticErr_OnlyEdgeEndFlavoredInstancesHaveIsNavigable.ordinal());} + public final Identity semanticErr_OnlyEdgeEndFlavoredInstancesHaveMaxCardinality() {return createIdentityInKernel("operation is NOTAPPLICABLE" , "Only edgeEnds instances have a maxCardinality value", SemanticIdentityRegistry.semanticErr_OnlyEdgeEndFlavoredInstancesHaveMaxCardinality.ordinal());} + public final Identity semanticErr_OnlyEdgeEndFlavoredInstancesHaveMinCardinality() {return createIdentityInKernel("operation is NOTAPPLICABLE" , "Only edgeEnds instances have a minCardinality value", SemanticIdentityRegistry.semanticErr_OnlyEdgeEndFlavoredInstancesHaveMinCardinality.ordinal());} + public final Identity semanticErr_OnlyEdgeFlavoredInstancesHaveConnectedInstances() {return createIdentityInKernel("operation is NOTAPPLICABLE" , "Only edgeFlavored instances have connected to/fromInstances", SemanticIdentityRegistry.semanticErr_OnlyEdgeFlavoredInstancesHaveConnectedInstances.ordinal());} + public final Identity semanticErr_OnlyEdgeFlavoredInstancesHaveConnectedRoles() {return createIdentityInKernel("operation is NOTAPPLICABLE" , "Only edgeFlavored instances have connected to/fromRoles", SemanticIdentityRegistry.semanticErr_OnlyEdgeFlavoredInstancesHaveConnectedRoles.ordinal());} + public final Identity semanticErr_OnlyEdgeFlavoredInstancesHaveEdgeEndFlavors() {return createIdentityInKernel("operation is NOTAPPLICABLE" , "Only edgeFlavored instances have edgeEndFlavors", SemanticIdentityRegistry.semanticErr_OnlyEdgeFlavoredInstancesHaveEdgeEndFlavors.ordinal());} + public final Identity semanticErr_OnlyEdgeTraceFlavoredInstancesHaveAbstraction() {return createIdentityInKernel("operation is NOTAPPLICABLE" , "Only edgeTraceFlavored instances have an abstraction", SemanticIdentityRegistry.semanticErr_OnlyEdgeTraceFlavoredInstancesHaveAbstraction.ordinal());} + public final Identity semanticErr_OnlyEdgeTraceFlavoredInstancesHaveDetail() {return createIdentityInKernel("operation is NOTAPPLICABLE" , "Only edgeTraceFlavored instances have a detail", SemanticIdentityRegistry.semanticErr_OnlyEdgeTraceFlavoredInstancesHaveDetail.ordinal());} + public final Identity semanticErr_OnlyInstancesHaveIsAbstract() {return createIdentityInKernel("operation is NOTAPPLICABLE" , "Only instances have an isAbstract value", SemanticIdentityRegistry.semanticErr_OnlyInstancesHaveIsAbstract.ordinal());} + public final Identity semanticErr_OnlySuperSetReferenceFlavoredInstancesHaveSubSet() {return createIdentityInKernel("operation is NOTAPPLICABLE" , "Only generalizationReferenceFlavored instances have a specialization", SemanticIdentityRegistry.semanticErr_OnlySuperSetReferenceFlavoredInstancesHaveSubSet.ordinal());} + public final Identity semanticErr_OnlySuperSetReferenceFlavoredInstancesHaveSuperSet() {return createIdentityInKernel("operation is NOTAPPLICABLE" , "Only generalizationReferenceFlavored instances have a generalization", SemanticIdentityRegistry.semanticErr_OnlySuperSetReferenceFlavoredInstancesHaveSuperSet.ordinal());} + public final Identity semanticErr_OnlyTransportContainerCanHaveContentElements() {return createIdentityInKernel("only transport container can have content elements" , "only transport container can have content elements", SemanticIdentityRegistry.semanticErr_OnlyTransportContainerCanHaveContentElements.ordinal());} + public final Identity semanticErr_OnlyVisibilityFlavoredInstancesHaveFromSubGraph() {return createIdentityInKernel("operation is NOTAPPLICABLE" , "Only visibilityFlavored instances have a fromSubGraph", SemanticIdentityRegistry.semanticErr_OnlyVisibilityFlavoredInstancesHaveFromSubGraph.ordinal());} + public final Identity semanticErr_OnlyVisibilityFlavoredInstancesHaveToSubGraph() {return createIdentityInKernel("operation is NOTAPPLICABLE" , "Only visibilityFlavored instances have a toSubGraph", SemanticIdentityRegistry.semanticErr_OnlyVisibilityFlavoredInstancesHaveToSubGraph.ordinal());} + public final Identity semanticErr_operationIsIllegalOnThisInstance() {return createIdentityInKernel("operation is illegal on this instance" , "operation is illegal on this instance", SemanticIdentityRegistry.semanticErr_operationIsIllegalOnThisInstance.ordinal());} + public final Identity semanticErr_operationIsNotYetImplemented() {return createIdentityInKernel("operation is not yet implemented" , "operation is not yet implemented", SemanticIdentityRegistry.semanticErr_operationIsNotYetImplemented.ordinal());} + public final Identity semanticErr_TargetIsNotWithinVisibility() {return createIdentityInKernel("target of link is NOTWITHINVISIBILITY" , "the target of an AbstractEdgeFlavored link must be within the range of visibilities defined in the category of the source", SemanticIdentityRegistry.semanticErr_TargetIsNotWithinVisibility.ordinal());} + public final Identity semanticErr_ThisSetIsNotAvailableInMemory() {return createIdentityInKernel("this set is not available in memory","this set has not been loaded", SemanticIdentityRegistry.semanticErr_ThisSetIsNotAvailableInMemory.ordinal());} + public final Identity semanticErr_ValueIsNotAnInstanceOfVariableOfCategoryOfInstance() {return createIdentityInKernel("the Value is not an instance of a Variable of the isInformation of this Set" , "the Value is not an instance of a Variable of the isInformation of this Set", SemanticIdentityRegistry.semanticErr_ValueIsNotAnInstanceOfVariableOfCategoryOfInstance.ordinal());} + public final Identity semanticErr_ValueIsNotAssigned() {return createIdentityInKernel("property is NOTASSIGNED" , "Property has not been assigned", SemanticIdentityRegistry.semanticErr_ValueIsNotAssigned.ordinal());} + public final Identity semanticErr_VariableCantBeRemovedArtifactStillHasInstances() {return createIdentityInKernel("Variable can't be removed, container still has instances" , "Variable can't be removed, container still has instances", SemanticIdentityRegistry.semanticErr_VariableCantBeRemovedArtifactStillHasInstances.ordinal());} + public final Identity semanticIdentity() {return createIdentityInKernel("semantic identity","semantic identities", SemanticIdentityRegistry.semanticIdentity.ordinal());} + public final Identity semanticIdentitySet() {return createIdentityInKernel("semantic identity set","semantic identity sets", SemanticIdentityRegistry.semanticIdentitySet.ordinal());} + public final Identity semanticRole() {return createIdentityInKernel("semantic role","semantic roles", SemanticIdentityRegistry.semanticRole.ordinal());} + public final Identity set() {return identityFactory.createIdentityInKernel("set", "sets", SemanticIdentityRegistry.set.ordinal());} + public final Identity setMaintenanceCommand() {return createIdentityInKernel("setMaintenanceCommand" , "setMaintenanceCommand", SemanticIdentityRegistry.setMaintenanceCommand.ordinal());} + public final Identity setValue() {return createIdentityInKernel("setValue" , "setValue", SemanticIdentityRegistry.setPropertyValue.ordinal());} + public final Identity size() {return createIdentityInKernel("size" , "size", SemanticIdentityRegistry.size.ordinal());} + public final Identity subGraph() {return createIdentityInKernel("subGraph" , "subGraphs", SemanticIdentityRegistry.subGraph.ordinal());} + public final Identity superSetReference() {return createIdentityInKernel("super set reference" , "super set references", SemanticIdentityRegistry.superSetReference.ordinal());} + + public final Identity target() {return createIdentityInKernel("target" , "targets", SemanticIdentityRegistry.target.ordinal());} + public final Identity technicalName() {return createIdentityInKernel("technicalName" , "technicalName", SemanticIdentityRegistry.technicalName.ordinal());} + public final Identity to() {return createIdentityInKernel("to" , "to", SemanticIdentityRegistry.to.ordinal());} + public final Identity toArray() {return createIdentityInKernel("toArray" , "toArray", SemanticIdentityRegistry.toArray.ordinal());} + public final Identity toArrayInstance() {return createIdentityInKernel("toArray(Set)" , "toArray(Set)", SemanticIdentityRegistry.toArrayInstance.ordinal());} + public final Identity toEdgeEnd() {return createIdentityInKernel("toEdgeEnd" , "toEdgeEnd", SemanticIdentityRegistry.toEdgeEnd.ordinal());} + + public final Identity union() {return createIdentityInKernel("union" , "union", SemanticIdentityRegistry.union.ordinal());} + + public final Identity value() {return createIdentityInKernel("value" , "value", SemanticIdentityRegistry.value.ordinal());} + public final Identity values() {return createIdentityInKernel("values" , "values", SemanticIdentityRegistry.values.ordinal());} + public final Identity variabilityDimension() {return createIdentityInKernel("variability dimension", "variability dimensions", SemanticIdentityRegistry.variabilityDimension.ordinal());} + public final Identity variables() {return createIdentityInKernel("variables" , "variables", SemanticIdentityRegistry.variables.ordinal());} + public final Identity variantDisjunctSemanticIdentitySet() {return createIdentityInKernel("variant disjunct semantic identity set","variant disjunct semantic identity sets", SemanticIdentityRegistry.variantDisjunctSemanticIdentitySet.ordinal());} + public final Identity variantIdentifier() {return createIdentityInKernel("variant identifier", "variant identifiers", SemanticIdentityRegistry.variantIdentifier.ordinal());} + public final Identity vertex() {return createIdentityInKernel("vertex" , "vertices", SemanticIdentityRegistry.vertex.ordinal());} + public final Identity visibility() {return createIdentityInKernel("visibility" , "visibilitis", SemanticIdentityRegistry.visibility.ordinal());} + public final Identity visibleArtifactsForSubGraph() {return createIdentityInKernel("visibleArtifactsForSubGraph" , "visibleArtifactsForSubGraph", SemanticIdentityRegistry.visibleArtifactsForSubGraph.ordinal());} + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/IdentityImpl.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/IdentityImpl.java new file mode 100644 index 0000000..4917db2 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/IdentityImpl.java @@ -0,0 +1,206 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.core; + +import java.util.UUID; + +import org.gmodel.Identity; +import org.gmodel.Set; + +public class IdentityImpl implements Identity { + + private static UUIDReservoirForKernelGraph kernelIdentityReservoir; + private UUID identifier; + private UUID uniqueRepresentationReference; + private String name; + private String pluralName; + private String payload; + private boolean isPartOfUniversalArtifactConcept = false; + private String newName; + private String newPluralName; + + + public static void initialize(final UUIDReservoirForKernelGraph reservoir) { + kernelIdentityReservoir = reservoir; + } + + public IdentityImpl(final String name, final String pluralName, final int nameRegistryIndex) { + super(); + this.setName(name); + this.setPluralName(pluralName); + if (F_SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + this.setIdentifier(UUID.randomUUID()); + this.setUniqueRepresentationReference(identifier()); + if ((nameRegistryIndex == SemanticIdentityRegistry.anonymousInKernel.ordinal()) + || (nameRegistryIndex == SemanticIdentityRegistry.anonymous.ordinal()) ) { + this.setPluralName(identifier().toString()); + } + } else { + if (nameRegistryIndex == SemanticIdentityRegistry.anonymousInKernel.ordinal()) { + this.setIdentifier(kernelIdentityReservoir.getNextUUIDForAnonymousUse()); + this.setPluralName(identifier().toString()); + } else { + if (nameRegistryIndex > F_SemanticStateOfInMemoryModel.indexIsNotAvailable) { + if (F_SemanticStateOfInMemoryModel.semanticDomainIsInitialized()) { + this.setIdentifier(kernelIdentityReservoir.getExtendedJavaBootstrappingUUID(nameRegistryIndex)); + } else { + this.setIdentifier(kernelIdentityReservoir.getOpenSourceCoreUUID(nameRegistryIndex)); + } + } else { + this.setIdentifier(kernelIdentityReservoir.getNextUUIDForAnonymousUse()); + } + } + this.setUniqueRepresentationReference(identifier()); + } + } + public IdentityImpl(final Identity semanticIdentity) { + super(); + this.setName(semanticIdentity.name()); + this.setPluralName(semanticIdentity.pluralName()); + if (F_SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + this.setUniqueRepresentationReference(UUID.randomUUID()); + } else { + this.setUniqueRepresentationReference(kernelIdentityReservoir.getNextUUIDForAnonymousUse()); + } + this.setIdentifier(semanticIdentity.identifier()); + } + public IdentityImpl(final String name, final String pluralName, final UUID identifier, final UUID uniqueRepresentationReference) { + super(); + this.setIdentifier(identifier); + this.setUniqueRepresentationReference(uniqueRepresentationReference); + this.setName(name); + this.setPluralName(pluralName); + } + + /* Implementation of semantics */ + + public boolean isEqualToRepresentation(final Identity representation) { + if (this.uniqueRepresentationReference().equals(representation.uniqueRepresentationReference())) { + return true; + } else { + return false; + } + } + + public boolean isEqualTo(final Identity semanticIdentity) { + if (this.identifier().equals(semanticIdentity.identifier())) { + return true; + } else { + return false; + } + } + + public boolean isEqualTo(final Set property) { + if (this.identifier().equals(property.identity().identifier())) { + return true; + } else { + return false; + } + } + public UUID identifier() { + return identifier; + } + public UUID uniqueRepresentationReference() { + return uniqueRepresentationReference; + } + + public String name() { + return name; + } + + public String pluralName() { + return pluralName; + } + + public String technicalName() { + // simplistic implementation that can be refined + return name.replace(" ", "_").replace("-", "_").replace("?", "_").toLowerCase(); + } + + private void setIdentifier(final UUID id) { + identifier = id; + } + private void setUniqueRepresentationReference(final UUID uniqueRepresentationReference) { + this.uniqueRepresentationReference = uniqueRepresentationReference; + } + + private void setName(final String name) { + this.name = name; + } + + private void setPluralName(final String pluralName) { + this.pluralName = pluralName; + } + + public boolean isPartOfKernel() { + return kernelIdentityReservoir.isPartOfKernel(this.uniqueRepresentationReference); + } + + public String payload() { + return this.payload; + } + + public String setPayload(final String payload) { + this.payload = payload; + return null; + } + + public boolean isPartOfUniversalArtifactConcept() { + return isPartOfUniversalArtifactConcept; + } + + public void makePartOfUniversalArtifactConcept() { + this.isPartOfUniversalArtifactConcept = true; + } + public void assignNewName(final String newName) { + this.newName = newName; + } + public void assignNewPluralName(final String newPluralName) { + this.newPluralName = newPluralName; + } + + public void commitNewName() { + this.name = this.newName; + } + + public void commitNewPluralName() { + this.pluralName = this.newPluralName; + } + + public void rollbackNewName() { + this.newName = this.name; + } + + public void rollbackNewPluralName() { + this.newPluralName = this.pluralName; + } + + @Override + public String toString() { + return getClass().getSimpleName() + "< " + name + ": " + identifier + " >"; + } + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/KernelIdentities.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/KernelIdentities.java new file mode 100644 index 0000000..04c7759 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/KernelIdentities.java @@ -0,0 +1,223 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.core; + +import org.gmodel.Identity; + +/** + * {@link KernelIdentities} provides access to the SemanticIdentities + * that are used to construct the Instances and Properties of the Gmodel kernel. + */ +public interface KernelIdentities { + + Identity addAbstract() ; + Identity addConcrete() ; + Identity addElement() ; + Identity addToValues() ; + Identity addToVariables() ; + Identity allowableEdgeCategories() ; + Identity anonymous(); + + Identity booleanValue(); + + Identity category() ; + Identity command() ; + Identity commandFunction() ; + Identity complement() ; + Identity completion(); + Identity completion_successful(); + Identity container() ; + Identity containerCategory() ; + Identity contains() ; + Identity containsAll() ; + Identity containsEdgeFromOrTo() ; + + Identity decommission() ; + Identity directSuperSetOf() ; + + Identity edge(); + Identity edgeEnd(); + Identity edgeEnds() ; + Identity edgeTrace(); + Identity elementAdded(); + Identity elementRemoved(); + Identity elementsOfSemanticIdentitySet() ; + Identity event(); + Identity extractFirst(); + Identity extractSecond(); + Identity extractLast(); + Identity extractUniqueMatch(); + + Identity filter() ; + Identity filterFlavor() ; + Identity filterInstances() ; + Identity filterLinks() ; + Identity filterPolymorphic() ; + Identity flavor(); + Identity flavorCommandFunction() ; + Identity flavorQueryFunction() ; + Identity from() ; + Identity fromEdgeEnd() ; + Identity function() ; + + Identity get() ; + Identity graph(); + + Identity hasVisibilityOf() ; + + Identity identifier(); + Identity identity() ; + Identity indexOf() ; + Identity instantiateAbstract() ; + Identity instantiateConcrete() ; + Identity intersection() ; + Identity iqLogicValue(); + Identity is_FALSE(); + Identity is_NOTAPPLICABLE(); + Identity is_TRUE(); + Identity is_UNKNOWN(); + Identity isAbstract(); + Identity isAbstract_FALSE(); + Identity isAbstract_TRUE(); + Identity isALink() ; + Identity isASemanticIdentity() ; + Identity isContainer(); + Identity isContainer_FALSE(); + Identity isContainer_NOTAPPLICABLE(); + Identity isContainer_TRUE(); + Identity isContainer_UNKNOWN(); + Identity isElementOf() ; + Identity isEmpty() ; + Identity isEqualTo() ; + Identity isExternal() ; + Identity isInformation() ; + Identity isLocalSuperSetOf() ; + Identity isNavigable(); + Identity isNavigable_FALSE(); + Identity isNavigable_NOTAPPLICABLE(); + Identity isNavigable_TRUE(); + Identity isNavigable_UNKNOWN(); + Identity isSuperSetOf() ; + + Identity kernelDefect(); + Identity kernelDefect_KernelHasReachedAnIllegalState(); + + Identity lastIndexOf() ; + Identity link(); + Identity listIterator() ; + Identity listIteratorInt() ; + Identity localRootSuperSetOf() ; + + Identity maxCardinality(); + Identity maxCardinality_0(); + Identity maxCardinality_1(); + Identity maxCardinality_2(); + Identity maxCardinality_n(); + Identity maxCardinality_NOTAPPLICABLE(); + Identity maxCardinality_UNKNOWN(); + Identity maxSearchSpaceDepth(); + Identity minCardinality(); + Identity minCardinality_0(); + Identity minCardinality_1(); + Identity minCardinality_2(); + Identity minCardinality_n(); + Identity minCardinality_NOTAPPLICABLE(); + Identity minCardinality_UNKNOWN(); + + Identity name(); + + Identity orderedPair(); + Identity orderedSet(); + + Identity parameter() ; + Identity pluralName(); + + Identity query() ; + Identity queryFunction() ; + + Identity removeElement() ; + Identity removeFromValues() ; + Identity removeFromVariables() ; + + Identity semanticDomain(); + Identity semanticErr(); + Identity semanticErr_AddAbstractIsOnlyValidForAbstractVertexFlavor(); + Identity semanticErr_AddConcreteIsOnlyValidForConcreteVertexFlavor(); + Identity semanticErr_GraphGraphCantBeModified(); + Identity semanticErr_GraphsCantBeDecommissioned(); + Identity semanticErr_LinkIsNotApplicable(); + Identity semanticErr_maxFromCardinalityIsIllegal(); + Identity semanticErr_maxFromCardinalityIsOne(); + Identity semanticErr_maxFromCardinalityIsTwo(); + Identity semanticErr_maxToCardinalityIsIllegal(); + Identity semanticErr_maxToCardinalityIsOne(); + Identity semanticErr_maxToCardinalityIsTwo(); + Identity semanticErr_OnlyEdgeEndFlavoredInstancesHaveEdgeEndVertex(); + Identity semanticErr_OnlyEdgeEndFlavoredInstancesHaveIsContainer(); + Identity semanticErr_OnlyEdgeEndFlavoredInstancesHaveIsNavigable(); + Identity semanticErr_OnlyEdgeEndFlavoredInstancesHaveMaxCardinality(); + Identity semanticErr_OnlyEdgeEndFlavoredInstancesHaveMinCardinality(); + Identity semanticErr_OnlyEdgeFlavoredInstancesHaveConnectedInstances(); + Identity semanticErr_OnlyEdgeFlavoredInstancesHaveConnectedRoles(); + Identity semanticErr_OnlyEdgeFlavoredInstancesHaveEdgeEndFlavors(); + Identity semanticErr_OnlyEdgeTraceFlavoredInstancesHaveAbstraction(); + Identity semanticErr_OnlyEdgeTraceFlavoredInstancesHaveDetail(); + Identity semanticErr_OnlyInstancesHaveIsAbstract(); + Identity semanticErr_OnlySuperSetReferenceFlavoredInstancesHaveSubSet(); + Identity semanticErr_OnlySuperSetReferenceFlavoredInstancesHaveSuperSet(); + Identity semanticErr_OnlyTransportContainerCanHaveContentElements(); + Identity semanticErr_OnlyVisibilityFlavoredInstancesHaveFromSubGraph(); + Identity semanticErr_OnlyVisibilityFlavoredInstancesHaveToSubGraph(); + Identity semanticErr_operationIsIllegalOnThisInstance(); + Identity semanticErr_operationIsNotYetImplemented(); + Identity semanticErr_TargetIsNotWithinVisibility(); + Identity semanticErr_ThisSetIsNotAvailableInMemory(); + Identity semanticErr_ValueIsNotAnInstanceOfVariableOfCategoryOfInstance(); + Identity semanticErr_ValueIsNotAssigned(); + Identity semanticErr_VariableCantBeRemovedArtifactStillHasInstances(); + Identity setMaintenanceCommand() ; + Identity setValue() ; + Identity size() ; + Identity subGraph() ; + Identity superSetReference(); + + Identity target() ; + Identity technicalName(); + Identity to(); + Identity toArray() ; + Identity toArrayInstance() ; + Identity toEdgeEnd() ; + + Identity union() ; + + Identity value() ; + Identity values() ; + Identity variables() ; + Identity vertex(); + Identity visibility(); + Identity visibleArtifactsForSubGraph() ; + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/Link.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/Link.java new file mode 100644 index 0000000..5239a6d --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/Link.java @@ -0,0 +1,77 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.core; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.G.coreSets; +import static org.gmodel.core.F_Instantiation.identityFactory; + +import org.gmodel.Identity; +import org.gmodel.Set; + +public class Link extends Graph { + + /* Reify the Gmodel AbstractEdge concept */ + protected static final Link link = new Link(); + + protected Link(final Identity semanticIdentity, final Set category) { + super(semanticIdentity, category); + } + protected Link(final Identity semanticIdentity) { + super(semanticIdentity); + } + private Link() { + super(identityFactory.link()); + this.addToValues(coreSets.isAbstract_TRUE); + this.addFlavorQueries(); + } + + /* Implementation of semantics */ + + @Override + public Set container() { + if (this.isEqualTo(link)) { + return Graph.graph; + } else { + return null; // null case is (and must be) overriden in sub classes + } + } + @Override + public Set flavor() { + return coreGraphs.link; + } + + /** + * LinkFlavor queries + */ + @Override + protected void addFlavorQueries() { + super.addFlavorQueries(); + this.addToQueries(coreSets.from); + this.addToQueries(coreSets.isExternal); + this.addToQueries(coreSets.to); + } +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/LinkConstraints.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/LinkConstraints.java new file mode 100644 index 0000000..8b1129d --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/LinkConstraints.java @@ -0,0 +1,289 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.core; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.G.coreSets; + +import org.gmodel.Identity; +import org.gmodel.SemanticStateOfInMemoryModel; +import org.gmodel.Set; +import org.gmodel.api.models.SemanticDomain; + +/** + * {@link LinkConstraints} implements all instantiation semantics that are not enforced within the kernel (instantiation level 0) + * but that must be enforced for all other Instances/artifacts (instantiation level n, with n > 0) + * + * The semantics enforced in LinkConstraints amount to assertions/constraints that apply to all use cases that involve Gmodel. + * + * An extension of the the Gmodel meta model may necessitate the creation of a further Shell in case + * specific semantics (that complement the LinkConstraints semantics) apply to the additional meta model elements. + * Such additional Shells must be built on top of LinkConstraints, and must never access the Gmodel kernel directly. + */ +public final class LinkConstraints { + + private static final Set vertex = coreGraphs.vertex; + private static final Set edgeEnd = coreGraphs.edgeEnd; + private static final Set link = coreGraphs.link; + private static final Set edge = coreGraphs.edge; + private static final Set superSetReference = coreGraphs.superSetReference; + private static final Set visibility = coreGraphs.visibility; + private static final Set graph = coreGraphs.graph; + + private Identity firstEdgeEndIdentity; + private Set firstSet; + private Set firstMinCardinality; + private Set firstMaxCardinality; + private Set firstIsNavigable; + private Set firstIsContainer; + private Identity secondEdgeEndIdentity; + private Set secondSet; + private Set secondMinCardinality; + private Set secondMaxCardinality; + private Set secondIsNavigable; + private Set secondIsContainer; + private Set category; + private Identity edgeFlavoredIdentity; + + + public static Set raiseError(final Identity semanticIdentity, final Set category) { + return F_InstantiationImpl.raiseError(semanticIdentity, category); + } + + public static Set link(final Set category, + final Identity edgeFlavoredIdentity, + final Identity firstEdgeEndIdentity, + final Set firstSet, + final Set firstMinCardinality, + final Set firstMaxCardinality, + final Set firstIsNavigable, + final Set firstIsContainer, + final Identity secondEdgeEndIdentity, + final Set secondSet, + final Set secondMinCardinality, + final Set secondMaxCardinality, + final Set secondIsNavigable, + final Set secondIsContainer + ) { + final LinkConstraints input = new LinkConstraints(); + input.firstEdgeEndIdentity = firstEdgeEndIdentity; + input.firstSet = firstSet; + input.firstMinCardinality = firstMinCardinality; + input.firstMaxCardinality = firstMaxCardinality; + input.firstIsNavigable = firstIsNavigable; + input.firstIsContainer = firstIsContainer; + input.secondEdgeEndIdentity = secondEdgeEndIdentity; + input.secondSet = secondSet; + input.secondMinCardinality = secondMinCardinality; + input.secondMaxCardinality = secondMaxCardinality; + input.secondIsNavigable = secondIsNavigable; + input.secondIsContainer = secondIsContainer; + input.category = category; + input.edgeFlavoredIdentity = edgeFlavoredIdentity; + + /* code to handle reconstitution of links involving semantic roles: START*/ + if (SemanticStateOfInMemoryModel.semanticDomainIsInitialized()) { + // TODO Add relevant kinds of edges that appear in SemanticDomain! + if (category.isEqualTo(SemanticDomain.semanticRole_to_equivalenceClass)) { + return input.linkSemanticIdentities(); + } + } + /* code to handle reconstitution of links involving semantic roles: END*/ + + if (category.isEqualTo(edge)) { + if ((firstSet.category().isEqualTo(graph)) + || (firstSet.category().isEqualTo(link)) + || (firstSet.category().isEqualTo(edge)) + || (firstSet.category().isEqualTo(edgeEnd)) + || (firstSet.category().isEqualTo(superSetReference)) + || (firstSet.category().isEqualTo(visibility)) + || (firstSet.category().isEqualTo(vertex)) + || (((coreGraphs.vertex.isEqualTo(firstSet.category())) || (coreGraphs.vertex.isSuperSetOf(firstSet.category())).isEqualTo(coreSets.is_TRUE)) + && + ((coreGraphs.vertex.isEqualTo(secondSet.category())) || (coreGraphs.vertex.isSuperSetOf(secondSet.category())).isEqualTo(coreSets.is_TRUE))) + ) {return input.addEdge();} else {return F_InstantiationImpl.raiseError(coreSets.semanticErr_LinkIsNotApplicable.identity(), coreSets.semanticErr);} + } else { + final Set fromCategory = category.from(); + final Set toCategory = category.to(); + if ( + ((fromCategory.isEqualTo(firstSet.category())) || (fromCategory.isSuperSetOf(firstSet.category())).isEqualTo(coreSets.is_TRUE)) + && + ( + (toCategory.isEqualTo(secondSet.category())) + || (toCategory.isSuperSetOf(secondSet.category())).isEqualTo(coreSets.is_TRUE) + || (toCategory.isEqualTo(secondSet.flavor())) + //|| (toCategory.isEqualTo(coreGraphs.graph))) + || (toCategory.isEqualTo(coreGraphs.graph)) + || ((SemanticDomain.semanticIdentity.isSuperSetOf(toCategory.category())).isEqualTo(coreSets.is_TRUE)) + || (((SemanticDomain.semanticIdentity.isSuperSetOf(secondSet)).isEqualTo(coreSets.is_TRUE)) && (secondSet.isElementOf(toCategory).isEqualTo(coreSets.is_TRUE))) + + ) + ) { + final int fromInstanceCount = firstSet.container().filterPolymorphic(category).filterByLinkedFrom(firstSet).size(); + final int toInstanceCount = firstSet.container().filterPolymorphic(category).filterByLinkedTo(secondSet).size(); + + if (category.fromEdgeEnd().value(coreSets.maxCardinality).isEqualTo(coreSets.maxCardinality_1)) { + if (toInstanceCount > 0) {return F_InstantiationImpl.raiseError(coreSets.semanticErr_maxFromCardinalityIsOne.identity(), coreSets.semanticErr);} + } + if (category.fromEdgeEnd().value(coreSets.maxCardinality).isEqualTo(coreSets.maxCardinality_2)) { + if (toInstanceCount > 1) {return F_InstantiationImpl.raiseError(coreSets.semanticErr_maxFromCardinalityIsTwo.identity(), coreSets.semanticErr);} + } + if (category.fromEdgeEnd().value(coreSets.maxCardinality).isEqualTo(coreSets.maxCardinality_NOTAPPLICABLE) + || category.fromEdgeEnd().value(coreSets.maxCardinality).isEqualTo(coreSets.maxCardinality_UNKNOWN)) { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_maxFromCardinalityIsIllegal.identity(), coreSets.semanticErr); + } + if (category.toEdgeEnd().value(coreSets.maxCardinality).isEqualTo(coreSets.maxCardinality_1)) { + if (fromInstanceCount > 0) {return F_InstantiationImpl.raiseError(coreSets.semanticErr_maxToCardinalityIsOne.identity(), coreSets.semanticErr);} + } + if (category.toEdgeEnd().value(coreSets.maxCardinality).isEqualTo(coreSets.maxCardinality_2)) { + if (fromInstanceCount > 1) {return F_InstantiationImpl.raiseError(coreSets.semanticErr_maxToCardinalityIsTwo.identity(), coreSets.semanticErr);} + } + if (category.toEdgeEnd().value(coreSets.maxCardinality).isEqualTo(coreSets.maxCardinality_NOTAPPLICABLE) + || category.toEdgeEnd().value(coreSets.maxCardinality).isEqualTo(coreSets.maxCardinality_UNKNOWN)) { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_maxToCardinalityIsIllegal.identity(), coreSets.semanticErr); + } + return input.addEdge(); + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_LinkIsNotApplicable.identity(), coreSets.semanticErr); + } + } + } + + public static Set link(final Set category, final Set fromInstance, final Set toInstance) { + if (category.flavor().isEqualTo(superSetReference)) { + return F_Instantiation.addSuperSetReference(fromInstance, toInstance, category); + } else if (category.flavor().isEqualTo(visibility)) { + return F_Instantiation.addVisibility(fromInstance, toInstance); + } else { + return raiseError(coreSets.semanticErr_LinkIsNotApplicable.identity(), coreSets.semanticErr); + } + } + /* only used for reconstitution during deserialisation */ + public static Set reconstituteLink(final Set category, final Identity identity, final Set fromInstance, final Set toInstance) { + if (category.flavor().isEqualTo(superSetReference)) { + return F_Instantiation.reconstituteSuperSetReference(identity, fromInstance, toInstance, category); + } else if (category.flavor().isEqualTo(visibility)) { + return F_Instantiation.reconstituteVisibility(identity, fromInstance, toInstance); + } else { + return raiseError(coreSets.semanticErr_LinkIsNotApplicable.identity(), coreSets.semanticErr); + } + } + + private Set linkSemanticIdentities() { + // TODO Add relevant constraints for edges in Semantic Domain! + return this.addEdge(); + } + + public static Set isAllowableEdgeFlavoredLinkCategory(final Set category, + final Set firstSet, + final Set secondSet + ) { + + if (category.isEqualTo(edge)) { + if ( (firstSet.category().isEqualTo(graph)) + || (firstSet.category().isEqualTo(link)) + || (firstSet.category().isEqualTo(edge)) + || (firstSet.category().isEqualTo(edgeEnd)) + || (firstSet.category().isEqualTo(superSetReference)) + || (firstSet.category().isEqualTo(visibility)) + || (firstSet.category().isEqualTo(vertex)) + || (((coreGraphs.vertex.isEqualTo(firstSet.category())) || (coreGraphs.vertex.isSuperSetOf(firstSet.category())).isEqualTo(coreSets.is_TRUE)) + && + ((coreGraphs.vertex.isEqualTo(secondSet.category())) || (coreGraphs.vertex.isSuperSetOf(secondSet.category())).isEqualTo(coreSets.is_TRUE))) + ) { + return coreSets.is_TRUE;} else {/* semanticErr_LinkIsNotApplicable */ return coreSets.is_FALSE;} + } else { + final Set fromCategory = category.from(); + final Set toCategory = category.to(); + + if ( + ((fromCategory.isEqualTo(firstSet.category())) || (fromCategory.isSuperSetOf(firstSet.category())).isEqualTo(coreSets.is_TRUE)) + && + ( + (toCategory.isEqualTo(secondSet.category())) + || (toCategory.isSuperSetOf(secondSet.category())).isEqualTo(coreSets.is_TRUE) + || (toCategory.isEqualTo(secondSet.flavor())) + //|| (toCategory.isEqualTo(coreGraphs.graph))) + || (toCategory.isEqualTo(coreGraphs.graph)) + || ((SemanticDomain.semanticIdentity.isSuperSetOf(toCategory.category())).isEqualTo(coreSets.is_TRUE)) + || (((SemanticDomain.semanticIdentity.isSuperSetOf(secondSet)).isEqualTo(coreSets.is_TRUE)) && (secondSet.isElementOf(toCategory).isEqualTo(coreSets.is_TRUE))) + + ) + ) { + final int fromInstanceCount = firstSet.container().filterPolymorphic(category).filterByLinkedFrom(firstSet).size(); + final int toInstanceCount = firstSet.container().filterPolymorphic(category).filterByLinkedTo(secondSet).size(); + + if (category.fromEdgeEnd().value(coreSets.maxCardinality).isEqualTo(coreSets.maxCardinality_1)) { + if (toInstanceCount > 0) {// semanticErr_maxFromCardinalityIsOne + return coreSets.is_FALSE;} else {return coreSets.is_TRUE;} + } + if (category.fromEdgeEnd().value(coreSets.maxCardinality).isEqualTo(coreSets.maxCardinality_2)) { + if (toInstanceCount > 1) {//semanticErr_maxFromCardinalityIsTwo + return coreSets.is_FALSE;} else {return coreSets.is_TRUE;} + } + if (category.fromEdgeEnd().value(coreSets.maxCardinality).isEqualTo(coreSets.maxCardinality_NOTAPPLICABLE) + || category.fromEdgeEnd().value(coreSets.maxCardinality).isEqualTo(coreSets.maxCardinality_UNKNOWN)) {//semanticErr_maxFromCardinalityIsIllegal + return coreSets.is_FALSE; + } + if (category.toEdgeEnd().value(coreSets.maxCardinality).isEqualTo(coreSets.maxCardinality_1)) { + if (fromInstanceCount > 0) {//raiseError(coreSets.semanticErr_maxToCardinalityIsOne + return coreSets.is_FALSE;} else {return coreSets.is_TRUE;} + } + if (category.toEdgeEnd().value(coreSets.maxCardinality).isEqualTo(coreSets.maxCardinality_2)) { + if (fromInstanceCount > 1) {//semanticErr_maxToCardinalityIsTwo + return coreSets.is_FALSE;} else {return coreSets.is_TRUE;} + } + if (category.toEdgeEnd().value(coreSets.maxCardinality).isEqualTo(coreSets.maxCardinality_NOTAPPLICABLE) + || category.toEdgeEnd().value(coreSets.maxCardinality).isEqualTo(coreSets.maxCardinality_UNKNOWN)) { + //semanticErr_maxToCardinalityIsIllegal + return coreSets.is_FALSE;} else {return coreSets.is_TRUE;} + } + //semanticErr_LinkIsNotApplicable + return coreSets.is_FALSE; + } + } + + private Set addEdge() { + if (firstSet.hasVisibilityOf(secondSet).isEqualTo(coreSets.is_TRUE)) { + return F_InstantiationImpl.createEdge(firstEdgeEndIdentity, + firstSet, + firstMinCardinality, + firstMaxCardinality, + firstIsNavigable, + firstIsContainer, + secondEdgeEndIdentity, + secondSet, + secondMinCardinality, + secondMaxCardinality, + secondIsNavigable, + secondIsContainer, + category, + edgeFlavoredIdentity); + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_TargetIsNotWithinVisibility.identity(), coreSets.semanticErr); + } + } +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/OrderedPair.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/OrderedPair.java new file mode 100644 index 0000000..766cd4c --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/OrderedPair.java @@ -0,0 +1,792 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.core; + +import static org.gmodel.G.coreSets; +import static org.gmodel.core.F_Instantiation.identityFactory; + +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import java.util.ListIterator; + +import org.gmodel.G; +import org.gmodel.Identity; +import org.gmodel.Set; +import org.gmodel.api.EventListener; +import org.gmodel.api.Query; +import org.gmodel.api.VisitorFunction; +import org.gmodel.api.models.GmodelSemanticDomains; + +public class OrderedPair implements Set { + + /* Reify the Gmodel OrderedPair concept */ + public static final OrderedPair orderedPair = new OrderedPair(); + + protected Set category; + private Identity element; + + protected OrderedPair(final Identity semanticIdentity, final Set categoryOfElement) { + setElement(semanticIdentity); + setCategory(categoryOfElement); + } + + protected OrderedPair(final Identity semanticIdentity) { + setElement(semanticIdentity); + setCategory(this); + } + + private OrderedPair() { + setElement(identityFactory.orderedPair()); + setCategory(this); + } + + public Set category() { + return category; + } + /* orderedPairCategory() duplicates category() but is essential to break recursive loop in Graph */ + protected Set orderedPairCategory() { + return category; + } + + private void setCategory(final Set category) { + this.category = category; + } + + public Identity identity() { + return element; + } + + private void setElement(final Identity semanticIdentity) { + this.element = semanticIdentity; + } + + @Override + public String toString() { + return this.localVisualRecognitionText(); + } + + /* Implementation of semantics */ + + public boolean isEqualTo(final Set orderedPair) { + return identity().isEqualTo(orderedPair.identity()); + } + + public boolean isEqualToRepresentation(final Set orderedPair) { + return identity().isEqualToRepresentation(orderedPair.identity()); + } + + + public Set flavor() { + if (isEqualTo(category()) ) { + return this; + } else { + return category().flavor(); + } + } + + protected boolean isFlavor() { + return isEqualTo(Query.vertex) || + isEqualTo(Query.visibility) || + isEqualTo(Query.edge) || + isEqualTo(Query.superSetReference) || + isEqualTo(Query.link) || + isEqualTo(Query.orderedSet) || + isEqualTo(Query.graph) || + isEqualTo(coreSets.orderedPair); + } + + protected boolean isLinkFlavor() { + return isEqualTo(Query.visibility) || + isEqualTo(Query.edge) || + isEqualTo(Query.superSetReference) || + isEqualTo(Query.link); + } + + public Set isALink() { + final boolean flavorIsLinkConcept = flavor().isEqualTo(Query.visibility) + || flavor().isEqualTo(Query.edge) + || flavor().isEqualTo(Query.superSetReference); + + final boolean isLinkConcept = isEqualTo(Query.visibility) + || isEqualTo(Query.edge) + || isEqualTo(Query.superSetReference); + + if (flavorIsLinkConcept && !isLinkConcept) { + return GmodelSemanticDomains.is_TRUE; + } else { + return GmodelSemanticDomains.is_FALSE; + } + } + + public Set addToVariables(final Set set) { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set addToValues(final Set set) { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set container() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().container();} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set filter(final Set category) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().filter(category);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + + public Set edgeEnds() { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set containsEdgeTo(final Set orderedPair) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().containsEdgeTo(orderedPair);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set decommission() { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set filterFlavor(final Set flavor) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().filterFlavor(flavor);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set from() { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set fromEdgeEnd() { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set hasVisibilityOf(final Set target) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().hasVisibilityOf(target);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set filterInstances() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().filterInstances();} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set isExternal() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().isExternal();} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set isLocalSuperSetOf(final Set orderedPair) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().isLocalSuperSetOf(orderedPair);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set filterLinks() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().filterLinks();} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set localRootSuperSetOf(final Set orderedPair) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().localRootSuperSetOf(orderedPair);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set isSuperSetOf(final Set orderedPair) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().isSuperSetOf(orderedPair);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set directSuperSetOf(final Set orderedPair) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().directSuperSetOf(orderedPair);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set categoryOfVisibility(final Set target) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return ((Graph) this.semanticIdentity()).categoryOfVisibility(target);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set variables() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().variables();} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set value(final Set variable) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().value(variable);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set values() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().values();} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set removeFromVariables(final Set set) { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set removeFromValues(final Set set) { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set to() { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set toEdgeEnd() { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set visibleArtifactsForSubGraph(final Set subgraph) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().visibleArtifactsForSubGraph(subgraph);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set addAbstract(final Set category, final Set semanticIdentity) { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set addConcrete(final Set category, final Set semanticIdentity) { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public boolean containsSemanticMatch(final Set o) { + return this.isEqualTo(o); + } + + public boolean containsSemanticMatchesForAll(final Set c) { + return false; + } + + public boolean isEmpty() { + return false; + } + + public ListIterator listIterator() { + return null; + } + + public ListIterator listIterator(final int index) { + return null; + } + + public int size() { + return 0; + } + + public Set[] toArray() { + return null; + } + + public Set[] toArray(final Set[] a) { + return null; + } + + public List asList() { + return null; + } + + public Iterator iterator() { + // return null; + return Collections.emptySet().iterator(); + } + + public Set addToCommands(final Set anElement) { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set addToQueries(final Set anElement) { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set removeFromCommands(final Set anElement) { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set removeFromQueries(final Set anElement) { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set commands() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().commands();} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set queries() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().queries();} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public boolean containsAllRepresentations(final Set c) { + return false; + } + + public boolean containsRepresentation(final Set o) { + return false; + } + + public Set containsDecommissionedSets() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().containsDecommissionedSets();} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set containsNewSets() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().containsNewSets();} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set hasNewName() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().hasNewName();} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set hasNewPluralName() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().hasNewPluralName();} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set isDecommissioned() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().isDecommissioned();} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set isNewInstance() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().isNewInstance();} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set assignNewName(final String newName) { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set assignNewPluralName(final String newPluralName) { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set assignNewPayload(final String newPayload) { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set decommissionPayload() { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set hasDecommissionedPayload() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().hasDecommissionedPayload();} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set hasNewPayload() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().hasNewPayload();} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set allowableEdgeCategories(final Set orderedSet) { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set filterPolymorphic(final Set category) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().filterPolymorphic(category);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + // only for performance optimisation + protected Set transformOrderedPairToSemanticIdentity() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized() + && this.flavor().isEqualTo(coreSets.orderedPair)) { + if (this.isEqualTo(coreSets.isAbstract)) {return GmodelSemanticDomains.isAbstract;}; + if (this.isEqualTo(coreSets.isAbstract_TRUE)) {return GmodelSemanticDomains.isAbstract_TRUE;}; + if (this.isEqualTo(coreSets.isAbstract_FALSE)) {return GmodelSemanticDomains.isAbstract_FALSE;}; + + if (this.isEqualTo(coreSets.minCardinality)) {return GmodelSemanticDomains.minCardinality;}; + if (this.isEqualTo(coreSets.minCardinality_0)) {return GmodelSemanticDomains.minCardinality_0;}; + if (this.isEqualTo(coreSets.minCardinality_1)) {return GmodelSemanticDomains.minCardinality_1;}; + if (this.isEqualTo(coreSets.minCardinality_2)) {return GmodelSemanticDomains.minCardinality_2;}; + if (this.isEqualTo(coreSets.minCardinality_n)) {return GmodelSemanticDomains.minCardinality_n;}; + if (this.isEqualTo(coreSets.minCardinality_NOTAPPLICABLE)) {return GmodelSemanticDomains.minCardinality_NOTAPPLICABLE;}; + if (this.isEqualTo(coreSets.minCardinality_UNKNOWN)) {return GmodelSemanticDomains.minCardinality_UNKNOWN;}; + + if (this.isEqualTo(coreSets.maxCardinality)) {return GmodelSemanticDomains.maxCardinality;}; + if (this.isEqualTo(coreSets.maxCardinality_0)) {return GmodelSemanticDomains.maxCardinality_0;}; + if (this.isEqualTo(coreSets.maxCardinality_1)) {return GmodelSemanticDomains.maxCardinality_1;}; + if (this.isEqualTo(coreSets.maxCardinality_2)) {return GmodelSemanticDomains.maxCardinality_2;}; + if (this.isEqualTo(coreSets.maxCardinality_n)) {return GmodelSemanticDomains.maxCardinality_n;}; + if (this.isEqualTo(coreSets.maxCardinality_NOTAPPLICABLE)) {return GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE;}; + if (this.isEqualTo(coreSets.maxCardinality_UNKNOWN)) {return GmodelSemanticDomains.maxCardinality_UNKNOWN;}; + + if (this.isEqualTo(coreSets.isNavigable)) {return GmodelSemanticDomains.isNavigable;}; + if (this.isEqualTo(coreSets.isNavigable_TRUE)) {return GmodelSemanticDomains.isNavigable_TRUE;}; + if (this.isEqualTo(coreSets.isNavigable_FALSE)) {return GmodelSemanticDomains.isNavigable_FALSE;}; + if (this.isEqualTo(coreSets.isNavigable_NOTAPPLICABLE)) {return GmodelSemanticDomains.isNavigable_NOTAPPLICABLE;}; + if (this.isEqualTo(coreSets.isNavigable_UNKNOWN)) {return GmodelSemanticDomains.isNavigable_UNKNOWN;}; + + if (this.isEqualTo(coreSets.isContainer)) {return GmodelSemanticDomains.isContainer;}; + if (this.isEqualTo(coreSets.isContainer_TRUE)) {return GmodelSemanticDomains.isContainer_TRUE;}; + if (this.isEqualTo(coreSets.isContainer_FALSE)) {return GmodelSemanticDomains.isContainer_FALSE;}; + if (this.isEqualTo(coreSets.isContainer_NOTAPPLICABLE)) {return GmodelSemanticDomains.isContainer_NOTAPPLICABLE;}; + if (this.isEqualTo(coreSets.isContainer_UNKNOWN)) {return GmodelSemanticDomains.isContainer_UNKNOWN;}; + } + return this; + } + + // only for performance optimisation + // this operation is not public because it only works if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) + public boolean isASemanticIdentity() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) { + if (this.category().isEqualTo(GmodelSemanticDomains.semanticIdentitySet) + || this.category().isEqualTo(GmodelSemanticDomains.disjunctSemanticIdentitySet) + || this.category().isEqualTo(GmodelSemanticDomains.semanticRole) + || this.category().isEqualTo(GmodelSemanticDomains.variantDisjunctSemanticIdentitySet) + ) { + return true; + } + } + return false; + } + + public Set semanticIdentity() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {if (this.isASemanticIdentity()) {return this;}} + final Set t = this.transformOrderedPairToSemanticIdentity(); + if (!t.isEqualToRepresentation(this)) {return t;} + final Set r = F_Query.inMemorySemanticIdentities().extractUniqueMatch(this); + if (!r.is_NOTAPPLICABLE()) {return r;}; + if (this.identity().isPartOfKernel() + || this.flavor().isEqualTo(G.coreGraphs.superSetReference) + || this.flavor().isEqualTo(G.coreGraphs.visibility)) { + return GmodelSemanticDomains.is_NOTAPPLICABLE; + } else { + return F_InstantiationImpl.raiseError(coreSets.kernelDefect_KernelHasReachedAnIllegalState.identity(), coreSets.kernelDefect); + } + } + + public Set executableQueries() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().executableQueries();} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set executableCommands() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().executableCommands();} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + + } + + public Set union(final Set set) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().union(set);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set intersection(final Set set) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().intersection(set);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set complement(final Set set) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().complement(set);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set addElement(final Set s) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().addElement(s);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set removeElement(final Set e) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().removeElement(e);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set addSemanticRole(final Set s) { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set isElementOf(final Set semanticIdentity) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().isElementOf(semanticIdentity);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set transformToOrderedSetOfSemanticIdentities() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().transformToOrderedSetOfSemanticIdentities();} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set processEvent(final Set event) { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set addSubscriber(final EventListener instance) { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set removeSubscriber(final EventListener instance) { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set generatingSet() { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + + } + + public Set generatingElement() { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set addGeneratingSet(final Set generatingSet) { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set addGeneratingElement(final Set generatingElement) { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + public Set unionOfconnectingLinks(final Set instance) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().unionOfconnectingLinks(instance);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + /** + * Support for Information Quality Logic + */ + + public Set not() { + return semanticIdentity().not(); + } + + public Set and(final Set b) { + return semanticIdentity().and(b); + } + + public Set or(final Set b) { + return semanticIdentity().or(b); + } + + public Set isQuality() { + return semanticIdentity().isQuality(); + } + + public Set isInformation() { + return semanticIdentity().isInformation(); + } + + public boolean is_NOTAPPLICABLE() { + return semanticIdentity().is_NOTAPPLICABLE(); + } + + public boolean is_FALSE() { + return semanticIdentity().is_FALSE(); + } + + public boolean is_UNKNOWN() { + return semanticIdentity().is_UNKNOWN(); + } + + public boolean is_TRUE() { + return semanticIdentity().is_TRUE(); + } + + public Set includesValue(final Set value, final Set equivalenceClass) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().includesValue(value, equivalenceClass);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set and() { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set or() { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public String localVisualRecognitionText() { + return this.visualRecognitionText() + " : " + this.category().visualRecognitionText(); + } + + public String visualRecognitionText() { + return this.identity().name(); + } + + public String fullVisualRecognitionText() { + return this.visualRecognitionText() + " : " + this.category().visualRecognitionText(); + } + + public String localVisualRecognitionTextWithEdgeEnds() { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr).toString(); + } + + public Set elementsOfSemanticIdentitySet() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().elementsOfSemanticIdentitySet();} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set filterByLinkedTo(final Set toSet) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return GmodelSemanticDomains.is_NOTAPPLICABLE;} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set filterByLinkedFrom(final Set fromSet) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return GmodelSemanticDomains.is_NOTAPPLICABLE;} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set filterByLinkedFromAndTo(final Set fromSet, final Set toSet) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return GmodelSemanticDomains.is_NOTAPPLICABLE;} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set filterLinks(final Set flavorOrCategory, final Set fromSet, final Set toSet) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return GmodelSemanticDomains.is_NOTAPPLICABLE;} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set filterByLinkedToVia(final Set toEdgeEnd) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return GmodelSemanticDomains.is_NOTAPPLICABLE;} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set filterByLinkedFromVia(final Set fromEdgeEnd) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return GmodelSemanticDomains.is_NOTAPPLICABLE;} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set filterByLinkedFromAndToVia(final Set fromEdgeEnd, final Set toEdgeEnd) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return GmodelSemanticDomains.is_NOTAPPLICABLE;} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set filterFrom() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return GmodelSemanticDomains.is_NOTAPPLICABLE;} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set filterTo() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return GmodelSemanticDomains.is_NOTAPPLICABLE;} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set filterFromAndTo() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return GmodelSemanticDomains.is_NOTAPPLICABLE;} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set filterByLinkedToSemanticRole(final Set toSetReferencedSemanticRole) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return GmodelSemanticDomains.is_NOTAPPLICABLE;} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set filterByLinkedFromSemanticRole(final Set fromSetReferencedSemanticRole) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return GmodelSemanticDomains.is_NOTAPPLICABLE;} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set filterByLinkedFromAndToSemanticRole(final Set fromSetReferencedSemanticRole, final Set toSetReferencedSemanticRole) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return GmodelSemanticDomains.is_NOTAPPLICABLE;} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set isEqualTo(final Set set, final Set equivalenceClass) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return GmodelSemanticDomains.is_NOTAPPLICABLE;} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set filterBySemanticIdentity(final Set set) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return GmodelSemanticDomains.is_NOTAPPLICABLE;} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set filterByEquivalenceClass(final Set set) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return GmodelSemanticDomains.is_NOTAPPLICABLE;} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set extractUniqueMatch(final Set set) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return GmodelSemanticDomains.is_NOTAPPLICABLE;} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set extractUniqueMatch(final Identity identity) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return GmodelSemanticDomains.is_NOTAPPLICABLE;} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set extractUniqueMatch(final String uuidAsString) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return GmodelSemanticDomains.is_NOTAPPLICABLE;} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set extractFirst() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().extractFirst();} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set extractSecond() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().extractSecond();} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set extractLast() { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().extractLast();} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set extractNext(final Set element) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().extractNext(element);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set extractPrevious(final Set element) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().extractPrevious(element);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set initializeWalk(final VisitorFunction visitorFunction) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().initializeWalk(visitorFunction);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set walkDownThenRight(final VisitorFunction visitorFunction) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().walkDownThenRight(visitorFunction);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set walkDownThenLeft(final VisitorFunction visitorFunction) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().walkDownThenLeft(visitorFunction);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set walkRightThenDown(final VisitorFunction visitorFunction) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().walkRightThenDown(visitorFunction);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set walkLeftThenDown(final VisitorFunction visitorFunction) { + if (F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) {return this.semanticIdentity().walkLeftThenDown(visitorFunction);} + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + + public Set setMaintenanceCommand() { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/OrderedSet.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/OrderedSet.java new file mode 100644 index 0000000..3e98b81 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/OrderedSet.java @@ -0,0 +1,714 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.core; + +import static org.gmodel.G.coreSets; +import static org.gmodel.core.F_Instantiation.identityFactory; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; +import java.util.ListIterator; +import java.util.UUID; + +import org.apache.commons.collections.MultiMap; +import org.apache.commons.collections.map.ListOrderedMap; +import org.apache.commons.collections.map.MultiValueMap; +import org.gmodel.G; +import org.gmodel.Identity; +import org.gmodel.Set; +import org.gmodel.api.EventListener; +import org.gmodel.api.Query; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models.SemanticDomain; +import org.gmodel.impl.SemanticDomainCode; + +@SuppressWarnings("unchecked") +public class OrderedSet extends OrderedPair implements Set, Iterable { + + /* Reify the Gmodel OrderedSet concept */ + protected static final OrderedSet orderedSet = new OrderedSet(); + + private boolean listInitialized = false; + + // TODO use an equivalent from Google Guava + private ListOrderedMap map; + private ListOrderedMap iteratorMap; + + // TODO use an equivalent from Google Guava + private MultiMap identifierMap; + + private List subscribers; + + protected OrderedSet(final Identity semanticIdentity, final Set category) { + super(semanticIdentity, category); + } + + protected OrderedSet(final Identity semanticIdentity) { + super(semanticIdentity, OrderedSet.orderedSet); + } + + OrderedSet() { + super(identityFactory.orderedSet()); + } + + @Override + public Set flavor() { + return OrderedSet.orderedSet; + } + + // *************************************** + // Implementation of the equivalent of java.util.List operations + // *************************************** + + private void ensureInitializedList() { + if (!listInitialized) { + iteratorMap = new ListOrderedMap(); + map = new ListOrderedMap(); + identifierMap = new MultiValueMap(); + subscribers = new ArrayList(); + listInitialized = true; + } + } + + protected boolean remove(final Set o) { + this.ensureInitializedList(); + final boolean isRemovedFromMap1 = + (this.map.remove(o.identity().identifier().toString()) != null) + ? true : false; + final boolean isRemovedFromMap2 = + (this.map.remove(o.identity().uniqueRepresentationReference().toString()) != null) + ? true : false; + final boolean isRemovedFromIteratorMap = + (this.iteratorMap.remove(o.identity().uniqueRepresentationReference().toString()) != null) + ? true : false; + final boolean isRemovedFromIdMap1 = + (this.identifierMap.remove(o.identity().identifier().toString()) != null) + ? true : false; + final boolean isRemovedFromIdMap2 = + (this.identifierMap.remove(o.identity().uniqueRepresentationReference().toString()) != null) + ? true : false; + // Create and propagate Set Maintenance EventImpl + final Set removeEvent = this.elementRemoved(o); + final Iterator i = subscribers.iterator(); + while (i.hasNext()) { + i.next().processEvent(removeEvent); + } + return isRemovedFromMap1 && isRemovedFromMap2 && isRemovedFromIdMap1 && isRemovedFromIdMap2 && isRemovedFromIteratorMap; + } + + @Override + public boolean containsSemanticMatch(final Set o) { + this.ensureInitializedList(); + return this.identifierMap.containsKey(o.identity().identifier().toString()); + } + + @Override + public boolean containsRepresentation(final Set o) { + this.ensureInitializedList(); + return (this.map.containsKey(o.identity().uniqueRepresentationReference().toString())) || (this.map.containsKey(o.identity().identifier().toString())); + } + + @Override + public boolean containsSemanticMatchesForAll(final Set c) { + this.ensureInitializedList(); + final Iterator i = c.iterator(); + while (i.hasNext()) { + if (!this.containsSemanticMatch(i.next())) { + return false; + } + } + return true; + } + + @Override + public boolean containsAllRepresentations(final Set c) { + this.ensureInitializedList(); + final Iterator i = c.iterator(); + while (i.hasNext()) { + if (!this.containsRepresentation(i.next())) { + return false; + } + } + return true; + } + + private Set get(final int index) { + this.ensureInitializedList(); + return (Set) this.map.getValue(index); + } + private int indexOfUUID(final UUID o) { + this.ensureInitializedList(); + return this.map.indexOf(o.toString()); + } + private Set getValue(final int index) { + this.ensureInitializedList(); + return (Set) this.iteratorMap.getValue(index); + } + private int iteratorIndexOfUUID(final UUID o) { + this.ensureInitializedList(); + return this.iteratorMap.indexOf(o.toString()); + } + + @Override + public boolean isEmpty() { + this.ensureInitializedList(); + return this.iteratorMap.isEmpty(); + } + + @Override + public Iterator iterator() { + this.ensureInitializedList(); + return this.iteratorMap.values().iterator(); + } + + @Override + public ListIterator listIterator() { + this.ensureInitializedList(); + return new ArrayList(Arrays.asList(this.iteratorMap.values().toArray())).listIterator(); + } + + @Override + public ListIterator listIterator(final int index) { + this.ensureInitializedList(); + return new ArrayList(Arrays.asList(this.iteratorMap.values().toArray())).listIterator(index); + } + + @Override + public int size() { + this.ensureInitializedList(); + return this.iteratorMap.size(); + } + + @Override + public Set[] toArray() { + this.ensureInitializedList(); + return (Set[]) this.iteratorMap.values().toArray(); + } + + @Override + public Set[] toArray(final Set[] a) { + this.ensureInitializedList(); + return (Set[]) this.iteratorMap.values().toArray(a); + } + + @Override + public List asList() { + this.ensureInitializedList(); + return new ArrayList(this.iteratorMap.values()); + } + + protected boolean add(final Set o) { + this.ensureInitializedList(); + this.iteratorMap.put(o.identity().uniqueRepresentationReference().toString(), o); + this.map.put(o.identity().uniqueRepresentationReference().toString(), o); + this.identifierMap.put(o.identity().identifier().toString() , o); + if (!o.identity().uniqueRepresentationReference().equals(o.identity().identifier())) { + this.map.put(o.identity().identifier().toString(), o); + this.identifierMap.put(o.identity().uniqueRepresentationReference().toString() , o); + } + + // Create and propagate Set Maintenance EventImpl + if (org.gmodel.core.F_SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) { + final Set addEvent = this.elementAdded(o); + final Iterator i = subscribers.iterator(); + while (i.hasNext()) { + i.next().processEvent(addEvent); + } + } + return true; + } + @Override + public Set extractFirst() { + if (this.size() > 0) { + return this.getValue(0); + } + return GmodelSemanticDomains.is_NOTAPPLICABLE; + } + @Override + public Set extractSecond() { + if (this.size() > 1) { + return this.getValue(1); + } + return GmodelSemanticDomains.is_NOTAPPLICABLE; + } + @Override + public Set extractLast() { + if (this.size() > 0) { + return this.getValue(this.size()-1); + } + return GmodelSemanticDomains.is_NOTAPPLICABLE; + } + @Override + public Set extractNext(final Set element) { + final int next = this.iteratorIndexOfUUID(element.identity().uniqueRepresentationReference()) +1; + if (this.size() > next && next > -1) { + return this.getValue(next); + } + return GmodelSemanticDomains.is_NOTAPPLICABLE; + } + @Override + public Set extractPrevious(final Set element) { + final int previous = this.iteratorIndexOfUUID(element.identity().uniqueRepresentationReference()) -1; + if (-1 < previous && previous < this.size()) { + return this.getValue(previous); + } + return GmodelSemanticDomains.is_NOTAPPLICABLE; + } + @Override + public Set extractUniqueMatch(final Identity identity) { + final int i = this.indexOfUUID(identity.uniqueRepresentationReference()); + final int j = this.indexOfUUID(identity.identifier()); + if (i > -1) { + return this.get(i); + } + if (j > -1) { + return this.get(j); + } + return GmodelSemanticDomains.is_NOTAPPLICABLE; + } + @Override + public Set extractUniqueMatch(final Set set) { + return extractUniqueMatch(set.identity()) ; + } + + @Override + public Set extractUniqueMatch(final String uuidAsString) { + final UUID uuid = UUID.fromString(uuidAsString); + final int i = this.indexOfUUID(uuid); + if (i >= -1) { + return this.get(i); + } + return GmodelSemanticDomains.is_NOTAPPLICABLE; + } + + @Override + public Set filterBySemanticIdentity(final Set set) { + final OrderedSet result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + final List r = (List) this.identifierMap.get(set.identity().identifier().toString()); + for (final Set element : r) { + result.add(element); + } + return result; + } + + /** + * the union of this and s + */ + @Override + public Set union(final Set set) { + return F_SetAlgebra.union(this, set); + } + + /** + * the intersection of this and s + */ + @Override + public Set intersection(final Set set) { + return F_SetAlgebra.intersection(this, set); + } + + /** + * the complement of this and s + */ + @Override + public Set complement(final Set set) { + return F_SetAlgebra.complement(this, set); + } + @Override + public Set filterByLinkedTo(final Set toSet) { + final OrderedSet result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + for (final Set element : this) { + if (element.isALink().is_TRUE()) { + if (element.to().isEqualToRepresentation(toSet)) { + result.add(element); + } + } + } + return result; + } + @Override + public Set filterByLinkedFrom(final Set fromSet) { + final OrderedSet result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + for (final Set element : this) { + if (element.isALink().is_TRUE()) { + if (element.from().isEqualToRepresentation(fromSet)) { + result.add(element); + } + } + } + return result; + } + @Override + public Set filterByLinkedFromAndTo(final Set fromSet, final Set toSet) { + if (fromSet.isInformation().is_FALSE()) { + return this.filterByLinkedTo(toSet); + } + if (toSet.isInformation().is_FALSE()) { + return this.filterByLinkedFrom(fromSet); + } + final OrderedSet result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + for (final Set element : this) { + if (element.isALink().is_TRUE()) { + if (element.to().isEqualToRepresentation(toSet) + && element.from().isEqualToRepresentation(fromSet)) { + result.add(element); + } + } + } + return result; + } + @Override + public Set filterFrom() { + final OrderedSet result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + for (final Set element : this) { + if (element.isALink().is_TRUE()) { + result.add(element.from()); + } + } + return result; + } + @Override + public Set filterTo() { + final OrderedSet result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + for (final Set element : this) { + if (element.isALink().is_TRUE()) { + result.add(element.to()); + } + } + return result; + } + @Override + public Set filterFromAndTo() { + final OrderedSet result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + for (final Set element : this) { + if (element.isALink().is_TRUE()) { + result.add(element.from()); + result.add(element.to()); + } + } + return result; + } + @Override + public Set filterByLinkedToSemanticRole(final Set toSetReferencedSemanticRole) { + final OrderedSet result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + final Set semanticIdentities = toSetReferencedSemanticRole.container() + .filterLinks(SemanticDomain.semanticRole_to_equivalenceClass, GmodelSemanticDomains.is_NOTAPPLICABLE, toSetReferencedSemanticRole) + .filterFrom(); + ((OrderedSet)semanticIdentities).add(toSetReferencedSemanticRole); + for (final Set element : this) { + if (semanticIdentities.containsSemanticMatch(element.to())) { + result.add(element); + } + } + return result; + } + @Override + public Set filterByLinkedFromSemanticRole(final Set fromSetReferencedSemanticRole) { + final OrderedSet result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + final Set semanticIdentities = fromSetReferencedSemanticRole.container() + .filterLinks(SemanticDomain.semanticRole_to_equivalenceClass, fromSetReferencedSemanticRole, GmodelSemanticDomains.is_NOTAPPLICABLE) + .filterTo(); + ((OrderedSet)semanticIdentities).add(fromSetReferencedSemanticRole); + for (final Set element : this) { + if (semanticIdentities.containsSemanticMatch(element.from())) { + result.add(element); + } + } + return result; + } + @Override + public Set filterByLinkedFromAndToSemanticRole(final Set fromSetReferencedSemanticRole, final Set toSetReferencedSemanticRole) { + final OrderedSet result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + final Set fromSemanticIdentities = fromSetReferencedSemanticRole.container() + .filterLinks(SemanticDomain.semanticRole_to_equivalenceClass, fromSetReferencedSemanticRole, GmodelSemanticDomains.is_NOTAPPLICABLE) + .filterTo(); + ((OrderedSet)fromSemanticIdentities).add(fromSetReferencedSemanticRole); + final Set toSemanticIdentities = toSetReferencedSemanticRole.container() + .filterLinks(SemanticDomain.semanticRole_to_equivalenceClass, GmodelSemanticDomains.is_NOTAPPLICABLE, toSetReferencedSemanticRole) + .filterFrom(); + ((OrderedSet)toSemanticIdentities).add(toSetReferencedSemanticRole); + for (final Set element : this) { + if (fromSemanticIdentities.containsSemanticMatch(element.from()) && toSemanticIdentities.containsSemanticMatch(element.to())) { + result.add(element); + } + } + return result; + } + @Override + public Set filterByLinkedToVia(final Set toEdgeEnd) { + final OrderedSet result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + for (final Set element : this) { + if (element.isALink().is_TRUE()) { + if (element.toEdgeEnd().isEqualTo(toEdgeEnd)) { + result.add(element); + } + } + } + return result; + } + + @Override + public Set filterByLinkedFromVia(final Set fromEdgeEnd) { + final OrderedSet result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + for (final Set element : this) { + if (element.isALink().is_TRUE()) { + if (element.fromEdgeEnd().isEqualTo(fromEdgeEnd)) { + result.add(element); + } + } + } + return result; + } + + @Override + public Set filterByLinkedFromAndToVia(final Set fromEdgeEnd, final Set toEdgeEnd) { + if (fromEdgeEnd.isInformation().is_FALSE()) { + return this.filterByLinkedToVia(toEdgeEnd); + } + if (toEdgeEnd.isInformation().is_FALSE()) { + return this.filterByLinkedFromVia(fromEdgeEnd); + } + final OrderedSet result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + for (final Set element : this) { + if (element.isALink().is_TRUE()) { + if (element.toEdgeEnd().isEqualTo(toEdgeEnd) + && element.fromEdgeEnd().isEqualTo(fromEdgeEnd)) { + result.add(element); + } + } + } + return result; + } + + /** + * queries that emulate graph functionality + */ + + @Override + public Set filterFlavor(final Set flavor) { + if (flavor.isEqualTo(F_Query.vertexFlavor()) + || flavor.isEqualTo(F_Query.graph()) + || flavor.isEqualTo(F_Query.visibilityFlavor()) + || flavor.isEqualTo(F_Query.superSetReferenceFlavor()) + || flavor.isEqualTo(F_Query.edgeFlavor()) + || flavor.isEqualTo(F_Query.edgeEndFlavor()) + || flavor.isEqualTo(F_Query.orderedSetFlavor()) + || flavor.isEqualTo(coreSets.orderedPair) + ) { + final OrderedSet result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + for ( final Set element : this) { + if (element.flavor().isEqualTo(flavor)) { + result.add(element); + } + } + return result; + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + } + + @Override + public Set filterByEquivalenceClass(final Set set) { + final OrderedSet result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + Set aSemantics = set; + if (SemanticDomain.semanticIdentity.isSuperSetOf(set.category()).is_FALSE()) { + aSemantics = set.semanticIdentity(); + } + aSemantics = SemanticDomainCode.transformSemanticRoleToEquivalenceClass(aSemantics); + for ( final Set element : this) { + Set bSemantics = element; + if (SemanticDomain.semanticIdentity.isSuperSetOf(element.category()).is_FALSE()) { + bSemantics = element.semanticIdentity(); + } + if (isEqualTo(aSemantics,(SemanticDomainCode.transformSemanticRoleToEquivalenceClass(bSemantics))).is_TRUE()) { + result.add(element); + } + } + return result; + } + + @Override + public Set filter(final Set category) { + final OrderedSet result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + for ( final Set element : this) { + if (element.category().isEqualTo(category)) { + result.add(element); + } + } + return result; + } + + @Override + public Set filterPolymorphic(final Set category) { + final OrderedSet result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + for ( final Set element : this) { + if (category.isSuperSetOf(element.category()).isEqualTo(coreSets.is_TRUE) + && category.isSuperSetOf(element).isEqualTo(coreSets.is_FALSE)) { + result.add(element); + } + } + return result; + } + + @Override + public Set filterInstances() { + return this; + } + @Override + public Set filterLinks() { + final OrderedSet result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + for ( final Set element : this) { + if (element.isALink().is_TRUE()) { + result.add(element); + } + } + return result; + } + + @Override + public Set filterLinks(final Set flavorOrCategory, final Set fromSet, final Set toSet) { + if (flavorOrCategory.isInformation().is_TRUE()) { + if (fromSet.isInformation().is_FALSE() + && toSet.isInformation().is_FALSE()) { + if (flavorOrCategory.isALink().is_TRUE()) { + return this.filterFlavor(flavorOrCategory); + } else { + return this.filterLinks().filter(flavorOrCategory); + } + } + if (flavorOrCategory.isALink().is_TRUE()) { + return this.filterFlavor(flavorOrCategory).filterByLinkedFromAndTo(fromSet, toSet); + } else { + return this.filterLinks().filter(flavorOrCategory).filterByLinkedFromAndTo(fromSet, toSet); + } + } else { + return this.filterLinks().filterByLinkedFromAndTo(fromSet, toSet); + } + } + + /** + * transform into a corresponding ordered set of semantic identities, applying semantic equivalence rules, + * eliminating any duplicated representations from the result + */ + @Override + public Set transformToOrderedSetOfSemanticIdentities() { + return F_SetAlgebra.transformToOrderedSetOfSemanticIdentities(this); + } + + private Set createEvent(final Set category, final Set element) { + return new EventImpl(identityFactory.createAnonymousIdentity(), category, element, this); + } + private Set elementAdded(final Set newElement) { + final Set addEvent = createEvent(G.coreSets.elementAdded, newElement); + return addEvent; + } + + private Set elementRemoved(final Set removedElement) { + final Set removeEvent = createEvent(G.coreSets.elementRemoved, removedElement); + return removeEvent; + } + + @Override + public Set addSubscriber(final EventListener instance) { + subscribers.add(instance); + return this; + } + + @Override + public Set removeSubscriber(final EventListener instance) { + subscribers.remove(instance); + return this; + } + /** + * Support for Information Quality Logic + */ + @Override + public Set not() { + return F_IqLogic.not(this); + } + + @Override + public Set and(final Set b) { + if (b.flavor().isEqualTo(Query.orderedSet)) { + return F_IqLogic.and(this.union(b)); + } else { + final OrderedSet result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + for (final Set element : this) { + result.add(element); + } + result.add(b); + return F_IqLogic.and(result); + } + } + + @Override + public Set or(final Set b) { + if (b.flavor().isEqualTo(Query.orderedSet)) { + return F_IqLogic.or(this.union(b)); + } else { + final OrderedSet result = new OrderedSet(F_Instantiation.identityFactory.createAnonymousIdentity()); + for (final Set element : this) { + result.add(element); + } + result.add(b); + return F_IqLogic.or(result); + } + } + + @Override + public Set and() { + return F_IqLogic.and(this); + } + + @Override + public Set or() { + return F_IqLogic.or(this); + } + + @Override + public Set includesValue(final Set value, final Set equivalenceClass) { + return F_IqLogic.includesValue(this, value, equivalenceClass); + } + + @Override + public Set isEqualTo(final Set set, final Set equivalenceClass) { + final Set setSemantics = set.transformToOrderedSetOfSemanticIdentities(); + Set result = GmodelSemanticDomains.is_FALSE; + for (final Set element : this) { + if (setSemantics.containsSemanticMatch(element)) { + result = result.and(setSemantics.extractUniqueMatch(element.semanticIdentity())).isEqualTo(element.semanticIdentity(), equivalenceClass) ; + } + } + return result; + } + @Override + public Set setMaintenanceCommand() { + return this; + + } +} \ No newline at end of file diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/SemanticIdentityRegistry.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/SemanticIdentityRegistry.java new file mode 100644 index 0000000..2b3de3e --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/SemanticIdentityRegistry.java @@ -0,0 +1,409 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.core; + +/** + * {@link SemanticIdentityRegistry} is an ordered list of the SemanticIdentities + * that are used to construct the Instances and Properties of the Gmodel kernel. + * + * Important: Elements in this list may never be removed or resequenced, + * as the stability of the UUIDs of semantic identities in the kernel of Gmodel depends + * on the sequence of elements in this list. + * + * ==> If new semantic identities need to be added to the Gmodel kernel, + * this list needs to be appended with a corresponding element. + * ==> If a semantic identity becomes obsolete, the corresponding element in this list must + * be renamed from to _DEPRECATED. + */ + +public enum SemanticIdentityRegistry { + anonymous, + anonymousInKernel, + semanticIdentity, + orderedPair, + orderedSet, + graph, + link, + edge, + superSetReference, + visibility, + edgeTrace, + vertex, + edgeEnd, + + isAbstract, + isAbstract_TRUE, + isAbstract_FALSE, + + isNavigable, + isNavigable_TRUE, + isNavigable_FALSE, + isNavigable_NOTAPPLICABLE, + isNavigable_UNKNOWN, + + isContainer, + isContainer_TRUE, + isContainer_FALSE, + isContainer_NOTAPPLICABLE, + isContainer_UNKNOWN, + + minCardinality, + minCardinality_0, + minCardinality_1, + minCardinality_2, + minCardinality_n, + minCardinality_NOTAPPLICABLE, + minCardinality_UNKNOWN, + + maxCardinality, + maxCardinality_0, + maxCardinality_1, + maxCardinality_2, + maxCardinality_n, + maxCardinality_NOTAPPLICABLE, + maxCardinality_UNKNOWN, + iqLogicValue, + is_TRUE, + is_FALSE, + is_NOTAPPLICABLE, + is_UNKNOWN, + + completion, + completion_successful, + + kernelDefect, + kernelDefect_KernelHasReachedAnIllegalState, + semanticErr, + semanticErr_OnlyEdgeFlavoredInstancesHaveEdgeEndFlavors, + semanticErr_OnlyEdgeFlavoredInstancesHaveConnectedRoles, + semanticErr_OnlyEdgeFlavoredInstancesHaveConnectedInstances, + semanticErr_OnlyVisibilityFlavoredInstancesHaveFromSubGraph, + semanticErr_OnlyVisibilityFlavoredInstancesHaveToSubGraph, + semanticErr_OnlySuperSetReferenceFlavoredInstancesHaveSuperSet, + semanticErr_OnlySuperSetReferenceFlavoredInstancesHaveSubSet, + semanticErr_OnlyEdgeTraceFlavoredInstancesHaveAbstraction, + semanticErr_OnlyEdgeTraceFlavoredInstancesHaveDetail, + semanticErr_OnlyEdgeEndFlavoredInstancesHaveEdgeEndVertex, + semanticErr_OnlyInstancesHaveIsAbstract, + semanticErr_OnlyEdgeEndFlavoredInstancesHaveMinCardinality, + semanticErr_OnlyEdgeEndFlavoredInstancesHaveMaxCardinality, + semanticErr_OnlyEdgeEndFlavoredInstancesHaveIsContainer, + semanticErr_OnlyEdgeEndFlavoredInstancesHaveIsNavigable, + semanticErr_ValueIsNotAssigned, + semanticErr_LinkIsNotApplicable, + semanticErr_TargetIsNotWithinVisibility, + semanticErr_AddConcreteIsOnlyValidForConcreteVertexFlavor, + semanticErr_AddAbstractIsOnlyValidForAbstractVertexFlavor, + semanticErr_GraphGraphCantBeModified, + semanticErr_VariableCantBeRemovedArtifactStillHasInstances, + semanticErr_GraphsCantBeDecommissioned, + semanticErr_ValueIsNotAnInstanceOfVariableOfCategoryOfInstance, + semanticErr_maxFromCardinalityIsOne, + semanticErr_maxFromCardinalityIsTwo, + semanticErr_maxFromCardinalityIsIllegal, + semanticErr_maxToCardinalityIsOne, + semanticErr_maxToCardinalityIsTwo, + semanticErr_maxToCardinalityIsIllegal, + semanticErr_operationIsIllegalOnThisInstance, + semanticErr_operationIsNotYetImplemented, + semanticErr_OnlyTransportContainerCanHaveContentElements, + + /** + * semantic domain + */ + + semanticDomain, + + /** + * commands & query parameters + */ + parameter, + target, + subGraph, + + /** + * kernel commands & queries + */ + + function, + command, + commandFunction, + flavorCommandFunction, + query, + queryFunction, + flavorQueryFunction, + + /** + * OrderedPairFlavor queries + */ + + flavor, + identity, + isEqualTo, + isInformation, + + + /** + * OrderedSetFlavor queries + */ + + contains, + containsAll, + get, + indexOf, + isEmpty, + lastIndexOf, + listIterator, + listIteratorInt, + size, + toArray, + toArrayInstance, + + /** + * GraphFlavor commands + */ + + addAbstract, + addConcrete, + isALink, + isASemantikIdentity, + addToVariables, + addToValues, + decommission, + instantiateAbstract, + instantiateConcrete, + removeFromVariables, + removeFromValues, + setPropertyValue, + + /** + * GraphFlavor, VertexFlavor, EdgeEndFlavor queries + */ + + container, + filter, + containsEdgeFromOrTo, + filterFlavor, + hasVisibilityOf, + filterInstances, + isSuperSetOf, + isLocalSuperSetOf, + filterLinks, + localRootSuperSetOf, + directSuperSetOf, + category, + containerCategory, + variables, + value, + values, + visibleArtifactsForSubGraph, + + /** + * LinkFlavor queries + */ + + from, + isExternal, + to, + + /** + * EdgeFlavor queries + */ + + edgeEnds, + connectedInstances, + fromEdgeEnd, + toEdgeEnd, + + /** + * EdgeTraceFlavor queries + */ + + fromAbstraction, + toDetail, + + /** + * SuperSetReferenceFlavor queries + */ + + fromSubSet, + toSuperSet, + + /** + * VisibilityFlavor queries + */ + + fromSubGraph, + toSubGraph, + + /** + * semantic identities used by test scripts and inner shells + */ + + semanticdomains, + models, + universalartifactengineering, + extractUniqueMatch, + isQuality, + root, + timestamp, + + file, + derivedFile, + derivationTechnology, + xpand, + locationFunction, + derivationRule, + derivedArtifact, + sourceArtifact, + execute, + + htmlRepresentation, + htmlTargetLocation, + html_to_artifact, + somePathInFileSystem, + + semanticIdentitySet, + equivalenceClass, + semanticRole, + disjunctSemanticIdentitySet, + variantDisjunctSemanticIdentitySet, + abstractSemanticRole, + referencedSemanticRole, + referencingSemanticRole, + element, + DEPRECATED_addSubscriber, + variabilityDimension, + variantIdentifier, + addElement, + removeElement, + elements, + semanticIdentitySet_addElement, + semanticIdentitySet_removeElement, + semanticIdentitySet_elements, + disjunctSemanticIdentitySet_addElement, + disjunctSemanticIdentitySet_removeElement, + disjunctSemanticIdentitySet_elements, + + set, + semanticErr_ASetWithThisIdentityAndRepresentationIsAlreadyLoaded, + semanticErr_ThisSetIsNotAvailableInMemory, + allowableEdgeCategories, + filterPolymorphic, + indexOfIdentifier, + isEqualToRepresentation, + containsRepresentations, + containsAllRepresentations, + asList, + addToCommands, + addToQueries, + removeFromCommands, + removeFromQueries, + assignNewName, + assignNewPluralName, + assignNewPayload, + maxSearchSpaceDepth, + + name, + pluralName, + technicalName, + identifier, + queries, + commands, + executableQueries, + executableCommands, + union, + intersection, + complement, + isElementOf, + + event, + elementAdded, + elementRemoved, + processEvent, + setMaintenanceEvents, + addSubscriber, + removeSubscriber, + generatingSet, + generatingElement, + booleanValue, + elementsOfSemanticIdentitySet, + + // 2011 11 25 + localVisualRecognitionTextWithEdgeEnds, + addGeneratingElement, + addGeneratingSet, + and, + containsDecommissionedSets, + containsEdgeTo, + containsNewSets, + decommissionPayload, + hasDecommissionedPayload, + hasNewName, + hasNewPayload, + hasNewPluralName, + includesValue, + isDecommissioned, + isNewInstance, + not, + or, + unionOfconnectingLinks, + fullVisualRecognitionText, + isASemanticIdentity, + localVisualRecognitionText, + visualRecognitionText, + containsRepresentation, + containsSemanticMatch, + containsSemanticMatchesForAll, + filterByEquivalenceClass, + filterByLinkedFrom, + filterByLinkedFromAndTo, + filterByLinkedFromAndToSemanticRole, + filterByLinkedFromAndToVia, + filterByLinkedFromSemanticRole, + filterByLinkedFromVia, + filterByLinkedTo, + filterByLinkedToSemanticRole, + filterByLinkedToVia, + filterFrom, + filterFromAndTo, + filterTo, + extractFirst, + extractSecond, + extractLast, + ListIterator, + transformToOrderedSetOfSemanticIdentities, + uuidAsString, + fromSet, + toSet, + fromSetReferencedSemanticRole, + toSetReferencedSemanticRole, + flavorOrCategory, + a, + b, + setMaintenanceCommand, +} + diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/SuperSetReference.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/SuperSetReference.java new file mode 100644 index 0000000..bbdc1ee --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/SuperSetReference.java @@ -0,0 +1,214 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.core; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.G.coreSets; +import static org.gmodel.core.F_Instantiation.identityFactory; + +import org.gmodel.Identity; +import org.gmodel.SemanticStateOfInMemoryModel; +import org.gmodel.Set; + +public final class SuperSetReference extends Link { + + /* Reify the Gmodel GeneralizationReference concept */ + protected static final SuperSetReference superSetReference = new SuperSetReference(); + + /* Instantiate GeneralizationReferences */ + protected static final SuperSetReference graph_SPECIALIZES_property = + F_InstantiationImpl.createSuperSetReference(Graph.graph, coreSets.orderedPair, superSetReference); + + protected static final SuperSetReference vertex_SPECIALIZES_graph = + F_InstantiationImpl.createSuperSetReference(Vertex.vertex, Graph.graph, superSetReference); + + protected static final SuperSetReference link_SPECIALIZES_graph = + F_InstantiationImpl.createSuperSetReference(Link.link, Graph.graph, superSetReference); + + protected static final SuperSetReference edgeEnd_SPECIALIZES_graph = + F_InstantiationImpl.createSuperSetReference(EdgeEnd.edgeEnd, Graph.graph, superSetReference); + + protected static final SuperSetReference edge_SPECIALIZES_link = + F_InstantiationImpl.createSuperSetReference(Edge.edge, Link.link, superSetReference); + + protected static final SuperSetReference visibility_SPECIALIZES_link = + F_InstantiationImpl.createSuperSetReference(Visibility.visibility, Link.link, superSetReference); + + protected static final SuperSetReference superSetReference_SPECIALIZES_link = + F_InstantiationImpl.createSuperSetReference(SuperSetReference.superSetReference, Link.link, superSetReference); + + private Set container; + private Set to; + private Set from; + + private SuperSetReference() { + super(identityFactory.superSetReference()); + this.setContainer(Graph.graph); + this.addToValues(coreSets.isAbstract_FALSE); + this.addFlavorQueries(); + } + + protected SuperSetReference(final Set specialization, final Set generalization, final Set category) { + super(identityFactory.createAnonymousIdentity(specialization.identity().isPartOfKernel()), category); + this.setFrom(specialization); + this.setTo(generalization); + this.setContainer(specialization.container()); + ((Graph) this.container()).addToSuperSetReferences(this); + // Jorn this.setValue(coreSets.isAbstract_FALSE); + this.addToValues(coreSets.isAbstract_FALSE); + + Graph.addSetToInMemorySets(this); + if (SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + ((Graph) this.container()).setContainsNewSets(true); + Graph.addSetToChangedSets(this); + Graph.addSetToChangedSets(this.container()); + } + } + + /* only used for reconstitution during deserialisation */ + protected SuperSetReference(final Identity identity, final Set specialization, final Set generalization, final Set category) { + super(identity, category); + this.setFrom(specialization); + this.setTo(generalization); + this.setContainer(specialization.container()); + ((Graph) this.container()).addToSuperSetReferences(this); + // jorn this.setValue(coreSets.isAbstract_FALSE); + this.addToValues(coreSets.isAbstract_FALSE); + + Graph.addSetToInMemorySets(this); + if (SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + ((Graph) this.container()).setContainsNewSets(true); + Graph.addSetToChangedSets(this); + Graph.addSetToChangedSets(this.container()); + } + } + + @Override + public String toString() { + return localVisualRecognitionText(); + } + + @Override + public String localVisualRecognitionText() { + if (category().isEqualTo(this)) { + return visualRecognitionText() + " : " + visualRecognitionText(); + } + if (isExternal().is_TRUE()) { + return "(" + from().identity().name() + " -S-> " + + to().visualRecognitionText() + ") : " + + category().localVisualRecognitionText(); + } else { + return "(" + from().identity().name() + " -S-> " + + to().identity().name() + ") : " + + category().localVisualRecognitionText(); + } + } + + @Override + public String visualRecognitionText() { + if (category().isEqualTo(this)) { + return identity().name(); + } else { + if (isExternal().is_TRUE()) { + return "(" + from().identity().name() + " -S-> " + + to().visualRecognitionText() + ")." + + container().visualRecognitionText() ; + } else { + return "(" + from().identity().name() + " -S-> " + + to().identity().name() + ")." + + container().visualRecognitionText(); + } + } + } + + @Override + public String fullVisualRecognitionText() { + return visualRecognitionText() + " : " + category().visualRecognitionText(); + } + + + /* Implementation of semantics */ + + @Override + public Set container() { + return container; + } + + private void setContainer(final Set artifact) { + this.container = artifact; + } + + private void setFrom(final Set subSet) { + this.from = subSet; + } + + protected Set getSuperSet() { + return to; + } + + private void setTo(final Set superSet) { + this.to = superSet; + } + + @Override + public Set isExternal() { + if (getSuperSet().flavor().isEqualTo(coreSets.orderedPair) && !(container().isEqualTo(Graph.graph))) { + return coreSets.is_TRUE; + } else if (!(((Graph) getSuperSet()).container().isEqualTo(container()))) { + return coreSets.is_TRUE; + } else { + return coreSets.is_FALSE; + } + } + + @Override + public Set flavor() { + return coreGraphs.superSetReference; + } + + /** + * the elements connected to a link + */ + @Override + public Set from() { + return from; + } + + @Override + public Set to(){ + return to; + } + + /** + * SuperSetReferenceFlavor queries + */ + @Override + protected final void addFlavorQueries() { + super.addFlavorQueries(); + addToQueries(coreSets.from); + addToQueries(coreSets.to); + } +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/UUIDReservoirForKernelGraph.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/UUIDReservoirForKernelGraph.java new file mode 100644 index 0000000..1fcb50d --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/UUIDReservoirForKernelGraph.java @@ -0,0 +1,30212 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.core; + +import static org.gmodel.G.coreSets; + +import java.util.UUID; + +import org.apache.commons.collections.map.ListOrderedMap; + +public class UUIDReservoirForKernelGraph { + private boolean uUIDReservoirIsInitialized = false; + private int anonymousUseIdentifierCounter; + //private final int maxIdentifier = 10000; + private final int maxIdentifier = 5000; + + //private List reservoirForOpenSourceCore; + //private List reservoirForAnonymousUse; + //private List reservoirForExtendedJavaBootstrapping; + private ListOrderedMap reservoirForOpenSourceCore; + private ListOrderedMap reservoirForAnonymousUse; + private ListOrderedMap reservoirForExtendedJavaBootstrapping; + + public int getOrdinalOfAnonymousIdentifier(final UUID id) { + return reservoirForAnonymousUse.indexOf(id.toString()); + } + protected UUID getNextUUIDForAnonymousUse() { + UUID value; + if (anonymousUseIdentifierCounter < maxIdentifier) { + value = (UUID) reservoirForAnonymousUse.getValue(anonymousUseIdentifierCounter); + setAnonymousUseIdentifierCounter(anonymousUseIdentifierCounter + 1); + } else { + F_InstantiationImpl.raiseError(coreSets.kernelDefect_KernelHasReachedAnIllegalState.identity(), coreSets.kernelDefect); + value = null; + } + return value; + } + protected UUID getOpenSourceCoreUUID(final int nameRegistryIndex) { + UUID value; + if ((nameRegistryIndex < maxIdentifier) + && (nameRegistryIndex > -1)) { + value = (UUID) reservoirForOpenSourceCore.getValue(nameRegistryIndex); + } else { + F_InstantiationImpl.raiseError(coreSets.kernelDefect_KernelHasReachedAnIllegalState.identity(), coreSets.kernelDefect); + value = null; + } + return value; + } + protected UUID getExtendedJavaBootstrappingUUID(final int nameRegistryIndex) { + UUID value; + if ((nameRegistryIndex < maxIdentifier) + && (nameRegistryIndex > -1)) { + value = (UUID) reservoirForExtendedJavaBootstrapping.getValue(nameRegistryIndex); + } else { + F_InstantiationImpl.raiseError(coreSets.kernelDefect_KernelHasReachedAnIllegalState.identity(), coreSets.kernelDefect); + value = null; + } + return value; + } + public final void fill() { + if (!uUIDReservoirIsInitialized) { + this.setAnonymousUseIdentifierCounter(0); + this.reservoirForOpenSourceCore = new ListOrderedMap(); + this.reservoirForAnonymousUse = new ListOrderedMap(); + this.reservoirForExtendedJavaBootstrapping = new ListOrderedMap(); + this.fill1000(); + this.fill2000(); + this.fill3000(); + this.fill4000(); + this.fill5000(); + //this.fill6000(); + //this.fill7000(); + //this.fill8000(); + //this.fill9000(); + //this.fill10000(); + this.fill11000(); + this.fill12000(); + this.fill13000(); + this.fill14000(); + this.fill15000(); + //this.fill16000(); + //this.fill17000(); + //this.fill18000(); + //this.fill19000(); + //this.fill20000(); + this.fill21000(); + this.fill22000(); + this.fill23000(); + this.fill24000(); + this.fill25000(); + //this.fill26000(); + //this.fill27000(); + //this.fill28000(); + //this.fill29000(); + //this.fill30000(); + } + uUIDReservoirIsInitialized = true; + return; + } + + protected boolean isPartOfKernel(final UUID input) { + if (reservoirForOpenSourceCore.containsKey(input.toString()) + || reservoirForAnonymousUse.containsKey(input.toString()) + || reservoirForExtendedJavaBootstrapping.containsKey(input.toString()) ) { + return true; + } + else { + return false; + } + + } + + private void setAnonymousUseIdentifierCounter(final int i) { + anonymousUseIdentifierCounter = i; + } + + private void addToOSC(final UUID input) { + this.reservoirForOpenSourceCore.put(input.toString(), input); + } + private void addToAnon(final UUID input) { + this.reservoirForAnonymousUse.put(input.toString(), input); + } + private void addToExt(final UUID input) { + this.reservoirForExtendedJavaBootstrapping.put(input.toString(), input); + } + + private void fill1000() { + this.addToOSC(UUID.fromString("02848590-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02848591-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02848592-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02848593-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02848594-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02848595-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02848596-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02848597-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02848598-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02848599-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284859a-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284859b-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284859c-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284859d-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284859e-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284859f-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028485a0-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028485a1-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284aca0-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284aca1-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284aca2-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284aca3-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284aca4-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284aca5-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284aca6-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284aca7-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284aca8-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284aca9-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acaa-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acab-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acac-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acad-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acae-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acaf-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acb0-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acb1-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acb2-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acb3-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acb4-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acb5-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acb6-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acb7-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acb8-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acb9-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acba-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acbb-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acbc-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acbd-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acbe-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acbf-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acc0-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acc1-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acc2-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acc3-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acc4-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acc5-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acc6-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acc7-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acc8-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acc9-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acca-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284accb-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284accc-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284accd-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acce-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284accf-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acd0-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284acd1-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3b0-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3b1-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3b2-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3b3-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3b4-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3b5-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3b6-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3b7-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3b8-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3b9-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3ba-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3bb-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3bc-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3bd-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3be-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3bf-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3c0-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3c1-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3c2-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3c3-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3c4-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3c5-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3c6-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3c7-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3c8-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3c9-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3ca-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3cb-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3cc-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3cd-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3ce-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3cf-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3d0-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3d1-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3d2-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3d3-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3d4-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3d5-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3d6-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3d7-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3d8-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3d9-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3da-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3db-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3dc-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3dd-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3de-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3df-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3e0-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3e1-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284d3e2-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fac0-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fac1-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fac2-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fac3-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fac4-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fac5-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fac6-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fac7-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fac8-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fac9-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284faca-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284facb-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284facc-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284facd-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284face-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284facf-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fad0-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fad1-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fad2-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fad3-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fad4-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fad5-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fad6-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fad7-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fad8-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fad9-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fada-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fadb-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fadc-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fadd-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fade-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fadf-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fae0-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fae1-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fae2-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fae3-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fae4-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fae5-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fae6-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fae7-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fae8-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284fae9-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284faea-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284faeb-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284faec-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284faed-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284faee-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284faef-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284faf0-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284faf1-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284faf2-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0284faf3-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521d0-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521d1-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521d2-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521d3-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521d4-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521d5-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521d6-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521d7-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521d8-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521d9-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521da-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521db-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521dc-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521dd-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521de-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521df-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521e0-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521e1-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521e2-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521e3-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521e4-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521e5-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521e6-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521e7-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521e8-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521e9-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521ea-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521eb-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521ec-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521ed-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521ee-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521ef-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521f0-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521f1-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521f2-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521f3-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521f4-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521f5-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521f6-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521f7-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521f8-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521f9-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521fa-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521fb-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521fc-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521fd-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521fe-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028521ff-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02852200-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02852201-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02852202-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548e0-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548e1-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548e2-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548e3-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548e4-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548e5-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548e6-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548e7-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548e8-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548e9-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548ea-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548eb-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548ec-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548ed-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548ee-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548ef-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548f0-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548f1-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548f2-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548f3-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548f4-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548f5-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548f6-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548f7-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548f8-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548f9-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548fa-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548fb-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548fc-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548fd-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548fe-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("028548ff-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02854900-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02854901-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02854902-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02854903-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02854904-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02854905-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02854906-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02854907-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02854908-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02854909-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285490a-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285490b-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285490c-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285490d-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02856ff0-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02856ff1-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02856ff2-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02856ff3-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02856ff4-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02856ff5-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02856ff6-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02856ff7-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02856ff8-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02856ff9-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02856ffa-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02856ffb-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02856ffc-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02856ffd-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02856ffe-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02856fff-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857000-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857001-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857002-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857003-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857004-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857005-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857006-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857007-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857008-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857009-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285700a-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285700b-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285700c-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285700d-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285700e-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285700f-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857010-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857011-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857012-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857013-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857014-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857015-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857016-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857017-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857018-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857019-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285701a-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285701b-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285701c-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285701d-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285701e-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285701f-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857020-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857021-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857022-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857023-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857024-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857025-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02857026-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859700-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859701-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859702-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859703-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859704-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859705-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859706-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859707-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859708-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859709-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285970a-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285970b-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285970c-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285970d-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285970e-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285970f-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859710-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859711-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859712-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859713-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859714-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859715-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859716-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859717-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859718-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859719-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285971a-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285971b-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285971c-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285971d-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285971e-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285971f-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859720-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859721-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859722-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859723-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859724-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859725-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859726-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859727-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859728-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859729-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285972a-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285972b-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285972c-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285972d-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285972e-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285972f-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859730-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859731-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859732-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859733-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859734-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02859735-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be10-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be11-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be12-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be13-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be14-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be15-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be16-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be17-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be18-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be19-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be1a-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be1b-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be1c-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be1d-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be1e-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be1f-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be20-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be21-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be22-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be23-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be24-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be25-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be26-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be27-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be28-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be29-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be2a-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be2b-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be2c-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be2d-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be2e-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be2f-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be30-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be31-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be32-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be33-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be34-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be35-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be36-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be37-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be38-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be39-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be3a-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be3b-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be3c-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be3d-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be3e-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be3f-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be40-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be41-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285be42-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e520-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e521-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e522-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e523-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e524-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e525-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e526-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e527-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e528-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e529-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e52a-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e52b-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e52c-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e52d-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e52e-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e52f-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e530-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e531-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e532-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e533-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e534-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e535-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e536-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e537-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e538-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e539-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e53a-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e53b-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e53c-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e53d-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e53e-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e53f-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e540-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e541-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e542-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e543-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e544-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e545-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e546-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e547-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e548-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e549-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e54a-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e54b-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e54c-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e54d-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0285e54e-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02860c30-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02860c31-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02860c32-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02860c33-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02860c34-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02860c35-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02860c36-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02860c37-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02860c38-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02860c39-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02860c3a-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02860c3b-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02860c3c-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02860c3d-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02860c3e-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02860c3f-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02860c40-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02860c41-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02860c42-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02860c43-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02860c44-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02860c45-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02860c46-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02860c47-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("02860c48-89cb-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb40-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb41-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb42-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb43-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb44-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb45-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb46-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb47-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb48-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb49-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb4a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb4b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb4c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb4d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb4e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb4f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb50-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb51-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb52-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb53-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb54-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb55-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb56-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb57-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb58-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb59-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb5a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb5b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb5c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb5d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb5e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb5f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb60-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb61-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb62-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb63-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb64-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb65-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb66-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bfefdb67-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff00250-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff00251-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff00252-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff00253-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff00254-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff00255-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff00256-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff00257-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff00258-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff00259-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0025a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0025b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0025c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0025d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0025e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0025f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff00260-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff00261-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff00262-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff00263-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff00264-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff00265-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff00266-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff00267-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff00268-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff00269-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0026a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0026b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0026c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0026d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0026e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0026f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff00270-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff00271-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff00272-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff00273-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff00274-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02960-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02961-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02962-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02963-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02964-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02965-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02966-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02967-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02968-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02969-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0296a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0296b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0296c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0296d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0296e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0296f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02970-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02971-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02972-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02973-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02974-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02975-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02976-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02977-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02978-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02979-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0297a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0297b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0297c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0297d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0297e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0297f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02980-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02981-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02982-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02983-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02984-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02985-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02986-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02987-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02988-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02989-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0298a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0298b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0298c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0298d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0298e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0298f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02990-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff02991-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05070-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05071-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05072-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05073-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05074-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05075-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05076-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05077-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05078-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05079-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0507a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0507b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0507c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0507d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0507e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0507f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05080-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05081-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05082-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05083-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05084-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05085-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05086-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05087-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05088-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05089-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0508a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0508b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0508c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0508d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0508e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0508f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05090-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05091-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05092-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05093-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05094-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05095-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05096-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05097-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05098-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff05099-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0509a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0509b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0509c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0509d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0509e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0509f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff050a0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff050a1-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff050a2-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff050a3-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff050a4-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff050a5-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff07780-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff07781-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff07782-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff07783-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff07784-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff07785-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff07786-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff07787-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff07788-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff07789-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0778a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0778b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0778c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0778d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0778e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0778f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff07790-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff07791-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff07792-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff07793-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff07794-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff07795-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff07796-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff07797-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff07798-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff07799-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0779a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0779b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0779c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0779d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0779e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0779f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff077a0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff077a1-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff077a2-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff077a3-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff077a4-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff077a5-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff077a6-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff077a7-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff077a8-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff077a9-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff077aa-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff077ab-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff077ac-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff077ad-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff077ae-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff077af-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff077b0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff077b1-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff077b2-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff077b3-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff077b4-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff077b5-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff077b6-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09e90-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09e91-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09e92-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09e93-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09e94-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09e95-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09e96-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09e97-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09e98-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09e99-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09e9a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09e9b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09e9c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09e9d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09e9e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09e9f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09ea0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09ea1-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09ea2-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09ea3-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09ea4-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09ea5-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09ea6-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09ea7-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09ea8-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09ea9-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09eaa-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09eab-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09eac-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09ead-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09eae-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09eaf-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09eb0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09eb1-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09eb2-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09eb3-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09eb4-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09eb5-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09eb6-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09eb7-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09eb8-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff09eb9-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5a0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5a1-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5a2-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5a3-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5a4-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5a5-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5a6-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5a7-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5a8-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5a9-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5aa-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5ab-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5ac-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5ad-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5ae-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5af-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5b0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5b1-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5b2-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5b3-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5b4-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5b5-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5b6-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5b7-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5b8-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5b9-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5ba-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5bb-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5bc-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5bd-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5be-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5bf-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5c0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5c1-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5c2-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5c3-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5c4-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5c5-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5c6-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5c7-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5c8-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5c9-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5ca-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5cb-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5cc-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5cd-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5ce-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5cf-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5d0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5d1-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5d2-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5d3-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5d4-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5d5-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0c5d6-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecb0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecb1-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecb2-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecb3-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecb4-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecb5-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecb6-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecb7-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecb8-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecb9-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecba-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecbb-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecbc-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecbd-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecbe-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecbf-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecc0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecc1-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecc2-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecc3-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecc4-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecc5-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecc6-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecc7-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecc8-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecc9-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecca-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0eccb-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0eccc-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0eccd-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecce-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0eccf-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecd0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecd1-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecd2-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecd3-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecd4-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecd5-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecd6-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecd7-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecd8-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecd9-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecda-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecdb-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecdc-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecdd-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecde-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ecdf-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ece0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ece1-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ece2-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ece3-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ece4-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff0ece5-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113c0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113c1-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113c2-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113c3-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113c4-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113c5-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113c6-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113c7-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113c8-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113c9-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113ca-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113cb-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113cc-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113cd-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113ce-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113cf-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113d0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113d1-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113d2-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113d3-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113d4-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113d5-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113d6-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113d7-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113d8-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113d9-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113da-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113db-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113dc-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113dd-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113de-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113df-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113e0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113e1-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113e2-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113e3-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113e4-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113e5-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113e6-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113e7-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113e8-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113e9-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113ea-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113eb-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113ec-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113ed-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113ee-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113ef-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113f0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113f1-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113f2-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113f3-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113f4-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113f5-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff113f6-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13ad0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13ad1-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13ad2-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13ad3-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13ad4-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13ad5-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13ad6-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13ad7-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13ad8-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13ad9-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13ada-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13adb-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13adc-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13add-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13ade-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13adf-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13ae0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13ae1-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13ae2-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13ae3-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13ae4-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13ae5-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13ae6-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13ae7-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13ae8-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13ae9-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13aea-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13aeb-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13aec-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13aed-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13aee-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13aef-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff13af0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff161e0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff161e1-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff161e2-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff161e3-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff161e4-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff161e5-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff161e6-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff161e7-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff161e8-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff161e9-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff161ea-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff161eb-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff161ec-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff161ed-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff161ee-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff161ef-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff161f0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff161f1-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff161f2-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff161f3-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff161f4-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff161f5-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff161f6-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff161f7-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("bff161f8-89ce-11df-a4ee-0800200c9a66")); + } + private void fill2000() { + this.addToOSC(UUID.fromString("deab70d0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70d1-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70d2-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70d3-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70d4-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70d5-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70d6-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70d7-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70d8-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70d9-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70da-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70db-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70dc-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70dd-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70de-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70df-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70e0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70e1-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70e2-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70e3-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70e4-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70e5-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70e6-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70e7-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70e8-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70e9-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70ea-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70eb-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70ec-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70ed-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70ee-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70ef-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab70f0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97e0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97e1-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97e2-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97e3-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97e4-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97e5-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97e6-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97e7-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97e8-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97e9-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97ea-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97eb-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97ec-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97ed-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97ee-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97ef-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97f0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97f1-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97f2-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97f3-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97f4-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97f5-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97f6-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97f7-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97f8-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97f9-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97fa-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97fb-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97fc-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97fd-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97fe-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab97ff-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab9800-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab9801-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab9802-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab9803-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab9804-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab9805-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab9806-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab9807-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab9808-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab9809-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab980a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab980b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab980c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab980d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab980e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab980f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab9810-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab9811-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab9812-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab9813-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deab9814-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbef0-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbef1-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbef2-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbef3-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbef4-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbef5-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbef6-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbef7-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbef8-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbef9-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbefa-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbefb-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbefc-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbefd-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbefe-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbeff-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf00-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf01-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf02-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf03-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf04-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf05-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf06-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf07-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf08-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf09-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf0a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf0b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf0c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf0d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf0e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf0f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf10-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf11-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf12-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf13-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf14-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf15-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf16-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf17-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf18-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf19-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf1a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf1b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf1c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf1d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf1e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf1f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf20-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf21-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabbf22-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe600-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe601-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe602-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe603-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe604-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe605-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe606-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe607-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe608-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe609-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe60a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe60b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe60c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe60d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe60e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe60f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe610-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe611-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe612-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe613-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe614-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe615-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe616-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe617-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe618-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe619-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe61a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe61b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe61c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe61d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe61e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe61f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe620-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe621-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe622-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe623-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe624-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe625-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe626-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe627-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe628-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe629-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe62a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe62b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe62c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe62d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe62e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe62f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe630-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe631-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe632-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe633-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe634-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe635-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe636-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deabe637-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d10-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d11-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d12-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d13-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d14-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d15-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d16-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d17-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d18-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d19-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d1a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d1b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d1c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d1d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d1e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d1f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d20-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d21-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d22-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d23-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d24-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d25-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d26-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d27-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d28-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d29-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d2a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d2b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d2c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d2d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d2e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d2f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d30-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d31-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d32-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d33-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d34-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d35-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d36-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d37-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d38-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d39-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d3a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d3b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac0d3c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3420-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3421-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3422-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3423-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3424-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3425-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3426-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3427-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3428-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3429-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac342a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac342b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac342c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac342d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac342e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac342f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3430-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3431-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3432-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3433-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3434-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3435-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3436-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3437-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3438-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3439-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac343a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac343b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac343c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac343d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac343e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac343f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3440-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3441-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3442-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3443-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3444-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3445-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3446-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3447-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3448-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3449-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac344a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac344b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac344c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac344d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac344e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac344f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3450-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3451-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3452-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac3453-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b30-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b31-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b32-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b33-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b34-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b35-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b36-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b37-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b38-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b39-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b3a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b3b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b3c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b3d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b3e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b3f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b40-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b41-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b42-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b43-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b44-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b45-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b46-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b47-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b48-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b49-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b4a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b4b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b4c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b4d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b4e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b4f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b50-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b51-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b52-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b53-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b54-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b55-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b56-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b57-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b58-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b59-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b5a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b5b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b5c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b5d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b5e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b5f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b60-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b61-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b62-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b63-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b64-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b65-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac5b66-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8240-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8241-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8242-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8243-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8244-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8245-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8246-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8247-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8248-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8249-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac824a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac824b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac824c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac824d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac824e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac824f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8250-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8251-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8252-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8253-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8254-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8255-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8256-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8257-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8258-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8259-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac825a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac825b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac825c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac825d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac825e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac825f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8260-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8261-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8262-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8263-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8264-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8265-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8266-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8267-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8268-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8269-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac826a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac826b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac826c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac826d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac826e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac826f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8270-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8271-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8272-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8273-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8274-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8275-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deac8276-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca950-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca951-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca952-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca953-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca954-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca955-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca956-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca957-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca958-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca959-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca95a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca95b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca95c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca95d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca95e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca95f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca960-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca961-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca962-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca963-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca964-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca965-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca966-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca967-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca968-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca969-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca96a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca96b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca96c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deaca96d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd060-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd061-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd062-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd063-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd064-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd065-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd066-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd067-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd068-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd069-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd06a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd06b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd06c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd06d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd06e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd06f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd070-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd071-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd072-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd073-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd074-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd075-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd076-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd077-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd078-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd079-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd07a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd07b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd07c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd07d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd07e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd07f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd080-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd081-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd082-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd083-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd084-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd085-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd086-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd087-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd088-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd089-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd08a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd08b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacd08c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacf770-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacf771-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacf772-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacf773-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacf774-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacf775-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacf776-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacf777-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacf778-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacf779-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacf77a-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacf77b-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacf77c-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacf77d-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacf77e-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacf77f-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacf780-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacf781-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacf782-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacf783-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacf784-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacf785-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacf786-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacf787-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("deacf788-89ce-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5b0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5b1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5b2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5b3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5b4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5b5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5b6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5b7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5b8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5b9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5ba-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5bb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5bc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5bd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5be-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5bf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5c0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5c1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5c2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5c3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5c4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5c5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5c6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5c7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5c8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5c9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5ca-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5cb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5cc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5cd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1d5ce-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcc0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcc1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcc2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcc3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcc4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcc5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcc6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcc7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcc8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcc9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcca-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fccb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fccc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fccd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcce-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fccf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcd0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcd1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcd2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcd3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcd4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcd5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcd6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcd7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcd8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcd9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcda-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcdb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcdc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcdd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcde-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcdf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fce0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fce1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fce2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fce3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fce4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fce5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fce6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fce7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fce8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fce9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcea-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fceb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcec-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fced-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcee-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcef-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcf0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcf1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcf2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e1fcf3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223d0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223d1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223d2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223d3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223d4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223d5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223d6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223d7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223d8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223d9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223da-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223db-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223dc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223dd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223de-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223df-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223e0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223e1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223e2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223e3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223e4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223e5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223e6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223e7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223e8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223e9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223ea-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223eb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223ec-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223ed-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223ee-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223ef-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223f0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223f1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223f2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e223f3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24ae0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24ae1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24ae2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24ae3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24ae4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24ae5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24ae6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24ae7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24ae8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24ae9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24aea-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24aeb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24aec-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24aed-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24aee-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24aef-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24af0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24af1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24af2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24af3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24af4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24af5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24af6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24af7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24af8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24af9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24afa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24afb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24afc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24afd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24afe-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24aff-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24b00-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24b01-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24b02-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24b03-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24b04-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24b05-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24b06-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24b07-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24b08-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24b09-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24b0a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24b0b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24b0c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24b0d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24b0e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24b0f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24b10-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24b11-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24b12-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24b13-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24b14-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e24b15-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e271f0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e271f1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e271f2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e271f3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e271f4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e271f5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e271f6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e271f7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e271f8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e271f9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e271fa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e271fb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e271fc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e271fd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e271fe-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e271ff-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e27200-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e27201-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e27202-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e27203-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e27204-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e27205-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e27206-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e27207-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e27208-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e27209-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2720a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2720b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2720c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2720d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2720e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2720f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e27210-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e27211-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e27212-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e27213-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e27214-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e27215-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e27216-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e27217-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e27218-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e27219-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2721a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2721b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2721c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2721d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2721e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2721f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e27220-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e27221-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e27222-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e27223-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e27224-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e27225-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29900-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29901-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29902-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29903-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29904-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29905-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29906-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29907-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29908-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29909-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2990a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2990b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2990c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2990d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2990e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2990f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29910-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29911-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29912-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29913-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29914-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29915-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29916-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29917-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29918-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29919-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2991a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2991b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2991c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2991d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2991e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2991f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29920-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29921-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29922-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29923-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29924-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29925-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29926-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29927-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29928-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e29929-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2992a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2992b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2992c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c010-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c011-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c012-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c013-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c014-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c015-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c016-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c017-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c018-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c019-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c01a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c01b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c01c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c01d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c01e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c01f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c020-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c021-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c022-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c023-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c024-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c025-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c026-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c027-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c028-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c029-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c02a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c02b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c02c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c02d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c02e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c02f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c030-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c031-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c032-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c033-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c034-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c035-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c036-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c037-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c038-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c039-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c03a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c03b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c03c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c03d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c03e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c03f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c040-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c041-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2c042-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e720-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e721-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e722-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e723-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e724-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e725-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e726-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e727-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e728-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e729-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e72a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e72b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e72c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e72d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e72e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e72f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e730-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e731-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e732-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e733-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e734-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e735-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e736-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e737-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e738-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e739-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e73a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e73b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e73c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e73d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e73e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e73f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e740-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e741-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e742-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e743-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e744-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e745-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e746-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e747-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e748-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e749-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e74a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e74b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e74c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e74d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e74e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e74f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e750-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e751-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e752-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e753-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e754-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e2e755-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e30-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e31-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e32-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e33-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e34-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e35-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e36-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e37-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e38-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e39-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e3a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e3b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e3c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e3d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e3e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e3f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e40-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e41-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e42-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e43-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e44-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e45-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e46-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e47-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e48-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e49-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e4a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e4b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e4c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e4d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e4e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e4f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e50-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e51-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e52-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e53-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e54-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e55-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e56-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e57-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e58-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e59-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e5a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e5b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e5c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e5d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e5e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e5f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e60-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e61-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e62-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e63-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e64-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e30e65-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33540-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33541-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33542-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33543-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33544-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33545-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33546-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33547-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33548-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33549-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e3354a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e3354b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e3354c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e3354d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e3354e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e3354f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33550-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33551-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33552-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33553-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33554-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33555-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33556-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33557-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33558-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33559-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e3355a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e3355b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e3355c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e3355d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e3355e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e3355f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33560-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33561-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33562-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33563-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33564-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33565-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33566-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33567-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33568-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e33569-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e3356a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e3356b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e35c50-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e35c51-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e35c52-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e35c53-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e35c54-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e35c55-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e35c56-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e35c57-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e35c58-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e35c59-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e35c5a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e35c5b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e35c5c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e35c5d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e35c5e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e35c5f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e35c60-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e35c61-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e35c62-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e35c63-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e35c64-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e35c65-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e35c66-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e35c67-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("12e35c68-89cf-11df-a4ee-0800200c9a66")); + } + private void fill3000() { + this.addToOSC(UUID.fromString("32779ea0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779ea1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779ea2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779ea3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779ea4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779ea5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779ea6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779ea7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779ea8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779ea9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779eaa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779eab-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779eac-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779ead-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779eae-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779eaf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779eb0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779eb1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779eb2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779eb3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779eb4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779eb5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779eb6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779eb7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779eb8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779eb9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779eba-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779ebb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779ebc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779ebd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779ebe-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779ebf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779ec0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779ec1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779ec2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32779ec3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5b0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5b1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5b2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5b3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5b4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5b5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5b6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5b7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5b8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5b9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5ba-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5bb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5bc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5bd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5be-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5bf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5c0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5c1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5c2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5c3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5c4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5c5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5c6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5c7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5c8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5c9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5ca-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5cb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5cc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5cd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5ce-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5cf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5d0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5d1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5d2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5d3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5d4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5d5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5d6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5d7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5d8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5d9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5da-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5db-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5dc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5dd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5de-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5df-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5e0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5e1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5e2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277c5e3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecc0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecc1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecc2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecc3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecc4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecc5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecc6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecc7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecc8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecc9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecca-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277eccb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277eccc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277eccd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecce-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277eccf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecd0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecd1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecd2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecd3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecd4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecd5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecd6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecd7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecd8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecd9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecda-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecdb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecdc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecdd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecde-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ecdf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3277ece0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813d0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813d1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813d2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813d3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813d4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813d5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813d6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813d7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813d8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813d9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813da-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813db-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813dc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813dd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813de-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813df-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813e0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813e1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813e2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813e3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813e4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813e5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813e6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813e7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813e8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813e9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813ea-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813eb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813ec-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813ed-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813ee-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813ef-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813f0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813f1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813f2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813f3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813f4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813f5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813f6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813f7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813f8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813f9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813fa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813fb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813fc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813fd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813fe-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327813ff-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32781400-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32781401-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32781402-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32781403-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783ae0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783ae1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783ae2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783ae3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783ae4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783ae5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783ae6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783ae7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783ae8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783ae9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783aea-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783aeb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783aec-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783aed-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783aee-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783aef-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783af0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783af1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783af2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783af3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783af4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783af5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783af6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783af7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783af8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783af9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783afa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783afb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783afc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783afd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783afe-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783aff-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783b00-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783b01-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783b02-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783b03-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783b04-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783b05-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783b06-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783b07-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783b08-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783b09-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783b0a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783b0b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783b0c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783b0d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783b0e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783b0f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783b10-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783b11-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783b12-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783b13-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783b14-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783b15-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32783b16-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327861f0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327861f1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327861f2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327861f3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327861f4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327861f5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327861f6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327861f7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327861f8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327861f9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327861fa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327861fb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327861fc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327861fd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327861fe-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("327861ff-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32786200-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32786201-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32786202-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32786203-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32786204-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32786205-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32786206-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32786207-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32786208-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32786209-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278620a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278620b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278620c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278620d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278620e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278620f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32786210-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32786211-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32786212-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32786213-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32786214-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32786215-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32786216-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32786217-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32786218-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32786219-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278621a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278621b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278621c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788900-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788901-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788902-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788903-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788904-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788905-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788906-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788907-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788908-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788909-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278890a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278890b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278890c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278890d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278890e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278890f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788910-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788911-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788912-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788913-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788914-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788915-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788916-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788917-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788918-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788919-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278891a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278891b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278891c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278891d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278891e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278891f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788920-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788921-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788922-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788923-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788924-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788925-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788926-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788927-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788928-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788929-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278892a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278892b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278892c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278892d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278892e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278892f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788930-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788931-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788932-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788933-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788934-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32788935-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b010-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b011-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b012-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b013-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b014-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b015-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b016-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b017-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b018-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b019-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b01a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b01b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b01c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b01d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b01e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b01f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b020-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b021-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b022-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b023-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b024-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b025-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b026-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b027-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b028-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b029-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b02a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b02b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b02c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b02d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b02e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b02f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b030-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b031-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b032-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b033-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b034-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b035-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b036-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b037-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b038-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b039-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b03a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b03b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b03c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b03d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b03e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b03f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b040-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b041-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b042-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278b043-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d720-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d721-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d722-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d723-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d724-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d725-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d726-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d727-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d728-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d729-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d72a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d72b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d72c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d72d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d72e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d72f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d730-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d731-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d732-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d733-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d734-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d735-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d736-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d737-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d738-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d739-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d73a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d73b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d73c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d73d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d73e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d73f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d740-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d741-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d742-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d743-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d744-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d745-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d746-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d747-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d748-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d749-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d74a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d74b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d74c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d74d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d74e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d74f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d750-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d751-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d752-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d753-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d754-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d755-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d756-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278d757-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe30-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe31-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe32-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe33-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe34-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe35-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe36-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe37-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe38-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe39-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe3a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe3b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe3c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe3d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe3e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe3f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe40-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe41-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe42-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe43-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe44-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe45-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe46-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe47-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe48-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe49-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe4a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe4b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe4c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe4d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe4e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe4f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe50-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe51-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe52-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe53-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe54-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe55-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe56-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3278fe57-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32792540-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32792541-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32792542-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32792543-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32792544-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32792545-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32792546-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32792547-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32792548-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32792549-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3279254a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3279254b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3279254c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3279254d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3279254e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("3279254f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32792550-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32792551-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32792552-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32792553-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32792554-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32792555-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32792556-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32792557-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("32792558-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28cf80-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28cf81-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28cf82-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28cf83-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f690-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f691-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f692-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f693-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f694-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f695-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f696-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f697-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f698-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f699-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f69a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f69b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f69c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f69d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f69e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f69f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f6a0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f6a1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f6a2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f6a3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f6a4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f6a5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f6a6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f6a7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f6a8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f6a9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f6aa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f6ab-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f6ac-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f6ad-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f6ae-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f6af-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f6b0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f6b1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f6b2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f6b3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f6b4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f6b5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f6b6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f6b7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f6b8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d28f6b9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291da0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291da1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291da2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291da3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291da4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291da5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291da6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291da7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291da8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291da9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291daa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dab-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dac-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dad-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dae-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291daf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291db0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291db1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291db2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291db3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291db4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291db5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291db6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291db7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291db8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291db9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dba-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dbb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dbc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dbd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dbe-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dbf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dc0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dc1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dc2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dc3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dc4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dc5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dc6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dc7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dc8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dc9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dca-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dcb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dcc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dcd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dce-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dcf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dd0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dd1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dd2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d291dd3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944b0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944b1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944b2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944b3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944b4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944b5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944b6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944b7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944b8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944b9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944ba-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944bb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944bc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944bd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944be-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944bf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944c0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944c1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944c2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944c3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944c4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944c5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944c6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944c7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944c8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944c9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944ca-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944cb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944cc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944cd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944ce-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944cf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944d0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944d1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944d2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944d3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944d4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944d5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944d6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944d7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944d8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944d9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944da-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944db-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944dc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944dd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944de-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944df-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2944e0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bc0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bc1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bc2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bc3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bc4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bc5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bc6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bc7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bc8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bc9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bca-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bcb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bcc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bcd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bce-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bcf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bd0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bd1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bd2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bd3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bd4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bd5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bd6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bd7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bd8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bd9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bda-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bdb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bdc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bdd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bde-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bdf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296be0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296be1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296be2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296be3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296be4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296be5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296be6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296be7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296be8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296be9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bea-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296beb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bec-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bed-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bee-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bef-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bf0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bf1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bf2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bf3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bf4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bf5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d296bf6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992d0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992d1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992d2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992d3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992d4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992d5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992d6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992d7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992d8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992d9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992da-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992db-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992dc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992dd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992de-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992df-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992e0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992e1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992e2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992e3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992e4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992e5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992e6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992e7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992e8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992e9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992ea-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992eb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992ec-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992ed-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992ee-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992ef-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992f0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992f1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992f2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992f3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992f4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992f5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992f6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992f7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2992f8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0800-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0801-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0802-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0803-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0804-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0805-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0806-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0807-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0808-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0809-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a080a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a080b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a080c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a080d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a080e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a080f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0810-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0811-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0812-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0813-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0814-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0815-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0816-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0817-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0818-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0819-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a081a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a081b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a081c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a081d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a081e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a081f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0820-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0821-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0822-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0823-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0824-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0825-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0826-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0827-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0828-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a0829-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a082a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a082b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a082c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a082d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f10-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f11-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f12-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f13-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f14-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f15-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f16-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f17-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f18-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f19-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f1a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f1b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f1c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f1d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f1e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f1f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f20-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f21-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f22-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f23-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f24-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f25-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f26-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f27-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f28-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f29-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f2a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f2b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f2c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a2f2d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5620-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5621-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5622-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5623-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5624-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5625-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5626-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5627-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5628-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5629-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a562a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a562b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a562c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a562d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a562e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a562f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5630-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5631-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5632-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5633-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5634-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5635-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5636-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5637-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5638-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5639-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a563a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a563b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a563c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a563d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a563e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a563f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5640-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5641-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5642-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5643-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5644-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5645-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5646-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5647-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5648-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5649-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a564a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a564b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a564c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a564d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a564e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a564f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5650-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5651-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5652-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5653-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5654-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5655-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a5656-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d30-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d31-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d32-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d33-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d34-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d35-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d36-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d37-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d38-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d39-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d3a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d3b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d3c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d3d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d3e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d3f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d40-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d41-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d42-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d43-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d44-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d45-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d46-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d47-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d48-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d49-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d4a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d4b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d4c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d4d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d4e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d4f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d50-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d51-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d52-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d53-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d54-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d55-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d56-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d57-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d58-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d59-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d5a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d5b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d5c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d5d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d5e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d5f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d60-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d61-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d62-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d63-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d64-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2a7d65-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa440-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa441-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa442-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa443-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa444-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa445-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa446-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa447-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa448-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa449-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa44a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa44b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa44c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa44d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa44e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa44f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa450-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa451-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa452-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa453-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa454-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa455-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa456-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa457-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa458-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa459-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa45a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa45b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa45c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa45d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa45e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa45f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa460-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa461-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa462-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa463-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa464-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa465-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa466-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa467-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa468-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa469-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa46a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa46b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa46c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa46d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2aa46e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2acb50-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2acb51-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2acb52-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2acb53-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2acb54-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2acb55-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2acb56-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2acb57-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2acb58-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2acb59-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2acb5a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2acb5b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2acb5c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2acb5d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2acb5e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2acb5f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2acb60-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2acb61-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2acb62-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2acb63-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2acb64-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2acb65-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2acb66-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2acb67-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4d2acb68-89cf-11df-a4ee-0800200c9a66")); + } + private void fill4000() { + this.addToOSC(UUID.fromString("630e2070-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e2071-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e2072-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e2073-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e2074-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e2075-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e2076-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e2077-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e2078-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e2079-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e207a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e207b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e207c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e207d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e207e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e207f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e2080-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e2081-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e2082-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e2083-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e2084-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e2085-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e2086-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e2087-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e2088-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e2089-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e4780-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e4781-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e4782-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e4783-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e4784-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e4785-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e4786-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e4787-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e4788-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e4789-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e478a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e478b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e478c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e478d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e478e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e478f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e4790-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e4791-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e4792-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e4793-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e4794-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e4795-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e4796-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e4797-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e4798-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e4799-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e479a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e479b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e479c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e479d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e479e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e479f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e47a0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e47a1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e47a2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e47a3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e47a4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e47a5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e47a6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e47a7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e47a8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e47a9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e47aa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e47ab-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e47ac-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e47ad-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e47ae-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6e90-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6e91-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6e92-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6e93-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6e94-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6e95-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6e96-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6e97-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6e98-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6e99-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6e9a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6e9b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6e9c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6e9d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6e9e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6e9f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6ea0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6ea1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6ea2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6ea3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6ea4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6ea5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6ea6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6ea7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6ea8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6ea9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6eaa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6eab-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6eac-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6ead-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6eae-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6eaf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6eb0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6eb1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6eb2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6eb3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6eb4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6eb5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6eb6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6eb7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6eb8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6eb9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6eba-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6ebb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6ebc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6ebd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e6ebe-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95a0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95a1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95a2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95a3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95a4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95a5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95a6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95a7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95a8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95a9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95aa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95ab-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95ac-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95ad-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95ae-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95af-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95b0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95b1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95b2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95b3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95b4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95b5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95b6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95b7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95b8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95b9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95ba-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95bb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95bc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95bd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95be-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95bf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95c0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95c1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95c2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95c3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95c4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95c5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95c6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95c7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95c8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95c9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95ca-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95cb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95cc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95cd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95ce-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95cf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95d0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95d1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95d2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95d3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95d4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95d5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630e95d6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcb0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcb1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcb2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcb3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcb4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcb5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcb6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcb7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcb8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcb9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcba-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcbb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcbc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcbd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcbe-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcbf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcc0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcc1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcc2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcc3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcc4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcc5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcc6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcc7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcc8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcc9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcca-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebccb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebccc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebccd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcce-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebccf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcd0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcd1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcd2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcd3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcd4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcd5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcd6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcd7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcd8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcd9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcda-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcdb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcdc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcdd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcde-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebcdf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebce0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebce1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebce2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebce3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebce4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ebce5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3c0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3c1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3c2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3c3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3c4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3c5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3c6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3c7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3c8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3c9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3ca-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3cb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3cc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3cd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3ce-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3cf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3d0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3d1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3d2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3d3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3d4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3d5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3d6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3d7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3d8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3d9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3da-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3db-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3dc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3dd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3de-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3df-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3e0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3e1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3e2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3e3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3e4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3e5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3e6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3e7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3e8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3e9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3ea-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3eb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3ec-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630ee3ed-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0ad0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0ad1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0ad2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0ad3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0ad4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0ad5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0ad6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0ad7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0ad8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0ad9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0ada-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0adb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0adc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0add-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0ade-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0adf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0ae0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0ae1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0ae2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0ae3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0ae4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0ae5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0ae6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0ae7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0ae8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0ae9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0aea-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0aeb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0aec-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0aed-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0aee-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0aef-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0af0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0af1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0af2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0af3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0af4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0af5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0af6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0af7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0af8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0af9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0afa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0afb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0afc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0afd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0afe-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0aff-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0b00-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0b01-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0b02-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f0b03-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31e0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31e1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31e2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31e3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31e4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31e5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31e6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31e7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31e8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31e9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31ea-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31eb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31ec-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31ed-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31ee-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31ef-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31f0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31f1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31f2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31f3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31f4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31f5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31f6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31f7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31f8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31f9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31fa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31fb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31fc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31fd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31fe-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f31ff-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f3200-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f3201-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f3202-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f3203-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f3204-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f3205-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f3206-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f3207-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f3208-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f3209-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f320a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f320b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f320c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f320d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f320e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f320f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f3210-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f3211-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f3212-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f3213-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f3214-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f3215-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f58f0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f58f1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f58f2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f58f3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f58f4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f58f5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f58f6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f58f7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f58f8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f58f9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f58fa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f58fb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f58fc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f58fd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f58fe-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f58ff-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5900-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5901-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5902-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5903-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5904-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5905-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5906-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5907-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5908-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5909-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f590a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f590b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f590c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f590d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f590e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f590f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5910-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5911-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5912-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5913-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5914-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5915-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5916-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5917-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5918-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5919-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f591a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f591b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f591c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f591d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f591e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f591f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5920-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5921-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5922-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5923-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5924-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5925-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5926-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5927-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f5928-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f8000-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f8001-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f8002-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f8003-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f8004-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f8005-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f8006-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f8007-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f8008-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f8009-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f800a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f800b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f800c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f800d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f800e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f800f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f8010-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f8011-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f8012-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f8013-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f8014-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f8015-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f8016-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f8017-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f8018-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f8019-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f801a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f801b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f801c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f801d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f801e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f801f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f8020-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f8021-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f8022-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f8023-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630f8024-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630fa710-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630fa711-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630fa712-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630fa713-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630fa714-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630fa715-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630fa716-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630fa717-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630fa718-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630fa719-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630fa71a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630fa71b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630fa71c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630fa71d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630fa71e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630fa71f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630fa720-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630fa721-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630fa722-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630fa723-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630fa724-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630fa725-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630fa726-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630fa727-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("630fa728-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621620-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621621-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621622-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621623-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621624-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621625-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621626-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621627-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621628-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621629-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62162a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62162b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62162c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62162d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62162e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62162f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621630-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621631-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621632-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621633-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621634-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621635-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621636-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621637-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621638-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621639-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62163a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62163b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62163c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62163d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62163e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62163f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621640-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621641-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621642-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621643-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621644-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621645-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621646-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621647-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621648-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d621649-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62164a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62164b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62164c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d30-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d31-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d32-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d33-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d34-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d35-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d36-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d37-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d38-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d39-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d3a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d3b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d3c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d3d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d3e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d3f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d40-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d41-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d42-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d43-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d44-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d45-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d46-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d47-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d48-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d49-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d4a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d4b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d4c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d4d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d4e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d4f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d50-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d51-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d52-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d53-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d54-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d55-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d56-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d57-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d58-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d59-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d5a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d5b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d5c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d5d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d5e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d5f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d60-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d61-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d62-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d623d63-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626440-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626441-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626442-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626443-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626444-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626445-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626446-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626447-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626448-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626449-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62644a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62644b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62644c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62644d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62644e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62644f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626450-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626451-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626452-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626453-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626454-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626455-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626456-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626457-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626458-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626459-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62645a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62645b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62645c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62645d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62645e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62645f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626460-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626461-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626462-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626463-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626464-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626465-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626466-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626467-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626468-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626469-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62646a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62646b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62646c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62646d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62646e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62646f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626470-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d626471-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b50-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b51-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b52-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b53-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b54-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b55-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b56-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b57-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b58-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b59-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b5a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b5b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b5c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b5d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b5e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b5f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b60-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b61-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b62-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b63-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b64-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b65-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b66-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b67-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b68-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b69-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b6a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b6b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b6c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b6d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b6e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b6f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b70-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b71-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b72-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b73-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b74-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b75-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b76-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b77-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b78-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b79-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b7a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b7b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b7c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b7d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b7e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b7f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b80-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b81-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b82-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b83-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d628b84-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b260-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b261-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b262-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b263-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b264-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b265-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b266-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b267-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b268-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b269-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b26a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b26b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b26c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b26d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b26e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b26f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b270-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b271-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b272-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b273-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b274-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b275-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b276-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b277-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b278-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b279-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b27a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b27b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b27c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b27d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b27e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b27f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b280-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b281-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b282-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b283-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b284-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b285-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b286-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b287-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b288-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b289-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b28a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b28b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62b28c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d970-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d971-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d972-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d973-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d974-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d975-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d976-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d977-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d978-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d979-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d97a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d97b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d97c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d97d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d97e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d97f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d980-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d981-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d982-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d983-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d984-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d985-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d986-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d987-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d988-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d989-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d98a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d98b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d98c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d98d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d98e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d98f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d990-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d991-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d992-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d993-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d994-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d995-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d996-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d997-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d998-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d999-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d99a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d99b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d99c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d99d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d99e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d99f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d9a0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d9a1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d9a2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d9a3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d9a4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d62d9a5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d630080-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d630081-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d630082-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d630083-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d630084-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d630085-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d630086-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d630087-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d630088-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d630089-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d63008a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d63008b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d63008c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d63008d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d63008e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d63008f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d630090-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d630091-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d630092-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d630093-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d630094-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d630095-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d630096-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d630097-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d630098-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d630099-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d63009a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d63009b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d63009c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d63009d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d63009e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d63009f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6300a0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6300a1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6300a2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6300a3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6300a4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6300a5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6300a6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6300a7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6300a8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6300a9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6300aa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6300ab-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6300ac-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6300ad-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6300ae-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6300af-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6300b0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6300b1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6300b2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6300b3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6300b4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6300b5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6300b6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d632790-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d632791-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d632792-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d632793-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d632794-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d632795-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d632796-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d632797-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d632798-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d632799-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d63279a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d63279b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d63279c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d63279d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d63279e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d63279f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327a0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327a1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327a2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327a3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327a4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327a5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327a6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327a7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327a8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327a9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327aa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327ab-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327ac-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327ad-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327ae-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327af-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327b0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327b1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327b2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327b3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327b4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327b5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327b6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327b7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327b8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327b9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327ba-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327bb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327bc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327bd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327be-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327bf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327c0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327c1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327c2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6327c3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ea0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ea1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ea2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ea3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ea4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ea5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ea6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ea7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ea8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ea9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634eaa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634eab-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634eac-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ead-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634eae-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634eaf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634eb0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634eb1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634eb2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634eb3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634eb4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634eb5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634eb6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634eb7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634eb8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634eb9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634eba-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ebb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ebc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ebd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ebe-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ebf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ec0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ec1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ec2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ec3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ec4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ec5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ec6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ec7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ec8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ec9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634eca-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ecb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ecc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ecd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ece-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ecf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ed0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ed1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ed2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ed3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ed4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ed5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d634ed6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375b0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375b1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375b2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375b3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375b4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375b5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375b6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375b7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375b8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375b9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375ba-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375bb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375bc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375bd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375be-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375bf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375c0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375c1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375c2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375c3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375c4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375c5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375c6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375c7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375c8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375c9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375ca-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375cb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375cc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375cd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375ce-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375cf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375d0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375d1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375d2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d6375d3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d639cc0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d639cc1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("7d639cc2-89cf-11df-a4ee-0800200c9a66")); + } + private void fill5000() { + this.addToOSC(UUID.fromString("95288320-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95288321-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95288322-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95288323-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95288324-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95288325-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa30-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa31-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa32-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa33-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa34-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa35-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa36-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa37-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa38-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa39-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa3a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa3b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa3c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa3d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa3e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa3f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa40-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa41-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa42-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa43-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa44-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa45-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa46-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa47-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa48-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa49-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa4a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa4b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa4c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa4d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa4e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa4f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa50-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa51-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa52-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa53-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa54-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa55-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa56-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa57-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa58-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa59-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa5a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa5b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa5c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa5d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa5e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa5f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa60-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa61-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa62-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa63-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528aa64-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d140-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d141-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d142-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d143-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d144-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d145-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d146-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d147-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d148-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d149-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d14a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d14b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d14c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d14d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d14e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d14f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d150-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d151-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d152-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d153-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d154-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d155-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d156-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d157-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d158-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d159-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d15a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d15b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d15c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d15d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d15e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d15f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d160-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d161-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d162-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d163-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d164-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d165-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d166-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d167-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d168-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d169-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d16a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d16b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d16c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d16d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d16e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d16f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d170-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d171-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d172-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528d173-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f850-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f851-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f852-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f853-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f854-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f855-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f856-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f857-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f858-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f859-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f85a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f85b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f85c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f85d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f85e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f85f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f860-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f861-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f862-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f863-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f864-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f865-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f866-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f867-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f868-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f869-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f86a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f86b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f86c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f86d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f86e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9528f86f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f60-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f61-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f62-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f63-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f64-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f65-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f66-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f67-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f68-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f69-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f6a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f6b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f6c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f6d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f6e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f6f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f70-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f71-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f72-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f73-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f74-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f75-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f76-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f77-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f78-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f79-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f7a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f7b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f7c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f7d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f7e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f7f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f80-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f81-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f82-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f83-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f84-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f85-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f86-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f87-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f88-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f89-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f8a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f8b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f8c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f8d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f8e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f8f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f90-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f91-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f92-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f93-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f94-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95291f95-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294670-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294671-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294672-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294673-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294674-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294675-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294676-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294677-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294678-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294679-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529467a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529467b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529467c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529467d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529467e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529467f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294680-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294681-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294682-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294683-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294684-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294685-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294686-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294687-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294688-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294689-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529468a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529468b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529468c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529468d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529468e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529468f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294690-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294691-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294692-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294693-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294694-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294695-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294696-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294697-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294698-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95294699-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529469a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529469b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529469c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d80-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d81-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d82-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d83-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d84-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d85-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d86-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d87-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d88-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d89-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d8a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d8b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d8c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d8d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d8e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d8f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d90-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d91-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d92-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d93-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d94-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d95-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d96-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d97-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d98-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d99-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d9a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d9b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d9c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d9d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d9e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296d9f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296da0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296da1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296da2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296da3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296da4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296da5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296da6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296da7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296da8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296da9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296daa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296dab-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296dac-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296dad-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296dae-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296daf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296db0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296db1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296db2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296db3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296db4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95296db5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95299490-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95299491-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95299492-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95299493-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95299494-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95299495-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95299496-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95299497-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95299498-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("95299499-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529949a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529949b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529949c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529949d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529949e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529949f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994a0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994a1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994a2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994a3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994a4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994a5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994a6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994a7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994a8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994a9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994aa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994ab-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994ac-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994ad-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994ae-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994af-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994b0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994b1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994b2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994b3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994b4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994b5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994b6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994b7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994b8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994b9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994ba-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994bb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994bc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994bd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994be-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994bf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994c0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994c1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952994c2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bba0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bba1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bba2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bba3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bba4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bba5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bba6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bba7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bba8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bba9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbaa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbab-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbac-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbad-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbae-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbaf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbb0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbb1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbb2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbb3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbb4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbb5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbb6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbb7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbb8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbb9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbba-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbbb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbbc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbbd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbbe-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbbf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbc0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbc1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbc2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbc3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbc4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbc5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbc6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbc7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbc8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbc9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbca-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbcb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbcc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbcd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbce-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbcf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbd0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbd1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbd2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbd3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbd4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529bbd5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2b0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2b1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2b2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2b3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2b4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2b5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2b6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2b7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2b8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2b9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2ba-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2bb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2bc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2bd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2be-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2bf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2c0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2c1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2c2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2c3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2c4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2c5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2c6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2c7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2c8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2c9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2ca-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2cb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2cc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2cd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2ce-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2cf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2d0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2d1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2d2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2d3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2d4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2d5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2d6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2d7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2d8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2d9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2da-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2db-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2dc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2dd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2de-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2df-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2e0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2e1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2e2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2e3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2e4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2e5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("9529e2e6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09c0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09c1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09c2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09c3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09c4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09c5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09c6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09c7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09c8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09c9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09ca-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09cb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09cc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09cd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09ce-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09cf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09d0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09d1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09d2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09d3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09d4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09d5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09d6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09d7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09d8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09d9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09da-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09db-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09dc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09dd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09de-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09df-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09e0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a09e1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a30d0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a30d1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a30d2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a30d3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a30d4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a30d5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a30d6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a30d7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a30d8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("952a30d9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06c0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06c1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06c2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06c3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06c4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06c5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06c6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06c7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06c8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06c9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06ca-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06cb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06cc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06cd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06ce-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06cf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06d0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06d1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06d2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06d3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06d4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06d5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06d6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06d7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06d8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06d9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06da-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06db-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06dc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06dd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06de-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06df-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06e0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06e1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06e2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06e3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06e4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06e5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06e6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06e7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06e8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06e9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06ea-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06eb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06ec-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06ed-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06ee-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06ef-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06f0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e06f1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2dd0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2dd1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2dd2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2dd3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2dd4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2dd5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2dd6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2dd7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2dd8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2dd9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2dda-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2ddb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2ddc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2ddd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2dde-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2ddf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2de0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2de1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2de2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2de3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2de4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2de5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2de6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2de7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2de8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2de9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2dea-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2deb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2dec-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2ded-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2dee-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2def-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2df0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e2df1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54e0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54e1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54e2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54e3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54e4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54e5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54e6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54e7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54e8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54e9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54ea-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54eb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54ec-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54ed-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54ee-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54ef-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54f0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54f1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54f2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54f3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54f4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54f5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54f6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54f7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54f8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54f9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54fa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54fb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54fc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54fd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54fe-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e54ff-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e5500-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e5501-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e5502-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e5503-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e5504-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e5505-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e5506-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e5507-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e5508-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e5509-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e550a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e550b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e550c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e550d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e550e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e550f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e5510-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7bf0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7bf1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7bf2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7bf3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7bf4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7bf5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7bf6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7bf7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7bf8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7bf9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7bfa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7bfb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7bfc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7bfd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7bfe-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7bff-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c00-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c01-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c02-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c03-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c04-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c05-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c06-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c07-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c08-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c09-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c0a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c0b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c0c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c0d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c0e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c0f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c10-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c11-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c12-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c13-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c14-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c15-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c16-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c17-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c18-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c19-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c1a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c1b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c1c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c1d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c1e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c1f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c20-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c21-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c22-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c23-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c24-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c25-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96e7c26-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea300-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea301-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea302-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea303-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea304-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea305-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea306-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea307-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea308-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea309-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea30a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea30b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea30c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea30d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea30e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea30f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea310-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea311-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea312-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea313-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea314-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea315-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea316-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea317-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea318-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea319-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea31a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea31b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea31c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea31d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea31e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea31f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea320-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea321-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea322-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea323-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea324-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea325-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea326-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea327-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea328-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea329-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea32a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea32b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea32c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea32d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea32e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea32f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea330-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ea331-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca10-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca11-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca12-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca13-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca14-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca15-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca16-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca17-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca18-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca19-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca1a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca1b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca1c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca1d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca1e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca1f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca20-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca21-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca22-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca23-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca24-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca25-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca26-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca27-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca28-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca29-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca2a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca2b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca2c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca2d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca2e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca2f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca30-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca31-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca32-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca33-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca34-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca35-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca36-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca37-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca38-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca39-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca3a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca3b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca3c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96eca3d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef120-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef121-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef122-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef123-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef124-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef125-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef126-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef127-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef128-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef129-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef12a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef12b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef12c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef12d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef12e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef12f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef130-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef131-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef132-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef133-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef134-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef135-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef136-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef137-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef138-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef139-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef13a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef13b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef13c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef13d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef13e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef13f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef140-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef141-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef142-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef143-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef144-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef145-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef146-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef147-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef148-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef149-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef14a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef14b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef14c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef14d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef14e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef14f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef150-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef151-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef152-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef153-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef154-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef155-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96ef156-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1830-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1831-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1832-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1833-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1834-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1835-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1836-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1837-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1838-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1839-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f183a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f183b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f183c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f183d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f183e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f183f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1840-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1841-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1842-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1843-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1844-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1845-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1846-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1847-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1848-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1849-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f184a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f184b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f184c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f184d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f184e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f184f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1850-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1851-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1852-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1853-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1854-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1855-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1856-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1857-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1858-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1859-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f185a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f185b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f185c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f185d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f185e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f185f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1860-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1861-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1862-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1863-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1864-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f1865-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f40-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f41-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f42-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f43-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f44-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f45-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f46-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f47-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f48-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f49-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f4a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f4b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f4c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f4d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f4e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f4f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f50-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f51-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f52-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f53-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f54-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f55-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f56-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f57-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f58-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f59-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f5a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f5b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f5c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f5d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f5e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f5f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f60-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f61-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f62-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f63-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f64-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f65-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f66-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f67-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f68-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f69-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f6a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f6b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f6c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f6d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f6e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f6f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f70-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f71-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f72-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f73-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f74-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f3f75-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f6650-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f6651-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f6652-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f6653-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f6654-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f6655-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f6656-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f6657-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f6658-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f6659-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f665a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f665b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f665c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f665d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f665e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f665f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f6660-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f6661-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f6662-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f6663-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f6664-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f6665-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f6666-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f6667-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f6668-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f6669-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f666a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f666b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f666c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f666d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f666e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f666f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f6670-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f6671-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f6672-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f6673-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f6674-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f8d60-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f8d61-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f8d62-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f8d63-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f8d64-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f8d65-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f8d66-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f8d67-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f8d68-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f8d69-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f8d6a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f8d6b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f8d6c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f8d6d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f8d6e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("a96f8d6f-89cf-11df-a4ee-0800200c9a66")); + } + private void fill6000() { + this.addToOSC(UUID.fromString("d05c7500-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7501-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7502-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7503-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7504-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7505-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7506-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7507-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7508-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7509-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c750a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c750b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c750c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c750d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c750e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c750f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7510-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7511-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7512-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7513-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7514-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7515-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7516-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7517-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7518-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7519-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c751a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c751b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c751c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c751d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c751e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c751f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7520-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7521-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7522-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7523-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7524-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7525-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7526-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7527-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7528-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c7529-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c752a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c10-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c11-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c12-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c13-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c14-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c15-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c16-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c17-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c18-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c19-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c1a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c1b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c1c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c1d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c1e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c1f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c20-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c21-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c22-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c23-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c24-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c25-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c26-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c27-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c28-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c29-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c2a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c2b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c2c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c2d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c2e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c2f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c30-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c31-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c32-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c33-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c34-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c35-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c36-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05c9c37-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc320-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc321-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc322-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc323-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc324-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc325-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc326-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc327-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc328-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc329-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc32a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc32b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc32c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc32d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc32e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc32f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc330-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc331-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc332-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc333-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc334-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc335-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc336-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc337-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc338-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc339-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc33a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc33b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc33c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc33d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc33e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc33f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc340-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc341-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc342-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc343-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc344-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc345-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc346-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc347-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc348-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc349-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc34a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc34b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc34c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc34d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc34e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc34f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc350-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cc351-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea30-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea31-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea32-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea33-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea34-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea35-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea36-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea37-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea38-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea39-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea3a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea3b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea3c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea3d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea3e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea3f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea40-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea41-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea42-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea43-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea44-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea45-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea46-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea47-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea48-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea49-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea4a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea4b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea4c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea4d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea4e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea4f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea50-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea51-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea52-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea53-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea54-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea55-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea56-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea57-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea58-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea59-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea5a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea5b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea5c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea5d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea5e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea5f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea60-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea61-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea62-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea63-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea64-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea65-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05cea66-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1140-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1141-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1142-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1143-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1144-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1145-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1146-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1147-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1148-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1149-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d114a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d114b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d114c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d114d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d114e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d114f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1150-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1151-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1152-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1153-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1154-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1155-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1156-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1157-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1158-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1159-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d115a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d115b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d115c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d115d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d115e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d115f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1160-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1161-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1162-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1163-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1164-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1165-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1166-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1167-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1168-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1169-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d116a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d116b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d116c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d116d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d116e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d116f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1170-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d1171-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3850-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3851-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3852-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3853-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3854-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3855-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3856-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3857-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3858-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3859-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d385a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d385b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d385c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d385d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d385e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d385f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3860-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3861-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3862-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3863-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3864-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3865-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3866-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3867-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3868-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3869-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d386a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d386b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d386c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d386d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d386e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d386f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3870-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3871-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3872-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3873-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3874-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3875-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3876-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3877-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3878-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d3879-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d387a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d387b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d387c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d387d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d387e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f60-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f61-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f62-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f63-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f64-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f65-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f66-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f67-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f68-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f69-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f6a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f6b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f6c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f6d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f6e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f6f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f70-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f71-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f72-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f73-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f74-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f75-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f76-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f77-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f78-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f79-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f7a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f7b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f7c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f7d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f7e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f7f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f80-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f81-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f82-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f83-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f84-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f85-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f86-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f87-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f88-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f89-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f8a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f8b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f8c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f8d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f8e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d5f8f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8670-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8671-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8672-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8673-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8674-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8675-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8676-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8677-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8678-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8679-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d867a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d867b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d867c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d867d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d867e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d867f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8680-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8681-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8682-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8683-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8684-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8685-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8686-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8687-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8688-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8689-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d868a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d868b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d868c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d868d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d868e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d868f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8690-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8691-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8692-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8693-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8694-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8695-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8696-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8697-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8698-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d8699-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d869a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d869b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d869c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d869d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d869e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d869f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d86a0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d86a1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d86a2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d86a3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d86a4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05d86a5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad80-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad81-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad82-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad83-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad84-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad85-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad86-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad87-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad88-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad89-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad8a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad8b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad8c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad8d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad8e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad8f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad90-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad91-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad92-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad93-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad94-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad95-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad96-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad97-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad98-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad99-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad9a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad9b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad9c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad9d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad9e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dad9f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dada0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dada1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dada2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dada3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dada4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dada5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dada6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dada7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dada8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dada9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dadaa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dadab-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dadac-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dadad-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dadae-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dadaf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dadb0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dadb1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dadb2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dadb3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dadb4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dadb5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dadb6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd490-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd491-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd492-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd493-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd494-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd495-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd496-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd497-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd498-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd499-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd49a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd49b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd49c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd49d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd49e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd49f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd4a0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd4a1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd4a2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd4a3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd4a4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd4a5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd4a6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd4a7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd4a8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd4a9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd4aa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd4ab-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd4ac-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd4ad-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd4ae-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd4af-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd4b0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dd4b1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dfba0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dfba1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dfba2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dfba3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dfba4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dfba5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dfba6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dfba7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dfba8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dfba9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dfbaa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dfbab-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dfbac-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dfbad-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dfbae-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dfbaf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dfbb0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dfbb1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dfbb2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dfbb3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dfbb4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dfbb5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dfbb6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("d05dfbb7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb40-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb41-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb42-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb43-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb44-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb45-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb46-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb47-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb48-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb49-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb4a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb4b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb4c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb4d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb4e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb4f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb50-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb51-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb52-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb53-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb54-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb55-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb56-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb57-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb58-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb59-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb5a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb5b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb5c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb5d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb5e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb5f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb60-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb61-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb62-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb63-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb64-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb65-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb66-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb67-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb68-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb69-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb6a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb6b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb6c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb6d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb6e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb6f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb70-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb71-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb72-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2cb73-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f250-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f251-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f252-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f253-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f254-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f255-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f256-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f257-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f258-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f259-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f25a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f25b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f25c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f25d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f25e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f25f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f260-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f261-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f262-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f263-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f264-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f265-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f266-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f267-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f268-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f269-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f26a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f26b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f26c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f26d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f26e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f26f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f270-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f271-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f272-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f273-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f274-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f275-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f276-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a2f277-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31960-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31961-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31962-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31963-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31964-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31965-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31966-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31967-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31968-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31969-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3196a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3196b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3196c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3196d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3196e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3196f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31970-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31971-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31972-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31973-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31974-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31975-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31976-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31977-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31978-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31979-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3197a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3197b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3197c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3197d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3197e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3197f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31980-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31981-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31982-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31983-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31984-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31985-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31986-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31987-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31988-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31989-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3198a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3198b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3198c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3198d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3198e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3198f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31990-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a31991-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34070-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34071-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34072-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34073-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34074-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34075-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34076-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34077-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34078-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34079-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3407a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3407b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3407c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3407d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3407e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3407f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34080-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34081-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34082-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34083-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34084-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34085-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34086-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34087-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34088-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34089-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3408a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3408b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3408c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3408d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3408e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3408f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34090-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34091-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34092-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34093-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34094-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34095-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34096-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34097-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34098-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a34099-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3409a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3409b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3409c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3409d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3409e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3409f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a340a0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a340a1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a340a2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a340a3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a340a4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a340a5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a340a6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a36780-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a36781-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a36782-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a36783-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a36784-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a36785-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a36786-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a36787-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a36788-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a36789-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3678a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3678b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3678c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3678d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3678e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3678f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a36790-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a36791-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a36792-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a36793-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a36794-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a36795-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a36796-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a36797-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a36798-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a36799-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3679a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3679b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3679c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3679d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3679e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3679f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a367a0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a367a1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a367a2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a367a3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a367a4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a367a5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a367a6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a367a7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a367a8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a367a9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a367aa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a367ab-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a367ac-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38e90-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38e91-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38e92-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38e93-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38e94-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38e95-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38e96-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38e97-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38e98-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38e99-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38e9a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38e9b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38e9c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38e9d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38e9e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38e9f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38ea0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38ea1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38ea2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38ea3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38ea4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38ea5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38ea6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38ea7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38ea8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38ea9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38eaa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38eab-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38eac-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38ead-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38eae-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38eaf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38eb0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38eb1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38eb2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38eb3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38eb4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38eb5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38eb6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38eb7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38eb8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38eb9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38eba-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38ebb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38ebc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38ebd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38ebe-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38ebf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38ec0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38ec1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38ec2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38ec3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a38ec4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5a0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5a1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5a2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5a3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5a4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5a5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5a6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5a7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5a8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5a9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5aa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5ab-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5ac-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5ad-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5ae-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5af-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5b0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5b1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5b2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5b3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5b4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5b5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5b6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5b7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5b8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5b9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5ba-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5bb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5bc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5bd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5be-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5bf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5c0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5c1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5c2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5c3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5c4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5c5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5c6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5c7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5c8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5c9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5ca-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5cb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5cc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5cd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5ce-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5cf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5d0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5d1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5d2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5d3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5d4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3b5d5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcb0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcb1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcb2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcb3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcb4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcb5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcb6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcb7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcb8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcb9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcba-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcbb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcbc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcbd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcbe-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcbf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcc0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcc1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcc2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcc3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcc4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcc5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcc6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcc7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcc8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcc9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcca-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dccb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dccc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dccd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcce-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dccf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcd0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcd1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcd2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcd3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcd4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcd5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcd6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcd7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcd8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcd9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcda-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcdb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcdc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcdd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcde-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dcdf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dce0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dce1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dce2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dce3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dce4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dce5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a3dce6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403c0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403c1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403c2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403c3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403c4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403c5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403c6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403c7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403c8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403c9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403ca-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403cb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403cc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403cd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403ce-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403cf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403d0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403d1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403d2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403d3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403d4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403d5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403d6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403d7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403d8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403d9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403da-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403db-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403dc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403dd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403de-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403df-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403e0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403e1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403e2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403e3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403e4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403e5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403e6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403e7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403e8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403e9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403ea-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403eb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403ec-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403ed-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403ee-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403ef-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403f0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403f1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403f2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403f3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403f4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a403f5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42ad0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42ad1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42ad2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42ad3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42ad4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42ad5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42ad6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42ad7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42ad8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42ad9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42ada-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42adb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42adc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42add-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42ade-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42adf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42ae0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42ae1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42ae2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42ae3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42ae4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42ae5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42ae6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42ae7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42ae8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42ae9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42aea-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42aeb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42aec-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42aed-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42aee-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42aef-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42af0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a42af1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a451e0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a451e1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a451e2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a451e3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a451e4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a451e5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a451e6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("e9a451e7-89cf-11df-a4ee-0800200c9a66")); + } + private void fill7000() { + this.addToOSC(UUID.fromString("fdedcd20-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedcd21-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedcd22-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedcd23-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedcd24-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedcd25-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedcd26-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedcd27-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedcd28-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedcd29-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedcd2a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedcd2b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedcd2c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedcd2d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedcd2e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedcd2f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedcd30-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedcd31-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedcd32-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedcd33-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedcd34-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedcd35-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedcd36-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedcd37-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedcd38-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedcd39-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedcd3a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf430-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf431-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf432-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf433-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf434-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf435-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf436-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf437-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf438-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf439-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf43a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf43b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf43c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf43d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf43e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf43f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf440-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf441-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf442-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf443-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf444-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf445-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf446-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf447-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf448-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf449-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf44a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf44b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf44c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf44d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf44e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf44f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf450-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf451-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf452-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf453-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf454-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf455-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf456-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf457-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf458-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf459-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf45a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf45b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf45c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf45d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf45e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf45f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf460-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf461-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdedf462-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b40-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b41-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b42-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b43-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b44-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b45-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b46-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b47-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b48-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b49-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b4a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b4b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b4c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b4d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b4e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b4f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b50-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b51-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b52-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b53-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b54-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b55-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b56-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b57-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b58-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b59-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b5a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b5b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b5c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b5d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b5e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b5f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b60-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b61-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b62-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b63-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b64-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b65-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b66-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b67-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b68-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b69-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b6a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b6b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b6c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b6d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b6e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b6f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b70-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee1b71-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4250-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4251-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4252-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4253-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4254-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4255-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4256-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4257-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4258-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4259-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee425a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee425b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee425c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee425d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee425e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee425f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4260-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4261-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4262-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4263-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4264-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4265-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4266-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4267-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4268-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4269-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee426a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee426b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee426c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee426d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee426e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee426f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4270-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4271-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4272-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4273-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4274-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4275-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee4276-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6960-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6961-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6962-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6963-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6964-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6965-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6966-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6967-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6968-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6969-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee696a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee696b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee696c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee696d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee696e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee696f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6970-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6971-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6972-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6973-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6974-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6975-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6976-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6977-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6978-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6979-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee697a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee697b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee697c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee697d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee697e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee697f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6980-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6981-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6982-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6983-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6984-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6985-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6986-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6987-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6988-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6989-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee698a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee698b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee698c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee698d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee698e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee698f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6990-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6991-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6992-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6993-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6994-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee6995-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9070-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9071-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9072-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9073-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9074-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9075-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9076-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9077-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9078-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9079-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee907a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee907b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee907c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee907d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee907e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee907f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9080-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9081-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9082-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9083-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9084-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9085-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9086-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9087-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9088-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9089-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee908a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee908b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee908c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee908d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee908e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee908f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9090-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9091-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9092-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9093-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9094-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9095-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9096-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9097-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9098-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee9099-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee909a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee909b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdee909c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb780-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb781-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb782-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb783-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb784-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb785-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb786-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb787-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb788-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb789-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb78a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb78b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb78c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb78d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb78e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb78f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb790-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb791-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb792-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb793-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb794-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb795-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb796-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb797-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb798-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb799-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb79a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb79b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb79c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb79d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb79e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb79f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb7a0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb7a1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb7a2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb7a3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb7a4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb7a5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb7a6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb7a7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb7a8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb7a9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb7aa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb7ab-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb7ac-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb7ad-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb7ae-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb7af-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb7b0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeeb7b1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeede90-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeede91-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeede92-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeede93-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeede94-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeede95-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeede96-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeede97-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeede98-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeede99-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeede9a-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeede9b-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeede9c-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeede9d-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeede9e-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeede9f-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedea0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedea1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedea2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedea3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedea4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedea5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedea6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedea7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedea8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedea9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedeaa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedeab-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedeac-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedead-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedeae-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedeaf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedeb0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedeb1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedeb2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedeb3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedeb4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedeb5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedeb6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedeb7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedeb8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedeb9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedeba-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedebb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedebc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedebd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedebe-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdeedebf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05a0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05a1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05a2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05a3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05a4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05a5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05a6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05a7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05a8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05a9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05aa-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05ab-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05ac-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05ad-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05ae-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05af-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05b0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05b1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05b2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05b3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05b4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05b5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05b6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05b7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05b8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05b9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05ba-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05bb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05bc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05bd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05be-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05bf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05c0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05c1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05c2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05c3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05c4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05c5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05c6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05c7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05c8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05c9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05ca-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05cb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05cc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05cd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05ce-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05cf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05d0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05d1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05d2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05d3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05d4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef05d5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cb0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cb1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cb2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cb3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cb4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cb5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cb6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cb7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cb8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cb9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cba-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cbb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cbc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cbd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cbe-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cbf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cc0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cc1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cc2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cc3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cc4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cc5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cc6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cc7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cc8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cc9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cca-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2ccb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2ccc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2ccd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cce-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2ccf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cd0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cd1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cd2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cd3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cd4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cd5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cd6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cd7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cd8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cd9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cda-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cdb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cdc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cdd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cde-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2cdf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2ce0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2ce1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2ce2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2ce3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2ce4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef2ce5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53c0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53c1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53c2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53c3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53c4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53c5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53c6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53c7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53c8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53c9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53ca-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53cb-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53cc-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53cd-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53ce-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53cf-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53d0-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53d1-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53d2-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53d3-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53d4-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53d5-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53d6-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53d7-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53d8-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53d9-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53da-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("fdef53db-89cf-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672d90-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672d91-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672d92-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672d93-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672d94-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672d95-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672d96-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672d97-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672d98-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672d99-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672d9a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672d9b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672d9c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672d9d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672d9e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672d9f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672da0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672da1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672da2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672da3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672da4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672da5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672da6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672da7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672da8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672da9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672daa-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672dab-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672dac-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672dad-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672dae-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672daf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672db0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672db1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672db2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672db3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e672db4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754a0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754a1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754a2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754a3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754a4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754a5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754a6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754a7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754a8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754a9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754aa-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754ab-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754ac-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754ad-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754ae-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754af-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754b0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754b1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754b2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754b3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754b4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754b5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754b6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754b7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754b8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754b9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754ba-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754bb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754bc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754bd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754be-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754bf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754c0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754c1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754c2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754c3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754c4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754c5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754c6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754c7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754c8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754c9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754ca-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754cb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754cc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754cd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754ce-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754cf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754d0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754d1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754d2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6754d3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bb0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bb1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bb2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bb3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bb4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bb5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bb6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bb7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bb8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bb9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bba-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bbb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bbc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bbd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bbe-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bbf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bc0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bc1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bc2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bc3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bc4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bc5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bc6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bc7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bc8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bc9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bca-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bcb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bcc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bcd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bce-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bcf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bd0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bd1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bd2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bd3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bd4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bd5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bd6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bd7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bd8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bd9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bda-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bdb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bdc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bdd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bde-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677bdf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677be0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e677be1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2c0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2c1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2c2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2c3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2c4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2c5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2c6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2c7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2c8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2c9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2ca-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2cb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2cc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2cd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2ce-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2cf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2d0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2d1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2d2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2d3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2d4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2d5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2d6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2d7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2d8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2d9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2da-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2db-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2dc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2dd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2de-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2df-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2e0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2e1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2e2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2e3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2e4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2e5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2e6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2e7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2e8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2e9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2ea-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2eb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2ec-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2ed-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2ee-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2ef-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2f0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2f1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2f2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2f3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2f4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2f5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2f6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67a2f7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9d0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9d1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9d2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9d3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9d4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9d5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9d6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9d7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9d8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9d9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9da-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9db-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9dc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9dd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9de-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9df-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9e0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9e1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9e2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9e3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9e4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9e5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9e6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9e7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9e8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9e9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9ea-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9eb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9ec-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9ed-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9ee-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9ef-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9f0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9f1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9f2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9f3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9f4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9f5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9f6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9f7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9f8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9f9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67c9fa-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0e0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0e1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0e2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0e3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0e4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0e5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0e6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0e7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0e8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0e9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0ea-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0eb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0ec-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0ed-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0ee-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0ef-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0f0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0f1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0f2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0f3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0f4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0f5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0f6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0f7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0f8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0f9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0fa-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0fb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0fc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0fd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0fe-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f0ff-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f100-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f101-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f102-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f103-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f104-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f105-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f106-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f107-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f108-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f109-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f10a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f10b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f10c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f10d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f10e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f10f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f110-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f111-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f112-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f113-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e67f114-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6817f0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6817f1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6817f2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6817f3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6817f4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6817f5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6817f6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6817f7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6817f8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6817f9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6817fa-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6817fb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6817fc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6817fd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6817fe-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e6817ff-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681800-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681801-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681802-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681803-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681804-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681805-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681806-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681807-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681808-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681809-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68180a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68180b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68180c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68180d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68180e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68180f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681810-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681811-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681812-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681813-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681814-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681815-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681816-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681817-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681818-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681819-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68181a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68181b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68181c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68181d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68181e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68181f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681820-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681821-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681822-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681823-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681824-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681825-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e681826-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f00-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f01-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f02-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f03-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f04-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f05-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f06-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f07-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f08-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f09-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f0a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f0b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f0c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f0d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f0e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f0f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f10-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f11-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f12-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f13-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f14-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f15-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f16-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f17-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f18-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f19-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f1a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f1b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f1c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f1d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f1e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f1f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f20-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f21-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f22-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f23-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f24-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f25-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f26-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f27-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f28-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f29-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f2a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f2b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f2c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f2d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f2e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f2f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f30-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f31-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f32-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f33-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f34-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e683f35-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686610-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686611-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686612-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686613-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686614-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686615-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686616-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686617-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686618-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686619-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68661a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68661b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68661c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68661d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68661e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68661f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686620-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686621-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686622-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686623-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686624-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686625-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686626-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686627-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686628-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686629-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68662a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68662b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68662c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68662d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68662e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68662f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686630-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686631-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686632-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686633-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686634-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686635-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686636-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686637-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686638-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686639-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68663a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68663b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68663c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68663d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68663e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68663f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686640-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686641-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e686642-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d20-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d21-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d22-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d23-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d24-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d25-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d26-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d27-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d28-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d29-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d2a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d2b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d2c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d2d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d2e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d2f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d30-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d31-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d32-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d33-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d34-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d35-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d36-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d37-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d38-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d39-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e688d3a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68b430-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68b431-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68b432-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68b433-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68b434-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68b435-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68b436-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68b437-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68b438-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68b439-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68b43a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68b43b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68b43c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68b43d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68b43e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68b43f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68b440-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68b441-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68b442-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68b443-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68b444-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("0e68b445-89d0-11df-a4ee-0800200c9a66")); + } + private void fill8000() { + this.addToOSC(UUID.fromString("23e3d1a0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1a1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1a2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1a3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1a4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1a5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1a6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1a7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1a8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1a9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1aa-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1ab-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1ac-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1ad-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1ae-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1af-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1b0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1b1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1b2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1b3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1b4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1b5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1b6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1b7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1b8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1b9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1ba-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1bb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1bc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1bd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1be-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1bf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1c0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1c1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1c2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3d1c3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8b0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8b1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8b2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8b3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8b4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8b5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8b6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8b7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8b8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8b9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8ba-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8bb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8bc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8bd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8be-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8bf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8c0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8c1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8c2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8c3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8c4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8c5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8c6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8c7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8c8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8c9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8ca-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8cb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8cc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8cd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8ce-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8cf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8d0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8d1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8d2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8d3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8d4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8d5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8d6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8d7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8d8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8d9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8da-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8db-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8dc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8dd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8de-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8df-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8e0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8e1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8e2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e3f8e3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fc0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fc1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fc2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fc3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fc4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fc5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fc6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fc7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fc8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fc9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fca-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fcb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fcc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fcd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fce-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fcf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fd0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fd1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fd2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fd3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fd4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fd5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fd6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fd7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fd8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fd9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fda-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fdb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fdc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fdd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fde-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fdf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fe0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fe1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fe2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fe3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fe4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fe5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fe6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fe7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fe8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fe9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fea-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41feb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fec-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fed-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fee-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41fef-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e41ff0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446d0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446d1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446d2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446d3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446d4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446d5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446d6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446d7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446d8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446d9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446da-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446db-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446dc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446dd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446de-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446df-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446e0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446e1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446e2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446e3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446e4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446e5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446e6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446e7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446e8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446e9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446ea-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446eb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446ec-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446ed-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446ee-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446ef-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446f0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446f1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446f2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446f3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446f4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e446f5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46de0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46de1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46de2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46de3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46de4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46de5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46de6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46de7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46de8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46de9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46dea-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46deb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46dec-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46ded-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46dee-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46def-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46df0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46df1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46df2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46df3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46df4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46df5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46df6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46df7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46df8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46df9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46dfa-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46dfb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46dfc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46dfd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46dfe-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46dff-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46e00-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46e01-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46e02-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46e03-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46e04-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46e05-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46e06-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46e07-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46e08-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46e09-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46e0a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46e0b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46e0c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46e0d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46e0e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46e0f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46e10-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46e11-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46e12-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46e13-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46e14-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46e15-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e46e16-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e494f0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e494f1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e494f2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e494f3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e494f4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e494f5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e494f6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e494f7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e494f8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e494f9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e494fa-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e494fb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e494fc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e494fd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e494fe-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e494ff-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e49500-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e49501-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e49502-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e49503-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e49504-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e49505-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e49506-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e49507-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e49508-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e49509-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4950a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4950b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4950c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4950d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4950e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4950f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e49510-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e49511-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e49512-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e49513-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e49514-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e49515-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e49516-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e49517-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e49518-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc00-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc01-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc02-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc03-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc04-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc05-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc06-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc07-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc08-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc09-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc0a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc0b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc0c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc0d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc0e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc0f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc10-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc11-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc12-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc13-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc14-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc15-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc16-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc17-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc18-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc19-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc1a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc1b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc1c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc1d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc1e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc1f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc20-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc21-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc22-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc23-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc24-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc25-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc26-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc27-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc28-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc29-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc2a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc2b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc2c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc2d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc2e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc2f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc30-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc31-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc32-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc33-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc34-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc35-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc36-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4bc37-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e310-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e311-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e312-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e313-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e314-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e315-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e316-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e317-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e318-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e319-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e31a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e31b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e31c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e31d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e31e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e31f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e320-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e321-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e322-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e323-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e324-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e325-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e326-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e327-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e328-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e329-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e32a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e32b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e32c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e32d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e32e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e32f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e330-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e331-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e332-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e333-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e334-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e335-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e336-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e337-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e338-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e339-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e33a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e33b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e33c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e33d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e33e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e33f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e340-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e341-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e342-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e4e343-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a20-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a21-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a22-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a23-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a24-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a25-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a26-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a27-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a28-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a29-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a2a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a2b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a2c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a2d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a2e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a2f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a30-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a31-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a32-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a33-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a34-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a35-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a36-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a37-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a38-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a39-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a3a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a3b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a3c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a3d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a3e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a3f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a40-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a41-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a42-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a43-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a44-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a45-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a46-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a47-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a48-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a49-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a4a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a4b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a4c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a4d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a4e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a4f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a50-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a51-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a52-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a53-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a54-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e50a55-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53130-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53131-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53132-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53133-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53134-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53135-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53136-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53137-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53138-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53139-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e5313a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e5313b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e5313c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e5313d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e5313e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e5313f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53140-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53141-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53142-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53143-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53144-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53145-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53146-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53147-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53148-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53149-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e5314a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e5314b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e5314c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e5314d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e5314e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e5314f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53150-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53151-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53152-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53153-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53154-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53155-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53156-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53157-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53158-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e53159-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e55840-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e55841-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e55842-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e55843-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e55844-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e55845-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e55846-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e55847-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e55848-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e55849-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e5584a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e5584b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e5584c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e5584d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e5584e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e5584f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e55850-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e55851-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e55852-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e55853-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e55854-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e55855-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e55856-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e55857-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("23e55858-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e27d60-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e27d61-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e27d62-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e27d63-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e27d64-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e27d65-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e27d66-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e27d67-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e27d68-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e27d69-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e27d6a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e27d6b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e27d6c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e27d6d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e27d6e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e27d6f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e27d70-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e27d71-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e27d72-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e27d73-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e27d74-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e27d75-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e27d76-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e27d77-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e27d78-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a470-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a471-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a472-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a473-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a474-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a475-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a476-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a477-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a478-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a479-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a47a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a47b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a47c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a47d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a47e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a47f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a480-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a481-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a482-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a483-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a484-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a485-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a486-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a487-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a488-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a489-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a48a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a48b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a48c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a48d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a48e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a48f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a490-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a491-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a492-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a493-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a494-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a495-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a496-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a497-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a498-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a499-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a49a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a49b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a49c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a49d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a49e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a49f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a4a0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a4a1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a4a2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2a4a3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb80-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb81-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb82-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb83-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb84-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb85-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb86-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb87-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb88-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb89-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb8a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb8b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb8c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb8d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb8e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb8f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb90-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb91-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb92-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb93-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb94-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb95-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb96-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb97-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb98-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb99-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb9a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb9b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb9c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb9d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb9e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cb9f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cba0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cba1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cba2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cba3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cba4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cba5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cba6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cba7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cba8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cba9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cbaa-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cbab-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cbac-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cbad-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cbae-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cbaf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cbb0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cbb1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2cbb2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f290-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f291-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f292-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f293-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f294-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f295-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f296-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f297-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f298-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f299-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f29a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f29b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f29c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f29d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f29e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f29f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f2a0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f2a1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f2a2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f2a3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f2a4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f2a5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f2a6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f2a7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f2a8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f2a9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f2aa-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f2ab-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f2ac-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f2ad-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f2ae-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f2af-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f2b0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f2b1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f2b2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f2b3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f2b4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f2b5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f2b6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f2b7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f2b8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e2f2b9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319a0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319a1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319a2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319a3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319a4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319a5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319a6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319a7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319a8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319a9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319aa-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319ab-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319ac-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319ad-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319ae-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319af-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319b0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319b1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319b2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319b3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319b4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319b5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319b6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319b7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319b8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319b9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319ba-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319bb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319bc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319bd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319be-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319bf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319c0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319c1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319c2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319c3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319c4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319c5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319c6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319c7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319c8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319c9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319ca-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319cb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319cc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319cd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319ce-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319cf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319d0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319d1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319d2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319d3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319d4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e319d5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340b0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340b1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340b2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340b3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340b4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340b5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340b6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340b7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340b8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340b9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340ba-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340bb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340bc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340bd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340be-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340bf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340c0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340c1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340c2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340c3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340c4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340c5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340c6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340c7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340c8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340c9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340ca-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340cb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340cc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340cd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340ce-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340cf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340d0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340d1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340d2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340d3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340d4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340d5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340d6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340d7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340d8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340d9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340da-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340db-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340dc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340dd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e340de-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367c0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367c1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367c2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367c3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367c4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367c5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367c6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367c7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367c8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367c9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367ca-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367cb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367cc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367cd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367ce-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367cf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367d0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367d1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367d2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367d3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367d4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367d5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367d6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367d7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367d8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367d9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367da-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367db-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367dc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367dd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367de-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367df-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367e0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367e1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367e2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367e3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367e4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367e5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367e6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367e7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367e8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367e9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367ea-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367eb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367ec-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367ed-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367ee-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367ef-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367f0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367f1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367f2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367f3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367f4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367f5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e367f6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ed0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ed1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ed2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ed3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ed4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ed5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ed6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ed7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ed8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ed9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38eda-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38edb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38edc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38edd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ede-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38edf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ee0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ee1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ee2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ee3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ee4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ee5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ee6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ee7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ee8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ee9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38eea-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38eeb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38eec-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38eed-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38eee-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38eef-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ef0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ef1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ef2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ef3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ef4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ef5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ef6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ef7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ef8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38ef9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38efa-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38efb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38efc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38efd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38efe-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38eff-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38f00-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38f01-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e38f02-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5e0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5e1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5e2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5e3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5e4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5e5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5e6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5e7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5e8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5e9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5ea-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5eb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5ec-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5ed-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5ee-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5ef-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5f0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5f1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5f2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5f3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5f4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5f5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5f6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5f7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5f8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5f9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5fa-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5fb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5fc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5fd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5fe-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b5ff-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b600-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b601-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b602-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b603-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b604-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b605-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b606-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b607-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b608-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b609-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b60a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b60b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b60c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b60d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b60e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b60f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b610-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b611-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b612-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b613-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b614-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b615-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3b616-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dcf0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dcf1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dcf2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dcf3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dcf4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dcf5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dcf6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dcf7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dcf8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dcf9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dcfa-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dcfb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dcfc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dcfd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dcfe-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dcff-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd00-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd01-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd02-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd03-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd04-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd05-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd06-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd07-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd08-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd09-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd0a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd0b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd0c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd0d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd0e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd0f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd10-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd11-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd12-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd13-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd14-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd15-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd16-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd17-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd18-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd19-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e3dd1a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e40400-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e40401-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e40402-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e40403-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e40404-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e40405-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e40406-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e40407-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e40408-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e40409-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e4040a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e4040b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e4040c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e4040d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e4040e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e4040f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e40410-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e40411-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e40412-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e40413-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e40414-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e40415-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e40416-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e40417-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("36e40418-89d0-11df-a4ee-0800200c9a66")); + } + private void fill9000() { + this.addToOSC(UUID.fromString("4821ecf0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ecf1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ecf2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ecf3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ecf4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ecf5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ecf6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ecf7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ecf8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ecf9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ecfa-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ecfb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ecfc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ecfd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ecfe-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ecff-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed00-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed01-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed02-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed03-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed04-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed05-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed06-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed07-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed08-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed09-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed0a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed0b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed0c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed0d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed0e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed0f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed10-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed11-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed12-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed13-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed14-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed15-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed16-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed17-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed18-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed19-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed1a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed1b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed1c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed1d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed1e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4821ed1f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221400-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221401-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221402-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221403-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221404-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221405-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221406-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221407-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221408-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221409-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822140a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822140b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822140c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822140d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822140e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822140f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221410-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221411-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221412-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221413-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221414-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221415-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221416-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221417-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221418-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221419-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822141a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822141b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822141c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822141d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822141e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822141f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221420-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221421-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221422-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221423-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221424-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221425-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221426-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221427-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221428-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221429-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822142a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822142b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822142c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822142d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822142e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822142f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221430-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221431-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221432-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48221433-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48223b10-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48223b11-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48223b12-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48223b13-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48223b14-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48223b15-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48223b16-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48223b17-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48223b18-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48226220-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48226221-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48226222-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48226223-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48226224-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48226225-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48226226-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48226227-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48226228-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48226229-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822622a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822622b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822622c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822622d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822622e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822622f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48226230-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48226231-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48226232-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48226233-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48226234-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48226235-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48226236-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48226237-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48226238-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48226239-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228930-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228931-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228932-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228933-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228934-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228935-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228936-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228937-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228938-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228939-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822893a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822893b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822893c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822893d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822893e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822893f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228940-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228941-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228942-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228943-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228944-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228945-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228946-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228947-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228948-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228949-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822894a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822894b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822894c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822894d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822894e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822894f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228950-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228951-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228952-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228953-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228954-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228955-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228956-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228957-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228958-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228959-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822895a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822895b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822895c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822895d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822895e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822895f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228960-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228961-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228962-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228963-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228964-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48228965-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b040-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b041-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b042-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b043-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b044-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b045-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b046-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b047-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b048-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b049-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b04a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b04b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b04c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b04d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b04e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b04f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b050-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b051-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b052-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b053-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b054-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b055-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b056-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b057-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b058-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b059-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b05a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b05b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b05c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b05d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b05e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b05f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b060-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b061-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b062-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b063-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b064-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b065-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b066-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b067-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b068-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b069-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b06a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b06b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b06c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b06d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b06e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b06f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822b070-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d750-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d751-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d752-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d753-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d754-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d755-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d756-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d757-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d758-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d759-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d75a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d75b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d75c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d75d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d75e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d75f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d760-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d761-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d762-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d763-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d764-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d765-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d766-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d767-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d768-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d769-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d76a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d76b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d76c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d76d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d76e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d76f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d770-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d771-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d772-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d773-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d774-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d775-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d776-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d777-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d778-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d779-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d77a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d77b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d77c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d77d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822d77e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe60-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe61-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe62-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe63-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe64-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe65-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe66-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe67-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe68-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe69-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe6a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe6b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe6c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe6d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe6e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe6f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe70-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe71-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe72-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe73-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe74-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe75-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe76-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe77-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe78-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe79-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe7a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe7b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe7c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe7d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe7e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe7f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe80-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe81-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe82-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe83-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe84-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe85-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe86-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe87-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe88-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe89-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe8a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe8b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe8c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe8d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe8e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe8f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe90-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe91-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe92-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe93-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe94-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4822fe95-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232570-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232571-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232572-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232573-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232574-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232575-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232576-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232577-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232578-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232579-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4823257a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4823257b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4823257c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4823257d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4823257e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4823257f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232580-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232581-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232582-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232583-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232584-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232585-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232586-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232587-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232588-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232589-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4823258a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4823258b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4823258c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4823258d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4823258e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4823258f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232590-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232591-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232592-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232593-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232594-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232595-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232596-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232597-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232598-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48232599-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4823259a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4823259b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4823259c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4823259d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4823259e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4823259f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("482325a0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("482325a1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("482325a2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("482325a3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("482325a4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("482325a5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c80-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c81-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c82-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c83-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c84-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c85-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c86-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c87-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c88-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c89-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c8a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c8b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c8c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c8d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c8e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c8f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c90-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c91-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c92-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c93-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c94-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c95-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c96-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c97-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c98-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c99-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c9a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c9b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c9c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c9d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c9e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234c9f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234ca0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234ca1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234ca2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234ca3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234ca4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234ca5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234ca6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234ca7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234ca8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234ca9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234caa-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234cab-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234cac-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234cad-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234cae-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234caf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234cb0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234cb1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234cb2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234cb3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234cb4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234cb5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48234cb6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48237390-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48237391-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48237392-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48237393-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48237394-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48237395-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48237396-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48237397-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48237398-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48237399-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4823739a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4823739b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4823739c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4823739d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4823739e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("4823739f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("482373a0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("482373a1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("482373a2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("482373a3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("482373a4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("482373a5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("482373a6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("482373a7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("482373a8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("482373a9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("482373aa-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("482373ab-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("482373ac-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("482373ad-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("482373ae-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("482373af-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("482373b0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("482373b1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48239aa0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48239aa1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48239aa2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48239aa3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48239aa4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48239aa5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48239aa6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48239aa7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48239aa8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48239aa9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48239aaa-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48239aab-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48239aac-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48239aad-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48239aae-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48239aaf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48239ab0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("48239ab1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be436d0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be436d1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be436d2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be436d3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be436d4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be436d5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be436d6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be436d7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be436d8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be436d9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be436da-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be436db-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be436dc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be436dd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be436de-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be436df-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be436e0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be436e1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be436e2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be436e3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be436e4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be436e5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be436e6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45de0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45de1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45de2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45de3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45de4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45de5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45de6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45de7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45de8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45de9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45dea-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45deb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45dec-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45ded-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45dee-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45def-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45df0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45df1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45df2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45df3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45df4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45df5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45df6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45df7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45df8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45df9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45dfa-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45dfb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45dfc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45dfd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45dfe-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45dff-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45e00-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45e01-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45e02-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45e03-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45e04-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45e05-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45e06-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45e07-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45e08-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45e09-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45e0a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45e0b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45e0c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45e0d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45e0e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45e0f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45e10-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45e11-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45e12-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be45e13-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be484f0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be484f1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be484f2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be484f3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be484f4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be484f5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be484f6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be484f7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be484f8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be484f9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be484fa-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be484fb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be484fc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be484fd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be484fe-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be484ff-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be48500-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be48501-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be48502-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be48503-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be48504-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be48505-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be48506-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be48507-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be48508-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be48509-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4850a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4850b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4850c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4850d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4850e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4850f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be48510-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be48511-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be48512-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be48513-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be48514-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be48515-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be48516-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be48517-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be48518-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be48519-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4851a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4851b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4851c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4851d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4851e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4851f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be48520-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be48521-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac00-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac01-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac02-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac03-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac04-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac05-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac06-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac07-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac08-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac09-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac0a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac0b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac0c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac0d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac0e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac0f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac10-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac11-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac12-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac13-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac14-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac15-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac16-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac17-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac18-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac19-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac1a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac1b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac1c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac1d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac1e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac1f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac20-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac21-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac22-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac23-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac24-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac25-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac26-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac27-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac28-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac29-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac2a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac2b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac2c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac2d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac2e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac2f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac30-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac31-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac32-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac33-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac34-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4ac35-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d310-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d311-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d312-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d313-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d314-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d315-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d316-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d317-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d318-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d319-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d31a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d31b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d31c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d31d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d31e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d31f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d320-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d321-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d322-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d323-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d324-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d325-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d326-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d327-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d328-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d329-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d32a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d32b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d32c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d32d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d32e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d32f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d330-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d331-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d332-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d333-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d334-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d335-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d336-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d337-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d338-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d339-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4d33a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa20-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa21-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa22-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa23-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa24-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa25-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa26-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa27-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa28-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa29-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa2a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa2b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa2c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa2d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa2e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa2f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa30-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa31-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa32-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa33-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa34-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa35-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa36-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa37-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa38-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa39-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa3a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa3b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa3c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa3d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa3e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa3f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa40-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa41-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa42-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa43-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa44-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa45-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa46-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa47-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa48-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa49-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa4a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa4b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be4fa4c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52130-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52131-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52132-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52133-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52134-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52135-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52136-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52137-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52138-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52139-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5213a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5213b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5213c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5213d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5213e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5213f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52140-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52141-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52142-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52143-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52144-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52145-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52146-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52147-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52148-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52149-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5214a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5214b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5214c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5214d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5214e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5214f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52150-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52151-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52152-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52153-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52154-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52155-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52156-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52157-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52158-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52159-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5215a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5215b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5215c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5215d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5215e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5215f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52160-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52161-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52162-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52163-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52164-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52165-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be52166-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54840-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54841-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54842-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54843-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54844-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54845-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54846-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54847-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54848-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54849-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5484a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5484b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5484c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5484d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5484e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5484f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54850-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54851-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54852-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54853-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54854-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54855-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54856-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54857-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54858-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54859-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5485a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5485b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5485c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5485d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5485e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5485f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54860-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54861-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54862-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54863-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54864-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54865-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54866-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54867-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54868-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54869-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5486a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5486b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5486c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5486d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5486e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5486f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54870-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54871-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54872-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54873-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54874-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54875-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be54876-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f50-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f51-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f52-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f53-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f54-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f55-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f56-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f57-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f58-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f59-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f5a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f5b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f5c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f5d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f5e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f5f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f60-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f61-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f62-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f63-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f64-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f65-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f66-89d0-11df-a4ee-0800200c9a66")); + } + private void fill10000() { + this.addToOSC(UUID.fromString("5be56f67-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f68-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f69-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f6a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f6b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f6c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f6d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f6e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f6f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f70-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f71-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f72-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f73-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f74-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f75-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f76-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f77-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f78-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f79-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f7a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f7b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f7c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f7d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f7e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f7f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f80-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f81-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be56f82-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59660-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59661-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59662-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59663-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59664-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59665-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59666-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59667-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59668-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59669-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5966a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5966b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5966c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5966d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5966e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5966f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59670-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59671-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59672-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59673-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59674-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59675-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59676-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59677-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59678-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59679-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5967a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5967b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5967c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5967d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5967e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5967f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59680-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59681-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59682-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59683-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59684-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59685-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59686-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59687-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59688-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be59689-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5968a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5968b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5968c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5968d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5968e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5bd70-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5bd71-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5bd72-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5bd73-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5bd74-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5bd75-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5bd76-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5bd77-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5bd78-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5bd79-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5bd7a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5bd7b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5bd7c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5bd7d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5bd7e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5bd7f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5bd80-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5bd81-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5bd82-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5bd83-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5bd84-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5bd85-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5bd86-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5bd87-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("5be5bd88-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07cfb0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07cfb1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07cfb2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07cfb3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07cfb4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07cfb5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07cfb6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6c0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6c1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6c2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6c3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6c4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6c5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6c6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6c7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6c8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6c9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6ca-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6cb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6cc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6cd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6ce-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6cf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6d0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6d1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6d2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6d3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6d4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6d5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6d6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6d7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6d8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6d9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6da-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6db-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6dc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6dd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6de-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6df-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6e0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6e1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6e2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6e3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6e4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6e5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6e6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6e7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6e8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6e9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6ea-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6eb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6ec-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6ed-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6ee-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6ef-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6f0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6f1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6f2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f07f6f3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081dd0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081dd1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081dd2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081dd3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081dd4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081dd5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081dd6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081dd7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081dd8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081dd9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081dda-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081ddb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081ddc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081ddd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081dde-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081ddf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081de0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081de1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081de2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081de3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081de4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081de5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081de6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081de7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081de8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081de9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081dea-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081deb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081dec-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081ded-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081dee-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081def-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081df0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081df1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f081df2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844e0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844e1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844e2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844e3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844e4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844e5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844e6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844e7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844e8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844e9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844ea-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844eb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844ec-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844ed-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844ee-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844ef-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844f0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844f1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844f2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844f3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844f4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844f5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844f6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844f7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844f8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844f9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844fa-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844fb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844fc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844fd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844fe-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f0844ff-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f084500-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f084501-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f084502-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f084503-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f084504-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f084505-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f084506-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f084507-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f084508-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f084509-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08450a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08450b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08450c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08450d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08450e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08450f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f084510-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086bf0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086bf1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086bf2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086bf3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086bf4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086bf5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086bf6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086bf7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086bf8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086bf9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086bfa-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086bfb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086bfc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086bfd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086bfe-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086bff-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c00-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c01-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c02-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c03-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c04-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c05-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c06-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c07-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c08-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c09-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c0a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c0b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c0c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c0d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c0e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c0f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c10-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c11-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c12-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c13-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c14-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c15-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c16-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c17-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c18-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c19-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c1a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c1b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c1c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c1d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c1e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c1f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c20-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c21-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c22-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c23-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c24-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f086c25-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089300-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089301-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089302-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089303-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089304-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089305-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089306-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089307-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089308-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089309-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08930a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08930b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08930c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08930d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08930e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08930f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089310-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089311-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089312-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089313-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089314-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089315-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089316-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089317-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089318-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089319-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08931a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08931b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08931c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08931d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08931e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08931f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089320-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089321-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089322-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089323-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089324-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089325-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089326-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089327-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089328-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f089329-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08932a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08932b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08932c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08932d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba10-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba11-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba12-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba13-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba14-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba15-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba16-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba17-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba18-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba19-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba1a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba1b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba1c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba1d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba1e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba1f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba20-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba21-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba22-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba23-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba24-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba25-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba26-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba27-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba28-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba29-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba2a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba2b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba2c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba2d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba2e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba2f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba30-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba31-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba32-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba33-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba34-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba35-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba36-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba37-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba38-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba39-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba3a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba3b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba3c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba3d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba3e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba3f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba40-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba41-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08ba42-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e120-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e121-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e122-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e123-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e124-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e125-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e126-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e127-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e128-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e129-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e12a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e12b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e12c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e12d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e12e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e12f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e130-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e131-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e132-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e133-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e134-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e135-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e136-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e137-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e138-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e139-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e13a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e13b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e13c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e13d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e13e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e13f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e140-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e141-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e142-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e143-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e144-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e145-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e146-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e147-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e148-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e149-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e14a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e14b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e14c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e14d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e14e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e14f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e150-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e151-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e152-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e153-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e154-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f08e155-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090830-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090831-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090832-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090833-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090834-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090835-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090836-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090837-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090838-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090839-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09083a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09083b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09083c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09083d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09083e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09083f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090840-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090841-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090842-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090843-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090844-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090845-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090846-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090847-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090848-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090849-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09084a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09084b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09084c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09084d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09084e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09084f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090850-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090851-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090852-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090853-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090854-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090855-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090856-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090857-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090858-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090859-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09085a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09085b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09085c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09085d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09085e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09085f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090860-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090861-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090862-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090863-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090864-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090865-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090866-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090867-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f090868-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f40-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f41-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f42-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f43-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f44-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f45-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f46-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f47-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f48-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f49-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f4a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f4b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f4c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f4d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f4e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f4f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f50-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f51-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f52-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f53-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f54-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f55-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f56-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f57-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f58-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f59-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f5a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f5b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f5c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f5d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f5e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f5f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f60-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f61-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f62-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f63-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f64-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f65-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f66-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f67-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f68-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f69-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f6a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f6b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f6c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f6d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f6e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f6f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f70-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f71-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f72-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f73-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f74-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f092f75-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f095650-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f095651-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f095652-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f095653-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f095654-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f095655-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f095656-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f095657-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f095658-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f095659-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09565a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09565b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09565c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09565d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09565e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09565f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f095660-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f095661-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f095662-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f095663-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f095664-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f095665-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f095666-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f095667-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f095668-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f095669-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09566a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09566b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09566c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09566d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09566e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f09566f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f095670-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f095671-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f097d60-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f097d61-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f097d62-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f097d63-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f097d64-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f097d65-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("6f097d66-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db5130-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db5131-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db5132-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db5133-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db5134-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db5135-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db5136-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db5137-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db5138-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db5139-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db513a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db513b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db513c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7840-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7841-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7842-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7843-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7844-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7845-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7846-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7847-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7848-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7849-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db784a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db784b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db784c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db784d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db784e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db784f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7850-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7851-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7852-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7853-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7854-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7855-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7856-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7857-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7858-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7859-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db785a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db785b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db785c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db785d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db785e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db785f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7860-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7861-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7862-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7863-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7864-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7865-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7866-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7867-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7868-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7869-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db786a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db786b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db786c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db786d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db786e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db786f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7870-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7871-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db7872-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f50-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f51-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f52-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f53-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f54-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f55-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f56-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f57-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f58-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f59-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f5a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f5b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f5c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f5d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f5e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f5f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f60-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f61-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f62-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f63-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f64-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f65-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f66-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f67-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f68-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f69-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f6a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f6b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f6c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f6d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f6e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f6f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f70-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f71-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f72-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f73-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f74-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f75-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f76-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f77-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f78-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85db9f79-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc660-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc661-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc662-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc663-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc664-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc665-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc666-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc667-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc668-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc669-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc66a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc66b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc66c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc66d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc66e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc66f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc670-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc671-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc672-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc673-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc674-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc675-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc676-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc677-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc678-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc679-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc67a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc67b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc67c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc67d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc67e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc67f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc680-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc681-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc682-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc683-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc684-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc685-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc686-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc687-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc688-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc689-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc68a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc68b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc68c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc68d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc68e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc68f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc690-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbc691-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed70-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed71-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed72-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed73-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed74-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed75-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed76-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed77-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed78-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed79-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed7a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed7b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed7c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed7d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed7e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed7f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed80-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed81-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed82-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed83-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed84-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed85-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed86-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed87-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed88-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed89-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed8a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed8b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed8c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed8d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed8e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed8f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed90-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed91-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed92-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed93-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed94-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed95-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed96-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed97-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed98-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed99-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed9a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed9b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed9c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed9d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed9e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbed9f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbeda0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbeda1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbeda2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbeda3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbeda4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbeda5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dbeda6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc1480-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc1481-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc1482-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc1483-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc1484-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc1485-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc1486-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc1487-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc1488-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc1489-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc148a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc148b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc148c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc148d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc148e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc148f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc1490-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc1491-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc1492-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc1493-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc1494-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc1495-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc1496-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc1497-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc1498-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc1499-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc149a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc149b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc149c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc149d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc149e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc149f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc14a0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc14a1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc14a2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc14a3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc14a4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc14a5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc14a6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3b90-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3b91-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3b92-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3b93-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3b94-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3b95-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3b96-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3b97-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3b98-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3b99-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3b9a-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3b9b-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3b9c-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3b9d-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3b9e-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3b9f-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3ba0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3ba1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3ba2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3ba3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3ba4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3ba5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3ba6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3ba7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3ba8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3ba9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3baa-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3bab-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3bac-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3bad-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3bae-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3baf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3bb0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3bb1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3bb2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3bb3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3bb4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3bb5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3bb6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3bb7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3bb8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3bb9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3bba-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3bbb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3bbc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3bbd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3bbe-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3bbf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3bc0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3bc1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3bc2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc3bc3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62a0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62a1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62a2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62a3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62a4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62a5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62a6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62a7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62a8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62a9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62aa-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62ab-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62ac-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62ad-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62ae-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62af-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62b0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62b1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62b2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62b3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62b4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62b5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62b6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62b7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62b8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62b9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62ba-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62bb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62bc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62bd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62be-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62bf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62c0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62c1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62c2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62c3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62c4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62c5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62c6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62c7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62c8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62c9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62ca-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62cb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62cc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62cd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62ce-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62cf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62d0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62d1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62d2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62d3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62d4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc62d5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89b0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89b1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89b2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89b3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89b4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89b5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89b6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89b7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89b8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89b9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89ba-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89bb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89bc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89bd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89be-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89bf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89c0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89c1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89c2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89c3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89c4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89c5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89c6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89c7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89c8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89c9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89ca-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89cb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89cc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89cd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89ce-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89cf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89d0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89d1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89d2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89d3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89d4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89d5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89d6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89d7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89d8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89d9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89da-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89db-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89dc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89dd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89de-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89df-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89e0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89e1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89e2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89e3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89e4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89e5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dc89e6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0c0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0c1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0c2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0c3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0c4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0c5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0c6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0c7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0c8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0c9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0ca-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0cb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0cc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0cd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0ce-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0cf-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0d0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0d1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0d2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0d3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0d4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0d5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0d6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0d7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0d8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0d9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0da-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0db-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0dc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0dd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0de-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0df-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0e0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0e1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0e2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0e3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0e4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0e5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0e6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0e7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0e8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0e9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0ea-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0eb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0ec-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0ed-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0ee-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0ef-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0f0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0f1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0f2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0f3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0f4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcb0f5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7d0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7d1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7d2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7d3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7d4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7d5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7d6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7d7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7d8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7d9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7da-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7db-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7dc-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7dd-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7de-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7df-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7e0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7e1-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7e2-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7e3-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7e4-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7e5-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7e6-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7e7-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7e8-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7e9-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7ea-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7eb-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7ec-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7ed-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7ee-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7ef-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcd7f0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcfee0-89d0-11df-a4ee-0800200c9a66")); + this.addToOSC(UUID.fromString("85dcfee1-89d0-11df-a4ee-0800200c9a66")); + } + private void fill11000() { + this.addToAnon(UUID.fromString("02848590-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02848591-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02848592-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02848593-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02848594-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02848595-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02848596-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02848597-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02848598-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02848599-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284859a-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284859b-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284859c-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284859d-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284859e-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284859f-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028485a0-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028485a1-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284aca0-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284aca1-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284aca2-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284aca3-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284aca4-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284aca5-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284aca6-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284aca7-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284aca8-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284aca9-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acaa-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acab-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acac-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acad-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acae-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acaf-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acb0-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acb1-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acb2-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acb3-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acb4-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acb5-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acb6-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acb7-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acb8-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acb9-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acba-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acbb-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acbc-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acbd-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acbe-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acbf-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acc0-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acc1-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acc2-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acc3-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acc4-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acc5-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acc6-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acc7-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acc8-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acc9-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acca-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284accb-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284accc-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284accd-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acce-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284accf-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acd0-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284acd1-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3b0-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3b1-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3b2-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3b3-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3b4-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3b5-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3b6-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3b7-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3b8-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3b9-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3ba-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3bb-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3bc-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3bd-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3be-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3bf-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3c0-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3c1-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3c2-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3c3-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3c4-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3c5-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3c6-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3c7-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3c8-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3c9-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3ca-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3cb-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3cc-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3cd-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3ce-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3cf-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3d0-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3d1-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3d2-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3d3-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3d4-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3d5-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3d6-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3d7-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3d8-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3d9-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3da-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3db-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3dc-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3dd-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3de-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3df-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3e0-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3e1-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284d3e2-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fac0-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fac1-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fac2-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fac3-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fac4-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fac5-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fac6-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fac7-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fac8-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fac9-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284faca-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284facb-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284facc-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284facd-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284face-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284facf-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fad0-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fad1-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fad2-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fad3-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fad4-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fad5-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fad6-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fad7-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fad8-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fad9-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fada-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fadb-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fadc-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fadd-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fade-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fadf-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fae0-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fae1-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fae2-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fae3-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fae4-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fae5-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fae6-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fae7-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fae8-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284fae9-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284faea-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284faeb-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284faec-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284faed-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284faee-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284faef-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284faf0-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284faf1-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284faf2-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0284faf3-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521d0-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521d1-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521d2-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521d3-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521d4-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521d5-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521d6-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521d7-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521d8-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521d9-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521da-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521db-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521dc-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521dd-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521de-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521df-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521e0-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521e1-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521e2-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521e3-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521e4-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521e5-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521e6-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521e7-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521e8-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521e9-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521ea-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521eb-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521ec-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521ed-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521ee-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521ef-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521f0-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521f1-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521f2-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521f3-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521f4-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521f5-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521f6-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521f7-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521f8-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521f9-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521fa-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521fb-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521fc-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521fd-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521fe-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028521ff-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02852200-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02852201-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02852202-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548e0-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548e1-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548e2-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548e3-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548e4-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548e5-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548e6-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548e7-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548e8-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548e9-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548ea-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548eb-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548ec-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548ed-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548ee-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548ef-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548f0-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548f1-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548f2-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548f3-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548f4-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548f5-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548f6-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548f7-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548f8-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548f9-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548fa-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548fb-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548fc-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548fd-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548fe-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("028548ff-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02854900-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02854901-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02854902-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02854903-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02854904-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02854905-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02854906-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02854907-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02854908-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02854909-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285490a-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285490b-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285490c-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285490d-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02856ff0-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02856ff1-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02856ff2-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02856ff3-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02856ff4-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02856ff5-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02856ff6-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02856ff7-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02856ff8-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02856ff9-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02856ffa-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02856ffb-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02856ffc-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02856ffd-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02856ffe-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02856fff-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857000-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857001-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857002-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857003-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857004-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857005-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857006-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857007-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857008-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857009-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285700a-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285700b-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285700c-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285700d-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285700e-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285700f-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857010-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857011-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857012-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857013-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857014-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857015-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857016-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857017-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857018-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857019-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285701a-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285701b-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285701c-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285701d-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285701e-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285701f-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857020-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857021-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857022-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857023-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857024-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857025-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02857026-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859700-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859701-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859702-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859703-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859704-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859705-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859706-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859707-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859708-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859709-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285970a-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285970b-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285970c-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285970d-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285970e-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285970f-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859710-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859711-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859712-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859713-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859714-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859715-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859716-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859717-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859718-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859719-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285971a-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285971b-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285971c-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285971d-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285971e-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285971f-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859720-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859721-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859722-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859723-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859724-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859725-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859726-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859727-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859728-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859729-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285972a-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285972b-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285972c-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285972d-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285972e-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285972f-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859730-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859731-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859732-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859733-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859734-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02859735-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be10-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be11-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be12-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be13-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be14-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be15-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be16-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be17-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be18-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be19-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be1a-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be1b-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be1c-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be1d-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be1e-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be1f-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be20-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be21-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be22-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be23-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be24-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be25-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be26-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be27-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be28-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be29-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be2a-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be2b-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be2c-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be2d-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be2e-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be2f-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be30-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be31-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be32-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be33-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be34-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be35-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be36-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be37-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be38-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be39-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be3a-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be3b-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be3c-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be3d-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be3e-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be3f-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be40-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be41-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285be42-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e520-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e521-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e522-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e523-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e524-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e525-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e526-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e527-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e528-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e529-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e52a-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e52b-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e52c-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e52d-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e52e-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e52f-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e530-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e531-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e532-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e533-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e534-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e535-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e536-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e537-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e538-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e539-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e53a-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e53b-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e53c-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e53d-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e53e-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e53f-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e540-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e541-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e542-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e543-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e544-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e545-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e546-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e547-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e548-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e549-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e54a-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e54b-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e54c-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e54d-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0285e54e-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02860c30-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02860c31-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02860c32-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02860c33-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02860c34-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02860c35-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02860c36-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02860c37-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02860c38-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02860c39-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02860c3a-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02860c3b-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02860c3c-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02860c3d-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02860c3e-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02860c3f-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02860c40-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02860c41-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02860c42-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02860c43-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02860c44-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02860c45-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02860c46-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02860c47-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("02860c48-89cb-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb40-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb41-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb42-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb43-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb44-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb45-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb46-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb47-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb48-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb49-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb4a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb4b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb4c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb4d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb4e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb4f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb50-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb51-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb52-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb53-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb54-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb55-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb56-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb57-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb58-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb59-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb5a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb5b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb5c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb5d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb5e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb5f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb60-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb61-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb62-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb63-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb64-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb65-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb66-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bfefdb67-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff00250-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff00251-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff00252-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff00253-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff00254-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff00255-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff00256-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff00257-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff00258-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff00259-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0025a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0025b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0025c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0025d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0025e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0025f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff00260-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff00261-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff00262-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff00263-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff00264-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff00265-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff00266-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff00267-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff00268-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff00269-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0026a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0026b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0026c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0026d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0026e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0026f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff00270-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff00271-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff00272-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff00273-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff00274-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02960-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02961-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02962-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02963-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02964-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02965-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02966-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02967-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02968-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02969-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0296a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0296b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0296c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0296d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0296e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0296f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02970-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02971-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02972-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02973-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02974-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02975-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02976-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02977-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02978-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02979-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0297a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0297b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0297c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0297d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0297e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0297f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02980-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02981-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02982-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02983-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02984-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02985-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02986-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02987-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02988-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02989-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0298a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0298b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0298c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0298d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0298e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0298f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02990-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff02991-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05070-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05071-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05072-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05073-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05074-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05075-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05076-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05077-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05078-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05079-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0507a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0507b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0507c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0507d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0507e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0507f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05080-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05081-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05082-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05083-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05084-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05085-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05086-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05087-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05088-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05089-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0508a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0508b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0508c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0508d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0508e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0508f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05090-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05091-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05092-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05093-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05094-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05095-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05096-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05097-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05098-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff05099-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0509a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0509b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0509c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0509d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0509e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0509f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff050a0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff050a1-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff050a2-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff050a3-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff050a4-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff050a5-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff07780-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff07781-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff07782-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff07783-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff07784-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff07785-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff07786-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff07787-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff07788-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff07789-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0778a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0778b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0778c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0778d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0778e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0778f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff07790-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff07791-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff07792-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff07793-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff07794-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff07795-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff07796-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff07797-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff07798-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff07799-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0779a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0779b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0779c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0779d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0779e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0779f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff077a0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff077a1-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff077a2-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff077a3-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff077a4-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff077a5-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff077a6-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff077a7-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff077a8-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff077a9-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff077aa-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff077ab-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff077ac-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff077ad-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff077ae-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff077af-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff077b0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff077b1-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff077b2-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff077b3-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff077b4-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff077b5-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff077b6-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09e90-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09e91-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09e92-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09e93-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09e94-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09e95-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09e96-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09e97-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09e98-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09e99-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09e9a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09e9b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09e9c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09e9d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09e9e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09e9f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09ea0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09ea1-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09ea2-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09ea3-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09ea4-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09ea5-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09ea6-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09ea7-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09ea8-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09ea9-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09eaa-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09eab-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09eac-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09ead-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09eae-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09eaf-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09eb0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09eb1-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09eb2-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09eb3-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09eb4-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09eb5-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09eb6-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09eb7-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09eb8-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff09eb9-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5a0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5a1-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5a2-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5a3-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5a4-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5a5-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5a6-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5a7-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5a8-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5a9-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5aa-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5ab-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5ac-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5ad-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5ae-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5af-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5b0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5b1-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5b2-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5b3-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5b4-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5b5-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5b6-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5b7-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5b8-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5b9-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5ba-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5bb-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5bc-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5bd-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5be-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5bf-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5c0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5c1-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5c2-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5c3-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5c4-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5c5-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5c6-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5c7-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5c8-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5c9-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5ca-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5cb-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5cc-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5cd-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5ce-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5cf-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5d0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5d1-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5d2-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5d3-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5d4-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5d5-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0c5d6-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecb0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecb1-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecb2-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecb3-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecb4-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecb5-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecb6-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecb7-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecb8-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecb9-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecba-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecbb-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecbc-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecbd-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecbe-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecbf-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecc0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecc1-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecc2-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecc3-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecc4-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecc5-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecc6-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecc7-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecc8-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecc9-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecca-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0eccb-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0eccc-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0eccd-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecce-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0eccf-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecd0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecd1-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecd2-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecd3-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecd4-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecd5-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecd6-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecd7-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecd8-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecd9-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecda-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecdb-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecdc-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecdd-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecde-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ecdf-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ece0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ece1-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ece2-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ece3-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ece4-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff0ece5-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113c0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113c1-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113c2-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113c3-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113c4-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113c5-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113c6-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113c7-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113c8-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113c9-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113ca-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113cb-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113cc-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113cd-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113ce-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113cf-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113d0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113d1-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113d2-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113d3-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113d4-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113d5-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113d6-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113d7-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113d8-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113d9-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113da-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113db-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113dc-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113dd-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113de-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113df-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113e0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113e1-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113e2-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113e3-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113e4-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113e5-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113e6-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113e7-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113e8-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113e9-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113ea-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113eb-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113ec-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113ed-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113ee-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113ef-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113f0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113f1-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113f2-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113f3-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113f4-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113f5-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff113f6-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13ad0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13ad1-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13ad2-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13ad3-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13ad4-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13ad5-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13ad6-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13ad7-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13ad8-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13ad9-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13ada-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13adb-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13adc-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13add-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13ade-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13adf-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13ae0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13ae1-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13ae2-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13ae3-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13ae4-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13ae5-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13ae6-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13ae7-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13ae8-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13ae9-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13aea-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13aeb-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13aec-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13aed-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13aee-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13aef-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff13af0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff161e0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff161e1-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff161e2-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff161e3-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff161e4-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff161e5-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff161e6-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff161e7-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff161e8-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff161e9-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff161ea-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff161eb-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff161ec-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff161ed-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff161ee-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff161ef-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff161f0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff161f1-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff161f2-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff161f3-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff161f4-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff161f5-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff161f6-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff161f7-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("bff161f8-89ce-11df-a4ee-0800200c9a67")); + } + private void fill12000() { + this.addToAnon(UUID.fromString("deab70d0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70d1-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70d2-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70d3-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70d4-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70d5-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70d6-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70d7-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70d8-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70d9-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70da-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70db-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70dc-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70dd-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70de-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70df-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70e0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70e1-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70e2-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70e3-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70e4-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70e5-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70e6-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70e7-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70e8-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70e9-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70ea-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70eb-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70ec-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70ed-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70ee-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70ef-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab70f0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97e0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97e1-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97e2-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97e3-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97e4-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97e5-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97e6-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97e7-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97e8-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97e9-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97ea-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97eb-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97ec-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97ed-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97ee-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97ef-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97f0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97f1-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97f2-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97f3-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97f4-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97f5-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97f6-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97f7-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97f8-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97f9-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97fa-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97fb-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97fc-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97fd-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97fe-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab97ff-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab9800-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab9801-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab9802-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab9803-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab9804-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab9805-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab9806-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab9807-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab9808-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab9809-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab980a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab980b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab980c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab980d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab980e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab980f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab9810-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab9811-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab9812-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab9813-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deab9814-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbef0-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbef1-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbef2-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbef3-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbef4-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbef5-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbef6-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbef7-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbef8-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbef9-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbefa-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbefb-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbefc-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbefd-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbefe-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbeff-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf00-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf01-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf02-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf03-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf04-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf05-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf06-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf07-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf08-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf09-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf0a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf0b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf0c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf0d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf0e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf0f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf10-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf11-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf12-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf13-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf14-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf15-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf16-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf17-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf18-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf19-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf1a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf1b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf1c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf1d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf1e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf1f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf20-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf21-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabbf22-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe600-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe601-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe602-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe603-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe604-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe605-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe606-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe607-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe608-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe609-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe60a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe60b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe60c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe60d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe60e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe60f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe610-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe611-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe612-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe613-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe614-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe615-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe616-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe617-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe618-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe619-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe61a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe61b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe61c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe61d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe61e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe61f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe620-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe621-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe622-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe623-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe624-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe625-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe626-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe627-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe628-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe629-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe62a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe62b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe62c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe62d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe62e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe62f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe630-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe631-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe632-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe633-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe634-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe635-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe636-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deabe637-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d10-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d11-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d12-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d13-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d14-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d15-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d16-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d17-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d18-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d19-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d1a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d1b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d1c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d1d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d1e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d1f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d20-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d21-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d22-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d23-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d24-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d25-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d26-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d27-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d28-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d29-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d2a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d2b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d2c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d2d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d2e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d2f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d30-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d31-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d32-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d33-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d34-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d35-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d36-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d37-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d38-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d39-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d3a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d3b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac0d3c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3420-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3421-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3422-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3423-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3424-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3425-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3426-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3427-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3428-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3429-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac342a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac342b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac342c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac342d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac342e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac342f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3430-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3431-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3432-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3433-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3434-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3435-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3436-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3437-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3438-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3439-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac343a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac343b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac343c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac343d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac343e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac343f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3440-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3441-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3442-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3443-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3444-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3445-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3446-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3447-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3448-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3449-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac344a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac344b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac344c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac344d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac344e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac344f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3450-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3451-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3452-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac3453-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b30-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b31-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b32-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b33-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b34-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b35-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b36-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b37-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b38-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b39-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b3a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b3b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b3c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b3d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b3e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b3f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b40-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b41-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b42-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b43-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b44-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b45-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b46-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b47-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b48-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b49-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b4a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b4b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b4c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b4d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b4e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b4f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b50-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b51-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b52-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b53-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b54-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b55-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b56-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b57-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b58-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b59-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b5a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b5b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b5c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b5d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b5e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b5f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b60-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b61-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b62-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b63-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b64-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b65-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac5b66-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8240-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8241-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8242-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8243-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8244-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8245-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8246-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8247-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8248-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8249-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac824a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac824b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac824c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac824d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac824e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac824f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8250-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8251-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8252-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8253-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8254-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8255-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8256-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8257-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8258-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8259-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac825a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac825b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac825c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac825d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac825e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac825f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8260-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8261-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8262-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8263-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8264-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8265-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8266-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8267-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8268-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8269-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac826a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac826b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac826c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac826d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac826e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac826f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8270-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8271-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8272-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8273-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8274-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8275-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deac8276-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca950-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca951-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca952-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca953-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca954-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca955-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca956-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca957-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca958-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca959-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca95a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca95b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca95c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca95d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca95e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca95f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca960-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca961-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca962-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca963-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca964-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca965-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca966-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca967-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca968-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca969-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca96a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca96b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca96c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deaca96d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd060-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd061-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd062-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd063-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd064-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd065-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd066-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd067-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd068-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd069-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd06a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd06b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd06c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd06d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd06e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd06f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd070-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd071-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd072-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd073-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd074-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd075-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd076-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd077-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd078-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd079-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd07a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd07b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd07c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd07d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd07e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd07f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd080-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd081-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd082-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd083-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd084-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd085-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd086-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd087-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd088-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd089-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd08a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd08b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacd08c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacf770-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacf771-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacf772-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacf773-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacf774-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacf775-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacf776-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacf777-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacf778-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacf779-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacf77a-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacf77b-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacf77c-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacf77d-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacf77e-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacf77f-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacf780-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacf781-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacf782-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacf783-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacf784-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacf785-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacf786-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacf787-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("deacf788-89ce-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5b0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5b1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5b2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5b3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5b4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5b5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5b6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5b7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5b8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5b9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5ba-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5bb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5bc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5bd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5be-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5bf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5c0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5c1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5c2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5c3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5c4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5c5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5c6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5c7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5c8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5c9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5ca-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5cb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5cc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5cd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1d5ce-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcc0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcc1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcc2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcc3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcc4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcc5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcc6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcc7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcc8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcc9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcca-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fccb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fccc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fccd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcce-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fccf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcd0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcd1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcd2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcd3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcd4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcd5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcd6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcd7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcd8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcd9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcda-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcdb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcdc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcdd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcde-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcdf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fce0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fce1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fce2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fce3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fce4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fce5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fce6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fce7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fce8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fce9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcea-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fceb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcec-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fced-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcee-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcef-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcf0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcf1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcf2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e1fcf3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223d0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223d1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223d2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223d3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223d4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223d5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223d6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223d7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223d8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223d9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223da-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223db-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223dc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223dd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223de-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223df-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223e0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223e1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223e2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223e3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223e4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223e5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223e6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223e7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223e8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223e9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223ea-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223eb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223ec-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223ed-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223ee-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223ef-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223f0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223f1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223f2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e223f3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24ae0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24ae1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24ae2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24ae3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24ae4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24ae5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24ae6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24ae7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24ae8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24ae9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24aea-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24aeb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24aec-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24aed-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24aee-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24aef-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24af0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24af1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24af2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24af3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24af4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24af5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24af6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24af7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24af8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24af9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24afa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24afb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24afc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24afd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24afe-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24aff-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24b00-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24b01-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24b02-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24b03-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24b04-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24b05-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24b06-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24b07-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24b08-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24b09-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24b0a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24b0b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24b0c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24b0d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24b0e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24b0f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24b10-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24b11-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24b12-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24b13-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24b14-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e24b15-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e271f0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e271f1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e271f2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e271f3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e271f4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e271f5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e271f6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e271f7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e271f8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e271f9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e271fa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e271fb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e271fc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e271fd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e271fe-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e271ff-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e27200-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e27201-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e27202-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e27203-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e27204-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e27205-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e27206-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e27207-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e27208-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e27209-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2720a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2720b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2720c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2720d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2720e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2720f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e27210-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e27211-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e27212-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e27213-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e27214-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e27215-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e27216-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e27217-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e27218-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e27219-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2721a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2721b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2721c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2721d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2721e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2721f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e27220-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e27221-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e27222-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e27223-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e27224-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e27225-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29900-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29901-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29902-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29903-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29904-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29905-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29906-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29907-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29908-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29909-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2990a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2990b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2990c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2990d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2990e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2990f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29910-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29911-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29912-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29913-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29914-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29915-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29916-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29917-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29918-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29919-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2991a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2991b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2991c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2991d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2991e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2991f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29920-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29921-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29922-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29923-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29924-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29925-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29926-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29927-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29928-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e29929-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2992a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2992b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2992c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c010-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c011-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c012-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c013-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c014-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c015-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c016-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c017-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c018-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c019-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c01a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c01b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c01c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c01d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c01e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c01f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c020-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c021-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c022-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c023-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c024-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c025-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c026-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c027-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c028-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c029-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c02a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c02b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c02c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c02d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c02e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c02f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c030-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c031-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c032-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c033-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c034-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c035-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c036-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c037-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c038-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c039-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c03a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c03b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c03c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c03d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c03e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c03f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c040-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c041-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2c042-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e720-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e721-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e722-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e723-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e724-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e725-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e726-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e727-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e728-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e729-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e72a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e72b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e72c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e72d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e72e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e72f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e730-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e731-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e732-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e733-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e734-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e735-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e736-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e737-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e738-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e739-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e73a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e73b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e73c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e73d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e73e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e73f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e740-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e741-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e742-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e743-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e744-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e745-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e746-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e747-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e748-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e749-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e74a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e74b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e74c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e74d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e74e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e74f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e750-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e751-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e752-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e753-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e754-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e2e755-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e30-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e31-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e32-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e33-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e34-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e35-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e36-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e37-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e38-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e39-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e3a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e3b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e3c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e3d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e3e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e3f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e40-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e41-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e42-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e43-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e44-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e45-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e46-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e47-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e48-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e49-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e4a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e4b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e4c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e4d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e4e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e4f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e50-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e51-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e52-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e53-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e54-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e55-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e56-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e57-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e58-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e59-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e5a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e5b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e5c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e5d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e5e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e5f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e60-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e61-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e62-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e63-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e64-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e30e65-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33540-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33541-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33542-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33543-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33544-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33545-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33546-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33547-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33548-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33549-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e3354a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e3354b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e3354c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e3354d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e3354e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e3354f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33550-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33551-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33552-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33553-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33554-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33555-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33556-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33557-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33558-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33559-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e3355a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e3355b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e3355c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e3355d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e3355e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e3355f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33560-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33561-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33562-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33563-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33564-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33565-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33566-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33567-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33568-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e33569-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e3356a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e3356b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e35c50-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e35c51-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e35c52-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e35c53-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e35c54-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e35c55-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e35c56-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e35c57-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e35c58-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e35c59-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e35c5a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e35c5b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e35c5c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e35c5d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e35c5e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e35c5f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e35c60-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e35c61-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e35c62-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e35c63-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e35c64-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e35c65-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e35c66-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e35c67-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("12e35c68-89cf-11df-a4ee-0800200c9a67")); + } + private void fill13000() { + this.addToAnon(UUID.fromString("32779ea0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779ea1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779ea2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779ea3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779ea4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779ea5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779ea6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779ea7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779ea8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779ea9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779eaa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779eab-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779eac-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779ead-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779eae-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779eaf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779eb0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779eb1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779eb2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779eb3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779eb4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779eb5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779eb6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779eb7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779eb8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779eb9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779eba-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779ebb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779ebc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779ebd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779ebe-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779ebf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779ec0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779ec1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779ec2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32779ec3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5b0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5b1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5b2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5b3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5b4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5b5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5b6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5b7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5b8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5b9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5ba-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5bb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5bc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5bd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5be-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5bf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5c0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5c1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5c2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5c3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5c4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5c5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5c6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5c7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5c8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5c9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5ca-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5cb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5cc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5cd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5ce-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5cf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5d0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5d1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5d2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5d3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5d4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5d5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5d6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5d7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5d8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5d9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5da-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5db-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5dc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5dd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5de-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5df-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5e0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5e1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5e2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277c5e3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecc0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecc1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecc2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecc3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecc4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecc5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecc6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecc7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecc8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecc9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecca-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277eccb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277eccc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277eccd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecce-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277eccf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecd0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecd1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecd2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecd3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecd4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecd5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecd6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecd7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecd8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecd9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecda-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecdb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecdc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecdd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecde-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ecdf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3277ece0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813d0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813d1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813d2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813d3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813d4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813d5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813d6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813d7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813d8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813d9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813da-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813db-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813dc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813dd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813de-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813df-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813e0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813e1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813e2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813e3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813e4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813e5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813e6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813e7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813e8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813e9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813ea-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813eb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813ec-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813ed-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813ee-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813ef-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813f0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813f1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813f2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813f3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813f4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813f5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813f6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813f7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813f8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813f9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813fa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813fb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813fc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813fd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813fe-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327813ff-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32781400-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32781401-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32781402-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32781403-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783ae0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783ae1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783ae2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783ae3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783ae4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783ae5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783ae6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783ae7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783ae8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783ae9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783aea-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783aeb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783aec-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783aed-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783aee-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783aef-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783af0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783af1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783af2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783af3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783af4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783af5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783af6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783af7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783af8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783af9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783afa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783afb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783afc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783afd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783afe-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783aff-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783b00-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783b01-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783b02-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783b03-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783b04-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783b05-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783b06-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783b07-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783b08-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783b09-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783b0a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783b0b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783b0c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783b0d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783b0e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783b0f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783b10-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783b11-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783b12-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783b13-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783b14-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783b15-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32783b16-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327861f0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327861f1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327861f2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327861f3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327861f4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327861f5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327861f6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327861f7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327861f8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327861f9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327861fa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327861fb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327861fc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327861fd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327861fe-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("327861ff-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32786200-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32786201-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32786202-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32786203-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32786204-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32786205-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32786206-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32786207-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32786208-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32786209-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278620a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278620b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278620c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278620d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278620e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278620f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32786210-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32786211-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32786212-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32786213-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32786214-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32786215-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32786216-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32786217-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32786218-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32786219-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278621a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278621b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278621c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788900-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788901-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788902-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788903-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788904-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788905-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788906-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788907-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788908-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788909-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278890a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278890b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278890c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278890d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278890e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278890f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788910-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788911-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788912-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788913-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788914-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788915-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788916-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788917-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788918-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788919-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278891a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278891b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278891c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278891d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278891e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278891f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788920-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788921-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788922-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788923-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788924-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788925-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788926-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788927-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788928-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788929-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278892a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278892b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278892c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278892d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278892e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278892f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788930-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788931-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788932-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788933-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788934-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32788935-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b010-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b011-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b012-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b013-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b014-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b015-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b016-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b017-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b018-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b019-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b01a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b01b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b01c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b01d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b01e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b01f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b020-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b021-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b022-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b023-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b024-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b025-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b026-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b027-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b028-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b029-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b02a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b02b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b02c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b02d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b02e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b02f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b030-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b031-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b032-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b033-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b034-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b035-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b036-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b037-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b038-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b039-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b03a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b03b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b03c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b03d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b03e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b03f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b040-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b041-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b042-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278b043-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d720-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d721-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d722-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d723-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d724-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d725-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d726-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d727-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d728-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d729-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d72a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d72b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d72c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d72d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d72e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d72f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d730-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d731-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d732-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d733-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d734-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d735-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d736-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d737-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d738-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d739-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d73a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d73b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d73c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d73d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d73e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d73f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d740-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d741-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d742-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d743-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d744-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d745-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d746-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d747-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d748-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d749-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d74a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d74b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d74c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d74d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d74e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d74f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d750-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d751-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d752-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d753-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d754-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d755-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d756-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278d757-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe30-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe31-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe32-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe33-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe34-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe35-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe36-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe37-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe38-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe39-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe3a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe3b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe3c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe3d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe3e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe3f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe40-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe41-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe42-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe43-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe44-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe45-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe46-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe47-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe48-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe49-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe4a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe4b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe4c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe4d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe4e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe4f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe50-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe51-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe52-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe53-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe54-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe55-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe56-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3278fe57-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32792540-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32792541-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32792542-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32792543-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32792544-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32792545-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32792546-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32792547-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32792548-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32792549-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3279254a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3279254b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3279254c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3279254d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3279254e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("3279254f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32792550-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32792551-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32792552-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32792553-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32792554-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32792555-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32792556-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32792557-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("32792558-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28cf80-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28cf81-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28cf82-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28cf83-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f690-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f691-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f692-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f693-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f694-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f695-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f696-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f697-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f698-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f699-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f69a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f69b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f69c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f69d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f69e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f69f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f6a0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f6a1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f6a2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f6a3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f6a4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f6a5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f6a6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f6a7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f6a8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f6a9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f6aa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f6ab-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f6ac-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f6ad-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f6ae-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f6af-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f6b0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f6b1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f6b2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f6b3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f6b4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f6b5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f6b6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f6b7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f6b8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d28f6b9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291da0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291da1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291da2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291da3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291da4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291da5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291da6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291da7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291da8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291da9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291daa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dab-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dac-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dad-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dae-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291daf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291db0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291db1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291db2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291db3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291db4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291db5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291db6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291db7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291db8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291db9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dba-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dbb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dbc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dbd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dbe-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dbf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dc0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dc1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dc2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dc3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dc4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dc5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dc6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dc7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dc8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dc9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dca-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dcb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dcc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dcd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dce-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dcf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dd0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dd1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dd2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d291dd3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944b0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944b1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944b2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944b3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944b4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944b5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944b6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944b7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944b8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944b9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944ba-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944bb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944bc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944bd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944be-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944bf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944c0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944c1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944c2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944c3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944c4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944c5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944c6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944c7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944c8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944c9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944ca-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944cb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944cc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944cd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944ce-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944cf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944d0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944d1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944d2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944d3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944d4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944d5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944d6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944d7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944d8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944d9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944da-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944db-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944dc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944dd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944de-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944df-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2944e0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bc0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bc1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bc2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bc3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bc4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bc5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bc6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bc7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bc8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bc9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bca-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bcb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bcc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bcd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bce-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bcf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bd0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bd1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bd2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bd3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bd4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bd5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bd6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bd7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bd8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bd9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bda-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bdb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bdc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bdd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bde-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bdf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296be0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296be1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296be2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296be3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296be4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296be5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296be6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296be7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296be8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296be9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bea-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296beb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bec-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bed-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bee-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bef-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bf0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bf1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bf2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bf3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bf4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bf5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d296bf6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992d0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992d1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992d2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992d3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992d4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992d5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992d6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992d7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992d8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992d9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992da-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992db-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992dc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992dd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992de-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992df-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992e0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992e1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992e2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992e3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992e4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992e5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992e6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992e7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992e8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992e9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992ea-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992eb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992ec-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992ed-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992ee-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992ef-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992f0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992f1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992f2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992f3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992f4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992f5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992f6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992f7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2992f8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0800-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0801-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0802-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0803-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0804-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0805-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0806-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0807-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0808-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0809-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a080a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a080b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a080c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a080d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a080e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a080f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0810-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0811-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0812-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0813-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0814-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0815-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0816-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0817-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0818-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0819-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a081a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a081b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a081c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a081d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a081e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a081f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0820-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0821-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0822-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0823-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0824-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0825-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0826-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0827-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0828-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a0829-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a082a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a082b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a082c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a082d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f10-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f11-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f12-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f13-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f14-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f15-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f16-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f17-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f18-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f19-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f1a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f1b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f1c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f1d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f1e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f1f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f20-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f21-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f22-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f23-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f24-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f25-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f26-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f27-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f28-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f29-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f2a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f2b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f2c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a2f2d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5620-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5621-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5622-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5623-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5624-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5625-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5626-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5627-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5628-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5629-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a562a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a562b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a562c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a562d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a562e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a562f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5630-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5631-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5632-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5633-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5634-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5635-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5636-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5637-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5638-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5639-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a563a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a563b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a563c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a563d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a563e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a563f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5640-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5641-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5642-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5643-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5644-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5645-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5646-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5647-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5648-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5649-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a564a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a564b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a564c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a564d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a564e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a564f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5650-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5651-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5652-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5653-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5654-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5655-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a5656-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d30-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d31-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d32-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d33-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d34-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d35-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d36-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d37-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d38-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d39-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d3a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d3b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d3c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d3d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d3e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d3f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d40-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d41-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d42-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d43-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d44-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d45-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d46-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d47-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d48-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d49-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d4a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d4b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d4c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d4d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d4e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d4f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d50-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d51-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d52-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d53-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d54-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d55-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d56-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d57-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d58-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d59-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d5a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d5b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d5c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d5d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d5e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d5f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d60-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d61-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d62-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d63-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d64-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2a7d65-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa440-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa441-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa442-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa443-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa444-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa445-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa446-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa447-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa448-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa449-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa44a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa44b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa44c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa44d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa44e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa44f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa450-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa451-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa452-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa453-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa454-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa455-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa456-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa457-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa458-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa459-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa45a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa45b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa45c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa45d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa45e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa45f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa460-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa461-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa462-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa463-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa464-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa465-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa466-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa467-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa468-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa469-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa46a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa46b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa46c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa46d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2aa46e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2acb50-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2acb51-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2acb52-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2acb53-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2acb54-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2acb55-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2acb56-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2acb57-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2acb58-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2acb59-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2acb5a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2acb5b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2acb5c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2acb5d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2acb5e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2acb5f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2acb60-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2acb61-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2acb62-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2acb63-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2acb64-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2acb65-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2acb66-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2acb67-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4d2acb68-89cf-11df-a4ee-0800200c9a67")); + } + private void fill14000() { + this.addToAnon(UUID.fromString("630e2070-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e2071-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e2072-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e2073-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e2074-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e2075-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e2076-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e2077-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e2078-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e2079-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e207a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e207b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e207c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e207d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e207e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e207f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e2080-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e2081-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e2082-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e2083-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e2084-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e2085-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e2086-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e2087-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e2088-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e2089-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e4780-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e4781-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e4782-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e4783-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e4784-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e4785-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e4786-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e4787-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e4788-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e4789-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e478a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e478b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e478c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e478d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e478e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e478f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e4790-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e4791-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e4792-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e4793-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e4794-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e4795-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e4796-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e4797-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e4798-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e4799-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e479a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e479b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e479c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e479d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e479e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e479f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e47a0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e47a1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e47a2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e47a3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e47a4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e47a5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e47a6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e47a7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e47a8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e47a9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e47aa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e47ab-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e47ac-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e47ad-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e47ae-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6e90-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6e91-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6e92-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6e93-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6e94-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6e95-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6e96-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6e97-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6e98-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6e99-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6e9a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6e9b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6e9c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6e9d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6e9e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6e9f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6ea0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6ea1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6ea2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6ea3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6ea4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6ea5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6ea6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6ea7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6ea8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6ea9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6eaa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6eab-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6eac-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6ead-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6eae-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6eaf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6eb0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6eb1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6eb2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6eb3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6eb4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6eb5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6eb6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6eb7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6eb8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6eb9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6eba-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6ebb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6ebc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6ebd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e6ebe-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95a0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95a1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95a2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95a3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95a4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95a5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95a6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95a7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95a8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95a9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95aa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95ab-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95ac-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95ad-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95ae-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95af-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95b0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95b1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95b2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95b3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95b4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95b5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95b6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95b7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95b8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95b9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95ba-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95bb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95bc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95bd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95be-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95bf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95c0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95c1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95c2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95c3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95c4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95c5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95c6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95c7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95c8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95c9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95ca-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95cb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95cc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95cd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95ce-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95cf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95d0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95d1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95d2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95d3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95d4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95d5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630e95d6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcb0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcb1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcb2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcb3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcb4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcb5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcb6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcb7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcb8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcb9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcba-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcbb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcbc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcbd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcbe-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcbf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcc0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcc1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcc2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcc3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcc4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcc5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcc6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcc7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcc8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcc9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcca-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebccb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebccc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebccd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcce-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebccf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcd0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcd1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcd2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcd3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcd4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcd5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcd6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcd7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcd8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcd9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcda-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcdb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcdc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcdd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcde-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebcdf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebce0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebce1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebce2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebce3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebce4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ebce5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3c0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3c1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3c2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3c3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3c4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3c5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3c6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3c7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3c8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3c9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3ca-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3cb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3cc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3cd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3ce-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3cf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3d0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3d1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3d2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3d3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3d4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3d5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3d6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3d7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3d8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3d9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3da-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3db-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3dc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3dd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3de-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3df-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3e0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3e1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3e2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3e3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3e4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3e5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3e6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3e7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3e8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3e9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3ea-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3eb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3ec-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630ee3ed-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0ad0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0ad1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0ad2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0ad3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0ad4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0ad5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0ad6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0ad7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0ad8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0ad9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0ada-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0adb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0adc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0add-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0ade-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0adf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0ae0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0ae1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0ae2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0ae3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0ae4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0ae5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0ae6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0ae7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0ae8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0ae9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0aea-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0aeb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0aec-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0aed-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0aee-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0aef-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0af0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0af1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0af2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0af3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0af4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0af5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0af6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0af7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0af8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0af9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0afa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0afb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0afc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0afd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0afe-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0aff-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0b00-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0b01-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0b02-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f0b03-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31e0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31e1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31e2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31e3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31e4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31e5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31e6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31e7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31e8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31e9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31ea-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31eb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31ec-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31ed-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31ee-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31ef-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31f0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31f1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31f2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31f3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31f4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31f5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31f6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31f7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31f8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31f9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31fa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31fb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31fc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31fd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31fe-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f31ff-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f3200-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f3201-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f3202-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f3203-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f3204-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f3205-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f3206-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f3207-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f3208-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f3209-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f320a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f320b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f320c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f320d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f320e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f320f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f3210-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f3211-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f3212-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f3213-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f3214-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f3215-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f58f0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f58f1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f58f2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f58f3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f58f4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f58f5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f58f6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f58f7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f58f8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f58f9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f58fa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f58fb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f58fc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f58fd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f58fe-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f58ff-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5900-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5901-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5902-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5903-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5904-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5905-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5906-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5907-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5908-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5909-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f590a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f590b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f590c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f590d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f590e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f590f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5910-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5911-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5912-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5913-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5914-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5915-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5916-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5917-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5918-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5919-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f591a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f591b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f591c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f591d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f591e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f591f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5920-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5921-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5922-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5923-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5924-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5925-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5926-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5927-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f5928-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f8000-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f8001-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f8002-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f8003-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f8004-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f8005-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f8006-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f8007-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f8008-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f8009-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f800a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f800b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f800c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f800d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f800e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f800f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f8010-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f8011-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f8012-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f8013-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f8014-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f8015-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f8016-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f8017-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f8018-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f8019-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f801a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f801b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f801c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f801d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f801e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f801f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f8020-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f8021-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f8022-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f8023-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630f8024-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630fa710-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630fa711-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630fa712-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630fa713-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630fa714-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630fa715-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630fa716-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630fa717-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630fa718-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630fa719-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630fa71a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630fa71b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630fa71c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630fa71d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630fa71e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630fa71f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630fa720-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630fa721-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630fa722-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630fa723-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630fa724-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630fa725-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630fa726-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630fa727-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("630fa728-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621620-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621621-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621622-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621623-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621624-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621625-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621626-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621627-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621628-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621629-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62162a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62162b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62162c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62162d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62162e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62162f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621630-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621631-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621632-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621633-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621634-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621635-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621636-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621637-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621638-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621639-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62163a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62163b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62163c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62163d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62163e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62163f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621640-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621641-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621642-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621643-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621644-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621645-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621646-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621647-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621648-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d621649-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62164a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62164b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62164c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d30-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d31-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d32-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d33-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d34-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d35-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d36-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d37-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d38-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d39-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d3a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d3b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d3c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d3d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d3e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d3f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d40-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d41-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d42-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d43-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d44-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d45-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d46-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d47-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d48-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d49-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d4a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d4b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d4c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d4d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d4e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d4f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d50-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d51-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d52-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d53-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d54-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d55-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d56-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d57-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d58-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d59-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d5a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d5b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d5c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d5d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d5e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d5f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d60-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d61-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d62-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d623d63-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626440-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626441-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626442-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626443-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626444-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626445-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626446-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626447-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626448-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626449-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62644a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62644b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62644c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62644d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62644e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62644f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626450-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626451-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626452-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626453-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626454-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626455-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626456-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626457-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626458-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626459-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62645a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62645b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62645c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62645d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62645e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62645f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626460-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626461-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626462-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626463-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626464-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626465-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626466-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626467-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626468-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626469-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62646a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62646b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62646c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62646d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62646e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62646f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626470-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d626471-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b50-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b51-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b52-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b53-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b54-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b55-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b56-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b57-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b58-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b59-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b5a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b5b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b5c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b5d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b5e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b5f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b60-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b61-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b62-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b63-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b64-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b65-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b66-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b67-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b68-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b69-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b6a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b6b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b6c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b6d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b6e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b6f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b70-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b71-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b72-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b73-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b74-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b75-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b76-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b77-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b78-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b79-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b7a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b7b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b7c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b7d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b7e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b7f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b80-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b81-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b82-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b83-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d628b84-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b260-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b261-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b262-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b263-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b264-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b265-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b266-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b267-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b268-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b269-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b26a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b26b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b26c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b26d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b26e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b26f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b270-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b271-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b272-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b273-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b274-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b275-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b276-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b277-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b278-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b279-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b27a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b27b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b27c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b27d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b27e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b27f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b280-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b281-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b282-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b283-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b284-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b285-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b286-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b287-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b288-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b289-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b28a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b28b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62b28c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d970-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d971-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d972-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d973-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d974-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d975-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d976-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d977-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d978-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d979-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d97a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d97b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d97c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d97d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d97e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d97f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d980-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d981-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d982-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d983-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d984-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d985-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d986-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d987-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d988-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d989-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d98a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d98b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d98c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d98d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d98e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d98f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d990-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d991-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d992-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d993-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d994-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d995-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d996-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d997-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d998-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d999-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d99a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d99b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d99c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d99d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d99e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d99f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d9a0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d9a1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d9a2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d9a3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d9a4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d62d9a5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d630080-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d630081-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d630082-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d630083-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d630084-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d630085-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d630086-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d630087-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d630088-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d630089-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d63008a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d63008b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d63008c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d63008d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d63008e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d63008f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d630090-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d630091-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d630092-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d630093-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d630094-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d630095-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d630096-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d630097-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d630098-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d630099-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d63009a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d63009b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d63009c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d63009d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d63009e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d63009f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6300a0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6300a1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6300a2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6300a3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6300a4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6300a5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6300a6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6300a7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6300a8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6300a9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6300aa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6300ab-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6300ac-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6300ad-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6300ae-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6300af-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6300b0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6300b1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6300b2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6300b3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6300b4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6300b5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6300b6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d632790-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d632791-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d632792-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d632793-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d632794-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d632795-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d632796-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d632797-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d632798-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d632799-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d63279a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d63279b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d63279c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d63279d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d63279e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d63279f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327a0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327a1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327a2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327a3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327a4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327a5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327a6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327a7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327a8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327a9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327aa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327ab-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327ac-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327ad-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327ae-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327af-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327b0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327b1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327b2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327b3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327b4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327b5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327b6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327b7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327b8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327b9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327ba-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327bb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327bc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327bd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327be-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327bf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327c0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327c1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327c2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6327c3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ea0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ea1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ea2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ea3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ea4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ea5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ea6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ea7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ea8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ea9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634eaa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634eab-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634eac-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ead-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634eae-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634eaf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634eb0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634eb1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634eb2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634eb3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634eb4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634eb5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634eb6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634eb7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634eb8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634eb9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634eba-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ebb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ebc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ebd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ebe-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ebf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ec0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ec1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ec2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ec3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ec4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ec5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ec6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ec7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ec8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ec9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634eca-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ecb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ecc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ecd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ece-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ecf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ed0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ed1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ed2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ed3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ed4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ed5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d634ed6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375b0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375b1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375b2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375b3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375b4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375b5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375b6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375b7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375b8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375b9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375ba-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375bb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375bc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375bd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375be-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375bf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375c0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375c1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375c2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375c3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375c4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375c5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375c6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375c7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375c8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375c9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375ca-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375cb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375cc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375cd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375ce-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375cf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375d0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375d1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375d2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d6375d3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d639cc0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d639cc1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("7d639cc2-89cf-11df-a4ee-0800200c9a67")); + } + private void fill15000() { + this.addToAnon(UUID.fromString("95288320-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95288321-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95288322-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95288323-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95288324-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95288325-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa30-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa31-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa32-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa33-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa34-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa35-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa36-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa37-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa38-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa39-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa3a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa3b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa3c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa3d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa3e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa3f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa40-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa41-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa42-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa43-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa44-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa45-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa46-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa47-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa48-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa49-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa4a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa4b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa4c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa4d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa4e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa4f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa50-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa51-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa52-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa53-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa54-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa55-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa56-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa57-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa58-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa59-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa5a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa5b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa5c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa5d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa5e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa5f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa60-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa61-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa62-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa63-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528aa64-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d140-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d141-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d142-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d143-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d144-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d145-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d146-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d147-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d148-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d149-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d14a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d14b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d14c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d14d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d14e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d14f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d150-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d151-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d152-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d153-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d154-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d155-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d156-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d157-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d158-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d159-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d15a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d15b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d15c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d15d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d15e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d15f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d160-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d161-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d162-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d163-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d164-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d165-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d166-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d167-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d168-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d169-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d16a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d16b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d16c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d16d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d16e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d16f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d170-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d171-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d172-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528d173-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f850-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f851-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f852-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f853-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f854-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f855-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f856-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f857-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f858-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f859-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f85a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f85b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f85c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f85d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f85e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f85f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f860-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f861-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f862-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f863-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f864-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f865-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f866-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f867-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f868-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f869-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f86a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f86b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f86c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f86d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f86e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9528f86f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f60-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f61-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f62-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f63-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f64-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f65-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f66-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f67-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f68-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f69-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f6a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f6b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f6c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f6d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f6e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f6f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f70-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f71-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f72-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f73-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f74-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f75-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f76-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f77-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f78-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f79-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f7a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f7b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f7c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f7d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f7e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f7f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f80-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f81-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f82-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f83-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f84-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f85-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f86-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f87-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f88-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f89-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f8a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f8b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f8c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f8d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f8e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f8f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f90-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f91-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f92-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f93-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f94-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95291f95-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294670-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294671-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294672-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294673-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294674-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294675-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294676-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294677-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294678-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294679-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529467a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529467b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529467c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529467d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529467e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529467f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294680-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294681-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294682-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294683-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294684-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294685-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294686-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294687-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294688-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294689-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529468a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529468b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529468c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529468d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529468e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529468f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294690-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294691-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294692-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294693-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294694-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294695-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294696-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294697-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294698-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95294699-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529469a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529469b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529469c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d80-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d81-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d82-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d83-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d84-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d85-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d86-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d87-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d88-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d89-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d8a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d8b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d8c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d8d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d8e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d8f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d90-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d91-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d92-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d93-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d94-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d95-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d96-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d97-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d98-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d99-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d9a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d9b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d9c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d9d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d9e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296d9f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296da0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296da1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296da2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296da3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296da4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296da5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296da6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296da7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296da8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296da9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296daa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296dab-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296dac-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296dad-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296dae-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296daf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296db0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296db1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296db2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296db3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296db4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95296db5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95299490-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95299491-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95299492-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95299493-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95299494-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95299495-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95299496-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95299497-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95299498-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("95299499-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529949a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529949b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529949c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529949d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529949e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529949f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994a0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994a1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994a2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994a3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994a4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994a5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994a6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994a7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994a8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994a9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994aa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994ab-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994ac-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994ad-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994ae-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994af-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994b0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994b1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994b2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994b3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994b4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994b5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994b6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994b7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994b8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994b9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994ba-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994bb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994bc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994bd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994be-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994bf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994c0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994c1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952994c2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bba0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bba1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bba2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bba3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bba4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bba5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bba6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bba7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bba8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bba9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbaa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbab-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbac-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbad-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbae-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbaf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbb0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbb1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbb2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbb3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbb4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbb5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbb6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbb7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbb8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbb9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbba-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbbb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbbc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbbd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbbe-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbbf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbc0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbc1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbc2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbc3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbc4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbc5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbc6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbc7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbc8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbc9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbca-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbcb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbcc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbcd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbce-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbcf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbd0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbd1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbd2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbd3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbd4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529bbd5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2b0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2b1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2b2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2b3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2b4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2b5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2b6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2b7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2b8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2b9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2ba-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2bb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2bc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2bd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2be-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2bf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2c0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2c1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2c2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2c3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2c4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2c5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2c6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2c7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2c8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2c9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2ca-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2cb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2cc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2cd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2ce-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2cf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2d0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2d1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2d2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2d3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2d4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2d5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2d6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2d7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2d8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2d9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2da-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2db-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2dc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2dd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2de-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2df-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2e0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2e1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2e2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2e3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2e4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2e5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("9529e2e6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09c0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09c1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09c2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09c3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09c4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09c5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09c6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09c7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09c8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09c9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09ca-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09cb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09cc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09cd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09ce-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09cf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09d0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09d1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09d2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09d3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09d4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09d5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09d6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09d7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09d8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09d9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09da-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09db-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09dc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09dd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09de-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09df-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09e0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a09e1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a30d0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a30d1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a30d2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a30d3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a30d4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a30d5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a30d6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a30d7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a30d8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("952a30d9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06c0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06c1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06c2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06c3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06c4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06c5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06c6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06c7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06c8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06c9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06ca-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06cb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06cc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06cd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06ce-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06cf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06d0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06d1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06d2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06d3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06d4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06d5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06d6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06d7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06d8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06d9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06da-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06db-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06dc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06dd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06de-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06df-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06e0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06e1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06e2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06e3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06e4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06e5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06e6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06e7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06e8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06e9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06ea-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06eb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06ec-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06ed-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06ee-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06ef-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06f0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e06f1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2dd0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2dd1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2dd2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2dd3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2dd4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2dd5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2dd6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2dd7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2dd8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2dd9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2dda-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2ddb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2ddc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2ddd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2dde-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2ddf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2de0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2de1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2de2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2de3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2de4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2de5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2de6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2de7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2de8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2de9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2dea-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2deb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2dec-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2ded-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2dee-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2def-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2df0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e2df1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54e0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54e1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54e2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54e3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54e4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54e5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54e6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54e7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54e8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54e9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54ea-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54eb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54ec-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54ed-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54ee-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54ef-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54f0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54f1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54f2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54f3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54f4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54f5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54f6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54f7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54f8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54f9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54fa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54fb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54fc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54fd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54fe-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e54ff-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e5500-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e5501-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e5502-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e5503-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e5504-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e5505-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e5506-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e5507-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e5508-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e5509-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e550a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e550b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e550c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e550d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e550e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e550f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e5510-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7bf0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7bf1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7bf2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7bf3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7bf4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7bf5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7bf6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7bf7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7bf8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7bf9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7bfa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7bfb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7bfc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7bfd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7bfe-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7bff-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c00-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c01-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c02-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c03-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c04-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c05-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c06-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c07-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c08-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c09-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c0a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c0b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c0c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c0d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c0e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c0f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c10-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c11-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c12-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c13-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c14-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c15-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c16-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c17-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c18-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c19-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c1a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c1b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c1c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c1d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c1e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c1f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c20-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c21-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c22-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c23-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c24-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c25-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96e7c26-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea300-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea301-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea302-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea303-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea304-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea305-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea306-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea307-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea308-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea309-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea30a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea30b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea30c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea30d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea30e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea30f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea310-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea311-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea312-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea313-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea314-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea315-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea316-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea317-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea318-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea319-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea31a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea31b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea31c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea31d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea31e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea31f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea320-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea321-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea322-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea323-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea324-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea325-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea326-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea327-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea328-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea329-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea32a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea32b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea32c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea32d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea32e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea32f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea330-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ea331-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca10-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca11-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca12-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca13-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca14-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca15-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca16-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca17-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca18-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca19-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca1a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca1b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca1c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca1d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca1e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca1f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca20-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca21-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca22-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca23-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca24-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca25-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca26-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca27-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca28-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca29-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca2a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca2b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca2c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca2d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca2e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca2f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca30-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca31-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca32-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca33-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca34-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca35-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca36-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca37-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca38-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca39-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca3a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca3b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca3c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96eca3d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef120-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef121-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef122-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef123-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef124-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef125-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef126-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef127-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef128-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef129-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef12a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef12b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef12c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef12d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef12e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef12f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef130-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef131-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef132-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef133-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef134-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef135-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef136-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef137-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef138-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef139-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef13a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef13b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef13c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef13d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef13e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef13f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef140-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef141-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef142-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef143-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef144-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef145-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef146-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef147-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef148-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef149-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef14a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef14b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef14c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef14d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef14e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef14f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef150-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef151-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef152-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef153-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef154-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef155-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96ef156-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1830-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1831-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1832-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1833-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1834-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1835-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1836-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1837-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1838-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1839-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f183a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f183b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f183c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f183d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f183e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f183f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1840-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1841-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1842-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1843-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1844-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1845-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1846-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1847-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1848-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1849-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f184a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f184b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f184c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f184d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f184e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f184f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1850-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1851-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1852-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1853-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1854-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1855-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1856-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1857-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1858-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1859-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f185a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f185b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f185c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f185d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f185e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f185f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1860-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1861-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1862-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1863-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1864-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f1865-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f40-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f41-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f42-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f43-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f44-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f45-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f46-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f47-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f48-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f49-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f4a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f4b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f4c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f4d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f4e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f4f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f50-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f51-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f52-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f53-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f54-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f55-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f56-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f57-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f58-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f59-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f5a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f5b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f5c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f5d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f5e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f5f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f60-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f61-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f62-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f63-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f64-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f65-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f66-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f67-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f68-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f69-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f6a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f6b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f6c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f6d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f6e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f6f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f70-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f71-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f72-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f73-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f74-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f3f75-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f6650-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f6651-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f6652-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f6653-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f6654-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f6655-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f6656-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f6657-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f6658-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f6659-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f665a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f665b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f665c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f665d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f665e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f665f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f6660-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f6661-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f6662-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f6663-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f6664-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f6665-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f6666-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f6667-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f6668-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f6669-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f666a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f666b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f666c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f666d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f666e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f666f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f6670-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f6671-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f6672-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f6673-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f6674-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f8d60-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f8d61-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f8d62-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f8d63-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f8d64-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f8d65-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f8d66-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f8d67-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f8d68-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f8d69-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f8d6a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f8d6b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f8d6c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f8d6d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f8d6e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("a96f8d6f-89cf-11df-a4ee-0800200c9a67")); + } + private void fill16000() { + this.addToAnon(UUID.fromString("d05c7500-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7501-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7502-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7503-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7504-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7505-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7506-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7507-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7508-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7509-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c750a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c750b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c750c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c750d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c750e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c750f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7510-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7511-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7512-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7513-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7514-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7515-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7516-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7517-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7518-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7519-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c751a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c751b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c751c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c751d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c751e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c751f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7520-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7521-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7522-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7523-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7524-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7525-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7526-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7527-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7528-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c7529-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c752a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c10-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c11-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c12-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c13-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c14-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c15-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c16-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c17-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c18-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c19-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c1a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c1b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c1c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c1d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c1e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c1f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c20-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c21-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c22-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c23-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c24-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c25-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c26-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c27-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c28-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c29-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c2a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c2b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c2c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c2d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c2e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c2f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c30-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c31-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c32-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c33-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c34-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c35-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c36-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05c9c37-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc320-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc321-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc322-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc323-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc324-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc325-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc326-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc327-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc328-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc329-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc32a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc32b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc32c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc32d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc32e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc32f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc330-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc331-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc332-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc333-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc334-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc335-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc336-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc337-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc338-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc339-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc33a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc33b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc33c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc33d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc33e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc33f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc340-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc341-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc342-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc343-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc344-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc345-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc346-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc347-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc348-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc349-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc34a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc34b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc34c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc34d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc34e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc34f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc350-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cc351-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea30-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea31-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea32-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea33-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea34-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea35-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea36-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea37-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea38-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea39-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea3a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea3b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea3c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea3d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea3e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea3f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea40-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea41-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea42-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea43-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea44-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea45-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea46-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea47-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea48-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea49-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea4a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea4b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea4c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea4d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea4e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea4f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea50-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea51-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea52-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea53-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea54-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea55-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea56-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea57-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea58-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea59-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea5a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea5b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea5c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea5d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea5e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea5f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea60-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea61-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea62-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea63-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea64-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea65-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05cea66-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1140-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1141-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1142-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1143-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1144-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1145-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1146-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1147-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1148-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1149-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d114a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d114b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d114c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d114d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d114e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d114f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1150-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1151-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1152-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1153-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1154-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1155-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1156-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1157-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1158-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1159-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d115a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d115b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d115c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d115d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d115e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d115f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1160-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1161-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1162-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1163-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1164-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1165-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1166-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1167-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1168-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1169-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d116a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d116b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d116c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d116d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d116e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d116f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1170-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d1171-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3850-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3851-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3852-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3853-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3854-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3855-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3856-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3857-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3858-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3859-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d385a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d385b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d385c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d385d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d385e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d385f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3860-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3861-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3862-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3863-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3864-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3865-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3866-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3867-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3868-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3869-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d386a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d386b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d386c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d386d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d386e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d386f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3870-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3871-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3872-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3873-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3874-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3875-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3876-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3877-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3878-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d3879-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d387a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d387b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d387c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d387d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d387e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f60-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f61-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f62-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f63-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f64-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f65-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f66-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f67-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f68-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f69-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f6a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f6b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f6c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f6d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f6e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f6f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f70-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f71-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f72-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f73-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f74-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f75-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f76-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f77-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f78-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f79-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f7a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f7b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f7c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f7d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f7e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f7f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f80-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f81-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f82-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f83-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f84-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f85-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f86-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f87-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f88-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f89-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f8a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f8b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f8c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f8d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f8e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d5f8f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8670-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8671-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8672-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8673-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8674-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8675-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8676-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8677-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8678-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8679-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d867a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d867b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d867c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d867d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d867e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d867f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8680-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8681-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8682-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8683-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8684-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8685-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8686-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8687-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8688-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8689-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d868a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d868b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d868c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d868d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d868e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d868f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8690-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8691-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8692-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8693-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8694-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8695-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8696-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8697-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8698-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d8699-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d869a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d869b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d869c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d869d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d869e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d869f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d86a0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d86a1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d86a2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d86a3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d86a4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05d86a5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad80-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad81-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad82-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad83-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad84-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad85-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad86-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad87-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad88-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad89-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad8a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad8b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad8c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad8d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad8e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad8f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad90-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad91-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad92-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad93-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad94-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad95-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad96-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad97-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad98-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad99-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad9a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad9b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad9c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad9d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad9e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dad9f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dada0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dada1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dada2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dada3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dada4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dada5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dada6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dada7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dada8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dada9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dadaa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dadab-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dadac-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dadad-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dadae-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dadaf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dadb0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dadb1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dadb2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dadb3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dadb4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dadb5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dadb6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd490-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd491-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd492-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd493-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd494-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd495-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd496-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd497-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd498-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd499-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd49a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd49b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd49c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd49d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd49e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd49f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd4a0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd4a1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd4a2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd4a3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd4a4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd4a5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd4a6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd4a7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd4a8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd4a9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd4aa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd4ab-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd4ac-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd4ad-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd4ae-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd4af-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd4b0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dd4b1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dfba0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dfba1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dfba2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dfba3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dfba4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dfba5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dfba6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dfba7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dfba8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dfba9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dfbaa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dfbab-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dfbac-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dfbad-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dfbae-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dfbaf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dfbb0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dfbb1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dfbb2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dfbb3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dfbb4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dfbb5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dfbb6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("d05dfbb7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb40-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb41-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb42-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb43-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb44-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb45-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb46-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb47-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb48-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb49-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb4a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb4b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb4c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb4d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb4e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb4f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb50-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb51-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb52-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb53-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb54-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb55-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb56-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb57-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb58-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb59-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb5a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb5b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb5c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb5d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb5e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb5f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb60-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb61-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb62-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb63-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb64-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb65-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb66-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb67-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb68-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb69-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb6a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb6b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb6c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb6d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb6e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb6f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb70-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb71-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb72-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2cb73-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f250-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f251-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f252-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f253-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f254-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f255-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f256-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f257-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f258-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f259-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f25a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f25b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f25c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f25d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f25e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f25f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f260-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f261-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f262-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f263-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f264-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f265-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f266-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f267-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f268-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f269-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f26a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f26b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f26c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f26d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f26e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f26f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f270-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f271-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f272-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f273-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f274-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f275-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f276-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a2f277-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31960-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31961-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31962-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31963-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31964-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31965-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31966-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31967-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31968-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31969-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3196a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3196b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3196c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3196d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3196e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3196f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31970-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31971-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31972-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31973-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31974-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31975-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31976-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31977-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31978-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31979-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3197a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3197b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3197c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3197d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3197e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3197f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31980-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31981-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31982-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31983-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31984-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31985-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31986-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31987-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31988-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31989-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3198a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3198b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3198c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3198d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3198e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3198f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31990-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a31991-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34070-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34071-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34072-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34073-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34074-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34075-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34076-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34077-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34078-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34079-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3407a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3407b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3407c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3407d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3407e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3407f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34080-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34081-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34082-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34083-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34084-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34085-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34086-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34087-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34088-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34089-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3408a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3408b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3408c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3408d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3408e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3408f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34090-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34091-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34092-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34093-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34094-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34095-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34096-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34097-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34098-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a34099-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3409a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3409b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3409c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3409d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3409e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3409f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a340a0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a340a1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a340a2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a340a3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a340a4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a340a5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a340a6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a36780-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a36781-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a36782-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a36783-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a36784-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a36785-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a36786-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a36787-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a36788-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a36789-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3678a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3678b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3678c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3678d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3678e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3678f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a36790-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a36791-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a36792-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a36793-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a36794-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a36795-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a36796-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a36797-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a36798-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a36799-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3679a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3679b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3679c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3679d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3679e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3679f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a367a0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a367a1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a367a2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a367a3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a367a4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a367a5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a367a6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a367a7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a367a8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a367a9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a367aa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a367ab-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a367ac-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38e90-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38e91-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38e92-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38e93-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38e94-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38e95-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38e96-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38e97-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38e98-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38e99-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38e9a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38e9b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38e9c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38e9d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38e9e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38e9f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38ea0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38ea1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38ea2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38ea3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38ea4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38ea5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38ea6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38ea7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38ea8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38ea9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38eaa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38eab-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38eac-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38ead-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38eae-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38eaf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38eb0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38eb1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38eb2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38eb3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38eb4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38eb5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38eb6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38eb7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38eb8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38eb9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38eba-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38ebb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38ebc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38ebd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38ebe-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38ebf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38ec0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38ec1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38ec2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38ec3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a38ec4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5a0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5a1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5a2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5a3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5a4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5a5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5a6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5a7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5a8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5a9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5aa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5ab-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5ac-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5ad-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5ae-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5af-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5b0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5b1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5b2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5b3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5b4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5b5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5b6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5b7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5b8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5b9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5ba-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5bb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5bc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5bd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5be-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5bf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5c0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5c1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5c2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5c3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5c4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5c5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5c6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5c7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5c8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5c9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5ca-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5cb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5cc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5cd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5ce-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5cf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5d0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5d1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5d2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5d3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5d4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3b5d5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcb0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcb1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcb2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcb3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcb4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcb5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcb6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcb7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcb8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcb9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcba-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcbb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcbc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcbd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcbe-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcbf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcc0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcc1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcc2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcc3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcc4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcc5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcc6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcc7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcc8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcc9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcca-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dccb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dccc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dccd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcce-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dccf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcd0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcd1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcd2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcd3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcd4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcd5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcd6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcd7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcd8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcd9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcda-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcdb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcdc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcdd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcde-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dcdf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dce0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dce1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dce2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dce3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dce4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dce5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a3dce6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403c0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403c1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403c2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403c3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403c4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403c5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403c6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403c7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403c8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403c9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403ca-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403cb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403cc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403cd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403ce-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403cf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403d0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403d1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403d2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403d3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403d4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403d5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403d6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403d7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403d8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403d9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403da-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403db-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403dc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403dd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403de-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403df-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403e0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403e1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403e2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403e3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403e4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403e5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403e6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403e7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403e8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403e9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403ea-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403eb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403ec-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403ed-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403ee-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403ef-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403f0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403f1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403f2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403f3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403f4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a403f5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42ad0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42ad1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42ad2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42ad3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42ad4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42ad5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42ad6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42ad7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42ad8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42ad9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42ada-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42adb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42adc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42add-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42ade-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42adf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42ae0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42ae1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42ae2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42ae3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42ae4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42ae5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42ae6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42ae7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42ae8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42ae9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42aea-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42aeb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42aec-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42aed-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42aee-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42aef-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42af0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a42af1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a451e0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a451e1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a451e2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a451e3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a451e4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a451e5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a451e6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("e9a451e7-89cf-11df-a4ee-0800200c9a67")); + } + private void fill17000() { + this.addToAnon(UUID.fromString("fdedcd20-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedcd21-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedcd22-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedcd23-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedcd24-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedcd25-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedcd26-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedcd27-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedcd28-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedcd29-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedcd2a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedcd2b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedcd2c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedcd2d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedcd2e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedcd2f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedcd30-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedcd31-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedcd32-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedcd33-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedcd34-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedcd35-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedcd36-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedcd37-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedcd38-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedcd39-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedcd3a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf430-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf431-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf432-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf433-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf434-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf435-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf436-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf437-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf438-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf439-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf43a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf43b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf43c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf43d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf43e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf43f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf440-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf441-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf442-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf443-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf444-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf445-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf446-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf447-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf448-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf449-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf44a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf44b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf44c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf44d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf44e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf44f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf450-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf451-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf452-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf453-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf454-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf455-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf456-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf457-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf458-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf459-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf45a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf45b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf45c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf45d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf45e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf45f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf460-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf461-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdedf462-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b40-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b41-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b42-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b43-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b44-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b45-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b46-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b47-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b48-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b49-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b4a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b4b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b4c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b4d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b4e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b4f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b50-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b51-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b52-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b53-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b54-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b55-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b56-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b57-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b58-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b59-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b5a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b5b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b5c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b5d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b5e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b5f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b60-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b61-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b62-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b63-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b64-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b65-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b66-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b67-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b68-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b69-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b6a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b6b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b6c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b6d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b6e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b6f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b70-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee1b71-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4250-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4251-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4252-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4253-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4254-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4255-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4256-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4257-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4258-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4259-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee425a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee425b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee425c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee425d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee425e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee425f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4260-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4261-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4262-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4263-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4264-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4265-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4266-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4267-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4268-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4269-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee426a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee426b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee426c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee426d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee426e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee426f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4270-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4271-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4272-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4273-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4274-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4275-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee4276-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6960-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6961-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6962-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6963-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6964-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6965-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6966-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6967-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6968-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6969-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee696a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee696b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee696c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee696d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee696e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee696f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6970-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6971-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6972-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6973-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6974-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6975-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6976-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6977-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6978-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6979-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee697a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee697b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee697c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee697d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee697e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee697f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6980-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6981-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6982-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6983-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6984-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6985-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6986-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6987-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6988-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6989-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee698a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee698b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee698c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee698d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee698e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee698f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6990-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6991-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6992-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6993-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6994-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee6995-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9070-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9071-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9072-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9073-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9074-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9075-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9076-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9077-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9078-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9079-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee907a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee907b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee907c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee907d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee907e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee907f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9080-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9081-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9082-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9083-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9084-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9085-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9086-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9087-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9088-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9089-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee908a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee908b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee908c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee908d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee908e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee908f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9090-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9091-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9092-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9093-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9094-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9095-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9096-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9097-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9098-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee9099-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee909a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee909b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdee909c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb780-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb781-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb782-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb783-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb784-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb785-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb786-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb787-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb788-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb789-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb78a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb78b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb78c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb78d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb78e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb78f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb790-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb791-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb792-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb793-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb794-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb795-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb796-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb797-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb798-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb799-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb79a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb79b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb79c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb79d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb79e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb79f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb7a0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb7a1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb7a2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb7a3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb7a4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb7a5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb7a6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb7a7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb7a8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb7a9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb7aa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb7ab-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb7ac-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb7ad-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb7ae-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb7af-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb7b0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeeb7b1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeede90-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeede91-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeede92-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeede93-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeede94-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeede95-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeede96-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeede97-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeede98-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeede99-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeede9a-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeede9b-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeede9c-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeede9d-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeede9e-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeede9f-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedea0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedea1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedea2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedea3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedea4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedea5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedea6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedea7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedea8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedea9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedeaa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedeab-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedeac-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedead-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedeae-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedeaf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedeb0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedeb1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedeb2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedeb3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedeb4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedeb5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedeb6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedeb7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedeb8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedeb9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedeba-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedebb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedebc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedebd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedebe-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdeedebf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05a0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05a1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05a2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05a3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05a4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05a5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05a6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05a7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05a8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05a9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05aa-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05ab-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05ac-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05ad-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05ae-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05af-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05b0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05b1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05b2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05b3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05b4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05b5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05b6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05b7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05b8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05b9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05ba-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05bb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05bc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05bd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05be-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05bf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05c0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05c1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05c2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05c3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05c4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05c5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05c6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05c7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05c8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05c9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05ca-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05cb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05cc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05cd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05ce-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05cf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05d0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05d1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05d2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05d3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05d4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef05d5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cb0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cb1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cb2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cb3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cb4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cb5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cb6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cb7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cb8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cb9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cba-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cbb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cbc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cbd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cbe-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cbf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cc0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cc1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cc2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cc3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cc4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cc5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cc6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cc7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cc8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cc9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cca-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2ccb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2ccc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2ccd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cce-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2ccf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cd0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cd1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cd2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cd3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cd4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cd5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cd6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cd7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cd8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cd9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cda-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cdb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cdc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cdd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cde-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2cdf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2ce0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2ce1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2ce2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2ce3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2ce4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef2ce5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53c0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53c1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53c2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53c3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53c4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53c5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53c6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53c7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53c8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53c9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53ca-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53cb-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53cc-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53cd-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53ce-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53cf-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53d0-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53d1-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53d2-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53d3-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53d4-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53d5-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53d6-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53d7-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53d8-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53d9-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53da-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("fdef53db-89cf-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672d90-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672d91-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672d92-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672d93-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672d94-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672d95-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672d96-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672d97-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672d98-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672d99-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672d9a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672d9b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672d9c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672d9d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672d9e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672d9f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672da0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672da1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672da2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672da3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672da4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672da5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672da6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672da7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672da8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672da9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672daa-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672dab-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672dac-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672dad-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672dae-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672daf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672db0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672db1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672db2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672db3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e672db4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754a0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754a1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754a2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754a3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754a4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754a5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754a6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754a7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754a8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754a9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754aa-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754ab-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754ac-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754ad-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754ae-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754af-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754b0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754b1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754b2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754b3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754b4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754b5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754b6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754b7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754b8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754b9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754ba-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754bb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754bc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754bd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754be-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754bf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754c0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754c1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754c2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754c3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754c4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754c5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754c6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754c7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754c8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754c9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754ca-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754cb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754cc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754cd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754ce-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754cf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754d0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754d1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754d2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6754d3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bb0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bb1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bb2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bb3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bb4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bb5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bb6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bb7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bb8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bb9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bba-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bbb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bbc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bbd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bbe-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bbf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bc0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bc1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bc2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bc3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bc4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bc5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bc6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bc7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bc8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bc9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bca-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bcb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bcc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bcd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bce-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bcf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bd0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bd1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bd2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bd3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bd4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bd5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bd6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bd7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bd8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bd9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bda-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bdb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bdc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bdd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bde-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677bdf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677be0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e677be1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2c0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2c1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2c2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2c3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2c4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2c5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2c6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2c7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2c8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2c9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2ca-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2cb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2cc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2cd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2ce-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2cf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2d0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2d1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2d2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2d3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2d4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2d5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2d6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2d7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2d8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2d9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2da-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2db-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2dc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2dd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2de-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2df-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2e0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2e1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2e2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2e3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2e4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2e5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2e6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2e7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2e8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2e9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2ea-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2eb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2ec-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2ed-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2ee-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2ef-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2f0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2f1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2f2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2f3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2f4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2f5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2f6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67a2f7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9d0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9d1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9d2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9d3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9d4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9d5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9d6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9d7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9d8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9d9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9da-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9db-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9dc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9dd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9de-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9df-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9e0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9e1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9e2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9e3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9e4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9e5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9e6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9e7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9e8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9e9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9ea-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9eb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9ec-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9ed-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9ee-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9ef-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9f0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9f1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9f2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9f3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9f4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9f5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9f6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9f7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9f8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9f9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67c9fa-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0e0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0e1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0e2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0e3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0e4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0e5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0e6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0e7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0e8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0e9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0ea-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0eb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0ec-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0ed-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0ee-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0ef-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0f0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0f1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0f2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0f3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0f4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0f5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0f6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0f7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0f8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0f9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0fa-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0fb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0fc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0fd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0fe-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f0ff-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f100-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f101-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f102-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f103-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f104-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f105-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f106-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f107-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f108-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f109-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f10a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f10b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f10c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f10d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f10e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f10f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f110-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f111-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f112-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f113-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e67f114-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6817f0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6817f1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6817f2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6817f3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6817f4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6817f5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6817f6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6817f7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6817f8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6817f9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6817fa-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6817fb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6817fc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6817fd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6817fe-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e6817ff-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681800-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681801-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681802-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681803-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681804-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681805-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681806-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681807-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681808-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681809-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68180a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68180b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68180c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68180d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68180e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68180f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681810-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681811-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681812-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681813-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681814-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681815-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681816-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681817-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681818-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681819-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68181a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68181b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68181c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68181d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68181e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68181f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681820-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681821-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681822-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681823-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681824-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681825-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e681826-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f00-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f01-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f02-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f03-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f04-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f05-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f06-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f07-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f08-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f09-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f0a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f0b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f0c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f0d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f0e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f0f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f10-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f11-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f12-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f13-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f14-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f15-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f16-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f17-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f18-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f19-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f1a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f1b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f1c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f1d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f1e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f1f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f20-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f21-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f22-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f23-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f24-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f25-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f26-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f27-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f28-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f29-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f2a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f2b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f2c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f2d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f2e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f2f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f30-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f31-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f32-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f33-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f34-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e683f35-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686610-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686611-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686612-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686613-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686614-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686615-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686616-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686617-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686618-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686619-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68661a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68661b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68661c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68661d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68661e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68661f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686620-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686621-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686622-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686623-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686624-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686625-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686626-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686627-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686628-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686629-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68662a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68662b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68662c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68662d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68662e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68662f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686630-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686631-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686632-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686633-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686634-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686635-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686636-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686637-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686638-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686639-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68663a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68663b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68663c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68663d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68663e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68663f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686640-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686641-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e686642-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d20-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d21-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d22-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d23-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d24-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d25-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d26-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d27-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d28-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d29-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d2a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d2b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d2c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d2d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d2e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d2f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d30-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d31-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d32-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d33-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d34-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d35-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d36-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d37-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d38-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d39-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e688d3a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68b430-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68b431-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68b432-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68b433-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68b434-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68b435-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68b436-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68b437-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68b438-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68b439-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68b43a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68b43b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68b43c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68b43d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68b43e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68b43f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68b440-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68b441-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68b442-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68b443-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68b444-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("0e68b445-89d0-11df-a4ee-0800200c9a67")); + } + private void fill18000() { + this.addToAnon(UUID.fromString("23e3d1a0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1a1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1a2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1a3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1a4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1a5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1a6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1a7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1a8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1a9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1aa-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1ab-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1ac-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1ad-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1ae-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1af-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1b0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1b1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1b2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1b3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1b4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1b5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1b6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1b7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1b8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1b9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1ba-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1bb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1bc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1bd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1be-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1bf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1c0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1c1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1c2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3d1c3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8b0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8b1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8b2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8b3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8b4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8b5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8b6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8b7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8b8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8b9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8ba-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8bb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8bc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8bd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8be-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8bf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8c0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8c1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8c2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8c3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8c4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8c5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8c6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8c7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8c8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8c9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8ca-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8cb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8cc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8cd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8ce-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8cf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8d0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8d1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8d2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8d3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8d4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8d5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8d6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8d7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8d8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8d9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8da-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8db-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8dc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8dd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8de-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8df-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8e0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8e1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8e2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e3f8e3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fc0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fc1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fc2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fc3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fc4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fc5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fc6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fc7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fc8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fc9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fca-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fcb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fcc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fcd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fce-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fcf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fd0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fd1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fd2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fd3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fd4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fd5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fd6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fd7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fd8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fd9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fda-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fdb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fdc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fdd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fde-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fdf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fe0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fe1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fe2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fe3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fe4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fe5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fe6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fe7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fe8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fe9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fea-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41feb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fec-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fed-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fee-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41fef-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e41ff0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446d0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446d1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446d2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446d3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446d4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446d5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446d6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446d7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446d8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446d9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446da-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446db-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446dc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446dd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446de-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446df-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446e0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446e1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446e2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446e3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446e4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446e5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446e6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446e7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446e8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446e9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446ea-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446eb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446ec-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446ed-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446ee-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446ef-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446f0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446f1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446f2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446f3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446f4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e446f5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46de0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46de1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46de2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46de3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46de4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46de5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46de6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46de7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46de8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46de9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46dea-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46deb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46dec-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46ded-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46dee-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46def-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46df0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46df1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46df2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46df3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46df4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46df5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46df6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46df7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46df8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46df9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46dfa-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46dfb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46dfc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46dfd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46dfe-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46dff-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46e00-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46e01-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46e02-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46e03-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46e04-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46e05-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46e06-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46e07-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46e08-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46e09-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46e0a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46e0b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46e0c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46e0d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46e0e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46e0f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46e10-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46e11-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46e12-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46e13-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46e14-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46e15-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e46e16-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e494f0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e494f1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e494f2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e494f3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e494f4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e494f5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e494f6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e494f7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e494f8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e494f9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e494fa-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e494fb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e494fc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e494fd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e494fe-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e494ff-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e49500-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e49501-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e49502-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e49503-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e49504-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e49505-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e49506-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e49507-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e49508-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e49509-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4950a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4950b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4950c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4950d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4950e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4950f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e49510-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e49511-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e49512-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e49513-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e49514-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e49515-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e49516-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e49517-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e49518-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc00-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc01-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc02-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc03-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc04-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc05-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc06-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc07-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc08-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc09-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc0a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc0b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc0c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc0d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc0e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc0f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc10-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc11-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc12-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc13-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc14-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc15-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc16-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc17-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc18-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc19-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc1a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc1b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc1c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc1d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc1e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc1f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc20-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc21-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc22-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc23-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc24-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc25-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc26-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc27-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc28-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc29-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc2a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc2b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc2c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc2d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc2e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc2f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc30-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc31-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc32-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc33-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc34-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc35-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc36-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4bc37-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e310-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e311-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e312-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e313-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e314-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e315-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e316-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e317-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e318-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e319-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e31a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e31b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e31c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e31d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e31e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e31f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e320-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e321-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e322-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e323-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e324-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e325-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e326-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e327-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e328-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e329-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e32a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e32b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e32c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e32d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e32e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e32f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e330-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e331-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e332-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e333-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e334-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e335-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e336-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e337-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e338-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e339-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e33a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e33b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e33c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e33d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e33e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e33f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e340-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e341-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e342-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e4e343-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a20-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a21-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a22-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a23-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a24-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a25-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a26-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a27-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a28-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a29-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a2a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a2b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a2c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a2d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a2e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a2f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a30-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a31-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a32-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a33-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a34-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a35-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a36-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a37-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a38-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a39-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a3a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a3b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a3c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a3d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a3e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a3f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a40-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a41-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a42-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a43-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a44-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a45-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a46-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a47-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a48-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a49-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a4a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a4b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a4c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a4d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a4e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a4f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a50-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a51-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a52-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a53-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a54-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e50a55-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53130-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53131-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53132-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53133-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53134-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53135-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53136-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53137-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53138-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53139-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e5313a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e5313b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e5313c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e5313d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e5313e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e5313f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53140-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53141-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53142-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53143-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53144-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53145-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53146-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53147-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53148-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53149-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e5314a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e5314b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e5314c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e5314d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e5314e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e5314f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53150-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53151-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53152-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53153-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53154-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53155-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53156-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53157-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53158-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e53159-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e55840-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e55841-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e55842-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e55843-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e55844-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e55845-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e55846-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e55847-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e55848-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e55849-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e5584a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e5584b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e5584c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e5584d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e5584e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e5584f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e55850-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e55851-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e55852-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e55853-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e55854-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e55855-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e55856-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e55857-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("23e55858-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e27d60-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e27d61-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e27d62-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e27d63-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e27d64-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e27d65-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e27d66-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e27d67-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e27d68-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e27d69-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e27d6a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e27d6b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e27d6c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e27d6d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e27d6e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e27d6f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e27d70-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e27d71-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e27d72-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e27d73-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e27d74-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e27d75-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e27d76-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e27d77-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e27d78-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a470-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a471-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a472-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a473-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a474-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a475-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a476-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a477-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a478-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a479-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a47a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a47b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a47c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a47d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a47e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a47f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a480-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a481-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a482-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a483-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a484-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a485-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a486-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a487-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a488-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a489-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a48a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a48b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a48c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a48d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a48e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a48f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a490-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a491-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a492-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a493-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a494-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a495-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a496-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a497-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a498-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a499-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a49a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a49b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a49c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a49d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a49e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a49f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a4a0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a4a1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a4a2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2a4a3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb80-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb81-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb82-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb83-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb84-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb85-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb86-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb87-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb88-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb89-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb8a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb8b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb8c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb8d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb8e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb8f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb90-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb91-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb92-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb93-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb94-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb95-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb96-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb97-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb98-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb99-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb9a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb9b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb9c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb9d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb9e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cb9f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cba0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cba1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cba2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cba3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cba4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cba5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cba6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cba7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cba8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cba9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cbaa-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cbab-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cbac-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cbad-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cbae-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cbaf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cbb0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cbb1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2cbb2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f290-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f291-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f292-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f293-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f294-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f295-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f296-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f297-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f298-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f299-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f29a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f29b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f29c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f29d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f29e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f29f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f2a0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f2a1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f2a2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f2a3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f2a4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f2a5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f2a6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f2a7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f2a8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f2a9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f2aa-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f2ab-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f2ac-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f2ad-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f2ae-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f2af-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f2b0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f2b1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f2b2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f2b3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f2b4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f2b5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f2b6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f2b7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f2b8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e2f2b9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319a0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319a1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319a2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319a3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319a4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319a5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319a6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319a7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319a8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319a9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319aa-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319ab-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319ac-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319ad-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319ae-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319af-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319b0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319b1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319b2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319b3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319b4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319b5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319b6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319b7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319b8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319b9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319ba-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319bb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319bc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319bd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319be-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319bf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319c0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319c1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319c2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319c3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319c4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319c5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319c6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319c7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319c8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319c9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319ca-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319cb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319cc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319cd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319ce-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319cf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319d0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319d1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319d2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319d3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319d4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e319d5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340b0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340b1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340b2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340b3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340b4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340b5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340b6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340b7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340b8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340b9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340ba-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340bb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340bc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340bd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340be-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340bf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340c0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340c1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340c2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340c3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340c4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340c5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340c6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340c7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340c8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340c9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340ca-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340cb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340cc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340cd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340ce-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340cf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340d0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340d1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340d2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340d3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340d4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340d5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340d6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340d7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340d8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340d9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340da-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340db-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340dc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340dd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e340de-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367c0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367c1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367c2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367c3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367c4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367c5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367c6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367c7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367c8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367c9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367ca-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367cb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367cc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367cd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367ce-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367cf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367d0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367d1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367d2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367d3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367d4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367d5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367d6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367d7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367d8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367d9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367da-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367db-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367dc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367dd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367de-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367df-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367e0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367e1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367e2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367e3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367e4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367e5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367e6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367e7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367e8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367e9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367ea-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367eb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367ec-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367ed-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367ee-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367ef-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367f0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367f1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367f2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367f3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367f4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367f5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e367f6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ed0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ed1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ed2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ed3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ed4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ed5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ed6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ed7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ed8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ed9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38eda-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38edb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38edc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38edd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ede-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38edf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ee0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ee1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ee2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ee3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ee4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ee5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ee6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ee7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ee8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ee9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38eea-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38eeb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38eec-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38eed-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38eee-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38eef-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ef0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ef1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ef2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ef3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ef4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ef5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ef6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ef7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ef8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38ef9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38efa-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38efb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38efc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38efd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38efe-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38eff-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38f00-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38f01-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e38f02-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5e0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5e1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5e2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5e3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5e4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5e5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5e6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5e7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5e8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5e9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5ea-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5eb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5ec-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5ed-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5ee-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5ef-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5f0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5f1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5f2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5f3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5f4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5f5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5f6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5f7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5f8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5f9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5fa-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5fb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5fc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5fd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5fe-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b5ff-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b600-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b601-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b602-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b603-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b604-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b605-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b606-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b607-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b608-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b609-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b60a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b60b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b60c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b60d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b60e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b60f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b610-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b611-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b612-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b613-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b614-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b615-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3b616-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dcf0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dcf1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dcf2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dcf3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dcf4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dcf5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dcf6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dcf7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dcf8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dcf9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dcfa-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dcfb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dcfc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dcfd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dcfe-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dcff-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd00-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd01-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd02-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd03-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd04-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd05-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd06-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd07-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd08-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd09-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd0a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd0b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd0c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd0d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd0e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd0f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd10-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd11-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd12-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd13-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd14-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd15-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd16-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd17-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd18-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd19-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e3dd1a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e40400-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e40401-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e40402-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e40403-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e40404-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e40405-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e40406-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e40407-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e40408-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e40409-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e4040a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e4040b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e4040c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e4040d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e4040e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e4040f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e40410-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e40411-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e40412-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e40413-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e40414-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e40415-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e40416-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e40417-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("36e40418-89d0-11df-a4ee-0800200c9a67")); + } + private void fill19000() { + this.addToAnon(UUID.fromString("4821ecf0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ecf1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ecf2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ecf3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ecf4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ecf5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ecf6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ecf7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ecf8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ecf9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ecfa-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ecfb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ecfc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ecfd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ecfe-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ecff-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed00-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed01-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed02-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed03-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed04-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed05-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed06-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed07-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed08-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed09-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed0a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed0b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed0c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed0d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed0e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed0f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed10-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed11-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed12-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed13-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed14-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed15-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed16-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed17-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed18-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed19-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed1a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed1b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed1c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed1d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed1e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4821ed1f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221400-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221401-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221402-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221403-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221404-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221405-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221406-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221407-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221408-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221409-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822140a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822140b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822140c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822140d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822140e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822140f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221410-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221411-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221412-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221413-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221414-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221415-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221416-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221417-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221418-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221419-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822141a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822141b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822141c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822141d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822141e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822141f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221420-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221421-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221422-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221423-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221424-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221425-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221426-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221427-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221428-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221429-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822142a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822142b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822142c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822142d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822142e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822142f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221430-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221431-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221432-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48221433-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48223b10-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48223b11-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48223b12-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48223b13-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48223b14-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48223b15-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48223b16-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48223b17-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48223b18-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48226220-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48226221-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48226222-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48226223-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48226224-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48226225-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48226226-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48226227-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48226228-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48226229-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822622a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822622b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822622c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822622d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822622e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822622f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48226230-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48226231-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48226232-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48226233-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48226234-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48226235-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48226236-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48226237-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48226238-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48226239-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228930-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228931-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228932-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228933-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228934-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228935-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228936-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228937-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228938-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228939-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822893a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822893b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822893c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822893d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822893e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822893f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228940-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228941-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228942-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228943-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228944-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228945-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228946-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228947-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228948-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228949-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822894a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822894b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822894c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822894d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822894e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822894f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228950-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228951-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228952-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228953-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228954-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228955-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228956-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228957-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228958-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228959-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822895a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822895b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822895c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822895d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822895e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822895f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228960-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228961-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228962-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228963-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228964-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48228965-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b040-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b041-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b042-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b043-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b044-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b045-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b046-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b047-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b048-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b049-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b04a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b04b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b04c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b04d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b04e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b04f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b050-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b051-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b052-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b053-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b054-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b055-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b056-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b057-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b058-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b059-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b05a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b05b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b05c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b05d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b05e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b05f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b060-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b061-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b062-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b063-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b064-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b065-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b066-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b067-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b068-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b069-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b06a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b06b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b06c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b06d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b06e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b06f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822b070-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d750-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d751-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d752-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d753-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d754-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d755-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d756-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d757-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d758-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d759-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d75a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d75b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d75c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d75d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d75e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d75f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d760-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d761-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d762-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d763-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d764-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d765-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d766-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d767-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d768-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d769-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d76a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d76b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d76c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d76d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d76e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d76f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d770-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d771-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d772-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d773-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d774-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d775-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d776-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d777-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d778-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d779-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d77a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d77b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d77c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d77d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822d77e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe60-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe61-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe62-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe63-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe64-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe65-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe66-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe67-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe68-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe69-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe6a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe6b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe6c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe6d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe6e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe6f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe70-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe71-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe72-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe73-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe74-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe75-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe76-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe77-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe78-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe79-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe7a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe7b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe7c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe7d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe7e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe7f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe80-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe81-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe82-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe83-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe84-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe85-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe86-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe87-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe88-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe89-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe8a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe8b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe8c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe8d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe8e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe8f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe90-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe91-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe92-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe93-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe94-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4822fe95-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232570-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232571-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232572-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232573-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232574-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232575-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232576-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232577-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232578-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232579-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4823257a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4823257b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4823257c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4823257d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4823257e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4823257f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232580-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232581-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232582-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232583-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232584-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232585-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232586-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232587-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232588-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232589-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4823258a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4823258b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4823258c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4823258d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4823258e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4823258f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232590-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232591-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232592-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232593-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232594-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232595-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232596-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232597-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232598-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48232599-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4823259a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4823259b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4823259c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4823259d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4823259e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4823259f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("482325a0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("482325a1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("482325a2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("482325a3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("482325a4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("482325a5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c80-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c81-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c82-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c83-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c84-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c85-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c86-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c87-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c88-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c89-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c8a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c8b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c8c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c8d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c8e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c8f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c90-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c91-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c92-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c93-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c94-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c95-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c96-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c97-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c98-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c99-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c9a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c9b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c9c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c9d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c9e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234c9f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234ca0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234ca1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234ca2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234ca3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234ca4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234ca5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234ca6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234ca7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234ca8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234ca9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234caa-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234cab-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234cac-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234cad-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234cae-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234caf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234cb0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234cb1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234cb2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234cb3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234cb4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234cb5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48234cb6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48237390-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48237391-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48237392-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48237393-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48237394-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48237395-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48237396-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48237397-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48237398-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48237399-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4823739a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4823739b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4823739c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4823739d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4823739e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("4823739f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("482373a0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("482373a1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("482373a2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("482373a3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("482373a4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("482373a5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("482373a6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("482373a7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("482373a8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("482373a9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("482373aa-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("482373ab-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("482373ac-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("482373ad-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("482373ae-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("482373af-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("482373b0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("482373b1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48239aa0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48239aa1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48239aa2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48239aa3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48239aa4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48239aa5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48239aa6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48239aa7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48239aa8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48239aa9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48239aaa-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48239aab-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48239aac-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48239aad-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48239aae-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48239aaf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48239ab0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("48239ab1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be436d0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be436d1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be436d2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be436d3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be436d4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be436d5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be436d6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be436d7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be436d8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be436d9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be436da-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be436db-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be436dc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be436dd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be436de-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be436df-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be436e0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be436e1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be436e2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be436e3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be436e4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be436e5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be436e6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45de0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45de1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45de2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45de3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45de4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45de5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45de6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45de7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45de8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45de9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45dea-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45deb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45dec-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45ded-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45dee-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45def-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45df0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45df1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45df2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45df3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45df4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45df5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45df6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45df7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45df8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45df9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45dfa-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45dfb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45dfc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45dfd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45dfe-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45dff-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45e00-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45e01-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45e02-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45e03-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45e04-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45e05-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45e06-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45e07-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45e08-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45e09-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45e0a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45e0b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45e0c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45e0d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45e0e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45e0f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45e10-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45e11-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45e12-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be45e13-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be484f0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be484f1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be484f2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be484f3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be484f4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be484f5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be484f6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be484f7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be484f8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be484f9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be484fa-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be484fb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be484fc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be484fd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be484fe-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be484ff-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be48500-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be48501-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be48502-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be48503-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be48504-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be48505-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be48506-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be48507-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be48508-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be48509-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4850a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4850b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4850c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4850d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4850e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4850f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be48510-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be48511-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be48512-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be48513-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be48514-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be48515-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be48516-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be48517-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be48518-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be48519-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4851a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4851b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4851c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4851d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4851e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4851f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be48520-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be48521-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac00-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac01-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac02-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac03-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac04-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac05-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac06-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac07-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac08-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac09-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac0a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac0b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac0c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac0d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac0e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac0f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac10-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac11-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac12-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac13-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac14-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac15-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac16-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac17-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac18-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac19-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac1a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac1b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac1c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac1d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac1e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac1f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac20-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac21-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac22-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac23-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac24-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac25-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac26-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac27-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac28-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac29-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac2a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac2b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac2c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac2d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac2e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac2f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac30-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac31-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac32-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac33-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac34-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4ac35-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d310-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d311-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d312-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d313-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d314-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d315-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d316-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d317-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d318-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d319-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d31a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d31b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d31c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d31d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d31e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d31f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d320-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d321-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d322-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d323-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d324-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d325-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d326-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d327-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d328-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d329-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d32a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d32b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d32c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d32d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d32e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d32f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d330-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d331-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d332-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d333-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d334-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d335-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d336-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d337-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d338-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d339-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4d33a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa20-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa21-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa22-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa23-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa24-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa25-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa26-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa27-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa28-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa29-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa2a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa2b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa2c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa2d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa2e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa2f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa30-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa31-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa32-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa33-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa34-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa35-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa36-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa37-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa38-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa39-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa3a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa3b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa3c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa3d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa3e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa3f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa40-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa41-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa42-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa43-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa44-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa45-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa46-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa47-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa48-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa49-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa4a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa4b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be4fa4c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52130-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52131-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52132-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52133-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52134-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52135-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52136-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52137-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52138-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52139-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5213a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5213b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5213c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5213d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5213e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5213f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52140-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52141-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52142-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52143-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52144-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52145-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52146-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52147-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52148-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52149-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5214a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5214b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5214c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5214d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5214e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5214f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52150-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52151-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52152-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52153-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52154-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52155-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52156-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52157-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52158-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52159-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5215a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5215b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5215c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5215d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5215e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5215f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52160-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52161-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52162-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52163-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52164-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52165-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be52166-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54840-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54841-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54842-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54843-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54844-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54845-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54846-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54847-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54848-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54849-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5484a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5484b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5484c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5484d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5484e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5484f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54850-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54851-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54852-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54853-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54854-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54855-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54856-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54857-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54858-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54859-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5485a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5485b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5485c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5485d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5485e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5485f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54860-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54861-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54862-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54863-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54864-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54865-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54866-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54867-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54868-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54869-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5486a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5486b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5486c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5486d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5486e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5486f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54870-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54871-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54872-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54873-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54874-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54875-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be54876-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f50-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f51-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f52-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f53-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f54-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f55-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f56-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f57-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f58-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f59-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f5a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f5b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f5c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f5d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f5e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f5f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f60-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f61-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f62-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f63-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f64-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f65-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f66-89d0-11df-a4ee-0800200c9a67")); + } + private void fill20000() { + this.addToAnon(UUID.fromString("5be56f67-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f68-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f69-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f6a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f6b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f6c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f6d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f6e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f6f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f70-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f71-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f72-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f73-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f74-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f75-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f76-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f77-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f78-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f79-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f7a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f7b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f7c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f7d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f7e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f7f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f80-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f81-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be56f82-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59660-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59661-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59662-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59663-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59664-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59665-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59666-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59667-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59668-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59669-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5966a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5966b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5966c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5966d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5966e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5966f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59670-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59671-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59672-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59673-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59674-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59675-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59676-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59677-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59678-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59679-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5967a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5967b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5967c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5967d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5967e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5967f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59680-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59681-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59682-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59683-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59684-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59685-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59686-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59687-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59688-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be59689-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5968a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5968b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5968c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5968d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5968e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5bd70-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5bd71-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5bd72-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5bd73-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5bd74-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5bd75-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5bd76-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5bd77-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5bd78-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5bd79-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5bd7a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5bd7b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5bd7c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5bd7d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5bd7e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5bd7f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5bd80-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5bd81-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5bd82-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5bd83-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5bd84-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5bd85-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5bd86-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5bd87-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("5be5bd88-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07cfb0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07cfb1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07cfb2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07cfb3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07cfb4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07cfb5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07cfb6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6c0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6c1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6c2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6c3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6c4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6c5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6c6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6c7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6c8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6c9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6ca-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6cb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6cc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6cd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6ce-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6cf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6d0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6d1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6d2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6d3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6d4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6d5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6d6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6d7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6d8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6d9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6da-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6db-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6dc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6dd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6de-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6df-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6e0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6e1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6e2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6e3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6e4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6e5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6e6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6e7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6e8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6e9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6ea-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6eb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6ec-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6ed-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6ee-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6ef-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6f0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6f1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6f2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f07f6f3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081dd0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081dd1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081dd2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081dd3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081dd4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081dd5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081dd6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081dd7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081dd8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081dd9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081dda-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081ddb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081ddc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081ddd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081dde-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081ddf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081de0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081de1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081de2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081de3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081de4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081de5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081de6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081de7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081de8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081de9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081dea-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081deb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081dec-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081ded-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081dee-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081def-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081df0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081df1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f081df2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844e0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844e1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844e2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844e3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844e4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844e5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844e6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844e7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844e8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844e9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844ea-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844eb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844ec-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844ed-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844ee-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844ef-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844f0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844f1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844f2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844f3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844f4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844f5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844f6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844f7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844f8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844f9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844fa-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844fb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844fc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844fd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844fe-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f0844ff-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f084500-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f084501-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f084502-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f084503-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f084504-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f084505-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f084506-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f084507-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f084508-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f084509-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08450a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08450b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08450c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08450d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08450e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08450f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f084510-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086bf0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086bf1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086bf2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086bf3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086bf4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086bf5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086bf6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086bf7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086bf8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086bf9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086bfa-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086bfb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086bfc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086bfd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086bfe-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086bff-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c00-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c01-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c02-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c03-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c04-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c05-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c06-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c07-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c08-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c09-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c0a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c0b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c0c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c0d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c0e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c0f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c10-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c11-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c12-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c13-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c14-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c15-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c16-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c17-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c18-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c19-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c1a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c1b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c1c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c1d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c1e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c1f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c20-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c21-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c22-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c23-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c24-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f086c25-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089300-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089301-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089302-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089303-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089304-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089305-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089306-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089307-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089308-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089309-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08930a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08930b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08930c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08930d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08930e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08930f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089310-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089311-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089312-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089313-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089314-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089315-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089316-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089317-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089318-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089319-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08931a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08931b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08931c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08931d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08931e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08931f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089320-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089321-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089322-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089323-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089324-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089325-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089326-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089327-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089328-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f089329-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08932a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08932b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08932c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08932d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba10-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba11-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba12-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba13-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba14-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba15-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba16-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba17-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba18-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba19-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba1a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba1b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba1c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba1d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba1e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba1f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba20-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba21-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba22-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba23-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba24-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba25-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba26-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba27-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba28-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba29-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba2a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba2b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba2c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba2d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba2e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba2f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba30-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba31-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba32-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba33-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba34-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba35-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba36-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba37-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba38-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba39-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba3a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba3b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba3c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba3d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba3e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba3f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba40-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba41-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08ba42-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e120-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e121-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e122-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e123-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e124-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e125-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e126-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e127-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e128-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e129-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e12a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e12b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e12c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e12d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e12e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e12f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e130-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e131-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e132-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e133-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e134-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e135-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e136-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e137-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e138-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e139-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e13a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e13b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e13c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e13d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e13e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e13f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e140-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e141-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e142-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e143-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e144-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e145-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e146-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e147-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e148-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e149-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e14a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e14b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e14c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e14d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e14e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e14f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e150-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e151-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e152-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e153-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e154-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f08e155-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090830-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090831-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090832-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090833-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090834-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090835-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090836-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090837-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090838-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090839-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09083a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09083b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09083c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09083d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09083e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09083f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090840-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090841-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090842-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090843-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090844-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090845-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090846-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090847-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090848-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090849-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09084a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09084b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09084c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09084d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09084e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09084f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090850-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090851-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090852-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090853-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090854-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090855-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090856-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090857-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090858-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090859-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09085a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09085b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09085c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09085d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09085e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09085f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090860-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090861-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090862-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090863-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090864-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090865-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090866-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090867-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f090868-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f40-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f41-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f42-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f43-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f44-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f45-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f46-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f47-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f48-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f49-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f4a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f4b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f4c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f4d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f4e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f4f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f50-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f51-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f52-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f53-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f54-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f55-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f56-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f57-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f58-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f59-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f5a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f5b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f5c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f5d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f5e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f5f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f60-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f61-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f62-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f63-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f64-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f65-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f66-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f67-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f68-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f69-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f6a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f6b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f6c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f6d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f6e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f6f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f70-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f71-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f72-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f73-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f74-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f092f75-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f095650-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f095651-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f095652-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f095653-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f095654-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f095655-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f095656-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f095657-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f095658-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f095659-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09565a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09565b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09565c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09565d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09565e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09565f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f095660-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f095661-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f095662-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f095663-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f095664-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f095665-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f095666-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f095667-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f095668-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f095669-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09566a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09566b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09566c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09566d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09566e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f09566f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f095670-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f095671-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f097d60-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f097d61-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f097d62-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f097d63-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f097d64-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f097d65-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("6f097d66-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db5130-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db5131-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db5132-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db5133-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db5134-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db5135-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db5136-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db5137-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db5138-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db5139-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db513a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db513b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db513c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7840-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7841-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7842-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7843-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7844-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7845-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7846-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7847-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7848-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7849-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db784a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db784b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db784c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db784d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db784e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db784f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7850-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7851-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7852-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7853-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7854-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7855-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7856-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7857-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7858-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7859-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db785a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db785b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db785c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db785d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db785e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db785f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7860-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7861-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7862-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7863-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7864-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7865-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7866-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7867-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7868-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7869-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db786a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db786b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db786c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db786d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db786e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db786f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7870-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7871-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db7872-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f50-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f51-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f52-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f53-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f54-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f55-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f56-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f57-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f58-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f59-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f5a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f5b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f5c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f5d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f5e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f5f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f60-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f61-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f62-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f63-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f64-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f65-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f66-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f67-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f68-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f69-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f6a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f6b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f6c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f6d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f6e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f6f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f70-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f71-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f72-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f73-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f74-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f75-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f76-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f77-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f78-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85db9f79-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc660-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc661-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc662-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc663-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc664-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc665-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc666-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc667-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc668-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc669-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc66a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc66b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc66c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc66d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc66e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc66f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc670-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc671-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc672-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc673-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc674-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc675-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc676-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc677-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc678-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc679-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc67a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc67b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc67c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc67d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc67e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc67f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc680-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc681-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc682-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc683-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc684-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc685-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc686-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc687-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc688-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc689-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc68a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc68b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc68c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc68d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc68e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc68f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc690-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbc691-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed70-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed71-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed72-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed73-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed74-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed75-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed76-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed77-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed78-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed79-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed7a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed7b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed7c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed7d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed7e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed7f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed80-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed81-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed82-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed83-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed84-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed85-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed86-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed87-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed88-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed89-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed8a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed8b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed8c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed8d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed8e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed8f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed90-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed91-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed92-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed93-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed94-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed95-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed96-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed97-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed98-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed99-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed9a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed9b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed9c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed9d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed9e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbed9f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbeda0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbeda1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbeda2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbeda3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbeda4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbeda5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dbeda6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc1480-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc1481-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc1482-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc1483-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc1484-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc1485-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc1486-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc1487-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc1488-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc1489-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc148a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc148b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc148c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc148d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc148e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc148f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc1490-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc1491-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc1492-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc1493-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc1494-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc1495-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc1496-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc1497-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc1498-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc1499-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc149a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc149b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc149c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc149d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc149e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc149f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc14a0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc14a1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc14a2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc14a3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc14a4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc14a5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc14a6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3b90-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3b91-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3b92-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3b93-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3b94-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3b95-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3b96-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3b97-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3b98-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3b99-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3b9a-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3b9b-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3b9c-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3b9d-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3b9e-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3b9f-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3ba0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3ba1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3ba2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3ba3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3ba4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3ba5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3ba6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3ba7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3ba8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3ba9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3baa-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3bab-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3bac-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3bad-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3bae-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3baf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3bb0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3bb1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3bb2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3bb3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3bb4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3bb5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3bb6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3bb7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3bb8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3bb9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3bba-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3bbb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3bbc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3bbd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3bbe-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3bbf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3bc0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3bc1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3bc2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc3bc3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62a0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62a1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62a2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62a3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62a4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62a5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62a6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62a7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62a8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62a9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62aa-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62ab-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62ac-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62ad-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62ae-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62af-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62b0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62b1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62b2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62b3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62b4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62b5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62b6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62b7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62b8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62b9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62ba-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62bb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62bc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62bd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62be-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62bf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62c0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62c1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62c2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62c3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62c4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62c5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62c6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62c7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62c8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62c9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62ca-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62cb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62cc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62cd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62ce-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62cf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62d0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62d1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62d2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62d3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62d4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc62d5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89b0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89b1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89b2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89b3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89b4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89b5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89b6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89b7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89b8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89b9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89ba-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89bb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89bc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89bd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89be-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89bf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89c0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89c1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89c2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89c3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89c4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89c5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89c6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89c7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89c8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89c9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89ca-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89cb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89cc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89cd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89ce-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89cf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89d0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89d1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89d2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89d3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89d4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89d5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89d6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89d7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89d8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89d9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89da-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89db-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89dc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89dd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89de-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89df-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89e0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89e1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89e2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89e3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89e4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89e5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dc89e6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0c0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0c1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0c2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0c3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0c4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0c5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0c6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0c7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0c8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0c9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0ca-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0cb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0cc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0cd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0ce-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0cf-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0d0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0d1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0d2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0d3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0d4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0d5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0d6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0d7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0d8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0d9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0da-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0db-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0dc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0dd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0de-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0df-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0e0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0e1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0e2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0e3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0e4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0e5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0e6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0e7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0e8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0e9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0ea-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0eb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0ec-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0ed-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0ee-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0ef-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0f0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0f1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0f2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0f3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0f4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcb0f5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7d0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7d1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7d2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7d3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7d4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7d5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7d6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7d7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7d8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7d9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7da-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7db-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7dc-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7dd-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7de-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7df-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7e0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7e1-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7e2-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7e3-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7e4-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7e5-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7e6-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7e7-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7e8-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7e9-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7ea-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7eb-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7ec-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7ed-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7ee-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7ef-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcd7f0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcfee0-89d0-11df-a4ee-0800200c9a67")); + this.addToAnon(UUID.fromString("85dcfee1-89d0-11df-a4ee-0800200c9a67")); + } + private void fill21000() { + this.addToExt(UUID.fromString("02848590-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02848591-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02848592-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02848593-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02848594-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02848595-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02848596-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02848597-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02848598-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02848599-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284859a-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284859b-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284859c-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284859d-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284859e-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284859f-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028485a0-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028485a1-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284aca0-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284aca1-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284aca2-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284aca3-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284aca4-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284aca5-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284aca6-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284aca7-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284aca8-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284aca9-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acaa-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acab-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acac-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acad-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acae-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acaf-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acb0-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acb1-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acb2-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acb3-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acb4-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acb5-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acb6-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acb7-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acb8-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acb9-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acba-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acbb-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acbc-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acbd-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acbe-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acbf-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acc0-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acc1-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acc2-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acc3-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acc4-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acc5-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acc6-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acc7-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acc8-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acc9-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acca-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284accb-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284accc-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284accd-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acce-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284accf-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acd0-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284acd1-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3b0-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3b1-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3b2-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3b3-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3b4-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3b5-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3b6-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3b7-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3b8-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3b9-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3ba-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3bb-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3bc-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3bd-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3be-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3bf-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3c0-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3c1-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3c2-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3c3-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3c4-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3c5-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3c6-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3c7-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3c8-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3c9-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3ca-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3cb-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3cc-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3cd-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3ce-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3cf-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3d0-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3d1-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3d2-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3d3-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3d4-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3d5-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3d6-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3d7-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3d8-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3d9-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3da-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3db-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3dc-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3dd-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3de-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3df-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3e0-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3e1-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284d3e2-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fac0-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fac1-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fac2-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fac3-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fac4-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fac5-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fac6-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fac7-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fac8-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fac9-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284faca-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284facb-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284facc-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284facd-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284face-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284facf-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fad0-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fad1-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fad2-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fad3-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fad4-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fad5-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fad6-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fad7-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fad8-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fad9-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fada-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fadb-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fadc-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fadd-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fade-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fadf-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fae0-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fae1-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fae2-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fae3-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fae4-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fae5-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fae6-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fae7-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fae8-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284fae9-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284faea-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284faeb-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284faec-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284faed-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284faee-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284faef-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284faf0-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284faf1-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284faf2-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0284faf3-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521d0-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521d1-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521d2-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521d3-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521d4-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521d5-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521d6-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521d7-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521d8-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521d9-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521da-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521db-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521dc-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521dd-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521de-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521df-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521e0-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521e1-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521e2-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521e3-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521e4-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521e5-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521e6-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521e7-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521e8-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521e9-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521ea-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521eb-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521ec-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521ed-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521ee-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521ef-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521f0-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521f1-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521f2-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521f3-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521f4-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521f5-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521f6-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521f7-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521f8-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521f9-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521fa-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521fb-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521fc-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521fd-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521fe-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028521ff-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02852200-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02852201-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02852202-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548e0-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548e1-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548e2-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548e3-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548e4-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548e5-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548e6-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548e7-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548e8-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548e9-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548ea-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548eb-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548ec-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548ed-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548ee-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548ef-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548f0-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548f1-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548f2-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548f3-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548f4-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548f5-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548f6-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548f7-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548f8-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548f9-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548fa-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548fb-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548fc-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548fd-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548fe-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("028548ff-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02854900-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02854901-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02854902-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02854903-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02854904-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02854905-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02854906-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02854907-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02854908-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02854909-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285490a-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285490b-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285490c-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285490d-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02856ff0-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02856ff1-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02856ff2-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02856ff3-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02856ff4-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02856ff5-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02856ff6-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02856ff7-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02856ff8-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02856ff9-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02856ffa-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02856ffb-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02856ffc-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02856ffd-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02856ffe-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02856fff-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857000-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857001-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857002-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857003-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857004-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857005-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857006-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857007-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857008-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857009-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285700a-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285700b-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285700c-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285700d-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285700e-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285700f-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857010-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857011-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857012-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857013-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857014-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857015-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857016-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857017-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857018-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857019-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285701a-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285701b-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285701c-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285701d-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285701e-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285701f-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857020-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857021-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857022-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857023-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857024-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857025-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02857026-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859700-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859701-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859702-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859703-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859704-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859705-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859706-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859707-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859708-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859709-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285970a-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285970b-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285970c-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285970d-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285970e-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285970f-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859710-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859711-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859712-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859713-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859714-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859715-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859716-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859717-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859718-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859719-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285971a-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285971b-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285971c-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285971d-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285971e-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285971f-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859720-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859721-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859722-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859723-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859724-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859725-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859726-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859727-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859728-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859729-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285972a-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285972b-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285972c-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285972d-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285972e-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285972f-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859730-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859731-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859732-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859733-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859734-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02859735-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be10-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be11-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be12-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be13-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be14-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be15-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be16-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be17-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be18-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be19-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be1a-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be1b-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be1c-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be1d-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be1e-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be1f-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be20-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be21-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be22-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be23-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be24-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be25-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be26-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be27-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be28-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be29-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be2a-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be2b-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be2c-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be2d-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be2e-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be2f-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be30-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be31-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be32-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be33-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be34-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be35-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be36-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be37-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be38-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be39-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be3a-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be3b-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be3c-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be3d-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be3e-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be3f-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be40-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be41-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285be42-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e520-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e521-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e522-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e523-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e524-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e525-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e526-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e527-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e528-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e529-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e52a-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e52b-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e52c-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e52d-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e52e-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e52f-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e530-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e531-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e532-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e533-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e534-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e535-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e536-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e537-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e538-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e539-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e53a-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e53b-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e53c-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e53d-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e53e-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e53f-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e540-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e541-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e542-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e543-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e544-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e545-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e546-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e547-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e548-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e549-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e54a-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e54b-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e54c-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e54d-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0285e54e-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02860c30-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02860c31-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02860c32-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02860c33-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02860c34-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02860c35-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02860c36-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02860c37-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02860c38-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02860c39-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02860c3a-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02860c3b-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02860c3c-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02860c3d-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02860c3e-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02860c3f-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02860c40-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02860c41-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02860c42-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02860c43-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02860c44-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02860c45-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02860c46-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02860c47-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("02860c48-89cb-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb40-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb41-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb42-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb43-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb44-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb45-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb46-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb47-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb48-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb49-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb4a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb4b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb4c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb4d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb4e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb4f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb50-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb51-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb52-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb53-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb54-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb55-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb56-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb57-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb58-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb59-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb5a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb5b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb5c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb5d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb5e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb5f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb60-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb61-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb62-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb63-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb64-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb65-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb66-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bfefdb67-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff00250-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff00251-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff00252-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff00253-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff00254-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff00255-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff00256-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff00257-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff00258-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff00259-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0025a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0025b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0025c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0025d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0025e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0025f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff00260-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff00261-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff00262-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff00263-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff00264-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff00265-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff00266-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff00267-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff00268-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff00269-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0026a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0026b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0026c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0026d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0026e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0026f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff00270-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff00271-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff00272-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff00273-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff00274-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02960-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02961-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02962-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02963-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02964-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02965-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02966-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02967-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02968-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02969-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0296a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0296b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0296c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0296d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0296e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0296f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02970-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02971-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02972-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02973-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02974-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02975-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02976-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02977-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02978-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02979-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0297a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0297b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0297c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0297d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0297e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0297f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02980-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02981-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02982-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02983-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02984-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02985-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02986-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02987-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02988-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02989-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0298a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0298b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0298c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0298d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0298e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0298f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02990-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff02991-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05070-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05071-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05072-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05073-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05074-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05075-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05076-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05077-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05078-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05079-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0507a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0507b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0507c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0507d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0507e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0507f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05080-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05081-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05082-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05083-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05084-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05085-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05086-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05087-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05088-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05089-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0508a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0508b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0508c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0508d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0508e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0508f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05090-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05091-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05092-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05093-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05094-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05095-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05096-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05097-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05098-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff05099-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0509a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0509b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0509c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0509d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0509e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0509f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff050a0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff050a1-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff050a2-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff050a3-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff050a4-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff050a5-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff07780-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff07781-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff07782-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff07783-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff07784-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff07785-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff07786-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff07787-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff07788-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff07789-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0778a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0778b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0778c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0778d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0778e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0778f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff07790-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff07791-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff07792-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff07793-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff07794-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff07795-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff07796-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff07797-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff07798-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff07799-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0779a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0779b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0779c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0779d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0779e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0779f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff077a0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff077a1-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff077a2-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff077a3-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff077a4-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff077a5-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff077a6-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff077a7-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff077a8-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff077a9-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff077aa-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff077ab-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff077ac-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff077ad-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff077ae-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff077af-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff077b0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff077b1-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff077b2-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff077b3-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff077b4-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff077b5-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff077b6-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09e90-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09e91-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09e92-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09e93-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09e94-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09e95-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09e96-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09e97-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09e98-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09e99-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09e9a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09e9b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09e9c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09e9d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09e9e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09e9f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09ea0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09ea1-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09ea2-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09ea3-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09ea4-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09ea5-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09ea6-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09ea7-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09ea8-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09ea9-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09eaa-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09eab-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09eac-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09ead-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09eae-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09eaf-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09eb0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09eb1-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09eb2-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09eb3-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09eb4-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09eb5-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09eb6-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09eb7-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09eb8-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff09eb9-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5a0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5a1-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5a2-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5a3-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5a4-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5a5-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5a6-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5a7-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5a8-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5a9-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5aa-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5ab-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5ac-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5ad-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5ae-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5af-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5b0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5b1-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5b2-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5b3-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5b4-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5b5-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5b6-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5b7-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5b8-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5b9-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5ba-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5bb-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5bc-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5bd-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5be-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5bf-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5c0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5c1-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5c2-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5c3-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5c4-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5c5-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5c6-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5c7-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5c8-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5c9-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5ca-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5cb-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5cc-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5cd-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5ce-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5cf-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5d0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5d1-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5d2-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5d3-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5d4-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5d5-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0c5d6-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecb0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecb1-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecb2-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecb3-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecb4-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecb5-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecb6-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecb7-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecb8-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecb9-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecba-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecbb-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecbc-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecbd-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecbe-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecbf-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecc0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecc1-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecc2-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecc3-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecc4-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecc5-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecc6-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecc7-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecc8-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecc9-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecca-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0eccb-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0eccc-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0eccd-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecce-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0eccf-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecd0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecd1-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecd2-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecd3-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecd4-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecd5-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecd6-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecd7-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecd8-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecd9-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecda-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecdb-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecdc-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecdd-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecde-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ecdf-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ece0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ece1-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ece2-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ece3-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ece4-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff0ece5-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113c0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113c1-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113c2-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113c3-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113c4-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113c5-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113c6-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113c7-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113c8-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113c9-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113ca-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113cb-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113cc-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113cd-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113ce-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113cf-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113d0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113d1-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113d2-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113d3-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113d4-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113d5-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113d6-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113d7-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113d8-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113d9-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113da-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113db-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113dc-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113dd-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113de-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113df-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113e0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113e1-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113e2-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113e3-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113e4-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113e5-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113e6-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113e7-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113e8-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113e9-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113ea-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113eb-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113ec-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113ed-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113ee-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113ef-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113f0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113f1-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113f2-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113f3-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113f4-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113f5-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff113f6-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13ad0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13ad1-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13ad2-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13ad3-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13ad4-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13ad5-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13ad6-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13ad7-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13ad8-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13ad9-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13ada-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13adb-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13adc-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13add-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13ade-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13adf-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13ae0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13ae1-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13ae2-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13ae3-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13ae4-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13ae5-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13ae6-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13ae7-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13ae8-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13ae9-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13aea-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13aeb-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13aec-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13aed-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13aee-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13aef-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff13af0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff161e0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff161e1-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff161e2-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff161e3-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff161e4-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff161e5-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff161e6-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff161e7-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff161e8-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff161e9-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff161ea-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff161eb-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff161ec-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff161ed-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff161ee-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff161ef-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff161f0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff161f1-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff161f2-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff161f3-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff161f4-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff161f5-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff161f6-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff161f7-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("bff161f8-89ce-11df-a4ee-0800200c9a68")); + } + private void fill22000() { + this.addToExt(UUID.fromString("deab70d0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70d1-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70d2-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70d3-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70d4-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70d5-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70d6-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70d7-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70d8-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70d9-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70da-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70db-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70dc-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70dd-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70de-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70df-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70e0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70e1-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70e2-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70e3-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70e4-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70e5-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70e6-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70e7-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70e8-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70e9-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70ea-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70eb-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70ec-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70ed-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70ee-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70ef-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab70f0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97e0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97e1-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97e2-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97e3-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97e4-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97e5-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97e6-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97e7-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97e8-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97e9-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97ea-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97eb-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97ec-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97ed-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97ee-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97ef-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97f0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97f1-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97f2-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97f3-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97f4-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97f5-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97f6-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97f7-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97f8-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97f9-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97fa-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97fb-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97fc-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97fd-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97fe-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab97ff-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab9800-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab9801-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab9802-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab9803-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab9804-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab9805-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab9806-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab9807-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab9808-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab9809-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab980a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab980b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab980c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab980d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab980e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab980f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab9810-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab9811-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab9812-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab9813-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deab9814-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbef0-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbef1-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbef2-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbef3-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbef4-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbef5-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbef6-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbef7-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbef8-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbef9-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbefa-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbefb-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbefc-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbefd-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbefe-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbeff-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf00-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf01-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf02-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf03-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf04-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf05-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf06-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf07-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf08-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf09-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf0a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf0b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf0c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf0d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf0e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf0f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf10-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf11-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf12-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf13-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf14-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf15-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf16-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf17-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf18-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf19-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf1a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf1b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf1c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf1d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf1e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf1f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf20-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf21-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabbf22-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe600-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe601-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe602-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe603-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe604-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe605-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe606-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe607-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe608-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe609-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe60a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe60b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe60c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe60d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe60e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe60f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe610-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe611-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe612-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe613-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe614-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe615-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe616-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe617-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe618-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe619-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe61a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe61b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe61c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe61d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe61e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe61f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe620-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe621-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe622-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe623-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe624-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe625-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe626-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe627-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe628-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe629-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe62a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe62b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe62c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe62d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe62e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe62f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe630-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe631-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe632-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe633-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe634-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe635-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe636-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deabe637-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d10-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d11-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d12-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d13-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d14-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d15-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d16-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d17-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d18-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d19-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d1a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d1b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d1c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d1d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d1e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d1f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d20-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d21-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d22-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d23-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d24-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d25-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d26-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d27-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d28-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d29-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d2a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d2b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d2c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d2d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d2e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d2f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d30-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d31-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d32-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d33-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d34-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d35-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d36-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d37-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d38-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d39-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d3a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d3b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac0d3c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3420-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3421-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3422-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3423-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3424-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3425-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3426-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3427-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3428-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3429-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac342a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac342b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac342c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac342d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac342e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac342f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3430-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3431-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3432-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3433-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3434-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3435-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3436-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3437-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3438-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3439-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac343a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac343b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac343c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac343d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac343e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac343f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3440-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3441-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3442-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3443-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3444-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3445-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3446-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3447-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3448-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3449-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac344a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac344b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac344c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac344d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac344e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac344f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3450-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3451-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3452-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac3453-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b30-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b31-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b32-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b33-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b34-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b35-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b36-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b37-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b38-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b39-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b3a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b3b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b3c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b3d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b3e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b3f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b40-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b41-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b42-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b43-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b44-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b45-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b46-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b47-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b48-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b49-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b4a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b4b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b4c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b4d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b4e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b4f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b50-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b51-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b52-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b53-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b54-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b55-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b56-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b57-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b58-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b59-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b5a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b5b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b5c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b5d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b5e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b5f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b60-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b61-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b62-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b63-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b64-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b65-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac5b66-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8240-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8241-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8242-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8243-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8244-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8245-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8246-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8247-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8248-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8249-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac824a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac824b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac824c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac824d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac824e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac824f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8250-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8251-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8252-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8253-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8254-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8255-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8256-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8257-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8258-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8259-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac825a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac825b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac825c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac825d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac825e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac825f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8260-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8261-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8262-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8263-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8264-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8265-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8266-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8267-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8268-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8269-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac826a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac826b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac826c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac826d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac826e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac826f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8270-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8271-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8272-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8273-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8274-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8275-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deac8276-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca950-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca951-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca952-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca953-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca954-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca955-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca956-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca957-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca958-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca959-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca95a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca95b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca95c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca95d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca95e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca95f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca960-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca961-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca962-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca963-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca964-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca965-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca966-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca967-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca968-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca969-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca96a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca96b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca96c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deaca96d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd060-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd061-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd062-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd063-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd064-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd065-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd066-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd067-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd068-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd069-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd06a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd06b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd06c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd06d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd06e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd06f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd070-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd071-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd072-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd073-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd074-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd075-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd076-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd077-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd078-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd079-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd07a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd07b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd07c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd07d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd07e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd07f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd080-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd081-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd082-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd083-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd084-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd085-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd086-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd087-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd088-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd089-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd08a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd08b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacd08c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacf770-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacf771-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacf772-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacf773-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacf774-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacf775-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacf776-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacf777-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacf778-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacf779-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacf77a-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacf77b-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacf77c-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacf77d-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacf77e-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacf77f-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacf780-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacf781-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacf782-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacf783-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacf784-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacf785-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacf786-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacf787-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("deacf788-89ce-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5b0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5b1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5b2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5b3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5b4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5b5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5b6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5b7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5b8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5b9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5ba-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5bb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5bc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5bd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5be-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5bf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5c0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5c1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5c2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5c3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5c4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5c5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5c6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5c7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5c8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5c9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5ca-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5cb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5cc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5cd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1d5ce-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcc0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcc1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcc2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcc3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcc4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcc5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcc6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcc7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcc8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcc9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcca-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fccb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fccc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fccd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcce-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fccf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcd0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcd1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcd2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcd3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcd4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcd5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcd6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcd7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcd8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcd9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcda-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcdb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcdc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcdd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcde-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcdf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fce0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fce1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fce2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fce3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fce4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fce5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fce6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fce7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fce8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fce9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcea-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fceb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcec-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fced-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcee-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcef-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcf0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcf1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcf2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e1fcf3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223d0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223d1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223d2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223d3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223d4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223d5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223d6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223d7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223d8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223d9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223da-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223db-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223dc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223dd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223de-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223df-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223e0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223e1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223e2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223e3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223e4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223e5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223e6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223e7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223e8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223e9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223ea-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223eb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223ec-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223ed-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223ee-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223ef-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223f0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223f1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223f2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e223f3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24ae0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24ae1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24ae2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24ae3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24ae4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24ae5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24ae6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24ae7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24ae8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24ae9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24aea-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24aeb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24aec-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24aed-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24aee-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24aef-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24af0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24af1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24af2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24af3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24af4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24af5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24af6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24af7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24af8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24af9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24afa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24afb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24afc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24afd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24afe-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24aff-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24b00-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24b01-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24b02-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24b03-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24b04-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24b05-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24b06-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24b07-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24b08-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24b09-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24b0a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24b0b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24b0c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24b0d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24b0e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24b0f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24b10-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24b11-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24b12-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24b13-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24b14-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e24b15-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e271f0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e271f1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e271f2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e271f3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e271f4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e271f5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e271f6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e271f7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e271f8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e271f9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e271fa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e271fb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e271fc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e271fd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e271fe-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e271ff-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e27200-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e27201-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e27202-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e27203-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e27204-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e27205-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e27206-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e27207-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e27208-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e27209-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2720a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2720b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2720c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2720d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2720e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2720f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e27210-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e27211-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e27212-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e27213-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e27214-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e27215-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e27216-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e27217-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e27218-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e27219-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2721a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2721b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2721c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2721d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2721e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2721f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e27220-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e27221-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e27222-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e27223-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e27224-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e27225-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29900-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29901-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29902-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29903-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29904-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29905-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29906-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29907-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29908-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29909-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2990a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2990b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2990c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2990d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2990e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2990f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29910-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29911-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29912-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29913-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29914-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29915-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29916-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29917-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29918-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29919-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2991a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2991b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2991c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2991d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2991e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2991f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29920-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29921-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29922-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29923-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29924-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29925-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29926-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29927-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29928-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e29929-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2992a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2992b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2992c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c010-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c011-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c012-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c013-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c014-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c015-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c016-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c017-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c018-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c019-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c01a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c01b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c01c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c01d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c01e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c01f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c020-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c021-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c022-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c023-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c024-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c025-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c026-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c027-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c028-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c029-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c02a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c02b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c02c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c02d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c02e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c02f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c030-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c031-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c032-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c033-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c034-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c035-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c036-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c037-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c038-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c039-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c03a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c03b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c03c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c03d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c03e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c03f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c040-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c041-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2c042-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e720-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e721-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e722-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e723-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e724-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e725-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e726-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e727-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e728-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e729-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e72a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e72b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e72c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e72d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e72e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e72f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e730-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e731-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e732-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e733-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e734-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e735-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e736-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e737-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e738-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e739-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e73a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e73b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e73c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e73d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e73e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e73f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e740-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e741-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e742-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e743-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e744-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e745-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e746-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e747-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e748-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e749-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e74a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e74b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e74c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e74d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e74e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e74f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e750-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e751-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e752-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e753-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e754-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e2e755-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e30-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e31-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e32-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e33-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e34-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e35-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e36-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e37-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e38-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e39-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e3a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e3b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e3c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e3d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e3e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e3f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e40-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e41-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e42-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e43-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e44-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e45-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e46-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e47-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e48-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e49-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e4a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e4b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e4c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e4d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e4e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e4f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e50-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e51-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e52-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e53-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e54-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e55-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e56-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e57-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e58-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e59-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e5a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e5b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e5c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e5d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e5e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e5f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e60-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e61-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e62-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e63-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e64-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e30e65-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33540-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33541-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33542-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33543-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33544-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33545-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33546-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33547-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33548-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33549-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e3354a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e3354b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e3354c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e3354d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e3354e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e3354f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33550-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33551-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33552-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33553-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33554-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33555-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33556-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33557-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33558-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33559-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e3355a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e3355b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e3355c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e3355d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e3355e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e3355f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33560-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33561-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33562-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33563-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33564-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33565-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33566-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33567-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33568-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e33569-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e3356a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e3356b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e35c50-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e35c51-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e35c52-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e35c53-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e35c54-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e35c55-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e35c56-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e35c57-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e35c58-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e35c59-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e35c5a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e35c5b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e35c5c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e35c5d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e35c5e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e35c5f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e35c60-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e35c61-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e35c62-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e35c63-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e35c64-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e35c65-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e35c66-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e35c67-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("12e35c68-89cf-11df-a4ee-0800200c9a68")); + } + private void fill23000() { + this.addToExt(UUID.fromString("32779ea0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779ea1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779ea2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779ea3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779ea4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779ea5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779ea6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779ea7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779ea8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779ea9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779eaa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779eab-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779eac-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779ead-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779eae-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779eaf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779eb0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779eb1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779eb2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779eb3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779eb4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779eb5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779eb6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779eb7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779eb8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779eb9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779eba-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779ebb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779ebc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779ebd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779ebe-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779ebf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779ec0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779ec1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779ec2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32779ec3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5b0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5b1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5b2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5b3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5b4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5b5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5b6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5b7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5b8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5b9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5ba-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5bb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5bc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5bd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5be-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5bf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5c0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5c1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5c2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5c3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5c4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5c5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5c6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5c7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5c8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5c9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5ca-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5cb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5cc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5cd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5ce-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5cf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5d0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5d1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5d2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5d3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5d4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5d5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5d6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5d7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5d8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5d9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5da-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5db-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5dc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5dd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5de-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5df-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5e0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5e1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5e2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277c5e3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecc0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecc1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecc2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecc3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecc4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecc5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecc6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecc7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecc8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecc9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecca-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277eccb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277eccc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277eccd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecce-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277eccf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecd0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecd1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecd2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecd3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecd4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecd5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecd6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecd7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecd8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecd9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecda-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecdb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecdc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecdd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecde-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ecdf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3277ece0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813d0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813d1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813d2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813d3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813d4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813d5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813d6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813d7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813d8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813d9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813da-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813db-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813dc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813dd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813de-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813df-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813e0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813e1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813e2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813e3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813e4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813e5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813e6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813e7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813e8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813e9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813ea-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813eb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813ec-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813ed-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813ee-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813ef-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813f0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813f1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813f2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813f3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813f4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813f5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813f6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813f7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813f8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813f9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813fa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813fb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813fc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813fd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813fe-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327813ff-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32781400-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32781401-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32781402-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32781403-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783ae0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783ae1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783ae2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783ae3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783ae4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783ae5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783ae6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783ae7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783ae8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783ae9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783aea-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783aeb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783aec-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783aed-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783aee-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783aef-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783af0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783af1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783af2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783af3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783af4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783af5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783af6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783af7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783af8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783af9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783afa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783afb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783afc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783afd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783afe-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783aff-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783b00-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783b01-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783b02-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783b03-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783b04-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783b05-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783b06-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783b07-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783b08-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783b09-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783b0a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783b0b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783b0c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783b0d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783b0e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783b0f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783b10-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783b11-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783b12-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783b13-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783b14-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783b15-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32783b16-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327861f0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327861f1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327861f2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327861f3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327861f4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327861f5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327861f6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327861f7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327861f8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327861f9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327861fa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327861fb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327861fc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327861fd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327861fe-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("327861ff-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32786200-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32786201-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32786202-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32786203-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32786204-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32786205-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32786206-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32786207-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32786208-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32786209-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278620a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278620b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278620c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278620d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278620e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278620f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32786210-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32786211-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32786212-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32786213-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32786214-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32786215-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32786216-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32786217-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32786218-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32786219-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278621a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278621b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278621c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788900-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788901-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788902-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788903-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788904-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788905-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788906-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788907-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788908-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788909-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278890a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278890b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278890c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278890d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278890e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278890f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788910-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788911-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788912-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788913-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788914-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788915-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788916-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788917-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788918-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788919-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278891a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278891b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278891c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278891d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278891e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278891f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788920-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788921-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788922-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788923-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788924-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788925-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788926-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788927-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788928-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788929-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278892a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278892b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278892c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278892d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278892e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278892f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788930-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788931-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788932-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788933-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788934-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32788935-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b010-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b011-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b012-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b013-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b014-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b015-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b016-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b017-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b018-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b019-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b01a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b01b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b01c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b01d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b01e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b01f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b020-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b021-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b022-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b023-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b024-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b025-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b026-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b027-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b028-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b029-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b02a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b02b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b02c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b02d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b02e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b02f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b030-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b031-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b032-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b033-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b034-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b035-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b036-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b037-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b038-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b039-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b03a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b03b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b03c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b03d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b03e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b03f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b040-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b041-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b042-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278b043-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d720-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d721-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d722-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d723-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d724-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d725-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d726-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d727-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d728-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d729-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d72a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d72b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d72c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d72d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d72e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d72f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d730-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d731-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d732-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d733-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d734-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d735-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d736-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d737-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d738-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d739-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d73a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d73b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d73c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d73d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d73e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d73f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d740-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d741-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d742-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d743-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d744-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d745-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d746-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d747-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d748-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d749-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d74a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d74b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d74c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d74d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d74e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d74f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d750-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d751-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d752-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d753-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d754-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d755-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d756-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278d757-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe30-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe31-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe32-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe33-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe34-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe35-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe36-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe37-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe38-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe39-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe3a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe3b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe3c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe3d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe3e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe3f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe40-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe41-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe42-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe43-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe44-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe45-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe46-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe47-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe48-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe49-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe4a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe4b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe4c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe4d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe4e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe4f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe50-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe51-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe52-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe53-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe54-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe55-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe56-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3278fe57-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32792540-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32792541-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32792542-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32792543-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32792544-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32792545-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32792546-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32792547-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32792548-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32792549-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3279254a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3279254b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3279254c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3279254d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3279254e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("3279254f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32792550-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32792551-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32792552-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32792553-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32792554-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32792555-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32792556-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32792557-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("32792558-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28cf80-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28cf81-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28cf82-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28cf83-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f690-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f691-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f692-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f693-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f694-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f695-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f696-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f697-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f698-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f699-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f69a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f69b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f69c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f69d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f69e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f69f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f6a0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f6a1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f6a2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f6a3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f6a4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f6a5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f6a6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f6a7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f6a8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f6a9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f6aa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f6ab-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f6ac-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f6ad-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f6ae-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f6af-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f6b0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f6b1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f6b2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f6b3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f6b4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f6b5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f6b6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f6b7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f6b8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d28f6b9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291da0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291da1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291da2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291da3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291da4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291da5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291da6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291da7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291da8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291da9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291daa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dab-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dac-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dad-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dae-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291daf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291db0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291db1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291db2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291db3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291db4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291db5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291db6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291db7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291db8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291db9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dba-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dbb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dbc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dbd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dbe-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dbf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dc0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dc1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dc2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dc3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dc4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dc5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dc6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dc7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dc8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dc9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dca-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dcb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dcc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dcd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dce-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dcf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dd0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dd1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dd2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d291dd3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944b0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944b1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944b2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944b3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944b4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944b5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944b6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944b7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944b8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944b9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944ba-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944bb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944bc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944bd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944be-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944bf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944c0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944c1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944c2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944c3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944c4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944c5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944c6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944c7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944c8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944c9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944ca-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944cb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944cc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944cd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944ce-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944cf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944d0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944d1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944d2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944d3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944d4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944d5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944d6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944d7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944d8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944d9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944da-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944db-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944dc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944dd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944de-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944df-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2944e0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bc0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bc1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bc2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bc3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bc4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bc5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bc6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bc7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bc8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bc9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bca-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bcb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bcc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bcd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bce-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bcf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bd0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bd1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bd2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bd3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bd4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bd5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bd6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bd7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bd8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bd9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bda-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bdb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bdc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bdd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bde-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bdf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296be0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296be1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296be2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296be3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296be4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296be5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296be6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296be7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296be8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296be9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bea-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296beb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bec-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bed-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bee-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bef-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bf0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bf1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bf2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bf3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bf4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bf5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d296bf6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992d0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992d1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992d2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992d3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992d4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992d5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992d6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992d7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992d8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992d9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992da-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992db-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992dc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992dd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992de-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992df-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992e0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992e1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992e2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992e3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992e4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992e5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992e6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992e7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992e8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992e9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992ea-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992eb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992ec-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992ed-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992ee-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992ef-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992f0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992f1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992f2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992f3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992f4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992f5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992f6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992f7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2992f8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0800-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0801-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0802-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0803-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0804-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0805-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0806-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0807-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0808-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0809-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a080a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a080b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a080c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a080d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a080e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a080f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0810-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0811-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0812-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0813-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0814-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0815-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0816-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0817-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0818-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0819-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a081a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a081b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a081c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a081d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a081e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a081f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0820-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0821-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0822-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0823-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0824-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0825-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0826-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0827-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0828-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a0829-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a082a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a082b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a082c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a082d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f10-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f11-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f12-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f13-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f14-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f15-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f16-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f17-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f18-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f19-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f1a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f1b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f1c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f1d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f1e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f1f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f20-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f21-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f22-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f23-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f24-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f25-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f26-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f27-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f28-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f29-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f2a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f2b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f2c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a2f2d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5620-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5621-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5622-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5623-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5624-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5625-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5626-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5627-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5628-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5629-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a562a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a562b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a562c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a562d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a562e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a562f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5630-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5631-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5632-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5633-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5634-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5635-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5636-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5637-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5638-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5639-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a563a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a563b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a563c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a563d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a563e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a563f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5640-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5641-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5642-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5643-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5644-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5645-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5646-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5647-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5648-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5649-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a564a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a564b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a564c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a564d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a564e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a564f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5650-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5651-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5652-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5653-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5654-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5655-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a5656-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d30-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d31-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d32-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d33-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d34-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d35-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d36-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d37-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d38-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d39-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d3a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d3b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d3c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d3d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d3e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d3f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d40-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d41-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d42-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d43-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d44-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d45-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d46-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d47-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d48-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d49-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d4a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d4b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d4c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d4d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d4e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d4f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d50-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d51-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d52-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d53-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d54-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d55-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d56-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d57-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d58-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d59-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d5a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d5b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d5c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d5d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d5e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d5f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d60-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d61-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d62-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d63-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d64-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2a7d65-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa440-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa441-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa442-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa443-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa444-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa445-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa446-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa447-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa448-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa449-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa44a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa44b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa44c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa44d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa44e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa44f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa450-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa451-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa452-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa453-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa454-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa455-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa456-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa457-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa458-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa459-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa45a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa45b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa45c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa45d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa45e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa45f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa460-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa461-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa462-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa463-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa464-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa465-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa466-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa467-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa468-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa469-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa46a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa46b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa46c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa46d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2aa46e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2acb50-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2acb51-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2acb52-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2acb53-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2acb54-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2acb55-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2acb56-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2acb57-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2acb58-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2acb59-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2acb5a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2acb5b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2acb5c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2acb5d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2acb5e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2acb5f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2acb60-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2acb61-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2acb62-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2acb63-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2acb64-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2acb65-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2acb66-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2acb67-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4d2acb68-89cf-11df-a4ee-0800200c9a68")); + } + private void fill24000() { + this.addToExt(UUID.fromString("630e2070-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e2071-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e2072-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e2073-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e2074-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e2075-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e2076-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e2077-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e2078-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e2079-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e207a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e207b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e207c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e207d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e207e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e207f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e2080-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e2081-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e2082-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e2083-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e2084-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e2085-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e2086-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e2087-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e2088-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e2089-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e4780-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e4781-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e4782-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e4783-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e4784-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e4785-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e4786-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e4787-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e4788-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e4789-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e478a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e478b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e478c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e478d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e478e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e478f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e4790-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e4791-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e4792-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e4793-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e4794-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e4795-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e4796-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e4797-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e4798-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e4799-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e479a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e479b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e479c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e479d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e479e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e479f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e47a0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e47a1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e47a2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e47a3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e47a4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e47a5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e47a6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e47a7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e47a8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e47a9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e47aa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e47ab-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e47ac-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e47ad-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e47ae-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6e90-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6e91-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6e92-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6e93-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6e94-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6e95-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6e96-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6e97-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6e98-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6e99-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6e9a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6e9b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6e9c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6e9d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6e9e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6e9f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6ea0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6ea1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6ea2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6ea3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6ea4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6ea5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6ea6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6ea7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6ea8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6ea9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6eaa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6eab-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6eac-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6ead-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6eae-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6eaf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6eb0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6eb1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6eb2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6eb3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6eb4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6eb5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6eb6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6eb7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6eb8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6eb9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6eba-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6ebb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6ebc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6ebd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e6ebe-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95a0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95a1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95a2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95a3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95a4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95a5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95a6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95a7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95a8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95a9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95aa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95ab-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95ac-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95ad-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95ae-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95af-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95b0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95b1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95b2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95b3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95b4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95b5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95b6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95b7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95b8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95b9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95ba-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95bb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95bc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95bd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95be-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95bf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95c0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95c1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95c2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95c3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95c4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95c5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95c6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95c7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95c8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95c9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95ca-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95cb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95cc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95cd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95ce-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95cf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95d0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95d1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95d2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95d3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95d4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95d5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630e95d6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcb0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcb1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcb2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcb3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcb4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcb5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcb6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcb7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcb8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcb9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcba-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcbb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcbc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcbd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcbe-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcbf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcc0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcc1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcc2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcc3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcc4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcc5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcc6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcc7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcc8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcc9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcca-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebccb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebccc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebccd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcce-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebccf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcd0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcd1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcd2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcd3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcd4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcd5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcd6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcd7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcd8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcd9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcda-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcdb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcdc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcdd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcde-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebcdf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebce0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebce1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebce2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebce3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebce4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ebce5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3c0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3c1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3c2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3c3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3c4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3c5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3c6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3c7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3c8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3c9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3ca-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3cb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3cc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3cd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3ce-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3cf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3d0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3d1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3d2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3d3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3d4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3d5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3d6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3d7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3d8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3d9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3da-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3db-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3dc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3dd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3de-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3df-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3e0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3e1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3e2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3e3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3e4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3e5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3e6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3e7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3e8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3e9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3ea-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3eb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3ec-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630ee3ed-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0ad0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0ad1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0ad2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0ad3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0ad4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0ad5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0ad6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0ad7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0ad8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0ad9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0ada-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0adb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0adc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0add-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0ade-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0adf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0ae0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0ae1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0ae2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0ae3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0ae4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0ae5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0ae6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0ae7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0ae8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0ae9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0aea-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0aeb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0aec-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0aed-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0aee-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0aef-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0af0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0af1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0af2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0af3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0af4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0af5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0af6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0af7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0af8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0af9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0afa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0afb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0afc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0afd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0afe-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0aff-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0b00-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0b01-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0b02-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f0b03-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31e0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31e1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31e2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31e3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31e4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31e5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31e6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31e7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31e8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31e9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31ea-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31eb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31ec-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31ed-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31ee-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31ef-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31f0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31f1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31f2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31f3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31f4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31f5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31f6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31f7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31f8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31f9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31fa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31fb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31fc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31fd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31fe-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f31ff-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f3200-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f3201-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f3202-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f3203-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f3204-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f3205-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f3206-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f3207-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f3208-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f3209-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f320a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f320b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f320c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f320d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f320e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f320f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f3210-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f3211-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f3212-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f3213-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f3214-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f3215-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f58f0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f58f1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f58f2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f58f3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f58f4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f58f5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f58f6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f58f7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f58f8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f58f9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f58fa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f58fb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f58fc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f58fd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f58fe-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f58ff-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5900-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5901-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5902-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5903-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5904-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5905-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5906-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5907-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5908-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5909-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f590a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f590b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f590c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f590d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f590e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f590f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5910-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5911-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5912-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5913-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5914-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5915-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5916-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5917-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5918-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5919-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f591a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f591b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f591c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f591d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f591e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f591f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5920-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5921-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5922-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5923-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5924-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5925-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5926-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5927-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f5928-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f8000-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f8001-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f8002-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f8003-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f8004-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f8005-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f8006-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f8007-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f8008-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f8009-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f800a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f800b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f800c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f800d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f800e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f800f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f8010-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f8011-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f8012-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f8013-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f8014-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f8015-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f8016-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f8017-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f8018-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f8019-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f801a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f801b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f801c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f801d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f801e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f801f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f8020-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f8021-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f8022-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f8023-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630f8024-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630fa710-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630fa711-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630fa712-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630fa713-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630fa714-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630fa715-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630fa716-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630fa717-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630fa718-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630fa719-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630fa71a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630fa71b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630fa71c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630fa71d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630fa71e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630fa71f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630fa720-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630fa721-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630fa722-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630fa723-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630fa724-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630fa725-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630fa726-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630fa727-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("630fa728-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621620-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621621-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621622-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621623-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621624-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621625-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621626-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621627-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621628-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621629-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62162a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62162b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62162c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62162d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62162e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62162f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621630-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621631-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621632-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621633-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621634-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621635-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621636-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621637-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621638-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621639-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62163a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62163b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62163c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62163d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62163e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62163f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621640-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621641-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621642-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621643-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621644-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621645-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621646-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621647-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621648-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d621649-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62164a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62164b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62164c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d30-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d31-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d32-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d33-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d34-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d35-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d36-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d37-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d38-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d39-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d3a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d3b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d3c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d3d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d3e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d3f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d40-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d41-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d42-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d43-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d44-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d45-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d46-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d47-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d48-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d49-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d4a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d4b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d4c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d4d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d4e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d4f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d50-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d51-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d52-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d53-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d54-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d55-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d56-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d57-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d58-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d59-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d5a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d5b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d5c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d5d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d5e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d5f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d60-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d61-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d62-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d623d63-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626440-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626441-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626442-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626443-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626444-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626445-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626446-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626447-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626448-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626449-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62644a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62644b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62644c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62644d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62644e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62644f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626450-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626451-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626452-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626453-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626454-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626455-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626456-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626457-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626458-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626459-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62645a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62645b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62645c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62645d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62645e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62645f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626460-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626461-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626462-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626463-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626464-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626465-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626466-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626467-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626468-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626469-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62646a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62646b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62646c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62646d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62646e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62646f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626470-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d626471-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b50-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b51-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b52-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b53-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b54-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b55-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b56-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b57-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b58-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b59-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b5a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b5b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b5c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b5d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b5e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b5f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b60-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b61-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b62-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b63-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b64-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b65-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b66-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b67-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b68-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b69-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b6a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b6b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b6c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b6d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b6e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b6f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b70-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b71-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b72-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b73-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b74-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b75-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b76-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b77-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b78-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b79-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b7a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b7b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b7c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b7d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b7e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b7f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b80-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b81-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b82-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b83-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d628b84-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b260-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b261-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b262-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b263-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b264-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b265-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b266-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b267-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b268-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b269-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b26a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b26b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b26c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b26d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b26e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b26f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b270-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b271-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b272-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b273-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b274-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b275-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b276-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b277-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b278-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b279-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b27a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b27b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b27c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b27d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b27e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b27f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b280-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b281-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b282-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b283-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b284-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b285-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b286-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b287-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b288-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b289-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b28a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b28b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62b28c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d970-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d971-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d972-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d973-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d974-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d975-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d976-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d977-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d978-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d979-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d97a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d97b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d97c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d97d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d97e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d97f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d980-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d981-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d982-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d983-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d984-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d985-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d986-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d987-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d988-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d989-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d98a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d98b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d98c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d98d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d98e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d98f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d990-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d991-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d992-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d993-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d994-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d995-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d996-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d997-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d998-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d999-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d99a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d99b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d99c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d99d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d99e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d99f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d9a0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d9a1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d9a2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d9a3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d9a4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d62d9a5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d630080-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d630081-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d630082-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d630083-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d630084-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d630085-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d630086-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d630087-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d630088-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d630089-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d63008a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d63008b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d63008c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d63008d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d63008e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d63008f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d630090-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d630091-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d630092-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d630093-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d630094-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d630095-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d630096-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d630097-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d630098-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d630099-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d63009a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d63009b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d63009c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d63009d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d63009e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d63009f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6300a0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6300a1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6300a2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6300a3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6300a4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6300a5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6300a6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6300a7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6300a8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6300a9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6300aa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6300ab-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6300ac-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6300ad-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6300ae-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6300af-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6300b0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6300b1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6300b2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6300b3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6300b4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6300b5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6300b6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d632790-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d632791-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d632792-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d632793-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d632794-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d632795-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d632796-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d632797-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d632798-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d632799-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d63279a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d63279b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d63279c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d63279d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d63279e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d63279f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327a0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327a1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327a2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327a3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327a4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327a5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327a6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327a7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327a8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327a9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327aa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327ab-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327ac-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327ad-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327ae-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327af-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327b0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327b1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327b2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327b3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327b4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327b5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327b6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327b7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327b8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327b9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327ba-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327bb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327bc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327bd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327be-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327bf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327c0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327c1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327c2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6327c3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ea0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ea1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ea2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ea3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ea4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ea5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ea6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ea7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ea8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ea9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634eaa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634eab-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634eac-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ead-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634eae-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634eaf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634eb0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634eb1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634eb2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634eb3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634eb4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634eb5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634eb6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634eb7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634eb8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634eb9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634eba-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ebb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ebc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ebd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ebe-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ebf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ec0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ec1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ec2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ec3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ec4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ec5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ec6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ec7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ec8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ec9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634eca-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ecb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ecc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ecd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ece-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ecf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ed0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ed1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ed2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ed3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ed4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ed5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d634ed6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375b0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375b1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375b2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375b3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375b4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375b5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375b6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375b7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375b8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375b9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375ba-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375bb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375bc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375bd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375be-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375bf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375c0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375c1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375c2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375c3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375c4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375c5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375c6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375c7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375c8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375c9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375ca-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375cb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375cc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375cd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375ce-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375cf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375d0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375d1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375d2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d6375d3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d639cc0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d639cc1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("7d639cc2-89cf-11df-a4ee-0800200c9a68")); + } + private void fill25000() { + this.addToExt(UUID.fromString("95288320-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95288321-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95288322-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95288323-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95288324-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95288325-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa30-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa31-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa32-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa33-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa34-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa35-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa36-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa37-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa38-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa39-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa3a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa3b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa3c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa3d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa3e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa3f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa40-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa41-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa42-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa43-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa44-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa45-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa46-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa47-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa48-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa49-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa4a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa4b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa4c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa4d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa4e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa4f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa50-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa51-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa52-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa53-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa54-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa55-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa56-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa57-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa58-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa59-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa5a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa5b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa5c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa5d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa5e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa5f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa60-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa61-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa62-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa63-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528aa64-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d140-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d141-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d142-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d143-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d144-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d145-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d146-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d147-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d148-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d149-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d14a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d14b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d14c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d14d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d14e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d14f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d150-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d151-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d152-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d153-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d154-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d155-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d156-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d157-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d158-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d159-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d15a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d15b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d15c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d15d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d15e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d15f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d160-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d161-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d162-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d163-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d164-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d165-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d166-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d167-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d168-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d169-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d16a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d16b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d16c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d16d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d16e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d16f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d170-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d171-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d172-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528d173-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f850-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f851-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f852-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f853-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f854-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f855-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f856-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f857-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f858-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f859-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f85a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f85b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f85c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f85d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f85e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f85f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f860-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f861-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f862-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f863-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f864-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f865-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f866-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f867-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f868-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f869-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f86a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f86b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f86c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f86d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f86e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9528f86f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f60-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f61-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f62-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f63-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f64-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f65-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f66-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f67-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f68-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f69-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f6a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f6b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f6c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f6d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f6e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f6f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f70-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f71-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f72-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f73-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f74-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f75-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f76-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f77-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f78-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f79-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f7a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f7b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f7c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f7d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f7e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f7f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f80-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f81-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f82-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f83-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f84-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f85-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f86-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f87-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f88-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f89-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f8a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f8b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f8c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f8d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f8e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f8f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f90-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f91-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f92-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f93-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f94-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95291f95-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294670-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294671-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294672-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294673-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294674-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294675-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294676-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294677-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294678-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294679-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529467a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529467b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529467c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529467d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529467e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529467f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294680-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294681-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294682-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294683-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294684-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294685-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294686-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294687-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294688-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294689-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529468a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529468b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529468c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529468d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529468e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529468f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294690-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294691-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294692-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294693-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294694-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294695-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294696-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294697-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294698-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95294699-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529469a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529469b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529469c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d80-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d81-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d82-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d83-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d84-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d85-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d86-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d87-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d88-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d89-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d8a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d8b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d8c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d8d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d8e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d8f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d90-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d91-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d92-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d93-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d94-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d95-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d96-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d97-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d98-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d99-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d9a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d9b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d9c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d9d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d9e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296d9f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296da0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296da1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296da2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296da3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296da4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296da5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296da6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296da7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296da8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296da9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296daa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296dab-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296dac-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296dad-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296dae-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296daf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296db0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296db1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296db2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296db3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296db4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95296db5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95299490-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95299491-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95299492-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95299493-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95299494-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95299495-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95299496-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95299497-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95299498-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("95299499-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529949a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529949b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529949c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529949d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529949e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529949f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994a0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994a1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994a2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994a3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994a4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994a5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994a6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994a7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994a8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994a9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994aa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994ab-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994ac-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994ad-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994ae-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994af-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994b0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994b1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994b2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994b3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994b4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994b5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994b6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994b7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994b8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994b9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994ba-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994bb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994bc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994bd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994be-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994bf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994c0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994c1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952994c2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bba0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bba1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bba2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bba3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bba4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bba5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bba6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bba7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bba8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bba9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbaa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbab-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbac-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbad-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbae-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbaf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbb0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbb1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbb2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbb3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbb4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbb5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbb6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbb7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbb8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbb9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbba-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbbb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbbc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbbd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbbe-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbbf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbc0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbc1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbc2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbc3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbc4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbc5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbc6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbc7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbc8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbc9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbca-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbcb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbcc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbcd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbce-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbcf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbd0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbd1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbd2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbd3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbd4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529bbd5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2b0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2b1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2b2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2b3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2b4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2b5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2b6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2b7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2b8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2b9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2ba-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2bb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2bc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2bd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2be-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2bf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2c0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2c1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2c2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2c3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2c4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2c5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2c6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2c7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2c8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2c9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2ca-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2cb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2cc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2cd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2ce-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2cf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2d0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2d1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2d2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2d3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2d4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2d5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2d6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2d7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2d8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2d9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2da-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2db-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2dc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2dd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2de-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2df-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2e0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2e1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2e2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2e3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2e4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2e5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("9529e2e6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09c0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09c1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09c2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09c3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09c4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09c5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09c6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09c7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09c8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09c9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09ca-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09cb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09cc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09cd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09ce-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09cf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09d0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09d1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09d2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09d3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09d4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09d5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09d6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09d7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09d8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09d9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09da-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09db-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09dc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09dd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09de-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09df-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09e0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a09e1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a30d0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a30d1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a30d2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a30d3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a30d4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a30d5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a30d6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a30d7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a30d8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("952a30d9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06c0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06c1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06c2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06c3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06c4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06c5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06c6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06c7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06c8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06c9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06ca-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06cb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06cc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06cd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06ce-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06cf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06d0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06d1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06d2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06d3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06d4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06d5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06d6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06d7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06d8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06d9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06da-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06db-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06dc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06dd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06de-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06df-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06e0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06e1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06e2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06e3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06e4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06e5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06e6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06e7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06e8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06e9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06ea-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06eb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06ec-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06ed-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06ee-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06ef-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06f0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e06f1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2dd0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2dd1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2dd2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2dd3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2dd4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2dd5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2dd6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2dd7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2dd8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2dd9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2dda-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2ddb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2ddc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2ddd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2dde-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2ddf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2de0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2de1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2de2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2de3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2de4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2de5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2de6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2de7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2de8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2de9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2dea-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2deb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2dec-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2ded-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2dee-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2def-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2df0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e2df1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54e0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54e1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54e2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54e3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54e4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54e5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54e6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54e7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54e8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54e9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54ea-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54eb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54ec-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54ed-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54ee-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54ef-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54f0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54f1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54f2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54f3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54f4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54f5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54f6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54f7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54f8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54f9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54fa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54fb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54fc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54fd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54fe-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e54ff-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e5500-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e5501-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e5502-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e5503-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e5504-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e5505-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e5506-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e5507-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e5508-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e5509-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e550a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e550b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e550c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e550d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e550e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e550f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e5510-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7bf0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7bf1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7bf2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7bf3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7bf4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7bf5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7bf6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7bf7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7bf8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7bf9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7bfa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7bfb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7bfc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7bfd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7bfe-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7bff-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c00-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c01-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c02-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c03-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c04-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c05-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c06-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c07-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c08-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c09-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c0a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c0b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c0c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c0d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c0e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c0f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c10-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c11-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c12-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c13-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c14-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c15-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c16-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c17-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c18-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c19-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c1a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c1b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c1c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c1d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c1e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c1f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c20-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c21-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c22-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c23-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c24-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c25-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96e7c26-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea300-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea301-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea302-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea303-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea304-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea305-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea306-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea307-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea308-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea309-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea30a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea30b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea30c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea30d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea30e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea30f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea310-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea311-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea312-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea313-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea314-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea315-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea316-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea317-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea318-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea319-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea31a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea31b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea31c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea31d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea31e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea31f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea320-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea321-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea322-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea323-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea324-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea325-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea326-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea327-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea328-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea329-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea32a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea32b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea32c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea32d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea32e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea32f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea330-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ea331-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca10-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca11-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca12-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca13-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca14-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca15-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca16-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca17-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca18-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca19-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca1a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca1b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca1c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca1d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca1e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca1f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca20-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca21-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca22-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca23-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca24-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca25-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca26-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca27-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca28-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca29-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca2a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca2b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca2c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca2d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca2e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca2f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca30-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca31-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca32-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca33-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca34-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca35-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca36-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca37-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca38-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca39-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca3a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca3b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca3c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96eca3d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef120-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef121-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef122-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef123-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef124-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef125-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef126-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef127-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef128-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef129-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef12a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef12b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef12c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef12d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef12e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef12f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef130-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef131-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef132-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef133-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef134-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef135-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef136-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef137-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef138-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef139-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef13a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef13b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef13c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef13d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef13e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef13f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef140-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef141-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef142-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef143-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef144-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef145-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef146-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef147-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef148-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef149-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef14a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef14b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef14c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef14d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef14e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef14f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef150-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef151-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef152-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef153-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef154-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef155-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96ef156-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1830-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1831-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1832-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1833-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1834-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1835-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1836-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1837-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1838-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1839-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f183a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f183b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f183c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f183d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f183e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f183f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1840-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1841-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1842-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1843-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1844-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1845-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1846-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1847-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1848-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1849-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f184a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f184b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f184c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f184d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f184e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f184f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1850-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1851-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1852-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1853-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1854-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1855-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1856-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1857-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1858-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1859-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f185a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f185b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f185c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f185d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f185e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f185f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1860-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1861-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1862-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1863-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1864-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f1865-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f40-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f41-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f42-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f43-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f44-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f45-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f46-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f47-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f48-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f49-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f4a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f4b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f4c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f4d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f4e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f4f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f50-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f51-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f52-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f53-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f54-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f55-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f56-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f57-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f58-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f59-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f5a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f5b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f5c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f5d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f5e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f5f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f60-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f61-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f62-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f63-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f64-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f65-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f66-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f67-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f68-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f69-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f6a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f6b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f6c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f6d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f6e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f6f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f70-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f71-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f72-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f73-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f74-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f3f75-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f6650-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f6651-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f6652-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f6653-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f6654-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f6655-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f6656-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f6657-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f6658-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f6659-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f665a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f665b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f665c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f665d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f665e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f665f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f6660-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f6661-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f6662-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f6663-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f6664-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f6665-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f6666-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f6667-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f6668-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f6669-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f666a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f666b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f666c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f666d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f666e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f666f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f6670-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f6671-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f6672-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f6673-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f6674-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f8d60-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f8d61-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f8d62-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f8d63-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f8d64-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f8d65-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f8d66-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f8d67-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f8d68-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f8d69-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f8d6a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f8d6b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f8d6c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f8d6d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f8d6e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("a96f8d6f-89cf-11df-a4ee-0800200c9a68")); + } + private void fill26000() { + this.addToExt(UUID.fromString("d05c7500-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7501-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7502-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7503-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7504-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7505-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7506-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7507-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7508-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7509-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c750a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c750b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c750c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c750d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c750e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c750f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7510-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7511-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7512-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7513-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7514-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7515-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7516-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7517-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7518-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7519-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c751a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c751b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c751c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c751d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c751e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c751f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7520-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7521-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7522-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7523-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7524-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7525-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7526-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7527-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7528-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c7529-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c752a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c10-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c11-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c12-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c13-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c14-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c15-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c16-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c17-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c18-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c19-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c1a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c1b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c1c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c1d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c1e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c1f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c20-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c21-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c22-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c23-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c24-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c25-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c26-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c27-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c28-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c29-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c2a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c2b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c2c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c2d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c2e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c2f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c30-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c31-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c32-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c33-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c34-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c35-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c36-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05c9c37-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc320-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc321-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc322-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc323-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc324-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc325-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc326-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc327-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc328-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc329-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc32a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc32b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc32c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc32d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc32e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc32f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc330-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc331-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc332-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc333-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc334-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc335-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc336-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc337-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc338-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc339-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc33a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc33b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc33c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc33d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc33e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc33f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc340-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc341-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc342-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc343-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc344-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc345-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc346-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc347-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc348-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc349-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc34a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc34b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc34c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc34d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc34e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc34f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc350-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cc351-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea30-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea31-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea32-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea33-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea34-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea35-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea36-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea37-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea38-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea39-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea3a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea3b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea3c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea3d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea3e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea3f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea40-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea41-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea42-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea43-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea44-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea45-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea46-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea47-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea48-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea49-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea4a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea4b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea4c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea4d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea4e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea4f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea50-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea51-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea52-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea53-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea54-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea55-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea56-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea57-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea58-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea59-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea5a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea5b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea5c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea5d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea5e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea5f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea60-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea61-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea62-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea63-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea64-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea65-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05cea66-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1140-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1141-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1142-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1143-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1144-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1145-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1146-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1147-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1148-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1149-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d114a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d114b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d114c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d114d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d114e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d114f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1150-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1151-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1152-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1153-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1154-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1155-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1156-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1157-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1158-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1159-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d115a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d115b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d115c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d115d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d115e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d115f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1160-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1161-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1162-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1163-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1164-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1165-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1166-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1167-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1168-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1169-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d116a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d116b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d116c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d116d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d116e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d116f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1170-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d1171-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3850-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3851-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3852-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3853-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3854-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3855-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3856-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3857-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3858-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3859-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d385a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d385b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d385c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d385d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d385e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d385f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3860-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3861-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3862-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3863-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3864-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3865-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3866-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3867-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3868-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3869-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d386a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d386b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d386c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d386d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d386e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d386f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3870-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3871-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3872-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3873-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3874-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3875-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3876-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3877-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3878-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d3879-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d387a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d387b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d387c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d387d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d387e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f60-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f61-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f62-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f63-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f64-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f65-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f66-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f67-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f68-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f69-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f6a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f6b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f6c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f6d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f6e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f6f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f70-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f71-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f72-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f73-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f74-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f75-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f76-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f77-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f78-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f79-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f7a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f7b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f7c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f7d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f7e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f7f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f80-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f81-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f82-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f83-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f84-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f85-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f86-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f87-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f88-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f89-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f8a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f8b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f8c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f8d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f8e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d5f8f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8670-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8671-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8672-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8673-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8674-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8675-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8676-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8677-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8678-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8679-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d867a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d867b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d867c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d867d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d867e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d867f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8680-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8681-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8682-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8683-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8684-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8685-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8686-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8687-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8688-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8689-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d868a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d868b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d868c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d868d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d868e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d868f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8690-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8691-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8692-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8693-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8694-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8695-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8696-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8697-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8698-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d8699-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d869a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d869b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d869c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d869d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d869e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d869f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d86a0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d86a1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d86a2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d86a3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d86a4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05d86a5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad80-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad81-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad82-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad83-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad84-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad85-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad86-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad87-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad88-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad89-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad8a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad8b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad8c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad8d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad8e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad8f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad90-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad91-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad92-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad93-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad94-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad95-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad96-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad97-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad98-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad99-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad9a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad9b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad9c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad9d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad9e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dad9f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dada0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dada1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dada2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dada3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dada4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dada5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dada6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dada7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dada8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dada9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dadaa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dadab-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dadac-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dadad-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dadae-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dadaf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dadb0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dadb1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dadb2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dadb3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dadb4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dadb5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dadb6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd490-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd491-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd492-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd493-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd494-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd495-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd496-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd497-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd498-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd499-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd49a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd49b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd49c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd49d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd49e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd49f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd4a0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd4a1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd4a2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd4a3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd4a4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd4a5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd4a6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd4a7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd4a8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd4a9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd4aa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd4ab-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd4ac-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd4ad-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd4ae-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd4af-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd4b0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dd4b1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dfba0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dfba1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dfba2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dfba3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dfba4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dfba5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dfba6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dfba7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dfba8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dfba9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dfbaa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dfbab-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dfbac-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dfbad-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dfbae-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dfbaf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dfbb0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dfbb1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dfbb2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dfbb3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dfbb4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dfbb5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dfbb6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("d05dfbb7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb40-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb41-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb42-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb43-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb44-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb45-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb46-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb47-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb48-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb49-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb4a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb4b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb4c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb4d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb4e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb4f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb50-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb51-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb52-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb53-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb54-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb55-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb56-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb57-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb58-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb59-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb5a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb5b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb5c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb5d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb5e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb5f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb60-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb61-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb62-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb63-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb64-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb65-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb66-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb67-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb68-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb69-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb6a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb6b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb6c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb6d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb6e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb6f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb70-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb71-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb72-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2cb73-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f250-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f251-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f252-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f253-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f254-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f255-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f256-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f257-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f258-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f259-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f25a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f25b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f25c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f25d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f25e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f25f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f260-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f261-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f262-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f263-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f264-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f265-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f266-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f267-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f268-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f269-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f26a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f26b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f26c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f26d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f26e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f26f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f270-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f271-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f272-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f273-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f274-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f275-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f276-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a2f277-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31960-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31961-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31962-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31963-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31964-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31965-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31966-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31967-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31968-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31969-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3196a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3196b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3196c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3196d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3196e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3196f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31970-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31971-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31972-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31973-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31974-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31975-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31976-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31977-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31978-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31979-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3197a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3197b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3197c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3197d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3197e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3197f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31980-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31981-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31982-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31983-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31984-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31985-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31986-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31987-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31988-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31989-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3198a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3198b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3198c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3198d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3198e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3198f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31990-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a31991-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34070-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34071-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34072-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34073-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34074-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34075-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34076-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34077-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34078-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34079-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3407a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3407b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3407c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3407d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3407e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3407f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34080-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34081-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34082-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34083-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34084-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34085-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34086-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34087-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34088-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34089-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3408a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3408b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3408c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3408d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3408e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3408f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34090-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34091-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34092-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34093-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34094-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34095-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34096-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34097-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34098-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a34099-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3409a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3409b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3409c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3409d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3409e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3409f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a340a0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a340a1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a340a2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a340a3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a340a4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a340a5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a340a6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a36780-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a36781-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a36782-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a36783-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a36784-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a36785-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a36786-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a36787-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a36788-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a36789-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3678a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3678b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3678c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3678d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3678e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3678f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a36790-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a36791-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a36792-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a36793-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a36794-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a36795-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a36796-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a36797-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a36798-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a36799-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3679a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3679b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3679c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3679d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3679e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3679f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a367a0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a367a1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a367a2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a367a3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a367a4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a367a5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a367a6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a367a7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a367a8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a367a9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a367aa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a367ab-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a367ac-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38e90-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38e91-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38e92-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38e93-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38e94-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38e95-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38e96-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38e97-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38e98-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38e99-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38e9a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38e9b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38e9c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38e9d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38e9e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38e9f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38ea0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38ea1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38ea2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38ea3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38ea4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38ea5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38ea6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38ea7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38ea8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38ea9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38eaa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38eab-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38eac-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38ead-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38eae-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38eaf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38eb0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38eb1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38eb2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38eb3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38eb4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38eb5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38eb6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38eb7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38eb8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38eb9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38eba-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38ebb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38ebc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38ebd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38ebe-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38ebf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38ec0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38ec1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38ec2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38ec3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a38ec4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5a0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5a1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5a2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5a3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5a4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5a5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5a6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5a7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5a8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5a9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5aa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5ab-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5ac-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5ad-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5ae-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5af-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5b0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5b1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5b2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5b3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5b4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5b5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5b6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5b7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5b8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5b9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5ba-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5bb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5bc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5bd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5be-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5bf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5c0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5c1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5c2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5c3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5c4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5c5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5c6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5c7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5c8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5c9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5ca-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5cb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5cc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5cd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5ce-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5cf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5d0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5d1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5d2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5d3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5d4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3b5d5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcb0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcb1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcb2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcb3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcb4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcb5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcb6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcb7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcb8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcb9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcba-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcbb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcbc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcbd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcbe-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcbf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcc0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcc1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcc2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcc3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcc4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcc5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcc6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcc7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcc8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcc9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcca-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dccb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dccc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dccd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcce-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dccf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcd0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcd1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcd2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcd3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcd4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcd5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcd6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcd7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcd8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcd9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcda-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcdb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcdc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcdd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcde-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dcdf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dce0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dce1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dce2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dce3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dce4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dce5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a3dce6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403c0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403c1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403c2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403c3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403c4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403c5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403c6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403c7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403c8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403c9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403ca-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403cb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403cc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403cd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403ce-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403cf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403d0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403d1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403d2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403d3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403d4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403d5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403d6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403d7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403d8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403d9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403da-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403db-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403dc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403dd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403de-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403df-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403e0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403e1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403e2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403e3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403e4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403e5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403e6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403e7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403e8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403e9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403ea-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403eb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403ec-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403ed-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403ee-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403ef-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403f0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403f1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403f2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403f3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403f4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a403f5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42ad0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42ad1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42ad2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42ad3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42ad4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42ad5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42ad6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42ad7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42ad8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42ad9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42ada-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42adb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42adc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42add-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42ade-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42adf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42ae0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42ae1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42ae2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42ae3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42ae4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42ae5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42ae6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42ae7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42ae8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42ae9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42aea-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42aeb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42aec-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42aed-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42aee-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42aef-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42af0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a42af1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a451e0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a451e1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a451e2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a451e3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a451e4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a451e5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a451e6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("e9a451e7-89cf-11df-a4ee-0800200c9a68")); + } + private void fill27000() { + this.addToExt(UUID.fromString("fdedcd20-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedcd21-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedcd22-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedcd23-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedcd24-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedcd25-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedcd26-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedcd27-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedcd28-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedcd29-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedcd2a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedcd2b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedcd2c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedcd2d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedcd2e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedcd2f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedcd30-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedcd31-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedcd32-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedcd33-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedcd34-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedcd35-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedcd36-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedcd37-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedcd38-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedcd39-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedcd3a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf430-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf431-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf432-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf433-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf434-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf435-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf436-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf437-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf438-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf439-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf43a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf43b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf43c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf43d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf43e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf43f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf440-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf441-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf442-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf443-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf444-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf445-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf446-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf447-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf448-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf449-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf44a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf44b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf44c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf44d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf44e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf44f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf450-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf451-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf452-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf453-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf454-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf455-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf456-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf457-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf458-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf459-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf45a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf45b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf45c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf45d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf45e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf45f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf460-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf461-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdedf462-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b40-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b41-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b42-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b43-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b44-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b45-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b46-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b47-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b48-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b49-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b4a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b4b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b4c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b4d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b4e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b4f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b50-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b51-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b52-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b53-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b54-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b55-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b56-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b57-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b58-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b59-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b5a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b5b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b5c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b5d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b5e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b5f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b60-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b61-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b62-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b63-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b64-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b65-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b66-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b67-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b68-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b69-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b6a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b6b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b6c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b6d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b6e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b6f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b70-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee1b71-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4250-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4251-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4252-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4253-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4254-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4255-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4256-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4257-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4258-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4259-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee425a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee425b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee425c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee425d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee425e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee425f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4260-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4261-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4262-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4263-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4264-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4265-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4266-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4267-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4268-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4269-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee426a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee426b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee426c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee426d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee426e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee426f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4270-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4271-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4272-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4273-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4274-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4275-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee4276-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6960-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6961-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6962-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6963-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6964-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6965-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6966-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6967-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6968-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6969-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee696a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee696b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee696c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee696d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee696e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee696f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6970-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6971-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6972-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6973-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6974-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6975-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6976-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6977-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6978-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6979-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee697a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee697b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee697c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee697d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee697e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee697f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6980-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6981-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6982-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6983-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6984-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6985-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6986-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6987-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6988-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6989-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee698a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee698b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee698c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee698d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee698e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee698f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6990-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6991-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6992-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6993-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6994-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee6995-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9070-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9071-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9072-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9073-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9074-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9075-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9076-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9077-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9078-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9079-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee907a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee907b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee907c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee907d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee907e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee907f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9080-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9081-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9082-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9083-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9084-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9085-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9086-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9087-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9088-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9089-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee908a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee908b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee908c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee908d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee908e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee908f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9090-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9091-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9092-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9093-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9094-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9095-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9096-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9097-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9098-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee9099-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee909a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee909b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdee909c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb780-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb781-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb782-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb783-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb784-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb785-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb786-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb787-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb788-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb789-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb78a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb78b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb78c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb78d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb78e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb78f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb790-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb791-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb792-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb793-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb794-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb795-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb796-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb797-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb798-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb799-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb79a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb79b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb79c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb79d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb79e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb79f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb7a0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb7a1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb7a2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb7a3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb7a4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb7a5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb7a6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb7a7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb7a8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb7a9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb7aa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb7ab-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb7ac-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb7ad-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb7ae-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb7af-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb7b0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeeb7b1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeede90-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeede91-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeede92-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeede93-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeede94-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeede95-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeede96-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeede97-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeede98-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeede99-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeede9a-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeede9b-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeede9c-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeede9d-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeede9e-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeede9f-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedea0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedea1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedea2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedea3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedea4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedea5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedea6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedea7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedea8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedea9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedeaa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedeab-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedeac-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedead-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedeae-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedeaf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedeb0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedeb1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedeb2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedeb3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedeb4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedeb5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedeb6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedeb7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedeb8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedeb9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedeba-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedebb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedebc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedebd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedebe-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdeedebf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05a0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05a1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05a2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05a3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05a4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05a5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05a6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05a7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05a8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05a9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05aa-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05ab-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05ac-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05ad-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05ae-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05af-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05b0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05b1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05b2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05b3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05b4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05b5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05b6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05b7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05b8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05b9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05ba-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05bb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05bc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05bd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05be-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05bf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05c0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05c1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05c2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05c3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05c4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05c5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05c6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05c7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05c8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05c9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05ca-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05cb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05cc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05cd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05ce-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05cf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05d0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05d1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05d2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05d3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05d4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef05d5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cb0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cb1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cb2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cb3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cb4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cb5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cb6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cb7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cb8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cb9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cba-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cbb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cbc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cbd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cbe-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cbf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cc0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cc1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cc2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cc3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cc4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cc5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cc6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cc7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cc8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cc9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cca-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2ccb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2ccc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2ccd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cce-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2ccf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cd0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cd1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cd2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cd3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cd4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cd5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cd6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cd7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cd8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cd9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cda-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cdb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cdc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cdd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cde-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2cdf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2ce0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2ce1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2ce2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2ce3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2ce4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef2ce5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53c0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53c1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53c2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53c3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53c4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53c5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53c6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53c7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53c8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53c9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53ca-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53cb-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53cc-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53cd-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53ce-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53cf-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53d0-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53d1-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53d2-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53d3-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53d4-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53d5-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53d6-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53d7-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53d8-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53d9-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53da-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("fdef53db-89cf-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672d90-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672d91-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672d92-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672d93-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672d94-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672d95-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672d96-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672d97-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672d98-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672d99-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672d9a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672d9b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672d9c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672d9d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672d9e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672d9f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672da0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672da1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672da2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672da3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672da4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672da5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672da6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672da7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672da8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672da9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672daa-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672dab-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672dac-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672dad-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672dae-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672daf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672db0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672db1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672db2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672db3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e672db4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754a0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754a1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754a2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754a3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754a4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754a5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754a6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754a7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754a8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754a9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754aa-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754ab-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754ac-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754ad-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754ae-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754af-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754b0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754b1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754b2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754b3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754b4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754b5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754b6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754b7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754b8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754b9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754ba-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754bb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754bc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754bd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754be-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754bf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754c0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754c1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754c2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754c3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754c4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754c5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754c6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754c7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754c8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754c9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754ca-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754cb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754cc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754cd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754ce-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754cf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754d0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754d1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754d2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6754d3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bb0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bb1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bb2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bb3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bb4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bb5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bb6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bb7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bb8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bb9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bba-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bbb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bbc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bbd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bbe-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bbf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bc0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bc1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bc2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bc3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bc4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bc5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bc6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bc7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bc8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bc9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bca-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bcb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bcc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bcd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bce-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bcf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bd0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bd1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bd2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bd3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bd4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bd5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bd6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bd7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bd8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bd9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bda-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bdb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bdc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bdd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bde-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677bdf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677be0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e677be1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2c0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2c1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2c2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2c3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2c4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2c5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2c6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2c7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2c8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2c9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2ca-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2cb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2cc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2cd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2ce-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2cf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2d0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2d1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2d2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2d3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2d4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2d5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2d6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2d7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2d8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2d9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2da-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2db-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2dc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2dd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2de-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2df-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2e0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2e1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2e2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2e3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2e4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2e5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2e6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2e7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2e8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2e9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2ea-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2eb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2ec-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2ed-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2ee-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2ef-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2f0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2f1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2f2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2f3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2f4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2f5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2f6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67a2f7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9d0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9d1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9d2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9d3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9d4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9d5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9d6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9d7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9d8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9d9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9da-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9db-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9dc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9dd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9de-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9df-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9e0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9e1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9e2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9e3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9e4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9e5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9e6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9e7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9e8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9e9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9ea-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9eb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9ec-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9ed-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9ee-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9ef-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9f0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9f1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9f2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9f3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9f4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9f5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9f6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9f7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9f8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9f9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67c9fa-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0e0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0e1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0e2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0e3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0e4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0e5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0e6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0e7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0e8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0e9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0ea-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0eb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0ec-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0ed-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0ee-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0ef-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0f0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0f1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0f2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0f3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0f4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0f5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0f6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0f7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0f8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0f9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0fa-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0fb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0fc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0fd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0fe-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f0ff-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f100-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f101-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f102-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f103-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f104-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f105-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f106-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f107-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f108-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f109-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f10a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f10b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f10c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f10d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f10e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f10f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f110-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f111-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f112-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f113-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e67f114-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6817f0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6817f1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6817f2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6817f3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6817f4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6817f5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6817f6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6817f7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6817f8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6817f9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6817fa-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6817fb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6817fc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6817fd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6817fe-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e6817ff-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681800-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681801-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681802-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681803-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681804-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681805-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681806-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681807-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681808-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681809-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68180a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68180b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68180c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68180d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68180e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68180f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681810-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681811-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681812-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681813-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681814-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681815-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681816-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681817-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681818-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681819-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68181a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68181b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68181c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68181d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68181e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68181f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681820-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681821-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681822-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681823-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681824-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681825-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e681826-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f00-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f01-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f02-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f03-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f04-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f05-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f06-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f07-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f08-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f09-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f0a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f0b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f0c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f0d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f0e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f0f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f10-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f11-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f12-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f13-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f14-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f15-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f16-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f17-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f18-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f19-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f1a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f1b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f1c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f1d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f1e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f1f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f20-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f21-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f22-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f23-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f24-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f25-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f26-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f27-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f28-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f29-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f2a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f2b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f2c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f2d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f2e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f2f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f30-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f31-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f32-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f33-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f34-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e683f35-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686610-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686611-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686612-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686613-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686614-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686615-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686616-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686617-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686618-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686619-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68661a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68661b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68661c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68661d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68661e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68661f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686620-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686621-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686622-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686623-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686624-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686625-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686626-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686627-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686628-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686629-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68662a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68662b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68662c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68662d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68662e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68662f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686630-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686631-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686632-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686633-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686634-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686635-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686636-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686637-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686638-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686639-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68663a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68663b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68663c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68663d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68663e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68663f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686640-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686641-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e686642-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d20-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d21-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d22-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d23-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d24-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d25-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d26-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d27-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d28-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d29-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d2a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d2b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d2c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d2d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d2e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d2f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d30-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d31-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d32-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d33-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d34-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d35-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d36-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d37-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d38-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d39-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e688d3a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68b430-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68b431-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68b432-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68b433-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68b434-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68b435-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68b436-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68b437-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68b438-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68b439-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68b43a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68b43b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68b43c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68b43d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68b43e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68b43f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68b440-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68b441-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68b442-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68b443-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68b444-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("0e68b445-89d0-11df-a4ee-0800200c9a68")); + } + private void fill28000() { + this.addToExt(UUID.fromString("23e3d1a0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1a1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1a2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1a3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1a4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1a5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1a6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1a7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1a8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1a9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1aa-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1ab-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1ac-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1ad-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1ae-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1af-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1b0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1b1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1b2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1b3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1b4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1b5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1b6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1b7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1b8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1b9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1ba-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1bb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1bc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1bd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1be-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1bf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1c0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1c1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1c2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3d1c3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8b0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8b1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8b2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8b3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8b4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8b5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8b6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8b7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8b8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8b9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8ba-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8bb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8bc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8bd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8be-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8bf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8c0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8c1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8c2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8c3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8c4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8c5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8c6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8c7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8c8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8c9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8ca-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8cb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8cc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8cd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8ce-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8cf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8d0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8d1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8d2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8d3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8d4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8d5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8d6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8d7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8d8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8d9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8da-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8db-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8dc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8dd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8de-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8df-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8e0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8e1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8e2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e3f8e3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fc0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fc1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fc2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fc3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fc4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fc5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fc6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fc7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fc8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fc9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fca-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fcb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fcc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fcd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fce-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fcf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fd0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fd1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fd2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fd3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fd4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fd5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fd6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fd7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fd8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fd9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fda-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fdb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fdc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fdd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fde-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fdf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fe0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fe1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fe2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fe3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fe4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fe5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fe6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fe7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fe8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fe9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fea-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41feb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fec-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fed-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fee-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41fef-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e41ff0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446d0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446d1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446d2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446d3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446d4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446d5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446d6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446d7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446d8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446d9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446da-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446db-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446dc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446dd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446de-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446df-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446e0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446e1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446e2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446e3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446e4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446e5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446e6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446e7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446e8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446e9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446ea-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446eb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446ec-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446ed-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446ee-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446ef-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446f0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446f1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446f2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446f3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446f4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e446f5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46de0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46de1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46de2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46de3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46de4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46de5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46de6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46de7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46de8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46de9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46dea-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46deb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46dec-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46ded-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46dee-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46def-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46df0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46df1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46df2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46df3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46df4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46df5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46df6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46df7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46df8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46df9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46dfa-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46dfb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46dfc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46dfd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46dfe-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46dff-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46e00-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46e01-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46e02-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46e03-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46e04-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46e05-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46e06-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46e07-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46e08-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46e09-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46e0a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46e0b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46e0c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46e0d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46e0e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46e0f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46e10-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46e11-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46e12-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46e13-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46e14-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46e15-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e46e16-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e494f0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e494f1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e494f2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e494f3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e494f4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e494f5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e494f6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e494f7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e494f8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e494f9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e494fa-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e494fb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e494fc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e494fd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e494fe-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e494ff-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e49500-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e49501-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e49502-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e49503-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e49504-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e49505-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e49506-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e49507-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e49508-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e49509-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4950a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4950b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4950c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4950d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4950e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4950f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e49510-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e49511-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e49512-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e49513-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e49514-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e49515-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e49516-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e49517-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e49518-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc00-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc01-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc02-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc03-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc04-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc05-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc06-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc07-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc08-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc09-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc0a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc0b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc0c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc0d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc0e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc0f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc10-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc11-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc12-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc13-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc14-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc15-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc16-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc17-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc18-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc19-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc1a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc1b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc1c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc1d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc1e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc1f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc20-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc21-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc22-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc23-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc24-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc25-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc26-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc27-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc28-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc29-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc2a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc2b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc2c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc2d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc2e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc2f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc30-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc31-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc32-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc33-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc34-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc35-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc36-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4bc37-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e310-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e311-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e312-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e313-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e314-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e315-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e316-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e317-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e318-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e319-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e31a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e31b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e31c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e31d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e31e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e31f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e320-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e321-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e322-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e323-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e324-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e325-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e326-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e327-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e328-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e329-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e32a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e32b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e32c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e32d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e32e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e32f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e330-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e331-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e332-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e333-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e334-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e335-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e336-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e337-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e338-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e339-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e33a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e33b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e33c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e33d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e33e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e33f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e340-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e341-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e342-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e4e343-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a20-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a21-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a22-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a23-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a24-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a25-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a26-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a27-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a28-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a29-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a2a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a2b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a2c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a2d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a2e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a2f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a30-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a31-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a32-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a33-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a34-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a35-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a36-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a37-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a38-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a39-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a3a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a3b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a3c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a3d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a3e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a3f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a40-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a41-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a42-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a43-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a44-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a45-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a46-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a47-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a48-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a49-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a4a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a4b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a4c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a4d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a4e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a4f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a50-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a51-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a52-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a53-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a54-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e50a55-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53130-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53131-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53132-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53133-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53134-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53135-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53136-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53137-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53138-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53139-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e5313a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e5313b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e5313c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e5313d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e5313e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e5313f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53140-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53141-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53142-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53143-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53144-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53145-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53146-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53147-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53148-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53149-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e5314a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e5314b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e5314c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e5314d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e5314e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e5314f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53150-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53151-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53152-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53153-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53154-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53155-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53156-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53157-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53158-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e53159-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e55840-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e55841-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e55842-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e55843-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e55844-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e55845-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e55846-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e55847-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e55848-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e55849-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e5584a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e5584b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e5584c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e5584d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e5584e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e5584f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e55850-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e55851-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e55852-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e55853-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e55854-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e55855-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e55856-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e55857-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("23e55858-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e27d60-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e27d61-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e27d62-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e27d63-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e27d64-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e27d65-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e27d66-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e27d67-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e27d68-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e27d69-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e27d6a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e27d6b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e27d6c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e27d6d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e27d6e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e27d6f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e27d70-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e27d71-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e27d72-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e27d73-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e27d74-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e27d75-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e27d76-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e27d77-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e27d78-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a470-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a471-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a472-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a473-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a474-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a475-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a476-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a477-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a478-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a479-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a47a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a47b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a47c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a47d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a47e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a47f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a480-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a481-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a482-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a483-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a484-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a485-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a486-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a487-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a488-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a489-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a48a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a48b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a48c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a48d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a48e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a48f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a490-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a491-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a492-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a493-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a494-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a495-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a496-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a497-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a498-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a499-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a49a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a49b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a49c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a49d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a49e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a49f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a4a0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a4a1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a4a2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2a4a3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb80-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb81-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb82-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb83-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb84-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb85-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb86-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb87-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb88-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb89-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb8a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb8b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb8c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb8d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb8e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb8f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb90-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb91-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb92-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb93-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb94-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb95-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb96-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb97-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb98-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb99-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb9a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb9b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb9c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb9d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb9e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cb9f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cba0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cba1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cba2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cba3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cba4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cba5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cba6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cba7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cba8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cba9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cbaa-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cbab-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cbac-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cbad-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cbae-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cbaf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cbb0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cbb1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2cbb2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f290-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f291-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f292-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f293-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f294-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f295-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f296-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f297-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f298-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f299-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f29a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f29b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f29c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f29d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f29e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f29f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f2a0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f2a1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f2a2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f2a3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f2a4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f2a5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f2a6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f2a7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f2a8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f2a9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f2aa-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f2ab-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f2ac-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f2ad-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f2ae-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f2af-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f2b0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f2b1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f2b2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f2b3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f2b4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f2b5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f2b6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f2b7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f2b8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e2f2b9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319a0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319a1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319a2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319a3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319a4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319a5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319a6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319a7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319a8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319a9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319aa-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319ab-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319ac-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319ad-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319ae-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319af-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319b0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319b1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319b2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319b3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319b4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319b5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319b6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319b7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319b8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319b9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319ba-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319bb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319bc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319bd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319be-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319bf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319c0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319c1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319c2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319c3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319c4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319c5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319c6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319c7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319c8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319c9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319ca-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319cb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319cc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319cd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319ce-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319cf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319d0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319d1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319d2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319d3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319d4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e319d5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340b0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340b1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340b2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340b3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340b4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340b5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340b6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340b7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340b8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340b9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340ba-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340bb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340bc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340bd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340be-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340bf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340c0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340c1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340c2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340c3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340c4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340c5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340c6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340c7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340c8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340c9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340ca-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340cb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340cc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340cd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340ce-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340cf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340d0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340d1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340d2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340d3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340d4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340d5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340d6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340d7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340d8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340d9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340da-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340db-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340dc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340dd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e340de-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367c0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367c1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367c2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367c3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367c4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367c5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367c6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367c7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367c8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367c9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367ca-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367cb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367cc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367cd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367ce-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367cf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367d0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367d1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367d2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367d3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367d4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367d5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367d6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367d7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367d8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367d9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367da-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367db-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367dc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367dd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367de-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367df-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367e0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367e1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367e2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367e3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367e4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367e5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367e6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367e7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367e8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367e9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367ea-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367eb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367ec-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367ed-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367ee-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367ef-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367f0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367f1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367f2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367f3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367f4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367f5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e367f6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ed0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ed1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ed2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ed3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ed4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ed5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ed6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ed7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ed8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ed9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38eda-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38edb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38edc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38edd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ede-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38edf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ee0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ee1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ee2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ee3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ee4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ee5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ee6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ee7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ee8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ee9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38eea-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38eeb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38eec-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38eed-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38eee-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38eef-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ef0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ef1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ef2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ef3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ef4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ef5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ef6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ef7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ef8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38ef9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38efa-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38efb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38efc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38efd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38efe-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38eff-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38f00-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38f01-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e38f02-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5e0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5e1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5e2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5e3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5e4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5e5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5e6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5e7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5e8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5e9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5ea-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5eb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5ec-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5ed-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5ee-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5ef-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5f0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5f1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5f2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5f3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5f4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5f5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5f6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5f7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5f8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5f9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5fa-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5fb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5fc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5fd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5fe-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b5ff-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b600-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b601-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b602-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b603-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b604-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b605-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b606-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b607-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b608-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b609-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b60a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b60b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b60c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b60d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b60e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b60f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b610-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b611-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b612-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b613-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b614-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b615-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3b616-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dcf0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dcf1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dcf2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dcf3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dcf4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dcf5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dcf6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dcf7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dcf8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dcf9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dcfa-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dcfb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dcfc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dcfd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dcfe-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dcff-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd00-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd01-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd02-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd03-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd04-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd05-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd06-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd07-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd08-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd09-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd0a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd0b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd0c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd0d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd0e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd0f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd10-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd11-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd12-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd13-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd14-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd15-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd16-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd17-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd18-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd19-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e3dd1a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e40400-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e40401-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e40402-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e40403-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e40404-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e40405-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e40406-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e40407-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e40408-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e40409-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e4040a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e4040b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e4040c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e4040d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e4040e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e4040f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e40410-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e40411-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e40412-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e40413-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e40414-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e40415-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e40416-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e40417-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("36e40418-89d0-11df-a4ee-0800200c9a68")); + } + private void fill29000() { + this.addToExt(UUID.fromString("4821ecf0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ecf1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ecf2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ecf3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ecf4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ecf5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ecf6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ecf7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ecf8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ecf9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ecfa-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ecfb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ecfc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ecfd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ecfe-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ecff-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed00-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed01-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed02-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed03-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed04-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed05-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed06-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed07-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed08-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed09-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed0a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed0b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed0c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed0d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed0e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed0f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed10-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed11-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed12-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed13-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed14-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed15-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed16-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed17-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed18-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed19-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed1a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed1b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed1c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed1d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed1e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4821ed1f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221400-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221401-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221402-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221403-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221404-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221405-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221406-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221407-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221408-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221409-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822140a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822140b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822140c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822140d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822140e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822140f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221410-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221411-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221412-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221413-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221414-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221415-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221416-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221417-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221418-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221419-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822141a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822141b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822141c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822141d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822141e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822141f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221420-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221421-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221422-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221423-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221424-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221425-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221426-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221427-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221428-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221429-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822142a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822142b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822142c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822142d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822142e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822142f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221430-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221431-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221432-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48221433-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48223b10-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48223b11-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48223b12-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48223b13-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48223b14-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48223b15-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48223b16-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48223b17-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48223b18-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48226220-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48226221-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48226222-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48226223-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48226224-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48226225-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48226226-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48226227-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48226228-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48226229-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822622a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822622b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822622c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822622d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822622e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822622f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48226230-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48226231-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48226232-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48226233-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48226234-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48226235-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48226236-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48226237-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48226238-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48226239-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228930-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228931-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228932-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228933-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228934-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228935-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228936-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228937-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228938-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228939-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822893a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822893b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822893c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822893d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822893e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822893f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228940-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228941-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228942-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228943-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228944-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228945-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228946-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228947-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228948-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228949-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822894a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822894b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822894c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822894d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822894e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822894f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228950-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228951-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228952-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228953-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228954-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228955-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228956-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228957-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228958-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228959-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822895a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822895b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822895c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822895d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822895e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822895f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228960-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228961-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228962-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228963-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228964-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48228965-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b040-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b041-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b042-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b043-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b044-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b045-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b046-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b047-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b048-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b049-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b04a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b04b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b04c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b04d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b04e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b04f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b050-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b051-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b052-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b053-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b054-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b055-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b056-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b057-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b058-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b059-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b05a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b05b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b05c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b05d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b05e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b05f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b060-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b061-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b062-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b063-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b064-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b065-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b066-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b067-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b068-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b069-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b06a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b06b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b06c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b06d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b06e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b06f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822b070-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d750-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d751-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d752-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d753-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d754-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d755-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d756-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d757-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d758-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d759-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d75a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d75b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d75c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d75d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d75e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d75f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d760-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d761-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d762-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d763-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d764-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d765-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d766-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d767-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d768-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d769-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d76a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d76b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d76c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d76d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d76e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d76f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d770-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d771-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d772-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d773-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d774-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d775-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d776-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d777-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d778-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d779-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d77a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d77b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d77c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d77d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822d77e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe60-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe61-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe62-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe63-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe64-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe65-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe66-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe67-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe68-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe69-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe6a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe6b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe6c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe6d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe6e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe6f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe70-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe71-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe72-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe73-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe74-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe75-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe76-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe77-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe78-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe79-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe7a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe7b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe7c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe7d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe7e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe7f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe80-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe81-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe82-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe83-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe84-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe85-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe86-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe87-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe88-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe89-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe8a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe8b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe8c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe8d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe8e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe8f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe90-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe91-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe92-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe93-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe94-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4822fe95-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232570-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232571-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232572-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232573-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232574-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232575-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232576-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232577-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232578-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232579-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4823257a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4823257b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4823257c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4823257d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4823257e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4823257f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232580-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232581-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232582-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232583-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232584-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232585-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232586-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232587-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232588-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232589-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4823258a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4823258b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4823258c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4823258d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4823258e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4823258f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232590-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232591-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232592-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232593-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232594-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232595-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232596-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232597-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232598-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48232599-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4823259a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4823259b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4823259c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4823259d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4823259e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4823259f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("482325a0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("482325a1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("482325a2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("482325a3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("482325a4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("482325a5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c80-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c81-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c82-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c83-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c84-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c85-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c86-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c87-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c88-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c89-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c8a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c8b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c8c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c8d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c8e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c8f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c90-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c91-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c92-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c93-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c94-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c95-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c96-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c97-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c98-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c99-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c9a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c9b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c9c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c9d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c9e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234c9f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234ca0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234ca1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234ca2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234ca3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234ca4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234ca5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234ca6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234ca7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234ca8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234ca9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234caa-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234cab-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234cac-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234cad-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234cae-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234caf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234cb0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234cb1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234cb2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234cb3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234cb4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234cb5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48234cb6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48237390-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48237391-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48237392-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48237393-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48237394-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48237395-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48237396-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48237397-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48237398-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48237399-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4823739a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4823739b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4823739c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4823739d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4823739e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("4823739f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("482373a0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("482373a1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("482373a2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("482373a3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("482373a4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("482373a5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("482373a6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("482373a7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("482373a8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("482373a9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("482373aa-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("482373ab-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("482373ac-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("482373ad-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("482373ae-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("482373af-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("482373b0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("482373b1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48239aa0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48239aa1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48239aa2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48239aa3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48239aa4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48239aa5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48239aa6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48239aa7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48239aa8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48239aa9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48239aaa-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48239aab-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48239aac-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48239aad-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48239aae-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48239aaf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48239ab0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("48239ab1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be436d0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be436d1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be436d2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be436d3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be436d4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be436d5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be436d6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be436d7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be436d8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be436d9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be436da-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be436db-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be436dc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be436dd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be436de-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be436df-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be436e0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be436e1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be436e2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be436e3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be436e4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be436e5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be436e6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45de0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45de1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45de2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45de3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45de4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45de5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45de6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45de7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45de8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45de9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45dea-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45deb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45dec-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45ded-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45dee-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45def-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45df0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45df1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45df2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45df3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45df4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45df5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45df6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45df7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45df8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45df9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45dfa-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45dfb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45dfc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45dfd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45dfe-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45dff-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45e00-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45e01-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45e02-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45e03-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45e04-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45e05-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45e06-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45e07-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45e08-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45e09-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45e0a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45e0b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45e0c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45e0d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45e0e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45e0f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45e10-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45e11-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45e12-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be45e13-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be484f0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be484f1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be484f2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be484f3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be484f4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be484f5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be484f6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be484f7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be484f8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be484f9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be484fa-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be484fb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be484fc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be484fd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be484fe-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be484ff-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be48500-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be48501-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be48502-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be48503-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be48504-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be48505-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be48506-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be48507-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be48508-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be48509-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4850a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4850b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4850c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4850d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4850e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4850f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be48510-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be48511-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be48512-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be48513-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be48514-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be48515-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be48516-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be48517-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be48518-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be48519-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4851a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4851b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4851c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4851d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4851e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4851f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be48520-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be48521-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac00-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac01-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac02-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac03-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac04-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac05-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac06-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac07-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac08-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac09-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac0a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac0b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac0c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac0d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac0e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac0f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac10-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac11-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac12-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac13-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac14-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac15-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac16-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac17-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac18-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac19-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac1a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac1b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac1c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac1d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac1e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac1f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac20-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac21-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac22-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac23-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac24-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac25-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac26-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac27-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac28-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac29-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac2a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac2b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac2c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac2d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac2e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac2f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac30-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac31-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac32-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac33-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac34-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4ac35-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d310-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d311-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d312-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d313-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d314-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d315-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d316-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d317-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d318-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d319-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d31a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d31b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d31c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d31d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d31e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d31f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d320-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d321-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d322-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d323-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d324-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d325-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d326-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d327-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d328-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d329-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d32a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d32b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d32c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d32d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d32e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d32f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d330-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d331-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d332-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d333-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d334-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d335-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d336-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d337-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d338-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d339-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4d33a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa20-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa21-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa22-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa23-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa24-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa25-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa26-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa27-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa28-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa29-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa2a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa2b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa2c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa2d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa2e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa2f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa30-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa31-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa32-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa33-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa34-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa35-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa36-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa37-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa38-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa39-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa3a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa3b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa3c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa3d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa3e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa3f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa40-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa41-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa42-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa43-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa44-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa45-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa46-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa47-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa48-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa49-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa4a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa4b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be4fa4c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52130-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52131-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52132-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52133-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52134-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52135-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52136-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52137-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52138-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52139-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5213a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5213b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5213c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5213d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5213e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5213f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52140-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52141-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52142-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52143-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52144-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52145-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52146-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52147-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52148-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52149-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5214a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5214b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5214c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5214d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5214e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5214f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52150-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52151-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52152-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52153-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52154-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52155-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52156-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52157-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52158-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52159-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5215a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5215b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5215c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5215d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5215e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5215f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52160-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52161-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52162-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52163-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52164-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52165-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be52166-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54840-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54841-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54842-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54843-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54844-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54845-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54846-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54847-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54848-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54849-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5484a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5484b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5484c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5484d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5484e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5484f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54850-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54851-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54852-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54853-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54854-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54855-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54856-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54857-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54858-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54859-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5485a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5485b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5485c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5485d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5485e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5485f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54860-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54861-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54862-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54863-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54864-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54865-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54866-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54867-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54868-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54869-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5486a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5486b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5486c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5486d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5486e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5486f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54870-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54871-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54872-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54873-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54874-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54875-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be54876-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f50-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f51-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f52-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f53-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f54-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f55-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f56-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f57-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f58-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f59-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f5a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f5b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f5c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f5d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f5e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f5f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f60-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f61-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f62-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f63-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f64-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f65-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f66-89d0-11df-a4ee-0800200c9a68")); + } + private void fill30000() { + this.addToExt(UUID.fromString("5be56f67-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f68-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f69-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f6a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f6b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f6c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f6d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f6e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f6f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f70-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f71-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f72-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f73-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f74-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f75-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f76-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f77-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f78-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f79-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f7a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f7b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f7c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f7d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f7e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f7f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f80-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f81-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be56f82-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59660-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59661-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59662-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59663-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59664-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59665-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59666-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59667-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59668-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59669-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5966a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5966b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5966c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5966d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5966e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5966f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59670-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59671-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59672-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59673-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59674-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59675-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59676-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59677-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59678-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59679-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5967a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5967b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5967c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5967d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5967e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5967f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59680-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59681-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59682-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59683-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59684-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59685-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59686-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59687-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59688-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be59689-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5968a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5968b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5968c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5968d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5968e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5bd70-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5bd71-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5bd72-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5bd73-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5bd74-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5bd75-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5bd76-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5bd77-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5bd78-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5bd79-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5bd7a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5bd7b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5bd7c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5bd7d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5bd7e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5bd7f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5bd80-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5bd81-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5bd82-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5bd83-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5bd84-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5bd85-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5bd86-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5bd87-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("5be5bd88-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07cfb0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07cfb1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07cfb2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07cfb3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07cfb4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07cfb5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07cfb6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6c0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6c1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6c2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6c3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6c4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6c5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6c6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6c7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6c8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6c9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6ca-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6cb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6cc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6cd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6ce-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6cf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6d0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6d1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6d2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6d3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6d4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6d5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6d6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6d7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6d8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6d9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6da-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6db-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6dc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6dd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6de-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6df-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6e0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6e1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6e2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6e3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6e4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6e5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6e6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6e7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6e8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6e9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6ea-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6eb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6ec-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6ed-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6ee-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6ef-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6f0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6f1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6f2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f07f6f3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081dd0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081dd1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081dd2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081dd3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081dd4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081dd5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081dd6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081dd7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081dd8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081dd9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081dda-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081ddb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081ddc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081ddd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081dde-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081ddf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081de0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081de1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081de2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081de3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081de4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081de5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081de6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081de7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081de8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081de9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081dea-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081deb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081dec-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081ded-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081dee-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081def-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081df0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081df1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f081df2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844e0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844e1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844e2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844e3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844e4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844e5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844e6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844e7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844e8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844e9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844ea-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844eb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844ec-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844ed-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844ee-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844ef-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844f0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844f1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844f2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844f3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844f4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844f5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844f6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844f7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844f8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844f9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844fa-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844fb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844fc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844fd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844fe-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f0844ff-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f084500-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f084501-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f084502-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f084503-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f084504-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f084505-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f084506-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f084507-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f084508-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f084509-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08450a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08450b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08450c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08450d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08450e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08450f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f084510-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086bf0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086bf1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086bf2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086bf3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086bf4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086bf5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086bf6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086bf7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086bf8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086bf9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086bfa-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086bfb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086bfc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086bfd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086bfe-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086bff-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c00-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c01-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c02-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c03-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c04-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c05-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c06-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c07-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c08-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c09-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c0a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c0b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c0c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c0d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c0e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c0f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c10-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c11-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c12-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c13-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c14-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c15-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c16-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c17-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c18-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c19-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c1a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c1b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c1c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c1d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c1e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c1f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c20-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c21-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c22-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c23-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c24-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f086c25-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089300-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089301-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089302-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089303-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089304-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089305-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089306-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089307-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089308-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089309-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08930a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08930b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08930c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08930d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08930e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08930f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089310-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089311-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089312-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089313-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089314-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089315-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089316-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089317-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089318-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089319-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08931a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08931b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08931c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08931d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08931e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08931f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089320-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089321-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089322-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089323-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089324-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089325-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089326-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089327-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089328-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f089329-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08932a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08932b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08932c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08932d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba10-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba11-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba12-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba13-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba14-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba15-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba16-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba17-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba18-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba19-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba1a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba1b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba1c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba1d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba1e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba1f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba20-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba21-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba22-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba23-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba24-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba25-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba26-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba27-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba28-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba29-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba2a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba2b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba2c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba2d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba2e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba2f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba30-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba31-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba32-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba33-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba34-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba35-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba36-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba37-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba38-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba39-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba3a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba3b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba3c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba3d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba3e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba3f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba40-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba41-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08ba42-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e120-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e121-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e122-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e123-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e124-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e125-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e126-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e127-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e128-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e129-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e12a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e12b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e12c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e12d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e12e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e12f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e130-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e131-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e132-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e133-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e134-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e135-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e136-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e137-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e138-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e139-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e13a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e13b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e13c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e13d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e13e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e13f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e140-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e141-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e142-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e143-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e144-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e145-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e146-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e147-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e148-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e149-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e14a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e14b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e14c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e14d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e14e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e14f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e150-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e151-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e152-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e153-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e154-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f08e155-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090830-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090831-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090832-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090833-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090834-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090835-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090836-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090837-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090838-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090839-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09083a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09083b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09083c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09083d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09083e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09083f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090840-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090841-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090842-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090843-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090844-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090845-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090846-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090847-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090848-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090849-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09084a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09084b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09084c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09084d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09084e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09084f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090850-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090851-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090852-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090853-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090854-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090855-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090856-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090857-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090858-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090859-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09085a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09085b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09085c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09085d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09085e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09085f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090860-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090861-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090862-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090863-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090864-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090865-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090866-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090867-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f090868-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f40-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f41-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f42-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f43-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f44-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f45-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f46-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f47-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f48-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f49-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f4a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f4b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f4c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f4d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f4e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f4f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f50-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f51-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f52-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f53-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f54-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f55-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f56-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f57-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f58-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f59-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f5a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f5b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f5c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f5d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f5e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f5f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f60-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f61-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f62-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f63-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f64-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f65-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f66-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f67-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f68-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f69-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f6a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f6b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f6c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f6d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f6e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f6f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f70-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f71-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f72-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f73-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f74-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f092f75-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f095650-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f095651-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f095652-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f095653-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f095654-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f095655-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f095656-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f095657-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f095658-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f095659-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09565a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09565b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09565c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09565d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09565e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09565f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f095660-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f095661-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f095662-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f095663-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f095664-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f095665-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f095666-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f095667-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f095668-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f095669-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09566a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09566b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09566c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09566d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09566e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f09566f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f095670-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f095671-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f097d60-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f097d61-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f097d62-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f097d63-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f097d64-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f097d65-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("6f097d66-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db5130-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db5131-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db5132-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db5133-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db5134-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db5135-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db5136-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db5137-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db5138-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db5139-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db513a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db513b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db513c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7840-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7841-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7842-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7843-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7844-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7845-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7846-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7847-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7848-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7849-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db784a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db784b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db784c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db784d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db784e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db784f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7850-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7851-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7852-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7853-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7854-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7855-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7856-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7857-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7858-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7859-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db785a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db785b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db785c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db785d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db785e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db785f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7860-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7861-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7862-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7863-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7864-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7865-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7866-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7867-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7868-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7869-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db786a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db786b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db786c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db786d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db786e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db786f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7870-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7871-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db7872-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f50-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f51-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f52-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f53-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f54-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f55-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f56-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f57-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f58-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f59-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f5a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f5b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f5c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f5d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f5e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f5f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f60-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f61-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f62-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f63-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f64-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f65-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f66-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f67-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f68-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f69-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f6a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f6b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f6c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f6d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f6e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f6f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f70-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f71-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f72-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f73-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f74-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f75-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f76-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f77-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f78-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85db9f79-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc660-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc661-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc662-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc663-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc664-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc665-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc666-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc667-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc668-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc669-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc66a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc66b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc66c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc66d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc66e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc66f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc670-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc671-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc672-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc673-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc674-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc675-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc676-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc677-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc678-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc679-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc67a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc67b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc67c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc67d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc67e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc67f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc680-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc681-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc682-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc683-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc684-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc685-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc686-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc687-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc688-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc689-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc68a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc68b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc68c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc68d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc68e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc68f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc690-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbc691-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed70-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed71-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed72-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed73-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed74-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed75-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed76-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed77-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed78-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed79-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed7a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed7b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed7c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed7d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed7e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed7f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed80-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed81-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed82-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed83-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed84-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed85-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed86-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed87-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed88-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed89-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed8a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed8b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed8c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed8d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed8e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed8f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed90-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed91-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed92-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed93-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed94-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed95-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed96-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed97-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed98-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed99-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed9a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed9b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed9c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed9d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed9e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbed9f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbeda0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbeda1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbeda2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbeda3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbeda4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbeda5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dbeda6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc1480-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc1481-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc1482-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc1483-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc1484-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc1485-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc1486-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc1487-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc1488-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc1489-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc148a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc148b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc148c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc148d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc148e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc148f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc1490-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc1491-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc1492-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc1493-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc1494-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc1495-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc1496-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc1497-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc1498-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc1499-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc149a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc149b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc149c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc149d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc149e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc149f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc14a0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc14a1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc14a2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc14a3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc14a4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc14a5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc14a6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3b90-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3b91-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3b92-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3b93-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3b94-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3b95-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3b96-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3b97-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3b98-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3b99-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3b9a-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3b9b-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3b9c-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3b9d-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3b9e-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3b9f-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3ba0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3ba1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3ba2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3ba3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3ba4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3ba5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3ba6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3ba7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3ba8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3ba9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3baa-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3bab-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3bac-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3bad-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3bae-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3baf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3bb0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3bb1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3bb2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3bb3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3bb4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3bb5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3bb6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3bb7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3bb8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3bb9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3bba-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3bbb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3bbc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3bbd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3bbe-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3bbf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3bc0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3bc1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3bc2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc3bc3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62a0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62a1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62a2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62a3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62a4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62a5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62a6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62a7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62a8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62a9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62aa-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62ab-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62ac-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62ad-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62ae-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62af-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62b0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62b1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62b2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62b3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62b4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62b5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62b6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62b7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62b8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62b9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62ba-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62bb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62bc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62bd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62be-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62bf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62c0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62c1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62c2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62c3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62c4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62c5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62c6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62c7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62c8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62c9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62ca-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62cb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62cc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62cd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62ce-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62cf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62d0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62d1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62d2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62d3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62d4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc62d5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89b0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89b1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89b2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89b3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89b4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89b5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89b6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89b7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89b8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89b9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89ba-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89bb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89bc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89bd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89be-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89bf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89c0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89c1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89c2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89c3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89c4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89c5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89c6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89c7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89c8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89c9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89ca-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89cb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89cc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89cd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89ce-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89cf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89d0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89d1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89d2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89d3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89d4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89d5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89d6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89d7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89d8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89d9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89da-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89db-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89dc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89dd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89de-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89df-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89e0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89e1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89e2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89e3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89e4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89e5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dc89e6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0c0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0c1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0c2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0c3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0c4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0c5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0c6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0c7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0c8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0c9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0ca-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0cb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0cc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0cd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0ce-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0cf-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0d0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0d1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0d2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0d3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0d4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0d5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0d6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0d7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0d8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0d9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0da-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0db-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0dc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0dd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0de-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0df-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0e0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0e1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0e2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0e3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0e4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0e5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0e6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0e7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0e8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0e9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0ea-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0eb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0ec-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0ed-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0ee-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0ef-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0f0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0f1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0f2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0f3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0f4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcb0f5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7d0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7d1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7d2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7d3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7d4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7d5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7d6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7d7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7d8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7d9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7da-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7db-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7dc-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7dd-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7de-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7df-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7e0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7e1-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7e2-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7e3-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7e4-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7e5-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7e6-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7e7-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7e8-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7e9-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7ea-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7eb-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7ec-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7ed-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7ee-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7ef-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcd7f0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcfee0-89d0-11df-a4ee-0800200c9a68")); + this.addToExt(UUID.fromString("85dcfee1-89d0-11df-a4ee-0800200c9a68")); + } + + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/UuidReservoir.xls b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/UuidReservoir.xls new file mode 100644 index 0000000..e6604cc Binary files /dev/null and b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/UuidReservoir.xls differ diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/Vertex.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/Vertex.java new file mode 100644 index 0000000..5cded0f --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/Vertex.java @@ -0,0 +1,146 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.core; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.G.coreSets; +import static org.gmodel.core.F_Instantiation.identityFactory; + +import org.gmodel.G; +import org.gmodel.Identity; +import org.gmodel.SemanticStateOfInMemoryModel; +import org.gmodel.Set; +import org.gmodel.api.models.SemanticDomain; +import org.gmodel.impl.SemanticDomainCode; + +public class Vertex extends Graph { + + /* Reify the Gmodel Vertex concept */ + public static final Vertex vertex = new Vertex(); + /* Reify the Gmodel SemanticIdentity concept */ + private Graph container; + + protected Vertex(final Graph container, final Identity semanticIdentity, final Set category) { + super(semanticIdentity, category); + container.addToVertices(this); + this.setContainer(container); + Graph.addSetToInMemorySets(this); + + if (SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + (this.container()).setContainsNewSets(true); + Graph.addSetToChangedSets(this); + Graph.addSetToChangedSets(this.container()); + } + } + + private Vertex() { + super(identityFactory.vertex()); + this.setContainer(Graph.graph); + // Jorn: added max cardinality variable + //this.addToVariables(coreSets.maxCardinality); + this.addToValues(coreSets.isAbstract_FALSE); + Graph.graph.addToVertices(this); + this.addFlavorQueries(); + this.addCategoryQueries(); + this.addCategoryCommands(); + + } + + /* Implementation of semantics */ + + @Override + public Graph container() { + return container; + } + private void setContainer(final Graph artifact) { + this.container = artifact; + } + @Override + public Set flavor() { + return coreGraphs.vertex; + } + /** + * category commands + */ + protected final void addCategoryCommands() { + if (SemanticStateOfInMemoryModel.semanticDomainIsInitialized()) { + if (SemanticDomain.semanticIdentity.isSuperSetOf(this).isEqualTo(G.coreSets.is_TRUE)) { + this.addToCommands(coreSets.union); + this.addToCommands(coreSets.intersection); + this.addToCommands(coreSets.complement); + this.addToCommands(coreSets.addElement); + this.addToCommands(coreSets.removeElement); + + } + } + } + /** + * category queries + */ + protected final void addCategoryQueries() { + if (SemanticStateOfInMemoryModel.semanticDomainIsInitialized()) { + if (SemanticDomain.semanticIdentity.isSuperSetOf(this).isEqualTo(G.coreSets.is_TRUE)) { + this.addToCommands(coreSets.isElementOf); + } + } + } + @Override + public Set addElement(final Set semanticIdentity){ + return SemanticDomainCode.addElement(this, semanticIdentity); + } + @Override + public Set removeElement(final Set semanticIdentity){ + return SemanticDomainCode.removeElement(this, semanticIdentity); + + } + @Override + public Set elementsOfSemanticIdentitySet(){ + return F_Query.elementsOfSemanticIdentitySet(this.category(), this); + } + @Override + public Set extractFirst() { + if (F_SemanticStateOfInMemoryModel.semanticDomainIsInitialized() && this.category().isASemanticIdentity()) { + this.elementsOfSemanticIdentitySet().extractFirst(); + } + return this.filterInstances().extractFirst(); + } + + @Override + public Set extractSecond() { + if (F_SemanticStateOfInMemoryModel.semanticDomainIsInitialized() && this.category().isASemanticIdentity()) { + this.elementsOfSemanticIdentitySet().extractSecond(); + } + return this.filterInstances().extractSecond(); + } + + @Override + public Set extractLast() { + if (F_SemanticStateOfInMemoryModel.semanticDomainIsInitialized() && this.category().isASemanticIdentity()) { + this.elementsOfSemanticIdentitySet().extractLast(); + } + return this.filterInstances().extractLast(); + } +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/Visibility.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/Visibility.java new file mode 100644 index 0000000..a608d8a --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/Visibility.java @@ -0,0 +1,173 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.core; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.G.coreSets; +import static org.gmodel.core.F_Instantiation.identityFactory; + +import org.gmodel.Identity; +import org.gmodel.SemanticStateOfInMemoryModel; +import org.gmodel.Set; + +public final class Visibility extends Link { + + /* Reify the Gmodel Visibility concept */ + public static final Visibility visibility = new Visibility(); + private Set container; + private Set from; + private Set to; + + protected Visibility(final Set fromSubGraph, final Set toSubGraph, final Set category) { + super(identityFactory.createAnonymousIdentity(fromSubGraph.identity().isPartOfKernel()), category); + this.setFrom(fromSubGraph); + this.setTo(toSubGraph); + this.setContainer(fromSubGraph.container()); + ((Graph)(this.container())).addToVisibilities(this); + this.addToValues(coreSets.isAbstract_TRUE); + + Graph.addSetToInMemorySets(this); + if (SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + ((Graph) this.container()).setContainsNewSets(true); + Graph.addSetToChangedSets(this); + Graph.addSetToChangedSets(this.container()); + } + } + /* only used for reconstitution during deserialisation */ + protected Visibility(final Identity identity, final Set fromSubGraph, final Set toSubGraph, final Set category) { + super(identity, category); + this.setFrom(fromSubGraph); + this.setTo(toSubGraph); + this.setContainer(fromSubGraph.container()); + ((Graph)(this.container())).addToVisibilities(this); + this.addToValues(coreSets.isAbstract_TRUE); + + Graph.addSetToInMemorySets(this); + if (SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + ((Graph) this.container()).setContainsNewSets(true); + Graph.addSetToChangedSets(this); + Graph.addSetToChangedSets(this.container()); + } + } + + private Visibility() { + super(identityFactory.visibility()); + + this.setContainer(Graph.graph); + this.addToValues(coreSets.isAbstract_FALSE); + this.addFlavorQueries(); + } + + @Override + public String toString() { + return this.localVisualRecognitionText(); + } + + @Override + public String localVisualRecognitionText() { + if (this.category().isEqualTo(this)) { + return visualRecognitionText() + " : " + visualRecognitionText(); + } + if (this.isExternal().is_TRUE()) { + return "(" + this.from().identity().name() + " -V-> " + + this.to().visualRecognitionText() + ") : " + + this.category().localVisualRecognitionText(); + } else { + return "(" + this.from().identity().name() + " -V-> " + + this.to().identity().name() + ") : " + + this.category().localVisualRecognitionText(); + } + + } + @Override + public String visualRecognitionText() { + if (this.category().isEqualTo(this)) { + return this.identity().name(); + } else { + if (this.isExternal().is_TRUE()) { + return "(" + this.from().identity().name() + + " -V-> " + this.to().visualRecognitionText() + ")." + + this.container().visualRecognitionText() ; + } else { + return "(" + this.from().identity().name() + + " -V-> " + this.to().identity().name() + + ")." + this.container().visualRecognitionText() ; + } + } + } + @Override + public String fullVisualRecognitionText() { + return this.visualRecognitionText() + " : " + this.category().visualRecognitionText(); + } + + /* Implementation of semantics */ + + @Override + public Set container() { + return container; + } + private void setContainer(final Set set) { + this.container = set; + } + private void setFrom(final Set fromSubGraph) { + this.from = fromSubGraph; + } + private void setTo(final Set toSubGraph) { + this.to = toSubGraph; + } + @Override + public Set isExternal() { + if (!(this.to().container().isEqualTo(this.container()))) { + return coreSets.is_TRUE; + } else { + return coreSets.is_FALSE; + } + } + @Override + public Set flavor() { + return coreGraphs.visibility; + } + /** + * the elements connected to a link + */ + @Override + public Set from() { + return this.from; + } + @Override + public Set to(){ + return this.to; + } + /** + * VisibilityFlavor queries + */ + @Override + protected final void addFlavorQueries() { + super.addFlavorQueries(); + this.addToQueries(coreSets.from); + this.addToQueries(coreSets.to); + } +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/XtensionIdentityFactory.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/XtensionIdentityFactory.java new file mode 100644 index 0000000..c3b7d28 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/XtensionIdentityFactory.java @@ -0,0 +1,47 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.core; + +import org.gmodel.Identity; + +/** + * {@link XtensionIdentityFactory} is a temporary extension of the identity factory for Semantic Identities + * that is in use until the initial Gmodel editor is live. + */ +public class XtensionIdentityFactory { + + public XtensionIdentityFactory() { + } + //private final int maxXtentedSemanticIdentityIndex = 5000-1; + /** + * Outer shells & semantic extensions + */ + + public final Identity infiniteSets() {return F_Instantiation.identityFactory.createIdentityInKernel("infinite sets", "set of infinite sets", XtensionSemanticIdentityRegistry.infiniteSets.ordinal());} + public final Identity finiteSets() {return F_Instantiation.identityFactory.createIdentityInKernel("finite sets", "set of finite sets", XtensionSemanticIdentityRegistry.finiteSets.ordinal());} + public final Identity gmodel() {return F_Instantiation.identityFactory.createIdentityInKernel("gmodel", "gmodel", XtensionSemanticIdentityRegistry.gmodel.ordinal());} + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/core/XtensionSemanticIdentityRegistry.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/XtensionSemanticIdentityRegistry.java new file mode 100644 index 0000000..ec1bd59 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/core/XtensionSemanticIdentityRegistry.java @@ -0,0 +1,52 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.core; + + +/** + * {@link XtensionSemanticIdentityRegistry} is a temporary extension of the semantic identity registry + * that is in use until the initial Gmodel editor is live. It is an ordered list of the SemanticIdentities + * that are used to construct the Instances and Properties of the Gmodel outer shells and semantic extensions. + * + * Important: Elements in this list may never be removed or resequenced, + * as the stability of the UUIDs of semantic identities in the kernel of Gmodel depends + * on the sequence of elements in this list. + * + * ==> If new semantic identities need to be added to the Gmodel kernel, + * this list needs to be appended with a corresponding element. + * ==> If a semantic identity becomes obsolete, the corresponding element in this list must + * be renamed from to _DEPRECATED. + */ + +public enum XtensionSemanticIdentityRegistry { + /** + * outer shells & semantic extensions + */ + infiniteSets, + finiteSets, + gmodel +} + diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/event/SetMaintenanceEvents.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/event/SetMaintenanceEvents.java new file mode 100644 index 0000000..81970df --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/event/SetMaintenanceEvents.java @@ -0,0 +1,33 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Ltd (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ +package org.gmodel.event; + +import org.gmodel.Set; +import org.gmodel.api.EventListener; + +public interface SetMaintenanceEvents { + Set addSubscriber(EventListener instance); + Set removeSubscriber(EventListener instance); +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/EdgeEndFlavor.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/EdgeEndFlavor.java new file mode 100644 index 0000000..06f3afe --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/EdgeEndFlavor.java @@ -0,0 +1,44 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.flavors; + + + + +public interface EdgeEndFlavor extends GraphFlavor { + + /** + * COMMANDS + */ + + + + /** + * QUERIES + */ + + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/EdgeFlavor.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/EdgeFlavor.java new file mode 100644 index 0000000..10a81cc --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/EdgeFlavor.java @@ -0,0 +1,43 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.flavors; + +import org.gmodel.Set; + +public interface EdgeFlavor extends LinkFlavor { + + /** + * QUERIES + */ + + /** + * the elements connected to an EdgeFlavored link + */ + Set fromEdgeEnd(); + Set toEdgeEnd(); + Set edgeEnds(); + String localVisualRecognitionTextWithEdgeEnds(); +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/GraphFlavor.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/GraphFlavor.java new file mode 100644 index 0000000..2a916ad --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/GraphFlavor.java @@ -0,0 +1,334 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.flavors; + +import org.gmodel.Set; +import org.gmodel.api.EventListener; +import org.gmodel.computation.Computation; + +public interface GraphFlavor extends EventListener, Computation { + + /** + * COMMANDS + */ + + /** + * Adds an abstract Vertex-flavor element with a specific category to the {@link Artifact}. + * Rule: valid only if the category is an element of the category + * + * @param category + * @param semanticIdentity + * @return the resulting element + */ + Set addAbstract(Set category, Set semanticIdentity); + + /** + * Adds a concrete Vertex-flavor element with a specific category to the {@link Artifact}. + * Rule: valid only if the category is an element of the category + * + * @param category + * @param semanticIdentity + * @return the resulting element + */ + Set addConcrete(Set category, Set semanticIdentity); + + Set addToCommands(Set anElement); + + Set addToQueries(Set anElement); + + /** + * Add the provided {@link Set} as a value to the set of values within this {@link Set} + * + * @param set + */ + Set addToValues(Set set); + + /** + * Add the provided {@link Set} to the set of variables of this {@link Set} + * + * @param set + */ + Set addToVariables(Set set); + Set allowableEdgeCategories(Set OrderedPair); + Set and( Set b) ; + /** + * assignNewName(newName) + * assigns a new name to a semantic identity + * + * this operation returns is_NOTAPPLICABLE for all sets that are not semantic identities + */ + Set assignNewName(String newName); + Set assignNewPayload(String newPayload); + /** + * assignNewPluralName(newName) + * assigns a new plural name to a semantic identity + * + * this operation returns is_NOTAPPLICABLE for all sets that are not semantic identities + */ + Set assignNewPluralName(String newPluralName); + Set commands(); + Set complement(Set set); + + /** + * QUERIES + */ + + /** + * The container {@link Set} of which this container is part of. + * + * The {@link #container()} is the place where the elements visible to the + * {@link Set} are described via visibility links + * + * @return the container container + */ + Set container(); + + /** + * containsDecommissionedSet.isEqualTo(is_TRUE) + * indicates that a client has decommissioned at least one set contained in the container, + * + * containsDecommissionedSet.isEqualTo(is_FALSE) + * indicates that a client has not decommissioned any of the sets contained in the container, + */ + Set containsDecommissionedSets(); + + /** + * Indicates whether this {@link Set} contains an Edge-flavored + * {@link Set} property + * + * @param orderedPair + * @return true if the {@link Set} contains an Edge-flavored + * {@link Set} orderedPair, and false otherwise + */ + Set containsEdgeTo(Set orderedPair); + + /** + * containsNewSets.isEqualTo(is_TRUE) + * indicates that a client has added at least one set to the container, + * + * containsNewSets.isEqualTo(is_FALSE) + * indicates that a client has not added any set to the container, + */ + Set containsNewSets(); + + /** + * Attempts to remove this {@link Set} from its container() {@link Set}. + * + * @return CoreSets.successful if the {@link Set} was successfully + * decommissioned (referential integrity was not violated); otherwise, returns + * the dependent {@link Set}s which need to be decommissioned first. + */ + Set decommission(); + Set decommissionPayload(); + + /** + * Indicates whether this {@link Set} is a generalization of + * {@link Set} orderedPair + * + * @param orderedPair + * @return the generalization {@link Set} + */ + Set directSuperSetOf(Set orderedPair); + + Set executableCommands(); + Set executableQueries(); + + /** + * Retrieves all elements of a given category that are contained in the flavored sets within this {@link Set} + * + * @param category + * @return the resulting filtered list {@link Set} + */ + Set filter(Set category); + + /** + * Retrieves a given flavored Set contained within the Set + * + * @param flavor + * @return the resulting filtered list {@link Set} + */ + Set filterFlavor(Set flavor); + + /** + * Retrieves the set of all elements that are contained in the flavoredSets within this {@link Set} + * + * @return the resulting list {@link Set} + */ + Set filterInstances(); + + /** + * Retrieves the set of all links between Instances that are contained in this {@link Set} + * + * @return the resulting list {@link Set} + */ + Set filterLinks(); + + /** + * Retrieves a filtered set of all links between Instances that are contained in this {@link Set} + * + * @return the resulting list {@link Set} + */ + Set filterLinks( Set flavorOrCategory, Set fromSet, Set toSet); + + /** + * Retrieves all elements of a given category or a subset of that category from the flavored sets within this {@link Set} + * + * @param category + * @return the resulting filtered list {@link Set} + */ + Set filterPolymorphic(Set category); + + Set hasDecommissionedPayload(); + + /** + * hasNewName.isEqualTo(is_TRUE) + * indicates that a client has changed the name of the semantic identity + * + * hasNewName.isEqualTo(is_FALSE) + * indicates that no client has changed the name of the semantic identity + * + * this operation returns is_NOTAPPLICABLE for all sets that are not semantic identities + */ + Set hasNewName(); + + /** + * Retrieves all elements of a given isInformation that are contained in the flavored sets within this {@link Set} + * + * @param isInformation + * @return the resulting filtered list {@link Set} + */ + + Set hasNewPayload(); + + /** + * hasNewPluralName.isEqualTo(is_TRUE) + * indicates that a client has changed the plural name of the semantic identity + * + * hasNewPluralName.isEqualTo(is_FALSE) + * indicates that no client has changed the plural name of the semantic identity + * + * this operation returns is_NOTAPPLICABLE for all sets that are not semantic identities + */ + Set hasNewPluralName(); + + /** + * this has visibility of target, + * i.e. it is permissible to link the Set to the target + * via edgeFlavor/edgeTraceFlavor/superSetReferenceFlavor connections + */ + Set hasVisibilityOf(Set target); + + Set includesValue( Set value, Set equivalenceClass) ; + + Set intersection(Set set); + + boolean is_FALSE() ; + boolean is_NOTAPPLICABLE() ; + boolean is_TRUE() ; + + boolean is_UNKNOWN() ; + + /** + * isDecommissioned.isEqualTo(is_TRUE) + * indicates that the container has been decommissioned by a client + * + * isDecommissioned.isEqualTo(is_FALSE) + * indicates that the container has not been decommissioned by a client + */ + Set isDecommissioned(); + + Set isElementOf(Set semanticIdentity); + + Set isEqualTo(Set set, Set equivalenceClass); + + Set isInformation() ; + + /** + * Indicates whether this {@link Set} is a local generalization of + * {@link Set} orderedPair + * + * @param orderedPair + * @return true if the {@link Set} is a local generalization of + * {@link Set} orderedPair, and false otherwise + * @see #directSuperSetOf(Set) + */ + Set isLocalSuperSetOf(Set orderedPair); + /** + * isNewInstance.isEqual(is_TRUE) indicates that the container has been instantiated by a client, + * and that the container has not been reconstituted from the datastore + * + * isNewInstance.isEqual(is_FALSE) indicates that the container has been reconstituted from the datastore, + * and that the container has not been instantiated by a client * + */ + Set isNewInstance(); + Set isQuality() ; + /** + * Retrieves the generalization of a {@link Set} + * + * @param orderedPair + * @return the generalization {@link Set} + */ + Set isSuperSetOf(Set orderedPair); + /** + * Retrieves the top-most generalization of orderedPair contained within the Set + * (a recursive application of {@link #directSuperSetOf(Set)}) + * + * @param orderedPair + * @return the root generalization {@link Set} + */ + Set localRootSuperSetOf(Set orderedPair); + Set not() ; + Set or( Set b) ; + + Set queries(); + Set removeFromCommands(Set anElement); + Set removeFromQueries(Set anElement); + Set union(Set set); + + Set unionOfconnectingLinks( Set instance); + /** + * Return the value associated with isInformation variable from this {@link Set} + */ + Set value(Set variable); + /** + * Return the set of values from this {@link Set} + */ + Set values(); + /** + * Return contained variables from this {@link Set} + */ + Set variables(); + + /** + * Retrieves the list of all {@link Artifact}s + * that are visible from a specific subgraph of this {@link Set} + * + * @param subgraph + * @return the list {@link Set} + */ + Set visibleArtifactsForSubGraph(Set subgraph); + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/LinkFlavor.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/LinkFlavor.java new file mode 100644 index 0000000..7c5e657 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/LinkFlavor.java @@ -0,0 +1,48 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.flavors; + +import org.gmodel.Set; + +public interface LinkFlavor { + + /** + * QUERIES + */ + + /** + * isExternal indicates whether the toSubGraph/toDetail/toGeneralization/to + * has a container container that differs from the container container of the Set + */ + Set isExternal(); + + /** + * the elements connected to a link + */ + Set from(); + Set to(); + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/OrderedPairFlavor.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/OrderedPairFlavor.java new file mode 100644 index 0000000..b3892e1 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/OrderedPairFlavor.java @@ -0,0 +1,94 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.flavors; + +import org.gmodel.Identity; +import org.gmodel.Set; +import org.gmodel.api.Event; + +public interface OrderedPairFlavor extends GraphFlavor, VertexFlavor, VisibilityFlavor, EdgeFlavor, SuperSetReferenceFlavor, OrderedSetFlavor, EdgeEndFlavor, Event { + + /** + * QUERIES + */ + + /** + * Each {@link Set} has a isInformation that acts as the classification mechanism + * + * @return the isInformation + */ + Set category(); + + /** + * The element at the top of the this.categoryOfOrderedPair().categoryOfOrderedPair()... stack + * + * @return the top element + */ + Set flavor(); + + + String fullVisualRecognitionText() ; + + /** + * Each {@link Set} has a {@link Identity} that relates to a unique semantic unit (or concept) + * + * @return the identity + */ + Identity identity(); + + Set isALink(); + + boolean isASemanticIdentity(); + /** + * Equality of concepts is established via equality of underlying SemanticIdentities + * + * NOTE: Several Instances can share a SemanticIdentity if the Instances truly represent the same concept. + * This notion of equality enables different aspectual view points to be constructed on top of a semantic ontology. + * + * @param orderedPair + * @return whether this {@link Set} is equal to the orderedPair concept + */ + boolean isEqualTo(Set orderedPair); + /** + * Equality of representations is established via equality of underlying uniqueRepresentationReferences + * + * NOTE: Each Instances has a uniqueRepresentationReference. + * The notion of representation equality is mainly required in the context of serialization and deserialization. + * + * @param orderedPair + * @return whether this {@link Set} is equal to the orderedPair representation + */ + boolean isEqualToRepresentation(Set orderedPair); + String localVisualRecognitionText() ; + /** + * Each {@link Artefact} has a {@link Semantic Identity} artefact that relates to a unique semantic unit (or concept) + * + * @return the semantic identity + */ + Set semanticIdentity(); + String visualRecognitionText() ; + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/OrderedSetFlavor.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/OrderedSetFlavor.java new file mode 100644 index 0000000..075e116 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/OrderedSetFlavor.java @@ -0,0 +1,195 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.flavors; + +import java.util.List; +import java.util.ListIterator; + +import org.gmodel.Identity; +import org.gmodel.Set; +import org.gmodel.event.SetMaintenanceEvents; + +/** + * Operations that provide the List aspect of {@link org.gmodel.core.Graph Graphs}. + * The use of Java-compatible signatures are a convenience to enable Gmodel to + * easily talk to other Java based tools + */ +public interface OrderedSetFlavor extends SetMaintenanceEvents, Iterable { + + /** + * QUERIES + */ + + Set and() ; + Set and( Set b) ; + + /** + * Exposes the contents of this {@link Set} as a list + * + * @return the contents as a list + */ + List asList(); + /** + * the complement of this and s + */ + Set complement(Set set); + + + /** + * contains exactly the same representations of the sets within c + */ + boolean containsAllRepresentations(Set c); + + /** + * contains exactly the same representation of the set o + */ + boolean containsRepresentation(Set o); + + /** + * See {@link java.util.List#contains(Object)} + */ + boolean containsSemanticMatch(Set o); + + /** + * See {@link java.util.List#containsAll(java.util.Collection)} + */ + boolean containsSemanticMatchesForAll(Set c); + + Set extractUniqueMatch(Identity identity); + + Set extractUniqueMatch( Set set); + + Set extractUniqueMatch( String uuidAsString); + + /** + * Retrieves all elements of a given category that are contained in the flavored sets within this {@link Set} + * + * @param category + * @return the resulting filtered list {@link Set} + */ + Set filter(Set category); + Set filterByEquivalenceClass( Set set) ; + Set filterByLinkedFrom( Set fromSet) ; + Set filterByLinkedFromAndTo( Set fromSet, Set toSet); + Set filterByLinkedFromAndToSemanticRole( Set fromSetReferencedSemanticRole, Set toSetReferencedSemanticRole); + Set filterByLinkedFromAndToVia( Set fromEdgeEnd, Set toEdgeEnd); + Set filterByLinkedFromSemanticRole( Set fromSetReferencedSemanticRole) ; + Set filterByLinkedFromVia( Set fromEdgeEnd); + Set filterByLinkedTo( Set toSet) ; + Set filterByLinkedToSemanticRole( Set toSetReferencedSemanticRole) ; + Set filterByLinkedToVia( Set toEdgeEnd) ; + Set filterBySemanticIdentity( Set set) ; + + /** + * Retrieves a given flavored Set contained within the Set + * + * @param flavor + * @return the resulting filtered list {@link Set} + */ + Set filterFlavor(Set flavor); + Set filterFrom() ; + Set filterFromAndTo() ; + Set filterInstances(); + /** + * queries that emulate graph functionality + */ + /** + * Retrieves the set of all links between Instances that are contained in this {@link Set} + * + * @return the resulting list {@link Set} + */ + Set filterLinks(); + /** + * Retrieves a filtered set of all links between Instances that are contained in this {@link Set} + * + * @return the resulting list {@link Set} + */ + Set filterLinks( Set flavorOrCategory, Set fromSet, Set toSet); + /** + * Retrieves all elements of a given category or a subset of that category from the flavored sets within this {@link Set} + * + * @param category + * @return the resulting filtered list {@link Set} + */ + Set filterPolymorphic(Set category); + Set filterTo() ; + Set extractFirst() ; + Set extractSecond() ; + Set extractLast() ; + Set extractNext( Set element) ; + Set extractPrevious( Set element) ; + Set includesValue( Set value, Set equivalenceClass) ; + /** + * the intersection of this and s + */ + Set intersection(Set set); + /** + * See {@link java.util.List#isEmpty()} + */ + boolean isEmpty(); + Set isEqualTo(Set set, Set equivalenceClass); + + /** + * See {@link java.util.List#listIterator()} + */ + ListIterator listIterator(); + + /** + * See {@link java.util.List#listIterator(int)} + */ + ListIterator listIterator(int index); + /** + * Support for Information Quality Logic + */ + Set not() ; + + Set or() ; + Set or( Set b) ; + /** + * See {@link java.util.List#size()} + */ + int size(); + /** + * See {@link java.util.List#toArray()} + */ + Set[] toArray(); + /** + * See {@link java.util.List#toArray(Object[])} + */ + Set[] toArray(Set[] a); + /** + * transform into a corresponding ordered set of semantic identities, applying semantic equivalence rules, + * eliminating any duplicated representations from the result + */ + Set transformToOrderedSetOfSemanticIdentities(); + /** + * the union of this and s + */ + Set union(Set set); + + + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/SuperSetReferenceFlavor.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/SuperSetReferenceFlavor.java new file mode 100644 index 0000000..b1b208a --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/SuperSetReferenceFlavor.java @@ -0,0 +1,35 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.flavors; + + +public interface SuperSetReferenceFlavor extends LinkFlavor { + + /** + * QUERIES + */ + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/VertexFlavor.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/VertexFlavor.java new file mode 100644 index 0000000..92b9797 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/VertexFlavor.java @@ -0,0 +1,52 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.flavors; + +import org.gmodel.Set; + + + +public interface VertexFlavor extends GraphFlavor { + /** + * Queries + */ + + Set elementsOfSemanticIdentitySet(); + /** + * COMMANDS + */ + /** + * add an element to s + * only valid for semantic identities ! + */ + Set addElement(Set semanticIdentity); + /** + * remove an element from s + * only valid for semantic identities ! + */ + Set removeElement(Set semanticIdentity); + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/VisibilityFlavor.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/VisibilityFlavor.java new file mode 100644 index 0000000..f299cba --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/flavors/VisibilityFlavor.java @@ -0,0 +1,35 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.flavors; + + +public interface VisibilityFlavor extends LinkFlavor { + + /** + * QUERIES + */ + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/impl/DerivationCode.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/impl/DerivationCode.java new file mode 100644 index 0000000..884df2c --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/impl/DerivationCode.java @@ -0,0 +1,67 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.impl; + +import static org.gmodel.G.coreSets; + +import org.gmodel.Set; +import org.gmodel.api.models.ArtifactDerivation; +import org.gmodel.core.F_InstantiationImpl; + +public class DerivationCode { + + public static void execute(final Set derivationRule, final Set setOfInstances) { + if ( derivationRule.category().isEqualTo(ArtifactDerivation.derivationRule)) { + // TODO validation to be strengthened! + // && + // setOfInstances.categoryOfOrderedPair().isEqualTo(F_SemanticStateOfInMemoryModel.coreGraphs.orderedSet)) { + + final String tech = derivationRule.value(ArtifactDerivation.derivationTechnology).identity().technicalName(); + final String lf = derivationRule.value(ArtifactDerivation.locationFunction).identity().technicalName();; + for (final Set element : setOfInstances) { + final Set iInstance = element; + if (derivationRule.to().isLocalSuperSetOf(iInstance).isEqualTo(coreSets.is_TRUE)) { + // if (derivationRule.fromConnectedInstance().isEqualTo(iInstance)) { + // TODO condition to be verified and generalised! + // if (derivationRule.fromConnectedInstance().isSuperSetOf(iInstance.metaArtifact()).isEqualTo(coreSets.is_TRUE)) { + + // FIXME + /* + final String generatedOutput = generator.generate(iInstance, derivationRule.identity().getTechnicalName()); + final String name = lf + "/" + iInstance.identity().getName(); + final Identity identity = identityFactory.createIdentity(name); + identity.setPayload(generatedOutput); + final Set result = F_SemanticStateOfInMemoryModel.instantiateConcrete(HTMLRepresentation.htmlRepresentation,identity); + */ + } + } + } else { + F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + } + +} + diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/impl/DerivedFileGenerator.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/impl/DerivedFileGenerator.java new file mode 100644 index 0000000..cdded46 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/impl/DerivedFileGenerator.java @@ -0,0 +1,47 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.impl; + +import org.gmodel.Set; + +/** + * Enables components which produce textual output to + * integrate with Gmodel's support for derived artefacts. + */ +public interface DerivedFileGenerator { + + /** + * Generates textual output in the form of a String, using + * inputInstance as input to the template given + * by derivationTemplate. + * + * @param inputInstance + * @param derivationTemplate + * @return generated output + */ + String generate(Set inputInstance, String derivationTemplate); + +} diff --git a/src/trunk/org.gmodel.kernel/src/org/gmodel/impl/SemanticDomainCode.java b/src/trunk/org.gmodel.kernel/src/org/gmodel/impl/SemanticDomainCode.java new file mode 100644 index 0000000..1a3e6d5 --- /dev/null +++ b/src/trunk/org.gmodel.kernel/src/org/gmodel/impl/SemanticDomainCode.java @@ -0,0 +1,157 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.impl; + +import static org.gmodel.G.coreSets; +import static org.gmodel.api.models.SemanticDomain.disjunctSemanticIdentitySet; +import static org.gmodel.api.models.SemanticDomain.elements_to_disjunctSemanticIdentitySet; +import static org.gmodel.api.models.SemanticDomain.elements_to_semanticIdentitySet; +import static org.gmodel.api.models.SemanticDomain.semanticIdentitySet; +import static org.gmodel.api.models.SemanticDomain.semanticRole; +import static org.gmodel.api.models.SemanticDomain.variantDisjunctSemanticIdentitySet; +import static org.gmodel.core.F_Instantiation.identityFactory; + +import org.gmodel.Set; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models.SemanticDomain; +import org.gmodel.core.F_Instantiation; +import org.gmodel.core.F_InstantiationImpl; + +public class SemanticDomainCode { + + public static Set addElement(final Set set, final Set element){ + if ( set.category().isEqualTo(disjunctSemanticIdentitySet) + || set.category().isEqualTo(variantDisjunctSemanticIdentitySet) ) { + return F_Instantiation.link(elements_to_disjunctSemanticIdentitySet, + F_Instantiation.reuseSemanticIdentity(identityFactory.element()), + element, + coreSets.minCardinality_NOTAPPLICABLE, + coreSets.maxCardinality_NOTAPPLICABLE, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE, + F_Instantiation.reuseSemanticIdentity(identityFactory.set()), + set, + coreSets.minCardinality_NOTAPPLICABLE, + coreSets.maxCardinality_NOTAPPLICABLE, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + } else { + if ( set.category().isEqualTo(semanticIdentitySet)) { + return F_Instantiation.link(elements_to_semanticIdentitySet, + F_Instantiation.reuseSemanticIdentity(identityFactory.element()), + element, + coreSets.minCardinality_NOTAPPLICABLE, + coreSets.maxCardinality_NOTAPPLICABLE, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE, + F_Instantiation.reuseSemanticIdentity(identityFactory.set()), + set, + coreSets.minCardinality_NOTAPPLICABLE, + coreSets.maxCardinality_NOTAPPLICABLE, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + } + + } + + public static Set removeElement(final Set set, final Set element){ + if ( set.category().isEqualTo(disjunctSemanticIdentitySet) + || set.category().isEqualTo(variantDisjunctSemanticIdentitySet) ) { + final Set links = element.filter(elements_to_disjunctSemanticIdentitySet); + // TODO rest of implementation DECOMMISSION_SEMANTICS + } + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsNotYetImplemented.identity(), coreSets.semanticErr); + + } + // TODO unify with implementation of F_SetAlgebra.transformSemanticIdentitySetToOrderedSet(final Set set) + public static Set isElementOf(final Set semanticDomain, final Set element, final Set set) { + final Set setClass = transformSemanticRoleToEquivalenceClass(set); + final Set elementClass = transformSemanticRoleToEquivalenceClass(element); + final Set elementLinks = semanticDomain.filter(SemanticDomain.elements_to_semanticIdentitySet); + for (final Set e : elementLinks) { + if (e.from().isEqualTo(elementClass) + && e.to().isEqualTo(setClass)) { + return GmodelSemanticDomains.is_TRUE; + } + } + final Set elementLinks2 = semanticDomain.filter(elements_to_disjunctSemanticIdentitySet); + for (final Set e : elementLinks2) { + if (e.from().isEqualTo(elementClass) + && e.to().isEqualTo(setClass)) { + return GmodelSemanticDomains.is_TRUE; + } + } + return GmodelSemanticDomains.is_FALSE; + } + + public static Set addSemanticRole(final Set newSemanticRole, final Set equivalenceClass){ + if ( newSemanticRole.category().isSuperSetOf(semanticRole).isEqualTo(coreSets.is_TRUE)) { + return linkSemanticRole(newSemanticRole, equivalenceClass); + } else { + return F_InstantiationImpl.raiseError(coreSets.semanticErr_operationIsIllegalOnThisInstance.identity(), coreSets.semanticErr); + } + } + + public static Set linkSemanticRole(final Set semanticRole, final Set equivalenceClass) { + return F_Instantiation.link(SemanticDomain.semanticRole_to_equivalenceClass, + F_Instantiation.reuseSemanticIdentity(identityFactory.referencingSemanticRole()), + semanticRole, + coreSets.minCardinality_NOTAPPLICABLE, + coreSets.maxCardinality_NOTAPPLICABLE, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + F_Instantiation.reuseSemanticIdentity(identityFactory.equivalenceClass()), + equivalenceClass, + coreSets.minCardinality_NOTAPPLICABLE, + coreSets.maxCardinality_NOTAPPLICABLE, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE); + } + + public static Set transformSemanticRoleToEquivalenceClass(final Set semanticRole){ + if (semanticRole.category().isEqualTo(SemanticDomain.disjunctSemanticIdentitySet) + || semanticRole.category().isEqualTo(SemanticDomain.semanticIdentitySet) + || semanticRole.category().isEqualTo(SemanticDomain.variantDisjunctSemanticIdentitySet) + ) { + return semanticRole; + } + final Set resultSet = semanticRole.container().filter(SemanticDomain.semanticRole_to_equivalenceClass).filterByLinkedFrom(semanticRole).filterTo(); + if (resultSet.size() == 1) { + if (resultSet.extractFirst().category().isEqualTo(SemanticDomain.semanticRole)) { + return transformSemanticRoleToEquivalenceClass(resultSet.extractFirst()); + } else { + return resultSet.extractFirst(); + } + } else { + return GmodelSemanticDomains.is_NOTAPPLICABLE; + } + } +} diff --git a/src/trunk/org.gmodel.objectpool/.classpath b/src/trunk/org.gmodel.objectpool/.classpath new file mode 100644 index 0000000..2d1a430 --- /dev/null +++ b/src/trunk/org.gmodel.objectpool/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/trunk/org.gmodel.objectpool/.project b/src/trunk/org.gmodel.objectpool/.project new file mode 100644 index 0000000..2f838dd --- /dev/null +++ b/src/trunk/org.gmodel.objectpool/.project @@ -0,0 +1,28 @@ + + + org.gmodel.objectpool + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/src/trunk/org.gmodel.objectpool/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.objectpool/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..f6d63a3 --- /dev/null +++ b/src/trunk/org.gmodel.objectpool/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,8 @@ +#Thu Dec 09 15:46:04 CET 2010 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.objectpool/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.objectpool/META-INF/MANIFEST.MF new file mode 100644 index 0000000..88ff10a --- /dev/null +++ b/src/trunk/org.gmodel.objectpool/META-INF/MANIFEST.MF @@ -0,0 +1,9 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.objectpool +Bundle-SymbolicName: org.gmodel.objectpool;singleton:=true +Bundle-Version: 1.0.0 +Require-Bundle: org.gmodel.kernel;bundle-version="1.0.0" +Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Export-Package: org.gmodel.objectpool diff --git a/src/trunk/org.gmodel.objectpool/build.properties b/src/trunk/org.gmodel.objectpool/build.properties new file mode 100644 index 0000000..41eb6ad --- /dev/null +++ b/src/trunk/org.gmodel.objectpool/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/src/trunk/org.gmodel.objectpool/src/org/gmodel/objectpool/GenericObjectPool.java b/src/trunk/org.gmodel.objectpool/src/org/gmodel/objectpool/GenericObjectPool.java new file mode 100644 index 0000000..75d971b --- /dev/null +++ b/src/trunk/org.gmodel.objectpool/src/org/gmodel/objectpool/GenericObjectPool.java @@ -0,0 +1,86 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: SMTL 1.0 + * + * The contents of this file are subject to the Sofismo Model Technology License Version + * 1.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.sofismo.ch/SMTL/ + * + * Software distributed under the License is distributed on an "AS IS" basis. + * See the License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is Gmodel Semantic Extensions Edition. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.objectpool; + +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; + +@SuppressWarnings("serial") +public abstract class GenericObjectPool implements ObjectPool { + + protected final ConcurrentMap poolMap; //concurrent map that can be shared + + protected GenericObjectPool() { + poolMap = new ConcurrentHashMap(); + } + + /* (non-Javadoc) + * @see org.gmodel.connector.mediator.ObjectPool#addArtifact(java.util.UUID, org.gmodel.connector.mediator.ObjectPoolArtifact) + */ + public void addArtifact(final String key, final ObjectPoolArtifact artifact) { + final ObjectPoolArtifact val = poolMap.get(key); + if (val != null) { + poolMap.replace(key, val, artifact); + } else { + poolMap.putIfAbsent(key, artifact); + } + } + + /* (non-Javadoc) + * @see org.gmodel.connector.mediator.ObjectPool#clear() + */ + public void clear() { + poolMap.clear(); + } + + /* (non-Javadoc) + * @see org.gmodel.connector.mediator.ObjectPool#getArtifact(java.util.UUID) + */ + public ObjectPoolArtifact getArtifact(final String key) throws IllegalArgumentException { + if (poolMap.containsKey(key)) { + return poolMap.get(key); + } else { + throw new IllegalArgumentException("Non existent container"); + } + } + + /* (non-Javadoc) + * @see org.gmodel.connector.mediator.ObjectPool#removeArtifact(java.util.UUID) + */ + public void removeArtifact(final String key) { + if (poolMap.containsKey(key)) { + poolMap.remove(key); + } + } + + /* (non-Javadoc) + * @see org.gmodel.connector.mediator.ObjectPool#hasArtifact(java.util.UUID) + */ + public boolean hasArtifact(final String key) { + return poolMap.containsKey(key); + } + +} diff --git a/src/trunk/org.gmodel.objectpool/src/org/gmodel/objectpool/ObjectPool.java b/src/trunk/org.gmodel.objectpool/src/org/gmodel/objectpool/ObjectPool.java new file mode 100644 index 0000000..8c484fc --- /dev/null +++ b/src/trunk/org.gmodel.objectpool/src/org/gmodel/objectpool/ObjectPool.java @@ -0,0 +1,67 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: SMTL 1.0 + * + * The contents of this file are subject to the Sofismo Model Technology License Version + * 1.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.sofismo.ch/SMTL/ + * + * Software distributed under the License is distributed on an "AS IS" basis. + * See the License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is Gmodel Semantic Extensions Edition. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.objectpool; + +import java.io.Serializable; +import java.util.UUID; + +public interface ObjectPool extends Serializable { + + /** + * Add an container to the pool + * @param key + * @param container + */ + public void addArtifact(final String key, final ObjectPoolArtifact artifact); + + + /** + * Clear pool + */ + public void clear(); + + /** + * Return an container with matching UUID + * @param key + * @return + * @throws IllegalArgumentException + */ + public ObjectPoolArtifact getArtifact(final String key) throws IllegalArgumentException; + + /** + * Check if an container with matching UUUID exists + * @param key + * @return true if an container with matching UUID is found + */ + public boolean hasArtifact(final String key); + + /** + * Remove an container with matching UUID + * @param key + */ + public void removeArtifact(final String key); + +} \ No newline at end of file diff --git a/src/trunk/org.gmodel.objectpool/src/org/gmodel/objectpool/ObjectPoolArtifact.java b/src/trunk/org.gmodel.objectpool/src/org/gmodel/objectpool/ObjectPoolArtifact.java new file mode 100644 index 0000000..a77ef99 --- /dev/null +++ b/src/trunk/org.gmodel.objectpool/src/org/gmodel/objectpool/ObjectPoolArtifact.java @@ -0,0 +1,101 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: SMTL 1.0 + * + * The contents of this file are subject to the Sofismo Model Technology License Version + * 1.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.sofismo.ch/SMTL/ + * + * Software distributed under the License is distributed on an "AS IS" basis. + * See the License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is Gmodel Semantic Extensions Edition. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.objectpool; + +import java.io.Serializable; +import java.util.UUID; + + +@SuppressWarnings("serial") +public class ObjectPoolArtifact implements Serializable { + + private final Object content; + + private final UUID metaTypeUUID; + + private final UUID uuid; + + private boolean isModified; + + public ObjectPoolArtifact(final UUID uuid, final UUID metaTypeUUID,final Object content) { + this.uuid = uuid; + this.metaTypeUUID = metaTypeUUID; + this.content = content; + this.isModified = false; + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + ObjectPoolArtifact other = (ObjectPoolArtifact) obj; + if (uuid == null) { + if (other.uuid != null) + return false; + } else if (!uuid.equals(other.uuid)) + return false; + return true; + } + + public Object getContent() { + return content; + } + + public UUID getMetaType() { + return metaTypeUUID; + } + + public UUID getUUID() { + return uuid; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((uuid == null) ? 0 : uuid.hashCode()); + return result; + } + + public boolean isModified() { + return isModified; + } + + public void setModified(final boolean isModified) { + this.isModified = isModified; + } + + @Override + public String toString() { + return "ObjectPoolArtifact [uuid=" + uuid + ", metaType=" + metaTypeUUID + + "]"; + } + +} diff --git a/src/trunk/org.gmodel.objectpool/src/org/gmodel/objectpool/ObjectPoolRegistry.java b/src/trunk/org.gmodel.objectpool/src/org/gmodel/objectpool/ObjectPoolRegistry.java new file mode 100644 index 0000000..690f18f --- /dev/null +++ b/src/trunk/org.gmodel.objectpool/src/org/gmodel/objectpool/ObjectPoolRegistry.java @@ -0,0 +1,63 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: SMTL 1.0 + * + * The contents of this file are subject to the Sofismo Model Technology License Version + * 1.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.sofismo.ch/SMTL/ + * + * Software distributed under the License is distributed on an "AS IS" basis. + * See the License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is Gmodel Semantic Extensions Edition. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.objectpool; + +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; + +public class ObjectPoolRegistry { + + private static final ObjectPoolRegistry registry = new ObjectPoolRegistry(); + + private final ConcurrentMap poolMap; + + private final ObjectPool sharedObjectPool; + + public static synchronized ObjectPoolRegistry getInstance() { + if (registry == null) { + throw new RuntimeException("No registry instance is available"); + } else { + return registry; + } + } + + private ObjectPoolRegistry() { + poolMap = new ConcurrentHashMap(); + sharedObjectPool = new SharedObjectPool(); + } + + public ObjectPool getPersonalObjectPool(final UUID uuid) { + if (!poolMap.containsKey(uuid)) { + poolMap.putIfAbsent(uuid, new PersonalObjectPool(uuid)); + } + return poolMap.get(uuid); + } + + public ObjectPool getSharedObjectPool(final UUID uuid) { + return sharedObjectPool; + } +} diff --git a/src/trunk/org.gmodel.objectpool/src/org/gmodel/objectpool/PersonalObjectPool.java b/src/trunk/org.gmodel.objectpool/src/org/gmodel/objectpool/PersonalObjectPool.java new file mode 100644 index 0000000..9dc3995 --- /dev/null +++ b/src/trunk/org.gmodel.objectpool/src/org/gmodel/objectpool/PersonalObjectPool.java @@ -0,0 +1,89 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: SMTL 1.0 + * + * The contents of this file are subject to the Sofismo Model Technology License Version + * 1.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.sofismo.ch/SMTL/ + * + * Software distributed under the License is distributed on an "AS IS" basis. + * See the License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is Gmodel Semantic Extensions Edition. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.objectpool; + +import java.util.UUID; + +@SuppressWarnings("serial") +public class PersonalObjectPool extends GenericObjectPool { + + private final UUID userId; + + public PersonalObjectPool(final UUID userId) { + this.userId = userId; + } + + /* (non-Javadoc) + * @see org.gmodel.connector.mediator.ObjectPool#addArtifact(java.util.UUID, org.gmodel.connector.mediator.ObjectPoolArtifact) + */ + @Override + public void addArtifact(final String key, final ObjectPoolArtifact artifact) { + final ObjectPoolArtifact val = poolMap.get(key); + if (val != null) { + poolMap.replace(key, val, artifact); + } else { + poolMap.putIfAbsent(key, artifact); + } + } + + /* (non-Javadoc) + * @see org.gmodel.connector.mediator.ObjectPool#getArtifact(java.util.UUID) + */ + @Override + public ObjectPoolArtifact getArtifact(final String key) throws IllegalArgumentException { + if (poolMap.containsKey(key)) { + return poolMap.get(key); + } else { + throw new IllegalArgumentException("Non existent container"); + } + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((userId == null) ? 0 : userId.hashCode()); + return result; + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + PersonalObjectPool other = (PersonalObjectPool) obj; + if (userId == null) { + if (other.userId != null) + return false; + } else if (!userId.equals(other.userId)) + return false; + return true; + } + +} diff --git a/src/trunk/org.gmodel.objectpool/src/org/gmodel/objectpool/SharedObjectPool.java b/src/trunk/org.gmodel.objectpool/src/org/gmodel/objectpool/SharedObjectPool.java new file mode 100644 index 0000000..811642b --- /dev/null +++ b/src/trunk/org.gmodel.objectpool/src/org/gmodel/objectpool/SharedObjectPool.java @@ -0,0 +1,49 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: SMTL 1.0 + * + * The contents of this file are subject to the Sofismo Model Technology License Version + * 1.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.sofismo.ch/SMTL/ + * + * Software distributed under the License is distributed on an "AS IS" basis. + * See the License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is Gmodel Semantic Extensions Edition. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.objectpool; + +import java.util.UUID; + +@SuppressWarnings("serial") +public class SharedObjectPool extends GenericObjectPool { + + protected SharedObjectPool() { + } + + public void addArtifact(final String key, final ObjectPoolArtifact artifact) { + final ObjectPoolArtifact val = poolMap.get(key); + if (val != null) { + poolMap.replace(key, val, artifact); + } else { + poolMap.putIfAbsent(key, artifact); + } + } + + public void initializePool(final UUID key) { + + } + +} diff --git a/src/trunk/org.gmodel.openarchitectureware.tests/.classpath b/src/trunk/org.gmodel.openarchitectureware.tests/.classpath new file mode 100644 index 0000000..454a29c --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware.tests/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/trunk/org.gmodel.openarchitectureware.tests/.project b/src/trunk/org.gmodel.openarchitectureware.tests/.project new file mode 100644 index 0000000..d6d2e12 --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware.tests/.project @@ -0,0 +1,34 @@ + + + org.gmodel.openarchitectureware.tests + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.xtend.shared.ui.xtendBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + org.eclipse.xtend.shared.ui.xtendXPandNature + + diff --git a/src/trunk/org.gmodel.openarchitectureware.tests/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.openarchitectureware.tests/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..8f6dc3d --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware.tests/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,70 @@ +#Wed May 13 15:07:03 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.openarchitectureware.tests/.settings/org.eclipse.jdt.ui.prefs b/src/trunk/org.gmodel.openarchitectureware.tests/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000..d20f2b5 --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware.tests/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,54 @@ +#Mon Jun 01 15:10:28 CEST 2009 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=false +sp_cleanup.format_source_code=false +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/src/trunk/org.gmodel.openarchitectureware.tests/.settings/org.eclipse.xtend.shared.ui.prefs b/src/trunk/org.gmodel.openarchitectureware.tests/.settings/org.eclipse.xtend.shared.ui.prefs new file mode 100644 index 0000000..c626ccc --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware.tests/.settings/org.eclipse.xtend.shared.ui.prefs @@ -0,0 +1,4 @@ +#Tue May 18 19:37:36 CEST 2010 +eclipse.preferences.version=1 +metamodelContributor=org.gmodel.openarchitectureware.ui.GmodelMetamodelContributor +project.specific.metamodel=true diff --git a/src/trunk/org.gmodel.openarchitectureware.tests/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.openarchitectureware.tests/META-INF/MANIFEST.MF new file mode 100644 index 0000000..9f6b5ca --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware.tests/META-INF/MANIFEST.MF @@ -0,0 +1,20 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.openarchitectureware.tests +Bundle-SymbolicName: org.gmodel.openarchitectureware.tests +Bundle-Version: 1.0.0 +Fragment-Host: org.gmodel.openarchitectureware +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Require-Bundle: org.junit4, + org.gmodel.kernel.tests +Bundle-ActivationPolicy: lazy +Import-Package: com.google.inject.spi, + org.antlr.runtime, + org.aopalliance.intercept, + org.eclipse.emf.ecore.xmi.impl, + org.eclipse.emf.mwe.utils, + org.eclipse.xpand2, + org.eclipse.xpand2.output, + org.eclipse.xtend.typesystem.emf, + org.gmodel;bundle-version="1.0.0", + org.gmodel.openarchitectureware;bundle-version="1.0.0" diff --git a/src/trunk/org.gmodel.openarchitectureware.tests/README.txt b/src/trunk/org.gmodel.openarchitectureware.tests/README.txt new file mode 100644 index 0000000..14f1f17 --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware.tests/README.txt @@ -0,0 +1,5 @@ +At the moment we are concentrating on the design of the templates for artifact visualisation, not on the editing of them in an editor. + +Hence workflows have been created which run in the main workspace and can be used to generate the necessary output. + +Proper types for gmodel.ext \ No newline at end of file diff --git a/src/trunk/org.gmodel.openarchitectureware.tests/build.properties b/src/trunk/org.gmodel.openarchitectureware.tests/build.properties new file mode 100644 index 0000000..7efa428 --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware.tests/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = target/classes/ +bin.includes = META-INF/,\ + . diff --git a/src/trunk/org.gmodel.openarchitectureware.tests/launches/Launch Runtime Workbench.launch b/src/trunk/org.gmodel.openarchitectureware.tests/launches/Launch Runtime Workbench.launch new file mode 100644 index 0000000..0d0e11d --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware.tests/launches/Launch Runtime Workbench.launch @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/trunk/org.gmodel.openarchitectureware.tests/pom.xml b/src/trunk/org.gmodel.openarchitectureware.tests/pom.xml new file mode 100644 index 0000000..f083a9f --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware.tests/pom.xml @@ -0,0 +1,10 @@ + + 4.0.0 + + org.gmodel + org.gmodel.eclipse + 1.0.0 + + org.gmodel.openarchitectureware.tests + eclipse-test-plugin + \ No newline at end of file diff --git a/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/generation/tests/AbstractHtmlGenerator.java b/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/generation/tests/AbstractHtmlGenerator.java new file mode 100644 index 0000000..a0ed095 --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/generation/tests/AbstractHtmlGenerator.java @@ -0,0 +1,37 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.openarchitectureware.generation.tests; + +import org.gmodel.Set; + +public abstract class AbstractHtmlGenerator { + + protected AbstractHtmlGenerator(final Set set) { + final GmodelWorkflow workflow = new GmodelWorkflow(set, "org::gmodel::visualizedGraph::html::template::main"); + workflow.execute(); + } + +} diff --git a/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/generation/tests/CrmArtefactGenerator.java b/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/generation/tests/CrmArtefactGenerator.java new file mode 100644 index 0000000..957104f --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/generation/tests/CrmArtefactGenerator.java @@ -0,0 +1,48 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.openarchitectureware.generation.tests; + +import org.gmodel.Set; +import org.gmodel.kernel.artifactinstantiation.InstantiationSequences; + +public class CrmArtefactGenerator extends AbstractHtmlGenerator { + + protected CrmArtefactGenerator(final Set set) { + super(set); + } + + public static void main(final String[] args) { + // final CrmExample example = new CrmExample(); + // final Set set = example.getDomainanalysis(); + // new CrmArtefactGenerator(set); + org.gmodel.G.boot(); + InstantiationSequences.run(); + // final Set set = RepositoryStructure.domainengineering; + final Set set = InstantiationSequences.crm; + new CrmArtefactGenerator(set); + + } +} diff --git a/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/generation/tests/ERModellingArtefactGenerator.java b/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/generation/tests/ERModellingArtefactGenerator.java new file mode 100644 index 0000000..2fd96cd --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/generation/tests/ERModellingArtefactGenerator.java @@ -0,0 +1,44 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.openarchitectureware.generation.tests; + +import org.gmodel.Set; +import org.gmodel.kernel.artifactinstantiation.InstantiationSequences; + +public class ERModellingArtefactGenerator extends AbstractHtmlGenerator { + + protected ERModellingArtefactGenerator(final Set set) { + super(set); + } + + public static void main(final String[] args) { + org.gmodel.G.boot(); + InstantiationSequences.run(); + final Set set = InstantiationSequences.entityrelationshipschema; + + new ERModellingArtefactGenerator(set); + } +} diff --git a/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/generation/tests/EnterpriseArchitectureArtefactGenerator.java b/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/generation/tests/EnterpriseArchitectureArtefactGenerator.java new file mode 100644 index 0000000..286434b --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/generation/tests/EnterpriseArchitectureArtefactGenerator.java @@ -0,0 +1,48 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * +import org.gmodel.api.Set; +import org.gmodel.test.artifactinstantiation.TestSequence; +the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.openarchitectureware.generation.tests; + +import org.gmodel.Set; +import org.gmodel.kernel.artifactinstantiation.InstantiationSequences; + +public class EnterpriseArchitectureArtefactGenerator extends AbstractHtmlGenerator { + + protected EnterpriseArchitectureArtefactGenerator(final Set set) { + super(set); + } + + public static void main(final String[] args) { + // final EnterpriseArchitectureExample example = new EnterpriseArchitectureExample(); + // final Set set = example.getCentrelinkEA(); + // new EnterpriseArchitectureArtefactGenerator(set); + org.gmodel.G.boot(); + InstantiationSequences.run(); + final Set set = InstantiationSequences.acmeEA; + new EnterpriseArchitectureArtefactGenerator(set); + + } +} diff --git a/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/generation/tests/GmodelWorkflow.java b/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/generation/tests/GmodelWorkflow.java new file mode 100644 index 0000000..19d501e --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/generation/tests/GmodelWorkflow.java @@ -0,0 +1,75 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.openarchitectureware.generation.tests; + +import org.eclipse.emf.mwe.core.WorkflowContext; +import org.eclipse.emf.mwe.core.WorkflowContextDefaultImpl; +import org.eclipse.emf.mwe.core.container.CompositeComponent; +import org.eclipse.emf.mwe.core.issues.Issues; +import org.eclipse.emf.mwe.core.issues.IssuesImpl; +import org.eclipse.emf.mwe.core.monitor.NullProgressMonitor; +import org.eclipse.emf.mwe.core.monitor.ProgressMonitor; +import org.eclipse.emf.mwe.utils.DirectoryCleaner; +import org.eclipse.xpand2.output.Outlet; +import org.gmodel.Set; +import org.gmodel.eclipse.xpand2.GmodelGenerator; + +/** + * Roughly the equivalent of a basic MWE workflow + */ +public final class GmodelWorkflow { + + private final Set set; + + private final String templateName; + + public GmodelWorkflow(final Set set, final String templateName) { + this.set = set; + this.templateName = templateName; + } + + public void execute() { + final String path = "src-gen"; + + final GmodelGenerator generator = new GmodelGenerator(set); + generator.setTemplateName(templateName); + final Outlet outlet = new Outlet(); + outlet.setPath(path); + generator.addOutlet(outlet); + + final DirectoryCleaner directoryCleaner = new DirectoryCleaner(); + directoryCleaner.setDirectory(path); + + final WorkflowContext ctx = new WorkflowContextDefaultImpl(); + final ProgressMonitor monitor = new NullProgressMonitor(); + final Issues issues = new IssuesImpl(); + + final CompositeComponent workflow = new CompositeComponent("workflow"); + workflow.addComponent(directoryCleaner); + workflow.addComponent(generator); + workflow.invoke(ctx, monitor, issues); + } +} diff --git a/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/tests/AbstractTypeTest.java b/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/tests/AbstractTypeTest.java new file mode 100644 index 0000000..16bb5f0 --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/tests/AbstractTypeTest.java @@ -0,0 +1,62 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.openarchitectureware.tests; + +import junit.framework.TestCase; + +import org.eclipse.xtend.expression.TypeSystem; +import org.eclipse.xtend.expression.TypeSystemImpl; +import org.eclipse.xtend.typesystem.Type; +import org.gmodel.Set; +import org.gmodel.openarchitectureware.types.SetType; +import org.gmodel.openarchitectureware.types.singleton.IdentityType; +import org.gmodel.openarchitectureware.types.singleton.KernelValuesType; +import org.gmodel.openarchitectureware.types.singleton.RootSetType; + +public abstract class AbstractTypeTest extends TestCase { + + protected final TypeSystem typeSystem; + + protected final IdentityType identityType; + + protected final RootSetType rootSetType; + + protected final KernelValuesType kernelValuesType; + + protected final java.util.Set rootSetSuperTypes; + + public AbstractTypeTest() { + typeSystem = new TypeSystemImpl(); + identityType = new IdentityType(typeSystem); + rootSetType = new RootSetType(typeSystem, identityType); + kernelValuesType = new KernelValuesType(typeSystem, rootSetType); + rootSetSuperTypes = rootSetType.getSuperTypes(); + } + + public SetType createSetType(final Set set) { + return new SetType(typeSystem, set, rootSetType, identityType); + } +} diff --git a/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/tests/IdentityTypeTest.java b/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/tests/IdentityTypeTest.java new file mode 100644 index 0000000..909854a --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/tests/IdentityTypeTest.java @@ -0,0 +1,79 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPimport java.lang.reflect.Method; + +import org.eclipse.xtend.typesystem.Feature; +import org.eclipse.xtend.typesystem.Operation; +import org.gmodel.G; +import org.gmodel.api.Identity; +import org.gmodel.core.IdentityImpl; + + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.openarchitectureware.tests; + +import java.lang.reflect.Method; + +import org.eclipse.xtend.typesystem.Feature; +import org.eclipse.xtend.typesystem.Operation; +import org.gmodel.Identity; +import org.gmodel.api.Instantiation; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.core.IdentityImpl; +import org.junit.Test; + +public final class IdentityTypeTest extends AbstractTypeTest { + + /** + * Checks that all contributed {@link Feature}s correspond + * to operations on the {@link Identity} interface + * + * @throws Exception + */ + @Test + public void testContributedFeatures() throws Exception { + final Feature[] features = identityType.getContributedFeatures(); + assertTrue(features.length > 0); + + // this test accesses indexIsNotAvailable, which should be private, as well as the IdentityImpl(...) constructor, which is not part of the API + // TODO the test needs to be reworked + + final Identity identity = new IdentityImpl(GmodelSemanticDomains.name.identity().name(), GmodelSemanticDomains.pluralName.identity().name(), Instantiation.indexIsNotAvailable); + + for (final Feature feature : features) { + assertTrue(feature instanceof Operation); + final Operation operation = (Operation) feature; + final String name = operation.getName(); + final Method method = Identity.class.getMethod(name); + assertNotNull(method); + + final Object evaluationResult = operation.evaluate(identity, new Object[0]); + assertNotNull(evaluationResult); + final Object invocationResult = method.invoke(identity); + if (name.equals(GmodelSemanticDomains.identifier.identity().name())) { + // feature provides a useful shortcut + assertEquals(evaluationResult, String.valueOf(invocationResult)); + } else { + assertEquals(evaluationResult, invocationResult); + } + } + + } + +} diff --git a/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/tests/KernelValuesTypeTest.java b/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/tests/KernelValuesTypeTest.java new file mode 100644 index 0000000..5f9f0c4 --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/tests/KernelValuesTypeTest.java @@ -0,0 +1,41 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.openarchitectureware.tests; + +import org.eclipse.xtend.typesystem.Feature; +import org.junit.Test; + +public class KernelValuesTypeTest extends AbstractTypeTest { + + @Test + public void testComplenessOfContributedFeatures() throws Exception { + final Feature[] contributedFeatures = kernelValuesType.getContributedFeatures(); + assertNotNull(contributedFeatures); + assertTrue(contributedFeatures.length > 0); + // TODO add more tests + } + +} diff --git a/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/tests/OrderedSetDecoratorTest.java b/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/tests/OrderedSetDecoratorTest.java new file mode 100644 index 0000000..2799217 --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/tests/OrderedSetDecoratorTest.java @@ -0,0 +1,73 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.openarchitectureware.tests; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import junit.framework.TestCase; + +import org.gmodel.G; +import org.gmodel.Set; +import org.gmodel.openarchitectureware.types.OrderedSetDecorator; +import org.junit.Test; + +public class OrderedSetDecoratorTest extends TestCase { + + @Test + public void testConstruction() { + final Set o = G.coreSets.orderedSet; + new OrderedSetDecorator(o); + + try { + new OrderedSetDecorator(G.coreGraphs.graph); + fail("Exception expected"); + } catch (final IllegalArgumentException e) { + // expected + } + } + + @Test + public void testMethodsRequiredForIteration() { + final Set orderedSet = G.coreSets.orderedSet; + final OrderedSetDecorator decorator = new OrderedSetDecorator(orderedSet); + assertEquals(orderedSet.size(), decorator.size()); + + final List listFromIteratingOverOrderedSet = new ArrayList(); + final Iterator osI = orderedSet.iterator(); + while (osI.hasNext()) { + listFromIteratingOverOrderedSet.add(osI.next()); + } + final List listFromIteratingOverDecorator = new ArrayList(); + final Iterator decoratorI = orderedSet.iterator(); + while (decoratorI.hasNext()) { + listFromIteratingOverDecorator.add(decoratorI.next()); + } + assertEquals(listFromIteratingOverOrderedSet, listFromIteratingOverDecorator); + } + +} diff --git a/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/tests/RootSetTypeTest.java b/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/tests/RootSetTypeTest.java new file mode 100644 index 0000000..c431d89 --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/tests/RootSetTypeTest.java @@ -0,0 +1,158 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.openarchitectureware.tests; + +import java.lang.reflect.Method; +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import org.eclipse.xtend.typesystem.Feature; +import org.eclipse.xtend.typesystem.Operation; +import org.eclipse.xtend.typesystem.Type; +import org.gmodel.G; +import org.junit.Test; + +public final class RootSetTypeTest extends AbstractTypeTest { + + private static final Class CLASS = org.gmodel.Set.class; + + private static final Set EXCLUDED_OPERATIONS = new HashSet(Arrays.asList( + "addAbstract", + "addConcrete", + "addToCommands", + "addToQueries", + "addToValues", + "addToVariables", + "commands", + "containsRepresentation", + "containsAllRepresentations", + "edgeEnds", + "decommission", + "fromEdgeEnd", + "isEqualTo", + "isEqualToRepresentation", + "isSuperSetOf", + "iterator", + "listIterator", + "category", + "queries", + "removeFromCommands", + "removeFromQueries", + "removeFromValues", + "removeFromVariables", + "setValue", + "toArray", + "toEdgeEnd", + "value" + )); + + /** + * Checks that all contributed {@link Feature}s correspond + * to operations on the {@link org.gmodel.api.Set} interface, + * and that all relevant operations are present + * + * @throws Exception + */ + // TODO adopt an implementation which does not require duplication of what is in the org.gmodel.api.Set interface + /* + public void testComplenessOfContributedFeatures() throws Exception { + final List setMethods = Arrays.asList(CLASS.getMethods()); + final List graphFlavorMethods = Arrays.asList(GraphFlavor.class.getMethods()); + + final Set methodNames = new HashSet(); + for (final Method method : setMethods) { + methodNames.add(method.getName()); + } + for (final Method method : graphFlavorMethods) { + methodNames.add(method.getName()); + } + final List features = Arrays.asList(rootSetType.getContributedFeatures()); + final Set featureNames = new HashSet(); + for (final Feature feature : features) { + featureNames.add(feature.getName()); + } + final Set missingFeatures = new HashSet(methodNames); + missingFeatures.removeAll(featureNames); + missingFeatures.removeAll(EXCLUDED_OPERATIONS); + assertTrue("Missing features: " + missingFeatures, missingFeatures.isEmpty()); + + final Set additionalFeatures = new HashSet(featureNames); + additionalFeatures.removeAll(methodNames); + assertTrue("Additional features: " + additionalFeatures, additionalFeatures.isEmpty()); + } + */ + + @Test + public void testCorrectnessOfContributedFeatures() throws Exception { + final List features = Arrays.asList(rootSetType.getContributedFeatures()); + + final org.gmodel.Set set = G.coreGraphs.graph; + + for (final Feature feature : features) { + assertTrue(feature instanceof Operation); + final Operation operation = (Operation) feature; + final String name = operation.getName(); + final List parameterTypes = operation.getParameterTypes(); + // TODO add tests for operations with parameters + if (parameterTypes.size() == 0) { + final Method method = getMethod(name); + assertNotNull("Method named '" + name + "' was not found", method); + + final Object evaluationResult = operation.evaluate(set, new Object[0]); + assertNotNull(evaluationResult); + final Object invocationResult = method.invoke(set); + + if ("identity".equals(name) || "isEmpty".equals(name) || "size".equals(name)) { + assertEquals(evaluationResult, invocationResult); + } else { + assertTrue("Evaluation of '" + name + "' operation was not a Set", evaluationResult instanceof org.gmodel.Set); + assertTrue(invocationResult instanceof org.gmodel.Set); + + final org.gmodel.Set evaluationResultSet = (org.gmodel.Set) evaluationResult; + final org.gmodel.Set invocationResultSet = (org.gmodel.Set) invocationResult; + assertTrue(evaluationResultSet.isEqualTo(invocationResultSet)); + } + } + } + } + + private Method getMethod(final String name) throws Exception { + try { + final Method method = CLASS.getMethod(name); + return method; + } catch (final Exception e) { + for (final Method method : org.gmodel.Set.class.getMethods()) { + // for (final Method method : Graph.class.getMethods()) { + if (method.getName().equals(name)) { + return method; + } + } + return null; + } + } +} diff --git a/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/tests/SetTypeTest.java b/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/tests/SetTypeTest.java new file mode 100644 index 0000000..a544ee2 --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware.tests/src/org/gmodel/openarchitectureware/tests/SetTypeTest.java @@ -0,0 +1,54 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.openarchitectureware.tests; + +import java.util.HashSet; +import java.util.Set; + +import org.eclipse.xtend.typesystem.Type; +import org.gmodel.G; +import org.gmodel.openarchitectureware.types.SetType; +import org.junit.Test; + +public class SetTypeTest extends AbstractTypeTest { + + @Test + public void testGetKernelSetSuperTypes() { + final SetType vertexType = createSetType(G.coreGraphs.vertex); + final SetType graphType = createSetType(G.coreGraphs.graph); + + final Set expectedSuperTypes = new HashSet(rootSetSuperTypes); + expectedSuperTypes.add(rootSetType); + + assertEquals(expectedSuperTypes, vertexType.getSuperTypes()); + assertEquals(expectedSuperTypes, graphType.getSuperTypes()); + } + + @Test + public void testGetNonKernelElementSuperTypes() { + // TODO + } +} diff --git a/src/trunk/org.gmodel.openarchitectureware/.classpath b/src/trunk/org.gmodel.openarchitectureware/.classpath new file mode 100644 index 0000000..12191ce --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware/.classpath @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/trunk/org.gmodel.openarchitectureware/.project b/src/trunk/org.gmodel.openarchitectureware/.project new file mode 100644 index 0000000..f03d7f0 --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware/.project @@ -0,0 +1,28 @@ + + + org.gmodel.openarchitectureware + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/src/trunk/org.gmodel.openarchitectureware/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.openarchitectureware/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..8f6dc3d --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,70 @@ +#Wed May 13 15:07:03 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.openarchitectureware/.settings/org.eclipse.jdt.ui.prefs b/src/trunk/org.gmodel.openarchitectureware/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000..d20f2b5 --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,54 @@ +#Mon Jun 01 15:10:28 CEST 2009 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=false +sp_cleanup.format_source_code=false +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/src/trunk/org.gmodel.openarchitectureware/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.openarchitectureware/META-INF/MANIFEST.MF new file mode 100644 index 0000000..cfca966 --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware/META-INF/MANIFEST.MF @@ -0,0 +1,17 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.openarchitectureware +Bundle-SymbolicName: org.gmodel.openarchitectureware;singleton:=true +Bundle-Version: 1.0.0 +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.xtend, + org.eclipse.xpand, + org.gmodel.kernel;bundle-version="1.0.0" +Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Import-Package: com.ibm.icu.text, + org.gmodel;bundle-version="1.0.0", + org.gmodel.api;bundle-version="1.0.0", + org.gmodel.core;bundle-version="1.0.0" +Export-Package: org.gmodel.eclipse.xpand2, + org.gmodel.openarchitectureware diff --git a/src/trunk/org.gmodel.openarchitectureware/TODO.txt b/src/trunk/org.gmodel.openarchitectureware/TODO.txt new file mode 100644 index 0000000..72ff204 --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware/TODO.txt @@ -0,0 +1,48 @@ +Looks like we have a problem in FOREACH loops because OrderedSet (return value of "flavoredSet", for example, +is not a java.util.Collection). + +See line 108 in ForEachStatement: + + public void evaluateInternal(XpandExecutionContext ctx) { + Object o = getTarget().evaluate(ctx); + if (o == null) + o = new ArrayList(); + + if (!(o instanceof Collection)) + throw new EvaluationException("Collection expected!", getTarget(), ctx); + + +The following template fragment can be used to reproduce the problem: + +«FOREACH flavoredSet(getKernelEdge()) AS instance2 ITERATOR i2» + «i2.counter1»: «instance2» +«ENDFOREACH» + + +The solution appears to be to create our own list type (OrderedSetType). + +---------------------------------------------------------------------------------------------------------------- + +TODO wrap all OrderedSets returned by the API by OrderedSetDecorator + +---------------------------------------------------------------------------------------------------------------- + + +Dynamically populate list of contributed features for a given instance (InstanceType#getContributedFeatures()), based upon its queries. + +RootSetType's features should be populated dynamically by reflecting on the Set interface + +Add proper Gmodel types to *.ext files, instead of using Object + + +License - put at root level of distribution. +Use @author in JavaDocs to acknowledge individual contributions + +Re-package to remove references to openarchitectureware + + +Create basic test infrastructure to execute a workflow programmatically and make assertions + +---------------------------------------------------------------------------------------------------------------- + +Profile reflective method invocations (see http://crazybob.org/2007/01/fast-reflection.html) diff --git a/src/trunk/org.gmodel.openarchitectureware/build.properties b/src/trunk/org.gmodel.openarchitectureware/build.properties new file mode 100644 index 0000000..86e4aff --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware/build.properties @@ -0,0 +1,5 @@ +source.. = src/,\ + templates/ +output.. = target/classes/ +bin.includes = META-INF/,\ + . diff --git a/src/trunk/org.gmodel.openarchitectureware/pom.xml b/src/trunk/org.gmodel.openarchitectureware/pom.xml new file mode 100644 index 0000000..35abda3 --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware/pom.xml @@ -0,0 +1,10 @@ + + 4.0.0 + + org.gmodel + org.gmodel.eclipse + 1.0.0 + + org.gmodel.openarchitectureware + eclipse-plugin + diff --git a/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/eclipse/xpand2/GmodelGenerator.java b/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/eclipse/xpand2/GmodelGenerator.java new file mode 100644 index 0000000..8356a1e --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/eclipse/xpand2/GmodelGenerator.java @@ -0,0 +1,159 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.eclipse.xpand2; +import java.util.List; + +import org.eclipse.emf.mwe.core.WorkflowContext; +import org.eclipse.emf.mwe.core.issues.Issues; +import org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent; +import org.eclipse.emf.mwe.core.monitor.ProgressMonitor; +import org.eclipse.xpand2.Generator; +import org.eclipse.xpand2.output.Outlet; +import org.eclipse.xpand2.output.Output; +import org.eclipse.xtend.expression.AbstractExpressionsUsingWorkflowComponent.GlobalVarDef; +import org.eclipse.xtend.expression.TypeSystemImpl; +import org.gmodel.Set; +import org.gmodel.api.Query; +import org.gmodel.openarchitectureware.GmodelMetaModel; + + +/** + * An Xpand generator component which loads a {@link Set} + * + * NOTE: not designed to be called from MWE workflows + */ +public class GmodelGenerator extends AbstractWorkflowComponent { + + private static final String MODEL_SLOT_NAME = "instanceModel"; + + private static final String DEFAULT_FILE_ENCODING = "UTF-8"; + + private final Generator generator; + + private final GmodelMetaModel metaModel; + + private String templateName; + + private final Set set; + + public GmodelGenerator(final Set set) { + this.set = set; + this.metaModel = new GmodelMetaModel(set); + this.generator = new Generator(); + generator.setFileEncoding(DEFAULT_FILE_ENCODING); + + generator.addMetaModel(metaModel); + + // add TypeSystem manually, so that KernelValuesType is initialised + metaModel.setTypeSystem(new TypeSystemImpl()); + } + + public void setTemplateName(final String templateName) { + this.templateName = templateName; + final String expand = templateName + " FOR " + MODEL_SLOT_NAME; + generator.setExpand(expand); + } + + @Override + protected void invokeInternal(final WorkflowContext ctx, final ProgressMonitor monitor, final Issues issues) { + // load model + ctx.set(MODEL_SLOT_NAME, set); + + // add kernel concepts as global variables + addKernelConcepts(ctx); + + addGlobalVariable(ctx, metaModel.getKernelValuesType(), "kernelValuesType"); + + generator.invoke(ctx, monitor, issues); + } + + private void addKernelConcepts(final WorkflowContext ctx) { + addConcept(ctx, Query.vertex); + addConcept(ctx, Query.edgeEnd); + addConcept(ctx, Query.orderedSet); + addConcept(ctx, Query.link); + addConcept(ctx, Query.edge); + addConcept(ctx, Query.superSetReference); + addConcept(ctx, Query.visibility); + addConcept(ctx, Query.graph); + } + + private void addConcept(final WorkflowContext ctx, final Set set) { + // final String name = set.identity().getName(); + final String name = set.identity().technicalName(); + final String variableName = "kernel" + name.substring(0, 1).toUpperCase() + name.substring(1); + + addGlobalVariable(ctx, set, variableName); + } + + private void addGlobalVariable(final WorkflowContext ctx, final Object variable, final String variableName) { + // populate context + ctx.set(variableName, variable); + + // add global variable + final GlobalVarDef globalVarDef = new GlobalVarDef(); + globalVarDef.setName(variableName); + globalVarDef.setValue(variableName); + generator.addGlobalVarDef(globalVarDef); + } + + public void checkConfiguration(final Issues issues) { + if (templateName == null) { + issues.addError(this, "Template name must be specified"); + } + + // Check underlying Generator's configuration + generator.checkConfiguration(issues); + } + + /*---------------------- + Generator methods + ----------------------*/ + + public void addOutlet(final Outlet outlet) { + generator.addOutlet(outlet); + } + + public void addAdvice(final String advice) { + generator.addAdvice(advice); + } + + public void addExtensionAdvice(final String extensionAdvice) { + generator.addExtensionAdvice(extensionAdvice); + } + + public void setFileEncoding(final String fileEncoding) { + generator.setFileEncoding(fileEncoding); + } + + public void setBeautifier(final List beautifiers) { + generator.setBeautifier(beautifiers); + } + + public void setOutput(final Output output) { + generator.setOutput(output); + } +} diff --git a/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/eclipse/xpand2/InMemoryOutput.java b/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/eclipse/xpand2/InMemoryOutput.java new file mode 100644 index 0000000..727f813 --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/eclipse/xpand2/InMemoryOutput.java @@ -0,0 +1,61 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.eclipse.xpand2; + +import org.eclipse.xpand2.output.OutputImpl; + +public class InMemoryOutput extends OutputImpl { + + private StringBuilder builder; + + public InMemoryOutput() { + reset(); + } + + public void reset() { + builder = new StringBuilder(); + } + + @Override + public void openFile(final String path, final String outletName) { + // do nothing + } + + @Override + public void closeFile() { + // do nothing + } + + @Override + public void write(final String bytes) { + builder.append(bytes); + } + + public String getOutput() { + return builder.toString(); + } + +} diff --git a/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/openarchitectureware/GmodelMetaModel.java b/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/openarchitectureware/GmodelMetaModel.java new file mode 100644 index 0000000..57f3979 --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/openarchitectureware/GmodelMetaModel.java @@ -0,0 +1,196 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.openarchitectureware; + +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; + +import org.eclipse.internal.xtend.expression.parser.SyntaxConstants; +import org.eclipse.xtend.expression.TypeSystem; +import org.eclipse.xtend.typesystem.MetaModel; +import org.eclipse.xtend.typesystem.Type; +import org.gmodel.G; +import org.gmodel.Identity; +import org.gmodel.Set; +import org.gmodel.api.CoreSets; +import org.gmodel.openarchitectureware.types.SetType; +import org.gmodel.openarchitectureware.types.singleton.IdentityType; +import org.gmodel.openarchitectureware.types.singleton.KernelValuesType; +import org.gmodel.openarchitectureware.types.singleton.RootSetType; + +/** + * This class is the entry point for Gmodel - openArchitectureWare integration + */ +public final class GmodelMetaModel implements MetaModel { + + private static final String NAME = GmodelMetaModel.class.getSimpleName(); + + private TypeSystem typeSystem; + + private final Map typeCache; + + private IdentityType identityType; + + private RootSetType rootSetType; + + private KernelValuesType kernelValuesType; + + /** + * Instance (container) used as the basis for constructing a metamodel + */ + private final Set set; + + public GmodelMetaModel(final Set set) { + this.typeCache = new HashMap(); + this.set = set; + } + + /** + * @see org.eclipse.xtend.typesystem.MetaModel#getTypeSystem() + */ + public TypeSystem getTypeSystem() { + return typeSystem; + } + + /** + * @see org.eclipse.xtend.typesystem.MetaModel#setTypeSystem(org.eclipse.xtend.expression.TypeSystem) + */ + public void setTypeSystem(final TypeSystem typeSystem) { + // disallow overriding TypeSystem once set + if (this.typeSystem == null) { + + this.typeSystem = typeSystem; + + addDefaultTypesToCache(typeSystem); + addSetsToCache(set); + } + } + + private void addDefaultTypesToCache(final TypeSystem typeSystem) { + // add Identity type + identityType = new IdentityType(typeSystem); + addTypeToCache(identityType); + + // add Type corresponding to Set interface + rootSetType = new RootSetType(typeSystem, identityType); + addTypeToCache(rootSetType); + + kernelValuesType = new KernelValuesType(typeSystem, rootSetType); + addTypeToCache(kernelValuesType); + + // TODO add other kernel types? + final SetType vertexType = new SetType(getTypeSystem(), G.coreGraphs.vertex, rootSetType, identityType); + addTypeToCache(vertexType); + } + + private void addSetsToCache(final Set set) { + addSetToCache(set); + final Set vertexFlavored = set.filterFlavor(G.coreGraphs.vertex); + for (final Set i : vertexFlavored) { + addSetsToCache(i); + } + } + + private Type addSetToCache(final Set set) { + final SetType type = new SetType(getTypeSystem(), set, rootSetType, identityType); + addTypeToCache(type); + return type; + } + + private void addTypeToCache(final Type type) { + typeCache.put(type.getName(), type); + } + + /** + * @see org.eclipse.xtend.typesystem.MetaModel#getTypeForName(java.lang.String) + */ + public Type getTypeForName(final String typeName) { + final Type type = typeCache.get(typeName); + return type; + } + + /** + * @see org.eclipse.xtend.typesystem.MetaModel#getType(java.lang.Object) + */ + public Type getType(final Object obj) { + if (obj instanceof Set) { + final Set set = (Set) obj; + final String name = SetType.createName(set); + final Type cachedType = typeCache.get(name); + if (cachedType == null) { + return addSetToCache(set); + } else { + return cachedType; + } + } else if (obj instanceof Identity) { + return identityType; + } else if (obj instanceof CoreSets || obj instanceof KernelValuesType) { + return kernelValuesType; + } else { + // fall back to basic types in built-in meta models + return null; + } + } + + /** + * @see org.eclipse.xtend.typesystem.MetaModel#getKnownTypes() + */ + public java.util.Set getKnownTypes() { + // TODO switch to "standard" caching mechanism + final Collection col = typeCache.values(); + return (java.util.Set) (col instanceof java.util.Set ? col : new HashSet(col)); + } + + /** + * Returns the metamodel name. + * + * @return the metamodel name + */ + public String getName() { + return NAME; + } + + public java.util.Set getNamespaces() { + final HashSet results = new HashSet(); + // TODO come up with a more efficient implementation - cache results? + for (final Type type : getKnownTypes()) { + final String name = type.getName(); + final String namespace = name.substring(0, name.lastIndexOf(SyntaxConstants.NS_DELIM)); + results.add(namespace); + } + return results; + } + + public KernelValuesType getKernelValuesType() { + return kernelValuesType; + } + + public RootSetType getRootSetType() { + return rootSetType; + } +} diff --git a/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/openarchitectureware/types/AbstractSetType.java b/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/openarchitectureware/types/AbstractSetType.java new file mode 100644 index 0000000..b636003 --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/openarchitectureware/types/AbstractSetType.java @@ -0,0 +1,133 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.openarchitectureware.types; + +import java.math.BigInteger; + +import org.eclipse.internal.xtend.type.baseimpl.OperationImpl; +import org.eclipse.xtend.expression.TypeSystem; +import org.eclipse.xtend.typesystem.Feature; +import org.eclipse.xtend.typesystem.Type; +import org.gmodel.Set; + +public abstract class AbstractSetType extends AbstractType { + + private final java.util.Set superTypes; + + private final boolean isAbstract; + + public AbstractSetType(final TypeSystem typeSystem, final String name, final boolean isAbstract, final java.util.Set superTypes) { + super(typeSystem, name); + this.isAbstract = isAbstract; + this.superTypes = superTypes; + } + + public static String createName(final Set delegate) { + if (delegate == delegate.category()) { + return createFullyQualifiedName(delegate.getClass()); + } else { + return createQualifiedName(delegate); + } + } + + private static String createQualifiedName(final Set set) { + // TODO replace by a robust, pluggable mechanism + + /* + final Set flavor = set.flavor(); + + if (flavor.isEqualTo(F_SemanticStateOfInMemoryModel.coreSets.orderedPair) + || flavor.isEqualTo(F_SemanticStateOfInMemoryModel.coreGraphs.orderedSet) + || flavor.isEqualTo(F_SemanticStateOfInMemoryModel.coreGraphs.edgeEnd)) { + + return set.getClass().getName().replace(".", SyntaxConstants.NS_DELIM); + + } else { + final Set container = set.artifact(); + final String setIdentityName = set.identity().getTechnicalName(); + final String artifactIdentityName = container.identity().getTechnicalName(); + return artifactIdentityName + SyntaxConstants.NS_DELIM + setIdentityName; + + } + */ + return set.identity().identifier().toString(); + } + + @Override + public java.util.Set getSuperTypes() { + return superTypes; + } + + @Override + public boolean isAbstract() { + return isAbstract; + } + + @Override + public abstract Feature[] getContributedFeatures(); + + protected Integer convertToInteger(final Object o) { + if (o instanceof Integer) { + return (Integer) o; + } else if (o instanceof BigInteger) { + // add warning if too large? + return ((BigInteger) o).intValue(); + } else { + throw new IllegalArgumentException("Could not convert " + o + " to an Integer"); + } + } + + /* Helper classes */ + + protected abstract class ZeroParameterSetOperation extends OperationImpl { + + public ZeroParameterSetOperation(final String name) { + super(AbstractSetType.this, name, AbstractSetType.this); + } + + @Override + protected Object evaluateInternal(final Object target, final Object[] params) { + return evaluate((Set) target); + } + + public abstract Set evaluate(Set target); + } + + protected abstract class OneParameterSetOperation extends OperationImpl { + + public OneParameterSetOperation(final String name) { + super(AbstractSetType.this, name, AbstractSetType.this, AbstractSetType.this); + } + + @Override + protected Object evaluateInternal(final Object target, final Object[] params) { + final Set parameter = (Set) params[0]; + return evaluate((Set) target, parameter); + } + + public abstract Set evaluate(Set target, Set parameter); + } +} diff --git a/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/openarchitectureware/types/AbstractType.java b/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/openarchitectureware/types/AbstractType.java new file mode 100644 index 0000000..78d12cf --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/openarchitectureware/types/AbstractType.java @@ -0,0 +1,49 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.openarchitectureware.types; + +import org.eclipse.internal.xtend.expression.parser.SyntaxConstants; +import org.eclipse.xtend.expression.TypeSystem; +import org.eclipse.xtend.typesystem.AbstractTypeImpl; + +public abstract class AbstractType extends AbstractTypeImpl { + + protected AbstractType(final TypeSystem typeSystem, final String name) { + super(typeSystem, name); + } + + public final boolean isInstance(final Object o) { + throw new UnsupportedOperationException(); + } + + public final Object newInstance() { + throw new UnsupportedOperationException(); + } + + protected static String createFullyQualifiedName(final Class type) { + return type.getName().replaceAll("\\.", SyntaxConstants.NS_DELIM); + } +} diff --git a/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/openarchitectureware/types/OrderedSetDecorator.java b/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/openarchitectureware/types/OrderedSetDecorator.java new file mode 100644 index 0000000..e762301 --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/openarchitectureware/types/OrderedSetDecorator.java @@ -0,0 +1,654 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.openarchitectureware.types; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.ListIterator; + +import org.gmodel.G; +import org.gmodel.Identity; +import org.gmodel.Set; +import org.gmodel.api.EventListener; +import org.gmodel.api.VisitorFunction; + +/** + * Allows iteration over OrderedSets in openArchitectureWare (in FOREACH loops, for example). + * + * The {@link org.eclipse.internal.xpand2.ast.ForEachStatement} requires that the collection + * to be iterated over must be a {@link java.util.Collection}, even though the implementation + * could be refactored to only require a {@link java.lang.Iterable}. + */ +// TODO change this to be a reflective proxy, i.e., we don't have to modify it when OrderedSet's methods change +public final class OrderedSetDecorator implements Set, Collection { + + private final Set delegate; + + //public OrderedSetDecorator(final Set delegate) { + // this.delegate = delegate; + //} + + public OrderedSetDecorator(final Set set) { + if (!(set.flavor().isEqualTo( G.coreSets.orderedSet))) { + throw new IllegalArgumentException("Set to be decorated is not an OrderedSet"); + } + this.delegate = set; + } + + /* Methods used by ForEachStatement */ + + public Iterator iterator() { + return delegate.iterator(); + } + + public int size() { + return delegate.size(); + } + + /* Other methods */ + + public Set addAbstract(final Set metaElement, final Set semanticIdentity) { + return delegate.addAbstract(metaElement, semanticIdentity); + } + + public Set addConcrete(final Set metaElement, final Set semanticIdentity) { + return delegate.addConcrete(metaElement, semanticIdentity); + } + + public Set addToCommands(final Set anElement) { + return delegate.addToCommands(anElement); + } + + public Set addToQueries(final Set anElement) { + return delegate.addToQueries(anElement); + } + + public Set addToValues(final Set set) { + return delegate.addToValues(set); + } + + public Set addToVariables(final Set set) { + return delegate.addToVariables(set); + } + + public Set container() { + return delegate.container(); + } + + public Set filter(final Set metaProperty) { + return delegate.filter(metaProperty); + } + + public Set commands() { + return delegate.commands(); + } + + public Set edgeEnds() { + return delegate.edgeEnds(); + } + + //public Set connectedInstances() { + // return delegate.connectedInstances(); + //} + + public boolean containsSemanticMatch(final Set o) { + return delegate.containsSemanticMatch(o); + } + + public boolean containsSemanticMatchesForAll(final Set c) { + return delegate.containsSemanticMatchesForAll(c); + } + + public Set containsEdgeTo(final Set orderedPair) { + return delegate.containsEdgeTo(orderedPair); + } + + public Set decommission() { + return delegate.decommission(); + } + + @Override + public boolean equals(final Object obj) { + return delegate.equals(obj); + } + + public Set flavor() { + return delegate.flavor(); + } + + public Set filterFlavor(final Set flavor) { + return delegate.filterFlavor(flavor); + } + + public Set from() { + return delegate.from(); + } + + public Set fromEdgeEnd() { + return delegate.fromEdgeEnd(); + } + + @Override + public int hashCode() { + return delegate.hashCode(); + } + + public Set hasVisibilityOf(final Set target) { + return delegate.hasVisibilityOf(target); + } + + public Identity identity() { + return delegate.identity(); + } + + //public int indexOfRepresentation(final Set o) { + // return delegate.indexOfRepresentation(o); + //} + + public Set filterInstances() { + return delegate.filterInstances(); + } + + public boolean isEmpty() { + return delegate.isEmpty(); + } + + public boolean isEqualTo(final Set orderedPair) { + return delegate.isEqualTo(orderedPair); + } + + public boolean isEqualToRepresentation(final Set orderedPair) { + return delegate.isEqualToRepresentation(orderedPair); + } + + public Set isExternal() { + return delegate.isExternal(); + } + + public Set isLocalSuperSetOf(final Set orderedPair) { + return delegate.isLocalSuperSetOf(orderedPair); + } + + public Set isSuperSetOf(final Set orderedPair) { + return delegate.isSuperSetOf(orderedPair); + } + + public Set filterLinks() { + return delegate.filterLinks(); + } + + public ListIterator listIterator() { + return delegate.listIterator(); + } + + public ListIterator listIterator(final int index) { + return delegate.listIterator(index); + } + + public Set localRootSuperSetOf(final Set orderedPair) { + return delegate.localRootSuperSetOf(orderedPair); + } + + public Set directSuperSetOf(final Set orderedPair) { + return delegate.directSuperSetOf(orderedPair); + } + + public Set category() { + return delegate.category(); + } + + public Set queries() { + return delegate.queries(); + } + + public Set removeFromCommands(final Set anElement) { + return delegate.removeFromCommands(anElement); + } + + public Set removeFromQueries(final Set anElement) { + return delegate.removeFromQueries(anElement); + } + + public Set to() { + return delegate.to(); + } + + public Set toEdgeEnd() { + return delegate.toEdgeEnd(); + } + + @Override + public String toString() { + return delegate.toString(); + } + + public Set value(final Set variable) { + return delegate.value(variable); + } + + public Set values() { + return delegate.values(); + } + + public Set variables() { + return delegate.variables(); + } + + public Set visibleArtifactsForSubGraph(final Set subgraph) { + return delegate.visibleArtifactsForSubGraph(subgraph); + } + + public boolean containsAllRepresentations(final Set c) { + return delegate.containsAllRepresentations(c); + } + + public boolean containsRepresentation(final Set o) { + return delegate.containsRepresentation(o); + } + + public Set containsDecommissionedSets() { + return delegate.containsDecommissionedSets(); + } + + public Set containsNewSets() { + return delegate.containsNewSets(); + } + + public Set hasNewName() { + return delegate.hasNewName(); + } + + public Set hasNewPluralName() { + return delegate.hasNewPluralName(); + } + + public Set isDecommissioned() { + return delegate.isDecommissioned(); + } + + public Set isNewInstance() { + return delegate.isNewInstance(); + } + + public Set assignNewName(final String newName) { + return delegate.assignNewName(newName); + } + + public Set assignNewPluralName(final String newPluralName) { + return delegate.assignNewPluralName(newPluralName); + } + + public Set assignNewPayload(final String newPayload) { + return delegate.assignNewPayload(newPayload); + } + + public Set decommissionPayload() { + return delegate.decommissionPayload(); + } + + public Set hasDecommissionedPayload() { + return delegate.hasDecommissionedPayload(); + } + + public Set hasNewPayload() { + return delegate.hasNewPayload(); + } + + /* ---------------------------- * + * java.util.Collection methods * + * ---------------------------- */ + + public Set[] toArray() { + return delegate.toArray(); + } + + public Set[] toArray(final Set[] a) { + return delegate.toArray(a); + } + + public List asList() { + return delegate.asList(); + } + + public boolean add(final Set o) { + throw new UnsupportedOperationException("Not implemented"); + } + + public boolean addAll(final Collection c) { + throw new UnsupportedOperationException("Not implemented"); + } + + public void clear() { + throw new UnsupportedOperationException("Not implemented"); + } + + public boolean contains(final Object o) { + throw new UnsupportedOperationException("Not implemented"); + } + + public boolean containsAll(final Collection c) { + throw new UnsupportedOperationException("Not implemented"); + } + + public boolean remove(final Object o) { + throw new UnsupportedOperationException("Not implemented"); + } + + public boolean removeAll(final Collection c) { + throw new UnsupportedOperationException("Not implemented"); + } + + public boolean retainAll(final Collection c) { + throw new UnsupportedOperationException("Not implemented"); + } + + public T[] toArray(final T[] a) { + throw new UnsupportedOperationException("Not implemented"); + } + + public Set allowableEdgeCategories(final Set orderedPair) { + return delegate.allowableEdgeCategories(orderedPair); + } + + public Set filterPolymorphic(final Set category) { + return delegate.filterPolymorphic(category); + } + + public Set semanticIdentity() { + return delegate.semanticIdentity(); + } + + //public int indexOfIdentifier(final Set o) { + // return delegate.indexOfIdentifier(o); + //} + + public Set executableQueries() { + return delegate.executableQueries(); + } + + public Set executableCommands() { + return delegate.executableCommands(); + } + + public Set union(final Set s) { + return delegate.union(s); + } + + public Set intersection(final Set s) { + return delegate.intersection(s); + } + + public Set complement(final Set s) { + return delegate.complement(s); + } + + public Set addElement(final Set semanticIdentity) { + return delegate.addElement(semanticIdentity); + } + + public Set removeElement(final Set semanticIdentity) { + return delegate.removeElement(semanticIdentity); + } + + public Set isElementOf(final Set semanticIdentity) { + return delegate.isElementOf(semanticIdentity); + } + + public Set transformToOrderedSetOfSemanticIdentities() { + return delegate.transformToOrderedSetOfSemanticIdentities(); + } + + public Set processEvent(final Set event) { + return delegate.processEvent(event); + } + + public Set setMaintenanceCommand() { + return delegate.setMaintenanceCommand(); + } + + public Set generatingSet() { + return delegate.generatingSet(); + } + + public Set generatingElement() { + return delegate.generatingElement(); + } + + public Set unionOfconnectingLinks(final Set instance) { + return delegate.unionOfconnectingLinks(instance); + } + + public Set not() { + return delegate.not(); + } + + public Set and(final Set b) { + return delegate.and(b); + } + + public Set or(final Set b) { + return delegate.or(b); + } + + public Set isQuality() { + return delegate.isQuality(); + } + + public Set isInformation() { + return delegate.isInformation(); + } + + public boolean is_NOTAPPLICABLE() { + return delegate.is_NOTAPPLICABLE(); + } + + public boolean is_FALSE() { + return delegate.is_FALSE(); + } + + public boolean is_UNKNOWN() { + return delegate.is_UNKNOWN(); + } + + public boolean is_TRUE() { + return delegate.is_TRUE(); + } + + public Set includesValue(final Set value, final Set equivalenceClass) { + return delegate.includesValue(value, equivalenceClass); + } + + public Set and() { + return delegate.and(); + } + + public Set or() { + return delegate.or(); + } + + public String localVisualRecognitionText() { + return delegate.localVisualRecognitionText(); + } + + public String visualRecognitionText() { + return delegate.visualRecognitionText(); + } + + public String fullVisualRecognitionText() { + return delegate.fullVisualRecognitionText(); + } + + public String localVisualRecognitionTextWithEdgeEnds() { + return delegate.localVisualRecognitionTextWithEdgeEnds(); + } + + public Set elementsOfSemanticIdentitySet() { + return delegate.elementsOfSemanticIdentitySet(); + + } + + public Set filterLinks(final Set flavorOrCategory, final Set fromSet, final Set toSet) { + return delegate.filterLinks( flavorOrCategory, fromSet, toSet); + } + + public Set filterByLinkedTo(final Set toSet) { + return delegate.filterByLinkedTo( toSet); + } + + public Set filterByLinkedFrom(final Set fromSet) { + return delegate.filterByLinkedFrom( fromSet); + } + + public Set filterByLinkedFromAndTo(final Set fromSet, final Set toSet) { + return delegate.filterByLinkedFromAndTo( fromSet, toSet); + } + + public Set filterByLinkedToVia(final Set toEdgeEnd) { + return delegate.filterByLinkedToVia( toEdgeEnd); + } + + public Set filterByLinkedFromVia(final Set fromEdgeEnd) { + return delegate.filterByLinkedFromVia( fromEdgeEnd); + } + + public Set filterByLinkedFromAndToVia(final Set fromEdgeEnd, final Set toEdgeEnd) { + return delegate.filterByLinkedFromAndToVia( fromEdgeEnd, toEdgeEnd); + } + + public Set filterFrom() { + return delegate.filterFrom(); + } + + public Set filterTo() { + return delegate.filterTo(); + } + + public Set filterFromAndTo() { + return delegate.filterFromAndTo(); + } + + public Set filterByLinkedToSemanticRole(final Set toSetReferencedSemanticRole) { + return delegate.filterByLinkedToSemanticRole(toSetReferencedSemanticRole); + } + + public Set filterByLinkedFromSemanticRole(final Set fromSetReferencedSemanticRole) { + return delegate.filterByLinkedFromSemanticRole(fromSetReferencedSemanticRole); + } + + public Set filterByLinkedFromAndToSemanticRole(final Set fromSetReferencedSemanticRole, final Set toSetReferencedSemanticRole) { + return delegate.filterByLinkedFromAndToSemanticRole( fromSetReferencedSemanticRole, toSetReferencedSemanticRole); + } + + public Set isEqualTo(final Set set, final Set equivalenceClass) { + return delegate.isEqualTo( set, equivalenceClass); + + } + + public Set filterBySemanticIdentity(final Set set) { + return delegate.filterBySemanticIdentity( set); + } + + public Set filterByEquivalenceClass(final Set set) { + return delegate.filterByEquivalenceClass( set); + } + + public Set isALink() { + return delegate.isALink( ); + + } + + public Set extractUniqueMatch(final Identity identity) { + return delegate.extractUniqueMatch( identity); + + } + + public Set extractUniqueMatch(final String uuidAsString) { + return delegate.extractUniqueMatch( uuidAsString); + + } + + public Set extractUniqueMatch(final Set set) { + return delegate.extractUniqueMatch( set); + + } + + public Set extractFirst() { + return delegate.extractFirst( ); + + } + + public Set extractSecond() { + return delegate.extractSecond( ); + + } + + public Set extractLast() { + return delegate.extractLast( ); + + } + + public boolean isASemanticIdentity() { + return delegate.isASemanticIdentity( ); + } + + public Set extractNext(final Set element) { + return delegate.extractNext( element ); + } + + public Set extractPrevious(final Set element) { + return delegate.extractPrevious( element ); + } + + public Set initializeWalk(final VisitorFunction visitorFunction) { + return delegate.initializeWalk( visitorFunction ); + } + + public Set walkDownThenRight(final VisitorFunction visitorFunction) { + return delegate.walkDownThenRight( visitorFunction ); + } + + public Set walkDownThenLeft(final VisitorFunction visitorFunction) { + return delegate.walkDownThenLeft( visitorFunction ); + } + + public Set walkRightThenDown(final VisitorFunction visitorFunction) { + return delegate.walkRightThenDown( visitorFunction ); + } + + public Set walkLeftThenDown(final VisitorFunction visitorFunction) { + return delegate.walkLeftThenDown( visitorFunction ); + } + + public Set addSubscriber(final EventListener instance) { + return delegate.addSubscriber( instance ); + } + + public Set removeSubscriber(final EventListener instance) { + return delegate.removeSubscriber( instance ); + } + +} diff --git a/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/openarchitectureware/types/SetType.java b/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/openarchitectureware/types/SetType.java new file mode 100644 index 0000000..d504f05 --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/openarchitectureware/types/SetType.java @@ -0,0 +1,148 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.openarchitectureware.types; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; + +import org.eclipse.internal.xtend.type.baseimpl.OperationImpl; +import org.eclipse.xtend.expression.TypeSystem; +import org.eclipse.xtend.typesystem.Feature; +import org.eclipse.xtend.typesystem.Type; +import org.gmodel.Identity; +import org.gmodel.Set; +import org.gmodel.openarchitectureware.types.singleton.IdentityType; +import org.gmodel.openarchitectureware.types.singleton.RootSetType; + +public final class SetType extends AbstractSetType { + + private final Set set; + + private final RootSetType rootSetType; + + private final IdentityType identityType; + + /** + * Constructor used to create {@link SetType}s for all {@link Set} implementations + * + * @param typeSystem + * @param instance + */ + public SetType(final TypeSystem typeSystem, final Set set, final RootSetType rootSetType, final IdentityType identityType) { + super(typeSystem, createName(set), false, getSuperTypes(set, typeSystem, rootSetType, identityType)); + this.set = set; + this.rootSetType = rootSetType; + this.identityType = identityType; + } + + private static java.util.Set getSuperTypes(final Set delegate, final TypeSystem typeSystem, final RootSetType rootSetType, final IdentityType identityType) { + final java.util.Set result = new HashSet(); + Set metaElement = delegate; + while (metaElement != metaElement.category()) { + metaElement = metaElement.category(); + final Type superType = new SetType(typeSystem, metaElement, rootSetType, identityType); + result.add(superType); + } + // add Type corresponding to Set interface, and its super types + result.add(rootSetType); + result.addAll(rootSetType.getSuperTypes()); + + return result; + } + + @Override + public Feature[] getContributedFeatures() { + // iterate through queries + final Type listType = getTypeSystem().getListType(this); + + final Set queries = set.queries(); + final int size = queries.size(); + final List features = new ArrayList(size); + for (final Set query : queries) { + final Set q = query; + final String name = q.identity().name(); + final int parameters = q.size(); + // here we assume that all queries return Sets + if (parameters == 0) { + // TODO generalise distinction between sets and singleton sets + if ("filterInstances".equals(name)) { + features.add(new OperationImpl(this, name, listType) { + protected @Override Object evaluateInternal(final Object target, final Object[] params) { + final Set set = (Set) target; + return set.filterInstances(); + } + }); + } else if ("identity".equals(name)) { + features.add(new OperationImpl(this, name, identityType) { + protected @Override Identity evaluateInternal(final Object target, final Object[] params) { + final Set set = (Set) target; + return (Identity) invokeMethod(set, name); + } + }); + } else { + features.add(new ZeroParameterSetOperation(name) { + public @Override Set evaluate(final Set target) { + return (Set) invokeMethod(target, name); + } + }); + } + + } else if (parameters == 1) { + // TODO consider queries with parameters + if ("filterFlavor".equals(name)) { + features.add(new OperationImpl(this, name, listType, rootSetType) { + protected @Override Object evaluateInternal(final Object target, final Object[] params) { + final Set set = (Set) target; + final Set flavor = (Set) params[0]; + return new OrderedSetDecorator(set.filterFlavor(flavor)); + } + }); + } else if ("value".equals(name)) { + features.add(new OperationImpl(this, name, rootSetType, rootSetType) { + protected @Override Object evaluateInternal(final Object target, final Object[] params) { + final Set set = (Set) target; + final Set orderedPair = (Set) params[0]; + return set.value(orderedPair); + } + }); + } + } + } + return features.toArray(new Feature[size]); + } + + private Object invokeMethod(final Set target, final String methodName) { + try { + final Class targetClass = target.getClass(); + final Method method = targetClass.getMethod(methodName); + return method.invoke(target); + } catch (final Exception e) { + throw new IllegalStateException("Could not invoke method '" + methodName + "' on target '" + target + "'", e); + } + } +} diff --git a/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/openarchitectureware/types/singleton/IdentityType.java b/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/openarchitectureware/types/singleton/IdentityType.java new file mode 100644 index 0000000..23fc465 --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/openarchitectureware/types/singleton/IdentityType.java @@ -0,0 +1,82 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.openarchitectureware.types.singleton; + +import java.util.Collections; +import java.util.Set; + +import org.eclipse.internal.xtend.type.baseimpl.OperationImpl; +import org.eclipse.xtend.expression.TypeSystem; +import org.eclipse.xtend.typesystem.Feature; +import org.eclipse.xtend.typesystem.Type; +import org.gmodel.Identity; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.openarchitectureware.types.AbstractType; + +public final class IdentityType extends AbstractType { + + private static final String FULLY_QUALIFIED_NAME = createFullyQualifiedName(Identity.class); + + private final Set superTypes; + + public IdentityType(final TypeSystem typeSystem) { + super(typeSystem, FULLY_QUALIFIED_NAME); + this.superTypes = Collections.singleton(getTypeSystem().getObjectType()); + } + + @Override + public Set getSuperTypes() { + return superTypes; + } + + @Override + public Feature[] getContributedFeatures() { + final Type stringType = getTypeSystem().getStringType(); + return new Feature[] { + new OperationImpl(this, GmodelSemanticDomains.name.identity().name(), stringType) { + protected @Override String evaluateInternal(final Object target, final Object[] params) { + return ((Identity) target).name(); + } + }, + new OperationImpl(this, GmodelSemanticDomains.pluralName.identity().name(), stringType) { + protected @Override String evaluateInternal(final Object target, final Object[] params) { + return ((Identity) target).pluralName(); + } + }, + new OperationImpl(this, GmodelSemanticDomains.technicalName.identity().name(), stringType) { + protected @Override String evaluateInternal(final Object target, final Object[] params) { + return ((Identity) target).technicalName(); + } + }, + new OperationImpl(this, GmodelSemanticDomains.identifier.identity().name(), stringType) { + protected @Override String evaluateInternal(final Object target, final Object[] params) { + return ((Identity) target).identifier().toString(); + } + } + }; + } + +} \ No newline at end of file diff --git a/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/openarchitectureware/types/singleton/KernelValuesType.java b/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/openarchitectureware/types/singleton/KernelValuesType.java new file mode 100644 index 0000000..54a33da --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/openarchitectureware/types/singleton/KernelValuesType.java @@ -0,0 +1,94 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.openarchitectureware.types.singleton; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import org.eclipse.internal.xtend.type.baseimpl.OperationImpl; +import org.eclipse.xtend.expression.TypeSystem; +import org.eclipse.xtend.typesystem.Feature; +import org.eclipse.xtend.typesystem.Type; +import org.gmodel.G; +import org.gmodel.Set; +import org.gmodel.api.CoreSets; +import org.gmodel.openarchitectureware.types.AbstractType; + +public class KernelValuesType extends AbstractType { + + private static final String FULLY_QUALIFIED_NAME = createFullyQualifiedName(CoreSets.class); + + private final CoreSets delegate; + + private final RootSetType rootSetType; + + private final java.util.Set superTypes; + + public KernelValuesType(final TypeSystem typeSystem, final RootSetType rootSetType) { + super(typeSystem, FULLY_QUALIFIED_NAME); + this.delegate = G.coreSets; + this.rootSetType = rootSetType; + this.superTypes = Collections.singleton(getTypeSystem().getTypeType()); + } + + @Override + public java.util.Set getSuperTypes() { + return superTypes; + } + + @Override + public Feature[] getContributedFeatures() { + // expose all public fields as properties + final List features = new ArrayList(); + final Field[] fields = delegate.getClass().getFields(); + for (final Field field : fields) { + final Feature feature = createFeature(field); + features.add(feature); + } + return features.toArray(new Feature[features.size()]); + } + + private Feature createFeature(final Field field) { + final String name = field.getName(); + return new OperationImpl(this, name, rootSetType) { + @Override + protected Object evaluateInternal(final Object target, final Object[] params) { + return getFieldValue(field); + } + }; + } + + private Set getFieldValue(final Field field) { + try { + final Object object = field.get(delegate); + return (Set) object; + } catch (final Exception e) { + throw new IllegalStateException("Could not retrieve value from field '" + field + "'", e); + } + } +} diff --git a/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/openarchitectureware/types/singleton/RootSetType.java b/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/openarchitectureware/types/singleton/RootSetType.java new file mode 100644 index 0000000..ffa5eb7 --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware/src/org/gmodel/openarchitectureware/types/singleton/RootSetType.java @@ -0,0 +1,218 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.openarchitectureware.types.singleton; + +import java.util.Collections; + +import org.eclipse.internal.xtend.type.baseimpl.OperationImpl; +import org.eclipse.xtend.expression.TypeSystem; +import org.eclipse.xtend.typesystem.Feature; +import org.eclipse.xtend.typesystem.Type; +import org.gmodel.Identity; +import org.gmodel.Set; +import org.gmodel.openarchitectureware.types.AbstractSetType; +import org.gmodel.openarchitectureware.types.OrderedSetDecorator; + +/** + * Only used when creating a {@link Type} corresponding to the root {@link Set} type + */ +public final class RootSetType extends AbstractSetType { + + // Unfortunately the name of the type cannot end in "Set" due to a bug in XpandParser + private static final String FULLY_QUALIFIED_NAME = createFullyQualifiedName(Set.class) + "Type"; + + private final IdentityType identityType; + + /** + * Only used when creating a {@link Type} corresponding to + * the root {@link Set} type + */ + public RootSetType(final TypeSystem typeSystem, final IdentityType identityType) { + super(typeSystem, FULLY_QUALIFIED_NAME, true, Collections.singleton(typeSystem.getObjectType())); + this.identityType = identityType; + } + + @Override + public Feature[] getContributedFeatures() { + final Type booleanType = getTypeSystem().getBooleanType(); + final Type integerType = getTypeSystem().getIntegerType(); + return new Feature[] { + new OperationImpl(this, "identity", identityType) { + protected @Override Identity evaluateInternal(final Object target, final Object[] params) { + return ((Set) target).identity(); + } + }, + + /* Zero-parameter operations */ + new ZeroParameterSetOperation("flavor") { + public @Override Set evaluate(final Set target) { + return target.flavor(); + } + }, + new ZeroParameterSetOperation("variables") { + public @Override Set evaluate(final Set target) { + return target.variables(); + } + }, + new ZeroParameterSetOperation("values") { + public @Override Set evaluate(final Set target) { + return target.values(); + } + }, + new ZeroParameterSetOperation("container") { + public @Override Set evaluate(final Set target) { + return target.container(); + } + }, + new ZeroParameterSetOperation("category") { + public @Override Set evaluate(final Set target) { + return target.category(); + } + }, + new ZeroParameterSetOperation("filterLinks") { + public @Override Set evaluate(final Set target) { + return target.filterLinks(); + } + }, + new ZeroParameterSetOperation("filterInstances") { + public @Override Set evaluate(final Set target) { + return target.filterInstances(); + } + }, + //new ZeroParameterSetOperation("connectedInstances") { + // public @Override Set evaluate(final Set target) { + // return target.connectedInstances(); + // } + //}, + new ZeroParameterSetOperation("from") { + public @Override Set evaluate(final Set target) { + return target.from(); + } + }, + new ZeroParameterSetOperation("to") { + public @Override Set evaluate(final Set target) { + return target.to(); + } + }, + new ZeroParameterSetOperation("from") { + public @Override Set evaluate(final Set target) { + return target.from(); + } + }, + new ZeroParameterSetOperation("to") { + public @Override Set evaluate(final Set target) { + return target.to(); + } + }, + new ZeroParameterSetOperation("isExternal") { + public @Override Set evaluate(final Set target) { + return target.isExternal(); + } + }, + + /* One-parameter operations */ + // TODO prefix with "to"? + new OneParameterSetOperation("filter") { + public @Override Set evaluate(final Set target, final Set parameter) { + return target.filter(parameter); + } + }, + // TODO prefix with "to"? + new OneParameterSetOperation("filterFlavor") { + public @Override Set evaluate(final Set target, final Set parameter) { + return new OrderedSetDecorator(target.filterFlavor(parameter)); + } + }, + // TODO prefix with "to"? + new OneParameterSetOperation("localSuperSetOf") { + public @Override Set evaluate(final Set target, final Set parameter) { + return target.directSuperSetOf(parameter); + } + }, + // TODO prefix with "to"? + new OneParameterSetOperation("localRootSuperSetOf") { + public @Override Set evaluate(final Set target, final Set parameter) { + return target.localRootSuperSetOf(parameter); + } + }, + new OneParameterSetOperation("isLocalSuperSetOf") { + public @Override Set evaluate(final Set target, final Set parameter) { + return target.isLocalSuperSetOf(parameter); + } + }, + new OneParameterSetOperation("containsEdgeFromOrTo") { + public @Override Set evaluate(final Set target, final Set parameter) { + return target.containsEdgeTo(parameter); + } + }, + new OneParameterSetOperation("visibleArtifactsForSubGraph") { + public @Override Set evaluate(final Set target, final Set parameter) { + return target.visibleArtifactsForSubGraph(parameter); + } + }, + new OneParameterSetOperation("hasVisibilityOf") { + public @Override Set evaluate(final Set target, final Set parameter) { + return target.hasVisibilityOf(parameter); + } + }, + //new OneParameterSetOperation("containerCategory") { + // public @Override Set evaluate(final Set target, final Set parameter) { + // return target.metaVisibilityOf(parameter); + // } + //}, + + /* InstanceList operations */ + new OperationImpl(this, "contains", booleanType, this) { + protected @Override Boolean evaluateInternal(final Object target, final Object[] params) { + final Set set = (Set) target; + final Set parameter = (Set) params[0]; + return set.containsSemanticMatch(parameter); + } + }, + new OperationImpl(this, "containsAll", booleanType, this) { + protected @Override Boolean evaluateInternal(final Object target, final Object[] params) { + final Set set = (Set) target; + final Set parameter = (Set) params[0]; + return set.containsSemanticMatchesForAll(parameter); + } + }, + new OperationImpl(this, "isEmpty", booleanType) { + protected @Override Boolean evaluateInternal(final Object target, final Object[] params) { + final Set set = (Set) target; + return set.isEmpty(); + } + }, + + new OperationImpl(this, "size", integerType) { + protected @Override Integer evaluateInternal(final Object target, final Object[] params) { + final Set set = (Set) target; + return set.size(); + } + } + }; + } + +} diff --git a/src/trunk/org.gmodel.openarchitectureware/templates/org/gmodel/openarchitectureware/kernel.ext b/src/trunk/org.gmodel.openarchitectureware/templates/org/gmodel/openarchitectureware/kernel.ext new file mode 100644 index 0000000..3b52795 --- /dev/null +++ b/src/trunk/org.gmodel.openarchitectureware/templates/org/gmodel/openarchitectureware/kernel.ext @@ -0,0 +1,34 @@ +// Gmodel kernel elements +import org::gmodel::api; + +Object getKernelVertex() : + GLOBALVAR kernelVertex; + +Object getKernelEdgeEnd() : + GLOBALVAR kernelEdge_end; + +Object getKernelOrderedSet() : + GLOBALVAR kernelOrdered_set; + +Object getKernelLink() : + GLOBALVAR kernelLink; + +Object getKernelEdge() : + GLOBALVAR kernelEdge; + +Object getKernelSuperSetReference() : + GLOBALVAR kernelSuper_set_reference; + +Object getKernelEdgeTrace() : + GLOBALVAR kernelEdge_trace; + +Object getKernelVisibility() : + GLOBALVAR kernelVisibility; + +Object getKernelGraph() : + GLOBALVAR kernelGraph; + +// KernelValuesType + +KernelValues getKernelValues() : + (KernelValues) GLOBALVAR kernelValuesType; diff --git a/src/trunk/org.gmodel.preferences.ui/.classpath b/src/trunk/org.gmodel.preferences.ui/.classpath new file mode 100644 index 0000000..2d1a430 --- /dev/null +++ b/src/trunk/org.gmodel.preferences.ui/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/trunk/org.gmodel.preferences.ui/.project b/src/trunk/org.gmodel.preferences.ui/.project new file mode 100644 index 0000000..122455e --- /dev/null +++ b/src/trunk/org.gmodel.preferences.ui/.project @@ -0,0 +1,26 @@ + + + org.gmodel.preferences.ui + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/src/trunk/org.gmodel.preferences.ui/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.preferences.ui/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..8f6dc3d --- /dev/null +++ b/src/trunk/org.gmodel.preferences.ui/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,70 @@ +#Wed May 13 15:07:03 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.preferences.ui/.settings/org.eclipse.jdt.ui.prefs b/src/trunk/org.gmodel.preferences.ui/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000..d20f2b5 --- /dev/null +++ b/src/trunk/org.gmodel.preferences.ui/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,54 @@ +#Mon Jun 01 15:10:28 CEST 2009 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=false +sp_cleanup.format_source_code=false +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/src/trunk/org.gmodel.preferences.ui/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.preferences.ui/META-INF/MANIFEST.MF new file mode 100644 index 0000000..58ceec2 --- /dev/null +++ b/src/trunk/org.gmodel.preferences.ui/META-INF/MANIFEST.MF @@ -0,0 +1,13 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.preferences.ui +Bundle-SymbolicName: org.gmodel.preferences.ui;singleton:=true +Bundle-Version: 1.0.0 +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Require-Bundle: org.gmodel.connector.database.ui, + org.eclipse.ui, + org.gmodel.connector.database, + org.gmodel.preferences +Import-Package: org.eclipse.core.runtime, + org.eclipse.ui.plugin, + org.osgi.framework diff --git a/src/trunk/org.gmodel.preferences.ui/TODO.txt b/src/trunk/org.gmodel.preferences.ui/TODO.txt new file mode 100644 index 0000000..74d0847 --- /dev/null +++ b/src/trunk/org.gmodel.preferences.ui/TODO.txt @@ -0,0 +1,5 @@ +Store preferences +Mask for password in dialog +Secure storage of password +No sound for message dialog for testing connection + diff --git a/src/trunk/org.gmodel.preferences.ui/build.properties b/src/trunk/org.gmodel.preferences.ui/build.properties new file mode 100644 index 0000000..cc91072 --- /dev/null +++ b/src/trunk/org.gmodel.preferences.ui/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +bin.includes = META-INF/,\ + .,\ + plugin.xml diff --git a/src/trunk/org.gmodel.preferences.ui/plugin.xml b/src/trunk/org.gmodel.preferences.ui/plugin.xml new file mode 100644 index 0000000..409c6c3 --- /dev/null +++ b/src/trunk/org.gmodel.preferences.ui/plugin.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + diff --git a/src/trunk/org.gmodel.preferences.ui/pom.xml b/src/trunk/org.gmodel.preferences.ui/pom.xml new file mode 100644 index 0000000..3b76e5f --- /dev/null +++ b/src/trunk/org.gmodel.preferences.ui/pom.xml @@ -0,0 +1,10 @@ + + 4.0.0 + + org.gmodel + org.gmodel.eclipse + 1.0.0 + + org.gmodel.preferences.ui + eclipse-plugin + diff --git a/src/trunk/org.gmodel.preferences.ui/src/org/gmodel/preferences/ui/RepositoryPreferencePage.java b/src/trunk/org.gmodel.preferences.ui/src/org/gmodel/preferences/ui/RepositoryPreferencePage.java new file mode 100644 index 0000000..3880fe0 --- /dev/null +++ b/src/trunk/org.gmodel.preferences.ui/src/org/gmodel/preferences/ui/RepositoryPreferencePage.java @@ -0,0 +1,210 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Chul Kim + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.preferences.ui; + +import java.util.List; + +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.preference.BooleanFieldEditor; +import org.eclipse.jface.preference.FieldEditorPreferencePage; +import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.jface.preference.IntegerFieldEditor; +import org.eclipse.jface.preference.StringFieldEditor; +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.BusyIndicator; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchPreferencePage; +import org.gmodel.connector.database.DatabaseConnector; +import org.gmodel.connector.database.DatabaseConnectorSupport; +import org.gmodel.preferences.PreferencesPlugin; +import org.gmodel.preferences.RepositoryPreferences; +import org.gmodel.preferences.ui.editors.PasswordFieldEditor; +import org.gmodel.preferences.ui.editors.RadioGroupFieldEditorWithSelection; + +public class RepositoryPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { + + private RadioGroupFieldEditorWithSelection databaseTypeEditor; + private StringFieldEditor hostNameEditor; + private StringFieldEditor databaseNameEditor; + private StringFieldEditor usernameEditor; + private StringFieldEditor passwordEditor; + private IntegerFieldEditor portEditor; + private BooleanFieldEditor readOnlyEditor; + + private Button testConnectionButton; + + private final List connectors; + + public RepositoryPreferencePage() { + super(GRID); + connectors = DatabaseConnectorSupport.getAvailableConnectors(); + } + + @Override + public void createFieldEditors() { + final String[][] array = new String[connectors.size()][2]; + for (int i = 0; i < connectors.size(); i++) { + final String name = connectors.get(i).getName(); + array[i][0] = name; + array[i][1] = name; + } + + final Composite parent = getFieldEditorParent(); + + databaseTypeEditor = new RadioGroupFieldEditorWithSelection(RepositoryPreferences.DATABASE_TYPE, "Database &type", 1, array, parent); + databaseTypeEditor.getSelectedValue(); + addField(databaseTypeEditor); + + hostNameEditor = new StringFieldEditor(RepositoryPreferences.HOSTNAME, "&Hostname", parent); + addField(hostNameEditor); + + portEditor = new IntegerFieldEditor(RepositoryPreferences.PORT, "P&ort", parent); + portEditor.setStringValue("3306"); + portEditor.setValidRange(1025, 65536); + // TODO use default port supplied by connector + addField(portEditor); + + databaseNameEditor = new StringFieldEditor(RepositoryPreferences.DATABASE_NAME, "Database &name", parent); + addField(databaseNameEditor); + + usernameEditor = new StringFieldEditor(RepositoryPreferences.USERNAME, "&Username", parent); + addField(usernameEditor); + + passwordEditor = new PasswordFieldEditor(RepositoryPreferences.PASSWORD, "&Password", parent); + addField(passwordEditor); + + final Composite buttonGroup = new Composite(parent, SWT.NONE); + buttonGroup.setLayoutData(new GridData()); + final GridLayout buttonLayout = new GridLayout(); + buttonLayout.marginHeight = 0; + buttonLayout.marginWidth = 0; + buttonGroup.setLayout(buttonLayout); + + testConnectionButton = new Button(buttonGroup, SWT.NONE); + testConnectionButton.setText("&Test connection"); + testConnectionButton.setEnabled(true); + testConnectionButton.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(final SelectionEvent e) { + + final Display display = Display.getCurrent(); + final Runnable connectionTest = new Runnable() { + public void run() { + final String hostname = hostNameEditor.getStringValue(); + final int port = portEditor.getIntValue(); + final String databaseName = databaseNameEditor.getStringValue(); + final String username = usernameEditor.getStringValue(); + final String password = passwordEditor.getStringValue(); + final String connectorName = databaseTypeEditor.getSelectedValue(); + + final DatabaseConnector connector = findConnectorByName(connectorName); + + final String validConnection = DatabaseConnectorSupport.testConnection(connector, + hostname, + port, + databaseName, + username, + password); + + final String message; + if (validConnection == null) { + message = "The connection details are valid"; + } else { + message = "The connection details are invalid:\n" + validConnection; + } + MessageDialog.openInformation(display.getActiveShell(), "Test connection", message); + } + }; + + BusyIndicator.showWhile(display, connectionTest); + } + }); + final GridData testConnectionButtonData = new GridData(GridData.FILL_HORIZONTAL); + testConnectionButtonData.heightHint = convertVerticalDLUsToPixels(IDialogConstants.BUTTON_HEIGHT); + //removeTagData.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH); + testConnectionButton.setLayoutData(testConnectionButtonData); + + readOnlyEditor = new BooleanFieldEditor(RepositoryPreferences.READ_ONLY, "&Read Only Access",parent); + addField(readOnlyEditor); + + } + + public void init(final IWorkbench workbench) { + final IPreferenceStore store = PreferencesPlugin.getDefault().getPreferenceStore(); + setPreferenceStore(store); + } + + @Override + public boolean performOk() { + // storeValues(); + return super.performOk(); + } + + @Override + protected void performDefaults() { + super.performDefaults(); + } + + private void storeValues() { + final IPreferenceStore store = getPreferenceStore(); + store.setValue(RepositoryPreferences.DATABASE_TYPE, databaseTypeEditor.getSelectedValue()); + store.setValue(RepositoryPreferences.HOSTNAME, hostNameEditor.getStringValue()); + store.setValue(RepositoryPreferences.DATABASE_NAME, databaseNameEditor.getStringValue()); + store.setValue(RepositoryPreferences.USERNAME, usernameEditor.getStringValue()); + store.setValue(RepositoryPreferences.PASSWORD, passwordEditor.getStringValue()); + store.setValue(RepositoryPreferences.PORT, portEditor.getIntValue()); + } + + /* + private void initializeDefaults() { + final IPreferenceStore store = getPreferenceStore(); + checkBox1.setSelection(store + .getDefaultBoolean(IReadmeConstants.PRE_CHECK1)); + checkBox2.setSelection(store + .getDefaultBoolean(IReadmeConstants.PRE_CHECK2)); + checkBox3.setSelection(store + .getDefaultBoolean(IReadmeConstants.PRE_CHECK3)); + } + */ + + private DatabaseConnector findConnectorByName(final String connectorName) { + for (final DatabaseConnector connector : connectors) { + if (connector.getName().equals(connectorName)) { + return connector; + } + } + return null; + } +} diff --git a/src/trunk/org.gmodel.preferences.ui/src/org/gmodel/preferences/ui/RootPreferencesPage.java b/src/trunk/org.gmodel.preferences.ui/src/org/gmodel/preferences/ui/RootPreferencesPage.java new file mode 100644 index 0000000..dad03f6 --- /dev/null +++ b/src/trunk/org.gmodel.preferences.ui/src/org/gmodel/preferences/ui/RootPreferencesPage.java @@ -0,0 +1,40 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Chul Kim + * ***** END LICENSE BLOCK ***** */ +package org.gmodel.preferences.ui; + +import org.eclipse.jface.preference.FieldEditorPreferencePage; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchPreferencePage; + +public class RootPreferencesPage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { + + @Override + protected void createFieldEditors() { + } + + public void init(final IWorkbench workbench) { + } + +} diff --git a/src/trunk/org.gmodel.preferences.ui/src/org/gmodel/preferences/ui/editors/PasswordFieldEditor.java b/src/trunk/org.gmodel.preferences.ui/src/org/gmodel/preferences/ui/editors/PasswordFieldEditor.java new file mode 100644 index 0000000..72d1bc1 --- /dev/null +++ b/src/trunk/org.gmodel.preferences.ui/src/org/gmodel/preferences/ui/editors/PasswordFieldEditor.java @@ -0,0 +1,40 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Chul Kim + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.preferences.ui.editors; + +import org.eclipse.jface.preference.StringFieldEditor; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Text; + +public final class PasswordFieldEditor extends StringFieldEditor { + + public PasswordFieldEditor(final String name, final String labelText, final Composite parent) { + super(name, labelText, UNLIMITED, parent); + final Text textControl = getTextControl(); + textControl.setEchoChar('*'); + } +} diff --git a/src/trunk/org.gmodel.preferences.ui/src/org/gmodel/preferences/ui/editors/RadioGroupFieldEditorWithSelection.java b/src/trunk/org.gmodel.preferences.ui/src/org/gmodel/preferences/ui/editors/RadioGroupFieldEditorWithSelection.java new file mode 100644 index 0000000..2f00ab9 --- /dev/null +++ b/src/trunk/org.gmodel.preferences.ui/src/org/gmodel/preferences/ui/editors/RadioGroupFieldEditorWithSelection.java @@ -0,0 +1,59 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.preferences.ui.editors; + +import java.lang.reflect.Field; + +import org.eclipse.jface.preference.RadioGroupFieldEditor; +import org.eclipse.swt.widgets.Composite; + +/* + * Workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=129722 + */ +public class RadioGroupFieldEditorWithSelection extends RadioGroupFieldEditor { + + private Field valueField; + + public RadioGroupFieldEditorWithSelection(final String name, final String labelText, final int numColumns, + final String[][] labelAndValues, final Composite parent) { + super(name, labelText, numColumns, labelAndValues, parent, false); + try { + valueField = RadioGroupFieldEditor.class.getDeclaredField("value"); + valueField.setAccessible(true); + } catch (final Exception e) { + throw new IllegalStateException("Could not find field", e); + } + } + + public String getSelectedValue() { + try { + return (String) valueField.get(this); + } catch (final Exception e) { + throw new IllegalStateException("Could not retrieve field value", e); + } + } + +} diff --git a/src/trunk/org.gmodel.preferences/.classpath b/src/trunk/org.gmodel.preferences/.classpath new file mode 100644 index 0000000..2d1a430 --- /dev/null +++ b/src/trunk/org.gmodel.preferences/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/trunk/org.gmodel.preferences/.project b/src/trunk/org.gmodel.preferences/.project new file mode 100644 index 0000000..4a23e22 --- /dev/null +++ b/src/trunk/org.gmodel.preferences/.project @@ -0,0 +1,26 @@ + + + org.gmodel.preferences + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/src/trunk/org.gmodel.preferences/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.preferences/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..8f6dc3d --- /dev/null +++ b/src/trunk/org.gmodel.preferences/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,70 @@ +#Wed May 13 15:07:03 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.preferences/.settings/org.eclipse.jdt.ui.prefs b/src/trunk/org.gmodel.preferences/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000..d20f2b5 --- /dev/null +++ b/src/trunk/org.gmodel.preferences/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,54 @@ +#Mon Jun 01 15:10:28 CEST 2009 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=false +sp_cleanup.format_source_code=false +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/src/trunk/org.gmodel.preferences/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.preferences/META-INF/MANIFEST.MF new file mode 100644 index 0000000..9f2eef4 --- /dev/null +++ b/src/trunk/org.gmodel.preferences/META-INF/MANIFEST.MF @@ -0,0 +1,17 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.preferences +Bundle-SymbolicName: org.gmodel.preferences;singleton:=true +Bundle-Version: 1.0.0 +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Import-Package: org.eclipse.core.runtime, + org.eclipse.core.runtime.preferences, + org.eclipse.jface.preference, + org.eclipse.ui.plugin, + org.eclipse.ui.preferences, + org.osgi.framework, + org.osgi.service.prefs +Require-Bundle: org.eclipse.jface +Bundle-Activator: org.gmodel.preferences.PreferencesPlugin +Bundle-ActivationPolicy: lazy +Export-Package: org.gmodel.preferences diff --git a/src/trunk/org.gmodel.preferences/build.properties b/src/trunk/org.gmodel.preferences/build.properties new file mode 100644 index 0000000..cc91072 --- /dev/null +++ b/src/trunk/org.gmodel.preferences/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +bin.includes = META-INF/,\ + .,\ + plugin.xml diff --git a/src/trunk/org.gmodel.preferences/plugin.xml b/src/trunk/org.gmodel.preferences/plugin.xml new file mode 100644 index 0000000..d03ddd3 --- /dev/null +++ b/src/trunk/org.gmodel.preferences/plugin.xml @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/src/trunk/org.gmodel.preferences/pom.xml b/src/trunk/org.gmodel.preferences/pom.xml new file mode 100644 index 0000000..5df6d8f --- /dev/null +++ b/src/trunk/org.gmodel.preferences/pom.xml @@ -0,0 +1,10 @@ + + 4.0.0 + + org.gmodel + org.gmodel.eclipse + 1.0.0 + + org.gmodel.preferences + eclipse-plugin + diff --git a/src/trunk/org.gmodel.preferences/src/org/gmodel/preferences/GmodelDemoPreferencesInitializer.java b/src/trunk/org.gmodel.preferences/src/org/gmodel/preferences/GmodelDemoPreferencesInitializer.java new file mode 100644 index 0000000..7420d41 --- /dev/null +++ b/src/trunk/org.gmodel.preferences/src/org/gmodel/preferences/GmodelDemoPreferencesInitializer.java @@ -0,0 +1,21 @@ +package org.gmodel.preferences; + +import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; +import org.eclipse.jface.preference.IPreferenceStore; + +// FIXME move to independent plugin +public class GmodelDemoPreferencesInitializer extends AbstractPreferenceInitializer { + + @Override + public void initializeDefaultPreferences() { + final IPreferenceStore store = PreferencesPlugin.getDefault().getPreferenceStore(); + store.setDefault(RepositoryPreferences.DATABASE_TYPE, "MySQL"); + store.setDefault(RepositoryPreferences.HOSTNAME, "gmodel.cw7d0ugpsjzw.us-east-1.rds.amazonaws.com/demo"); + store.setDefault(RepositoryPreferences.DATABASE_NAME, "demo"); + store.setDefault(RepositoryPreferences.PORT, "3306"); + store.setDefault(RepositoryPreferences.USERNAME, "gmodeldemo"); + store.setDefault(RepositoryPreferences.PASSWORD, "pyXvFCxxEuLGwAvX"); + store.setDefault(RepositoryPreferences.READ_ONLY, true); + } + +} diff --git a/src/trunk/org.gmodel.preferences/src/org/gmodel/preferences/PreferencesPlugin.java b/src/trunk/org.gmodel.preferences/src/org/gmodel/preferences/PreferencesPlugin.java new file mode 100644 index 0000000..98bc6c7 --- /dev/null +++ b/src/trunk/org.gmodel.preferences/src/org/gmodel/preferences/PreferencesPlugin.java @@ -0,0 +1,67 @@ +package org.gmodel.preferences; + +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.osgi.framework.BundleContext; + +public class PreferencesPlugin extends AbstractUIPlugin { + + // The plug-in ID + public static final String PLUGIN_ID = "org.gmodel.preferences"; + + // The shared instance + private static PreferencesPlugin plugin; + + @Override + public void start(final BundleContext context) throws Exception { + super.start(context); + plugin = this; + } + + @Override + public void stop(final BundleContext context) throws Exception { + plugin = null; + super.stop(context); + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public static PreferencesPlugin getDefault() { + return plugin; + } + + private String getStringPreferenceValue(final String name) { + return getPreferenceStore().getString(name); + } + + public String getPassword() { + return getStringPreferenceValue(RepositoryPreferences.PASSWORD); + } + + public String getUsername() { + return getStringPreferenceValue(RepositoryPreferences.USERNAME); + } + + public String getDatabaseName() { + return getStringPreferenceValue(RepositoryPreferences.DATABASE_NAME); + } + + public String getDatabaseType() { + return getStringPreferenceValue(RepositoryPreferences.DATABASE_TYPE); + } + + public String getHostname() { + return getStringPreferenceValue(RepositoryPreferences.HOSTNAME); + } + + public int getPort() { + return getPreferenceStore().getInt(RepositoryPreferences.PORT); + } + + public boolean isReadOnly() { + return getPreferenceStore().getBoolean(RepositoryPreferences.READ_ONLY); + } + +} \ No newline at end of file diff --git a/src/trunk/org.gmodel.preferences/src/org/gmodel/preferences/RepositoryPreferences.java b/src/trunk/org.gmodel.preferences/src/org/gmodel/preferences/RepositoryPreferences.java new file mode 100644 index 0000000..a6b1d69 --- /dev/null +++ b/src/trunk/org.gmodel.preferences/src/org/gmodel/preferences/RepositoryPreferences.java @@ -0,0 +1,17 @@ +package org.gmodel.preferences; + +public interface RepositoryPreferences { + String PASSWORD = "PASSWORD"; + + String USERNAME = "USERNAME"; + + String DATABASE_NAME = "DATABASE_NAME"; + + String HOSTNAME = "HOSTNAME"; + + String DATABASE_TYPE = "DATABASE_TYPE"; + + String PORT = "PORT"; + + String READ_ONLY = "READ_ONLY"; +} diff --git a/src/trunk/org.gmodel.repository.client.mediator/.classpath b/src/trunk/org.gmodel.repository.client.mediator/.classpath new file mode 100644 index 0000000..d5c1aca --- /dev/null +++ b/src/trunk/org.gmodel.repository.client.mediator/.classpath @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/trunk/org.gmodel.repository.client.mediator/.project b/src/trunk/org.gmodel.repository.client.mediator/.project new file mode 100644 index 0000000..9f787aa --- /dev/null +++ b/src/trunk/org.gmodel.repository.client.mediator/.project @@ -0,0 +1,26 @@ + + + org.gmodel.repository.client.mediator + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + \ No newline at end of file diff --git a/src/trunk/org.gmodel.repository.client.mediator/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.repository.client.mediator/META-INF/MANIFEST.MF new file mode 100644 index 0000000..db4eb85 --- /dev/null +++ b/src/trunk/org.gmodel.repository.client.mediator/META-INF/MANIFEST.MF @@ -0,0 +1,7 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.repository.client.mediator +Bundle-SymbolicName: org.gmodel.repository.client.mediator; singleton:=true +Bundle-Version: 0.0.0 +Bundle-RequiredExecutionEnvironment: J2SE-1.5 + diff --git a/src/trunk/org.gmodel.repository.client.mediator/build.properties b/src/trunk/org.gmodel.repository.client.mediator/build.properties new file mode 100644 index 0000000..e82731d --- /dev/null +++ b/src/trunk/org.gmodel.repository.client.mediator/build.properties @@ -0,0 +1,3 @@ +source.. = src/ +bin.includes = META-INF/,\ + . \ No newline at end of file diff --git a/src/trunk/org.gmodel.repository.client/.classpath b/src/trunk/org.gmodel.repository.client/.classpath new file mode 100644 index 0000000..d56dc6b --- /dev/null +++ b/src/trunk/org.gmodel.repository.client/.classpath @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/trunk/org.gmodel.repository.client/.project b/src/trunk/org.gmodel.repository.client/.project new file mode 100644 index 0000000..c3a3963 --- /dev/null +++ b/src/trunk/org.gmodel.repository.client/.project @@ -0,0 +1,26 @@ + + + org.gmodel.repository.client + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/src/trunk/org.gmodel.repository.client/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.repository.client/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..8f6dc3d --- /dev/null +++ b/src/trunk/org.gmodel.repository.client/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,70 @@ +#Wed May 13 15:07:03 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.repository.client/.settings/org.eclipse.jdt.ui.prefs b/src/trunk/org.gmodel.repository.client/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000..131d04e --- /dev/null +++ b/src/trunk/org.gmodel.repository.client/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,54 @@ +#Sun Feb 28 11:38:32 CET 2010 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=false +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/src/trunk/org.gmodel.repository.client/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.repository.client/META-INF/MANIFEST.MF new file mode 100644 index 0000000..df61879 --- /dev/null +++ b/src/trunk/org.gmodel.repository.client/META-INF/MANIFEST.MF @@ -0,0 +1,22 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.repository.client +Bundle-SymbolicName: org.gmodel.repository.client;singleton:=true +Bundle-Version: 1.0.0 +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Require-Bundle: org.gmodel.statistics;bundle-version="1.0.0", + org.gmodel.connector;bundle-version="1.0.0", + org.gmodel.serialization;bundle-version="1.0.0", + org.gmodel.kernel;bundle-version="1.0.0", + org.gmodel.objectpool;bundle-version="1.0.0", + org.gmodel.repository;bundle-version="1.0.0" +Export-Package: org.gmodel.repository.client, + org.gmodel.repository.client.connector, + org.gmodel.repository.client.mediator, + org.gmodel.repository.client.server +Bundle-ClassPath: lib/commons-collections-3.2.1.jar, + lib/jetlang-0.2.1.jar, + lib/rabbitmq-client.jar, + ., + lib/commons-cli-1.1.jar, + lib/commons-io-1.4.jar diff --git a/src/trunk/org.gmodel.repository.client/build.properties b/src/trunk/org.gmodel.repository.client/build.properties new file mode 100644 index 0000000..57dc30a --- /dev/null +++ b/src/trunk/org.gmodel.repository.client/build.properties @@ -0,0 +1,11 @@ +source.. = src/main/java +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + lib/,\ + lib/commons-collections-3.2.1.jar,\ + lib/jetlang-0.2.1.jar,\ + lib/rabbitmq-client.jar,\ + lib/commons-cli-1.1.jar,\ + lib/commons-io-1.4.jar + diff --git a/src/trunk/org.gmodel.repository.client/lib/commons-cli-1.1.jar b/src/trunk/org.gmodel.repository.client/lib/commons-cli-1.1.jar new file mode 100644 index 0000000..e633afb Binary files /dev/null and b/src/trunk/org.gmodel.repository.client/lib/commons-cli-1.1.jar differ diff --git a/src/trunk/org.gmodel.repository.client/lib/commons-collections-3.2.1.jar b/src/trunk/org.gmodel.repository.client/lib/commons-collections-3.2.1.jar new file mode 100644 index 0000000..c35fa1f Binary files /dev/null and b/src/trunk/org.gmodel.repository.client/lib/commons-collections-3.2.1.jar differ diff --git a/src/trunk/org.gmodel.repository.client/lib/commons-io-1.4.jar b/src/trunk/org.gmodel.repository.client/lib/commons-io-1.4.jar new file mode 100644 index 0000000..133dc6c Binary files /dev/null and b/src/trunk/org.gmodel.repository.client/lib/commons-io-1.4.jar differ diff --git a/src/trunk/org.gmodel.repository.client/lib/jetlang-0.2.1.jar b/src/trunk/org.gmodel.repository.client/lib/jetlang-0.2.1.jar new file mode 100644 index 0000000..194ac15 Binary files /dev/null and b/src/trunk/org.gmodel.repository.client/lib/jetlang-0.2.1.jar differ diff --git a/src/trunk/org.gmodel.repository.client/lib/rabbitmq-client.jar b/src/trunk/org.gmodel.repository.client/lib/rabbitmq-client.jar new file mode 100644 index 0000000..d91143d Binary files /dev/null and b/src/trunk/org.gmodel.repository.client/lib/rabbitmq-client.jar differ diff --git a/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/ChangesetNode.java b/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/ChangesetNode.java new file mode 100644 index 0000000..ce7fbae --- /dev/null +++ b/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/ChangesetNode.java @@ -0,0 +1,63 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.repository.client; + +import java.util.ArrayList; +import java.util.List; + +import org.gmodel.Set; + +public class ChangesetNode { + + private final Set set; + + private final ChangesetNode parentNode; + + private final List childNodes; + + public ChangesetNode(final ChangesetNode parentNode, final Set set) { + this.parentNode = parentNode; + this.set = set; + childNodes = new ArrayList(); + } + + protected Set getSet() { + return set; + } + + protected ChangesetNode getParentNode() { + return parentNode; + } + + protected List getChildNodes() { + return childNodes; + } + + public void addChildNode(final ChangesetNode node) { + childNodes.add(node); + } + +} diff --git a/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/RepositoryClient.java b/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/RepositoryClient.java new file mode 100644 index 0000000..0229b83 --- /dev/null +++ b/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/RepositoryClient.java @@ -0,0 +1,54 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.repository.client; + +import java.util.UUID; + +import org.gmodel.connector.Component; +import org.gmodel.serialization.container.ArtefactContainer; + +public interface RepositoryClient extends Component { + + public static UUID CLIENT_ID = UUID.randomUUID(); + + public static int INFINITE_DEPTH = -1; + + /** + * Retrieve artifacts that confirms to the given constraints + * @param container + * @return + * @throws UnsupportedOperationException + */ + public ArtefactContainer get(ArtefactContainer artifact)throws UnsupportedOperationException ; + + /** + * Persist the given artifacts + * @param container + * @throws UnsupportedOperationException + */ + public void put(ArtefactContainer artifact) throws UnsupportedOperationException; + +} diff --git a/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/RepositoryClientImpl.java b/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/RepositoryClientImpl.java new file mode 100644 index 0000000..e56967b --- /dev/null +++ b/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/RepositoryClientImpl.java @@ -0,0 +1,339 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla private License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.repository.client; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.UUID; +import java.util.concurrent.TimeUnit; + +import org.gmodel.G; +import org.gmodel.Set; +import org.gmodel.objectpool.ObjectPool; +import org.gmodel.objectpool.ObjectPoolArtifact; +import org.gmodel.repository.Repository; +import org.gmodel.repository.mediator.RepositoryMediator; +import org.gmodel.serialization.container.ArtefactContainer; +import org.gmodel.serialization.container.ArtefactContainer.Content; +import org.gmodel.serialization.container.ArtefactContainer.SearchResult; +import org.gmodel.serialization.container.ContainerTypeMapper; +import org.gmodel.serialization.container.ObjectFactory; +import org.gmodel.serialization.container.ObjectFactoryHolder; +import org.gmodel.serialization.container.SearchResultType; +import org.gmodel.serialization.serializer.ProtocolType; +import org.gmodel.serialization.serializer.SerializationType; +import org.gmodel.serialization.serializer.Serializer; +import org.gmodel.serialization.serializer.SerializerHolder; +import org.gmodel.statistics.Timer; + +public class RepositoryClientImpl implements RepositoryClient { + + static class RepositoryClientHolder { + private static final RepositoryClient CLIENT = new RepositoryClientImpl(); + } + + public static RepositoryClient getInstance() { + return RepositoryClientHolder.CLIENT; + } + + final ObjectPool objectPool; + + private static final Serializer serializer = SerializerHolder.getGmodelInstanceSerializer(SerializationType.XML); + + private RepositoryClientImpl() { + objectPool = RepositoryClientObjectPool.getObjectPool(); + } + + private void buildChangesetNode(final Map instanceMap, final ChangesetNode node, final Map skipMap) { + final Set instance = node.getSet(); + skipMap.put(instance.identity().uniqueRepresentationReference(), instance); + final List containedInstances = findContentNodes(instanceMap, instance.identity().uniqueRepresentationReference()); + for (final Set i : containedInstances) { + final ChangesetNode childNode = new ChangesetNode(node, i); + node.addChildNode(childNode); + buildChangesetNode(instanceMap, childNode,skipMap); + } + } + + private List fetchInstancesFromObjectPool(final List containementTreeUUIDs, final Map treeInstances) { + final List nonObjectPoolUUIDs = new ArrayList(); + for (final String uuid : containementTreeUUIDs) { + if (objectPool.hasArtifact(uuid)) { + treeInstances.put(uuid.toString(), (String)objectPool.getArtifact(uuid).getContent()); + } else { + nonObjectPoolUUIDs.add(uuid); + } + } + return nonObjectPoolUUIDs; + } + + private List findContentNodes(final Map instanceMap, final UUID containerUUID) { + final List contentNodes = new ArrayList(); + for (final Entry entry : instanceMap.entrySet()) { + final Set i = entry.getValue(); + if (i.container() != null && i.container().identity().uniqueRepresentationReference().equals(containerUUID)) { + contentNodes.add(i); + } + } + return contentNodes; + } + + public ArtefactContainer get(final ArtefactContainer artifact) throws UnsupportedOperationException { + final SerializationType type = getArtefactContainerType(artifact.getContentType()); + final ObjectFactory containerFactory = ObjectFactoryHolder.getInstance(); + ArtefactContainer resultsContainer = containerFactory.createArtefactContainer(); + + switch (type) { + case CONTAINMENT_TREE: + resultsContainer = retrieveContainmentTree(artifact.getContent().get(0).getContent(), + Integer.parseInt(artifact.getContent().get(1).getContent())); + resultsContainer.setContentType(SerializationType.CONTAINMENT_TREE.name()); + break; + case DEPENDENT_INSTANCES: + final List dependentUUIDs = getAllDependentInstanceUUIDsOf(artifact.getContent().get(0).getContent()); + resultsContainer.setContentType(SerializationType.DEPENDENT_INSTANCES.name()); + for (final String uuid : dependentUUIDs) { + final Content content = containerFactory.createArtefactContainerContent(); + content.setContent(uuid); + resultsContainer.getContent().add(content); + } + break; + case SEARCH_ARGUMENTS: + final List searchResults = searchInstanceByName(artifact.getContent().get(0).getContent()); + resultsContainer.setContentType(SerializationType.SEARCH_ARGUMENTS.name()); + final Iterator itr = searchResults.iterator(); + while(itr.hasNext()) { + final SearchResultType res = itr.next(); + final SearchResult searchRes = ObjectFactoryHolder.getInstance().createArtefactContainerSearchResult(); + searchRes.setContainerIdentity(res.getContainerIdentity()); + searchRes.setInstanceIdentity(res.getInstanceIdentity()); + searchRes.setMetaInstanceIdentity(res.getMetaInstanceIdentity()); + resultsContainer.getSearchResult().add(searchRes); + } + break; + default: throw new UnsupportedOperationException("This method is not yet supported"); + } + return resultsContainer; + } + + private List getAllDependentInstanceUUIDsOf(final String uuid) { + final Repository repository = RepositoryMediator.getInstance().getComponent(ProtocolType.REPOSITORY_ACCESS); + final ArtefactContainer artifactContainer = ContainerTypeMapper.mapArugmentToArtefactContainerContent(uuid, SerializationType.DEPENDENT_INSTANCE_UUIDS); + final ArtefactContainer resultsContainer = repository.get(artifactContainer); + final List results = ContainerTypeMapper.mapContentsToStringList(resultsContainer); + return results; + } + + private SerializationType getArtefactContainerType( + final String contentType) { + try { + final SerializationType type = SerializationType.valueOf(contentType); + return type; + } catch (final IllegalArgumentException ex){ + throw new UnsupportedOperationException("This type is not supported", ex); + } + } + + private List getContentList(final List contents) { + final List contentList = new ArrayList(); + for (final Content c : contents) { + contentList.add(c.getContent()); + } + return contentList; + } + + public String getName() { + return "repository client"; //TODO: to be replaced by the name of a corresponding Gmodel instance + } + + public ObjectPool getPool() { + return this.objectPool; + } + + private void persistArtifacts(final List artifacts) { + final Repository repository = RepositoryMediator.getInstance().getComponent(ProtocolType.REPOSITORY_ACCESS); + final ObjectFactory facto = ObjectFactoryHolder.getInstance(); + repository.put( + ContainerTypeMapper.mapArugmentListToArtefactContainerContent + (artifacts, SerializationType.ARTIFACT_PERSISTENCE)); + } + + private void persistChangeset() { + final Set changeSet = org.gmodel.api.Query.changedSets(); + if (changeSet != null && changeSet.size() > 0) { + final Map instanceMap = new HashMap(); + final Map containerMap = new HashMap(); + final Map skipMap = new HashMap(); + final List nodePaths = new ArrayList(); + final Iterator setItr = changeSet.iterator(); + while(setItr.hasNext()) { + final Set changeSetInstance = setItr.next(); + instanceMap.put(changeSetInstance.identity().uniqueRepresentationReference(), changeSetInstance); + if (changeSetInstance.container() != null) { + containerMap.put(changeSetInstance.container().identity().uniqueRepresentationReference(), changeSetInstance); + } + } + for (final Entry entry : instanceMap.entrySet()) { + if(!skipMap.containsKey(entry.getKey())) { + final Set changesetInstance = entry.getValue(); + if(containerMap.containsKey(changesetInstance.identity().uniqueRepresentationReference())) { + //Check for cases where changesetInstance is a middle node + if (changesetInstance.container() != null && + !instanceMap.containsKey(changesetInstance.container().identity().uniqueRepresentationReference())) { + final ChangesetNode node = new ChangesetNode(null, changesetInstance); + buildChangesetNode(instanceMap, node,skipMap); + nodePaths.add(node); + } + } else { + //Got its container in the map? if not put it the path list + if (changesetInstance.container() != null && + !instanceMap.containsKey(changesetInstance.container().identity().uniqueRepresentationReference())) { + nodePaths.add(new ChangesetNode(null, changesetInstance)); + } + } + } + } + //Serialize nodepaths and flick them to the repository + final Serializer serializer = SerializerHolder.getGmodelInstanceSerializer(SerializationType.XML); + final List serializedInstances = new ArrayList(); + for (final ChangesetNode node : nodePaths) { + serializeNodePath(serializer, node, serializedInstances); + } + persistArtifacts(serializedInstances); + } + //persistObjectPool(); + } + + private void persistInstancesInMemory() { + final Serializer serializer = SerializerHolder.getGmodelInstanceSerializer(SerializationType.XML); + final List serializedInstances = serializer.serializeAllInstancesInMemory(); + persistArtifacts(serializedInstances); + } + + private void persistObjectPool() { + RepositoryClientObjectPool.saveObjectPool(); + } + + public void put(final ArtefactContainer artifact) throws UnsupportedOperationException { + final SerializationType type = getArtefactContainerType(artifact.getContentType()); + + switch (type) { + case CHANGESET_PERSISTENCE: + persistChangeset(); + break; + case IN_MEMORY_PERSISTENCE: + persistInstancesInMemory(); + break; + case ARTIFACT_PERSISTENCE: + final List contents = getContentList(artifact.getContent()); + persistArtifacts(contents); + break; + case OBJECT_POOL_PERSISTENCE: + persistObjectPool(); + break; + default: throw new UnsupportedOperationException("This method is not yet supported"); + } + } + + private ArtefactContainer retrieveContainmentTree(final String uuid, final int depth) { + return retrieveContainmentTreeArtifacts(uuid, depth, true); + } + + private ArtefactContainer retrieveContainmentTreeArtifacts(final String uuid, final int depth, final boolean isRootTree) { + final String timerId = "fetching a containment tree"; + Timer.getInstance().start(timerId); + final Map serializedTreeInstances = new HashMap(); + final Repository repository = RepositoryMediator.getInstance().getComponent(ProtocolType.REPOSITORY_ACCESS); + final ObjectFactory facto = ObjectFactoryHolder.getInstance(); + final ArtefactContainer artifactContainer = facto.createArtefactContainer(); + final Content uuidRetRequest = facto.createArtefactContainerContent(); + artifactContainer.setContentType(SerializationType.CONTAINMENT_TREE_UUIDS_RETRIEVAL.name()); + uuidRetRequest.setContent(uuid); + artifactContainer.getContent().add(uuidRetRequest); + //Send a get request (CONTAINMENT_TREE_UUIDS_RETRIEVAL) to the repository access component + final ArtefactContainer treeUUIDContainer = repository.get(artifactContainer); + for (final Content c : treeUUIDContainer.getContent()) { + c.getContent(); + } + final List containementTreeUUIDs = ContainerTypeMapper.mapContentToStringList(treeUUIDContainer); + System.err.println("Number containemnt tree members that are part of "+uuid+": "+containementTreeUUIDs.size()); + //find those instances that are in the object pool and fetch those are not from the repository + final List uuidsToFetchFromRepository = containementTreeUUIDs;//fetchInstancesFromObjectPool(containementTreeUUIDs, serializedTreeInstances); + System.err.println("# fetched from the objectpool "+serializedTreeInstances.size()); + final ArtefactContainer requestContainer = ObjectFactoryHolder.getInstance().createArtefactContainer(); + if (!uuidsToFetchFromRepository.isEmpty()) { + requestContainer.setContentType(SerializationType.ARTIFACT_RETRIEVAL.name()); + ContainerTypeMapper.mapToContentList(requestContainer, uuidsToFetchFromRepository); + final ArtefactContainer responseContainer = repository.get(requestContainer); + System.err.println("Total # fetched: "+responseContainer.getContent().size()); + final long timeTaken = Timer.getInstance().time(timerId, TimeUnit.MILLISECONDS); + System.err.println("Time taken to fetch a containment tree (ms): "+timeTaken); + return responseContainer; + } else { + return requestContainer; + } + } + + private List searchInstanceByName(final String name) { + final Repository repository = RepositoryMediator.getInstance().getComponent(ProtocolType.REPOSITORY_ACCESS); + final ObjectFactory facto = ObjectFactoryHolder.getInstance(); + final ArtefactContainer artifactContainer = facto.createArtefactContainer(); + final List searchResults = new ArrayList(); + artifactContainer.setContentType(SerializationType.SEARCH_ARGUMENTS.name()); + final Content searchArgument = facto.createArtefactContainerContent(); + searchArgument.setContent(name); + artifactContainer.getContent().add(searchArgument); + final ArtefactContainer reponseContaner = repository.get(artifactContainer); + for (final SearchResult s : reponseContaner.getSearchResult()) { + searchResults.add(s); + } + return searchResults; + } + + private void serializeNodePath(final Serializer serializer, final ChangesetNode node, final List serializedInstances) { + final Set set = node.getSet(); + if (set.flavor().isEqualTo(G.coreGraphs.vertex)) { + final String content = serializer.serializeInstance(set, false).getContent(); + serializedInstances.add(content); + final UUID uuid = node.getSet().identity().uniqueRepresentationReference(); + objectPool.addArtifact(uuid.toString(), + new ObjectPoolArtifact(uuid, G.coreGraphs.graph.identity().uniqueRepresentationReference(), + content)); + for (final ChangesetNode childNode : node.getChildNodes()){ + serializeNodePath(serializer, childNode, serializedInstances); + } + } + } + + public ProtocolType getProtocolType() { + return ProtocolType.REPOSITORY_CLIENT; + } + +} diff --git a/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/RepositoryClientObjectPool.java b/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/RepositoryClientObjectPool.java new file mode 100644 index 0000000..6035ff2 --- /dev/null +++ b/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/RepositoryClientObjectPool.java @@ -0,0 +1,106 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.repository.client; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutput; +import java.io.ObjectOutputStream; + +import org.gmodel.objectpool.ObjectPool; +import org.gmodel.objectpool.PersonalObjectPool; + +public class RepositoryClientObjectPool { + + private static final String SERIALIZED_FILE_NAME = "objpool.dat"; + + private static final String SERIALIZATION_FILE = System.getProperty("user.dir")+"/"+SERIALIZED_FILE_NAME; + + private static class ObjectPoolHolder { + private static boolean isInitialized = false; + public static final ObjectPool POOL = setupObjectPool(); + + private static ObjectPool setupObjectPool() { + ObjectPool pool; + if (!isInitialized) { + try { + pool = loadObjectPool(); + } catch (final FileNotFoundException e) { + pool = new PersonalObjectPool(RepositoryClient.CLIENT_ID); + } catch (final IOException e) { + pool = new PersonalObjectPool(RepositoryClient.CLIENT_ID); + } catch (final ClassNotFoundException e) { + pool = new PersonalObjectPool(RepositoryClient.CLIENT_ID); + } + } else { + pool = new PersonalObjectPool(RepositoryClient.CLIENT_ID); + } + isInitialized = true; + return pool; + } + } + + protected static ObjectPool getObjectPool() { + return ObjectPoolHolder.POOL; + } + + private static ObjectPool loadObjectPool() throws FileNotFoundException, IOException, ClassNotFoundException{ + final File objectPoolFile = new File(SERIALIZATION_FILE); + ObjectInputStream in = null; + in = new ObjectInputStream(new FileInputStream(objectPoolFile)); + final ObjectPool pool = (ObjectPool) in.readObject(); + in.close(); + return pool; + } + + protected static void saveObjectPool() throws IllegalStateException { + try { + final File f = new File(SERIALIZATION_FILE); + if (f.exists()) { + f.delete(); + } + final ObjectOutput out = new ObjectOutputStream(new FileOutputStream(SERIALIZATION_FILE)); + out.writeObject(ObjectPoolHolder.POOL); + out.close(); + } catch (final FileNotFoundException ex) { + throw new IllegalStateException("Object pool serialization failed", ex); + } catch (final IOException ex) { + throw new IllegalStateException("Object pool serialization failed", ex); + } + } + + protected static void removeSerializedObjectPool() throws IllegalStateException { + final File objectPoolFile = new File(SERIALIZATION_FILE); + if (objectPoolFile.exists()) { + objectPoolFile.delete(); + } + } + +} diff --git a/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/connector/RepositoryClientConnector.java b/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/connector/RepositoryClientConnector.java new file mode 100644 index 0000000..e9e1ca0 --- /dev/null +++ b/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/connector/RepositoryClientConnector.java @@ -0,0 +1,111 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.repository.client.connector; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import org.gmodel.repository.client.RepositoryClient; +import org.gmodel.repository.client.server.ConfigValues; +import org.gmodel.serialization.container.ArtefactContainer; +import org.gmodel.serialization.serializer.ProtocolType; +import org.gmodel.serialization.serializer.SerializationType; +import org.gmodel.serialization.serializer.Serializer; +import org.gmodel.serialization.serializer.SerializerHolder; + +import com.rabbitmq.client.Channel; +import com.rabbitmq.client.Connection; +import com.rabbitmq.client.ConnectionFactory; +import com.rabbitmq.client.RpcClient; +import com.rabbitmq.client.ShutdownSignalException; + +public class RepositoryClientConnector implements RepositoryClient { + + private RpcClient clientService; + + private static class RepositoryClientConnectorHolder { + public static final RepositoryClientConnector CONNECTOR = new RepositoryClientConnector(); + } + + private RepositoryClientConnector() { + initClient(); + } + + private void initClient() { + final ConnectionFactory cfconn = new ConnectionFactory(); + cfconn.setHost(ConfigValues.getString("RepositoryClientServer.HOST_NAME")); + cfconn.setPort(Integer.parseInt(ConfigValues.getString("RepositoryClientServer.PORT"))); + cfconn.setVirtualHost(ConfigValues.getString("RepositoryClientServer.VHOST_NAME")); + cfconn.setUsername(ConfigValues.getString("RepositoryClientServer.USER_NAME")); + cfconn.setPassword(ConfigValues.getString("RepositoryClientServer.PW")); + Connection conn; + try { + conn = cfconn.newConnection(); + final Channel ch = conn.createChannel(); + clientService = new RpcClient(ch, "", ConfigValues.getString("RepositoryClientServer.QUEUE")); + } catch (final IOException ex) { + throw new IllegalStateException("Client set up is failed",ex); + } + } + + public static RepositoryClient getComponent() { + return RepositoryClientConnectorHolder.CONNECTOR; + } + + public ArtefactContainer get(final ArtefactContainer artifact) throws UnsupportedOperationException { + final Map artifactsToGet = new HashMap(); + Map returnedArtifacts = null; + final Serializer sz = SerializerHolder.getGmodelInstanceSerializer(SerializationType.XML); + artifactsToGet.put(artifact.getContentType(), sz.serializeContainer(artifact)); + try { + returnedArtifacts = clientService.mapCall(artifactsToGet); + // if (container.getContentType().equals(SerializationType.CONTAINMENT_TREE.name())) { + // new ArtifactContainerContentMapper() + // .recreateInstancesFromArtifactMap(returnedArtifacts); + // } + } catch (final ShutdownSignalException ex) { + throw new UnsupportedOperationException("Service invocation is failed",ex); + } catch (final IOException ex) { + throw new UnsupportedOperationException("Service invocation is failed",ex); + } + final String serializedResponse = returnedArtifacts.entrySet().iterator().next().getValue().toString(); + return sz.unmarshallContainer(serializedResponse); + } + + public void put(final ArtefactContainer artifact) throws UnsupportedOperationException { + get(artifact); + } + + public String getName() { + return CLIENT_ID.toString(); + } + + public ProtocolType getProtocolType() { + return ProtocolType.REPOSITORY_CLIENT; + } + +} diff --git a/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/mediator/RepositoryClientMediator.java b/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/mediator/RepositoryClientMediator.java new file mode 100644 index 0000000..2e411f2 --- /dev/null +++ b/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/mediator/RepositoryClientMediator.java @@ -0,0 +1,64 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.repository.client.mediator; + +import org.gmodel.repository.client.RepositoryClient; +import org.gmodel.repository.client.RepositoryClientImpl; +import org.gmodel.repository.client.connector.RepositoryClientConnector; +import org.gmodel.repository.client.server.ConfigValues; +import org.gmodel.serialization.serializer.ProtocolType; + +public class RepositoryClientMediator { + + private static class MediatorHolder { + public static final RepositoryClientMediator MEDIATOR = new RepositoryClientMediator(); + } + + private RepositoryClientMediator() { + } + + public static RepositoryClientMediator getInstance() { + return MediatorHolder.MEDIATOR; + } + + public RepositoryClient getComponent(final ProtocolType type)throws UnsupportedOperationException { + if (!type.equals(ProtocolType.REPOSITORY_CLIENT)) { + throw new UnsupportedOperationException("Not supported protocol"); + } + if (isLocallyDeployed()) { + return RepositoryClientImpl.getInstance(); + } else { + return RepositoryClientConnector.getComponent(); //pass back an interface that send artefacts over AMQP + } + } + + private boolean isLocallyDeployed() { + // TODO remove the need for this system property + return Boolean.valueOf(ConfigValues.getString("RepositoryClientServer.IS_LOCALLY_DEPLOYED")) || + Boolean.valueOf(System.getProperty("gmodel.development.local.database")); + } + +} diff --git a/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/server/ConfigValues.java b/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/server/ConfigValues.java new file mode 100644 index 0000000..20db517 --- /dev/null +++ b/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/server/ConfigValues.java @@ -0,0 +1,48 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: SMTL 1.0 + * + * The contents of this file are subject to the Sofismo Model Technology License Version + * 1.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.sofismo.ch/SMTL/ + * + * Software distributed under the License is distributed on an "AS IS" basis. + * See the License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is Gmodel Semantic Extensions Edition. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.repository.client.server; + +import java.util.MissingResourceException; +import java.util.ResourceBundle; + +public class ConfigValues { + private static final String BUNDLE_NAME = "org.gmodel.repository.client.server.configvalues"; //$NON-NLS-1$ + + // TODO attempt to make configuration visible when run using embedded Jetty + // private static final String BUNDLE_NAME = "org.gmodel.repository.client.configvalues"; //$NON-NLS-1$ + + private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME); + + private ConfigValues() { + } + + public static String getString(final String key) { + try { + return RESOURCE_BUNDLE.getString(key); + } catch (final MissingResourceException e) { + return '!' + key + '!'; + } + } +} diff --git a/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/server/ObjectToStringTransformer.java b/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/server/ObjectToStringTransformer.java new file mode 100644 index 0000000..303a920 --- /dev/null +++ b/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/server/ObjectToStringTransformer.java @@ -0,0 +1,36 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: SMTL 1.0 + * + * The contents of this file are subject to the Sofismo Model Technology License Version + * 1.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.sofismo.ch/SMTL/ + * + * Software distributed under the License is distributed on an "AS IS" basis. + * See the License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is Gmodel Semantic Extensions Edition. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.repository.client.server; + +import org.apache.commons.collections.Transformer; + +public class ObjectToStringTransformer implements Transformer { + + public String transform(final Object s) { + return (s == null ? null : s.toString()); + } + +} diff --git a/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/server/RcpServerLauncher.java b/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/server/RcpServerLauncher.java new file mode 100644 index 0000000..514f37c --- /dev/null +++ b/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/server/RcpServerLauncher.java @@ -0,0 +1,95 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: SMTL 1.0 + * + * The contents of this file are subject to the Sofismo Model Technology License Version + * 1.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.sofismo.ch/SMTL/ + * + * Software distributed under the License is distributed on an "AS IS" basis. + * See the License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is Gmodel Semantic Extensions Edition. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.repository.client.server; + +import java.io.IOException; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +import org.jetlang.channels.MemoryChannel; +import org.jetlang.core.Callback; +import org.jetlang.fibers.Fiber; +import org.jetlang.fibers.PoolFiberFactory; + +import com.rabbitmq.client.RpcServer; + +public class RcpServerLauncher { + + private static final String START_PROMPT = ConfigValues.getString("RepositoryClientServer.START_PROMPT"); + + private final Fiber fiber; + + private final RpcServer server; + + private final ExecutorService service; + + private final PoolFiberFactory fact; + + private MemoryChannel channel; + + private final CountDownLatch cd; + + public RcpServerLauncher(final RpcServer server) { + this.server = server; + this.cd = new CountDownLatch(1); + service = Executors.newCachedThreadPool(); + fact = new PoolFiberFactory(service); + fiber = fact.create(); + } + + public CountDownLatch getCountDownLatch() { + return cd; + } + + public void start() throws IllegalStateException { + fiber.start(); + channel = new MemoryChannel(); + final Callback serverRunnable = new Callback() { + public void onMessage(final String msg) { + try { + if (msg.equals(START_PROMPT)) { + System.err.println("Repository Client Server started."); + server.mainloop(); + } + } catch (final IOException ex) { + throw new IllegalStateException("Server faliled to start", ex); + } + } + }; + channel.subscribe(fiber, serverRunnable); + channel.publish(START_PROMPT); + } + + public void terminate() throws InterruptedException { + server.terminateMainloop(); + fiber.dispose(); + fact.dispose(); + service.shutdown(); + cd.countDown(); + } + +} diff --git a/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/server/RepositoryClientServer.java b/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/server/RepositoryClientServer.java new file mode 100644 index 0000000..5f0059d --- /dev/null +++ b/src/trunk/org.gmodel.repository.client/src/main/java/org/gmodel/repository/client/server/RepositoryClientServer.java @@ -0,0 +1,195 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: SMTL 1.0 + * + * The contents of this file are subject to the Sofismo Model Technology License Version + * 1.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.sofismo.ch/SMTL/ + * + * Software distributed under the License is distributed on an "AS IS" basis. + * See the License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is Gmodel Semantic Extensions Edition. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.repository.client.server; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +import org.gmodel.repository.client.RepositoryClient; +import org.gmodel.repository.client.RepositoryClientImpl; +import org.gmodel.serialization.container.ArtefactContainer; +import org.gmodel.serialization.serializer.SerializationType; +import org.gmodel.serialization.serializer.Serializer; +import org.gmodel.serialization.serializer.SerializerHolder; + +import com.rabbitmq.client.Channel; +import com.rabbitmq.client.Connection; +import com.rabbitmq.client.ConnectionFactory; +import com.rabbitmq.client.MapRpcServer; + +public class RepositoryClientServer { + + private static final int PORT = Integer.parseInt(ConfigValues.getString("RepositoryClientServer.PORT")); + + private static final String LOCALHOST = ConfigValues.getString("RepositoryClientServer.HOST_NAME"); //$NON-NLS-1$ + + private static final String OK_PROMPT = ConfigValues.getString("RepositoryClientServer.OK_RESPONSE_PROMPT"); //$NON-NLS-1$ + + private static final String INVALID_PROMPT = ConfigValues.getString("RepositoryClientServer.INVALID_RESPONSE_PROMPT"); //$NON-NLS-1$ + + private static final String QUEUE_NAME = ConfigValues.getString("RepositoryClientServer.QUEUE"); //$NON-NLS-1$ + + private final static RepositoryClient client = RepositoryClientImpl.getInstance(); + + private Channel ch; + + private static List launchers; + + private static boolean isServerRunning = false; + + static class RepositoryClientServerHolder { + private static final RepositoryClientServer repositoryClinetServer = new RepositoryClientServer(); + } + + public static RepositoryClientServer getInstance() { + return RepositoryClientServerHolder.repositoryClinetServer; + } + + public synchronized void start() throws IllegalStateException { + try { + new RepositoryClientServer().startServers(); + setServerStatus(true); + } catch (final IOException ex) { + throw new IllegalStateException("Repository client cannot be started.", ex); + } + } + + public synchronized void stop() throws IllegalStateException { + for (final RcpServerLauncher launcher : launchers) { + try { + launcher.terminate(); + setServerStatus(false); + } catch (final InterruptedException ex) { + throw new IllegalStateException("Repository client cannot be stopped.", ex); + + } + } + } + + public static void main(final String[] args) { + if (!RepositoryClientServerHolder.repositoryClinetServer.isRepositoryServerRunning()) { + RepositoryClientServerHolder.repositoryClinetServer.start(); + } + } + + private RepositoryClientServer() { + try { + setupConnection(); + } catch (final IOException ex) { + Logger.getLogger("global").log(Level.SEVERE, "Repository client server cannot set up a connection", ex); //$NON-NLS-1$ //$NON-NLS-2$ + } + } + + private MapRpcServer createRepositoryClientServer() throws IOException { + final MapRpcServer server = new MapRpcServer(ch, QUEUE_NAME) { + @Override + public Map handleMapCall(final Map request) { + if (request.entrySet().iterator().hasNext()) { + final String serializedArtifacts = request.entrySet().iterator().next().getValue().toString(); + System.err.println("Got: "+serializedArtifacts); + final Serializer sz = SerializerHolder.getGmodelInstanceSerializer(SerializationType.XML); + final ArtefactContainer artifacts = sz.unmarshallContainer(serializedArtifacts); + final SerializationType typeOfService = SerializationType.valueOf(artifacts.getContentType()); + System.err.println("Type: "+typeOfService); + if (isGetOperation(typeOfService)) { + final ArtefactContainer results = client.get(artifacts); + final String serializedResults = sz.serializeContainer(results); + return createResponseMessage(OK_PROMPT,serializedResults); //$NON-NLS-1$ + } else { + client.put(artifacts); + return createResponseMessage(OK_PROMPT,null); //$NON-NLS-1$ + } + } else { + return createResponseMessage("Missing artefact","Missing artefact"); + } + } + + private boolean isGetOperation(final SerializationType typeOfService) { + boolean isGetOp = false; + switch (typeOfService) { + case CONTAINMENT_TREE: + isGetOp = true; + break; + case DEPENDENT_INSTANCES: + isGetOp = true; + break; + case SEARCH_ARGUMENTS: + isGetOp = true; + break; + default: throw new UnsupportedOperationException("This type is not yet supported"); + } + return isGetOp; + } + }; + return server; + } + + private Map createResponseMessage(final String reposonse, final String msg) { + final Map map = new HashMap(); + map.put(reposonse, msg); + return map; + } + + private void setupConnection() throws IOException { + final ConnectionFactory connFactory = new ConnectionFactory(); + connFactory.setHost(LOCALHOST); + connFactory.setPort(PORT); + connFactory.setVirtualHost(ConfigValues.getString("RepositoryClientServer.VHOST_NAME")); + connFactory.setUsername(ConfigValues.getString("RepositoryClientServer.USER_NAME")); + connFactory.setPassword(ConfigValues.getString("RepositoryClientServer.PW")); + final Connection conn = connFactory.newConnection(); + ch = conn.createChannel(); + ch.queueDeclare(QUEUE_NAME, false, false, false, null); + } + + private List setUpServers() throws IOException { + final List serverLaunchers = new ArrayList(); + final MapRpcServer repoServer = createRepositoryClientServer(); + serverLaunchers.add(new RcpServerLauncher(repoServer)); + return serverLaunchers; + } + + private void startServers() throws IOException{ + launchers = setUpServers(); + for (final RcpServerLauncher launcher : launchers) { + launcher.start(); + } + } + + public synchronized boolean isRepositoryServerRunning() { + return isServerRunning; + } + + private synchronized void setServerStatus (final boolean isRunning) { + isServerRunning = isRunning; + } + +} diff --git a/src/trunk/org.gmodel.repository.client/src/main/resources/configvalues.properties b/src/trunk/org.gmodel.repository.client/src/main/resources/configvalues.properties new file mode 100644 index 0000000..f4ff277 --- /dev/null +++ b/src/trunk/org.gmodel.repository.client/src/main/resources/configvalues.properties @@ -0,0 +1,12 @@ +RepositoryClientServer.ARTIFACT_PERSISTENCE_REQUEST_QUEUE=ARTIFACT_PERSISTENCE +RepositoryClientServer.CONTAINMENT_TREE_REQUEST_QUEUE=RETRIEVAL +RepositoryClientServer.QUEUE=REPOSITORY_CLIENT_QUEUE +RepositoryClientServer.HOST_NAME=localhost +RepositoryClientServer.VHOST_NAME=/gmodeldemo +RepositoryClientServer.USER_NAME= +RepositoryClientServer.PW= +RepositoryClientServer.START_PROMPT=start +RepositoryClientServer.OK_RESPONSE_PROMPT=OK +RepositoryClientServer.INVALID_RESPONSE_PROMPT=FAILED +RepositoryClientServer.IS_LOCALLY_DEPLOYED=false +RepositoryClientServer.PORT=5672 \ No newline at end of file diff --git a/src/trunk/org.gmodel.repository.mediator/.classpath b/src/trunk/org.gmodel.repository.mediator/.classpath new file mode 100644 index 0000000..d5c1aca --- /dev/null +++ b/src/trunk/org.gmodel.repository.mediator/.classpath @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/trunk/org.gmodel.repository.mediator/.project b/src/trunk/org.gmodel.repository.mediator/.project new file mode 100644 index 0000000..04081b5 --- /dev/null +++ b/src/trunk/org.gmodel.repository.mediator/.project @@ -0,0 +1,26 @@ + + + org.gmodel.repository.mediator + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + \ No newline at end of file diff --git a/src/trunk/org.gmodel.repository.mediator/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.repository.mediator/META-INF/MANIFEST.MF new file mode 100644 index 0000000..ff39621 --- /dev/null +++ b/src/trunk/org.gmodel.repository.mediator/META-INF/MANIFEST.MF @@ -0,0 +1,7 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.repository.mediator +Bundle-SymbolicName: org.gmodel.repository.mediator; singleton:=true +Bundle-Version: 0.0.0 +Bundle-RequiredExecutionEnvironment: J2SE-1.5 + diff --git a/src/trunk/org.gmodel.repository.mediator/build.properties b/src/trunk/org.gmodel.repository.mediator/build.properties new file mode 100644 index 0000000..e82731d --- /dev/null +++ b/src/trunk/org.gmodel.repository.mediator/build.properties @@ -0,0 +1,3 @@ +source.. = src/ +bin.includes = META-INF/,\ + . \ No newline at end of file diff --git a/src/trunk/org.gmodel.repository.tests/.classpath b/src/trunk/org.gmodel.repository.tests/.classpath new file mode 100644 index 0000000..2d1a430 --- /dev/null +++ b/src/trunk/org.gmodel.repository.tests/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/trunk/org.gmodel.repository.tests/.project b/src/trunk/org.gmodel.repository.tests/.project new file mode 100644 index 0000000..763cf5c --- /dev/null +++ b/src/trunk/org.gmodel.repository.tests/.project @@ -0,0 +1,28 @@ + + + org.gmodel.repository.tests + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/src/trunk/org.gmodel.repository.tests/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.repository.tests/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..8f6dc3d --- /dev/null +++ b/src/trunk/org.gmodel.repository.tests/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,70 @@ +#Wed May 13 15:07:03 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.repository.tests/.settings/org.eclipse.jdt.ui.prefs b/src/trunk/org.gmodel.repository.tests/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000..131d04e --- /dev/null +++ b/src/trunk/org.gmodel.repository.tests/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,54 @@ +#Sun Feb 28 11:38:32 CET 2010 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=false +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/src/trunk/org.gmodel.repository.tests/.settings/org.hibernate.eclipse.console.prefs b/src/trunk/org.gmodel.repository.tests/.settings/org.hibernate.eclipse.console.prefs new file mode 100644 index 0000000..51ec0a3 --- /dev/null +++ b/src/trunk/org.gmodel.repository.tests/.settings/org.hibernate.eclipse.console.prefs @@ -0,0 +1,4 @@ +#Fri Jul 02 14:30:26 CEST 2010 +default.configuration= +eclipse.preferences.version=1 +hibernate3.enabled=false diff --git a/src/trunk/org.gmodel.repository.tests/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.repository.tests/META-INF/MANIFEST.MF new file mode 100644 index 0000000..fd0fb73 --- /dev/null +++ b/src/trunk/org.gmodel.repository.tests/META-INF/MANIFEST.MF @@ -0,0 +1,11 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.repository.tests +Bundle-SymbolicName: org.gmodel.repository.tests +Bundle-Version: 0.0.0 +Fragment-Host: org.gmodel.repository +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Require-Bundle: org.junit4, + org.gmodel.kernel, + org.gmodel.kernel.tests +Import-Package: org.gmodel.repository diff --git a/src/trunk/org.gmodel.repository.tests/build.properties b/src/trunk/org.gmodel.repository.tests/build.properties new file mode 100644 index 0000000..41eb6ad --- /dev/null +++ b/src/trunk/org.gmodel.repository.tests/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/src/trunk/org.gmodel.repository.tests/src/org/gmodel/repository/SearchResultsPoolTest.java b/src/trunk/org.gmodel.repository.tests/src/org/gmodel/repository/SearchResultsPoolTest.java new file mode 100644 index 0000000..22f0ab7 --- /dev/null +++ b/src/trunk/org.gmodel.repository.tests/src/org/gmodel/repository/SearchResultsPoolTest.java @@ -0,0 +1,65 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.repository; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +import junit.framework.TestCase; + +import org.gmodel.common.search.BasicSearchIdentity; +import org.gmodel.common.search.BasicSearchResult; +import org.gmodel.common.search.SearchResult; +import org.gmodel.repository.search.SearchResultsPool; +import org.junit.Test; + +public class SearchResultsPoolTest extends TestCase { + + // TODO improve this test + @Test + public void testIt() { + final SearchResultsPool pool = SearchResultsPool.getInstance(); + final List rList = new ArrayList(); + final UUID id = UUID.randomUUID(); + rList.add(new BasicSearchResult("1", "1", + new BasicSearchIdentity("", "", + UUID.randomUUID()), + new BasicSearchIdentity("", "", + UUID.randomUUID()))); + rList.add(new BasicSearchResult("2", "2", + new BasicSearchIdentity("", "", + UUID.randomUUID()), + new BasicSearchIdentity("", "", + id))); + pool.put("test1", rList); + pool.put("test2", rList); + assertTrue(pool.contains("test1")); + pool.removeFromPool(id.toString()); + pool.removeFromPool(UUID.randomUUID().toString()); + } + +} diff --git a/src/trunk/org.gmodel.repository/.classpath b/src/trunk/org.gmodel.repository/.classpath new file mode 100644 index 0000000..03c29d2 --- /dev/null +++ b/src/trunk/org.gmodel.repository/.classpath @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/trunk/org.gmodel.repository/.project b/src/trunk/org.gmodel.repository/.project new file mode 100644 index 0000000..6d1e315 --- /dev/null +++ b/src/trunk/org.gmodel.repository/.project @@ -0,0 +1,28 @@ + + + org.gmodel.repository + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/src/trunk/org.gmodel.repository/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.repository/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..8f6dc3d --- /dev/null +++ b/src/trunk/org.gmodel.repository/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,70 @@ +#Wed May 13 15:07:03 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.repository/.settings/org.eclipse.jdt.ui.prefs b/src/trunk/org.gmodel.repository/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000..131d04e --- /dev/null +++ b/src/trunk/org.gmodel.repository/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,54 @@ +#Sun Feb 28 11:38:32 CET 2010 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=false +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/src/trunk/org.gmodel.repository/.settings/org.hibernate.eclipse.console.prefs b/src/trunk/org.gmodel.repository/.settings/org.hibernate.eclipse.console.prefs new file mode 100644 index 0000000..9fb851c --- /dev/null +++ b/src/trunk/org.gmodel.repository/.settings/org.hibernate.eclipse.console.prefs @@ -0,0 +1,4 @@ +#Wed Aug 11 14:54:23 CEST 2010 +default.configuration= +eclipse.preferences.version=1 +hibernate3.enabled=false diff --git a/src/trunk/org.gmodel.repository/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.repository/META-INF/MANIFEST.MF new file mode 100644 index 0000000..dc5e891 --- /dev/null +++ b/src/trunk/org.gmodel.repository/META-INF/MANIFEST.MF @@ -0,0 +1,30 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.repository +Bundle-SymbolicName: org.gmodel.repository;singleton:=true +Bundle-Version: 1.0.0 +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Export-Package: org.gmodel.repository, + org.gmodel.repository.connector, + org.gmodel.repository.mediator, + org.gmodel.repository.search, + org.gmodel.repository.server +Require-Bundle: org.gmodel.kernel;bundle-version="1.0.0", + org.gmodel.serialization;bundle-version="1.0.0", + org.gmodel.hibernateosgi;bundle-version="1.0.0", + org.gmodel.artifactpool;bundle-version="1.0.0", + org.gmodel.statistics;bundle-version="1.0.0", + org.gmodel.connector;bundle-version="1.0.0", + org.gmodel.common;bundle-version="1.0.0" +Bundle-ClassPath: ., + lib/dom4j-1.6.1.jar, + lib/slf4j-simple-1.6.1.jar, + lib/slf4j-api-1.6.1.jar, + lib/jetlang-0.2.1.jar, + lib/mysql-connector-java-5.1.15-bin.jar, + lib/commons-dbcp-1.3.jar, + lib/commons-pool-1.5.5.jar, + lib/commons-collections-3.2.1.jar, + lib/rabbitmq-client.jar +Bundle-ActivationPolicy: lazy +Eclipse-RegisterBuddy: org.gmodel.hibernateosgi diff --git a/src/trunk/org.gmodel.repository/PopulateLocalDatabaseTables.launch b/src/trunk/org.gmodel.repository/PopulateLocalDatabaseTables.launch new file mode 100644 index 0000000..d87b812 --- /dev/null +++ b/src/trunk/org.gmodel.repository/PopulateLocalDatabaseTables.launch @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/trunk/org.gmodel.repository/Start local editor (local database).launch b/src/trunk/org.gmodel.repository/Start local editor (local database).launch new file mode 100644 index 0000000..de44a0d --- /dev/null +++ b/src/trunk/org.gmodel.repository/Start local editor (local database).launch @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/trunk/org.gmodel.repository/build.properties b/src/trunk/org.gmodel.repository/build.properties new file mode 100644 index 0000000..ce39f41 --- /dev/null +++ b/src/trunk/org.gmodel.repository/build.properties @@ -0,0 +1,13 @@ +source.. = src/main/java +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + lib/dom4j-1.6.1.jar,\ + lib/slf4j-simple-1.6.1.jar,\ + lib/jetlang-0.2.1.jar,\ + lib/mysql-connector-java-5.1.15-bin.jar,\ + lib/commons-dbcp-1.3.jar,\ + lib/commons-pool-1.5.5.jar,\ + lib/commons-collections-3.2.1.jar,\ + lib/rabbitmq-client.jar,\ + lib/slf4j-api-1.6.1.jar diff --git a/src/trunk/org.gmodel.repository/lib/commons-collections-3.2.1.jar b/src/trunk/org.gmodel.repository/lib/commons-collections-3.2.1.jar new file mode 100644 index 0000000..c35fa1f Binary files /dev/null and b/src/trunk/org.gmodel.repository/lib/commons-collections-3.2.1.jar differ diff --git a/src/trunk/org.gmodel.repository/lib/commons-dbcp-1.3.jar b/src/trunk/org.gmodel.repository/lib/commons-dbcp-1.3.jar new file mode 100644 index 0000000..d293397 Binary files /dev/null and b/src/trunk/org.gmodel.repository/lib/commons-dbcp-1.3.jar differ diff --git a/src/trunk/org.gmodel.repository/lib/commons-pool-1.5.5.jar b/src/trunk/org.gmodel.repository/lib/commons-pool-1.5.5.jar new file mode 100644 index 0000000..7a96587 Binary files /dev/null and b/src/trunk/org.gmodel.repository/lib/commons-pool-1.5.5.jar differ diff --git a/src/trunk/org.gmodel.repository/lib/dom4j-1.6.1.jar b/src/trunk/org.gmodel.repository/lib/dom4j-1.6.1.jar new file mode 100644 index 0000000..c8c4dbb Binary files /dev/null and b/src/trunk/org.gmodel.repository/lib/dom4j-1.6.1.jar differ diff --git a/src/trunk/org.gmodel.repository/lib/jetlang-0.2.1.jar b/src/trunk/org.gmodel.repository/lib/jetlang-0.2.1.jar new file mode 100644 index 0000000..194ac15 Binary files /dev/null and b/src/trunk/org.gmodel.repository/lib/jetlang-0.2.1.jar differ diff --git a/src/trunk/org.gmodel.repository/lib/mysql-connector-java-5.1.15-bin.jar b/src/trunk/org.gmodel.repository/lib/mysql-connector-java-5.1.15-bin.jar new file mode 100644 index 0000000..560c5f0 Binary files /dev/null and b/src/trunk/org.gmodel.repository/lib/mysql-connector-java-5.1.15-bin.jar differ diff --git a/src/trunk/org.gmodel.repository/lib/rabbitmq-client.jar b/src/trunk/org.gmodel.repository/lib/rabbitmq-client.jar new file mode 100644 index 0000000..d91143d Binary files /dev/null and b/src/trunk/org.gmodel.repository/lib/rabbitmq-client.jar differ diff --git a/src/trunk/org.gmodel.repository/lib/slf4j-api-1.6.1.jar b/src/trunk/org.gmodel.repository/lib/slf4j-api-1.6.1.jar new file mode 100644 index 0000000..42e0ad0 Binary files /dev/null and b/src/trunk/org.gmodel.repository/lib/slf4j-api-1.6.1.jar differ diff --git a/src/trunk/org.gmodel.repository/lib/slf4j-simple-1.6.1.jar b/src/trunk/org.gmodel.repository/lib/slf4j-simple-1.6.1.jar new file mode 100644 index 0000000..d894d96 Binary files /dev/null and b/src/trunk/org.gmodel.repository/lib/slf4j-simple-1.6.1.jar differ diff --git a/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/ConfigValues.java b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/ConfigValues.java new file mode 100644 index 0000000..959ef63 --- /dev/null +++ b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/ConfigValues.java @@ -0,0 +1,22 @@ +package org.gmodel.repository; + +import java.util.MissingResourceException; +import java.util.ResourceBundle; + +public class ConfigValues { + private static final String BUNDLE_NAME = "org.gmodel.repository.configvalues"; //$NON-NLS-1$ + + private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle + .getBundle(BUNDLE_NAME); + + private ConfigValues() { + } + + public static String getValue(String key) { + try { + return RESOURCE_BUNDLE.getString(key); + } catch (MissingResourceException e) { + return '!' + key + '!'; + } + } +} diff --git a/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/ObjectToStringTransformer.java b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/ObjectToStringTransformer.java new file mode 100644 index 0000000..3b610a0 --- /dev/null +++ b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/ObjectToStringTransformer.java @@ -0,0 +1,36 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: SMTL 1.0 + * + * The contents of this file are subject to the Sofismo Model Technology License Version + * 1.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.sofismo.ch/SMTL/ + * + * Software distributed under the License is distributed on an "AS IS" basis. + * See the License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is Gmodel Semantic Extensions Edition. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.repository; + +import org.apache.commons.collections.Transformer; + +public class ObjectToStringTransformer implements Transformer { + + public String transform(final Object s) { + return (s == null ? null : s.toString()); + } + +} diff --git a/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/RelationalDatabaseRepository.java b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/RelationalDatabaseRepository.java new file mode 100644 index 0000000..2305a8c --- /dev/null +++ b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/RelationalDatabaseRepository.java @@ -0,0 +1,734 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.repository; + +import java.sql.CallableStatement; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Properties; +import java.util.UUID; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; +import java.util.logging.Level; +import java.util.logging.Logger; + +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections.map.ListOrderedMap; +import org.apache.commons.dbcp.ConnectionFactory; +import org.apache.commons.dbcp.DriverManagerConnectionFactory; +import org.apache.commons.dbcp.PoolableConnectionFactory; +import org.apache.commons.dbcp.PoolingDriver; +import org.apache.commons.pool.KeyedObjectPoolFactory; +import org.apache.commons.pool.impl.GenericKeyedObjectPoolFactory; +import org.apache.commons.pool.impl.GenericObjectPool; +import org.gmodel.G; +import org.gmodel.connector.Component; +import org.gmodel.serialization.EdgeType; +import org.gmodel.serialization.EdgeType.EdgeEnd; +import org.gmodel.serialization.Flavor; +import org.gmodel.serialization.Gmodel; +import org.gmodel.serialization.Gmodel.Instance; +import org.gmodel.serialization.SemanticIdType; +import org.gmodel.serialization.SuperSetReferenceType; +import org.gmodel.serialization.VisibilityType; +import org.gmodel.serialization.container.ArtefactContainer; +import org.gmodel.serialization.container.ArtefactContainer.Content; +import org.gmodel.serialization.container.ContainerTypeMapper; +import org.gmodel.serialization.container.InstanceIdentityType; +import org.gmodel.serialization.container.ObjectFactory; +import org.gmodel.serialization.container.ObjectFactoryHolder; +import org.gmodel.serialization.container.SearchResultType; +import org.gmodel.serialization.serializer.ProtocolType; +import org.gmodel.serialization.serializer.SerializationType; +import org.gmodel.serialization.serializer.Serializer; +import org.gmodel.serialization.serializer.SerializerHolder; +import org.gmodel.statistics.Timer; +import org.hibernate.SessionFactory; +import org.hibernate.cfg.Configuration; +import org.jetlang.channels.Channel; +import org.jetlang.channels.MemoryChannel; +import org.jetlang.core.Callback; +import org.jetlang.fibers.Fiber; +import org.jetlang.fibers.PoolFiberFactory; + +// FIXME use named queries instead of constructing them via Strings +// TODO create a DAO to perform queries and lookups +public class RelationalDatabaseRepository implements Repository, Component { + + private static final int MIN_ARGUMENT_SIZE = 1; + + private static final int UPDATE_BATCH_SIZE = Integer.parseInt(ConfigValues.getValue("Repository.UPDATE_BATCH_SIZE")); + + private static final int READ_BATCH_SIZE = Integer.parseInt(ConfigValues.getValue("Repository.READ_BATCH_SIZE")); + + private static final String ROOT_URR = "root"; + + private static final int MAX_DEPTH = Integer.parseInt(ConfigValues.getValue("Repository.MAX_DEPTH")); + + private static final int INITIAL_CONNECTION_POOL_SIZE = Integer.parseInt(ConfigValues.getValue("Repository.INITIAL_CONNECTION_POOL_SIZE")); + + private static final String REPOSITORY_CONNECTION_POOL_ID = ConfigValues.getValue("Repository.RelationalDatabaseRepository_ID"); + + private static final int MAX_ACTIVE_CONNECTION = Integer.parseInt(ConfigValues.getValue("Repository.MAX_NUM_ACTIVE_CONNECTION")); + + static class FiberResources { + public static final ExecutorService EXEC_SERVICE = Executors.newCachedThreadPool(); //should be created externally + public static final PoolFiberFactory FIBER_FACTORY = new PoolFiberFactory(EXEC_SERVICE); + } + + static class RepositoryHolder { + private static boolean isConnectionPoolInitialized = false; + public static final RelationalDatabaseRepository REPOSITORY = new RelationalDatabaseRepository(); + public static final GenericObjectPool CONNECTION_POOL = new GenericObjectPool(null); + public static RelationalDatabaseRepository PLUGIN_REPOSITORY = new RelationalDatabaseRepository(); + + protected static boolean isConnectionPoolInitialized() { + return isConnectionPoolInitialized; + } + protected static void setConnectionPoolInitialized(final boolean isConnectionPoolInitialized) { + RepositoryHolder.isConnectionPoolInitialized = isConnectionPoolInitialized; + } + } + + private static void closeAllStatement(final List prepStatementsManagers) throws SQLException { + for (final StatementBatchManager mangr : prepStatementsManagers) { + mangr.getStatement().close(); + } + } + + private static void executeBatchStatements(final List prepStatementsManagers, final Connection connection) throws SQLException { + final Fiber fiber = FiberResources.FIBER_FACTORY.create(); + fiber.start(); + + final Channel> msgChannel = new MemoryChannel>(); + + final Callback> callBack = new Callback>() { + public void onMessage(final List statementManagers) { + final String timerId = UUID.randomUUID().toString(); + Timer.getInstance().start(timerId); + try { + for (final StatementBatchManager mangr : statementManagers) { + mangr.commitStatementBatches(); + } + connection.commit(); + closeAllStatement(prepStatementsManagers); + connection.close(); + Timer.getInstance().time(timerId, TimeUnit.MILLISECONDS); + final long timeTaken = Timer.getInstance().getTimerRecords(timerId).getTimeTakenInMilliseconds(); + System.err.println("Time taken: "+timeTaken); //$NON-NLS-1$ + fiber.dispose(); + } catch (final SQLException ex) { + ex.printStackTrace(); + } + } + }; + + msgChannel.subscribe(fiber, callBack); + msgChannel.publish(prepStatementsManagers); + } + + public static RelationalDatabaseRepository getRepository() { + if (!RepositoryHolder.isConnectionPoolInitialized()) { + initializeConnectionPool(); + } + return RepositoryHolder.REPOSITORY; + } + + private static void initializeConnectionPool() { + final Properties props = new Properties(); + props.setProperty("user", ConfigValues.getValue("Repository.REPOSITORY_ACCOUNT")); + props.setProperty("password", ConfigValues.getValue("Repository.REPOSITORY_PW")); + props.setProperty("rewriteBatchedStatements", "true"); + final ConnectionFactory cf = new DriverManagerConnectionFactory(ConfigValues.getValue("Repository.REPOSITORY_CONNECTION_STRING"), props); + final KeyedObjectPoolFactory keyedObjecPoolFacto =new GenericKeyedObjectPoolFactory(null, MAX_ACTIVE_CONNECTION); + new PoolableConnectionFactory(cf, RepositoryHolder.CONNECTION_POOL, keyedObjecPoolFacto, null, false, true); + for(int i = 0; i < INITIAL_CONNECTION_POOL_SIZE; i++) { + try { + RepositoryHolder.CONNECTION_POOL.addObject(); + } catch (final Exception e) {} + } + new PoolingDriver().registerPool(REPOSITORY_CONNECTION_POOL_ID, RepositoryHolder.CONNECTION_POOL); + RepositoryHolder.setConnectionPoolInitialized(true); + } + + + public static void shutDownAsynchServices() { + FiberResources.FIBER_FACTORY.dispose(); + FiberResources.EXEC_SERVICE.shutdown(); + } + + private final Serializer serializer; + + private SessionFactory factory; + + private RelationalDatabaseRepository() { + serializer = SerializerHolder.getGmodelInstanceSerializer(SerializationType.XML); + } + + private RelationalDatabaseRepository(final Configuration config) { + this(); + updateConfiguration(config); + } + + private void addMapItemsToContentList(final ObjectFactory containerFactory, final ArtefactContainer resultContainer, + final Map resultEntries) { + for (final Map.Entry entry : resultEntries.entrySet()) { + final Content content = containerFactory.createArtefactContainerContent(); + content.setContent(entry.getValue()); + content.setId(entry.getKey()); + resultContainer.getContent().add(content); + } + } + + + private void addUUIDs(final ResultSet rs, final ListOrderedMap uuidMap) throws SQLException { + if (!uuidMap.containsKey(ROOT_URR)) { + final String rootUrr = rs.getString(ROOT_URR); //$NON-NLS-1$ + uuidMap.put(rootUrr, rootUrr); + } + for (int n = 1; n <= MAX_DEPTH; n++) { + final String urr = rs.getString("lev"+n); //$NON-NLS-1$ + if (urr != null) { + if (!uuidMap.containsKey(urr)) { + uuidMap.put(urr, urr); + } + } else { + break; + } + } + } + + @Override + public Object clone() throws CloneNotSupportedException { + throw new CloneNotSupportedException(); + } + + private Map createArtefactUUIDMap(final List artefactIds) { + final Map map = new HashMap(); + for (final String uuid : artefactIds) { + map.put(uuid.toString(), uuid.toString()); + } + return map; + } + + + private CallableStatement execueteUUIDQuery(final String queryName, final String uuid) throws SQLException { + final Connection connection = DriverManager.getConnection("jdbc:apache:commons:dbcp:"+REPOSITORY_CONNECTION_POOL_ID); //$NON-NLS-1$ + connection.setAutoCommit(false); + final CallableStatement stmt = connection.prepareCall("{ call "+queryName+"(?) }",ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); //$NON-NLS-1$ + stmt.setString(1, uuid); + stmt.setFetchSize(Integer.MIN_VALUE); + stmt.execute(); + returnConnectionToPool(connection); + return stmt; + } + + private void executeAllStatements(final List prepStatementsManagers) throws SQLException { + for (final StatementBatchManager mangr : prepStatementsManagers) { + try { + mangr.commitStatementBatches(); + } catch (final Throwable th) { + throw new SQLException("Statement batch execution failed", th); + } + } + } + + private ListOrderedMap fetchArtifacts(final Map uuidsToFetch, final StatementBatchManager fetchXmlStatementMan) throws SQLException { + for (final Object entryObject : uuidsToFetch.entrySet()) { + final Entry entry = (Entry) entryObject; + final String xmlKey = (String) entry.getKey(); + fetchXmlStatementMan.addToURRList(xmlKey); + } + final ListOrderedMap fetchedArtifacts = new ListOrderedMap(); + fetchXmlStatementMan.executeSelectQueries(fetchedArtifacts); + return fetchedArtifacts; + } + + public ArtefactContainer get(final ArtefactContainer artifact) throws UnsupportedOperationException { + validateGetArguments(artifact); + final SerializationType type = getArtefactContainerType(artifact.getContentType()); + final ObjectFactory containerFactory = ObjectFactoryHolder.getInstance(); + final ArtefactContainer responseContainer = containerFactory.createArtefactContainer(); + switch (type) { + case ARTIFACT_RETRIEVAL: + final List artifactsToStore = getContentList(artifact.getContent()); + final Map returnedArtifacts = get(artifactsToStore); + responseContainer.setContentType(SerializationType.ARTIFACT_RETRIEVAL.name()); + addMapItemsToContentList(containerFactory, responseContainer, returnedArtifacts); + break; + case CONTAINMENT_TREE: + final Map treeArtifacts = getContainmentTree(artifact.getContent().get(0).getContent(), MAX_DEPTH); + responseContainer.setContentType(SerializationType.CONTAINMENT_TREE.name()); + addMapItemsToContentList(containerFactory, responseContainer, treeArtifacts); + break; + case CONTAINMENT_TREE_UUIDS_RETRIEVAL: + final List treeUUIDs = getContainmentTreeUUIDs(artifact.getContent().get(0).getContent(), MAX_DEPTH); + responseContainer.setContentType(SerializationType.CONTAINMENT_TREE_UUIDS_RETRIEVAL.name()); + ContainerTypeMapper.mapToContentList(responseContainer, treeUUIDs); + break; + case DEPENDENT_INSTANCE_UUIDS: + final List dependentUUIDs = getDependentInstanceUUIDsOf(artifact.getContent().get(0).getContent()); + responseContainer.setContentType(SerializationType.DEPENDENT_INSTANCE_UUIDS.name()); + ContainerTypeMapper.mapToContentList(responseContainer, dependentUUIDs); + break; + case SEARCH_ARGUMENTS: + final List searchResults = search(artifact.getContent().get(0).getContent()); + responseContainer.setContentType(SerializationType.SEARCH_ARGUMENTS.name()); + responseContainer.getSearchResult().addAll(ContainerTypeMapper.mapSearchResultTypeListToSearchResultList(searchResults)); + break; + default: throw new UnsupportedOperationException("This method is not yet supported"); + } + return responseContainer; + } + + @SuppressWarnings("unchecked") + protected Map get(final List artefactIds) throws IllegalStateException { + Connection connection = null; + try { + connection = DriverManager.getConnection("jdbc:apache:commons:dbcp:"+REPOSITORY_CONNECTION_POOL_ID); //$NON-NLS-1$ + connection.setAutoCommit(false); + + final String fetchXmlString = "select urr, contentAsXml from artifact where urr = ?"; + final StatementBatchManager fetchXmlStatementMan = new StatementBatchManager(connection.prepareStatement(fetchXmlString),"artifact","", "", UPDATE_BATCH_SIZE, READ_BATCH_SIZE); + final ListOrderedMap fetchedArtifacts = fetchArtifacts(createArtefactUUIDMap(artefactIds), fetchXmlStatementMan); + fetchXmlStatementMan.getStatement().close(); + return fetchedArtifacts; + } catch (final SQLException ex) { + throw new IllegalStateException("SQL exception", ex); //$NON-NLS-1$ + } finally { + returnConnectionToPool(connection); + } + } + + private SerializationType getArtefactContainerType(final String contentType) { + try { + final SerializationType type = SerializationType.valueOf(contentType); + return type; + } catch (final IllegalArgumentException ex){ + throw new UnsupportedOperationException("This type is not supported", ex); + } + } + + + @SuppressWarnings("unchecked") + protected Map getContainmentTree(final String uuid, final int depth) throws IllegalStateException { + CallableStatement fetchContainedInstanceProc = null; + final PreparedStatement preStmt = null; + Connection connection = null; + try { + connection = DriverManager.getConnection("jdbc:apache:commons:dbcp:"+REPOSITORY_CONNECTION_POOL_ID); //$NON-NLS-1$ + connection.setAutoCommit(false); + fetchContainedInstanceProc = connection.prepareCall("{ call getContainedInstances(?) }",ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); //$NON-NLS-1$ + fetchContainedInstanceProc.setString(1, uuid); + fetchContainedInstanceProc.setFetchSize(Integer.MIN_VALUE); + final Map uuidsToFetch = getContainmentTreeUUIDs(uuid); + System.err.println(uuidsToFetch.size()); + + final String fetchXmlString = "select urr, contentAsXml from artifact where urr = ?"; + final StatementBatchManager fetchXmlStatementMan = new StatementBatchManager(connection.prepareStatement(fetchXmlString),"artifact","", "", UPDATE_BATCH_SIZE, READ_BATCH_SIZE); + + final ListOrderedMap fetchedArtifacts = fetchArtifacts( + uuidsToFetch, fetchXmlStatementMan); + fetchXmlStatementMan.getStatement().close(); + return fetchedArtifacts; + } catch (final SQLException ex) { + throw new IllegalStateException("SQL exception", ex); //$NON-NLS-1$ + } finally { + returnConnectionToPool(connection); + } + } + + + @SuppressWarnings("unchecked") + private Map getContainmentTreeUUIDs(final String uuid) throws SQLException { + final Connection connection = DriverManager.getConnection("jdbc:apache:commons:dbcp:"+REPOSITORY_CONNECTION_POOL_ID); //$NON-NLS-1$ + connection.setAutoCommit(false); + final CallableStatement fetchContainedInstanceUUIDs = execueteUUIDQuery("getContainedInstanceUUIDs",uuid); + Timer.getInstance().start("getContainmentTreeUUIDs"); //$NON-NLS-1$ + final ResultSet rs =fetchContainedInstanceUUIDs.getResultSet(); + final ListOrderedMap uuidMap = new ListOrderedMap(); + while (rs.next()) { + addUUIDs(rs, uuidMap); + } + System.err.println("Time taken for doing getContainmentTreeUUIDs: "+Timer.getInstance().time("getContainmentTreeUUIDs", TimeUnit.MILLISECONDS)); //$NON-NLS-1$ + rs.close(); + fetchContainedInstanceUUIDs.close(); + returnConnectionToPool(connection); + return uuidMap; + } + + private void returnConnectionToPool(final Connection connection) { + if (connection != null) { + try { + RepositoryHolder.CONNECTION_POOL.returnObject(connection); + } catch (final Throwable e) { + Logger.getLogger("global").log(Level.SEVERE, "Connection object is not returned to the pool", e); //$NON-NLS-1$ //$NON-NLS-2$ + } + } + } + + + @SuppressWarnings("unchecked") + protected List getContainmentTreeUUIDs(final String artefactUUID, final int depth) throws IllegalStateException { + try { + final Map uuidMap = getContainmentTreeUUIDs(artefactUUID); + final List uuidStringList = new ArrayList(uuidMap.values()); + return uuidStringList; + } catch (final SQLException ex) { + throw new IllegalStateException("Containment tree UUID fetching failed", ex); + } + } + + + private List getContentList(final List contents) { + final List contentList = new ArrayList(); + for (final Content c : contents) { + contentList.add(c.getContent()); + } + return contentList; + } + + @SuppressWarnings({ "unchecked", "rawtypes" }) + private Map getDependentInstanceUUIDs(final String uuid) throws SQLException { + final CallableStatement fetchContainedInstanceUUIDs = execueteUUIDQuery("getDependentInstanceUUIDs",uuid); + Timer.getInstance().start("getDependentInstanceUUIDs"); //$NON-NLS-1$ + final ResultSet rs =fetchContainedInstanceUUIDs.getResultSet(); + final ListOrderedMap uuidMap = new ListOrderedMap(); + while (rs.next()) { + final String urr = rs.getString("urr"); + if (urr != null && !uuidMap.containsKey(urr)) { + uuidMap.put(urr, urr); + } + } + System.err.println("Time taken for doing getDependentInstanceUUIDs: "+Timer.getInstance().time("getDependentInstanceUUIDs", TimeUnit.MILLISECONDS)); //$NON-NLS-1$ + rs.close(); + fetchContainedInstanceUUIDs.close(); + return uuidMap; + } + + + protected List getDependentInstanceUUIDsOf(final String uuid) throws IllegalStateException { + try { + return mergeUUIDMapsToList(uuid, getDependentInstanceUUIDs(uuid), null); + } catch (final SQLException ex) { + throw new IllegalStateException("Failed to fetch dependent instance UUIDs",ex); + } + } + + private String getQueryString(final String s) { + return s.substring(s.indexOf(":")+1).trim(); + } + + private String getSearchQueryString() { + return "SELECT tId.uuid as uuid, tId.name as name, tId.pluralName as pluralName, tArtifact.container as containerId,"+ + "(SELECT tCId.name FROM `identity` as tCId WHERE tCId.uuid = containerId) as containerName,"+ + "(SELECT tCId.pluralName FROM `identity` as tCId WHERE tCId.uuid = containerId) as containerPluralName,"+ + "tArtifact.category as metaElementId,"+ + "(SELECT tMId.name FROM `identity` as tMId WHERE tMId.uuid = metaElementId) as metaElementName "+ + "FROM `identity` as tId, artifact as tArtifact "+ + "WHERE (tId.uuid = tArtifact.urr AND tId.uuid IN "+ + "(SELECT identityTable.uuid "+ + "FROM `identity` as identityTable, artifact as artifactTable "+ + "WHERE "+ + "(identityTable.uuid = artifactTable.urr AND (artifactTable.flavor='"+Flavor.VER.name()+"' OR artifactTable.flavor='"+Flavor.EDG.name()+"') AND identityTable.name LIKE ?))) LIMIT 100"; + } + + @SuppressWarnings("unchecked") + private List mergeUUIDMapsToList(final String uuid, final Map map1, final Map map2) { + final List uuidLst = new ArrayList(); + if (map2 != null) { + for (final Object k : map2.keySet()) { + map1.put(k, k); + } + } + map1.remove(uuid); + CollectionUtils.collect( + new ArrayList(map1.values()), + new ObjectToStringTransformer(), + uuidLst); + return uuidLst; + } + + private void persistArtifact(final StatementBatchManager idInsertStatementMan, + final StatementBatchManager artifactInsertStatementMan, + final Connection connection, + final SemanticIdType id, final String metaElement, final String container, final String isAbstract, final Flavor flavor, final String xmlContent) throws SQLException { + + final String payload = id.getPayload() == null ? "" : id.getPayload(); //$NON-NLS-1$ + + setUpIdInsertStatement(idInsertStatementMan.getStatement(), + id.getUniqueRepresentationReference(), + id.getName(), + id.getPluralName(), + payload); + idInsertStatementMan.addToBatch(getQueryString(idInsertStatementMan.getStatement().toString())); + + setUpArtifactInsertStatement(artifactInsertStatementMan.getStatement(), + id.getUniqueRepresentationReference(), + id.getIdentifier(), + metaElement, + container, + isAbstract, + flavor.name(), + xmlContent); + artifactInsertStatementMan.addToBatch(getQueryString(artifactInsertStatementMan.getStatement().toString())); + + } + + private void persisteEdge(final StatementBatchManager edgeInsertStatementMan, final EdgeType e, final EdgeEnd fromEdgeEnd, final EdgeEnd toEdgeEnd) throws SQLException { + edgeInsertStatementMan.getStatement().setString(1, e.getSemanticIdentity().getUniqueRepresentationReference()); + edgeInsertStatementMan.getStatement().setString(2, fromEdgeEnd.getMinCardinality()); + edgeInsertStatementMan.getStatement().setString(3, toEdgeEnd.getMinCardinality()); + edgeInsertStatementMan.getStatement().setString(4, fromEdgeEnd.getMaxCardinality()); + edgeInsertStatementMan.getStatement().setString(5, toEdgeEnd.getMaxCardinality()); + edgeInsertStatementMan.getStatement().setString(6, ""+fromEdgeEnd.isIsNavigable()); //$NON-NLS-1$ + edgeInsertStatementMan.getStatement().setString(7, ""+toEdgeEnd.isIsNavigable()); //$NON-NLS-1$ + edgeInsertStatementMan.getStatement().setString(8, ""+fromEdgeEnd.isIsContainer()); //$NON-NLS-1$ + edgeInsertStatementMan.getStatement().setString(9, ""+toEdgeEnd.isIsContainer()); //$NON-NLS-1$ + edgeInsertStatementMan.getStatement().setString(10, fromEdgeEnd.getSemanticIdentity().getUniqueRepresentationReference()); + edgeInsertStatementMan.getStatement().setString(11, toEdgeEnd.getSemanticIdentity().getUniqueRepresentationReference()); + edgeInsertStatementMan.addToBatch(getQueryString(edgeInsertStatementMan.getStatement().toString())); + } + + + private void persistLink(final StatementBatchManager idInsertStatementMan, final StatementBatchManager artifactInsertStatementMan, final StatementBatchManager linkInsertStatementMan, + final Connection connection, final String category, final String container, final Flavor flavor, final String payload, final SemanticIdType id, final String src, final String target) throws SQLException { + persistArtifact(idInsertStatementMan, artifactInsertStatementMan, connection, id, + category, + container, "false", flavor, ""); //$NON-NLS-1$ //$NON-NLS-2$ + setUpLinkStatement(linkInsertStatementMan, id.getUniqueRepresentationReference(), flavor, + category.toString(), src, target); + } + + public void put(final ArtefactContainer artifact) throws UnsupportedOperationException { + final SerializationType type = getArtefactContainerType(artifact.getContentType()); + switch (type) { + case ARTIFACT_PERSISTENCE: + final List contentToStore = getContentList(artifact.getContent()); + store(contentToStore); + break; + default: + throw new UnsupportedOperationException("This method is not yet supported"); + } + } + + protected List search(final String queryString) { + final List searchResults = new ArrayList(); + Connection connection = null; + ResultSet rs = null; + try { + connection = DriverManager.getConnection("jdbc:apache:commons:dbcp:"+REPOSITORY_CONNECTION_POOL_ID); //$NON-NLS-1$ + connection.setAutoCommit(false); + final PreparedStatement searchStatement = connection.prepareStatement(getSearchQueryString()); //$NON-NLS-1$ + searchStatement.setString(1, "%"+queryString.trim()+"%"); + searchStatement.execute(); + rs =searchStatement.getResultSet(); + final ObjectFactory factory = ObjectFactoryHolder.getInstance(); + + while (rs.next()) { + final SearchResultType searchResult = factory.createSearchResultType(); + final InstanceIdentityType instanceId = factory.createInstanceIdentityType(); + instanceId.setName(rs.getString("name")); + instanceId.setPluralName(rs.getString("pluralName")); + instanceId.setUuid(rs.getString("uuid")); + searchResult.setInstanceIdentity(instanceId); + final InstanceIdentityType containerId = factory.createInstanceIdentityType(); + containerId.setName(rs.getString("containerName")); + containerId.setPluralName(rs.getString("containerPluralName")); + containerId.setUuid(rs.getString("containerId")); + searchResult.setContainerIdentity(containerId); + final InstanceIdentityType metaInstanceId = factory.createInstanceIdentityType(); + metaInstanceId.setUuid(rs.getString("metaElementId")); + metaInstanceId.setName(rs.getString("metaElementName")); + searchResult.setMetaInstanceIdentity(metaInstanceId); + searchResults.add(searchResult); + } + } catch (final SQLException ex) { + throw new IllegalStateException("Error in sql execution: "+ex.getMessage(), ex); //$NON-NLS-1$ + } finally { + returnConnectionToPool(connection); + } + return searchResults; + } + + private void setUpArtifactInsertStatement(final PreparedStatement artifactInsertStatement, final String urr, final String uuid, final String category, + final String container, final String isAbstractId, final String flavor, final String xmlContent) throws SQLException { + artifactInsertStatement.setString(1, urr); + artifactInsertStatement.setString(2, uuid); + artifactInsertStatement.setString(3, category); + artifactInsertStatement.setString(4, container); + artifactInsertStatement.setString(5, isAbstractId); //isAbstract to be URR + artifactInsertStatement.setString(6, flavor); + artifactInsertStatement.setString(7, xmlContent); + } + + private void setUpIdInsertStatement(final PreparedStatement statement, final String uuid, final String name, final String pluralName, final String payload) throws SQLException { + statement.setString(1,uuid); + statement.setString(2, name); + statement.setString(3,pluralName); + statement.setString(4, payload); + } + + private void setUpLinkStatement(final StatementBatchManager linkInsertStatementMan, final String urr, final Flavor flavor, + final String category, final String sourceInstance, final String targetInstance) throws SQLException { + linkInsertStatementMan.getStatement().setString(1,urr); + linkInsertStatementMan.getStatement().setString(2, category); + linkInsertStatementMan.getStatement().setString(3, flavor.name()); + linkInsertStatementMan.getStatement().setString(4, sourceInstance); + linkInsertStatementMan.getStatement().setString(5, targetInstance); + linkInsertStatementMan.addToBatch(getQueryString(linkInsertStatementMan.getStatement().toString())); + + } + + protected void store(final List artefacts) throws IllegalStateException { + Connection connection = null; + try { + connection = DriverManager.getConnection("jdbc:apache:commons:dbcp:"+REPOSITORY_CONNECTION_POOL_ID); //$NON-NLS-1$ + connection.setAutoCommit(false); + + final List prepStatementsManagers = new ArrayList(); + final String identityStatementString = "(?, ?, ?, ?)"; + final PreparedStatement idInsertStatement = connection.prepareStatement(identityStatementString); //$NON-NLS-1$ + final StatementBatchManager idInsertStatementMan = new StatementBatchManager(idInsertStatement, "identity", + "insert into identity (uuid,name,pluralName,payLoad) values ", + " ON DUPLICATE KEY update name=values(name), pluralName=values(pluralName), payLoad=values(payLoad)",UPDATE_BATCH_SIZE, READ_BATCH_SIZE); + final String artifactStatementString = "(?, ?, ?, ?, ?, ?, ?)"; + final PreparedStatement artifactInsertStatement = connection.prepareStatement(artifactStatementString); //$NON-NLS-1$ + final StatementBatchManager artifactInsertStatementMan = new StatementBatchManager(artifactInsertStatement,"artifact","insert into artifact (urr,uuid,category,container,isAbstractValue,flavor,contentAsXml) values ", + " ON DUPLICATE KEY update uuid=values(uuid), category=values(category), container=values(container), isAbstractValue=values(isAbstractValue), flavor=values(flavor), contentAsXml=values(contentAsXml)",UPDATE_BATCH_SIZE, READ_BATCH_SIZE); + final String linkStatementString = "(?, ?, ?, ?, ?)"; + final PreparedStatement linkInsertStatement = connection.prepareStatement(linkStatementString); //$NON-NLS-1$ + final StatementBatchManager linkInsertStatementMan = new StatementBatchManager(linkInsertStatement,"link","insert into link (urr,category,flavor,fromArtifact,toArtifact) values ", + " ON DUPLICATE KEY update category=values(category), flavor=values(flavor), fromArtifact=values(fromArtifact), toArtifact=values(toArtifact)", UPDATE_BATCH_SIZE, READ_BATCH_SIZE); + final String edgeStatementString = "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; + final PreparedStatement edgeInsertStatement = connection.prepareStatement(edgeStatementString); //$NON-NLS-1$ + final StatementBatchManager edgeInsertStatementMan = new StatementBatchManager(edgeInsertStatement,"edge", + "insert into edge (urr,minCardinalityValueFromEdgeEnd,minCardinalityValueToEdgeEnd,maxCardinalityValueFromEdgeEnd,maxCardinalityValueToEdgeEnd,isNavigableValueFromEdgeEnd,isNavigableValueToEdgeEnd,isContainerValueFromEdgeEnd,isContainerValueToEdgeEnd,fromEdgeEnd,toEdgeEnd)values ", + " ON DUPLICATE KEY update minCardinalityValueFromEdgeEnd=values(minCardinalityValueFromEdgeEnd), minCardinalityValueToEdgeEnd=values(minCardinalityValueToEdgeEnd) ,maxCardinalityValueFromEdgeEnd=values(maxCardinalityValueFromEdgeEnd), maxCardinalityValueToEdgeEnd=values(maxCardinalityValueToEdgeEnd), isNavigableValueFromEdgeEnd=values(isNavigableValueFromEdgeEnd), isNavigableValueToEdgeEnd=values(isNavigableValueToEdgeEnd), isContainerValueFromEdgeEnd=values(isContainerValueFromEdgeEnd), isContainerValueToEdgeEnd=values(isContainerValueToEdgeEnd), fromEdgeEnd=values(fromEdgeEnd), toEdgeEnd=values(toEdgeEnd)", + UPDATE_BATCH_SIZE, READ_BATCH_SIZE); + + for (final String artefact : artefacts) { + final Gmodel model = serializer.unmarshallModel(artefact); + final Instance root = model.getInstance().get(0); + + persistArtifact(idInsertStatementMan, artifactInsertStatementMan,connection, root.getSemanticIdentity(), + root.getMetaElement(), root.getArtifact(), ""+root.isIsAbstract(), Flavor.VER, artefact); //$NON-NLS-1$ + + if (root.getLink() != null) { + for (final Object link : root.getLink().getVisibilityAndEdgeAndEdgeTrace()) { + if (link instanceof VisibilityType) { + final VisibilityType v = (VisibilityType) link; + persistLink(idInsertStatementMan, artifactInsertStatementMan, linkInsertStatementMan, connection, G.coreGraphs.visibility.identity().uniqueRepresentationReference().toString(), + root.getSemanticIdentity().getUniqueRepresentationReference(), Flavor.VIS, null, v.getSemanticIdentity(), v.getSourceInstance(), v.getTargetInstance()); + } else if (link instanceof SuperSetReferenceType) { + final SuperSetReferenceType s = (SuperSetReferenceType) link; + persistLink(idInsertStatementMan, artifactInsertStatementMan, linkInsertStatementMan, connection, G.coreGraphs.superSetReference.identity().uniqueRepresentationReference().toString(), + root.getSemanticIdentity().getUniqueRepresentationReference(), Flavor.SUP, null, s.getSemanticIdentity(), s.getSubSetInstance(), s.getSuperSetInstance()); + } else if (link instanceof EdgeType) { + final EdgeType e = (EdgeType) link; + final EdgeEnd fromEdgeEnd = e.getEdgeEnd().get(0); + final EdgeEnd toEdgeEnd = e.getEdgeEnd().get(1); + + persistArtifact(idInsertStatementMan, artifactInsertStatementMan, connection, fromEdgeEnd.getSemanticIdentity(), + fromEdgeEnd.getMetaElement(), root.getSemanticIdentity().getUniqueRepresentationReference(), ""+root.isIsAbstract(), Flavor.END, ""); //$NON-NLS-1$ //$NON-NLS-2$ + persistArtifact(idInsertStatementMan, artifactInsertStatementMan, connection, toEdgeEnd.getSemanticIdentity(), + toEdgeEnd.getMetaElement(), root.getSemanticIdentity().getUniqueRepresentationReference(), ""+root.isIsAbstract(), Flavor.END, null); //$NON-NLS-1$ + + persistLink(idInsertStatementMan, artifactInsertStatementMan, linkInsertStatementMan, connection, e.getMetaElement(), + root.getSemanticIdentity().getUniqueRepresentationReference(), Flavor.EDG, null, e.getSemanticIdentity(),fromEdgeEnd.getInstanceId(), toEdgeEnd.getInstanceId()); + persisteEdge(edgeInsertStatementMan, e, fromEdgeEnd, toEdgeEnd); + } + + } + } + } + + prepStatementsManagers.add(idInsertStatementMan); + prepStatementsManagers.add(artifactInsertStatementMan); + prepStatementsManagers.add(linkInsertStatementMan); + prepStatementsManagers.add(edgeInsertStatementMan); + + System.err.println("Batch execution request is sent"); //$NON-NLS-1$ + final String timerId = UUID.randomUUID().toString(); + Timer.getInstance().start(timerId); + idInsertStatement.executeQuery("start transaction"); + //executeBatchStatements(prepStatementsManagers,connection); //non-blocking version + executeAllStatements(prepStatementsManagers);//blocking version + connection.commit(); + Timer.getInstance().time(timerId, TimeUnit.MILLISECONDS); + System.err.println("Taken (ms): "+Timer.getInstance().getTimerRecords(timerId).getTimeTakenInMilliseconds()); + } catch (final SQLException ex) { + try { + connection.rollback(); + Logger.getLogger("global").log(Level.SEVERE, "Transaction has been rolled back", ex); //$NON-NLS-1$ //$NON-NLS-2$ + } catch (final SQLException e) {} + throw new IllegalStateException("Error in sql execution: "+ex.getMessage(), ex); //$NON-NLS-1$ + } catch (final IllegalStateException ex) { + try { + connection.rollback(); + } catch (final SQLException e) {} + throw new IllegalStateException("Error in sql execution: "+ex.getMessage(), ex); //$NON-NLS-1$ + } finally { + returnConnectionToPool(connection); + } + } + + /** + * Called each time configuration settings changes. + * + * @param configuration + */ + public void updateConfiguration(final Configuration configuration) { + if (configuration == null) { + factory = null; + } else { + //add mapping + //configuration.addClass(Document.class); + factory = configuration.buildSessionFactory(); + } + } + + private void validateGetArguments(final ArtefactContainer artifact) { + if (artifact.getContent().size() < MIN_ARGUMENT_SIZE) { + throw new UnsupportedOperationException("Ill-formatted get operation"); + } + } + + public ProtocolType getProtocolType() { + return ProtocolType.REPOSITORY_ACCESS; + } + +} \ No newline at end of file diff --git a/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/Repository.java b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/Repository.java new file mode 100644 index 0000000..7a79a87 --- /dev/null +++ b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/Repository.java @@ -0,0 +1,52 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.repository; + +import org.gmodel.serialization.container.ArtefactContainer; + +/** + * Basic Repository Interface. + */ + +public interface Repository { + + /** + * Retrieve artifacts that confirms to the given constraints from the repository + * @param artifact + * @return + * @throws UnsupportedOperationException + */ + public ArtefactContainer get(ArtefactContainer artifact)throws UnsupportedOperationException ; + + /** + * Persist the given artifacts to the repository + * @param artifact + * @throws UnsupportedOperationException + */ + public void put(ArtefactContainer artifact) throws UnsupportedOperationException; + +} \ No newline at end of file diff --git a/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/RepositoryStats.java b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/RepositoryStats.java new file mode 100644 index 0000000..c5d69fa --- /dev/null +++ b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/RepositoryStats.java @@ -0,0 +1,262 @@ +package org.gmodel.repository; + + +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; +import java.util.logging.Level; +import java.util.logging.Logger; + +import org.apache.commons.dbcp.ConnectionFactory; +import org.apache.commons.dbcp.DriverManagerConnectionFactory; +import org.apache.commons.dbcp.PoolableConnectionFactory; +import org.apache.commons.dbcp.PoolingDriver; +import org.apache.commons.pool.KeyedObjectPoolFactory; +import org.apache.commons.pool.impl.GenericKeyedObjectPoolFactory; +import org.apache.commons.pool.impl.GenericObjectPool; +import org.gmodel.serialization.Gmodel; +import org.gmodel.serialization.Gmodel.Instance; +import org.gmodel.serialization.serializer.SerializationContent; +import org.gmodel.statistics.Timer; +import org.jetlang.channels.Channel; +import org.jetlang.channels.MemoryChannel; +import org.jetlang.core.Callback; +import org.jetlang.fibers.Fiber; +import org.jetlang.fibers.PoolFiberFactory; + +import com.mysql.jdbc.CallableStatement; +import com.mysql.jdbc.Connection; +import com.mysql.jdbc.PreparedStatement; +import com.mysql.jdbc.ResultSetMetaData; + +public class RepositoryStats { + + + public static void testArtifactTransportation(final List artefacts) { + Connection connection = null; + final List prepStatements = new ArrayList(); + + final CallableStatement storedProc = null; + try { + Class.forName("com.mysql.jdbc.Driver"); + connection = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/repository?user=root&password="); + connection.setAutoCommit(false); + final PreparedStatement idInsertStatement = (PreparedStatement) connection.prepareStatement("insert into identity values (?, ?, ?, ?)");; + final PreparedStatement artifactInsertStatement = (PreparedStatement) connection.prepareStatement("insert into artifact values (?, ?, ?, ?, ?, ?, ?)"); + final PreparedStatement linkInsertStatement = (PreparedStatement) connection.prepareStatement("insert into link values (?, ?, ?, ?, ?, ?, ?)"); + + for (final SerializationContent artifact : artefacts) { + final Gmodel model = artifact.getModel(); + final Instance root = model.getInstance().get(0); + final String payload = root.getSemanticIdentity().getPayload() == null ? null : root.getSemanticIdentity().getPayload(); + + setUpIdInsertStatement(idInsertStatement, root.getSemanticIdentity().getUniqueRepresentationReference(), + root.getSemanticIdentity().getName(), + root.getSemanticIdentity().getPluralName(), + payload); + idInsertStatement.addBatch(); + + setUpArtifactInsertStatement(artifactInsertStatement, + root.getSemanticIdentity().getUniqueRepresentationReference(), + root.getSemanticIdentity().getIdentifier(), + root.getMetaElement(), + root.getArtifact(), + ""+root.isIsAbstract(), + "VER", + artifact.getContent()); + artifactInsertStatement.addBatch(); + } + prepStatements.add(idInsertStatement); + prepStatements.add(artifactInsertStatement); + executeBatchStatements(prepStatements, connection); + System.err.println("Batch execution request is sent"); + }catch (final SQLException ex) { + Logger.getLogger("global").log(Level.SEVERE, "Transaction has been rolled back", ex); + } catch (final ClassNotFoundException ex) { + Logger.getLogger("global").log(Level.SEVERE, "DB driver not found", ex); + } + } + + public static void testInstanceRetrieval(final String uuid) { + Connection connection = null; + CallableStatement fetchContainedInstanceProc = null; + try { + Class.forName("com.mysql.jdbc.Driver"); + connection = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/repository?" + + "user=root&password="); + connection.setAutoCommit(false); + fetchContainedInstanceProc = (CallableStatement) connection.prepareCall("{ call getContainedInstances(?) }"); + fetchContainedInstanceProc.setString(1, uuid); + Timer.getInstance().start(uuid); + fetchContainedInstanceProc.execute(); + final ResultSet rs = fetchContainedInstanceProc.getResultSet(); + final ResultSetMetaData rsMetaData = (ResultSetMetaData) rs.getMetaData(); + final List xmlDocs = new ArrayList(); + + while (rs.next()) { + xmlDocs.add(rs.getString("xml1")); + xmlDocs.add(rs.getString("xml2")); + xmlDocs.add(rs.getString("xml3")); + xmlDocs.add(rs.getString("xml4")); + } + Timer.getInstance().time(uuid, TimeUnit.MILLISECONDS); + System.err.println("Time taken: "+Timer.getInstance().getTimerRecords(uuid).getTimeTakenInMilliseconds()); + + rs.close(); + fetchContainedInstanceProc.close(); + if (!connection.isClosed()) { + connection.close(); + } + } catch (final SQLException ex) { + Logger.getLogger("global").log(Level.SEVERE, "Transaction has been rolled back", ex); + } catch (final ClassNotFoundException ex) { + Logger.getLogger("global").log(Level.SEVERE, "DB driver not found", ex); + } + } + + + private static void setUpIdInsertStatement(final PreparedStatement statement, final String uuid, final String name, final String pluralName, final String payload) throws SQLException { + statement.setString(1,uuid); + statement.setString(2, name); + statement.setString(3,pluralName); + statement.setString(4, payload); + } + + private static void setUpArtifactInsertStatement(final PreparedStatement artifactInsertStatement, final String urr, final String uuid, final String category, + final String container, final String isAbstractId, final String flavor, final String xmlContent) throws SQLException { + artifactInsertStatement.setString(1, urr); + artifactInsertStatement.setString(2, uuid); + artifactInsertStatement.setString(3, category); + artifactInsertStatement.setString(4, container); + artifactInsertStatement.setString(5, isAbstractId); //isAbstract to be URR + artifactInsertStatement.setString(6, flavor); + artifactInsertStatement.setString(7, xmlContent); + } + + private static void setUpSupersetReferenceInsertStatement(final PreparedStatement statement) { + + } + + public static void testBactchInsert(final int numberOfInserts) throws SQLException { + final GenericObjectPool pool = new GenericObjectPool(null); + final ConnectionFactory cf = new DriverManagerConnectionFactory("jdbc:mysql://localhost/repository","root",""); + + final KeyedObjectPoolFactory kopf =new GenericKeyedObjectPoolFactory(null, 8); + + final PoolableConnectionFactory pcf = new PoolableConnectionFactory(cf, + pool, + kopf, + null, + false, + true); + + for(int i = 0; i < 5; i++) { + try { + pool.addObject(); + } catch (final Exception e) { + e.printStackTrace(); + } + } + + new PoolingDriver().registerPool("repositoryConnectionPool", pool); + + final java.sql.Connection pooledConn = DriverManager.getConnection("jdbc:apache:commons:dbcp:repositoryConnectionPool"); + System.err.println("Are we connected? " + !pooledConn.isClosed()); + System.err.println("Idle Connections: " + pool.getNumIdle() + ", out of " + pool.getNumActive()); + + Connection connection = null; + final List prepStatements = new ArrayList(); + PreparedStatement preparedStatement = null; + final CallableStatement storedProc = null; + try { + Class.forName("com.mysql.jdbc.Driver"); + connection = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/repository?" + + "user=root&password="); + //connection = DriverManager.getConnection("jdbc:mysql://gmodeldemo.cmclk9pnjkez.us-east-1.rds.amazonaws.com/tmp?" + // + "user=adminrds&password=biF3ld896i"); + //Multiple statements are grouped into a single transaction + connection.setAutoCommit(false); + //storedProc = connection.prepareCall("{ call createidentity(?, ?, ?, ?) }"); + + preparedStatement = (PreparedStatement) connection.prepareStatement("insert into identity values (?, ?, ?, ?)"); + + for (int n = 0; n < numberOfInserts; n++) { + + // storedProc.setString(1, UUID.randomUUID().toString()); + // storedProc.setString(2, "MyName "+n); + // storedProc.setString(3, "My Plural Name "+n); + // storedProc.setString(4, null); + // storedProc.addBatch(); + + preparedStatement.setString(1, UUID.randomUUID().toString()); + preparedStatement.setString(2, "MyName "+n); + preparedStatement.setString(3, "My Plural Name "+n); + preparedStatement.setString(4, null); + preparedStatement.addBatch(); + } + //Timer.getInstance().start("testBactchInsert"); + //storedProc.executeBatch(); + //final int[] updateCounts = preparedStatement.executeBatch(); + //System.err.println(updateCounts); + //connection.commit(); + prepStatements.add(preparedStatement); + executeBatchStatements(prepStatements, connection); + System.err.println("Batch execution request is sent"); + }catch (final SQLException ex) { + Logger.getLogger("global").log(Level.SEVERE, "Transaction has been rolled back", ex); + } catch (final ClassNotFoundException ex) { + Logger.getLogger("global").log(Level.SEVERE, "DB driver not found", ex); + } + } + + private static void executeBatchStatements(final List statements, final Connection connection) throws SQLException { + final ExecutorService service = Executors.newCachedThreadPool(); //should be created externally + final PoolFiberFactory fact = new PoolFiberFactory(service); + final Fiber fiber = fact.create(); + fiber.start(); + + final Channel> msgChannel = new MemoryChannel>(); + + final Callback> callBack = new Callback>() { + public void onMessage(final List stmts) { + final String timerId = UUID.randomUUID().toString(); + Timer.getInstance().start(timerId); + try { + for (final PreparedStatement statement : stmts) { + statement.executeBatch(); + } + connection.commit(); + Timer.getInstance().time(timerId, TimeUnit.MILLISECONDS); + final long timeTaken = Timer.getInstance().getTimerRecords(timerId).getTimeTakenInMilliseconds(); + System.err.println("Time taken: "+timeTaken); + if (connection!= null) { + connection.setAutoCommit(true); + connection.close(); + } + fact.dispose(); + service.shutdown(); + } catch (final SQLException ex) { + ex.printStackTrace(); + if (connection != null) { + try { + connection.rollback(); + } catch (final SQLException e) { + e.printStackTrace(); + } + Logger.getLogger("global").log(Level.SEVERE, "Transaction has been rolled back", ex); + } + } + } + }; + + msgChannel.subscribe(fiber, callBack); + msgChannel.publish(statements); + } + +} \ No newline at end of file diff --git a/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/StatementBatchManager.java b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/StatementBatchManager.java new file mode 100644 index 0000000..28564f0 --- /dev/null +++ b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/StatementBatchManager.java @@ -0,0 +1,167 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.repository; + +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import org.apache.commons.collections.map.ListOrderedMap; +import org.gmodel.serialization.serializer.SerializationType; +import org.gmodel.serialization.serializer.Serializer; +import org.gmodel.serialization.serializer.SerializerHolder; + +public class StatementBatchManager { + + private final int updateBatchSize; + private final PreparedStatement statement; + private final List statementStrings; + private final List urrsToFetch; + private final Serializer serializer; + private final int readBatchSize; + private final String queryPrefix; + private final String queryPostfix; + private final String tableName; + + protected StatementBatchManager(final PreparedStatement statement, final String tableName, final String queryPrefix, final String queryPostfix, final int updateBatchSize, final int readBatchSize) { + this.statement = statement; + this.tableName = tableName; + this.queryPrefix = queryPrefix; + this.queryPostfix = queryPostfix; + this.updateBatchSize = updateBatchSize; + this.readBatchSize = readBatchSize; + statementStrings = new ArrayList(); + urrsToFetch = new ArrayList(); + serializer = SerializerHolder.getGmodelInstanceSerializer(SerializationType.XML); + } + + protected void addToBatch(final String sqlString) { + statementStrings.add(sqlString); + } + + protected void addToURRList(final String urr) { + urrsToFetch.add(urr); + } + + protected PreparedStatement getStatement() { + return statement; + } + + protected List getStatementStrings() { + return statementStrings; + } + + protected void commitStatementBatches() throws SQLException { + final List insertQrys = getInsertQuery(); + int count = 1; + for (final String qry : insertQrys) { + statement.execute(qry); + System.err.println("Updated "+count+"/"+insertQrys.size()); + count++; + } + } + + protected void executeSelectQueries(final ListOrderedMap xmlDocs) throws SQLException { + final List queries = getSelectQuery(); + int count = 1; + for (final String qry : queries) { + statement.execute(qry); + final ResultSet result = statement.getResultSet(); + while (result.next()) { + final String urr = result.getString(1); + final String xml = result.getString(2); + xmlDocs.put(urr, xml); + } + result.close(); + System.err.println("Fetched "+count+"/"+queries.size()); + count++; + } + } + + private List getInsertQuery() { + final List qryStrings = new ArrayList(); + int n = 1; + int lastIndex = 0; + + String urrString = ""; + final Iterator itr = statementStrings.iterator(); + while (itr.hasNext()) { + urrString += itr.next()+","; + if (n % updateBatchSize == 0) { + if(urrString.endsWith(",")) { + urrString = urrString.substring(0, urrString.length()-1); + qryStrings.add(queryPrefix+urrString+queryPostfix); + } + urrString = ""; + lastIndex = n-1; + } + n++; + } + urrString = ""; + for (int i = lastIndex; i < statementStrings.size(); i++) { + urrString += statementStrings.get(i)+","; + } + if(urrString.endsWith(",")) { + urrString = urrString.substring(0, urrString.length()-1); + qryStrings.add(queryPrefix+urrString+queryPostfix); + } + return qryStrings; + } + + private List getSelectQuery() { + final List qryStrings = new ArrayList(); + final String qry = "select urr, contentAsXml from artifact where urr in "; + int n = 1; + int lastIndex = 0; + final String openToken = "("; + final String endToken = ")"; + + String urrString = openToken; + final Iterator itr = urrsToFetch.iterator(); + while (itr.hasNext()) { + urrString += "'"+itr.next()+"',"; + if (n % readBatchSize == 0) { + urrString = urrString.substring(0, urrString.length()-1)+endToken; + qryStrings.add(qry+urrString); + urrString = openToken; + lastIndex = n-1; + } + n++; + } + urrString = openToken; + for (int i = lastIndex; i < urrsToFetch.size() ; i++) { + urrString += "'"+urrsToFetch.get(i)+"',"; + } + urrString = urrString.substring(0, urrString.length()-1)+endToken; + qryStrings.add(qry+urrString); + return qryStrings; + } + +} \ No newline at end of file diff --git a/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/StringToUUIDTransformer.java b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/StringToUUIDTransformer.java new file mode 100644 index 0000000..023f091 --- /dev/null +++ b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/StringToUUIDTransformer.java @@ -0,0 +1,38 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: SMTL 1.0 + * + * The contents of this file are subject to the Sofismo Model Technology License Version + * 1.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.sofismo.ch/SMTL/ + * + * Software distributed under the License is distributed on an "AS IS" basis. + * See the License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is Gmodel Semantic Extensions Edition. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.repository; + +import java.util.UUID; + +import org.apache.commons.collections.Transformer; + +public class StringToUUIDTransformer implements Transformer { + + public UUID transform(final Object s) { + return (s == null ? null : UUID.fromString(s.toString())); + } + +} diff --git a/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/connector/RepositoryConnector.java b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/connector/RepositoryConnector.java new file mode 100644 index 0000000..0eed585 --- /dev/null +++ b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/connector/RepositoryConnector.java @@ -0,0 +1,71 @@ +package org.gmodel.repository.connector; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import org.gmodel.repository.ConfigValues; +import org.gmodel.repository.Repository; +import org.gmodel.serialization.container.ArtefactContainer; +import org.gmodel.serialization.serializer.SerializationType; +import org.gmodel.serialization.serializer.Serializer; +import org.gmodel.serialization.serializer.SerializerHolder; + +import com.rabbitmq.client.Channel; +import com.rabbitmq.client.Connection; +import com.rabbitmq.client.ConnectionFactory; +import com.rabbitmq.client.RpcClient; +import com.rabbitmq.client.ShutdownSignalException; + +public class RepositoryConnector implements Repository { + + private RpcClient repositoryAccessClient; + + private static class RepositoryConnectorHolder { + public static final RepositoryConnector CONNECTOR = new RepositoryConnector(); + } + + private RepositoryConnector() { + initConnector(); + } + + private void initConnector() { + final ConnectionFactory cfconn = new ConnectionFactory(); + cfconn.setHost(ConfigValues.getValue("RepositoryConnector.HOST_NAME")); //$NON-NLS-1$ + cfconn.setPort(Integer.parseInt("RepositoryConnector.PORT_NUMBER")); //$NON-NLS-1$ + Connection conn; + try { + conn = cfconn.newConnection(); + final Channel ch = conn.createChannel(); + repositoryAccessClient = new RpcClient(ch, "", "RepositoryConnector.QUEUE_NAME"); //$NON-NLS-1$ //$NON-NLS-2$ + } catch (final IOException ex) { + throw new IllegalStateException("connector initialization set up is failed",ex); //$NON-NLS-1$ + } + } + + public static Repository getComponent() { + return RepositoryConnectorHolder.CONNECTOR; + } + + public ArtefactContainer get(final ArtefactContainer artifact)throws UnsupportedOperationException { + final Map artifactsToGet = new HashMap(); + Map returnedArtifacts = null; + final Serializer sz = SerializerHolder.getGmodelInstanceSerializer(SerializationType.XML); + artifactsToGet.put(artifact.getContentType(), sz.serializeContainer(artifact)); + try { + returnedArtifacts = repositoryAccessClient.mapCall(artifactsToGet); + } catch (final ShutdownSignalException ex) { + throw new UnsupportedOperationException(ConfigValues.getValue("RepositoryConnector.INVOCATION_ERROR"),ex); + } catch (final IOException ex) { + throw new UnsupportedOperationException(ConfigValues.getValue("RepositoryConnector.INVOCATION_ERROR"),ex); + } + final String serializedResponse = returnedArtifacts.entrySet().iterator().next().getValue().toString(); + System.err.println("Response: \n\r"+serializedResponse); + return sz.unmarshallContainer(serializedResponse); + } + + public void put(final ArtefactContainer artifact) throws UnsupportedOperationException { + get(artifact); + } + +} diff --git a/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/domainclasses/Document.hbm.xml b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/domainclasses/Document.hbm.xml new file mode 100644 index 0000000..5d415d9 --- /dev/null +++ b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/domainclasses/Document.hbm.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/domainclasses/Document.java b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/domainclasses/Document.java new file mode 100644 index 0000000..463d00e --- /dev/null +++ b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/domainclasses/Document.java @@ -0,0 +1,115 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.repository.domainclasses; + + +public class Document { + + private String binaryContent; //base64 + private String content; + private String id; + + public Document() { + } + + public Document(final String id, final String content) { + this(); + this.id = id; + this.content = content; + } + + public String getBinaryContent() { + return binaryContent; + } + + public String getContent() { + return content; + } + + public String getId() { + return id; + } + + public void setBinaryContent(final String binaryContent) { + this.binaryContent = binaryContent; + } + + public void setContent(final String content) { + this.content = content; + } + + public void setId(final String id) { + this.id = id; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + + ((binaryContent == null) ? 0 : binaryContent.hashCode()); + result = prime * result + ((content == null) ? 0 : content.hashCode()); + result = prime * result + ((id == null) ? 0 : id.hashCode()); + return result; + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final Document other = (Document) obj; + if (binaryContent == null) { + if (other.binaryContent != null) { + return false; + } + } else if (!binaryContent.equals(other.binaryContent)) { + return false; + } + if (content == null) { + if (other.content != null) { + return false; + } + } else if (!content.equals(other.content)) { + return false; + } + if (id == null) { + if (other.id != null) { + return false; + } + } else if (!id.equals(other.id)) { + return false; + } + return true; + } + +} diff --git a/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/domainclasses/SemanticIndex.java b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/domainclasses/SemanticIndex.java new file mode 100644 index 0000000..969f2d7 --- /dev/null +++ b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/domainclasses/SemanticIndex.java @@ -0,0 +1,163 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.repository.domainclasses; + +public class SemanticIndex { + + private String identity; + private String instanceTypeName; + private String metaElementId; + private String name; + private String container; + private Document ownerDocument; + private String pluralName; + private String URR; + private String UUID; + + @SuppressWarnings("unused") + private SemanticIndex() { + // needed for Hibernate + } + + public SemanticIndex(final String UUID, final String identity, final String URR, final String container, final Document ownerDocument, final String name, + final String pluralName, final String metaElementId, final String instanceTypeName) { + this.UUID = UUID; + this.identity = identity; + this.URR = URR; + this.container = container; + setOwnerDocument(ownerDocument); + this.name = name; + this.pluralName = pluralName; + this.metaElementId = metaElementId; + this.instanceTypeName = instanceTypeName; + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final SemanticIndex other = (SemanticIndex) obj; + if (UUID == null) { + if (other.UUID != null) { + return false; + } + } else if (!UUID.equals(other.UUID)) { + return false; + } + return true; + } + + public String getContainer() { + return container; + } + + public String getIdentity() { + return identity; + } + + public String getInstanceTypeName() { + return instanceTypeName; + } + + + + public String getMetaElementId() { + return metaElementId; + } + + public String getName() { + return name; + } + + public Document getOwnerDocument() { + return ownerDocument; + } + + public String getPluralName() { + return pluralName; + } + + public String getURR() { + return URR; + } + + public String getUUID() { + return UUID; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((UUID == null) ? 0 : UUID.hashCode()); + return result; + } + + public void setContainer(final String container) { + this.container = container; + } + + + public void setIdentity(final String identity) { + this.identity = identity; + } + + public void setInstanceTypeName(final String instanceTypeName) { + this.instanceTypeName = instanceTypeName; + } + + public void setMetaElementId(final String metaElementId) { + this.metaElementId = metaElementId; + } + + public void setName(final String name) { + this.name = name; + } + + public void setOwnerDocument(final Document ownerDocument) { + this.ownerDocument = ownerDocument; + } + + public void setPluralName(final String pluralName) { + this.pluralName = pluralName; + } + + public void setURR(final String uRR) { + URR = uRR; + } + + public void setUUID(final String uUID) { + UUID = uUID; + } + +} diff --git a/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/mediator/RepositoryMediator.java b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/mediator/RepositoryMediator.java new file mode 100644 index 0000000..59dd03a --- /dev/null +++ b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/mediator/RepositoryMediator.java @@ -0,0 +1,44 @@ +package org.gmodel.repository.mediator; + +import org.gmodel.repository.ConfigValues; +import org.gmodel.repository.RelationalDatabaseRepository; +import org.gmodel.repository.Repository; +import org.gmodel.repository.connector.RepositoryConnector; +import org.gmodel.serialization.serializer.ProtocolType; + +public class RepositoryMediator { + + private static class MediatorHolder { + public static final RepositoryMediator MEDIATOR = new RepositoryMediator(); + } + + private RepositoryMediator() { + } + + public static RepositoryMediator getInstance() { + return MediatorHolder.MEDIATOR; + } + + public Repository getComponent(final ProtocolType type)throws UnsupportedOperationException { + if (!type.equals(ProtocolType.REPOSITORY_ACCESS)) { + throw new UnsupportedOperationException("Not supported protocol"); + } + final String s = ConfigValues.getValue("RepositoryConnector.IMPL_CLASS"); + if(isLocallyAvailable(ConfigValues.getValue("RepositoryConnector.IMPL_CLASS"))) { + return RelationalDatabaseRepository.getRepository(); + } else { + return RepositoryConnector.getComponent(); //pass back an interface that send artefacts over AMQP + } + } + + private boolean isLocallyAvailable(final String className) { + final ClassLoader classLoader = RepositoryMediator.class.getClassLoader(); + boolean isAvaiable = false; + try { + final Class aClass = classLoader.loadClass(className); + isAvaiable = true; + } catch (final ClassNotFoundException ex) {} + return isAvaiable; + } + +} diff --git a/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/search/SearchResultsPool.java b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/search/SearchResultsPool.java new file mode 100644 index 0000000..c683b7d --- /dev/null +++ b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/search/SearchResultsPool.java @@ -0,0 +1,114 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.repository.search; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.gmodel.artifactpool.HashMapObjectPool; +import org.gmodel.artifactpool.ObjectPool; +import org.gmodel.common.search.SearchResult; + +public final class SearchResultsPool { + + private final ObjectPool> pool; + + private final Map> instanceToQueryKeyMap; // map instance UUIs to search query keys + + private static class SearchResultsPoolHolder { + public static final SearchResultsPool INSTANCE = new SearchResultsPool(); + } + + public static SearchResultsPool getInstance() { + return SearchResultsPoolHolder.INSTANCE; + } + + private SearchResultsPool() { + pool = new HashMapObjectPool>(); + instanceToQueryKeyMap = new HashMap>(); + } + + @Override + public Object clone() throws CloneNotSupportedException { + throw new CloneNotSupportedException(); + } + + public boolean contains(final String query) { + return pool.contains(query); + } + + /** + * Expire the pool + */ + public void expire() { + pool.expire(); + synchronized(instanceToQueryKeyMap) { + instanceToQueryKeyMap.clear(); + } + } + + public List get(final String query) { + return pool.get(query); + } + + public void put(final String query, final List results) { + pool.put(query, results); + synchronized(instanceToQueryKeyMap) { + for(final SearchResult r : results) { + final String uuid = r.getInstanceIdentity().getUUID().toString(); + if (instanceToQueryKeyMap.containsKey(uuid)) { + final List qKeys = instanceToQueryKeyMap.get(uuid); + if (!qKeys.contains(query)) { + qKeys.add(query); + } + } else { + final List qKeys = new ArrayList(); + qKeys.add(query); + instanceToQueryKeyMap.put(uuid, qKeys); + } + } + } + } + + /** + * Remove all search results which contain the instance UUID + * + * @param instanceID + */ + public void removeFromPool(final String instanceUUID) { + synchronized(instanceToQueryKeyMap) { + if (instanceToQueryKeyMap.containsKey(instanceUUID)) { + final List qKeys = instanceToQueryKeyMap.get(instanceUUID); + for (final String k : qKeys) { + pool.remove(k); + } + } + } + } + +} diff --git a/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/server/RepositoryAccessServer.java b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/server/RepositoryAccessServer.java new file mode 100644 index 0000000..72478c4 --- /dev/null +++ b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/server/RepositoryAccessServer.java @@ -0,0 +1,125 @@ +package org.gmodel.repository.server; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.gmodel.repository.ConfigValues; +import org.gmodel.repository.RelationalDatabaseRepository; +import org.gmodel.serialization.container.ArtefactContainer; +import org.gmodel.serialization.serializer.SerializationType; +import org.gmodel.serialization.serializer.Serializer; +import org.gmodel.serialization.serializer.SerializerHolder; + +import com.rabbitmq.client.Channel; +import com.rabbitmq.client.Connection; +import com.rabbitmq.client.ConnectionFactory; +import com.rabbitmq.client.MapRpcServer; + +public class RepositoryAccessServer { + + private final static RelationalDatabaseRepository client = RelationalDatabaseRepository.getRepository(); + private Channel ch; + private List launchers; + + public static void main(final String[] args) { + try { + new RepositoryAccessServer().startServers(); + } catch (final IOException e) { + e.printStackTrace(); + } + } + + + private RepositoryAccessServer() throws IOException { + setupConnection(); + } + + private MapRpcServer createRepositoryAccessServer() throws IOException { + final MapRpcServer server = new MapRpcServer(ch, ConfigValues.getValue("RepositoryConnector.QUEUE_NAME")) { + @Override + public Map handleMapCall(final Map request) { + if (request.entrySet().iterator().hasNext()) { + final String serializedArtifacts = request.entrySet().iterator().next().getValue().toString(); + System.err.println("Got: "+serializedArtifacts); + final Serializer sz = SerializerHolder.getGmodelInstanceSerializer(SerializationType.XML); + final ArtefactContainer artifacts = sz.unmarshallContainer(serializedArtifacts); + final SerializationType typeOfService = SerializationType.valueOf(artifacts.getContentType()); + System.err.println("Type: "+typeOfService); + if (isGetOperation(typeOfService)) { + final ArtefactContainer results = client.get(artifacts); + final String serializedResults = sz.serializeContainer(results); + return createResponseMessage("",serializedResults); //$NON-NLS-1$ + } else { + client.put(artifacts); + return createResponseMessage("",null); //$NON-NLS-1$ + } + } else { + return createResponseMessage("Missing artefact","Missing artefact"); + } + } + + private boolean isGetOperation(final SerializationType typeOfService) { + boolean isGetOp = false; + switch (typeOfService) { + case ARTIFACT_RETRIEVAL: + isGetOp = true; + break; + case CONTAINMENT_TREE: + isGetOp = true; + break; + case DEPENDENT_INSTANCES: + isGetOp = true; + break; + case CONTAINMENT_TREE_UUIDS_RETRIEVAL: + isGetOp = true; + break; + case SEARCH_ARGUMENTS: + isGetOp = true; + break; + default: throw new UnsupportedOperationException( ConfigValues.getValue("RepositoryConnector.NOT_SUPPORTED_ERROR")); + } + return isGetOp; + } + }; + return server; + } + + private Map createResponseMessage(final String reposonse, final String msg) { + final Map map = new HashMap(); + map.put(reposonse, msg); + return map; + } + + private void setupConnection() throws IOException { + final ConnectionFactory connFactory = new ConnectionFactory(); + connFactory.setHost(ConfigValues.getValue("RepositoryConnector.HOST_NAME")); + connFactory.setPort(Integer.parseInt(ConfigValues.getValue("RepositoryConnector.PORT_NUMBER"))); + final Connection conn = connFactory.newConnection(); + ch = conn.createChannel(); + ch.queueDeclare(ConfigValues.getValue("RepositoryConnector.QUEUE_NAME"), false, false, false, null); + } + + private List setUpServers() throws IOException { + final List serverLaunchers = new ArrayList(); + final MapRpcServer repoServer = createRepositoryAccessServer(); + serverLaunchers.add(new ServiceLauncher(repoServer)); + return serverLaunchers; + } + + private void startServers() throws IOException{ + launchers = setUpServers(); + for (final ServiceLauncher launcher : launchers) { + launcher.start(); + } + } + + private void terminateServers() throws InterruptedException{ + for (final ServiceLauncher launcher : launchers) { + launcher.terminate(); + } + } + +} \ No newline at end of file diff --git a/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/server/ServiceLauncher.java b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/server/ServiceLauncher.java new file mode 100644 index 0000000..06df3f0 --- /dev/null +++ b/src/trunk/org.gmodel.repository/src/main/java/org/gmodel/repository/server/ServiceLauncher.java @@ -0,0 +1,63 @@ +package org.gmodel.repository.server; + +import java.io.IOException; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +import org.jetlang.channels.MemoryChannel; +import org.jetlang.core.Callback; +import org.jetlang.fibers.Fiber; +import org.jetlang.fibers.PoolFiberFactory; + +import com.rabbitmq.client.RpcServer; + +public class ServiceLauncher { + + private static final String START_PROMPT = "start"; + private final Fiber fiber; + private final RpcServer server; + private final ExecutorService service; + private final PoolFiberFactory fact; + private MemoryChannel channel; + private final CountDownLatch cd; + + public ServiceLauncher(final RpcServer server) { + this.server = server; + this.cd = new CountDownLatch(1); + service = Executors.newCachedThreadPool(); + fact = new PoolFiberFactory(service); + fiber = fact.create(); + } + + public CountDownLatch getCountDownLatch() { + return cd; + } + + public void start() throws IllegalStateException { + fiber.start(); + channel = new MemoryChannel(); + final Callback serverRunnable = new Callback() { + public void onMessage(final String msg) { + try { + if (msg.equals(START_PROMPT)) { + server.mainloop(); + } + } catch (final IOException ex) { + throw new IllegalStateException("Server faliled to start", ex); + } + } + }; + channel.subscribe(fiber, serverRunnable); + channel.publish(START_PROMPT); + } + + public void terminate() throws InterruptedException { + server.terminateMainloop(); + fiber.dispose(); + fact.dispose(); + service.shutdown(); + cd.countDown(); + } + +} diff --git a/src/trunk/org.gmodel.repository/src/main/resources/configvalues.properties b/src/trunk/org.gmodel.repository/src/main/resources/configvalues.properties new file mode 100644 index 0000000..cf4826c --- /dev/null +++ b/src/trunk/org.gmodel.repository/src/main/resources/configvalues.properties @@ -0,0 +1,16 @@ +RepositoryConnector.HOST_NAME=localhost +RepositoryConnector.PORT_NUMBER=5672 +RepositoryConnector.QUEUE_NAME=repository_access +RepositoryConnector.INVOCATION_ERROR=Service invocation is failed +RepositoryConnector.NOT_SUPPORTED_ERROR=This type is not supported +RepositoryConnector.IMPL_CLASS=org.gmodel.repository.RelationalDatabaseRepository + +Repository.INITIAL_CONNECTION_POOL_SIZE=5 +Repository.MAX_DEPTH=7 +Repository.MAX_NUM_ACTIVE_CONNECTION=20 +Repository.READ_BATCH_SIZE=100 +Repository.RelationalDatabaseRepository_ID=repositoryConnectionPool +Repository.UPDATE_BATCH_SIZE=50 +Repository.REPOSITORY_ACCOUNT=gmodeldemo +Repository.REPOSITORY_CONNECTION_STRING=jdbc:mysql://localhost/repository +Repository.REPOSITORY_PW= \ No newline at end of file diff --git a/src/trunk/org.gmodel.search.widget/.classpath b/src/trunk/org.gmodel.search.widget/.classpath new file mode 100644 index 0000000..2d1a430 --- /dev/null +++ b/src/trunk/org.gmodel.search.widget/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/trunk/org.gmodel.search.widget/.project b/src/trunk/org.gmodel.search.widget/.project new file mode 100644 index 0000000..a3dde47 --- /dev/null +++ b/src/trunk/org.gmodel.search.widget/.project @@ -0,0 +1,28 @@ + + + org.gmodel.search.widget + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/src/trunk/org.gmodel.search.widget/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.search.widget/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..c77415a --- /dev/null +++ b/src/trunk/org.gmodel.search.widget/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,8 @@ +#Wed Aug 18 14:58:16 CEST 2010 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.search.widget/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.search.widget/META-INF/MANIFEST.MF new file mode 100644 index 0000000..5d635e9 --- /dev/null +++ b/src/trunk/org.gmodel.search.widget/META-INF/MANIFEST.MF @@ -0,0 +1,21 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Search Result Widget +Bundle-SymbolicName: org.gmodel.search.widget; singleton:=true +Bundle-Version: 1.0.0 +Bundle-Activator: org.gmodel.search.widget.Activator +Require-Bundle: org.eclipse.ui, + org.eclipse.core.runtime, + org.eclipse.jface.text, + org.eclipse.core.resources, + org.eclipse.ui.editors, + org.eclipse.ui.ide, + org.eclipse.ui.forms, + org.gmodel.repository;bundle-version="1.0.0", + org.gmodel.kernel;bundle-version="1.0.0", + org.gmodel.visualization.containmenttree.viewer;bundle-version="1.0.0", + org.gmodel.serialization;bundle-version="1.0.0" +Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Export-Package: org.gmodel.search.widget, + org.gmodel.search.widget.editors diff --git a/src/trunk/org.gmodel.search.widget/build.properties b/src/trunk/org.gmodel.search.widget/build.properties new file mode 100644 index 0000000..4b8162a --- /dev/null +++ b/src/trunk/org.gmodel.search.widget/build.properties @@ -0,0 +1,6 @@ +source.. = src/ +output.. = bin/ +bin.includes = plugin.xml,\ + META-INF/,\ + .,\ + icons/ diff --git a/src/trunk/org.gmodel.search.widget/icons/search.png b/src/trunk/org.gmodel.search.widget/icons/search.png new file mode 100644 index 0000000..68f21d3 Binary files /dev/null and b/src/trunk/org.gmodel.search.widget/icons/search.png differ diff --git a/src/trunk/org.gmodel.search.widget/plugin.xml b/src/trunk/org.gmodel.search.widget/plugin.xml new file mode 100644 index 0000000..350a566 --- /dev/null +++ b/src/trunk/org.gmodel.search.widget/plugin.xml @@ -0,0 +1,16 @@ + + + + + + + + + + diff --git a/src/trunk/org.gmodel.search.widget/pom.xml b/src/trunk/org.gmodel.search.widget/pom.xml new file mode 100644 index 0000000..b319960 --- /dev/null +++ b/src/trunk/org.gmodel.search.widget/pom.xml @@ -0,0 +1,10 @@ + + 4.0.0 + + org.gmodel + org.gmodel.eclipse + 1.0.0 + + org.gmodel.search.widget + eclipse-plugin + diff --git a/src/trunk/org.gmodel.search.widget/src/org/gmodel/search/widget/Activator.java b/src/trunk/org.gmodel.search.widget/src/org/gmodel/search/widget/Activator.java new file mode 100644 index 0000000..ab8acdd --- /dev/null +++ b/src/trunk/org.gmodel.search.widget/src/org/gmodel/search/widget/Activator.java @@ -0,0 +1,86 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.search.widget; + +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.osgi.framework.BundleContext; + +/** + * The activator class controls the plug-in life cycle + */ +public class Activator extends AbstractUIPlugin { + + // The plug-in ID + public static final String PLUGIN_ID = "org.gmodel.search.widget"; + + // The shared instance + private static Activator plugin; + + /** + * The constructor + */ + public Activator() { + } + + /* + * (non-Javadoc) + * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) + */ + public void start(BundleContext context) throws Exception { + super.start(context); + plugin = this; + } + + /* + * (non-Javadoc) + * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) + */ + public void stop(BundleContext context) throws Exception { + plugin = null; + super.stop(context); + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public static Activator getDefault() { + return plugin; + } + + /** + * Returns an image descriptor for the image file at the given + * plug-in relative path + * + * @param path the path + * @return the image descriptor + */ + public static ImageDescriptor getImageDescriptor(String path) { + return imageDescriptorFromPlugin(PLUGIN_ID, path); + } +} diff --git a/src/trunk/org.gmodel.search.widget/src/org/gmodel/search/widget/editors/ResultPage.java b/src/trunk/org.gmodel.search.widget/src/org/gmodel/search/widget/editors/ResultPage.java new file mode 100644 index 0000000..2429f6c --- /dev/null +++ b/src/trunk/org.gmodel.search.widget/src/org/gmodel/search/widget/editors/ResultPage.java @@ -0,0 +1,258 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.search.widget.editors; + +import java.util.UUID; +import java.util.logging.Logger; + +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.commands.NotEnabledException; +import org.eclipse.core.commands.NotHandledException; +import org.eclipse.core.commands.common.NotDefinedException; +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.StyleRange; +import org.eclipse.swt.custom.StyledText; +import org.eclipse.swt.events.MouseEvent; +import org.eclipse.swt.events.MouseListener; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.Cursor; +import org.eclipse.swt.graphics.Font; +import org.eclipse.swt.graphics.FontData; +import org.eclipse.swt.layout.RowLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.forms.events.HyperlinkAdapter; +import org.eclipse.ui.forms.events.HyperlinkEvent; +import org.eclipse.ui.forms.widgets.FormToolkit; +import org.eclipse.ui.forms.widgets.Hyperlink; +import org.eclipse.ui.forms.widgets.ScrolledForm; +import org.eclipse.ui.forms.widgets.TableWrapData; +import org.eclipse.ui.forms.widgets.TableWrapLayout; +import org.eclipse.ui.handlers.IHandlerService; +import org.gmodel.serialization.container.InstanceIdentityType; +import org.gmodel.serialization.container.SearchResultType; +import org.gmodel.visualization.containmenttree.viewer.ContainmentTreeManager; +import org.gmodel.visualization.containmenttree.viewer.SearchWidgetInput; + +public class ResultPage { + + private static final String TXT_GAP = " "; + private static final String URR_TAG = "URR: "; + private static final String PLURAL_NAME_TAG = TXT_GAP+"plural Name: "; + private static final String NAME_TAG = TXT_GAP+"name: "; + private static final String PART_TAG = "part of: "; + private static final String INSTANCE_SELECTION_COMMAND = "org.gmodel.visualization.containmenttree.viewer.commands.instanceSelection"; + private static final String RETRIEVAL_COMMAND = "org.gmodel.visualization.containmenttree.viewer.commands.retrieve"; + private static final int FULL_COL_SPAN = 2; + private static final int PAGE_SIZE = 8; + private static final int PAGE_LINK_FONT_SIZE = 12; + private static final String META_ELEMENT_NOTATION = " : "; + + private Composite parent = null; + private FormToolkit toolkit; + private ScrolledForm form; + private SearchWidgetInput searchInput; + private int pageIndex; + + protected ResultPage(FormToolkit toolkit, ScrolledForm form, SearchWidgetInput searchInput) { + this.toolkit = toolkit; + this.form = form; + this.searchInput = searchInput; + buildPage(); + } + + private void buildPage() { + if (parent != null) { + parent.dispose(); + } + parent = toolkit.createComposite(form.getBody()); + TableWrapLayout parentLayout = new TableWrapLayout(); + parentLayout.numColumns = 2; + parent.setLayout(parentLayout); + + final Label lblSearchText = toolkit.createLabel(parent, + searchInput.getSearchText(), + SWT.WRAP); + lblSearchText.setFont(getFontWithSize(lblSearchText, 16)); + setLayoutData(lblSearchText, FULL_COL_SPAN); + + final Label lblResults = toolkit.createLabel(parent, + "Returned "+searchInput.getResults().size()+" result(s)", + SWT.WRAP); + setLayoutData(lblResults, FULL_COL_SPAN); + + final int startIndex = pageIndex * PAGE_SIZE; + final int endIndex = startIndex + PAGE_SIZE; + + if (!searchInput.getResults().isEmpty()) { + for (int n = startIndex; (n < endIndex && n < searchInput.getResults().size()); n++) { + final SearchResultType result = searchInput.getResults().get(n); + final InstanceIdentityType instanceId = result.getInstanceIdentity(); + final InstanceIdentityType containerId = result.getContainerIdentity(); + + final StyledText txtInstanceLink = new StyledText(parent, SWT.READ_ONLY); + final String metaLinkTxt = result.getMetaInstanceIdentity().getName()+META_ELEMENT_NOTATION; + final String instanceLinkTxt = metaLinkTxt+instanceId.getName(); + txtInstanceLink.setText(instanceLinkTxt); + txtInstanceLink.addMouseListener(new MouseListener() { + public void mouseDoubleClick(MouseEvent e) { + } + + public void mouseDown(MouseEvent e) { + } + + public void mouseUp(MouseEvent e) { + final UUID urrToSelect = (result.getMetaInstanceIdentity().getName().equals("edge end")) ? UUID.fromString(containerId.getUuid()) : UUID.fromString(instanceId.getUuid()); + //TODO: F_SemanticStateOfInMemoryModel.coreGraphs.edgeEnd.identity().getName() should be used instead but this will violate the initialization sequence + loadContainmentTree(urrToSelect, ContainmentTreeManager.isModelLoaded()); + } + }); + + txtInstanceLink.addListener(SWT.MouseExit, new Listener() { + public void handleEvent(Event e) { + txtInstanceLink.setCursor(null); + } + }); + txtInstanceLink.addListener(SWT.MouseEnter, new Listener() { + public void handleEvent(Event e) { + final Cursor wCursor = new Cursor(null, SWT.CURSOR_HAND); + txtInstanceLink.setCursor(wCursor); + } + }); + txtInstanceLink.setStyleRange(this.getStyleRanges(0, metaLinkTxt.length(), Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GRAY), true, Display.getCurrent().getSystemColor(SWT.COLOR_BLUE))); + txtInstanceLink.setStyleRange(this.getStyleRanges(metaLinkTxt.length(), instanceLinkTxt.length()-metaLinkTxt.length(), Display.getCurrent().getSystemColor(SWT.COLOR_BLUE), true, Display.getCurrent().getSystemColor(SWT.COLOR_BLUE))); + setLayoutData(txtInstanceLink, FULL_COL_SPAN); + + final StyledText txtResultDescription = new StyledText(parent, SWT.READ_ONLY); + txtResultDescription.setText( + PART_TAG+containerId.getName()+""+ + NAME_TAG+instanceId.getName()+""+ + PLURAL_NAME_TAG+instanceId.getPluralName() + ); + setTextStyles(txtResultDescription, instanceId, containerId); + setLayoutData(txtResultDescription, FULL_COL_SPAN); + } + } + + //add a search pages bar + if (searchInput.getResults().size() > PAGE_SIZE) { + createPageBar(); + } + form.getBody().getParent().layout(true); + form.getBody().getParent().redraw(); + form.getBody().getParent().update(); + } + + private void createPageBar() { + final Composite pageBar = toolkit.createComposite(parent); + final TableWrapData td = new TableWrapData(TableWrapData.FILL); + td.colspan = FULL_COL_SPAN; + pageBar.setLayoutData(td); + RowLayout rowLayout = new RowLayout(); + pageBar.setLayout(rowLayout); + + int numPages = searchInput.getResults().size() / PAGE_SIZE; + if (searchInput.getResults().size() % PAGE_SIZE > 0) { + numPages++; + } + + for (int n = 0; n < numPages; n++) { + final int linkIndex = n; + Hyperlink pageLink = toolkit.createHyperlink(pageBar, ""+(n+1), + SWT.WRAP); + FontData[] fontData = pageLink.getFont().getFontData(); + fontData[0].setHeight(PAGE_LINK_FONT_SIZE); + pageLink.setFont( new Font(Display.getCurrent(),fontData[0])); + + pageLink.addHyperlinkListener(new HyperlinkAdapter() { + public void linkActivated(HyperlinkEvent e) { + pageIndex = linkIndex; + buildPage(); + } + }); + if (linkIndex == pageIndex) { + pageLink.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_DARK_RED)); + } + } + } + + private void setTextStyles(final StyledText txtResultDescription, final InstanceIdentityType instanceId, final InstanceIdentityType containerId) { + int txtIndex = 0; + txtIndex = PART_TAG.length()+containerId.getName().length(); + txtResultDescription.setStyleRange(getStyleRanges(txtIndex, NAME_TAG.length(), Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GRAY), false, Display.getCurrent().getSystemColor(SWT.COLOR_BLACK))); + txtIndex += NAME_TAG.length()+instanceId.getName().length(); + txtResultDescription.setStyleRange(getStyleRanges(txtIndex, PLURAL_NAME_TAG.length(), Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GRAY), false, Display.getCurrent().getSystemColor(SWT.COLOR_BLACK))); + } + + private StyleRange getStyleRanges(final int begin, final int length, final Color color, final boolean isUnderLined, + final Color underLinedColor) { + StyleRange styleRange = new StyleRange(); + styleRange.start = begin; + styleRange.length = length; + styleRange.foreground = color; + styleRange.underline = isUnderLined; + styleRange.underlineColor = underLinedColor; + return styleRange; + } + + private void setLayoutData(final Control control, final int colSpan) { + TableWrapData td = new TableWrapData(); + td.colspan = colSpan; + control.setLayoutData(td); + } + + private Font getFontWithSize(final Label lblSearchText, final int size) { + FontData[] fontData = lblSearchText.getFont().getFontData(); + fontData[0].setHeight(size); + return new Font(Display.getCurrent(), fontData[0]); + } + + private void loadContainmentTree(final UUID selectedNodeURR, boolean isModelLoaded) { + final IHandlerService handlerService = (IHandlerService) PlatformUI.getWorkbench() + .getService(IHandlerService.class); + final Event event = new Event(); + final String commandId = !isModelLoaded ? RETRIEVAL_COMMAND : INSTANCE_SELECTION_COMMAND; + event.data = selectedNodeURR; + try { + handlerService + .executeCommand(commandId, event); + } catch (final ExecutionException ex) { + Logger.getLogger("global").log(java.util.logging.Level.SEVERE, null, ex); + } catch (final NotDefinedException ex) { + Logger.getLogger("global").log(java.util.logging.Level.SEVERE, null, ex); + } catch (final NotEnabledException ex) { + Logger.getLogger("global").log(java.util.logging.Level.SEVERE, null, ex); + } catch (final NotHandledException ex) { + Logger.getLogger("global").log(java.util.logging.Level.SEVERE, null, ex); + } + } + +} diff --git a/src/trunk/org.gmodel.search.widget/src/org/gmodel/search/widget/editors/ResultsView.java b/src/trunk/org.gmodel.search.widget/src/org/gmodel/search/widget/editors/ResultsView.java new file mode 100644 index 0000000..81e8dcd --- /dev/null +++ b/src/trunk/org.gmodel.search.widget/src/org/gmodel/search/widget/editors/ResultsView.java @@ -0,0 +1,126 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.search.widget.editors; + +import org.eclipse.core.resources.IMarker; +import org.eclipse.core.resources.IResourceChangeEvent; +import org.eclipse.core.resources.IResourceChangeListener; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.swt.custom.CTabFolder; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IEditorSite; +import org.eclipse.ui.IWorkbenchPartSite; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.forms.editor.FormEditor; +import org.eclipse.ui.forms.widgets.FormToolkit; +import org.eclipse.ui.forms.widgets.ScrolledForm; +import org.eclipse.ui.forms.widgets.TableWrapLayout; +import org.eclipse.ui.ide.IDE; +import org.gmodel.visualization.containmenttree.viewer.SearchWidgetInput; + +public class ResultsView extends FormEditor implements IResourceChangeListener{ + + private static IWorkbenchPartSite viewerSite; + private FormToolkit toolkit; + private ScrolledForm form; + private SearchWidgetInput searchInput; + + public ResultsView() { + ResourcesPlugin.getWorkspace().addResourceChangeListener(this); + } + + private void createSearchResultsPage() { + toolkit = getToolkit(); + this.setPartName("Searched for "+searchInput.getSearchText()+" - Gmodel Search"); + form = toolkit.createScrolledForm(getContainer()); + form.setText("Gmodel Search"); + + TableWrapLayout layout = new TableWrapLayout(); + layout.numColumns = 2; + form.getBody().setLayout(layout); + new ResultPage(toolkit, form, searchInput); + addPage(form); + } + + protected void createPages() { + createSearchResultsPage(); + if (getContainer() instanceof CTabFolder) { + ((CTabFolder) getContainer()).setTabHeight(0); + } + } + + public void dispose() { + ResourcesPlugin.getWorkspace().removeResourceChangeListener(this); + super.dispose(); + } + + public void doSave(IProgressMonitor monitor) { + getEditor(0).doSave(monitor); + } + + public void doSaveAs() { + IEditorPart editor = getEditor(0); + editor.doSaveAs(); + setPageText(0, editor.getTitle()); + setInput(editor.getEditorInput()); + } + + public void gotoMarker(IMarker marker) { + setActivePage(0); + IDE.gotoMarker(getEditor(0), marker); + } + + public void init(IEditorSite site, IEditorInput editorInput) + throws PartInitException { + if (!(editorInput instanceof SearchWidgetInput)) + throw new PartInitException("Invalid Input: Must be SearchWidgetInput"); + super.init(site, editorInput); + this.searchInput = (SearchWidgetInput) editorInput; + this.viewerSite = getSite(); + } + + public boolean isSaveAsAllowed() { + return true; + } + + protected void pageChange(int newPageIndex) { + super.pageChange(newPageIndex); + } + + @Override + protected void addPages() { + createPages(); + } + + public void resourceChanged(IResourceChangeEvent event) { + } + + public static IWorkbenchPartSite getViewerSite() { + return viewerSite; + } +} diff --git a/src/trunk/org.gmodel.search.widget/src/org/gmodel/search/widget/editors/ResultsViewContributor.java b/src/trunk/org.gmodel.search.widget/src/org/gmodel/search/widget/editors/ResultsViewContributor.java new file mode 100644 index 0000000..82730ad --- /dev/null +++ b/src/trunk/org.gmodel.search.widget/src/org/gmodel/search/widget/editors/ResultsViewContributor.java @@ -0,0 +1,131 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.search.widget.editors; + +import org.eclipse.jface.action.*; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.ui.IActionBars; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IWorkbenchActionConstants; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.actions.ActionFactory; +import org.eclipse.ui.ide.IDE; +import org.eclipse.ui.ide.IDEActionFactory; +import org.eclipse.ui.part.MultiPageEditorActionBarContributor; +import org.eclipse.ui.texteditor.ITextEditor; +import org.eclipse.ui.texteditor.ITextEditorActionConstants; + +/** + * Manages the installation/deinstallation of global actions for multi-page editors. + * Responsible for the redirection of global actions to the active editor. + * Multi-page contributor replaces the contributors for the individual editors in the multi-page editor. + */ +public class ResultsViewContributor extends MultiPageEditorActionBarContributor { + + private IEditorPart activeEditorPart; + + private Action sampleAction; + + /** + * Creates a multi-page contributor. + */ + public ResultsViewContributor() { + super(); + createActions(); + } + /** + * Returns the action registed with the given text editor. + * @return IAction or null if editor is null. + */ + protected IAction getAction(ITextEditor editor, String actionID) { + return (editor == null ? null : editor.getAction(actionID)); + } + /* (non-JavaDoc) + * Method declared in AbstractMultiPageEditorActionBarContributor. + */ + + public void setActivePage(IEditorPart part) { + if (activeEditorPart == part) + return; + + activeEditorPart = part; + + IActionBars actionBars = getActionBars(); + if (actionBars != null) { + + ITextEditor editor = (part instanceof ITextEditor) ? (ITextEditor) part : null; + + actionBars.setGlobalActionHandler( + ActionFactory.DELETE.getId(), + getAction(editor, ITextEditorActionConstants.DELETE)); + actionBars.setGlobalActionHandler( + ActionFactory.UNDO.getId(), + getAction(editor, ITextEditorActionConstants.UNDO)); + actionBars.setGlobalActionHandler( + ActionFactory.REDO.getId(), + getAction(editor, ITextEditorActionConstants.REDO)); + actionBars.setGlobalActionHandler( + ActionFactory.CUT.getId(), + getAction(editor, ITextEditorActionConstants.CUT)); + actionBars.setGlobalActionHandler( + ActionFactory.COPY.getId(), + getAction(editor, ITextEditorActionConstants.COPY)); + actionBars.setGlobalActionHandler( + ActionFactory.PASTE.getId(), + getAction(editor, ITextEditorActionConstants.PASTE)); + actionBars.setGlobalActionHandler( + ActionFactory.SELECT_ALL.getId(), + getAction(editor, ITextEditorActionConstants.SELECT_ALL)); + actionBars.setGlobalActionHandler( + ActionFactory.FIND.getId(), + getAction(editor, ITextEditorActionConstants.FIND)); + actionBars.setGlobalActionHandler( + IDEActionFactory.BOOKMARK.getId(), + getAction(editor, IDEActionFactory.BOOKMARK.getId())); + actionBars.updateActionBars(); + } + } + private void createActions() { + sampleAction = new Action() { + public void run() { + MessageDialog.openInformation(null, "Search Result Widget", "Sample Action Executed"); + } + }; + sampleAction.setText("Sample Action"); + sampleAction.setToolTipText("Sample Action tool tip"); + sampleAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages(). + getImageDescriptor(IDE.SharedImages.IMG_OBJS_TASK_TSK)); + } + public void contributeToMenu(IMenuManager manager) { + IMenuManager menu = new MenuManager("Editor &Menu"); + manager.prependToGroup(IWorkbenchActionConstants.MB_ADDITIONS, menu); + menu.add(sampleAction); + } + public void contributeToToolBar(IToolBarManager manager) { + manager.add(new Separator()); + manager.add(sampleAction); + } +} diff --git a/src/trunk/org.gmodel.search.widget/src/org/gmodel/search/widget/editors/handlers/EditorLoadingHandler.java b/src/trunk/org.gmodel.search.widget/src/org/gmodel/search/widget/editors/handlers/EditorLoadingHandler.java new file mode 100644 index 0000000..c3dadb5 --- /dev/null +++ b/src/trunk/org.gmodel.search.widget/src/org/gmodel/search/widget/editors/handlers/EditorLoadingHandler.java @@ -0,0 +1,54 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.search.widget.editors.handlers; + +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.PartInitException; +import org.gmodel.search.widget.editors.ResultsView; +import org.gmodel.visualization.containmenttree.viewer.VisualizationInput; +import org.gmodel.visualization.containmenttree.viewer.model.ContainmentTreeNode; + +public class EditorLoadingHandler { + + private static final String VISUALIZATION_WIDGET_ID = "org.gmodel.visualization.graph.editors.GmodelGraphViewer"; + + public static void openVisualizationWidget(final ContainmentTreeNode node, final TreeViewer controlViewer) { + try { + final IWorkbenchPage page = getActivePage(); + page.openEditor(new VisualizationInput(node, controlViewer), VISUALIZATION_WIDGET_ID); + } catch (final PartInitException ex) { + java.util.logging.Logger.getLogger("global").log( + java.util.logging.Level.SEVERE, null, ex); + } + } + + private static IWorkbenchPage getActivePage() { + return ResultsView.getViewerSite().getPage(); + } + +} + diff --git a/src/trunk/org.gmodel.semanticextensions.testscripts/.classpath b/src/trunk/org.gmodel.semanticextensions.testscripts/.classpath new file mode 100644 index 0000000..21c6f5f --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions.testscripts/.classpath @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/trunk/org.gmodel.semanticextensions.testscripts/.project b/src/trunk/org.gmodel.semanticextensions.testscripts/.project new file mode 100644 index 0000000..6180548 --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions.testscripts/.project @@ -0,0 +1,28 @@ + + + org.gmodel.semanticextensions.testscripts + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/src/trunk/org.gmodel.semanticextensions.testscripts/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.semanticextensions.testscripts/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..8f6dc3d --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions.testscripts/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,70 @@ +#Wed May 13 15:07:03 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.semanticextensions.testscripts/.settings/org.eclipse.jdt.ui.prefs b/src/trunk/org.gmodel.semanticextensions.testscripts/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000..d20f2b5 --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions.testscripts/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,54 @@ +#Mon Jun 01 15:10:28 CEST 2009 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=false +sp_cleanup.format_source_code=false +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/src/trunk/org.gmodel.semanticextensions.testscripts/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.semanticextensions.testscripts/META-INF/MANIFEST.MF new file mode 100644 index 0000000..910a897 --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions.testscripts/META-INF/MANIFEST.MF @@ -0,0 +1,11 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.semanticextensions.testscripts +Bundle-SymbolicName: org.gmodel.semanticextensions.testscripts +Bundle-Version: 1.0.0 +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Require-Bundle: org.gmodel.kernel;bundle-version="1.0.0", + org.gmodel.kernel.tests;bundle-version="1.0.0", + org.gmodel.semanticextensions;bundle-version="1.0.0", + org.gmodel.kernel.testbench;bundle-version="1.0.0" +Export-Package: org.gmodel.semanticextensions.testscripts diff --git a/src/trunk/org.gmodel.semanticextensions.testscripts/build.properties b/src/trunk/org.gmodel.semanticextensions.testscripts/build.properties new file mode 100644 index 0000000..b107977 --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions.testscripts/build.properties @@ -0,0 +1,3 @@ +source.. = src/ +bin.includes = META-INF/,\ + . diff --git a/src/trunk/org.gmodel.semanticextensions.testscripts/src/org/gmodel/semanticextensions/testscripts/Test.java b/src/trunk/org.gmodel.semanticextensions.testscripts/src/org/gmodel/semanticextensions/testscripts/Test.java new file mode 100644 index 0000000..73e0f4f --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions.testscripts/src/org/gmodel/semanticextensions/testscripts/Test.java @@ -0,0 +1,172 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Limited (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.semanticextensions.testscripts; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.core.F_Instantiation.identityFactory; + +import org.gmodel.Identity; +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.api.Transaction; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models.Root; +import org.gmodel.api.models.SemanticDomain; +import org.gmodel.api.models2.RepositoryStructure; +import org.gmodel.api.models2.Visualization; +import org.gmodel.semanticextensions.outershells.SemanticExtensionsDomain; +import org.gmodel.testbench.KernelTestSequence; +import org.gmodel.testbench.TestSequence; + +public class Test { + + /** + * @param args + */ + public static void main(final String[] args) { + org.gmodel.semanticextensions.G.bootTemplate(); + int kernelComplexity = identityFactory.kernelComplexity(); + int inMemoryComplexity = identityFactory.inMemoryComplexity(); + int inMemorySetCount = org.gmodel.api.Query.inMemorySets().size(); + int changedSetsCount = org.gmodel.api.Query.changedSets().size(); + org.gmodel.testbench.KernelTestSequence.run(); + Transaction.commitChangedSets(); + changedSetsCount = org.gmodel.api.Query.changedSets().size(); + + org.gmodel.G.goLiveWithGmodelEditor(); + TestSequence.run(); + Transaction.commitChangedSets(); + changedSetsCount = org.gmodel.api.Query.changedSets().size(); + + org.gmodel.testbench.TestSequence.run(); + Transaction.commitChangedSets(); + changedSetsCount = org.gmodel.api.Query.changedSets().size(); + + org.gmodel.testbench.TestSequence.run(); + Transaction.commitChangedSets(); + changedSetsCount = org.gmodel.api.Query.changedSets().size(); + // extensive visualizedGraph test with icon assignment + final Set gv = createGraphVisualization(KernelTestSequence.testDomain); + for (final Set si : KernelTestSequence.testDomain.filterPolymorphic(SemanticDomain.semanticIdentity)) { + addIcon(si, "here goes the icon file"); + } + Transaction.commitChangedSets(); + changedSetsCount = org.gmodel.api.Query.changedSets().size(); + + final Set testDomain = org.gmodel.api.Instantiation.addSemanticDomain("test domain 3", "test domains 3", GmodelSemanticDomains.finiteSets); + final Set testInstance = Root.models.addAbstract(coreGraphs.vertex, testDomain); + final Set vizSet = RepositoryStructure.graphVisualizations; + final Set idSet = org.gmodel.api.Instantiation.addDisjunctSemanticIdentitySet("container visualizedGraph", "container artifactVisualizations", testDomain); + final Set viz3 = vizSet.addConcrete(Visualization.graphVisualization, idSet); + idSet.assignNewName("new art viz"); + + /* decommission tests */ + final Set viz2 = vizSet.addConcrete(Visualization.graphVisualization, idSet); + viz2.decommission(); + final java.util.UUID some_uuid = java.util.UUID.randomUUID(); + final Identity id = org.gmodel.api.serializerinterface.Reconstitution.reconstituteIdentity("some", "some", some_uuid, some_uuid); + org.gmodel.api.serializerinterface.Reconstitution.instantiateConcrete(SemanticDomain.disjunctSemanticIdentitySet, id); + // TODO fix up: org.gmodel.core.F_Query.getSetFromLocalMemory(id); + Transaction.commitChangedSets(); + + final Set d1 = org.gmodel.testbench.TestSequence.crm_aviz.decommission(); + Transaction.commitChangedSets(); + final Set d2 = org.gmodel.testbench.TestSequence.order.decommission(); + Transaction.commitChangedSets(); + final Set d3 = org.gmodel.testbench.TestSequence.product_to_price.decommission(); + Transaction.commitChangedSets(); + + changedSetsCount = org.gmodel.api.Query.changedSets().size(); + + final Set g = coreGraphs.graph; + final Set kerDef = g.filter(GmodelSemanticDomains.kernelDefect); + final Set semErr = g.filter(GmodelSemanticDomains.semanticErr); + final Set v = coreGraphs.vertex; + final Set l = coreGraphs.link; + final Set e = coreGraphs.edge; + final Set viz = coreGraphs.visibility; + final Set s = coreGraphs.superSetReference; + kernelComplexity = identityFactory.kernelComplexity(); + inMemoryComplexity = identityFactory.inMemoryComplexity(); + inMemorySetCount = org.gmodel.api.Query.inMemorySets().size(); + final Set root = Root.root; + final Set g0 = g; + + + + } + + public static Set createGraphVisualization(final Set semanticDomain) { + final Set gv = RepositoryStructure.graphVisualizations.addConcrete(Visualization.graphVisualization, semanticDomain); + final Set v = gv.addConcrete(Visualization.visualizedGraph, semanticDomain); + final Set details = gv.addConcrete(Visualization.details,Visualization.details); + final Set structure = gv.addConcrete(Visualization.structure,Visualization.structure); + final Set reuse = gv.addConcrete(Visualization.reuse,Visualization.reuse); + final Set visibilities = gv.addConcrete(Visualization.visibilities,Visualization.visibilities); + return gv; + } + + public static void addIcon(final Set semanticIdentity, final String iconFile) { + final Set semanticDomain = semanticIdentity.container(); + // ensure existence of graph visualizedGraph + Set graphVisualization = GmodelSemanticDomains.is_UNKNOWN;; + for (final Set gv : RepositoryStructure.graphVisualizations.filterPolymorphic(Visualization.graphVisualization)) { + for (final Set v_to_vg : gv.filterPolymorphic(Visualization.visualizedGraph_to_graph)) { + if (v_to_vg.to().isEqualTo(semanticDomain)) { + graphVisualization = gv; + } + } + } + if (graphVisualization.isEqualTo(GmodelSemanticDomains.is_UNKNOWN)) { + graphVisualization = createGraphVisualization(semanticDomain); + } + // ensure existence of the default symbol (the icon) + Set icon = GmodelSemanticDomains.is_UNKNOWN; + for (final Set s_to_si : graphVisualization.filterPolymorphic(Visualization.symbol_to_semantic_identity)) { + if (s_to_si.to().isEqualTo(semanticIdentity) + && s_to_si.fromEdgeEnd().isEqualTo(SemanticExtensionsDomain.theDefault) ) { + icon = s_to_si.from(); + } + } + // a few tests of semanticIdentity() + Visualization.details.semanticIdentity(); + + if (icon.isEqualTo(GmodelSemanticDomains.is_UNKNOWN)) { + icon = graphVisualization.addConcrete(Visualization.symbol, SemanticExtensionsDomain.icon); + Instantiation.link(Visualization.symbol_to_semantic_identity, + GmodelSemanticDomains.anonymous, + SemanticExtensionsDomain.theDefault, + icon, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_TRUE, + semanticIdentity, + semanticIdentity, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + } + // use the iconFile as payload + icon.identity().setPayload(iconFile); + } +} diff --git a/src/trunk/org.gmodel.semanticextensions/.classpath b/src/trunk/org.gmodel.semanticextensions/.classpath new file mode 100644 index 0000000..2d1a430 --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/trunk/org.gmodel.semanticextensions/.project b/src/trunk/org.gmodel.semanticextensions/.project new file mode 100644 index 0000000..f1de8b6 --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions/.project @@ -0,0 +1,26 @@ + + + org.gmodel.semanticextensions + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/src/trunk/org.gmodel.semanticextensions/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.semanticextensions/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..8f6dc3d --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,70 @@ +#Wed May 13 15:07:03 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.semanticextensions/.settings/org.eclipse.jdt.ui.prefs b/src/trunk/org.gmodel.semanticextensions/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000..d20f2b5 --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,54 @@ +#Mon Jun 01 15:10:28 CEST 2009 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=false +sp_cleanup.format_source_code=false +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/src/trunk/org.gmodel.semanticextensions/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.semanticextensions/META-INF/MANIFEST.MF new file mode 100644 index 0000000..104aba6 --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions/META-INF/MANIFEST.MF @@ -0,0 +1,12 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.semanticextensions +Bundle-SymbolicName: org.gmodel.semanticextensions; singleton:=true +Bundle-Version: 1.0.0 +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Import-Package: org.gmodel, + org.gmodel.api, + org.gmodel.impl +Export-Package: org.gmodel.semanticextensions, + org.gmodel.semanticextensions.outershells +Require-Bundle: org.gmodel.kernel;bundle-version="1.0.0" diff --git a/src/trunk/org.gmodel.semanticextensions/build.properties b/src/trunk/org.gmodel.semanticextensions/build.properties new file mode 100644 index 0000000..b107977 --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions/build.properties @@ -0,0 +1,3 @@ +source.. = src/ +bin.includes = META-INF/,\ + . diff --git a/src/trunk/org.gmodel.semanticextensions/src/expectations/Gmodel Semantic Extensions.pages b/src/trunk/org.gmodel.semanticextensions/src/expectations/Gmodel Semantic Extensions.pages new file mode 100644 index 0000000..412f6d6 Binary files /dev/null and b/src/trunk/org.gmodel.semanticextensions/src/expectations/Gmodel Semantic Extensions.pages differ diff --git a/src/trunk/org.gmodel.semanticextensions/src/expectations/Gmodel Semantic Extensions.pdf b/src/trunk/org.gmodel.semanticextensions/src/expectations/Gmodel Semantic Extensions.pdf new file mode 100644 index 0000000..1efb53a Binary files /dev/null and b/src/trunk/org.gmodel.semanticextensions/src/expectations/Gmodel Semantic Extensions.pdf differ diff --git a/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/G.java b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/G.java new file mode 100644 index 0000000..b64a741 --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/G.java @@ -0,0 +1,238 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Ltd. (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.semanticextensions; + +import static org.gmodel.core.F_Instantiation.identityFactory; + +import org.gmodel.Set; +import org.gmodel.api.CoreSets; +import org.gmodel.api.models.Root; +import org.gmodel.api.models.SemanticDomain; +import org.gmodel.api.models2.RepositoryStructure; +import org.gmodel.api.models2.Visualization; +import org.gmodel.core.F_SemanticStateOfInMemoryModel; +import org.gmodel.semanticextensions.outershells.SemanticExtensions; +import org.gmodel.semanticextensions.outershells.SemanticExtensionsDomain; + + +/** + * {@link F_SemanticStateOfInMemoryModel} provides access to the Sets and Properties of the Gmodel kernel + * that constitute the basic Gmodel vocabulary. + * + * Additionally F_SemanticStateOfInMemoryModel enables the creation of links between Sets, + * and automatically attaches the link to the appropriate container Set. + * + * Note: F_SemanticStateOfInMemoryModel contains no implementation, it simply delegates to LinkConstraints, IdentityFactory, CoreSets, + * and KernelOrderedSets. + * + * Extensions: Gmodel is designed to be extensible. All extensions that only involve a structural extension + * of the meta model can be achieved by modelling the extension in Gmodel. Beyond such basic extensions, + * Gmodel can be extended/modified by plugging in a different IdentityFactory and/or by writing a custom Shell. + * Such extensions are created by creating a subclass of F_SemanticStateOfInMemoryModel that + * + * (a) adds a method that references the appropriate SemanticIndentityFactory: + * + * public static final CustomSemanticIdentityFactory customSemanticIdentityFactory = new CustomSemanticIdentityFactory(); + * + * and/or + * + * (b) reference the appropriate custom Shell by overriding the raiseError and link methods in F_SemanticStateOfInMemoryModel and by delegating to LinkConstraints + * to invoke the raiseError and link methods in the kernel. + * + * All extensions must use F_SemanticStateOfInMemoryModel's CoreSets and KernelOrderedSets. + * + */ +public class G { + + /** + * QUERIES + */ + + public static final CoreSets coreSets = org.gmodel.G.coreSets; + //public static final CoreGraphs coreGraphs = org.gmodel.G.coreGraphs; + private static boolean semanticExtensionsAreInitialized = false; + + + public static boolean semanticDomainIsInitialized() { + return org.gmodel.SemanticStateOfInMemoryModel.semanticDomainIsInitialized(); + } + public static boolean gmodelSemanticDomainIsInitialized() { + return org.gmodel.SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized(); + } + + public static boolean gmodelEditorIsLive() { + return org.gmodel.SemanticStateOfInMemoryModel.gmodelEditorIsLive(); + } + public static boolean openSourceKernelIsInitialized() { + return org.gmodel.SemanticStateOfInMemoryModel.openSourceKernelIsInitialized(); + } + public static boolean gmodelSemanticExtensionsAreInitialized() { + return semanticExtensionsAreInitialized; + } + + /** + * COMMANDS + */ + + public static void goLiveWithGmodelEditor() { + /** + * TODO as needed depending on context, boot the repository & editor + */ + org.gmodel.G.goLiveWithGmodelEditor(); + } + public static void completeOpenSourceKernelInitialization() { + org.gmodel.G.completeOpenSourceKernelInitialization(); + } + public static void completeSemanticExtensionsInitialization() { + org.gmodel.G.completeOpenSourceKernelInitialization(); + if (!gmodelEditorIsLive()) { + SemanticExtensions.instantiateFeature(); + }; + semanticExtensionsAreInitialized = true; + } + public static void bootTemplate() { + completeSemanticExtensionsInitialization(); + } + public static void boot() { + Root.instantiateFeature(); + SemanticDomain.instantiateFeature(); + final int kernelComplexity = identityFactory.kernelComplexity(); + final int inMemoryComplexity = identityFactory.inMemoryComplexity(); + goLiveWithGmodelEditor(); + bootTemplate(); + } + public static Set raiseError(final Set semanticIdentity, final Set metaElement) { + return org.gmodel.api.Instantiation.raiseError(semanticIdentity, metaElement); + } + + public static Set link(final Set metaElement, + final Set edgeFlavoredIdentity, + final Set firstSemanticIdentity, + final Set firstOrderedPair, + final Set firstMinCardinality, + final Set firstMaxCardinality, + final Set firstIsNavigable, + final Set firstIsContainer, + final Set secondSemanticIdentity, + final Set secondOrderedPair, + final Set secondMinCardinality, + final Set secondMaxCardinality, + final Set secondIsNavigable, + final Set secondIsContainer + ) { + return org.gmodel.api.Instantiation.link(metaElement, + edgeFlavoredIdentity, + firstSemanticIdentity, + firstOrderedPair, + firstMinCardinality, + firstMaxCardinality, + firstIsNavigable, + firstIsContainer, + secondSemanticIdentity, + secondOrderedPair, + secondMinCardinality, + secondMaxCardinality, + secondIsNavigable, + secondIsContainer + ); + } + + public static Set link(final Set metaElement, final Set fromInstance, final Set toInstance) { + return org.gmodel.api.Instantiation.link(metaElement, fromInstance, toInstance); + } + + public static Set instantiateConcrete(final Set metaElement, final Set semanticIdentity) { + return org.gmodel.api.Instantiation.instantiateConcrete(metaElement, semanticIdentity); + } + public static Set instantiateAbstract(final Set metaElement, final Set semanticIdentity) { + return org.gmodel.api.Instantiation.instantiateAbstract(metaElement, semanticIdentity); + } + + public static Set addSemanticDomain(final String name, final String pluralName, final Set semanticDomain) { + return org.gmodel.api.Instantiation.addSemanticDomain(name, pluralName, semanticDomain); + } + + public static Set addDisjunctSemanticIdentitySet(final String name, final String pluralName, final Set semanticDomain) { + return org.gmodel.api.Instantiation.addDisjunctSemanticIdentitySet(name, pluralName, semanticDomain); + } + public static Set addAnonymousDisjunctSemanticIdentitySet(final Set semanticDomain) { + return org.gmodel.api.Instantiation.addAnonymousDisjunctSemanticIdentitySet(semanticDomain); + } + public static Set addSemanticRole(final String name, final String pluralName, final Set semanticDomain, final Set referencedSemanticIdentity) { + return org.gmodel.api.Instantiation.addSemanticRole(name, pluralName, semanticDomain, referencedSemanticIdentity); + } + public static Set addAnonymousSemanticRole(final Set semanticDomain, final Set referencedSemanticIdentity) { + return org.gmodel.api.Instantiation.addAnonymousSemanticRole(semanticDomain, referencedSemanticIdentity); + } + public static Set addSemanticIdentitySet(final String name, final String pluralName, final Set semanticDomain) { + return org.gmodel.api.Instantiation.addSemanticIdentitySet(name, pluralName, semanticDomain); + } + +// public static Set addElement(final Set set, final Set element) { +// return org.gmodel.G.addElement(set, element); +// } + //public static Set addToTransportContainer(final Set set) { + // return org.gmodel.G.addToTransportContainer(set); + //} + //public static Set purgeTransportContainer() { + // return org.gmodel.G.purgeTransportContainer(); + //} + //public static Set transportContainer() { + // return org.gmodel.G.transportContainer(); + //} + + public static Set graphVisualization(final Set set) { + for (final Set s : RepositoryStructure.graphVisualizations.filterPolymorphic(Visualization.graphVisualization)) { + final Set visualization_to_visualizedGraphs = s.filterPolymorphic(Visualization.visualizedGraph_to_graph); + if (!visualization_to_visualizedGraphs.isEmpty() + && visualization_to_visualizedGraphs.to().isEqualTo(set)) { + return visualization_to_visualizedGraphs.from(); + } + } + return coreSets.is_UNKNOWN; + } + + public static Set defaultSymbol(final Set set) { + final Set containerOfSemanticIdentity = set.semanticIdentity().container(); + final Set graphVisualization = graphVisualization(containerOfSemanticIdentity); + if (!graphVisualization.isEqualTo(coreSets.is_UNKNOWN)) { + final Set symbolLinks = graphVisualization.filterPolymorphic(Visualization.symbol_to_semantic_identity); + for (final Set symbolLink: symbolLinks) { + if (symbolLink.to().isEqualTo(set) + && symbolLink.fromEdgeEnd().isEqualTo(SemanticExtensionsDomain.theDefault)) { + return symbolLink.from(); + } + } + } + if (set.container().isEqualTo(org.gmodel.api.Query.graph)) { + // terminate recursion + return set.flavor(); + } else { + // recurse up the category tree + return defaultSymbol(set.category()); + } + } +} diff --git a/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/Artifact.java b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/Artifact.java new file mode 100644 index 0000000..d41b635 --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/Artifact.java @@ -0,0 +1,143 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Ltd. (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.semanticextensions.outershells; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.G.coreSets; + +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.api.models.Root; + +/** + * {@link Artifact} implements all instantiation semantics related to the modelling of container state machines + * that must be enforced for all Instances/artifacts (instantiation level n, with n > 0) + * + * The semantics enforced in Artifact provide the basis for modelling the dynamic evolution of the Gmodel instantiation semantics + */ +public final class Artifact { + + //public static final Set lifeCycle = F_SemanticStateOfInMemoryModel.instantiateConcrete(coreGraphs.vertex, F_SemanticStateOfInMemoryModel.addDisjunctSemanticIdentitySet("life cycle", "life cycles", GmodelSemanticDomains.gmodel)); + public static final Set lifeCycle = Root.universalartifactengineering.addConcrete(coreGraphs.vertex, SemanticExtensionsDomain.lifeCycle); + + public static final Set state = lifeCycle.addConcrete(coreGraphs.vertex, SemanticExtensionsDomain.state); + public static final Set transition = Instantiation.link(coreGraphs.edge, + SemanticExtensionsDomain.transition, + SemanticExtensionsDomain.source, + state, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE, + SemanticExtensionsDomain.target, + state, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + + //public static final Set container = F_SemanticStateOfInMemoryModel.instantiateConcrete(coreGraphs.vertex, F_SemanticStateOfInMemoryModel.addDisjunctSemanticIdentitySet("state conscious container", "set of state conscious artifacts", GmodelSemanticDomains.gmodel)); + public static final Set artifact = Root.universalartifactengineering.addConcrete(coreGraphs.vertex, SemanticExtensionsDomain.artifact); + + public static final Set artifact_to_lifeCycle = Instantiation.link(coreGraphs.edge, + SemanticExtensionsDomain.artifact_to_lifeCycle, + artifact, + artifact, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + SemanticExtensionsDomain.lifeCycle, + lifeCycle, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + + //private static final Set v1 = F_SemanticStateOfInMemoryModel.link(coreGraphs.visibility, Root.models, lifeCycle); + //private static final Set v1 = F_SemanticStateOfInMemoryModel.link(coreGraphs.visibility, container, lifeCycle); + private static final Set v2 = Instantiation.link(coreGraphs.visibility, Root.universalartifactengineering, lifeCycle); + + public static final Set artifact_to_state = Instantiation.link(coreGraphs.edge, + SemanticExtensionsDomain.artifact_to_state, + + artifact, + artifact, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + SemanticExtensionsDomain.artifactState, + state, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + public static final Set artifact_to_validityInterval = Instantiation.link(coreGraphs.edge, + SemanticExtensionsDomain.artifact_to_validityInterval, + artifact, + artifact, + coreSets.minCardinality_1, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE, + ValidityInterval.validityInterval, + ValidityInterval.validityInterval, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + + public static final Set artifact_to_transaction = Instantiation.link(coreGraphs.edge, + SemanticExtensionsDomain.artifact_to_transaction, + artifact, + artifact, + coreSets.minCardinality_1, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE, + Transaction.transaction, + Transaction.transaction, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + + static Set instantiateFeature() { + + Instantiation.link(coreGraphs.superSetReference, artifact, coreGraphs.vertex); + // additional semantics + Instantiation.link(coreGraphs.superSetReference, lifeCycle, coreGraphs.vertex); + + return artifact; + } + +} diff --git a/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/ArtifactVisualization.java b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/ArtifactVisualization.java new file mode 100644 index 0000000..8e7ded9 --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/ArtifactVisualization.java @@ -0,0 +1,55 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Ltd. (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.semanticextensions.outershells; + +import static org.gmodel.G.coreGraphs; + +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.api.models.Root; +import org.gmodel.api.models2.Visualization; + + +public class ArtifactVisualization { + + public static final Set artifactVisualization = Root.universalartifactengineering.addConcrete(coreGraphs.vertex, SemanticExtensionsDomain.artifactVisualization); + + public static final Set artifactVisualization_to_superset_graphVisualization = Instantiation.link(coreGraphs.superSetReference, artifactVisualization, Visualization.graphVisualization); + + + public static Set instantiateFeature() { + + //F_SemanticStateOfInMemoryModel.link(coreGraphs.visibility, and, naryLogicalFunction); + //F_SemanticStateOfInMemoryModel.link(coreGraphs.visibility, and, logicalFunction); + + + + + + return artifactVisualization; + } + +} diff --git a/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/GmodelSemantics.java b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/GmodelSemantics.java new file mode 100644 index 0000000..3d47b85 --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/GmodelSemantics.java @@ -0,0 +1,91 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Ltd. (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.semanticextensions.outershells; + +import static org.gmodel.G.coreGraphs; + +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models.Root; + +/** + * {@link GmodelSemantics} implements all instantiation semantics related to the modelling of container state machines + * that must be enforced for all Instances/artifacts (instantiation level n, with n > 0) + * + * The semantics enforced in Artifact provide the basis for modelling the dynamic evolution of the Gmodel instantiation semantics + */ +public final class GmodelSemantics { + + //public static final Set gmodelSemanticLifecycle = F_SemanticStateOfInMemoryModel.instantiateConcrete(Artifact.lifeCycle, F_SemanticStateOfInMemoryModel.addDisjunctSemanticIdentitySet("gmodel semantic lifecycle", "gmodel semantic lifecycle", GmodelSemanticDomains.gmodel)); + public static final Set gmodelSemanticLifecycle = Root.universalartifactengineering.addConcrete(Artifact.lifeCycle, Instantiation.addDisjunctSemanticIdentitySet("gmodel semantic lifecycle", "gmodel semantic lifecycle", GmodelSemanticDomains.gmodel)); + // definition of the life cycle of the Gmodel Semantic State + public static final Set semanticDomainInitialized = gmodelSemanticLifecycle.addConcrete(Artifact.state, Instantiation.addDisjunctSemanticIdentitySet("semantic domain initialized", "semantic domain initialized", GmodelSemanticDomains.gmodel)); + + // the gmodel semantics state machine, tied to the gmodelSemanticLifecycle + //public static final Set gmodelSemantics = F_SemanticStateOfInMemoryModel.instantiateConcrete(Artifact.artifact, F_SemanticStateOfInMemoryModel.addDisjunctSemanticIdentitySet("gmodel semantics", "gmodel semantics", GmodelSemanticDomains.gmodel)); + public static final Set gmodelSemantics = Root.universalartifactengineering.addConcrete(Artifact.artifact, Instantiation.addDisjunctSemanticIdentitySet("gmodel semantics", "gmodel semantics", GmodelSemanticDomains.gmodel)); + public static final Set gmodelSemantics_to_lifecycle = Instantiation.link(Artifact.artifact_to_lifeCycle, + Instantiation.addDisjunctSemanticIdentitySet("gmodelSemantics_to_lifecycle", "gmodelSemantics_to_lifecycle", GmodelSemanticDomains.gmodel), + gmodelSemantics, + gmodelSemantics, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE, + Artifact.lifeCycle, + gmodelSemanticLifecycle, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE + ); + + public static Set instantiateFeature() { + Instantiation.link(coreGraphs.visibility, Root.universalartifactengineering, gmodelSemanticLifecycle); + //F_SemanticStateOfInMemoryModel.link(coreGraphs.visibility, Root.models, gmodelSemanticLifecycle); + + // initialization of the gmodel semantics state machine with the semanticDomainInitialized state + final Set state = Instantiation.link(Artifact.artifact_to_state, + Instantiation.addDisjunctSemanticIdentitySet("gmodelSemantics_to_state", "gmodelSemantics_to_state", GmodelSemanticDomains.gmodel), + Artifact.artifact, + gmodelSemantics, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE, + Artifact.state, + semanticDomainInitialized, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, + GmodelSemanticDomains.isNavigable_TRUE, + GmodelSemanticDomains.isContainer_FALSE + ); + + return state; + } + +} diff --git a/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/Language.java b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/Language.java new file mode 100644 index 0000000..a318192 --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/Language.java @@ -0,0 +1,58 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Ltd. (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.semanticextensions.outershells; + +import static org.gmodel.G.coreGraphs; + +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.api.models.Root; + + +public class Language { + + public static final Set language = Root.universalartifactengineering.addConcrete(SemanticEnterprise.what, SemanticExtensionsDomain.language); + public static final Set languageElement = language.addAbstract(SemanticEnterprise.what, SemanticExtensionsDomain.languageElement); + public static final Set abstractWord = language.addAbstract(SemanticEnterprise.what, SemanticExtensionsDomain.abstractWord); + public static final Set wordSeparator = language.addAbstract(SemanticEnterprise.what, SemanticExtensionsDomain.wordSeparator); + public static final Set word = language.addConcrete(SemanticEnterprise.what, SemanticExtensionsDomain.word); + public static final Set whiteSpaceElement = language.addConcrete(SemanticEnterprise.what, SemanticExtensionsDomain.whiteSpaceElement); + public static final Set sentenceSeparator = language.addConcrete(SemanticEnterprise.what, SemanticExtensionsDomain.sentenceSeparator); + + public static Set instantiateFeature() { + + Instantiation.link(coreGraphs.superSetReference, language, SemanticEnterprise.what); + Instantiation.link(coreGraphs.superSetReference, languageElement, SemanticEnterprise.what); + Instantiation.link(coreGraphs.superSetReference, abstractWord, languageElement); + Instantiation.link(coreGraphs.superSetReference, wordSeparator, languageElement); + Instantiation.link(coreGraphs.superSetReference, word, abstractWord); + Instantiation.link(coreGraphs.superSetReference, whiteSpaceElement, wordSeparator); + Instantiation.link(coreGraphs.superSetReference, sentenceSeparator, wordSeparator); + + return language; + } + +} diff --git a/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/LegalEntity.java b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/LegalEntity.java new file mode 100644 index 0000000..bf703a4 --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/LegalEntity.java @@ -0,0 +1,166 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Ltd. (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.semanticextensions.outershells; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.G.coreSets; + +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.api.models.Root; + + +public class LegalEntity { + + // STRUCTURE OF MODEL REPOSITORY + public static final Set legalEntity = Root.universalartifactengineering.addConcrete(SemanticEnterprise.who, SemanticExtensionsDomain.legalEntity); + public static final Set organization = Root.universalartifactengineering.addConcrete(SemanticEnterprise.who, SemanticExtensionsDomain.organization); + public static final Set person = Root.universalartifactengineering.addConcrete(SemanticEnterprise.who, SemanticExtensionsDomain.person); + public static final Set user = organization.addConcrete(SemanticEnterprise.who, SemanticExtensionsDomain.user); + public static final Set role = organization.addConcrete(SemanticEnterprise.who, SemanticExtensionsDomain.role); + public static final Set languagePreference = user.addConcrete(SemanticEnterprise.what, SemanticExtensionsDomain.languagePreference); + + public static final Set user_to_roles = Instantiation.link(TimeConsciousEdge.timeConsciousEdge, + SemanticExtensionsDomain.user_to_roles, + user, + user, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE, + role, + role, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + public static final Set organization_to_subOrganizations = Instantiation.link(TimeConsciousEdge.timeConsciousEdge, + SemanticExtensionsDomain.organization_to_subOrganizations, + SemanticExtensionsDomain.parentOrganization, + organization, + coreSets.minCardinality_0, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_TRUE, + SemanticExtensionsDomain.subOrganization, + organization, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + public static final Set role_to_includedRoles = Instantiation.link(TimeConsciousEdge.timeConsciousEdge, + SemanticExtensionsDomain.role_to_includedRoles, + SemanticExtensionsDomain.parentRole, + role, + coreSets.minCardinality_0, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_TRUE, + SemanticExtensionsDomain.includedRole, + role, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + public static final Set role_to_excludedRoles = Instantiation.link(TimeConsciousEdge.timeConsciousEdge, + SemanticExtensionsDomain.role_to_excludedRoles, + SemanticExtensionsDomain.disjunctRole, + role, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE, + SemanticExtensionsDomain.excludedRole, + role, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + private static final Set v0 = Instantiation.link(coreGraphs.visibility, organization, Language.language); + private static final Set v1 = Instantiation.link(coreGraphs.visibility, user, Language.language); + public static final Set languagePreference_to_language = Instantiation.link(TimeConsciousEdge.timeConsciousEdge, + SemanticExtensionsDomain.languagePreference_to_language, + languagePreference, + languagePreference, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + Language.language, + Language.language, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + + private static final Set v5 = Instantiation.link(coreGraphs.visibility, Root.universalartifactengineering, organization); + + public static final Set artifact_to_producer = Instantiation.link(coreGraphs.edge, + SemanticExtensionsDomain.artifact_to_producer, + Artifact.artifact, + Artifact.artifact, + coreSets.minCardinality_1, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE, + SemanticExtensionsDomain.producer, + LegalEntity.role, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + public static final Set artifact_to_consumers = Instantiation.link(coreGraphs.edge, + SemanticExtensionsDomain.artifact_to_consumers, + Artifact.artifact, + Artifact.artifact, + coreSets.minCardinality_1, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE, + SemanticExtensionsDomain.consumer, + LegalEntity.role, + coreSets.minCardinality_1, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + + public static Set instantiateFeature() { + + Instantiation.link(coreGraphs.superSetReference, legalEntity, SemanticEnterprise.who); + Instantiation.link(coreGraphs.superSetReference, organization, legalEntity); + Instantiation.link(coreGraphs.superSetReference, person, legalEntity); + + return legalEntity; + } + +} diff --git a/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/LogicalFunction.java b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/LogicalFunction.java new file mode 100644 index 0000000..e5c8bc1 --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/LogicalFunction.java @@ -0,0 +1,199 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Ltd. (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.semanticextensions.outershells; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.G.coreSets; + +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.api.models.Root; + + +public class LogicalFunction { + + public static final Set logicalExpression = Root.universalartifactengineering.addAbstract(Artifact.artifact, SemanticExtensionsDomain.logicalExpression); + public static final Set logicalFunction = logicalExpression.addAbstract(Artifact.artifact, SemanticExtensionsDomain.logicalFunction); + public static final Set unaryLogicalFunction = logicalExpression.addAbstract(Artifact.artifact, SemanticExtensionsDomain.unaryLogicalFunction); + public static final Set binaryLogicalFunction = logicalExpression.addAbstract(Artifact.artifact, SemanticExtensionsDomain.binaryLogicalFunction); + public static final Set naryLogicalFunction = logicalExpression.addAbstract(Artifact.artifact, SemanticExtensionsDomain.naryLogicalFunction); + + public static final Set not = logicalExpression.addConcrete(Artifact.artifact, SemanticExtensionsDomain.not); + public static final Set exist = logicalExpression.addConcrete(Artifact.artifact, SemanticExtensionsDomain.exist); + public static final Set empty = logicalExpression.addConcrete(Artifact.artifact, SemanticExtensionsDomain.empty); + + public static final Set contains = logicalExpression.addConcrete(Artifact.artifact, SemanticExtensionsDomain.contains); + public static final Set smaller = logicalExpression.addConcrete(Artifact.artifact, SemanticExtensionsDomain.smaller); + public static final Set smallerEqual = logicalExpression.addConcrete(Artifact.artifact, SemanticExtensionsDomain.smallerEqual); + public static final Set greater = logicalExpression.addConcrete(Artifact.artifact, SemanticExtensionsDomain.greater); + public static final Set greaterEqual = logicalExpression.addConcrete(Artifact.artifact, SemanticExtensionsDomain.greaterEqual); + + public static final Set equal = logicalExpression.addConcrete(Artifact.artifact, SemanticExtensionsDomain.equal); + public static final Set equalToRepresentation = logicalExpression.addConcrete(Artifact.artifact, SemanticExtensionsDomain.equalToRepresentation); + public static final Set and = logicalExpression.addConcrete(Artifact.artifact, SemanticExtensionsDomain.and); + public static final Set or = logicalExpression.addConcrete(Artifact.artifact, SemanticExtensionsDomain.or); + public static final Set xor = logicalExpression.addConcrete(Artifact.artifact, SemanticExtensionsDomain.xor); + + + public static Set instantiateFeature() { + + //F_SemanticStateOfInMemoryModel.link(coreGraphs.visibility, and, naryLogicalFunction); + //F_SemanticStateOfInMemoryModel.link(coreGraphs.visibility, and, logicalFunction); + + final Set binaryLogicalFunction_to_operands = Instantiation.link(TimeConsciousEdge.timeConsciousEdge, + SemanticExtensionsDomain.binaryLogicalFunction_to_operands, + binaryLogicalFunction, + binaryLogicalFunction, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_FALSE, + coreSets.isContainer_TRUE, + SemanticExtensionsDomain.operand, + coreGraphs.vertex, + coreSets.minCardinality_2, + coreSets.maxCardinality_2, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + + final Set and_to_operands = Instantiation.link(TimeConsciousEdge.timeConsciousEdge, + SemanticExtensionsDomain.and_to_operands, + and, + and, + coreSets.minCardinality_0, + coreSets.maxCardinality_1, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + SemanticExtensionsDomain.operand, + logicalFunction, + coreSets.minCardinality_2, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + final Set or_to_operands = Instantiation.link(TimeConsciousEdge.timeConsciousEdge, + SemanticExtensionsDomain.or_to_operands, + or, + or, + coreSets.minCardinality_0, + coreSets.maxCardinality_1, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + SemanticExtensionsDomain.operand, + logicalFunction, + coreSets.minCardinality_2, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + final Set xor_to_operands = Instantiation.link(TimeConsciousEdge.timeConsciousEdge, + SemanticExtensionsDomain.xor_to_operands, + xor, + xor, + coreSets.minCardinality_0, + coreSets.maxCardinality_1, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + SemanticExtensionsDomain.operand, + logicalFunction, + coreSets.minCardinality_2, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + final Set not_to_operand = Instantiation.link(TimeConsciousEdge.timeConsciousEdge, + SemanticExtensionsDomain.not_to_operand, + not, + not, + coreSets.minCardinality_0, + coreSets.maxCardinality_1, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + SemanticExtensionsDomain.operand, + logicalFunction, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + final Set exist_to_operand = Instantiation.link(TimeConsciousEdge.timeConsciousEdge, + SemanticExtensionsDomain.exist_to_operand, + exist, + exist, + coreSets.minCardinality_0, + coreSets.maxCardinality_1, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + SemanticExtensionsDomain.operand, + coreGraphs.vertex, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + final Set empty_to_operand = Instantiation.link(TimeConsciousEdge.timeConsciousEdge, + SemanticExtensionsDomain.empty_to_operand, + empty, + empty, + coreSets.minCardinality_0, + coreSets.maxCardinality_1, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + SemanticExtensionsDomain.operand, + coreGraphs.vertex, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + + Instantiation.link(coreGraphs.superSetReference, logicalFunction, coreGraphs.vertex); + + Instantiation.link(coreGraphs.superSetReference, unaryLogicalFunction, logicalFunction); + Instantiation.link(coreGraphs.superSetReference, binaryLogicalFunction, logicalFunction); + Instantiation.link(coreGraphs.superSetReference, naryLogicalFunction, logicalFunction); + + Instantiation.link(coreGraphs.superSetReference, not, unaryLogicalFunction); + Instantiation.link(coreGraphs.superSetReference, exist, unaryLogicalFunction); + Instantiation.link(coreGraphs.superSetReference, empty, unaryLogicalFunction); + + Instantiation.link(coreGraphs.superSetReference, contains, binaryLogicalFunction); + Instantiation.link(coreGraphs.superSetReference, smaller, binaryLogicalFunction); + Instantiation.link(coreGraphs.superSetReference, greater, binaryLogicalFunction); + Instantiation.link(coreGraphs.superSetReference, smallerEqual, binaryLogicalFunction); + Instantiation.link(coreGraphs.superSetReference, greaterEqual, binaryLogicalFunction); + + Instantiation.link(coreGraphs.superSetReference, equal, naryLogicalFunction); + Instantiation.link(coreGraphs.superSetReference, equalToRepresentation, naryLogicalFunction); + Instantiation.link(coreGraphs.superSetReference, and, naryLogicalFunction); + Instantiation.link(coreGraphs.superSetReference, or, naryLogicalFunction); + Instantiation.link(coreGraphs.superSetReference, xor, naryLogicalFunction); + + + return logicalFunction; + } + +} diff --git a/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/RepresentationStyleCategories.java b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/RepresentationStyleCategories.java new file mode 100644 index 0000000..64b339e --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/RepresentationStyleCategories.java @@ -0,0 +1,136 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Ltd. (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.semanticextensions.outershells; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.G.coreSets; + +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.api.models.Root; + + +public class RepresentationStyleCategories { + + public static final Set representationStyleCategories = Root.universalartifactengineering.addConcrete(coreGraphs.vertex, SemanticExtensionsDomain.representationStyleCategories); + + public static final Set representationStyle = representationStyleCategories.addAbstract(Artifact.artifact, SemanticExtensionsDomain.representationStyle); + public static final Set vertexRepresentationStyle = representationStyleCategories.addConcrete(Artifact.artifact, SemanticExtensionsDomain.vertexRepresentationStyle); + public static final Set linkRepresentationStyle = representationStyleCategories.addConcrete(Artifact.artifact, SemanticExtensionsDomain.linkRepresentationStyle); + public static final Set color = representationStyleCategories.addConcrete(Artifact.artifact, SemanticExtensionsDomain.color); + public static final Set lineWidth = representationStyleCategories.addConcrete(Artifact.artifact, SemanticExtensionsDomain.lineWidth); + public static final Set lineStyle = representationStyleCategories.addConcrete(Artifact.artifact, SemanticExtensionsDomain.lineStyle); + public static final Set connectorSymbol = representationStyleCategories.addConcrete(Artifact.artifact, SemanticExtensionsDomain.connectorSymbol); + public static final Set symbolBoundaryShape = representationStyleCategories.addConcrete(Artifact.artifact, SemanticExtensionsDomain.symbolBoundaryShape); + public static final Set symbolImage = representationStyleCategories.addConcrete(Artifact.artifact, SemanticExtensionsDomain.symbolImage); + public static final Set symbolIcon = representationStyleCategories.addConcrete(Artifact.artifact, SemanticExtensionsDomain.symbolIcon); + public static final Set includesName = representationStyleCategories.addConcrete(Artifact.artifact, SemanticExtensionsDomain.includesName); + public static final Set includesIcon = representationStyleCategories.addConcrete(Artifact.artifact, SemanticExtensionsDomain.includesIcon); + public static final Set includesImage = representationStyleCategories.addConcrete(Artifact.artifact, SemanticExtensionsDomain.includesImage); + public static final Set isBold = representationStyleCategories.addConcrete(Artifact.artifact, SemanticExtensionsDomain.isBold); + public static final Set isInItalics = representationStyleCategories.addConcrete(Artifact.artifact, SemanticExtensionsDomain.isInItalics); + public static final Set imageSize = representationStyleCategories.addConcrete(Artifact.artifact, SemanticExtensionsDomain.imageSize); + + public static final Set vertexRepresentationStyle_to_superset_representationStyle = Instantiation.link(coreGraphs.superSetReference, vertexRepresentationStyle, representationStyle); + public static final Set linkRepresentationStyle_to_superset_representationStyle = Instantiation.link(coreGraphs.superSetReference, linkRepresentationStyle, representationStyle); + + + public static Set instantiateFeature() { + + //F_SemanticStateOfInMemoryModel.link(coreGraphs.visibility, Artifact.artifact, representationStyleCategories); + + final Set representationStyle_to_color = Instantiation.link(TimeConsciousEdge.timeConsciousEdge, + SemanticExtensionsDomain.representationStyle_to_color, + representationStyle, + representationStyle, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + color, + color, + coreSets.minCardinality_0, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + final Set representationStyle_to_lineWidth = Instantiation.link(TimeConsciousEdge.timeConsciousEdge, + SemanticExtensionsDomain.representationStyle_to_lineWidth, + representationStyle, + representationStyle, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + lineWidth, + lineWidth, + coreSets.minCardinality_0, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + final Set linkRepresentationStyle_to_sourceConnectorSymbol = Instantiation.link(TimeConsciousEdge.timeConsciousEdge, + SemanticExtensionsDomain.linkRepresentationStyle_to_sourceConnectorSymbol, + linkRepresentationStyle, + linkRepresentationStyle, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + SemanticExtensionsDomain.sourceConnectorSymbol, + connectorSymbol, + coreSets.minCardinality_0, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + final Set linkRepresentationStyle_to_targetConnectorSymbol = Instantiation.link(TimeConsciousEdge.timeConsciousEdge, + SemanticExtensionsDomain.linkRepresentationStyle_to_targetConnectorSymbol, + linkRepresentationStyle, + linkRepresentationStyle, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + SemanticExtensionsDomain.targetConnectorSymbol, + connectorSymbol, + coreSets.minCardinality_0, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + + //F_SemanticStateOfInMemoryModel.link(coreGraphs.visibility, and, naryLogicalFunction); + //F_SemanticStateOfInMemoryModel.link(coreGraphs.visibility, and, logicalFunction); + + + + + + return representationStyleCategories; + } + +} diff --git a/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/SemanticEnterprise.java b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/SemanticEnterprise.java new file mode 100644 index 0000000..0071c70 --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/SemanticEnterprise.java @@ -0,0 +1,72 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Ltd. (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.semanticextensions.outershells; + +import static org.gmodel.G.coreGraphs; + +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.api.models.Root; + + +/** + * {@link SemanticEnterprise} implements all instantiation semantics related to Enterprise Architecture information modelling + * that must be enforced for all Instances/artifacts (instantiation level n, with n > 0) + * + * The semantics enforced in SemanticEnterprise relate to specific subsets of vertices + * that are useful for classifying Enterprise Architecture information + * + */ +public final class SemanticEnterprise { + + //public static final Set enterpriseArchitectureGraph = F_SemanticStateOfInMemoryModel.instantiateConcrete(Artifact.artifact, F_SemanticStateOfInMemoryModel.addDisjunctSemanticIdentitySet("enterprise architecture", "set of enterprise architecture", GmodelSemanticDomains.gmodel)); + public static final Set semanticEnterprise = Root.universalartifactengineering.addConcrete(coreGraphs.vertex, Instantiation.addDisjunctSemanticIdentitySet("semantic enterprise", "set of semantic enterprises", SemanticExtensionsDomain.semanticExtensionsDomain)); + public static final Set how = semanticEnterprise.addConcrete(coreGraphs.vertex, org.gmodel.api.models2.EnterpriseArchitecture.how); + public static final Set who = semanticEnterprise.addConcrete(coreGraphs.vertex, org.gmodel.api.models2.EnterpriseArchitecture.who); + public static final Set what = semanticEnterprise.addConcrete(coreGraphs.vertex, org.gmodel.api.models2.EnterpriseArchitecture.what); + public static final Set when = semanticEnterprise.addConcrete(coreGraphs.vertex, org.gmodel.api.models2.EnterpriseArchitecture.when); + public static final Set where = semanticEnterprise.addConcrete(coreGraphs.vertex, org.gmodel.api.models2.EnterpriseArchitecture.where); + public static final Set why = semanticEnterprise.addConcrete(coreGraphs.vertex, org.gmodel.api.models2.EnterpriseArchitecture.why); + + public static Set instantiateFeature() { + + // Here we ensure that the enterpriseArchitectureGraph is a true extension of Graph, + // so that effectively the enterpriseArchitectureGraph is still at instantiation level 0 - the same as Graph. + // See the TestSequence script to understand the effect. + Instantiation.link(coreGraphs.visibility, semanticEnterprise, Artifact.artifact); + + Instantiation.link(coreGraphs.superSetReference, semanticEnterprise, Artifact.artifact); + Instantiation.link(coreGraphs.superSetReference, how, Artifact.artifact); + Instantiation.link(coreGraphs.superSetReference, who, Artifact.artifact); + Instantiation.link(coreGraphs.superSetReference, what, Artifact.artifact); + Instantiation.link(coreGraphs.superSetReference, when, Artifact.artifact); + Instantiation.link(coreGraphs.superSetReference, where, Artifact.artifact); + Instantiation.link(coreGraphs.superSetReference, why, Artifact.artifact); + + return semanticEnterprise; + } + +} diff --git a/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/SemanticExtensions.java b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/SemanticExtensions.java new file mode 100644 index 0000000..a3af3f7 --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/SemanticExtensions.java @@ -0,0 +1,50 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Ltd. (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.semanticextensions.outershells; + +import static org.gmodel.core.F_Instantiation.identityFactory; + +public class SemanticExtensions { + + public static void instantiateFeature() { + final int kernelComplexity = identityFactory.kernelComplexity(); + final int inMemoryComplexity = identityFactory.inMemoryComplexity(); + Artifact.instantiateFeature(); + // TODO Fix up GmodelSemantics.instantiateFeature(); + SemanticEnterprise.instantiateFeature(); + ValidityInterval.instantiateFeature(); + Transaction.instantiateFeature(); + TimeConsciousEdge.instantiateFeature(); + Language.instantiateFeature(); + Terminology.instantiateFeature(); + LegalEntity.instantiateFeature(); + // TODO Fix up LogicalFunction.instantiateFeature(); + ArtifactVisualization.instantiateFeature(); + RepresentationStyleCategories.instantiateFeature(); + + } + +} diff --git a/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/SemanticExtensionsDomain.java b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/SemanticExtensionsDomain.java new file mode 100644 index 0000000..d2b5b77 --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/SemanticExtensionsDomain.java @@ -0,0 +1,204 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Ltd. (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.semanticextensions.outershells; + +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.api.models.GmodelSemanticDomains; + +public class SemanticExtensionsDomain { + + // GOMODEL SEMANTIC EXTENSIONS DOMAIN + public static final Set semanticExtensionsDomain = Instantiation.addSemanticDomain("gmodel semantic extensions", "gmodel semantic extensions", GmodelSemanticDomains.finiteSets); + public static final Set world = Instantiation.addDisjunctSemanticIdentitySet("world", "set of worlds", semanticExtensionsDomain); + public static final Set legalEntity = Instantiation.addDisjunctSemanticIdentitySet("legal entity", "set of legal entities", semanticExtensionsDomain); + public static final Set person = Instantiation.addSemanticRole("person", "people", semanticExtensionsDomain, legalEntity); + public static final Set organization = Instantiation.addSemanticRole("organization", "organizations", semanticExtensionsDomain, legalEntity); + public static final Set user = Instantiation.addSemanticRole("user", "users", semanticExtensionsDomain, person); + public static final Set creator = Instantiation.addSemanticRole("creator", "creators", semanticExtensionsDomain, legalEntity); + public static final Set role = Instantiation.addDisjunctSemanticIdentitySet("role", "roles", semanticExtensionsDomain); + public static final Set languagePreference = Instantiation.addDisjunctSemanticIdentitySet("language preference", "set of language preferences", semanticExtensionsDomain); + public static final Set parentOrganization = Instantiation.addSemanticRole("parent", "set of parents", semanticExtensionsDomain, organization); + public static final Set subOrganization = Instantiation.addSemanticRole("sub organization", "set of sub organizations", semanticExtensionsDomain, organization); + public static final Set parentRole = Instantiation.addSemanticRole("parent", "set of parents", semanticExtensionsDomain, role); + public static final Set includedRole = Instantiation.addSemanticRole("included role", "set of included roles", semanticExtensionsDomain, role); + public static final Set excludedRole = Instantiation.addSemanticRole("excluded role", "set of excluded roles", semanticExtensionsDomain, role); + public static final Set disjunctRole = Instantiation.addSemanticRole("disjunct role", "set of disjunct roles", semanticExtensionsDomain, role); + public static final Set producer = Instantiation.addSemanticRole("producer", "producers", semanticExtensionsDomain, role); + public static final Set consumer = Instantiation.addSemanticRole("consumer", "consumers", semanticExtensionsDomain, role); + + + public static final Set lifeCycle = Instantiation.addDisjunctSemanticIdentitySet("life cycle", "life cycles", semanticExtensionsDomain); + public static final Set state = Instantiation.addDisjunctSemanticIdentitySet("state", "states", semanticExtensionsDomain); + public static final Set artifactState = Instantiation.addSemanticRole("container state", "container states", semanticExtensionsDomain, state); + public static final Set artifact = Instantiation.addDisjunctSemanticIdentitySet("container", "artifacts", semanticExtensionsDomain); + public static final Set artifact_to_validityInterval = Instantiation.addDisjunctSemanticIdentitySet("container to validity interval", "set of artifacts to validity intervals", semanticExtensionsDomain); + public static final Set artifact_to_transaction = Instantiation.addDisjunctSemanticIdentitySet("container to transaction", "set of artifacts to transactions", semanticExtensionsDomain); + public static final Set artifact_to_producer = Instantiation.addDisjunctSemanticIdentitySet("container to producer", "set of artifacts to producers", semanticExtensionsDomain); + public static final Set artifact_to_consumers = Instantiation.addDisjunctSemanticIdentitySet("container to consumers", "set of artifacts to consumers", semanticExtensionsDomain); + + + public static final Set transition = Instantiation.addDisjunctSemanticIdentitySet("transition", "transitions", semanticExtensionsDomain); + public static final Set source = Instantiation.addSemanticRole("source", "set of sources", semanticExtensionsDomain, state); + public static final Set target = Instantiation.addSemanticRole("target", "set of targets", semanticExtensionsDomain, state); + public static final Set artifact_to_lifeCycle = Instantiation.addDisjunctSemanticIdentitySet("container to life cycle", "set of container to life cycles", semanticExtensionsDomain); + public static final Set artifact_to_state = Instantiation.addDisjunctSemanticIdentitySet("container to state", "set of container to states", semanticExtensionsDomain); + public static final Set artifact_to_semanticUnit = Instantiation.addDisjunctSemanticIdentitySet("container to semantic unit", "set of container to semantic unit", semanticExtensionsDomain); + + public static final Set timestamp = Instantiation.addDisjunctSemanticIdentitySet("timestamp", "set of timestamps", semanticExtensionsDomain); + public static final Set validFromTimestamp = Instantiation.addSemanticRole("valid from timestamp", "set of valid from timestamps", semanticExtensionsDomain, timestamp); + public static final Set validUntilTimestamp = Instantiation.addSemanticRole("valid until timestamp", "set of valid until timestamps", semanticExtensionsDomain, timestamp); + public static final Set creationTimestamp = Instantiation.addSemanticRole("creation timestamp", "set of creation timestamps", semanticExtensionsDomain, timestamp); + public static final Set validityInterval = Instantiation.addDisjunctSemanticIdentitySet("validity interval", "set of validity intervals", semanticExtensionsDomain); + public static final Set validityIntervals = Instantiation.addDisjunctSemanticIdentitySet("validity intervals", "set of validity intervals", semanticExtensionsDomain); + public static final Set timestamps = Instantiation.addDisjunctSemanticIdentitySet("timestamps", "set of timestamps", semanticExtensionsDomain); + + public static final Set timeline = Instantiation.addDisjunctSemanticIdentitySet("timeline", "set of timelines", semanticExtensionsDomain); + + public static final Set transaction = Instantiation.addDisjunctSemanticIdentitySet("transaction", "set of transactions", semanticExtensionsDomain); + public static final Set baseline = Instantiation.addDisjunctSemanticIdentitySet("baseline", "set of baselines", semanticExtensionsDomain); + public static final Set transactions = Instantiation.addDisjunctSemanticIdentitySet("transactions", "set of transactions", semanticExtensionsDomain); + + + public static final Set timeConsciousEdge = Instantiation.addDisjunctSemanticIdentitySet("time conscious edge", "set of time conscious edges", semanticExtensionsDomain); + public static final Set timeConsciousEdge_to_validityInterval = Instantiation.addDisjunctSemanticIdentitySet("time conscious edge to validity interval", "set of time conscious edges to validity intervals", semanticExtensionsDomain); + public static final Set timeConsciousEdge_to_transaction = Instantiation.addDisjunctSemanticIdentitySet("time conscious edge to transaction", "set of time conscious edge to transactions", semanticExtensionsDomain); + + public static final Set validityInterval_to_validFromTimestamp = Instantiation.addDisjunctSemanticIdentitySet("validity interval to valid from timestamp", "set of validity intervals to valid from timestamps", semanticExtensionsDomain); + public static final Set validityInterval_to_validUntilTimestamp = Instantiation.addDisjunctSemanticIdentitySet("validity interval to valid until timestamp", "set of validity intervals to valid until timestamps", semanticExtensionsDomain); + + public static final Set transaction_to_creationTimestamp = Instantiation.addDisjunctSemanticIdentitySet("transaction to creation timestamp", "set of transaction to creation timestamps", semanticExtensionsDomain); + public static final Set transaction_to_creator = Instantiation.addDisjunctSemanticIdentitySet("transaction to creator", "set of transaction to creators", semanticExtensionsDomain); + + public static final Set organization_to_user = Instantiation.addDisjunctSemanticIdentitySet("organization to user", "set of organizations to users", semanticExtensionsDomain); + public static final Set organization_to_roles = Instantiation.addDisjunctSemanticIdentitySet("organization to roles", "set of organizations to roles", semanticExtensionsDomain); + public static final Set organization_to_subOrganizations = Instantiation.addDisjunctSemanticIdentitySet("organization to sub organizations", "set of organizations to sub organizations", semanticExtensionsDomain); + public static final Set user_to_languagePreferences = Instantiation.addDisjunctSemanticIdentitySet("user to language preferences", "set of user to language preferences", semanticExtensionsDomain); + public static final Set user_to_roles = Instantiation.addDisjunctSemanticIdentitySet("user to roles", "set of user to roles", semanticExtensionsDomain); + public static final Set role_to_includedRoles = Instantiation.addDisjunctSemanticIdentitySet("role to included roles", "set of role to included roles", semanticExtensionsDomain); + public static final Set role_to_excludedRoles = Instantiation.addDisjunctSemanticIdentitySet("role to excluded roles", "set of role to excluded roles", semanticExtensionsDomain); + public static final Set languagePreference_to_language = Instantiation.addDisjunctSemanticIdentitySet("language preference to language", "set of language preference to languages", semanticExtensionsDomain); + + + public static final Set language = Instantiation.addDisjunctSemanticIdentitySet("language", "set of languages", semanticExtensionsDomain); + public static final Set languageElement = Instantiation.addDisjunctSemanticIdentitySet("language element", "set of language elements", semanticExtensionsDomain); + public static final Set abstractWord = Instantiation.addDisjunctSemanticIdentitySet("abstract word", "set of abstract words", semanticExtensionsDomain); + public static final Set word = Instantiation.addDisjunctSemanticIdentitySet("word", "set of words", semanticExtensionsDomain); + public static final Set wordSeparator = Instantiation.addDisjunctSemanticIdentitySet("word separator", "set of word separators", semanticExtensionsDomain); + public static final Set whiteSpaceElement = Instantiation.addDisjunctSemanticIdentitySet("white space element", "set of white space elements", semanticExtensionsDomain); + public static final Set sentenceSeparator = Instantiation.addDisjunctSemanticIdentitySet("sentence separator", "set of sentence separators", semanticExtensionsDomain); + + public static final Set terminology = Instantiation.addDisjunctSemanticIdentitySet("terminology", "set of terminologies", semanticExtensionsDomain); + public static final Set includedTerminology = Instantiation.addSemanticRole("included terminology", "set of included terminologies", semanticExtensionsDomain, terminology); + public static final Set abbreviation = Instantiation.addDisjunctSemanticIdentitySet("abbreviation", "set of abbreviations", semanticExtensionsDomain); + public static final Set idiom = Instantiation.addDisjunctSemanticIdentitySet("idiom", "set of idioms", semanticExtensionsDomain); + public static final Set idiomPart = Instantiation.addSemanticRole("part", "set of parts", semanticExtensionsDomain, abstractWord); + public static final Set semanticUnit = Instantiation.addDisjunctSemanticIdentitySet("semantic unit", "set of semantic units", semanticExtensionsDomain); + public static final Set wordDefinition = Instantiation.addDisjunctSemanticIdentitySet("word definition", "set of word definitions", semanticExtensionsDomain); + public static final Set oppositeSemanticUnit = Instantiation.addSemanticRole("opposite", "set of opposites", semanticExtensionsDomain, semanticUnit); + + public static final Set idiom_to_languages = Instantiation.addDisjunctSemanticIdentitySet("idiom to languages", "set of idiom to languages", semanticExtensionsDomain); + public static final Set idiom_to_idiomParts = Instantiation.addDisjunctSemanticIdentitySet("idiom to idiom parts", "set of idiom to idiom parts", semanticExtensionsDomain); + public static final Set abbreviation_to_languages = Instantiation.addDisjunctSemanticIdentitySet("abbreviation to languages", "set of abbreviation to languages", semanticExtensionsDomain); + public static final Set wordDefinition_to_language = Instantiation.addDisjunctSemanticIdentitySet("word definition to language", "set of word definition to language", semanticExtensionsDomain); + public static final Set semanticUnit_to_abstractWords = Instantiation.addDisjunctSemanticIdentitySet("semantic unit to abstract words", "set of semantic unit to abstract words", semanticExtensionsDomain); + public static final Set semanticUnit_to_abbreviations = Instantiation.addDisjunctSemanticIdentitySet("semantic unit to abbreviations", "set of semantic unit to abbreviations", semanticExtensionsDomain); + public static final Set semanticUnit_to_wordDefinitions = Instantiation.addDisjunctSemanticIdentitySet("semantic unit to word definitions", "set of semantic unit to word definitions", semanticExtensionsDomain); + public static final Set semanticUnit_to_oppositeSemanticUnit = Instantiation.addDisjunctSemanticIdentitySet("semantic unit to opposite semantic unit", "set of semantic unit to opposite semantic unit", semanticExtensionsDomain); + + public static final Set logicalExpression = Instantiation.addDisjunctSemanticIdentitySet("logical expression", "set of logical expressions", semanticExtensionsDomain); + public static final Set logicalFunction = Instantiation.addDisjunctSemanticIdentitySet("logical function", "set of logical functions", semanticExtensionsDomain); + public static final Set unaryLogicalFunction = Instantiation.addDisjunctSemanticIdentitySet("unary logical function", "set of unary logical functions", semanticExtensionsDomain); + public static final Set binaryLogicalFunction = Instantiation.addDisjunctSemanticIdentitySet("binary logical function", "set of binary logical functions", semanticExtensionsDomain); + public static final Set naryLogicalFunction = Instantiation.addDisjunctSemanticIdentitySet("n-ary logical function", "set of n-ary logical functions", semanticExtensionsDomain); + public static final Set empty = Instantiation.addDisjunctSemanticIdentitySet("EMPTY", "set of EMPTYs", semanticExtensionsDomain); + public static final Set exist = Instantiation.addDisjunctSemanticIdentitySet("EXIST", "set of EXISTs", semanticExtensionsDomain); + public static final Set not = Instantiation.addDisjunctSemanticIdentitySet("NOT", "set of NOTs", semanticExtensionsDomain); + public static final Set contains = Instantiation.addDisjunctSemanticIdentitySet("CONTAINS", "set of CONTAINS", semanticExtensionsDomain); + public static final Set equal = Instantiation.addDisjunctSemanticIdentitySet("EQUAL", "set of EQUALs", semanticExtensionsDomain); + public static final Set equalToRepresentation = Instantiation.addDisjunctSemanticIdentitySet("EQUAL REPRESENTATION", "set of EQUAL REPRESENTATIONs", semanticExtensionsDomain); + + public static final Set smallerEqual = Instantiation.addDisjunctSemanticIdentitySet("SMALLER or EQUAL", "set of SMALLER or EQUALs", semanticExtensionsDomain); + public static final Set greaterEqual = Instantiation.addDisjunctSemanticIdentitySet("GREATER or EQUAL", "set of GREATER or EQUALs", semanticExtensionsDomain); + public static final Set smaller = Instantiation.addDisjunctSemanticIdentitySet("SMALLER", "set of SMALLERs", semanticExtensionsDomain); + public static final Set greater = Instantiation.addDisjunctSemanticIdentitySet("GREATER", "set of GREATERs", semanticExtensionsDomain); + public static final Set and = Instantiation.addDisjunctSemanticIdentitySet("AND", "set of ANDs", semanticExtensionsDomain); + public static final Set or = Instantiation.addDisjunctSemanticIdentitySet("OR", "set of ORs", semanticExtensionsDomain); + public static final Set xor = Instantiation.addDisjunctSemanticIdentitySet("EXCLUSIVE OR", "set of EXCLUSIVE ORs", semanticExtensionsDomain); + public static final Set operand = Instantiation.addDisjunctSemanticIdentitySet("operand", "set of operands", semanticExtensionsDomain); + + public static final Set binaryLogicalFunction_to_operands = Instantiation.addDisjunctSemanticIdentitySet("binary logical function to operands", "set of binary logical function to operands", semanticExtensionsDomain); + public static final Set and_to_operands = Instantiation.addDisjunctSemanticIdentitySet("AND to operands", "set of AND to operands", semanticExtensionsDomain); + public static final Set or_to_operands = Instantiation.addDisjunctSemanticIdentitySet("OR to operands", "set of OR to operands", semanticExtensionsDomain); + public static final Set xor_to_operands = Instantiation.addDisjunctSemanticIdentitySet("XOR to operands", "set of XOR to operands", semanticExtensionsDomain); + public static final Set not_to_operand = Instantiation.addDisjunctSemanticIdentitySet("NOT to operand", "set of NOT to operands", semanticExtensionsDomain); + public static final Set exist_to_operand = Instantiation.addDisjunctSemanticIdentitySet("EXIST to operand", "set of EXIST to operands", semanticExtensionsDomain); + public static final Set empty_to_operand = Instantiation.addDisjunctSemanticIdentitySet("EMPTY to operand", "set of EMPTY to operands", semanticExtensionsDomain); + + public static final Set artifactVisualization = Instantiation.addDisjunctSemanticIdentitySet("container visualizedGraph", "container visualizations", semanticExtensionsDomain); + public static final Set representationStyleCategories = Instantiation.addDisjunctSemanticIdentitySet("representation style categories", "set of representation style categories", semanticExtensionsDomain); + public static final Set representationStyleElements = Instantiation.addDisjunctSemanticIdentitySet("representation style elements", "set of representation style elements", semanticExtensionsDomain); + public static final Set representationStyle = Instantiation.addDisjunctSemanticIdentitySet("representation style", "representation styles", semanticExtensionsDomain); + public static final Set vertexRepresentationStyle = Instantiation.addDisjunctSemanticIdentitySet("vertex representation style", "vertex representation styles", semanticExtensionsDomain); + public static final Set linkRepresentationStyle = Instantiation.addDisjunctSemanticIdentitySet("link representation style", "link representation styles", semanticExtensionsDomain); + public static final Set color = Instantiation.addDisjunctSemanticIdentitySet("color", "colors", semanticExtensionsDomain); + public static final Set lineWidth = Instantiation.addDisjunctSemanticIdentitySet("line width", "set of line widths", semanticExtensionsDomain); + public static final Set lineStyle = Instantiation.addDisjunctSemanticIdentitySet("line style", "line styles", semanticExtensionsDomain); + public static final Set connectorSymbol = Instantiation.addDisjunctSemanticIdentitySet("connector symbol", "connector symbols", semanticExtensionsDomain); + public static final Set sourceConnectorSymbol = Instantiation.addDisjunctSemanticIdentitySet("source connector symbol", "source connector symbols", semanticExtensionsDomain); + public static final Set targetConnectorSymbol = Instantiation.addDisjunctSemanticIdentitySet("target connector symbol", "target connector symbols", semanticExtensionsDomain); + public static final Set symbolBoundaryShape = Instantiation.addDisjunctSemanticIdentitySet("symbol boundary shape", "symbol boundary shapes", semanticExtensionsDomain); + public static final Set symbolIcon = Instantiation.addDisjunctSemanticIdentitySet("symbol icon", "symbol icons", semanticExtensionsDomain); + public static final Set symbolImage = Instantiation.addDisjunctSemanticIdentitySet("symbol image", "symbol images", semanticExtensionsDomain); + public static final Set includesName = Instantiation.addDisjunctSemanticIdentitySet("includes name", "set of includes names", semanticExtensionsDomain); + public static final Set includesIcon = Instantiation.addDisjunctSemanticIdentitySet("includes icon", "set of includes icons", semanticExtensionsDomain); + public static final Set includesImage = Instantiation.addDisjunctSemanticIdentitySet("includes image", "set of includes images", semanticExtensionsDomain); + public static final Set isBold = Instantiation.addDisjunctSemanticIdentitySet("is bold", "set of is bolds", semanticExtensionsDomain); + public static final Set isInItalics = Instantiation.addDisjunctSemanticIdentitySet("is in italics", "set of is in italics", semanticExtensionsDomain); + public static final Set imageSize = Instantiation.addDisjunctSemanticIdentitySet("image size", "set of image sizes", semanticExtensionsDomain); + + public static final Set representationStyle_to_color = Instantiation.addDisjunctSemanticIdentitySet("representation style to color", "set of representation style to colors", semanticExtensionsDomain); + public static final Set representationStyle_to_lineWidth = Instantiation.addDisjunctSemanticIdentitySet("representation style to line width", "set of representation style to line widths", semanticExtensionsDomain); + public static final Set vertexRepresentationStyle_to_superset_representationStyle = Instantiation.addDisjunctSemanticIdentitySet("vertex representation style to superset representation style", "set of vertex representation style to superset representation styles", semanticExtensionsDomain); + public static final Set linkRepresentationStyle_to_sourceConnectorSymbol = Instantiation.addDisjunctSemanticIdentitySet("link representation style to source connector symbol", "set of link representation style to source connector symbols", semanticExtensionsDomain); + public static final Set linkRepresentationStyle_to_targetConnectorSymbol = Instantiation.addDisjunctSemanticIdentitySet("link representation style to target connector symbol", "set of link representation style to target connector symbols", semanticExtensionsDomain); + + public static final Set theDefault = Instantiation.addDisjunctSemanticIdentitySet("default", "defaults", GmodelSemanticDomains.gmodel); + public static final Set icon = Instantiation.addDisjunctSemanticIdentitySet("icon", "icons", GmodelSemanticDomains.gmodel); + + + public static Set instantiateFeature() { + + validityInterval.addElement(validFromTimestamp); + validityInterval.addElement(validUntilTimestamp); + + transaction.addElement(creationTimestamp); + transaction.addElement(creator); + + return semanticExtensionsDomain; + } + +} diff --git a/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/Terminology.java b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/Terminology.java new file mode 100644 index 0000000..35f612a --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/Terminology.java @@ -0,0 +1,195 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Ltd. (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.semanticextensions.outershells; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.G.coreSets; + +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.api.models.Root; + + +public class Terminology { + + public static final Set terminology = Root.universalartifactengineering.addConcrete(coreGraphs.vertex, SemanticExtensionsDomain.terminology); + public static final Set idiom = terminology.addConcrete(SemanticEnterprise.what, SemanticExtensionsDomain.idiom); + public static final Set abbreviation = terminology.addConcrete(SemanticEnterprise.what, SemanticExtensionsDomain.abbreviation); + public static final Set semanticUnit = terminology.addConcrete(coreGraphs.vertex, SemanticExtensionsDomain.semanticUnit); + public static final Set wordDefinition = terminology.addConcrete(SemanticEnterprise.what, SemanticExtensionsDomain.wordDefinition); + + public static Set instantiateFeature() { + Instantiation.link(coreGraphs.visibility, terminology, Language.language); + Instantiation.link(coreGraphs.visibility, Root.universalartifactengineering, terminology); + + final Set idiom_to_languages = Instantiation.link(TimeConsciousEdge.timeConsciousEdge, + SemanticExtensionsDomain.idiom_to_languages, + idiom, + idiom, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + Language.language, + Language.language, + coreSets.minCardinality_1, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + final Set idiom_to_idiomParts = Instantiation.link(TimeConsciousEdge.timeConsciousEdge, + SemanticExtensionsDomain.idiom_to_idiomParts, + idiom, + idiom, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + SemanticExtensionsDomain.idiomPart, + Language.abstractWord, + coreSets.minCardinality_1, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + + final Set abbreviation_to_languages = Instantiation.link(TimeConsciousEdge.timeConsciousEdge, + SemanticExtensionsDomain.abbreviation_to_languages, + abbreviation, + abbreviation, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + Language.language, + Language.language, + coreSets.minCardinality_1, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + final Set wordDefinition_to_language = Instantiation.link(TimeConsciousEdge.timeConsciousEdge, + SemanticExtensionsDomain.wordDefinition_to_language, + wordDefinition, + wordDefinition, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + Language.language, + Language.language, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + final Set semanticUnit_to_abstractWords = Instantiation.link(coreGraphs.edge, + SemanticExtensionsDomain.semanticUnit_to_abstractWords, + semanticUnit, + semanticUnit, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + Language.word, + Language.abstractWord, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + final Set semanticUnit_to_abbreviations = Instantiation.link(coreGraphs.edge, + SemanticExtensionsDomain.semanticUnit_to_abbreviations, + semanticUnit, + semanticUnit, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE, + abbreviation, + abbreviation, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + final Set semanticUnit_to_wordDefinitions = Instantiation.link(coreGraphs.edge, + SemanticExtensionsDomain.semanticUnit_to_wordDefinitions, + semanticUnit, + semanticUnit, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_TRUE, + wordDefinition, + wordDefinition, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + final Set semanticUnit_to_oppositeSemanticUnit = Instantiation.link(coreGraphs.edge, + SemanticExtensionsDomain.semanticUnit_to_oppositeSemanticUnit, + semanticUnit, + semanticUnit, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + SemanticExtensionsDomain.oppositeSemanticUnit, + semanticUnit, + coreSets.minCardinality_0, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + final Set semanticAtom_to_semanticUnit = Instantiation.link(coreGraphs.edge, + SemanticExtensionsDomain.artifact_to_semanticUnit, + + Artifact.artifact, + Artifact.artifact, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_FALSE, + coreSets.isContainer_FALSE, + semanticUnit, + semanticUnit, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + + Instantiation.link(coreGraphs.superSetReference, terminology, coreGraphs.vertex); + Instantiation.link(coreGraphs.superSetReference, idiom, Language.abstractWord); + Instantiation.link(coreGraphs.superSetReference, abbreviation, Language.abstractWord); + Instantiation.link(coreGraphs.superSetReference, semanticUnit, coreGraphs.vertex); + Instantiation.link(coreGraphs.superSetReference, wordDefinition, Language.languageElement); + + return terminology; + } + +} diff --git a/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/TimeConsciousEdge.java b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/TimeConsciousEdge.java new file mode 100644 index 0000000..a7ebaff --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/TimeConsciousEdge.java @@ -0,0 +1,94 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Ltd. (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ +package org.gmodel.semanticextensions.outershells; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.G.coreSets; + +import org.gmodel.Set; +import org.gmodel.api.Instantiation; + + +public class TimeConsciousEdge { + + public static final Set timeConsciousEdge = Instantiation.link(coreGraphs.edge, + SemanticExtensionsDomain.timeConsciousEdge, + Artifact.artifact, + Artifact.artifact, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE, + coreGraphs.vertex, + coreGraphs.vertex, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + + //private static final Set v2 = F_SemanticStateOfInMemoryModel.link(coreGraphs.visibility, Root.universalartifactengineering, timeConsciousEdge); + + + public static final Set timeConsciousEdge_to_validityInterval = Instantiation.link(coreGraphs.edge, + SemanticExtensionsDomain.timeConsciousEdge_to_validityInterval, + timeConsciousEdge, + timeConsciousEdge, + coreSets.minCardinality_1, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE, + ValidityInterval.validityInterval, + ValidityInterval.validityInterval, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + + public static final Set timeConsciousEdge_to_transaction = Instantiation.link(coreGraphs.edge, + SemanticExtensionsDomain.timeConsciousEdge_to_transaction, + timeConsciousEdge, + timeConsciousEdge, + coreSets.minCardinality_1, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE, + Transaction.transaction, + Transaction.transaction, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + + + public static Set instantiateFeature() { + + Instantiation.link(coreGraphs.superSetReference, timeConsciousEdge, coreGraphs.edge); + + return timeConsciousEdge; + } +} diff --git a/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/Transaction.java b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/Transaction.java new file mode 100644 index 0000000..8da8ee6 --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/Transaction.java @@ -0,0 +1,83 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Ltd. (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ +package org.gmodel.semanticextensions.outershells; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.G.coreSets; + +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.api.models.Root; + + +public class Transaction { + + public static final Set transaction = Root.universalartifactengineering.addConcrete(coreGraphs.vertex, SemanticExtensionsDomain.transaction); + public static final Set creationTimestamp = Root.universalartifactengineering.addConcrete(coreGraphs.vertex, SemanticExtensionsDomain.creationTimestamp); + public static final Set creator = Root.universalartifactengineering.addConcrete(coreGraphs.vertex, SemanticExtensionsDomain.creator); + public static final Set transactions = Root.models.addAbstract(coreGraphs.vertex, SemanticExtensionsDomain.transactions); + + public static final Set transaction_to_creationTimestamp = Instantiation.link(coreGraphs.edge, + SemanticExtensionsDomain.transaction_to_creationTimestamp, + transaction, + transaction, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE, + creationTimestamp, + creationTimestamp, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + + public static final Set transaction_to_creator = Instantiation.link(coreGraphs.edge, + SemanticExtensionsDomain.transaction_to_creator, + transaction, + transaction, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE, + creator, + creator, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + + + public static Set instantiateFeature() { + + Instantiation.link(coreGraphs.superSetReference, transaction, coreGraphs.vertex); + Instantiation.link(coreGraphs.superSetReference, creationTimestamp, coreGraphs.vertex); + Instantiation.link(coreGraphs.superSetReference, creator, coreGraphs.vertex); + + return transaction; + } +} diff --git a/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/ValidityInterval.java b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/ValidityInterval.java new file mode 100644 index 0000000..d8a28b7 --- /dev/null +++ b/src/trunk/org.gmodel.semanticextensions/src/org/gmodel/semanticextensions/outershells/ValidityInterval.java @@ -0,0 +1,85 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Ltd. (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * ***** END LICENSE BLOCK ***** */ +package org.gmodel.semanticextensions.outershells; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.G.coreSets; + +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.api.models.Root; + + +public class ValidityInterval { + + public static final Set validityInterval = Root.universalartifactengineering.addConcrete(coreGraphs.vertex, SemanticExtensionsDomain.validityInterval); + public static final Set validFromTimestamp = Root.universalartifactengineering.addConcrete(coreGraphs.vertex, SemanticExtensionsDomain.validFromTimestamp); + public static final Set validUntilTimestamp = Root.universalartifactengineering.addConcrete(coreGraphs.vertex, SemanticExtensionsDomain.validUntilTimestamp); + public static final Set validityIntervals = Root.models.addAbstract(coreGraphs.vertex, SemanticExtensionsDomain.validityIntervals); + public static final Set timestamps = Root.models.addAbstract(coreGraphs.vertex, SemanticExtensionsDomain.timestamps); + + + public static final Set validityInterval_to_validFromTimestamp = Instantiation.link(coreGraphs.edge, + SemanticExtensionsDomain.validityInterval_to_validFromTimestamp, + validityInterval, + validityInterval, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE, + validFromTimestamp, + validFromTimestamp, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + + public static final Set validityInterval_to_validUntilTimestamp = Instantiation.link(coreGraphs.edge, + SemanticExtensionsDomain.validityInterval_to_validUntilTimestamp, + validityInterval, + validityInterval, + coreSets.minCardinality_0, + coreSets.maxCardinality_n, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE, + validUntilTimestamp, + validUntilTimestamp, + coreSets.minCardinality_1, + coreSets.maxCardinality_1, + coreSets.isNavigable_TRUE, + coreSets.isContainer_FALSE + ); + + + public static Set instantiateFeature() { + + Instantiation.link(coreGraphs.superSetReference, validityInterval, coreGraphs.vertex); + Instantiation.link(coreGraphs.superSetReference, validFromTimestamp, coreGraphs.vertex); + Instantiation.link(coreGraphs.superSetReference, validUntilTimestamp, coreGraphs.vertex); + + return validityInterval; + } +} diff --git a/src/trunk/org.gmodel.semanticextensions/src/umlsketches/add Semantic Identity.png b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/add Semantic Identity.png new file mode 100644 index 0000000..51eff89 Binary files /dev/null and b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/add Semantic Identity.png differ diff --git a/src/trunk/org.gmodel.semanticextensions/src/umlsketches/add SemantidDomain.png b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/add SemantidDomain.png new file mode 100644 index 0000000..c173712 Binary files /dev/null and b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/add SemantidDomain.png differ diff --git a/src/trunk/org.gmodel.semanticextensions/src/umlsketches/add element to ModelArtifact.png b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/add element to ModelArtifact.png new file mode 100644 index 0000000..f69ebe4 Binary files /dev/null and b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/add element to ModelArtifact.png differ diff --git a/src/trunk/org.gmodel.semanticextensions/src/umlsketches/edit human identifiers.png b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/edit human identifiers.png new file mode 100644 index 0000000..c9a9325 Binary files /dev/null and b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/edit human identifiers.png differ diff --git a/src/trunk/org.gmodel.semanticextensions/src/umlsketches/example.mdzip b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/example.mdzip new file mode 100644 index 0000000..a78270f Binary files /dev/null and b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/example.mdzip differ diff --git a/src/trunk/org.gmodel.semanticextensions/src/umlsketches/example.mdzip.bak b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/example.mdzip.bak new file mode 100644 index 0000000..0a30013 Binary files /dev/null and b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/example.mdzip.bak differ diff --git a/src/trunk/org.gmodel.semanticextensions/src/umlsketches/gmodelsemantics.mdzip b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/gmodelsemantics.mdzip new file mode 100644 index 0000000..eacdfe8 Binary files /dev/null and b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/gmodelsemantics.mdzip differ diff --git a/src/trunk/org.gmodel.semanticextensions/src/umlsketches/gmodelsemantics.mdzip.bak b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/gmodelsemantics.mdzip.bak new file mode 100644 index 0000000..88941c1 Binary files /dev/null and b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/gmodelsemantics.mdzip.bak differ diff --git a/src/trunk/org.gmodel.semanticextensions/src/umlsketches/overview.png b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/overview.png new file mode 100644 index 0000000..46ec3fc Binary files /dev/null and b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/overview.png differ diff --git a/src/trunk/org.gmodel.semanticextensions/src/umlsketches/use cases - administration.png b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/use cases - administration.png new file mode 100644 index 0000000..a17bff3 Binary files /dev/null and b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/use cases - administration.png differ diff --git a/src/trunk/org.gmodel.semanticextensions/src/umlsketches/use cases - model execution.png b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/use cases - model execution.png new file mode 100644 index 0000000..fa2c748 Binary files /dev/null and b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/use cases - model execution.png differ diff --git a/src/trunk/org.gmodel.semanticextensions/src/umlsketches/use cases - modelling.png b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/use cases - modelling.png new file mode 100644 index 0000000..0a48dba Binary files /dev/null and b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/use cases - modelling.png differ diff --git a/src/trunk/org.gmodel.semanticextensions/src/umlsketches/use cases - requirements formaliser.png b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/use cases - requirements formaliser.png new file mode 100644 index 0000000..aeccd22 Binary files /dev/null and b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/use cases - requirements formaliser.png differ diff --git a/src/trunk/org.gmodel.semanticextensions/src/umlsketches/use cases - semantic extensions.png b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/use cases - semantic extensions.png new file mode 100644 index 0000000..139766c Binary files /dev/null and b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/use cases - semantic extensions.png differ diff --git a/src/trunk/org.gmodel.semanticextensions/src/umlsketches/use cases - semantic identification.png b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/use cases - semantic identification.png new file mode 100644 index 0000000..bc2f569 Binary files /dev/null and b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/use cases - semantic identification.png differ diff --git a/src/trunk/org.gmodel.semanticextensions/src/umlsketches/use cases - visual syntax designer.png b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/use cases - visual syntax designer.png new file mode 100644 index 0000000..3183f04 Binary files /dev/null and b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/use cases - visual syntax designer.png differ diff --git a/src/trunk/org.gmodel.semanticextensions/src/umlsketches/use cases.png b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/use cases.png new file mode 100644 index 0000000..259a0dd Binary files /dev/null and b/src/trunk/org.gmodel.semanticextensions/src/umlsketches/use cases.png differ diff --git a/src/trunk/org.gmodel.serialization/.classpath b/src/trunk/org.gmodel.serialization/.classpath new file mode 100644 index 0000000..6f6ff9e --- /dev/null +++ b/src/trunk/org.gmodel.serialization/.classpath @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/trunk/org.gmodel.serialization/.project b/src/trunk/org.gmodel.serialization/.project new file mode 100644 index 0000000..4140070 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/.project @@ -0,0 +1,28 @@ + + + org.gmodel.serialization + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/src/trunk/org.gmodel.serialization/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.serialization/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..91fd402 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,70 @@ +#Wed May 13 15:07:03 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.serialization/.settings/org.eclipse.jdt.ui.prefs b/src/trunk/org.gmodel.serialization/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000..131d04e --- /dev/null +++ b/src/trunk/org.gmodel.serialization/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,54 @@ +#Sun Feb 28 11:38:32 CET 2010 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=false +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/src/trunk/org.gmodel.serialization/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.serialization/META-INF/MANIFEST.MF new file mode 100644 index 0000000..00c2b4a --- /dev/null +++ b/src/trunk/org.gmodel.serialization/META-INF/MANIFEST.MF @@ -0,0 +1,18 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.serialization +Bundle-SymbolicName: org.gmodel.serialization;singleton:=true +Bundle-Version: 1.0.0 +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Require-Bundle: org.gmodel.kernel;bundle-version="1.0.0", + org.gmodel.statistics;bundle-version="1.0.0" +Bundle-ClassPath: ., + lib/activation.jar, + lib/javax.xml.stream.jar, + lib/jaxb-api-2.0.jar, + lib/jaxb-impl-2.0.jar, + lib/commons-codec-1.4.jar, + lib/commons-collections-3.2.1.jar +Export-Package: org.gmodel.serialization, + org.gmodel.serialization.container, + org.gmodel.serialization.serializer diff --git a/src/trunk/org.gmodel.serialization/build.properties b/src/trunk/org.gmodel.serialization/build.properties new file mode 100644 index 0000000..b108bc4 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/build.properties @@ -0,0 +1,10 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + lib/activation.jar,\ + lib/javax.xml.stream.jar,\ + lib/jaxb-api-2.0.jar,\ + lib/jaxb-impl-2.0.jar,\ + lib/commons-codec-1.4.jar,\ + lib/commons-collections-3.2.1.jar diff --git a/src/trunk/org.gmodel.serialization/lib/activation.jar b/src/trunk/org.gmodel.serialization/lib/activation.jar new file mode 100644 index 0000000..e31e71c Binary files /dev/null and b/src/trunk/org.gmodel.serialization/lib/activation.jar differ diff --git a/src/trunk/org.gmodel.serialization/lib/commons-codec-1.4.jar b/src/trunk/org.gmodel.serialization/lib/commons-codec-1.4.jar new file mode 100644 index 0000000..458d432 Binary files /dev/null and b/src/trunk/org.gmodel.serialization/lib/commons-codec-1.4.jar differ diff --git a/src/trunk/org.gmodel.serialization/lib/commons-collections-3.2.1.jar b/src/trunk/org.gmodel.serialization/lib/commons-collections-3.2.1.jar new file mode 100644 index 0000000..c35fa1f Binary files /dev/null and b/src/trunk/org.gmodel.serialization/lib/commons-collections-3.2.1.jar differ diff --git a/src/trunk/org.gmodel.serialization/lib/javax.xml.stream.jar b/src/trunk/org.gmodel.serialization/lib/javax.xml.stream.jar new file mode 100644 index 0000000..87ff1c1 Binary files /dev/null and b/src/trunk/org.gmodel.serialization/lib/javax.xml.stream.jar differ diff --git a/src/trunk/org.gmodel.serialization/lib/jaxb-api-2.0.jar b/src/trunk/org.gmodel.serialization/lib/jaxb-api-2.0.jar new file mode 100644 index 0000000..bcc7119 Binary files /dev/null and b/src/trunk/org.gmodel.serialization/lib/jaxb-api-2.0.jar differ diff --git a/src/trunk/org.gmodel.serialization/lib/jaxb-impl-2.0.jar b/src/trunk/org.gmodel.serialization/lib/jaxb-impl-2.0.jar new file mode 100644 index 0000000..428119e Binary files /dev/null and b/src/trunk/org.gmodel.serialization/lib/jaxb-impl-2.0.jar differ diff --git a/src/trunk/org.gmodel.serialization/schema/container.xsd b/src/trunk/org.gmodel.serialization/schema/container.xsd new file mode 100644 index 0000000..1b5382a --- /dev/null +++ b/src/trunk/org.gmodel.serialization/schema/container.xsd @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/trunk/org.gmodel.serialization/schema/serialization.xsd b/src/trunk/org.gmodel.serialization/schema/serialization.xsd new file mode 100644 index 0000000..b8420dc --- /dev/null +++ b/src/trunk/org.gmodel.serialization/schema/serialization.xsd @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/CommandType.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/CommandType.java new file mode 100644 index 0000000..0b451c0 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/CommandType.java @@ -0,0 +1,37 @@ +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0-b52-fcs +// See http://java.sun.com/xml/jaxb +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2011.03.23 at 04:41:58 PM CET +// + + +package org.gmodel.serialization; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for commandType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="commandType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "commandType") +public class CommandType { + + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/EdgeTraceType.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/EdgeTraceType.java new file mode 100644 index 0000000..b5bee6d --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/EdgeTraceType.java @@ -0,0 +1,92 @@ +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0-b52-fcs +// See http://java.sun.com/xml/jaxb +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2011.03.23 at 04:41:58 PM CET +// + + +package org.gmodel.serialization; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for edgeTraceType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="edgeTraceType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <attribute name="abstractionInstance" use="required" type="{http://schemas.gmodel.org/serialization/2010}referenceId" />
+ *       <attribute name="detailInstance" use="required" type="{http://schemas.gmodel.org/serialization/2010}referenceId" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "edgeTraceType") +public class EdgeTraceType { + + @XmlAttribute(required = true) + protected String abstractionInstance; + @XmlAttribute(required = true) + protected String detailInstance; + + /** + * Gets the value of the abstractionInstance property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getAbstractionInstance() { + return abstractionInstance; + } + + /** + * Sets the value of the abstractionInstance property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setAbstractionInstance(String value) { + this.abstractionInstance = value; + } + + /** + * Gets the value of the detailInstance property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDetailInstance() { + return detailInstance; + } + + /** + * Sets the value of the detailInstance property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDetailInstance(String value) { + this.detailInstance = value; + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/EdgeType.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/EdgeType.java new file mode 100644 index 0000000..b457e97 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/EdgeType.java @@ -0,0 +1,375 @@ +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0-b52-fcs +// See http://java.sun.com/xml/jaxb +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2011.03.23 at 04:41:58 PM CET +// + + +package org.gmodel.serialization; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import org.gmodel.serialization.EdgeType.EdgeEnd; + + +/** + *

Java class for edgeType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="edgeType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <sequence maxOccurs="2" minOccurs="2">
+ *           <element name="edgeEnd">
+ *             <complexType>
+ *               <complexContent>
+ *                 <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                   <sequence>
+ *                     <element name="semanticIdentity" type="{http://schemas.gmodel.org/serialization/2010}semanticIdType"/>
+ *                     <element name="minCardinality" type="{http://schemas.gmodel.org/serialization/2010}cardinalityType"/>
+ *                     <element name="maxCardinality" type="{http://schemas.gmodel.org/serialization/2010}cardinalityType"/>
+ *                     <element name="isContainer" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ *                     <element name="isNavigable" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ *                   </sequence>
+ *                   <attribute name="instanceId" use="required" type="{http://schemas.gmodel.org/serialization/2010}referenceId" />
+ *                   <attribute name="metaElement" use="required" type="{http://schemas.gmodel.org/serialization/2010}referenceId" />
+ *                 </restriction>
+ *               </complexContent>
+ *             </complexType>
+ *           </element>
+ *         </sequence>
+ *         <element name="semanticIdentity" type="{http://schemas.gmodel.org/serialization/2010}semanticIdType"/>
+ *       </sequence>
+ *       <attribute name="isAbstract" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ *       <attribute name="metaElement" use="required" type="{http://schemas.gmodel.org/serialization/2010}referenceId" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "edgeType", propOrder = { + "edgeEnd", + "semanticIdentity" +}) +public class EdgeType { + + @XmlElement(namespace = "http://schemas.gmodel.org/serialization/2010", required = true) + protected List edgeEnd; + @XmlElement(namespace = "http://schemas.gmodel.org/serialization/2010", required = true) + protected SemanticIdType semanticIdentity; + @XmlAttribute(required = true) + protected boolean isAbstract; + @XmlAttribute(required = true) + protected String metaElement; + + /** + * Gets the value of the edgeEnd property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the edgeEnd property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getEdgeEnd().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link EdgeEnd } + * + * + */ + public List getEdgeEnd() { + if (edgeEnd == null) { + edgeEnd = new ArrayList(); + } + return this.edgeEnd; + } + + /** + * Gets the value of the semanticIdentity property. + * + * @return + * possible object is + * {@link SemanticIdType } + * + */ + public SemanticIdType getSemanticIdentity() { + return semanticIdentity; + } + + /** + * Sets the value of the semanticIdentity property. + * + * @param value + * allowed object is + * {@link SemanticIdType } + * + */ + public void setSemanticIdentity(SemanticIdType value) { + this.semanticIdentity = value; + } + + /** + * Gets the value of the isAbstract property. + * + */ + public boolean isIsAbstract() { + return isAbstract; + } + + /** + * Sets the value of the isAbstract property. + * + */ + public void setIsAbstract(boolean value) { + this.isAbstract = value; + } + + /** + * Gets the value of the metaElement property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getMetaElement() { + return metaElement; + } + + /** + * Sets the value of the metaElement property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setMetaElement(String value) { + this.metaElement = value; + } + + + /** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       <sequence>
+     *         <element name="semanticIdentity" type="{http://schemas.gmodel.org/serialization/2010}semanticIdType"/>
+     *         <element name="minCardinality" type="{http://schemas.gmodel.org/serialization/2010}cardinalityType"/>
+     *         <element name="maxCardinality" type="{http://schemas.gmodel.org/serialization/2010}cardinalityType"/>
+     *         <element name="isContainer" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+     *         <element name="isNavigable" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+     *       </sequence>
+     *       <attribute name="instanceId" use="required" type="{http://schemas.gmodel.org/serialization/2010}referenceId" />
+     *       <attribute name="metaElement" use="required" type="{http://schemas.gmodel.org/serialization/2010}referenceId" />
+     *     </restriction>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "semanticIdentity", + "minCardinality", + "maxCardinality", + "isContainer", + "isNavigable" + }) + public static class EdgeEnd { + + @XmlElement(namespace = "http://schemas.gmodel.org/serialization/2010", required = true) + protected SemanticIdType semanticIdentity; + @XmlElement(namespace = "http://schemas.gmodel.org/serialization/2010", required = true) + protected String minCardinality; + @XmlElement(namespace = "http://schemas.gmodel.org/serialization/2010", required = true) + protected String maxCardinality; + @XmlElement(namespace = "http://schemas.gmodel.org/serialization/2010") + protected boolean isContainer; + @XmlElement(namespace = "http://schemas.gmodel.org/serialization/2010") + protected boolean isNavigable; + @XmlAttribute(required = true) + protected String instanceId; + @XmlAttribute(required = true) + protected String metaElement; + + /** + * Gets the value of the semanticIdentity property. + * + * @return + * possible object is + * {@link SemanticIdType } + * + */ + public SemanticIdType getSemanticIdentity() { + return semanticIdentity; + } + + /** + * Sets the value of the semanticIdentity property. + * + * @param value + * allowed object is + * {@link SemanticIdType } + * + */ + public void setSemanticIdentity(SemanticIdType value) { + this.semanticIdentity = value; + } + + /** + * Gets the value of the minCardinality property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getMinCardinality() { + return minCardinality; + } + + /** + * Sets the value of the minCardinality property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setMinCardinality(String value) { + this.minCardinality = value; + } + + /** + * Gets the value of the maxCardinality property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getMaxCardinality() { + return maxCardinality; + } + + /** + * Sets the value of the maxCardinality property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setMaxCardinality(String value) { + this.maxCardinality = value; + } + + /** + * Gets the value of the isContainer property. + * + */ + public boolean isIsContainer() { + return isContainer; + } + + /** + * Sets the value of the isContainer property. + * + */ + public void setIsContainer(boolean value) { + this.isContainer = value; + } + + /** + * Gets the value of the isNavigable property. + * + */ + public boolean isIsNavigable() { + return isNavigable; + } + + /** + * Sets the value of the isNavigable property. + * + */ + public void setIsNavigable(boolean value) { + this.isNavigable = value; + } + + /** + * Gets the value of the instanceId property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getInstanceId() { + return instanceId; + } + + /** + * Sets the value of the instanceId property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setInstanceId(String value) { + this.instanceId = value; + } + + /** + * Gets the value of the metaElement property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getMetaElement() { + return metaElement; + } + + /** + * Sets the value of the metaElement property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setMetaElement(String value) { + this.metaElement = value; + } + + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/Flavor.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/Flavor.java new file mode 100644 index 0000000..2a4d59a --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/Flavor.java @@ -0,0 +1,7 @@ +package org.gmodel.serialization; + +public enum Flavor { + + VER, END, EDG, VIS, SUP, SDM; + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/Gmodel.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/Gmodel.java new file mode 100644 index 0000000..9ad9b05 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/Gmodel.java @@ -0,0 +1,114 @@ +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0-b52-fcs +// See http://java.sun.com/xml/jaxb +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2011.03.23 at 04:41:58 PM CET +// + + +package org.gmodel.serialization; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlType; +import org.gmodel.serialization.Gmodel.Instance; + + +/** + *

Java class for gmodel element declaration. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <element name="gmodel">
+ *   <complexType>
+ *     <complexContent>
+ *       <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *         <sequence>
+ *           <element name="instance" maxOccurs="unbounded">
+ *             <complexType>
+ *               <complexContent>
+ *                 <extension base="{http://schemas.gmodel.org/serialization/2010}instanceType">
+ *                 </extension>
+ *               </complexContent>
+ *             </complexType>
+ *           </element>
+ *         </sequence>
+ *       </restriction>
+ *     </complexContent>
+ *   </complexType>
+ * </element>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "instance" +}) +@XmlRootElement(name = "gmodel") +public class Gmodel { + + @XmlElement(namespace = "http://schemas.gmodel.org/serialization/2010", required = true) + protected List instance; + + /** + * Gets the value of the instance property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the instance property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getInstance().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link Instance } + * + * + */ + public List getInstance() { + if (instance == null) { + instance = new ArrayList(); + } + return this.instance; + } + + + /** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <extension base="{http://schemas.gmodel.org/serialization/2010}instanceType">
+     *     </extension>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "") + public static class Instance + extends InstanceType + { + + + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/InstanceType.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/InstanceType.java new file mode 100644 index 0000000..22c7891 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/InstanceType.java @@ -0,0 +1,477 @@ +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0-b52-fcs +// See http://java.sun.com/xml/jaxb +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2011.03.23 at 04:41:58 PM CET +// + + +package org.gmodel.serialization; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import org.gmodel.serialization.InstanceType.Values; +import org.gmodel.serialization.InstanceType.Variables; + + +/** + *

Java class for instanceType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="instanceType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="link" type="{http://schemas.gmodel.org/serialization/2010}linkType" minOccurs="0"/>
+ *         <element name="instance" type="{http://schemas.gmodel.org/serialization/2010}instanceType" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="semanticIdentity" type="{http://schemas.gmodel.org/serialization/2010}semanticIdType"/>
+ *         <element name="variables" minOccurs="0">
+ *           <complexType>
+ *             <complexContent>
+ *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 <sequence maxOccurs="unbounded">
+ *                   <element name="variable" type="{http://schemas.gmodel.org/serialization/2010}variableType"/>
+ *                 </sequence>
+ *               </restriction>
+ *             </complexContent>
+ *           </complexType>
+ *         </element>
+ *         <element name="values" minOccurs="0">
+ *           <complexType>
+ *             <complexContent>
+ *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 <sequence maxOccurs="unbounded">
+ *                   <element name="value" type="{http://schemas.gmodel.org/serialization/2010}valueType"/>
+ *                 </sequence>
+ *               </restriction>
+ *             </complexContent>
+ *           </complexType>
+ *         </element>
+ *       </sequence>
+ *       <attribute name="container" use="required" type="{http://schemas.gmodel.org/serialization/2010}referenceId" />
+ *       <attribute name="id" use="required" type="{http://schemas.gmodel.org/serialization/2010}uuid" />
+ *       <attribute name="isAbstract" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ *       <attribute name="isSerializationArgument" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ *       <attribute name="metaElement" use="required" type="{http://schemas.gmodel.org/serialization/2010}referenceId" />
+ *       <attribute name="type" use="required" type="{http://schemas.gmodel.org/serialization/2010}instantiationSemantic" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "instanceType", propOrder = { + "link", + "instance", + "semanticIdentity", + "variables", + "values" +}) +public class InstanceType { + + @XmlElement(namespace = "http://schemas.gmodel.org/serialization/2010") + protected LinkType link; + @XmlElement(namespace = "http://schemas.gmodel.org/serialization/2010", required = true) + protected List instance; + @XmlElement(namespace = "http://schemas.gmodel.org/serialization/2010", required = true) + protected SemanticIdType semanticIdentity; + @XmlElement(namespace = "http://schemas.gmodel.org/serialization/2010") + protected Variables variables; + @XmlElement(namespace = "http://schemas.gmodel.org/serialization/2010") + protected Values values; + @XmlAttribute(required = true) + protected String artifact; + @XmlAttribute(required = true) + protected String id; + @XmlAttribute(required = true) + protected boolean isAbstract; + @XmlAttribute(required = true) + protected boolean isSerializationArgument; + @XmlAttribute(required = true) + protected String metaElement; + @XmlAttribute(required = true) + protected InstantiationSemantic type; + + /** + * Gets the value of the link property. + * + * @return + * possible object is + * {@link LinkType } + * + */ + public LinkType getLink() { + return link; + } + + /** + * Sets the value of the link property. + * + * @param value + * allowed object is + * {@link LinkType } + * + */ + public void setLink(LinkType value) { + this.link = value; + } + + /** + * Gets the value of the instance property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the instance property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getInstance().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link InstanceType } + * + * + */ + public List getInstance() { + if (instance == null) { + instance = new ArrayList(); + } + return this.instance; + } + + /** + * Gets the value of the semanticIdentity property. + * + * @return + * possible object is + * {@link SemanticIdType } + * + */ + public SemanticIdType getSemanticIdentity() { + return semanticIdentity; + } + + /** + * Sets the value of the semanticIdentity property. + * + * @param value + * allowed object is + * {@link SemanticIdType } + * + */ + public void setSemanticIdentity(SemanticIdType value) { + this.semanticIdentity = value; + } + + /** + * Gets the value of the variables property. + * + * @return + * possible object is + * {@link Variables } + * + */ + public Variables getVariables() { + return variables; + } + + /** + * Sets the value of the variables property. + * + * @param value + * allowed object is + * {@link Variables } + * + */ + public void setVariables(Variables value) { + this.variables = value; + } + + /** + * Gets the value of the values property. + * + * @return + * possible object is + * {@link Values } + * + */ + public Values getValues() { + return values; + } + + /** + * Sets the value of the values property. + * + * @param value + * allowed object is + * {@link Values } + * + */ + public void setValues(Values value) { + this.values = value; + } + + /** + * Gets the value of the container property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getArtifact() { + return artifact; + } + + /** + * Sets the value of the container property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setArtifact(String value) { + this.artifact = value; + } + + /** + * Gets the value of the id property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * Sets the value of the id property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + + /** + * Gets the value of the isAbstract property. + * + */ + public boolean isIsAbstract() { + return isAbstract; + } + + /** + * Sets the value of the isAbstract property. + * + */ + public void setIsAbstract(boolean value) { + this.isAbstract = value; + } + + /** + * Gets the value of the isSerializationArgument property. + * + */ + public boolean isIsSerializationArgument() { + return isSerializationArgument; + } + + /** + * Sets the value of the isSerializationArgument property. + * + */ + public void setIsSerializationArgument(boolean value) { + this.isSerializationArgument = value; + } + + /** + * Gets the value of the metaElement property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getMetaElement() { + return metaElement; + } + + /** + * Sets the value of the metaElement property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setMetaElement(String value) { + this.metaElement = value; + } + + /** + * Gets the value of the type property. + * + * @return + * possible object is + * {@link InstantiationSemantic } + * + */ + public InstantiationSemantic getType() { + return type; + } + + /** + * Sets the value of the type property. + * + * @param value + * allowed object is + * {@link InstantiationSemantic } + * + */ + public void setType(InstantiationSemantic value) { + this.type = value; + } + + + /** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       <sequence maxOccurs="unbounded">
+     *         <element name="value" type="{http://schemas.gmodel.org/serialization/2010}valueType"/>
+     *       </sequence>
+     *     </restriction>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Values { + + @XmlElement(namespace = "http://schemas.gmodel.org/serialization/2010", required = true) + protected List value; + + /** + * Gets the value of the value property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the value property. + * + *

+ * For example, to add a new item, do as follows: + *

+         *    getValue().add(newItem);
+         * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link ValueType } + * + * + */ + public List getValue() { + if (value == null) { + value = new ArrayList(); + } + return this.value; + } + + } + + + /** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       <sequence maxOccurs="unbounded">
+     *         <element name="variable" type="{http://schemas.gmodel.org/serialization/2010}variableType"/>
+     *       </sequence>
+     *     </restriction>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "variable" + }) + public static class Variables { + + @XmlElement(namespace = "http://schemas.gmodel.org/serialization/2010", required = true) + protected List variable; + + /** + * Gets the value of the variable property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the variable property. + * + *

+ * For example, to add a new item, do as follows: + *

+         *    getVariable().add(newItem);
+         * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link VariableType } + * + * + */ + public List getVariable() { + if (variable == null) { + variable = new ArrayList(); + } + return this.variable; + } + + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/InstantiationSemantic.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/InstantiationSemantic.java new file mode 100644 index 0000000..52f0013 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/InstantiationSemantic.java @@ -0,0 +1,80 @@ +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0-b52-fcs +// See http://java.sun.com/xml/jaxb +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2011.03.23 at 04:41:58 PM CET +// + + +package org.gmodel.serialization; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; + + +/** + *

Java class for instantiationSemantic. + * + *

The following schema fragment specifies the expected content contained within this class. + *

+ *

+ * <simpleType name="instantiationSemantic">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <enumeration value="InstantiatedAbstractArtifact"/>
+ *     <enumeration value="InstantiatedConcreteArtifact"/>
+ *     <enumeration value="InstantiateSemanticDomain"/>
+ *     <enumeration value="SemanticDomainAddition"/>
+ *     <enumeration value="DisjunctSemanticIdentitySetAddition"/>
+ *     <enumeration value="AnonDisjunctSemanticIdentitySetAddition"/>
+ *     <enumeration value="SemanticRoleAddition"/>
+ *     <enumeration value="AnonSemanticRoleAddition"/>
+ *     <enumeration value="AbstractVertex"/>
+ *     <enumeration value="ConcreteVertex"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlEnum +public enum InstantiationSemantic { + + @XmlEnumValue("AbstractVertex") + ABSTRACT_VERTEX("AbstractVertex"), + @XmlEnumValue("AnonDisjunctSemanticIdentitySetAddition") + ANON_DISJUNCT_SEMANTIC_IDENTITY_SET_ADDITION("AnonDisjunctSemanticIdentitySetAddition"), + @XmlEnumValue("AnonSemanticRoleAddition") + ANON_SEMANTIC_ROLE_ADDITION("AnonSemanticRoleAddition"), + @XmlEnumValue("ConcreteVertex") + CONCRETE_VERTEX("ConcreteVertex"), + @XmlEnumValue("DisjunctSemanticIdentitySetAddition") + DISJUNCT_SEMANTIC_IDENTITY_SET_ADDITION("DisjunctSemanticIdentitySetAddition"), + @XmlEnumValue("InstantiatedAbstractArtifact") + INSTANTIATED_ABSTRACT_ARTIFACT("InstantiatedAbstractArtifact"), + @XmlEnumValue("InstantiatedConcreteArtifact") + INSTANTIATED_CONCRETE_ARTIFACT("InstantiatedConcreteArtifact"), + @XmlEnumValue("InstantiateSemanticDomain") + INSTANTIATE_SEMANTIC_DOMAIN("InstantiateSemanticDomain"), + @XmlEnumValue("SemanticDomainAddition") + SEMANTIC_DOMAIN_ADDITION("SemanticDomainAddition"), + @XmlEnumValue("SemanticRoleAddition") + SEMANTIC_ROLE_ADDITION("SemanticRoleAddition"); + private final String value; + + InstantiationSemantic(String v) { + value = v; + } + + public String value() { + return value; + } + + public static InstantiationSemantic fromValue(String v) { + for (InstantiationSemantic c: InstantiationSemantic.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v.toString()); + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/LinkType.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/LinkType.java new file mode 100644 index 0000000..2ae2029 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/LinkType.java @@ -0,0 +1,88 @@ +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0-b52-fcs +// See http://java.sun.com/xml/jaxb +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2011.03.23 at 04:41:58 PM CET +// + + +package org.gmodel.serialization; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlElements; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for linkType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="linkType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence maxOccurs="unbounded" minOccurs="0">
+ *         <element name="visibility" type="{http://schemas.gmodel.org/serialization/2010}visibilityType" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="edge" type="{http://schemas.gmodel.org/serialization/2010}edgeType" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="edgeTrace" type="{http://schemas.gmodel.org/serialization/2010}edgeTraceType" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="superSetReference" type="{http://schemas.gmodel.org/serialization/2010}superSetReferenceType" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "linkType", propOrder = { + "visibilityAndEdgeAndEdgeTrace" +}) +public class LinkType { + + @XmlElements({ + @XmlElement(name = "edgeTrace", namespace = "http://schemas.gmodel.org/serialization/2010", required = true, type = EdgeTraceType.class), + @XmlElement(name = "edge", namespace = "http://schemas.gmodel.org/serialization/2010", required = true, type = EdgeType.class), + @XmlElement(name = "visibility", namespace = "http://schemas.gmodel.org/serialization/2010", required = true, type = VisibilityType.class), + @XmlElement(name = "superSetReference", namespace = "http://schemas.gmodel.org/serialization/2010", required = true, type = SuperSetReferenceType.class) + }) + protected List visibilityAndEdgeAndEdgeTrace; + + /** + * Gets the value of the visibilityAndEdgeAndEdgeTrace property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the visibilityAndEdgeAndEdgeTrace property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getVisibilityAndEdgeAndEdgeTrace().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link EdgeTraceType } + * {@link EdgeType } + * {@link VisibilityType } + * {@link SuperSetReferenceType } + * + * + */ + public List getVisibilityAndEdgeAndEdgeTrace() { + if (visibilityAndEdgeAndEdgeTrace == null) { + visibilityAndEdgeAndEdgeTrace = new ArrayList(); + } + return this.visibilityAndEdgeAndEdgeTrace; + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/ObjectFactory.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/ObjectFactory.java new file mode 100644 index 0000000..708891e --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/ObjectFactory.java @@ -0,0 +1,179 @@ +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0-b52-fcs +// See http://java.sun.com/xml/jaxb +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2011.03.23 at 04:41:58 PM CET +// + + +package org.gmodel.serialization; + +import javax.xml.bind.annotation.XmlRegistry; +import org.gmodel.serialization.EdgeType.EdgeEnd; +import org.gmodel.serialization.Gmodel.Instance; +import org.gmodel.serialization.InstanceType.Values; +import org.gmodel.serialization.InstanceType.Variables; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the org.gmodel.serialization package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. F_InstantiationImpl methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.gmodel.serialization + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link Gmodel } + * + */ + public Gmodel createGmodel() { + return new Gmodel(); + } + + /** + * Create an instance of {@link OrderedPair } + * + */ + public OrderedPair createOrderedPair() { + return new OrderedPair(); + } + + /** + * Create an instance of {@link Instance } + * + */ + public Instance createGmodelInstance() { + return new Instance(); + } + + /** + * Create an instance of {@link VariableType } + * + */ + public VariableType createVariableType() { + return new VariableType(); + } + + /** + * Create an instance of {@link Values } + * + */ + public Values createInstanceTypeValues() { + return new Values(); + } + + /** + * Create an instance of {@link Variables } + * + */ + public Variables createInstanceTypeVariables() { + return new Variables(); + } + + /** + * Create an instance of {@link InstanceType } + * + */ + public InstanceType createInstanceType() { + return new InstanceType(); + } + + /** + * Create an instance of {@link QueryType } + * + */ + public QueryType createQueryType() { + return new QueryType(); + } + + /** + * Create an instance of {@link VisibilityType } + * + */ + public VisibilityType createVisibilityType() { + return new VisibilityType(); + } + + /** + * Create an instance of {@link SuperSetReferenceType } + * + */ + public SuperSetReferenceType createSuperSetReferenceType() { + return new SuperSetReferenceType(); + } + + /** + * Create an instance of {@link CommandType } + * + */ + public CommandType createCommandType() { + return new CommandType(); + } + + /** + * Create an instance of {@link LinkType } + * + */ + public LinkType createLinkType() { + return new LinkType(); + } + + /** + * Create an instance of {@link EdgeType } + * + */ + public EdgeType createEdgeType() { + return new EdgeType(); + } + + /** + * Create an instance of {@link SemanticIdType } + * + */ + public SemanticIdType createSemanticIdType() { + return new SemanticIdType(); + } + + /** + * Create an instance of {@link EdgeEnd } + * + */ + public EdgeEnd createEdgeTypeEdgeEnd() { + return new EdgeEnd(); + } + + /** + * Create an instance of {@link EdgeTraceType } + * + */ + public EdgeTraceType createEdgeTraceType() { + return new EdgeTraceType(); + } + + /** + * Create an instance of {@link ValueType } + * + */ + public ValueType createValueType() { + return new ValueType(); + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/OrderedPair.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/OrderedPair.java new file mode 100644 index 0000000..bb0ad99 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/OrderedPair.java @@ -0,0 +1,97 @@ +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0-b52-fcs +// See http://java.sun.com/xml/jaxb +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2011.03.23 at 04:41:58 PM CET +// + + +package org.gmodel.serialization; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for orderedPair complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="orderedPair">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="metaElement" type="{http://schemas.gmodel.org/serialization/2010}semanticIdType"/>
+ *         <element name="element" type="{http://schemas.gmodel.org/serialization/2010}semanticIdType"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "orderedPair", propOrder = { + "metaElement", + "element" +}) +public class OrderedPair { + + @XmlElement(namespace = "http://schemas.gmodel.org/serialization/2010", required = true) + protected SemanticIdType metaElement; + @XmlElement(namespace = "http://schemas.gmodel.org/serialization/2010", required = true) + protected SemanticIdType element; + + /** + * Gets the value of the metaElement property. + * + * @return + * possible object is + * {@link SemanticIdType } + * + */ + public SemanticIdType getMetaElement() { + return metaElement; + } + + /** + * Sets the value of the metaElement property. + * + * @param value + * allowed object is + * {@link SemanticIdType } + * + */ + public void setMetaElement(SemanticIdType value) { + this.metaElement = value; + } + + /** + * Gets the value of the element property. + * + * @return + * possible object is + * {@link SemanticIdType } + * + */ + public SemanticIdType getElement() { + return element; + } + + /** + * Sets the value of the element property. + * + * @param value + * allowed object is + * {@link SemanticIdType } + * + */ + public void setElement(SemanticIdType value) { + this.element = value; + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/QueryType.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/QueryType.java new file mode 100644 index 0000000..35cabdd --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/QueryType.java @@ -0,0 +1,37 @@ +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0-b52-fcs +// See http://java.sun.com/xml/jaxb +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2011.03.23 at 04:41:58 PM CET +// + + +package org.gmodel.serialization; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for queryType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="queryType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "queryType") +public class QueryType { + + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/SemanticIdType.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/SemanticIdType.java new file mode 100644 index 0000000..8c47371 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/SemanticIdType.java @@ -0,0 +1,227 @@ +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0-b52-fcs +// See http://java.sun.com/xml/jaxb +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2011.03.23 at 04:41:58 PM CET +// + + +package org.gmodel.serialization; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for semanticIdType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="semanticIdType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="name" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         <element name="pluralName" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         <element name="payload" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         <element name="technicalName" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *       </sequence>
+ *       <attribute name="identifier" use="required" type="{http://schemas.gmodel.org/serialization/2010}uuid" />
+ *       <attribute name="isAnonymous" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ *       <attribute name="uniqueRepresentationReference" use="required" type="{http://schemas.gmodel.org/serialization/2010}uuid" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "semanticIdType", propOrder = { + "name", + "pluralName", + "payload", + "technicalName" +}) +public class SemanticIdType { + + @XmlElement(namespace = "http://schemas.gmodel.org/serialization/2010", required = true) + protected String name; + @XmlElement(namespace = "http://schemas.gmodel.org/serialization/2010", required = true) + protected String pluralName; + @XmlElement(namespace = "http://schemas.gmodel.org/serialization/2010", required = true) + protected String payload; + @XmlElement(namespace = "http://schemas.gmodel.org/serialization/2010", required = true) + protected String technicalName; + @XmlAttribute(required = true) + protected String identifier; + @XmlAttribute(required = true) + protected boolean isAnonymous; + @XmlAttribute(required = true) + protected String uniqueRepresentationReference; + + /** + * Gets the value of the name property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * Sets the value of the name property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * Gets the value of the pluralName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getPluralName() { + return pluralName; + } + + /** + * Sets the value of the pluralName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setPluralName(String value) { + this.pluralName = value; + } + + /** + * Gets the value of the payload property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getPayload() { + return payload; + } + + /** + * Sets the value of the payload property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setPayload(String value) { + this.payload = value; + } + + /** + * Gets the value of the technicalName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTechnicalName() { + return technicalName; + } + + /** + * Sets the value of the technicalName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTechnicalName(String value) { + this.technicalName = value; + } + + /** + * Gets the value of the identifier property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIdentifier() { + return identifier; + } + + /** + * Sets the value of the identifier property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIdentifier(String value) { + this.identifier = value; + } + + /** + * Gets the value of the isAnonymous property. + * + */ + public boolean isIsAnonymous() { + return isAnonymous; + } + + /** + * Sets the value of the isAnonymous property. + * + */ + public void setIsAnonymous(boolean value) { + this.isAnonymous = value; + } + + /** + * Gets the value of the uniqueRepresentationReference property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUniqueRepresentationReference() { + return uniqueRepresentationReference; + } + + /** + * Sets the value of the uniqueRepresentationReference property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUniqueRepresentationReference(String value) { + this.uniqueRepresentationReference = value; + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/SemanticIdentityIndex.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/SemanticIdentityIndex.java new file mode 100644 index 0000000..631fc9b --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/SemanticIdentityIndex.java @@ -0,0 +1,21 @@ +package org.gmodel.serialization; + +public class SemanticIdentityIndex extends SemanticIdType { + + private String metaElementId; + private String metaElementTypeName; + + public String getMetaElementId() { + return metaElementId; + } + public void setMetaElementId(final String metaElementId) { + this.metaElementId = metaElementId; + } + public String getMetaElementTypeName() { + return metaElementTypeName; + } + public void setMetaElementTypeName(final String metaElementTypeName) { + this.metaElementTypeName = metaElementTypeName; + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/SuperSetReferenceType.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/SuperSetReferenceType.java new file mode 100644 index 0000000..ab11500 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/SuperSetReferenceType.java @@ -0,0 +1,151 @@ +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0-b52-fcs +// See http://java.sun.com/xml/jaxb +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2011.03.23 at 04:41:58 PM CET +// + + +package org.gmodel.serialization; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for superSetReferenceType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="superSetReferenceType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="semanticIdentity" type="{http://schemas.gmodel.org/serialization/2010}semanticIdType"/>
+ *       </sequence>
+ *       <attribute name="id" use="required" type="{http://schemas.gmodel.org/serialization/2010}uuid" />
+ *       <attribute name="subSetInstance" use="required" type="{http://schemas.gmodel.org/serialization/2010}referenceId" />
+ *       <attribute name="superSetInstance" use="required" type="{http://schemas.gmodel.org/serialization/2010}referenceId" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "superSetReferenceType", propOrder = { + "semanticIdentity" +}) +public class SuperSetReferenceType { + + @XmlElement(namespace = "http://schemas.gmodel.org/serialization/2010", required = true) + protected SemanticIdType semanticIdentity; + @XmlAttribute(required = true) + protected String id; + @XmlAttribute(required = true) + protected String subSetInstance; + @XmlAttribute(required = true) + protected String superSetInstance; + + /** + * Gets the value of the semanticIdentity property. + * + * @return + * possible object is + * {@link SemanticIdType } + * + */ + public SemanticIdType getSemanticIdentity() { + return semanticIdentity; + } + + /** + * Sets the value of the semanticIdentity property. + * + * @param value + * allowed object is + * {@link SemanticIdType } + * + */ + public void setSemanticIdentity(SemanticIdType value) { + this.semanticIdentity = value; + } + + /** + * Gets the value of the id property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * Sets the value of the id property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + + /** + * Gets the value of the subSetInstance property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getSubSetInstance() { + return subSetInstance; + } + + /** + * Sets the value of the subSetInstance property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSubSetInstance(String value) { + this.subSetInstance = value; + } + + /** + * Gets the value of the superSetInstance property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getSuperSetInstance() { + return superSetInstance; + } + + /** + * Sets the value of the superSetInstance property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSuperSetInstance(String value) { + this.superSetInstance = value; + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/ValueType.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/ValueType.java new file mode 100644 index 0000000..e189673 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/ValueType.java @@ -0,0 +1,69 @@ +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0-b52-fcs +// See http://java.sun.com/xml/jaxb +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2011.03.23 at 04:41:58 PM CET +// + + +package org.gmodel.serialization; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for valueType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="valueType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="valuePair" type="{http://schemas.gmodel.org/serialization/2010}orderedPair"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "valueType", propOrder = { + "valuePair" +}) +public class ValueType { + + @XmlElement(namespace = "http://schemas.gmodel.org/serialization/2010", required = true) + protected OrderedPair valuePair; + + /** + * Gets the value of the valuePair property. + * + * @return + * possible object is + * {@link OrderedPair } + * + */ + public OrderedPair getValuePair() { + return valuePair; + } + + /** + * Sets the value of the valuePair property. + * + * @param value + * allowed object is + * {@link OrderedPair } + * + */ + public void setValuePair(OrderedPair value) { + this.valuePair = value; + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/VariableType.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/VariableType.java new file mode 100644 index 0000000..7558442 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/VariableType.java @@ -0,0 +1,69 @@ +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0-b52-fcs +// See http://java.sun.com/xml/jaxb +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2011.03.23 at 04:41:58 PM CET +// + + +package org.gmodel.serialization; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for variableType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="variableType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="variablePair" type="{http://schemas.gmodel.org/serialization/2010}orderedPair"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "variableType", propOrder = { + "variablePair" +}) +public class VariableType { + + @XmlElement(namespace = "http://schemas.gmodel.org/serialization/2010", required = true) + protected OrderedPair variablePair; + + /** + * Gets the value of the variablePair property. + * + * @return + * possible object is + * {@link OrderedPair } + * + */ + public OrderedPair getVariablePair() { + return variablePair; + } + + /** + * Sets the value of the variablePair property. + * + * @param value + * allowed object is + * {@link OrderedPair } + * + */ + public void setVariablePair(OrderedPair value) { + this.variablePair = value; + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/VisibilityType.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/VisibilityType.java new file mode 100644 index 0000000..8b04620 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/VisibilityType.java @@ -0,0 +1,151 @@ +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0-b52-fcs +// See http://java.sun.com/xml/jaxb +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2011.03.23 at 04:41:58 PM CET +// + + +package org.gmodel.serialization; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for visibilityType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="visibilityType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="semanticIdentity" type="{http://schemas.gmodel.org/serialization/2010}semanticIdType"/>
+ *       </sequence>
+ *       <attribute name="id" use="required" type="{http://schemas.gmodel.org/serialization/2010}uuid" />
+ *       <attribute name="sourceInstance" use="required" type="{http://schemas.gmodel.org/serialization/2010}referenceId" />
+ *       <attribute name="targetInstance" use="required" type="{http://schemas.gmodel.org/serialization/2010}referenceId" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "visibilityType", propOrder = { + "semanticIdentity" +}) +public class VisibilityType { + + @XmlElement(namespace = "http://schemas.gmodel.org/serialization/2010", required = true) + protected SemanticIdType semanticIdentity; + @XmlAttribute(required = true) + protected String id; + @XmlAttribute(required = true) + protected String sourceInstance; + @XmlAttribute(required = true) + protected String targetInstance; + + /** + * Gets the value of the semanticIdentity property. + * + * @return + * possible object is + * {@link SemanticIdType } + * + */ + public SemanticIdType getSemanticIdentity() { + return semanticIdentity; + } + + /** + * Sets the value of the semanticIdentity property. + * + * @param value + * allowed object is + * {@link SemanticIdType } + * + */ + public void setSemanticIdentity(SemanticIdType value) { + this.semanticIdentity = value; + } + + /** + * Gets the value of the id property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * Sets the value of the id property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + + /** + * Gets the value of the sourceInstance property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getSourceInstance() { + return sourceInstance; + } + + /** + * Sets the value of the sourceInstance property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSourceInstance(String value) { + this.sourceInstance = value; + } + + /** + * Gets the value of the targetInstance property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTargetInstance() { + return targetInstance; + } + + /** + * Sets the value of the targetInstance property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTargetInstance(String value) { + this.targetInstance = value; + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/ArtefactContainer.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/ArtefactContainer.java new file mode 100644 index 0000000..4bed016 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/ArtefactContainer.java @@ -0,0 +1,263 @@ +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0-b52-fcs +// See http://java.sun.com/xml/jaxb +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2011.06.15 at 06:58:13 PM CEST +// + + +package org.gmodel.serialization.container; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlType; +import org.gmodel.serialization.container.ArtefactContainer.Content; +import org.gmodel.serialization.container.ArtefactContainer.SearchResult; + + +/** + *

Java class for artefactContainer element declaration. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <element name="artefactContainer">
+ *   <complexType>
+ *     <complexContent>
+ *       <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *         <sequence>
+ *           <element name="content" maxOccurs="unbounded" minOccurs="0">
+ *             <complexType>
+ *               <complexContent>
+ *                 <extension base="{http://schemas.gmodel.org/container/2010}contentType">
+ *                 </extension>
+ *               </complexContent>
+ *             </complexType>
+ *           </element>
+ *           <element name="searchResult" maxOccurs="unbounded" minOccurs="0">
+ *             <complexType>
+ *               <complexContent>
+ *                 <extension base="{http://schemas.gmodel.org/container/2010}searchResultType">
+ *                 </extension>
+ *               </complexContent>
+ *             </complexType>
+ *           </element>
+ *         </sequence>
+ *         <attribute name="contentType" use="required" type="{http://schemas.gmodel.org/container/2010}typeOfContent" />
+ *         <attribute name="id" use="required" type="{http://schemas.gmodel.org/container/2010}containerId" />
+ *         <attribute name="timeStamp" use="required" type="{http://schemas.gmodel.org/container/2010}timeStamp" />
+ *       </restriction>
+ *     </complexContent>
+ *   </complexType>
+ * </element>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "content", + "searchResult" +}) +@XmlRootElement(name = "artefactContainer") +public class ArtefactContainer { + + @XmlElement(namespace = "http://schemas.gmodel.org/container/2010", required = true) + protected List content; + @XmlElement(namespace = "http://schemas.gmodel.org/container/2010", required = true) + protected List searchResult; + @XmlAttribute(required = true) + protected String contentType; + @XmlAttribute(required = true) + protected String id; + @XmlAttribute(required = true) + protected String timeStamp; + + /** + * Gets the value of the content property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the content property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getContent().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link Content } + * + * + */ + public List getContent() { + if (content == null) { + content = new ArrayList(); + } + return this.content; + } + + /** + * Gets the value of the searchResult property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the searchResult property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getSearchResult().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link SearchResult } + * + * + */ + public List getSearchResult() { + if (searchResult == null) { + searchResult = new ArrayList(); + } + return this.searchResult; + } + + /** + * Gets the value of the contentType property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getContentType() { + return contentType; + } + + /** + * Sets the value of the contentType property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setContentType(String value) { + this.contentType = value; + } + + /** + * Gets the value of the id property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * Sets the value of the id property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + + /** + * Gets the value of the timeStamp property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTimeStamp() { + return timeStamp; + } + + /** + * Sets the value of the timeStamp property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTimeStamp(String value) { + this.timeStamp = value; + } + + + /** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <extension base="{http://schemas.gmodel.org/container/2010}contentType">
+     *     </extension>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "") + public static class Content + extends ContentType + { + + + } + + + /** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <extension base="{http://schemas.gmodel.org/container/2010}searchResultType">
+     *     </extension>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "") + public static class SearchResult + extends SearchResultType + { + + + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/ContainerType.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/ContainerType.java new file mode 100644 index 0000000..ce655f2 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/ContainerType.java @@ -0,0 +1,124 @@ +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0-b52-fcs +// See http://java.sun.com/xml/jaxb +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2011.06.15 at 06:58:13 PM CEST +// + + +package org.gmodel.serialization.container; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for containerType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="containerType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="content" type="{http://schemas.gmodel.org/container/2010}contentType"/>
+ *       </sequence>
+ *       <attribute name="id" use="required" type="{http://schemas.gmodel.org/container/2010}containerId" />
+ *       <attribute name="timeStamp" use="required" type="{http://schemas.gmodel.org/container/2010}timeStamp" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "containerType", propOrder = { + "content" +}) +public class ContainerType { + + @XmlElement(namespace = "http://schemas.gmodel.org/container/2010", required = true) + protected ContentType content; + @XmlAttribute(required = true) + protected String id; + @XmlAttribute(required = true) + protected String timeStamp; + + /** + * Gets the value of the content property. + * + * @return + * possible object is + * {@link ContentType } + * + */ + public ContentType getContent() { + return content; + } + + /** + * Sets the value of the content property. + * + * @param value + * allowed object is + * {@link ContentType } + * + */ + public void setContent(ContentType value) { + this.content = value; + } + + /** + * Gets the value of the id property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * Sets the value of the id property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + + /** + * Gets the value of the timeStamp property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTimeStamp() { + return timeStamp; + } + + /** + * Sets the value of the timeStamp property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTimeStamp(String value) { + this.timeStamp = value; + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/ContainerTypeMapper.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/ContainerTypeMapper.java new file mode 100644 index 0000000..44766c4 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/ContainerTypeMapper.java @@ -0,0 +1,121 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.container; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.apache.commons.collections.map.ListOrderedMap; +import org.gmodel.serialization.container.ArtefactContainer.Content; +import org.gmodel.serialization.container.ArtefactContainer.SearchResult; +import org.gmodel.serialization.serializer.SerializationType; + +public class ContainerTypeMapper { + + private static ArtefactContainer createArtefactContainer(final SerializationType type) { + final ObjectFactory facto = ObjectFactoryHolder.getInstance(); + final ArtefactContainer artifactContainer = facto.createArtefactContainer(); + artifactContainer.setContentType(type.name()); + return artifactContainer; + } + + public static ArtefactContainer mapArugmentListToArtefactContainerContent(final List argList, final SerializationType type) { + final ArtefactContainer artifactContainer = createArtefactContainer(type); + for (final String arg : argList) { + final Content content = ObjectFactoryHolder.getInstance().createArtefactContainerContent(); + content.setContent(arg); + artifactContainer.getContent().add(content); + } + return artifactContainer; + } + + public static ArtefactContainer mapArugmentToArtefactContainerContent(final String arg, final SerializationType type) { + final ArtefactContainer artifactContainer = createArtefactContainer(type); + final Content content = ObjectFactoryHolder.getInstance().createArtefactContainerContent(); + content.setContent(arg); + artifactContainer.getContent().add(content); + return artifactContainer; + } + + public static List mapContentsToStringList(final ArtefactContainer container) { + final List lst = new ArrayList(); + for (final Content c : container.getContent()) { + lst.add(c.getContent()); + } + return lst; + } + + public static List mapContentToStringList(final ArtefactContainer container) { + final List contentList = new ArrayList(); + for(final Content c : container.getContent()) { + contentList.add(c.getContent()); + } + return contentList; + } + + public static List mapSearchResultListToSearchResultTypeList(final List results) { + final List mappedSearchList = new ArrayList(); + for (final SearchResult r : results) { + final SearchResultType mappedResult = ObjectFactoryHolder.getInstance().createSearchResultType(); + mappedResult.setContainerIdentity(r.getContainerIdentity()); + mappedResult.setInstanceIdentity(r.getInstanceIdentity()); + mappedResult.setMetaInstanceIdentity(r.getMetaInstanceIdentity()); + mappedSearchList.add(mappedResult); + } + return mappedSearchList; + } + + public static List mapSearchResultTypeListToSearchResultList(final List results) { + final List mappedList = new ArrayList(); + for (final SearchResultType r : results) { + final SearchResult searchRes = ObjectFactoryHolder.getInstance().createArtefactContainerSearchResult(); + searchRes.setContainerIdentity(r.getContainerIdentity()); + searchRes.setInstanceIdentity(r.getInstanceIdentity()); + searchRes.setMetaInstanceIdentity(r.getMetaInstanceIdentity()); + mappedList.add(searchRes); + } + return mappedList; + } + + @SuppressWarnings({ "unchecked", "rawtypes" }) + public static Map mapToArtefactMap(final ArtefactContainer container) { + final Map map = new ListOrderedMap(); + for (final Content c : container.getContent()) { + map.put(c.getId(), c.getContent()); + } + return map; + } + + public static void mapToContentList(final ArtefactContainer container, final List contentList) { + for (final String id : contentList) { + final Content c = ObjectFactoryHolder.getInstance().createArtefactContainerContent(); + c.setContent(id); + container.getContent().add(c); + } + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/ContentEncodingType.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/ContentEncodingType.java new file mode 100644 index 0000000..9b68b63 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/ContentEncodingType.java @@ -0,0 +1,56 @@ +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0-b52-fcs +// See http://java.sun.com/xml/jaxb +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2011.06.15 at 06:58:13 PM CEST +// + + +package org.gmodel.serialization.container; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; + + +/** + *

Java class for contentEncodingType. + * + *

The following schema fragment specifies the expected content contained within this class. + *

+ *

+ * <simpleType name="contentEncodingType">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <enumeration value="text"/>
+ *     <enumeration value="base64"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlEnum +public enum ContentEncodingType { + + @XmlEnumValue("base64") + BASE_64("base64"), + @XmlEnumValue("text") + TEXT("text"); + private final String value; + + ContentEncodingType(String v) { + value = v; + } + + public String value() { + return value; + } + + public static ContentEncodingType fromValue(String v) { + for (ContentEncodingType c: ContentEncodingType.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v.toString()); + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/ContentType.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/ContentType.java new file mode 100644 index 0000000..12089ba --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/ContentType.java @@ -0,0 +1,151 @@ +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0-b52-fcs +// See http://java.sun.com/xml/jaxb +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2011.06.15 at 06:58:13 PM CEST +// + + +package org.gmodel.serialization.container; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for contentType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="contentType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="content" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *       </sequence>
+ *       <attribute name="contentEncoding" use="required" type="{http://schemas.gmodel.org/container/2010}contentEncodingType" />
+ *       <attribute name="id" use="required" type="{http://schemas.gmodel.org/container/2010}contentId" />
+ *       <attribute name="type" use="required" type="{http://schemas.gmodel.org/container/2010}typeOfContent" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "contentType", propOrder = { + "content" +}) +public class ContentType { + + @XmlElement(namespace = "http://schemas.gmodel.org/container/2010", required = true) + protected String content; + @XmlAttribute(required = true) + protected ContentEncodingType contentEncoding; + @XmlAttribute(required = true) + protected String id; + @XmlAttribute(required = true) + protected String type; + + /** + * Gets the value of the content property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getContent() { + return content; + } + + /** + * Sets the value of the content property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setContent(String value) { + this.content = value; + } + + /** + * Gets the value of the contentEncoding property. + * + * @return + * possible object is + * {@link ContentEncodingType } + * + */ + public ContentEncodingType getContentEncoding() { + return contentEncoding; + } + + /** + * Sets the value of the contentEncoding property. + * + * @param value + * allowed object is + * {@link ContentEncodingType } + * + */ + public void setContentEncoding(ContentEncodingType value) { + this.contentEncoding = value; + } + + /** + * Gets the value of the id property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * Sets the value of the id property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + + /** + * Gets the value of the type property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getType() { + return type; + } + + /** + * Sets the value of the type property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setType(String value) { + this.type = value; + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/InstanceIdentityType.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/InstanceIdentityType.java new file mode 100644 index 0000000..721703c --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/InstanceIdentityType.java @@ -0,0 +1,119 @@ +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0-b52-fcs +// See http://java.sun.com/xml/jaxb +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2011.06.15 at 06:58:13 PM CEST +// + + +package org.gmodel.serialization.container; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for instanceIdentityType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="instanceIdentityType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *       <attribute name="pluralName" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *       <attribute name="uuid" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "instanceIdentityType") +public class InstanceIdentityType { + + @XmlAttribute + protected String name; + @XmlAttribute + protected String pluralName; + @XmlAttribute(required = true) + protected String uuid; + + /** + * Gets the value of the name property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * Sets the value of the name property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * Gets the value of the pluralName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getPluralName() { + return pluralName; + } + + /** + * Sets the value of the pluralName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setPluralName(String value) { + this.pluralName = value; + } + + /** + * Gets the value of the uuid property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUuid() { + return uuid; + } + + /** + * Sets the value of the uuid property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUuid(String value) { + this.uuid = value; + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/ObjectFactory.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/ObjectFactory.java new file mode 100644 index 0000000..d7cce90 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/ObjectFactory.java @@ -0,0 +1,97 @@ +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0-b52-fcs +// See http://java.sun.com/xml/jaxb +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2011.06.15 at 06:58:13 PM CEST +// + + +package org.gmodel.serialization.container; + +import javax.xml.bind.annotation.XmlRegistry; +import org.gmodel.serialization.container.ArtefactContainer.Content; +import org.gmodel.serialization.container.ArtefactContainer.SearchResult; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the org.gmodel.serialization.container package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. F_InstantiationImpl methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.gmodel.serialization.container + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link InstanceIdentityType } + * + */ + public InstanceIdentityType createInstanceIdentityType() { + return new InstanceIdentityType(); + } + + /** + * Create an instance of {@link SearchResult } + * + */ + public SearchResult createArtefactContainerSearchResult() { + return new SearchResult(); + } + + /** + * Create an instance of {@link ContainerType } + * + */ + public ContainerType createContainerType() { + return new ContainerType(); + } + + /** + * Create an instance of {@link Content } + * + */ + public Content createArtefactContainerContent() { + return new Content(); + } + + /** + * Create an instance of {@link ContentType } + * + */ + public ContentType createContentType() { + return new ContentType(); + } + + /** + * Create an instance of {@link SearchResultType } + * + */ + public SearchResultType createSearchResultType() { + return new SearchResultType(); + } + + /** + * Create an instance of {@link ArtefactContainer } + * + */ + public ArtefactContainer createArtefactContainer() { + return new ArtefactContainer(); + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/ObjectFactoryHolder.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/ObjectFactoryHolder.java new file mode 100644 index 0000000..dbd5be3 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/ObjectFactoryHolder.java @@ -0,0 +1,38 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.container; + +public class ObjectFactoryHolder { + + private static class Holder { + public static final ObjectFactory FACTORY = new ObjectFactory(); + } + + public static ObjectFactory getInstance() { + return Holder.FACTORY; + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/SearchResultType.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/SearchResultType.java new file mode 100644 index 0000000..70782e4 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/SearchResultType.java @@ -0,0 +1,125 @@ +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0-b52-fcs +// See http://java.sun.com/xml/jaxb +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2011.06.15 at 06:58:13 PM CEST +// + + +package org.gmodel.serialization.container; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for searchResultType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="searchResultType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="instanceIdentity" type="{http://schemas.gmodel.org/container/2010}instanceIdentityType"/>
+ *         <element name="metaInstanceIdentity" type="{http://schemas.gmodel.org/container/2010}instanceIdentityType"/>
+ *         <element name="containerIdentity" type="{http://schemas.gmodel.org/container/2010}instanceIdentityType"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "searchResultType", propOrder = { + "instanceIdentity", + "metaInstanceIdentity", + "containerIdentity" +}) +public class SearchResultType { + + @XmlElement(namespace = "http://schemas.gmodel.org/container/2010", required = true) + protected InstanceIdentityType instanceIdentity; + @XmlElement(namespace = "http://schemas.gmodel.org/container/2010", required = true) + protected InstanceIdentityType metaInstanceIdentity; + @XmlElement(namespace = "http://schemas.gmodel.org/container/2010", required = true) + protected InstanceIdentityType containerIdentity; + + /** + * Gets the value of the instanceIdentity property. + * + * @return + * possible object is + * {@link InstanceIdentityType } + * + */ + public InstanceIdentityType getInstanceIdentity() { + return instanceIdentity; + } + + /** + * Sets the value of the instanceIdentity property. + * + * @param value + * allowed object is + * {@link InstanceIdentityType } + * + */ + public void setInstanceIdentity(InstanceIdentityType value) { + this.instanceIdentity = value; + } + + /** + * Gets the value of the metaInstanceIdentity property. + * + * @return + * possible object is + * {@link InstanceIdentityType } + * + */ + public InstanceIdentityType getMetaInstanceIdentity() { + return metaInstanceIdentity; + } + + /** + * Sets the value of the metaInstanceIdentity property. + * + * @param value + * allowed object is + * {@link InstanceIdentityType } + * + */ + public void setMetaInstanceIdentity(InstanceIdentityType value) { + this.metaInstanceIdentity = value; + } + + /** + * Gets the value of the containerIdentity property. + * + * @return + * possible object is + * {@link InstanceIdentityType } + * + */ + public InstanceIdentityType getContainerIdentity() { + return containerIdentity; + } + + /** + * Sets the value of the containerIdentity property. + * + * @param value + * allowed object is + * {@link InstanceIdentityType } + * + */ + public void setContainerIdentity(InstanceIdentityType value) { + this.containerIdentity = value; + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/package-info.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/package-info.java new file mode 100644 index 0000000..dcaf54f --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/container/package-info.java @@ -0,0 +1,9 @@ +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0-b52-fcs +// See http://java.sun.com/xml/jaxb +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2011.06.15 at 06:58:13 PM CEST +// + +@javax.xml.bind.annotation.XmlSchema(namespace = "http://schemas.gmodel.org/container/2010") +package org.gmodel.serialization.container; diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/package-info.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/package-info.java new file mode 100644 index 0000000..e361132 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/package-info.java @@ -0,0 +1,9 @@ +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.0-b52-fcs +// See http://java.sun.com/xml/jaxb +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2011.03.23 at 04:41:58 PM CET +// + +@javax.xml.bind.annotation.XmlSchema(namespace = "http://schemas.gmodel.org/serialization/2010") +package org.gmodel.serialization; diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/ArtifactContainerContentMapper.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/ArtifactContainerContentMapper.java new file mode 100644 index 0000000..98b1323 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/ArtifactContainerContentMapper.java @@ -0,0 +1,101 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +import org.gmodel.api.models.SemanticDomain; +import org.gmodel.serialization.Gmodel; +import org.gmodel.serialization.Gmodel.Instance; +import org.gmodel.serialization.container.ArtefactContainer; +import org.gmodel.serialization.container.ArtefactContainer.Content; +import org.gmodel.serialization.container.ContainerTypeMapper; + +public class ArtifactContainerContentMapper { + + private final Serializer serializer = SerializerHolder.getGmodelInstanceSerializer(SerializationType.XML); + + public ArtifactContainerContentMapper() { + } + + private boolean isSemanticDomainInstance(final String metaId) { + final String ssetId1 = SemanticDomain.disjunctSemanticIdentitySet.identity().uniqueRepresentationReference().toString(); + final String ssetId2 = SemanticDomain.semanticRole.identity().uniqueRepresentationReference().toString(); + final String ssetId3 = SemanticDomain.semanticdomain.identity().uniqueRepresentationReference().toString(); + return metaId.equals(ssetId1) || metaId.equals(ssetId2) || metaId.equals(ssetId3); + } + + private void recreateGmodelInstances(final Map deserializedInstances) { + if (!deserializedInstances.isEmpty()) { + serializer.deserializeInstances(deserializedInstances); + } + } + + public void recreateInstancesFromArtifactMap(final Map returnedArtifacts) { + final Map serializedTreeInstances = new HashMap(); + final Map.Entry mapContent = returnedArtifacts.entrySet().iterator().next(); + final ArtefactContainer responseContainer = serializer.unmarshallContainer(mapContent.getValue().toString()); + + System.err.println("# of returned instances: "+responseContainer.getContent().size()); + serializedTreeInstances.putAll(ContainerTypeMapper.mapToArtefactMap(responseContainer)); + recreateInstances(serializedTreeInstances); + } + + private void recreateInstances(final Map serializedTreeInstances) { + //Get semantic domain instances + final Map deserializedSemanticDomainInstances = new HashMap(); + final Map deserializedModelInstances = new HashMap(); + + for (final Iterator> itr = serializedTreeInstances.entrySet().iterator(); itr.hasNext(); ) { + final Map.Entry entry = itr.next(); + final String key = entry.getKey().toString(); + final Gmodel deserializedModel = serializer.unmarshallModel(entry.getValue()); + final Instance i = deserializedModel.getInstance().get(0); + final String metaId = i.getMetaElement(); + + if (isSemanticDomainInstance(metaId)) { + deserializedSemanticDomainInstances.put(entry.getKey(), deserializedModel); + itr.remove(); + } else { + deserializedModelInstances.put(entry.getKey(), deserializedModel); + } + } + //re-create the fetched instances + recreateGmodelInstances(deserializedSemanticDomainInstances); + recreateGmodelInstances(deserializedModelInstances); + } + + public void recreateInstancesFromArtifactContainer(final ArtefactContainer returnedArtifacts) { + final Map serializedTreeInstances = new HashMap(); + for (final Content c : returnedArtifacts.getContent()) { + serializedTreeInstances.put(c.getId(), c.getContent()); + } + recreateInstances(serializedTreeInstances); + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/Container.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/Container.java new file mode 100644 index 0000000..73bcf57 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/Container.java @@ -0,0 +1,43 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +import java.util.UUID; + +public interface Container { + + UUID getContentUUID(); + + //String getTransmissionTimeStamp(); + + T getTransportationContent(); + + //void setTransmissionTimeStamp(); + + void setTransportationContent(T content); + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/DeserializationMapper.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/DeserializationMapper.java new file mode 100644 index 0000000..03463e9 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/DeserializationMapper.java @@ -0,0 +1,338 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +import static org.gmodel.G.coreGraphs; +import static org.gmodel.api.models.SemanticDomain.semanticRole_to_equivalenceClass; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.UUID; + +import javax.naming.OperationNotSupportedException; + +import org.gmodel.Identity; +import org.gmodel.Set; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models.Root; +import org.gmodel.api.serializerinterface.Reconstitution; +import org.gmodel.serialization.EdgeType; +import org.gmodel.serialization.EdgeType.EdgeEnd; +import org.gmodel.serialization.Gmodel; +import org.gmodel.serialization.Gmodel.Instance; +import org.gmodel.serialization.InstanceType; +import org.gmodel.serialization.SemanticIdType; +import org.gmodel.serialization.SuperSetReferenceType; +import org.gmodel.serialization.ValueType; +import org.gmodel.serialization.VariableType; +import org.gmodel.serialization.VisibilityType; + +public class DeserializationMapper { + + private static final int ROOT_INDEX = 0; + + private final InstanceMap instanceMap; + + public DeserializationMapper() { + this.instanceMap = InstanceMap.getInstance(); + } + + private void createEdge(final EdgeType edge) { + + final Identity edgeId = Reconstitution.reconstituteIdentity(edge.getSemanticIdentity().getName(), edge.getSemanticIdentity().getPluralName(), + UUID.fromString(edge.getSemanticIdentity().getIdentifier()), UUID.fromString(edge.getSemanticIdentity().getUniqueRepresentationReference())); + final EdgeEnd ee1 = edge.getEdgeEnd().get(0); + final EdgeEnd ee2 = edge.getEdgeEnd().get(1); + + if (instanceMap.getBuiltInstance(edge.getMetaElement()) == null || + instanceMap.getBuiltInstance(ee1.getInstanceId()) == null || + instanceMap.getBuiltInstance(ee2.getInstanceId()) == null) { + if(isSemanticRoleEdgeType(edge)) { + instanceMap.addToBeBuiltSemanticRoleEdges(edge); + } else { + instanceMap.addToBeBuiltEdges(edge); + } + System.err.println("!Missing edge "+edge.getSemanticIdentity().getUniqueRepresentationReference()); + } + else { + // Jorn: no need for a special case + // TODO: Chul to confirm + // if (isSemanticRoleEdgeType(edge)) { + + /* final Set semanticRoleEdge = Reconstitution.reconstituteLink(semanticRole_to_equivalenceClass.identity(), + edgeId, + org.gmodel.impl.F_SemanticStateOfInMemoryModel.reuseSemanticIdentity(F_SemanticStateOfInMemoryModel.coreSets.referencingSemanticRole.identity(), + instanceMap.getBuiltInstance(ee1.getInstanceId()).identity(), + coreSets.minCardinality_NOTAPPLICABLE.identity(), + coreSets.maxCardinality_NOTAPPLICABLE.identity(), + coreSets.maxCardinality_NOTAPPLICABLE.identity(), + coreSets.isContainer_FALSE.identity(), + org.gmodel.impl.F_SemanticStateOfInMemoryModel.reuseSemanticIdentity(F_SemanticStateOfInMemoryModel.coreSets.referencingSemanticRole.identity(), + instanceMap.getBuiltInstance(ee2.getInstanceId()).identity(), + coreSets.minCardinality_NOTAPPLICABLE.identity(), + coreSets.maxCardinality_NOTAPPLICABLE.identity(), + coreSets.maxCardinality_NOTAPPLICABLE.identity(), + coreSets.isContainer_FALSE.identity()); + if (InstanceBuilder.hasSemanticError(semanticRoleEdge, edgeId)) { + System.err.println("Got semantic error"); + instanceMap.addToBeBuiltEdges(edge); + } else { + System.err.println("Created Semantic Role Edge "+semanticRoleEdge.identity().name()); + instanceMap.addToInstanceMap(edge.getSemanticIdentity().getUniqueRepresentationReference(), semanticRoleEdge); + } */ + + // Jorn: no need for a special case + // TODO: Chul to confirm + // } else { + final Set newEdge = org.gmodel.api.serializerinterface.Reconstitution.reconstituteLink( + instanceMap.getBuiltInstance(edge.getMetaElement()).identity(), + InstanceBuilder.buildIdentity(edge.getSemanticIdentity()), + InstanceBuilder.buildIdentity(ee1.getSemanticIdentity()), + instanceMap.getBuiltInstance(ee1.getInstanceId()).identity(), + InstanceBuilder.createMinCardinality(ee1.getMinCardinality()).identity(), + InstanceBuilder.createMaxCardinality(ee1.getMaxCardinality()).identity(), + InstanceBuilder.createNavigability(ee1.isIsNavigable()).identity(), + InstanceBuilder.createContainer(ee1.isIsContainer()).identity(), + InstanceBuilder.buildIdentity(ee2.getSemanticIdentity()), + instanceMap.getBuiltInstance(ee2.getInstanceId()).identity(), + InstanceBuilder.createMinCardinality(ee2.getMinCardinality()).identity(), + InstanceBuilder.createMaxCardinality(ee2.getMaxCardinality()).identity(), + InstanceBuilder.createNavigability(ee2.isIsNavigable()).identity(), + InstanceBuilder.createContainer(ee2.isIsContainer()).identity()); + if (InstanceBuilder.hasSemanticError(newEdge, InstanceBuilder.buildIdentity(edge.getSemanticIdentity()))) { + System.err.println("Got semantic error "+newEdge.identity()); + instanceMap.addToBeBuiltEdges(edge); + } else { + System.err.println("Created Edge "+newEdge.identity().name()); + instanceMap.addToInstanceMap(edge.getSemanticIdentity().getUniqueRepresentationReference(), newEdge); + } + // Jorn: no need for a special case + // TODO: Chul to confirm + //} + } + } + + private boolean isSemanticRoleEdgeType(final EdgeType edge) { + return edge.getMetaElement().equals(semanticRole_to_equivalenceClass.identity().uniqueRepresentationReference().toString()); + } + + private void createSuperReference(final SuperSetReferenceType superRef) { + if (!instanceMap.isBuiltInstance(superRef.getId())) { + if (instanceMap.isBuiltInstance(superRef.getSubSetInstance()) + && instanceMap.isBuiltInstance(superRef.getSuperSetInstance())) { + final SemanticIdType sId = superRef.getSemanticIdentity(); + final Identity id = Reconstitution.reconstituteIdentity(sId.getName(), sId.getPluralName(), UUID.fromString(sId.getIdentifier()), UUID.fromString(sId.getUniqueRepresentationReference())); + final Identity subSetId = Reconstitution.reconstituteIdentity("", "", UUID.fromString(superRef.getSubSetInstance()), UUID.fromString(superRef.getSubSetInstance())); + final Identity superSetId = Reconstitution.reconstituteIdentity("", "", UUID.fromString(superRef.getSuperSetInstance()), UUID.fromString(superRef.getSuperSetInstance())); + final Set sRef = Reconstitution.reconstituteLink(coreGraphs.superSetReference.identity(), + id, + subSetId, + superSetId); + if (InstanceBuilder.hasSemanticError(sRef, id)) { + System.err.println("Got semantic error "+sRef.identity()); + instanceMap.addToBeBuiltSuperReferences(superRef); + } + instanceMap.addToInstanceMap(superRef.getId(), sRef); + } else { + instanceMap.addToBeBuiltSuperReferences(superRef); + } + } + } + + private void createVisibility(final VisibilityType v) { + if (!instanceMap.isBuiltInstance(v.getId())) { + if (instanceMap.isBuiltInstance(v.getSourceInstance()) + && instanceMap.isBuiltInstance(v.getTargetInstance())) { + final SemanticIdType sId = v.getSemanticIdentity(); + final Identity id = Reconstitution.reconstituteIdentity(sId.getName(), sId.getPluralName(), UUID.fromString(sId.getIdentifier()), UUID.fromString(sId.getUniqueRepresentationReference())); + final Identity sourceId = Reconstitution.reconstituteIdentity("", "", UUID.fromString(v.getSourceInstance()), UUID.fromString(v.getSourceInstance())); + final Identity targeId = Reconstitution.reconstituteIdentity("", "", UUID.fromString(v.getTargetInstance()), UUID.fromString(v.getTargetInstance())); + final Set vLink = Reconstitution.reconstituteLink(coreGraphs.visibility.identity(), + id, + sourceId, + targeId); + if (InstanceBuilder.hasSemanticError(vLink, id)) { + System.err.println("Got semantic error "+vLink.identity()); + instanceMap.addToBeBuiltVisibilities(v); + } else { + instanceMap.addToInstanceMap(v.getId(), vLink); + } + } else { + instanceMap.addToBeBuiltVisibilities(v); + } + } + } + + protected void deserializeRootModels(final Map artifacts) throws OperationNotSupportedException { + throw new OperationNotSupportedException(""); + } + + /** + * Deserialize all instances of the map + * @param artifacts map + */ + protected void deserializeInstances(final Map artifacts) { + //create a depth first list of the containment tree instances + if (artifacts.containsKey(Root.models.identity().uniqueRepresentationReference().toString())) { + final List instances = new ArrayList(); + createDepthFirstTreeList(instances, artifacts, Root.models.identity().uniqueRepresentationReference().toString()); + for (final Gmodel modelsArtifact : instances) { + final Instance model = modelsArtifact.getInstance().get(ROOT_INDEX); + final String name = model.getSemanticIdentity().getName(); + + deserializeModelsInstances(model, artifacts, false); + } + } else { + for (final Entry e : artifacts.entrySet()) { + final Gmodel modelsArtifact = e.getValue(); + final Instance model = modelsArtifact.getInstance().get(ROOT_INDEX); + final String name = model.getSemanticIdentity().getName(); + + deserializeModelsInstances(model, artifacts, false); + } + } + + final List errors = InstanceMap.getInstance().getSemanticErrors(); + for(final String s : errors) { + System.err.println("Error: "+s); + } + } + + private void createDepthFirstTreeList(final List instances, final Map artifacts, final String rootId) { + if (artifacts.containsKey(rootId)) { + final Gmodel instance = artifacts.get(rootId); + instances.add(instance); + final Instance model = instance.getInstance().get(ROOT_INDEX); + for (final InstanceType containedInstance : model.getInstance()) { + createDepthFirstTreeList(instances, artifacts, containedInstance.getSemanticIdentity().getUniqueRepresentationReference()); + } + } + } + + private void deserializeModelsInstances(final Instance instance, final Map artifacts, final boolean isRecursive) { + + createLinks(instance); + if (!instanceMap.isBuiltInstance(instance.getSemanticIdentity()) && + instanceMap.isBuiltInstance(instance.getArtifact()) && + instanceMap.existMetaInstances(instance)) { + final Set metaElement = instanceMap.getBuiltInstance(instance + .getMetaElement()); + final Set artifact = instanceMap.getBuiltInstance(instance + .getArtifact()); + final String name = instance.getSemanticIdentity().getName(); + final String pluralName = instance.getSemanticIdentity().getPluralName(); + final String id = instance.getSemanticIdentity().getIdentifier(); + final String urr = instance.getSemanticIdentity().getUniqueRepresentationReference(); + final Identity reconstitutedId = Reconstitution.reconstituteIdentity(name, pluralName, UUID.fromString(id), UUID.fromString(urr)); + final String payLoad = (instance.getSemanticIdentity().getPayload() == null) ? "" : instance.getSemanticIdentity().getPayload(); + if (!payLoad.equals("")) { + reconstitutedId.setPayload(payLoad); + } + + final Set builtInstance = InstanceBuilder.build(instance, metaElement, artifact, reconstitutedId); + + if (builtInstance != null && !InstanceBuilder.hasSemanticError(builtInstance, reconstitutedId)) { + instanceMap.addToInstanceMap(instance.getSemanticIdentity().getUniqueRepresentationReference(), builtInstance); + } else { + System.err.println(">> Semantic Error, failed to build "+builtInstance.identity()); + } + createVariables(instance, builtInstance); + createValues(instance, builtInstance); + } else { + instanceMap.addToBeBuiltInstances(instance); //add to the to-be-built list + } + if (isRecursive) { + for (final InstanceType i : instance.getInstance()) { + final String uuid = i.getSemanticIdentity().getUniqueRepresentationReference(); + deserializeModelsInstances(artifacts.get(uuid).getInstance().get(ROOT_INDEX), artifacts, isRecursive); + } + } + } + + private void createValues(final Instance instance, final Set builtInstance) { + if (instance.getValues() != null) { + for (final ValueType value : instance.getValues().getValue()) { + final String valId = value.getValuePair().getElement() + .getUniqueRepresentationReference(); + if (!isAbstractValuePair(value)) { + if (instanceMap.isBuiltInstance(valId)) { + builtInstance.addToValues(instanceMap + .getBuiltInstance(valId)); + } else { + instanceMap.addToBeBuiltValues(instance.getId(), value); + } + } + } + } + } + + private void createVariables(final Instance instance, + final Set builtInstance) { + if (instance.getVariables() != null) { + for (final VariableType var : instance.getVariables().getVariable()) { + final String varId = var.getVariablePair().getElement() + .getUniqueRepresentationReference(); + if (instanceMap.isBuiltInstance(varId)) { + builtInstance.addToVariables(instanceMap + .getBuiltInstance(varId)); + } else { + instanceMap.addToBeBuiltVariables(instance.getId(), var); + } + } + } + } + + private void createLinks(final Instance instance) { + if (instance.getLink() != null) { + for (final Object obj : instance.getLink().getVisibilityAndEdgeAndEdgeTrace()) { + if (obj instanceof VisibilityType) { + createVisibility((VisibilityType) obj); + } else if (obj instanceof SuperSetReferenceType) { + final SuperSetReferenceType superRef = (SuperSetReferenceType) obj; + createSuperReference(superRef); + } else if (obj instanceof EdgeType) { + final EdgeType edge = (EdgeType) obj; + if (!instanceMap.isBuiltInstance(edge.getSemanticIdentity())) { + createEdge(edge); + } + } + } + } + } + + protected void deserializeSemanticDomains(final Map artifacts) throws OperationNotSupportedException { + throw new OperationNotSupportedException("Seperate method to deserialize semantic domain instance is not supported."); + } + + private boolean isAbstractValuePair(final ValueType value) { + return value.getValuePair().getMetaElement().getName().equals( + GmodelSemanticDomains.isAbstract.identity().name()); + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/FileIndexer.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/FileIndexer.java new file mode 100644 index 0000000..264178a --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/FileIndexer.java @@ -0,0 +1,352 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.net.URI; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.TimeZone; + +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Unmarshaller; + +import org.gmodel.G; +import org.gmodel.Set; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.serialization.EdgeType; +import org.gmodel.serialization.EdgeType.EdgeEnd; +import org.gmodel.serialization.Gmodel; +import org.gmodel.serialization.InstanceType; +import org.gmodel.serialization.LinkType; +import org.gmodel.serialization.ObjectFactory; +import org.gmodel.serialization.SemanticIdType; +import org.gmodel.serialization.SemanticIdentityIndex; + +public final class FileIndexer { + + private static Map kernelElements; + public static final String TIME_FORMAT = "yyyy-MM-dd'T'HH:mm:ssz"; + + /** + * Return a index map of all the model instances at a given URI + * @param uri URI a serialization location + * @return Map index of Intance name and its URI + */ + public static Map getFileIndexAt(final URI uri) { + final File dir = new File(uri.getPath()); + final Map indexMap = new HashMap(); + + if (dir.isDirectory()) { + for (final File file : dir.listFiles()) { + //TODO need to do more than checking the file extension + if (file.getName().endsWith(Serializer.FILE_EXTENSION)) { + final URI uriF = file.toURI(); + createFileIndex(file.toURI(), indexMap); + } + } + } else { + throw new IllegalArgumentException("Non directory path"); + } + return indexMap; + } + + public static List getSemanticIdIndex (final Set instance) { + final ObjectFactory objFacto = new ObjectFactory(); + final List ids = new ArrayList(); + indexInstance(instance, ids, objFacto, false); + return ids; + } + + public static List getSemanticIdIndexes (final Set instance) { + final List ids = new ArrayList(); + indexInstance(instance, ids, false); + return ids; + } + + private static void indexInstance (final Set instance, final List ids, final boolean isSession) { + ids.add(buildSemanticIdForIndex(instance)); + for (final Set i : instance.filterInstances()) { + if (i.flavor().isEqualTo(G.coreGraphs.vertex) && !isSession) { + indexInstance(i, ids, isSession); + } else if (i.flavor().isEqualTo(G.coreGraphs.edge)) { + final Set edge = i; + ids.add(buildSemanticIdForIndex(i)); + for (final Set j : edge.edgeEnds()) { + ids.add(buildSemanticIdForIndex(j)); + } + } + } + } + + private static SemanticIdentityIndex buildSemanticIdForIndex(final Set instance) { + final SemanticIdentityIndex idx = new SemanticIdentityIndex(); + final String metaTypeName = (instance.flavor().isEqualTo(G.coreGraphs.vertex)) ? G.coreGraphs.vertex.identity().name(): G.coreGraphs.edge.identity().name(); + idx.setIdentifier(instance.identity().identifier().toString()); + idx.setName(instance.identity().name()); + idx.setPluralName(instance.identity().pluralName()); + idx.setUniqueRepresentationReference(instance.identity().uniqueRepresentationReference().toString()); + idx.setMetaElementId(instance.category().identity().uniqueRepresentationReference().toString()); + idx.setMetaElementTypeName(metaTypeName); + return idx; + } + + public static List getSessionSemanticIdIndex (final Set session) { + final ObjectFactory objFacto = new ObjectFactory(); + final List ids = new ArrayList(); + indexInstance(session, ids, objFacto, true); + return ids; + } + + public static List getSessionSemanticIdIndexes (final Set session) { + final List ids = new ArrayList(); + indexInstance(session, ids, true); + return ids; + } + + private static void indexInstance (final Set instance, final List ids, final ObjectFactory objFactory, final boolean isSession) { + ids.add(buildSemanticIdForIndex(objFactory, instance)); + for (final Set i : instance.filterInstances()) { + if (i.flavor().isEqualTo(G.coreGraphs.vertex) && !isSession) { + indexInstance(i, ids, objFactory, isSession); + } else if (i.flavor().isEqualTo(G.coreGraphs.edge)) { + final Set edge = i; + ids.add(buildSemanticIdForIndex(objFactory, i)); + for (final Set j : edge.edgeEnds()) { + ids.add(buildSemanticIdForIndex(objFactory, j)); + } + } + } + } + + private static SemanticIdType buildSemanticIdForIndex(final ObjectFactory objFactory, final Set instance) { + final SemanticIdType id = objFactory.createSemanticIdType(); + id.setIdentifier(instance.identity().identifier().toString()); + id.setName(instance.identity().name()); + id.setPluralName(instance.identity().pluralName()); + id.setUniqueRepresentationReference(instance.identity().uniqueRepresentationReference().toString()); + return id; + } + + /** + * Return semenctic identity names of all non-local instances that is found in a given instance + * + * @param uri URI of an instance + * @param modelRegistry Map of instance id names and their URIs + * @return List List of all non-local semantic Ids + */ + protected static List getAllNonLocalInstances(final URI uri, final Map modelRegistry) { + final List instances = new ArrayList(); + //if this model's root's container is graph then return the empty list + try { + final Gmodel.Instance root = getGmodelRootInstance(uri); + if (!root.getArtifact().equals(G.coreGraphs.graph.identity().name())) { + if (!isLocalInstance(root.getArtifact(), uri, modelRegistry)) { + if (!instances.contains(root.getArtifact())) { + instances.add(root.getArtifact()); + } + } + if (!isLocalInstance(root.getMetaElement(), uri, modelRegistry)) { + if (!instances.contains(root.getMetaElement())) { + instances.add(root.getMetaElement()); + } + } + indexNonLocalLinkType(root.getLink(), uri, instances,modelRegistry); + for (final InstanceType instance : root.getInstance()) { + indexNonLocalInstance(instance, uri, instances, modelRegistry); + } + } + } catch (final JAXBException ex) { + throw new IllegalStateException("Deserialization failed.", ex); + } catch (final FileNotFoundException ex) { + throw new IllegalArgumentException("Invalid uri path."); + } + return instances; + } + + private static void indexNonLocalInstance(final InstanceType instance, final URI uri, + final List nonLocalInstances, final Map modelRegistry) { + indexNonLocalLinkType(instance.getLink(), uri, nonLocalInstances, modelRegistry); + if (!isLocalInstance(instance.getArtifact(), uri, modelRegistry)) { + if (!nonLocalInstances.contains(instance.getArtifact())) { + nonLocalInstances.add(instance.getArtifact()); + } + } + if (!isLocalInstance(instance.getMetaElement(), uri, modelRegistry)) { + if (!nonLocalInstances.contains(instance.getMetaElement())) { + nonLocalInstances.add(instance.getMetaElement()); + } + } + for (final InstanceType i : instance.getInstance()) { + indexNonLocalInstance(i, uri, nonLocalInstances, modelRegistry); + } + } + + private static void indexNonLocalLinkType(final LinkType link, final URI uri, + final List nonLocalInstances, final Map modelRegistry) { + if (link != null) { + for (final Object obj : link.getVisibilityAndEdgeAndEdgeTrace()) { + if (obj instanceof EdgeType) { + final EdgeType edge = (EdgeType) obj; + for (final EdgeEnd ee : edge.getEdgeEnd()) { + if (!isLocalInstance(ee.getMetaElement(), uri, modelRegistry)) { + if (!nonLocalInstances.contains(ee.getMetaElement())) { + nonLocalInstances.add(ee.getMetaElement()); + } + } + } + } + } + } + } + + private static boolean isLocalInstance (final String name, final URI currentURI, final Map modelRegistry) { + //not kernel elements + if (!isKernelElement(name)) { + return currentURI.equals(modelRegistry.get(name)); + } else { + return true; + } + } + + public static boolean isKernelElement(final String name) { + if (name.equals(G.coreGraphs.graph.identity().name()) || + name.equals(G.coreGraphs.vertex.identity().name()) || + name.equals(G.coreGraphs.edge.identity().name()) || + name.equals(G.coreGraphs.edgeEnd.identity().name()) || + name.equals(GmodelSemanticDomains.anonymous.identity().name())) { + return true; + } else { + return false; + } + } + + + private static void createFileIndex(final URI uri, final Map indexMap) { + try { + final Gmodel.Instance root = getGmodelRootInstance(uri); + indexMap.put(root.getId(), uri); + indexLinkType(root.getLink(), uri, indexMap); + for (final InstanceType instance : root.getInstance()) { + indexInstance(instance, uri, indexMap); + } + } catch (final JAXBException ex) { + java.util.logging.Logger.getLogger("global").log( + java.util.logging.Level.SEVERE, null, ex); + } catch (final FileNotFoundException ex) { + java.util.logging.Logger.getLogger("global").log( + java.util.logging.Level.SEVERE, null, ex); + } + } + + private static Gmodel.Instance getGmodelRootInstance(final URI uri) + throws JAXBException, FileNotFoundException { + final JAXBContext jc = JAXBContext.newInstance(Gmodel.class.getPackage().getName()); + final Unmarshaller unMarsahller = jc.createUnmarshaller(); + final Gmodel gmodel = (Gmodel) unMarsahller + .unmarshal(new FileInputStream(uri.getPath())); + final Gmodel.Instance root = gmodel.getInstance().get(0); // get its root + return root; + } + + private static void indexInstance(final InstanceType instance, + final URI uri, final Map indexMap) { + indexMap.put(instance.getId(), uri); + indexLinkType(instance.getLink(), uri, indexMap); + for (final InstanceType i : instance.getInstance()) { + indexInstance(i, uri, indexMap); + } + } + + private static void indexInstance(final InstanceType instance, final String ownerId, final Map indexMap) { + indexMap.put(instance.getId(), ownerId); + indexLinkType(instance.getLink(), ownerId, indexMap); + for (final InstanceType i : instance.getInstance()) { + indexInstance(i, ownerId, indexMap); + } + } + + private static void indexLinkType(final LinkType link, final URI uri, + final Map indexMap) { + if (link != null) { + for (final Object obj : link.getVisibilityAndEdgeAndEdgeTrace()) { + if (obj instanceof EdgeType) { + final EdgeType edge = (EdgeType) obj; + indexMap.put(edge.getSemanticIdentity().getUniqueRepresentationReference().toString(), uri); + for (final EdgeEnd ee : edge.getEdgeEnd()) { + indexMap.put(ee.getSemanticIdentity().getUniqueRepresentationReference(), uri); + } + } + } + } + } + + private static void indexLinkType(final LinkType link, final String ownerId, final Map indexMap) { + if (link != null) { + for (final Object obj : link.getVisibilityAndEdgeAndEdgeTrace()) { + if (obj instanceof EdgeType) { + final EdgeType edge = (EdgeType) obj; + indexMap.put(edge.getSemanticIdentity().getUniqueRepresentationReference().toString(), ownerId); + for (final EdgeEnd ee : edge.getEdgeEnd()) { + indexMap.put(ee.getSemanticIdentity().getUniqueRepresentationReference(), ownerId); + } + } + } + } + } + + public static void getSemanticIdIndex(final Gmodel.Instance root, final Map documentMap) { + final String ownerDocId = root.getSemanticIdentity().getUniqueRepresentationReference(); + documentMap.put(ownerDocId, ownerDocId); + indexLinkType(root.getLink(), ownerDocId, documentMap); + for (final InstanceType instance : root.getInstance()) { + indexInstance(instance, ownerDocId, documentMap); + } + } + + public static void getRootSemanticIdIndex(final Gmodel.Instance root, final Map documentMap) { + final String ownerDocId = root.getSemanticIdentity().getUniqueRepresentationReference(); + documentMap.put(ownerDocId, ownerDocId); + indexLinkType(root.getLink(), ownerDocId, documentMap); + } + + public static String getCurrentTimeStamp() { + final SimpleDateFormat df = new SimpleDateFormat(TIME_FORMAT); + final TimeZone tz = Calendar.getInstance().getTimeZone(); + df.setTimeZone(tz); + return df.format(new Date()); + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/FileSystemSerializer.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/FileSystemSerializer.java new file mode 100644 index 0000000..7854eb5 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/FileSystemSerializer.java @@ -0,0 +1,331 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.StringWriter; +import java.io.Writer; +import java.net.URI; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.zip.GZIPInputStream; +import java.util.zip.GZIPOutputStream; + +import javax.naming.OperationNotSupportedException; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Marshaller; +import javax.xml.bind.Unmarshaller; + +import org.apache.commons.codec.binary.Base64; +import org.gmodel.G; +import org.gmodel.Set; +import org.gmodel.api.models.Root; +import org.gmodel.serialization.Gmodel; +import org.gmodel.serialization.SemanticIdType; +import org.gmodel.serialization.container.ArtefactContainer; + +public class FileSystemSerializer implements Serializer { + + public FileSystemSerializer() { + initGmodelMarshaller(); + } + + public byte[] compressSerializationContent(final String content) throws IOException { + final ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + final BufferedOutputStream bufOutputStream = new BufferedOutputStream(new GZIPOutputStream(outputStream)); + bufOutputStream.write(content.getBytes(CONTENT_ENCODING)); + bufOutputStream.close(); + return outputStream.toByteArray(); + } + + public String compressSerializationContentBase64(final String content)throws IOException { + final byte[] contentByte = compressSerializationContent(content); + return Base64.encodeBase64URLSafeString(contentByte); + } + + public Marshaller createMarshaller(final String packageName) throws JAXBException { + return SerializationMarshaller.getMarshaller(packageName); + } + + public byte[] decodeBase64StringToByteArray(final String content) { + return Base64.decodeBase64(content); + } + + public String decompressSerializationContent(final byte[] compressedContent) throws IOException { + final ByteArrayInputStream inputStream = new ByteArrayInputStream(compressedContent); + final BufferedInputStream bufInputStream = new BufferedInputStream(new GZIPInputStream(inputStream)); + final ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + String decompressedContent; + final int bufferSize = 1024; + final byte[] buf = new byte[bufferSize]; + int len; + while( (len = bufInputStream.read(buf)) > 0 ) { + outputStream.write(buf, 0, len); + } + decompressedContent = outputStream.toString(CONTENT_ENCODING); + inputStream.close(); + bufInputStream.close(); + outputStream.close(); + return decompressedContent; + } + + public String decompressSerializationContentBase64(final String compressedContent) throws IOException { + final byte[] decodedByte = Base64.decodeBase64(compressedContent); + return decompressSerializationContent(decodedByte); + } + + public void deserializeInstances(final Map artifacts) { + final DeserializationMapper deSerializationMapper = new DeserializationMapper(); + deSerializationMapper.deserializeInstances(artifacts); + } + + public void doInitialFullDeserialization(final Map artifacts) throws IllegalArgumentException, IllegalAccessException { + final DeserializationMapper deSerializationMapper = new DeserializationMapper(); + try { + deSerializationMapper.deserializeSemanticDomains(artifacts); + deSerializationMapper.deserializeRootModels(artifacts); + } catch (final OperationNotSupportedException ex) { + throw new IllegalArgumentException("The given artifacts cannot be deserialized.",ex); + } + } + + public String encodeByteArrayInBase64(final byte[] binaryContent) { + return Base64.encodeBase64String(binaryContent); + } + + private void getAllChildVerticesInMemory(final Set parentInstance, final List allInstancesInMemory) { + if (parentInstance.flavor().isEqualTo(G.coreGraphs.vertex)) { + allInstancesInMemory.add(parentInstance); + } + for (final Set i : parentInstance.filterInstances()) { + //if (i.flavor().isEqualTo(F_SemanticStateOfInMemoryModel.coreGraphs.vertex) && !i.identity().isEqualTo(Root.transportcontainer.identity())) { + if (i.flavor().isEqualTo(G.coreGraphs.vertex)) { + + getAllChildVerticesInMemory(i, allInstancesInMemory); + } + } + } + + private void getAllIdentities(final Set instance, final List identities) { + final Gmodel serializedModel = InstanceBuilder.getObjectFactory().createGmodel(); + final Gmodel.Instance serializedInstance = InstanceBuilder.getObjectFactory().createGmodelInstance(); + final SemanticIdType sId = InstanceBuilder.mapSemanticIdentity(instance.identity()); + serializedInstance.setSemanticIdentity(sId); + serializedModel.getInstance().add(serializedInstance); + identities.add(serializedModel); + for (final Set i : instance.filterInstances()) { + getAllIdentities(i, identities); + } + } + + /* + private Set getTransportContainerContent() { + final Set containedSet = null; + for (final Set set : Root.transportcontainer.instanceSet()) { + if (!set.isEqualToRepresentation(Root.transmissionTimestamp)) { + containedSet = set; + } + } + return containedSet; + } + */ + + private void initGmodelMarshaller() { + try { + SerializationMarshaller.getMarshaller(Gmodel.class.getPackage().getName()); + SerializationMarshaller.getUnmarshaller(Gmodel.class.getPackage().getName()); + SerializationMarshaller.getMarshaller(ArtefactContainer.class.getPackage().getName()); + SerializationMarshaller.getUnmarshaller(ArtefactContainer.class.getPackage().getName()); + } catch (final JAXBException ex) { + java.util.logging.Logger.getLogger("global").log( + java.util.logging.Level.SEVERE, null, ex); } + } + + public String marshallModel(final T model) throws JAXBException { + final Marshaller marshaller = createMarshaller(model.getClass().getPackage().getName()); + final Writer sw = new StringWriter(); + marshaller.marshal(model, sw); + return sw.toString(); + } + + public List serializeAllInstancesInMemory() { + final List serializedInstances = new ArrayList(); + final List allInstancesInMemory = new ArrayList(); + final Set rootSet = G.coreGraphs.graph;//(Vertex) Root.root; + getAllChildVerticesInMemory(rootSet, allInstancesInMemory); + //for all instances memory sort them by urr and write to a file + Collections.sort(allInstancesInMemory, new InstanceComparator()); + final StringBuffer sBuff = new StringBuffer(); + for (final Set v : allInstancesInMemory) { + if (!v.identity().name().contains("this set is not available in memory")) { + sBuff.append(v.identity().uniqueRepresentationReference()+","+v.identity().name()+"\r\n"); + } + } + //dumpContent(""+UUID.randomUUID(),sBuff.toString()); + + for (final Set v : allInstancesInMemory) { + serializedInstances.add(serializeInstance(v, true).getContent()); + } + return serializedInstances; + } + + public String serializeContainer(final ArtefactContainer container) { + final Writer sw = new StringWriter(); + try { + final Marshaller marshaller = createMarshaller(container.getClass().getPackage().getName()); + marshaller.marshal(container, sw); + final String content = sw.toString(); //dumpContent(gmodel.getId(), content); //do content dump + return content; + } catch (final JAXBException ex) { + // TODO Auto-generated catch block + throw new IllegalStateException ("Unmarshalling failed.", ex); + } + } + + public List serializeIdentities(final Set instance) { + final List ids = new ArrayList(); + getAllIdentities(instance, ids); + Marshaller marshaller; + try { + marshaller = ids.isEmpty() ? null : createMarshaller(ids.get(0).getClass().getPackage().getName()); + for (final Gmodel id : ids) { + final Writer sw = new StringWriter(); + marshaller.marshal(id, sw); + } + return ids; + } catch (final JAXBException ex) { + throw new IllegalStateException ("Marshalling failed.", ex); + } + } + + /* Serialize the given vertex + * @return SerializationContent + */ + public SerializationContent serializeInstance(final Set vertex, final boolean isKernelSerialization) { + try { + final GmodelContent gmodel = new SerializationMapper().mapInstance(vertex, isKernelSerialization); + final Writer sw = new StringWriter(); + final Marshaller marshaller = createMarshaller(gmodel.getContent().getClass().getPackage().getName()); + marshaller.marshal(gmodel.getContent(), sw); + final String content = sw.toString(); //dumpContent(gmodel.getId(), content); //do content dump + return new SerializationContent(gmodel.getId(), content, gmodel.getContent(), gmodel.getSemanticIds()); + } catch (final JAXBException ex) { + throw new IllegalStateException("Serialization failture."); + } + } + + /* Serialize Kernel Session to a list of SerializationContent + * @return String + */ + public List serializeRoot() { + final List gmodels = new SerializationMapper().mapRoot(Root.root); + final List serializedGmodels = new ArrayList(); + try { + final Marshaller marshaller = gmodels.isEmpty() ? null :createMarshaller(gmodels.get(0).getContent().getClass().getPackage().getName()); + for(final GmodelContent gmodel : gmodels) { + final Writer sw = new StringWriter(); + marshaller.marshal(gmodel.getContent(), sw); + final String content = sw.toString(); + //do content dump + //dumpContent(gmodel.getId(), content); + serializedGmodels.add(new SerializationContent(gmodel.getId(), content, gmodel.getContent(), gmodel.getSemanticIds())); + } + } catch (final JAXBException ex) { + java.util.logging.Logger.getLogger("global").log( + java.util.logging.Level.SEVERE, null, ex); + } + return serializedGmodels; + } + + /* public List serializeTransportContainerContent() { + final List serializedGmodels = new ArrayList(); + final Set containedSet = getTransportContainerContent(); + if (containedSet != null) { + if (containedSet.isEqualToRepresentation(Root.root)) { + serializedGmodels.addAll(serializeRoot()); + } else { + final List gmodels = new SerializationMapper().mapRoot(containedSet); + for(final GmodelContent gmodel : gmodels) { + try { + final Writer sw = new StringWriter(); + final Marshaller marshaller = createMarshaller(gmodel.getContent().getClass().getPackage().getName()); + marshaller.marshal(gmodel.getContent(), sw); + final String content = sw.toString(); + serializedGmodels.add(new SerializationContent(gmodel.getId(), content, gmodel.getContent(), gmodel.getSemanticIds())); + } catch (final JAXBException ex) { + java.util.logging.Logger.getLogger("global").log( + java.util.logging.Level.SEVERE, null, ex); + } + } + } + } + return serializedGmodels; + } + */ + + private Object unMarshall(final String modelClass, final String xmlString) throws JAXBException { + final ByteArrayInputStream input = new ByteArrayInputStream (xmlString.getBytes()); + final Unmarshaller unMarsahller = SerializationMarshaller.getUnmarshaller(modelClass); + return unMarsahller.unmarshal(input); + } + + public ArtefactContainer unmarshallContainer (final String xmlString) { + try { + return (ArtefactContainer) unMarshall(ArtefactContainer.class.getPackage().getName(), xmlString); + } catch (final JAXBException ex) { + throw new IllegalStateException ("Unmarshalling failed.", ex); + } + } + + public Gmodel unmarshallModel (final String xmlString) { + try { + return (Gmodel) unMarshall(Gmodel.class.getPackage().getName(), xmlString); + } catch (final JAXBException ex) { + throw new IllegalStateException ("Unmarshalling failed.", ex); + } + } + + public Gmodel unmarshallModel (final URI uri) { + try { + final Unmarshaller unMarsahller = SerializationMarshaller.getUnmarshaller(Gmodel.class.getPackage().getName()); + return (Gmodel) unMarsahller.unmarshal( new FileInputStream(uri.getPath())); + } catch (final JAXBException ex) { + throw new IllegalStateException ("Unmarshalling failed.", ex); + } catch (final FileNotFoundException ex) { + throw new IllegalArgumentException("Invalid URI path."); + } + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/GmodelContent.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/GmodelContent.java new file mode 100644 index 0000000..a902b9e --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/GmodelContent.java @@ -0,0 +1,93 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +import org.gmodel.serialization.Gmodel; + +public class GmodelContent extends SemanticIdContent { + + private final String id; + private Gmodel gmodel; + + public GmodelContent(final String id, final Gmodel gmodel) { + this.id = id; + this.gmodel = gmodel; + } + + public String getId() { + return id; + } + + public Gmodel getContent() { + return gmodel; + } + + public void setContent(final Gmodel gmodel) { + this.gmodel = gmodel; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = super.hashCode(); + result = prime * result + ((gmodel == null) ? 0 : gmodel.hashCode()); + result = prime * result + ((id == null) ? 0 : id.hashCode()); + return result; + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) { + return true; + } + if (!super.equals(obj)) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final GmodelContent other = (GmodelContent) obj; + if (gmodel == null) { + if (other.gmodel != null) { + return false; + } + } else if (!gmodel.equals(other.gmodel)) { + return false; + } + if (id == null) { + if (other.id != null) { + return false; + } + } else if (!id.equals(other.id)) { + return false; + } + return true; + } + + + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/InstanceBuildType.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/InstanceBuildType.java new file mode 100644 index 0000000..e71543d --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/InstanceBuildType.java @@ -0,0 +1,45 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +public enum InstanceBuildType { + + ABSTRACT_ARTIFACT_INSTANTIATION, + + ABSTRACT_SUBGRAPH_ARTIFACT, + + ABSTRACT_VERTEX, + + CONCRETE_ARTIFACT_INSTANTIATION, + + CONCRETE_SUBGRAPH_ARTIFACT, + + CONCRETE_VERTEX, + + EDGE + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/InstanceBuilder.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/InstanceBuilder.java new file mode 100644 index 0000000..45a6fff --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/InstanceBuilder.java @@ -0,0 +1,368 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.Iterator; +import java.util.Map; +import java.util.UUID; + +import org.gmodel.G; +import org.gmodel.Identity; +import org.gmodel.Set; +import org.gmodel.api.CoreGraphs; +import org.gmodel.api.CoreSets; +import org.gmodel.api.models.ArtifactDerivation; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models.HTMLRepresentation; +import org.gmodel.api.models.Root; +import org.gmodel.api.models.SemanticDomain; +import org.gmodel.api.serializerinterface.Reconstitution; +import org.gmodel.serialization.Gmodel.Instance; +import org.gmodel.serialization.ObjectFactory; +import org.gmodel.serialization.SemanticIdType; + +public class InstanceBuilder { + + protected static final String ANONYMOUS_ID_NAME = GmodelSemanticDomains.anonymous.identity().name(); + private static ObjectFactory objectFactory = null; + + protected static Set addAbstractVertex(final Set artifact, + final Set metaElement, final SemanticIdType identity) { + final Identity si = buildIdentity(identity); + return Reconstitution.addAbstract(artifact,metaElement, si); + } + + protected static Set addConcreteVertex(final Set artifact, + final Set metaElement, final SemanticIdType identity) { + final Identity si = buildIdentity(identity); + Set concVertex = null; + try { + concVertex = Reconstitution.addConcrete(artifact,metaElement, si);; + } catch (final Exception ex) { + System.err.println(ex.getMessage()); + } + return concVertex; + } + + protected static void addKernelInstances(final Map instanceMap) { + try { + final CoreGraphs cg = G.coreGraphs; + final CoreSets cs = G.coreSets; + addPublicSetFields(instanceMap, cg); + addPublicSetFields(instanceMap, cs); + instanceMap.put(Root.root.identity().uniqueRepresentationReference().toString(), Root.root); + addPublicSetFields(instanceMap, Root.class); + addPublicSetFields(instanceMap, ArtifactDerivation.class); + //addPublicSetFields(instanceMap, GmodelSemanticDomain.class); + addPublicSetFields(instanceMap, HTMLRepresentation.class); + addPublicSetFields(instanceMap, SemanticDomain.class); + addPublicSetFields(instanceMap, GmodelSemanticDomains.class); + } catch (final IllegalArgumentException ex) { + java.util.logging.Logger.getLogger("global").log( + java.util.logging.Level.SEVERE, null, ex); + } catch (final IllegalAccessException ex) { + java.util.logging.Logger.getLogger("global").log( + java.util.logging.Level.SEVERE, null, ex); + } + } + + protected static void addInnershellInstancesInMemory(final Map instanceMap) { + final Set e = G.coreGraphs.edge; + transverseInnershell(G.coreGraphs.graph, instanceMap); + try { + addPublicSetFields(instanceMap, G.coreGraphs); + } catch (final IllegalArgumentException e1) { + e1.printStackTrace(); + } catch (final IllegalAccessException e1) { + e1.printStackTrace(); + } + final boolean gotEdge = instanceMap.containsKey(""+e.identity().uniqueRepresentationReference()); + } + + private static void transverseInnershell(final Set set, final Map instanceMap) { + instanceMap.put(set.identity().uniqueRepresentationReference().toString(), set); + for (final Set s : set.filterInstances()) { + transverseInnershell(s, instanceMap); + } + } + + protected static void addPublicSetFields(final Map map, final Object instance) throws IllegalArgumentException, IllegalAccessException { + Class cls; + if (instance instanceof Class) { + cls = (Class) instance; + } else { + cls = instance.getClass(); + } + final Field[] fields = cls.getFields(); + for (final Field f : fields) { + if (Modifier.isPublic(f.getModifiers())) { + if (f.getType().equals(Set.class)) { + final Set set = (Set) f.get(instance); + map.put(set.identity().uniqueRepresentationReference().toString(), set); + } + } + } + } + + protected static Set build(final Instance instance, final Set metaElement, final Set artifact, + final Identity reconstitutedId) { + + Set builtInstance = null; + + switch (instance.getType()) { + case INSTANTIATED_ABSTRACT_ARTIFACT: + builtInstance = InstanceBuilder.instantiateAbstractArtifact(artifact, metaElement, + instance.getSemanticIdentity()); + break; + case ABSTRACT_VERTEX: + builtInstance = InstanceBuilder.addAbstractVertex(artifact, metaElement, + instance.getSemanticIdentity()); + break; + case INSTANTIATED_CONCRETE_ARTIFACT: + builtInstance = InstanceBuilder + .instantiateConcreteArtifact(artifact, metaElement,instance.getSemanticIdentity()); + break; + case INSTANTIATE_SEMANTIC_DOMAIN: + //DO NOTHING + break; + case SEMANTIC_DOMAIN_ADDITION: + builtInstance = Reconstitution.addAbstract(artifact,SemanticDomain.semanticdomain, reconstitutedId); + break; + case DISJUNCT_SEMANTIC_IDENTITY_SET_ADDITION: + builtInstance = Reconstitution.addConcrete(artifact,SemanticDomain.disjunctSemanticIdentitySet, reconstitutedId); + break; + case ANON_DISJUNCT_SEMANTIC_IDENTITY_SET_ADDITION: + builtInstance = Reconstitution.addConcrete(artifact,SemanticDomain.disjunctSemanticIdentitySet, reconstitutedId); + break; + case SEMANTIC_ROLE_ADDITION: + builtInstance = Reconstitution.addConcrete(artifact,SemanticDomain.semanticRole, reconstitutedId); + //build semantic role edge + //SemanticDomainCode.addSemanticRole(result, abstractSemanticRole); + break; + case CONCRETE_VERTEX: + builtInstance = InstanceBuilder.addConcreteVertex(artifact, + metaElement, instance.getSemanticIdentity()); + break; + } + return builtInstance; + } + + protected static Identity buildIdentity(final SemanticIdType identity) { + final String name = identity.getName(); + final String pluralName = identity.getPluralName(); + final String identifier = identity.getIdentifier(); + final String URR = identity.getUniqueRepresentationReference(); + final Identity si = Reconstitution.reconstituteIdentity(name, pluralName, UUID.fromString(identifier), UUID.fromString(URR)); + if (identity.getPayload() != null) { + si.setPayload(identity.getPayload()); + } + return si; + } + + protected static Set createContainer (final boolean isContainer) { + if (isContainer) { + return GmodelSemanticDomains.isContainer_TRUE; + } else { + return GmodelSemanticDomains.isContainer_FALSE; + } + } + + protected static Set createMaxCardinality (final String n) { + if (n.equals(GmodelSemanticDomains.maxCardinality_0.identity().name())) { + return GmodelSemanticDomains.maxCardinality_0; + } else if (n.equals(GmodelSemanticDomains.maxCardinality_1.identity().name())) { + return GmodelSemanticDomains.maxCardinality_1; + } else if (n.equals(GmodelSemanticDomains.maxCardinality_2.identity().name())) { + return GmodelSemanticDomains.maxCardinality_2; + } else if (n.equals(GmodelSemanticDomains.maxCardinality_n.identity().name())) { + return GmodelSemanticDomains.maxCardinality_n; + } else if (n.equals(GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE.identity().name())) { + return GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE; + } else if (n.equals(GmodelSemanticDomains.maxCardinality_UNKNOWN.identity().name())) { + return GmodelSemanticDomains.maxCardinality_UNKNOWN; + } else { + throw new java.lang.IllegalArgumentException("Non legal cardinality value"); + } + } + + protected static Set createMinCardinality (final String n) { + if (n.equals(GmodelSemanticDomains.minCardinality_0.identity().name())) { + return GmodelSemanticDomains.minCardinality_0; + } else if (n.equals(GmodelSemanticDomains.minCardinality_1.identity().name())) { + return GmodelSemanticDomains.minCardinality_1; + } else if (n.equals(GmodelSemanticDomains.minCardinality_2.identity().name())) { + return GmodelSemanticDomains.minCardinality_2; + } else if (n.equals(GmodelSemanticDomains.minCardinality_n.identity().name())) { + return GmodelSemanticDomains.minCardinality_n; + } else if (n.equals(GmodelSemanticDomains.minCardinality_NOTAPPLICABLE.identity().name())) { + return GmodelSemanticDomains.minCardinality_NOTAPPLICABLE; + } else if (n.equals(GmodelSemanticDomains.minCardinality_UNKNOWN.identity().name())) { + return GmodelSemanticDomains.minCardinality_UNKNOWN; + } else { + throw new java.lang.IllegalArgumentException("Non legal cardinality value"); + } + } + + protected static Set createNavigability (final boolean isNavigable) { + if (isNavigable) { + return GmodelSemanticDomains.isNavigable_TRUE; + } else { + return GmodelSemanticDomains.isNavigable_FALSE; + } + } + + public static void decommssionInstances() { + //TODO: Kernel's decommission method does not work as intended + removeInstances(GmodelSemanticDomains.infiniteSets, true); + removeInstances(GmodelSemanticDomains.finiteSets, true); + removeInstances(Root.models, true); + } + + public static void decommssionOutdatedOuterShellInstances() { + //TODO: Kernel's decommission method does not work as intended + removeInstances(Root.semanticdomains, true); + removeInstances(GmodelSemanticDomains.infiniteSets, false); + removeInstances(GmodelSemanticDomains.finiteSets, false); + removeInstances(Root.models, true); + } + + protected static ObjectFactory getObjectFactory() { + if (objectFactory == null) { + objectFactory = new ObjectFactory(); + } + return objectFactory; + } + + protected static Set instantiateAbstractArtifact( + final Set artifact, final Set metaElement, final SemanticIdType identity) { + final Identity si = buildIdentity(identity); + return Reconstitution.instantiateAbstract(metaElement, si); + } + + protected static Set instantiateConcreteArtifact( + final Set artifact, final Set metaElement, final SemanticIdType identity) { + final Identity si = buildIdentity(identity); + return Reconstitution.instantiateConcrete(metaElement, si); + } + + protected static Set instantiateSemanticDomain(final SemanticIdType identity) { + final Identity si = buildIdentity(identity); + return Reconstitution.instantiateSemanticDomain(si); + } + + public static boolean IsSemanticDomainTopInstances(final Set set) { + return set.identity().isEqualToRepresentation(GmodelSemanticDomains.finiteSets.identity()) || + set.identity().isEqualToRepresentation(GmodelSemanticDomains.infiniteSets.identity()); + } + + public static boolean isSerializableInstance(final Set set) { + return !set.identity().isPartOfKernel() || + set.identity().isEqualToRepresentation(Root.universalartifactengineering.identity()) || + set.identity().isEqualToRepresentation(Root.semanticdomains.identity()) || + set.identity().isEqualToRepresentation(Root.models.identity()) || + set.container().identity().isEqualToRepresentation(Root.models.identity()); + } + + public static boolean isTopSemanticDomainSet(final Set set) { + return set.identity().isEqualToRepresentation(Root.semanticdomains.identity()); + } + + /** + * Map a given Gmodel identity to a serialization identity type + * @param identity Gmodel Identity + * @return SemanticIdType Serialization identity Type + */ + protected static SemanticIdType mapSemanticIdentity(final Identity identity) { + final SemanticIdType semanticId = getObjectFactory().createSemanticIdType(); + semanticId.setName(identity.name()); + semanticId.setPluralName(identity.pluralName()); + semanticId.setIdentifier(identity.identifier().toString()); + semanticId.setUniqueRepresentationReference(identity.uniqueRepresentationReference().toString()); + if (identity.name().equals(ANONYMOUS_ID_NAME)) { + semanticId.setIsAnonymous(true); + } + if (identity.technicalName() != null) { + semanticId.setTechnicalName(identity.technicalName()); + } + if (identity.payload() != null) { + semanticId.setPayload(identity.payload()); + } + + return semanticId; + } + + /** + * Map a given serialization identity type to a newly created a serialization identity type 1:1 + * @param identity Serialization Identity + * @return SemanticIdType A newly created SemanticIdType which is 1:1 mapped to the given serialization identity + */ + protected static SemanticIdType mapSemanticIdentity(final SemanticIdType identity) { + final SemanticIdType semanticId = getObjectFactory().createSemanticIdType(); + semanticId.setName(identity.getName()); + semanticId.setPluralName(identity.getPluralName()); + semanticId.setIdentifier(identity.getIdentifier()); + semanticId.setUniqueRepresentationReference(identity.getUniqueRepresentationReference()); + if (identity.getName().equals(InstanceBuilder.ANONYMOUS_ID_NAME)) { + semanticId.setIsAnonymous(true); + } + if (identity.getTechnicalName() != null) { + semanticId.setTechnicalName(identity.getTechnicalName()); + } + if (identity.getPayload() != null) { + semanticId.setPayload(identity.getPayload()); + } + return semanticId; + } + + protected static boolean hasSemanticError(final Set set, final Identity identity) { + if (set.identity().isEqualToRepresentation(identity)) { + return false; + } else { + return true; + } + } + + private static void removeInstances(final Set set, final boolean outershellOnlyDeletion) { + final Iterator itr =set.filterInstances().iterator(); + while(itr.hasNext()) { + final Set s = itr.next(); + if (outershellOnlyDeletion) { + if (!s.identity().isPartOfKernel()) { + itr.remove(); + } + } else { + if (!s.identity().isEqualTo(GmodelSemanticDomains.gmodel.identity())) { + itr.remove(); + } + } + } + } + + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/InstanceComparator.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/InstanceComparator.java new file mode 100644 index 0000000..db18e89 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/InstanceComparator.java @@ -0,0 +1,38 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: SMTL 1.0 + * + * The contents of this file are subject to the Sofismo Model Technology License Version + * 1.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.sofismo.ch/SMTL/ + * + * Software distributed under the License is distributed on an "AS IS" basis. + * See the License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is Gmodel Semantic Extensions Edition. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +import java.util.Comparator; + +import org.gmodel.Set; + +public class InstanceComparator implements Comparator { + + public int compare(final Set v1, final Set v2) { + return v1.identity().uniqueRepresentationReference().compareTo(v2.identity().uniqueRepresentationReference()); + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/InstanceGetter.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/InstanceGetter.java new file mode 100644 index 0000000..0067554 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/InstanceGetter.java @@ -0,0 +1,84 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +import java.util.UUID; + +import org.gmodel.Set; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models.SemanticDomain; +import org.gmodel.api.serializerinterface.Reconstitution; + +public class InstanceGetter { + + /** + * Returns the in-memory instance with the UUID + * @param uuid + * @return + * @throws IllegalStateException + */ + public static Set getInstanceByUUID(final UUID uuid) throws IllegalStateException { + final Set setFromMemory = Reconstitution.getSetFromLocalMemory(Reconstitution.reconstituteIdentity("", "", + uuid, uuid)); + if (isNonMemoryResidentInstance(setFromMemory)) { + throw new IllegalStateException("Non-existent instance"); + } else { + return setFromMemory; + } + } + + /** + * Returns true of the instance does not exist in memory + * @param set + * @return + */ + public static boolean isNonMemoryResidentInstance(final Set set) { + // NOTE : the test based on names may fail, the only correct test is for representational equivalence via isEqualToRepresentation() + //return set.identity().name().equals((GmodelSemanticDomains.semanticErr_ThisSetIsNotAvailableInMemory.identity().name())); + return org.gmodel.api.serializerinterface.Reconstitution.getSetFromLocalMemory(set.identity()).isEqualToRepresentation(GmodelSemanticDomains.semanticErr_ThisSetIsNotAvailableInMemory) ; + } + + /** + * Returns true if the given instance has a modifiable name + * @param set + * @return + */ + public static boolean hasModifiableName(final Set set) { + if ( + set.category().isEqualTo(SemanticDomain.semanticIdentity) + || set.category().isEqualTo(SemanticDomain.semanticIdentitySet) + || set.category().isEqualTo(SemanticDomain.disjunctSemanticIdentitySet) + //|| set.category().isEqualTo(SemanticDomain.abstractSemanticRole) + || set.category().isEqualTo(SemanticDomain.semanticRole) + || set.category().isEqualTo(SemanticDomain.variantDisjunctSemanticIdentitySet) + ) { + return true; + } else { + return false; + } + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/InstanceMap.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/InstanceMap.java new file mode 100644 index 0000000..68bebd2 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/InstanceMap.java @@ -0,0 +1,681 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +import static org.gmodel.api.models.SemanticDomain.semanticRole_to_equivalenceClass; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +import org.apache.commons.collections.map.MultiValueMap; +import org.gmodel.G; +import org.gmodel.Identity; +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.serializerinterface.Reconstitution; +import org.gmodel.serialization.EdgeType; +import org.gmodel.serialization.EdgeType.EdgeEnd; +import org.gmodel.serialization.Gmodel.Instance; +import org.gmodel.serialization.InstanceType; +import org.gmodel.serialization.SemanticIdType; +import org.gmodel.serialization.SuperSetReferenceType; +import org.gmodel.serialization.ValueType; +import org.gmodel.serialization.VariableType; +import org.gmodel.serialization.VisibilityType; + +public final class InstanceMap { + + private final Map builtIntances; + + private final Map innerShellInstances; + + private final MultiValueMap instancesToBuild; + + private final MultiValueMap edgesToBuild; + + private final MultiValueMap semanticRoleEdgesToBuild; + + private final MultiValueMap superReferencesToBuild; + + private final MultiValueMap valuesToBuild; + + private final MultiValueMap variablesToBuild; + + private final MultiValueMap visibilitiesToBuild; + + private final List semanticErrors; + + private static class InstanceMapHolder { + public static final InstanceMap INSTANCE = new InstanceMap(); + } + + public static InstanceMap getInstance() { + return InstanceMapHolder.INSTANCE; + } + + private InstanceMap() { + builtIntances = new HashMap(); + innerShellInstances = new HashMap(); + InstanceBuilder.addInnershellInstancesInMemory(innerShellInstances); + instancesToBuild = MultiValueMap.decorate(new HashMap>()); + visibilitiesToBuild = MultiValueMap.decorate(new HashMap>()); + valuesToBuild = MultiValueMap.decorate(new HashMap>()); + variablesToBuild = MultiValueMap.decorate(new HashMap>()); + edgesToBuild = MultiValueMap.decorate(new HashMap>()); + semanticRoleEdgesToBuild = MultiValueMap.decorate(new HashMap>()); + superReferencesToBuild = MultiValueMap.decorate(new HashMap>()); + semanticErrors = new ArrayList(); + } + + protected void addToBeBuiltEdges(final EdgeType edge) { + if (!isBuiltInstance(edge.getMetaElement())) { + addToEdgesToBuild(edge.getMetaElement(), edge); + } + if (!isBuiltInstance(edge.getEdgeEnd().get(0).getInstanceId())) { + addToEdgesToBuild(edge.getEdgeEnd().get(0).getInstanceId(), edge); + } + if (!isBuiltInstance(edge.getEdgeEnd().get(1).getInstanceId())) { + addToEdgesToBuild(edge.getEdgeEnd().get(1).getInstanceId(), edge); + } + } + + protected void addToBeBuiltSemanticRoleEdges(final EdgeType edge) { + if (!isBuiltInstance(edge.getEdgeEnd().get(0).getInstanceId())) { + addToSemanticRoleEdgesToBuild(edge.getEdgeEnd().get(0) + .getInstanceId(), edge); + } + if (!isBuiltInstance(edge.getEdgeEnd().get(1).getInstanceId())) { + addToSemanticRoleEdgesToBuild(edge.getEdgeEnd().get(1) + .getInstanceId(), edge); + } + } + + private void addToSemanticRoleEdgesToBuild(final String instanceId, + final EdgeType edge) { + semanticRoleEdgesToBuild.put(instanceId, edge); + } + + protected void addToBeBuiltInstances(final Instance instance) { + if (!isBuiltInstance(instance.getMetaElement())) { + putToInstancesToBuild(instance.getMetaElement(), instance); + } + if (!isBuiltInstance(instance.getArtifact())) { + putToInstancesToBuild(instance.getArtifact(), instance); + } + } + + protected void addToBeBuiltSuperReferences( + final SuperSetReferenceType superReference) { + if (!isBuiltInstance(superReference.getSubSetInstance())) { + addToReferencesToBuild(superReference.getSubSetInstance(), + superReference); + } + if (!isBuiltInstance(superReference.getSuperSetInstance())) { + addToReferencesToBuild(superReference.getSuperSetInstance(), + superReference); + } + } + + protected void addToBeBuiltValues(final String hostInstanceId, + final ValueType value) { + final String valElementId = value.getValuePair().getElement() + .getIdentifier(); + final String valMetaElementId = value.getValuePair().getMetaElement() + .getIdentifier(); + if (!isBuiltInstance(valElementId)) { + addToValuesToBuild(valElementId, hostInstanceId, value); + } + if (isBuiltInstance(valMetaElementId)) { + addToValuesToBuild(valMetaElementId, hostInstanceId, value); + } + } + + protected void addToBeBuiltVariables(final String hostInstanceId, + final VariableType variable) { + final String varElementId = variable.getVariablePair().getElement() + .getIdentifier(); + final String varMetaElementId = variable.getVariablePair() + .getMetaElement().getIdentifier(); + if (!isBuiltInstance(varElementId)) { + addToVariablesToBuild(varElementId, hostInstanceId, variable); + } + if (!isBuiltInstance(varMetaElementId)) { + addToVariablesToBuild(varMetaElementId, hostInstanceId, variable); + } + } + + protected void addToBeBuiltVisibilities(final VisibilityType visibility) { + if (!isBuiltInstance(visibility.getSourceInstance())) { + addToVisibilitiesToBuild(visibility.getSourceInstance(), visibility); + } + if (!isBuiltInstance(visibility.getTargetInstance())) { + addToVisibilitiesToBuild(visibility.getTargetInstance(), visibility); + } + } + + private void addToEdgesToBuild(final String missingSetId, + final EdgeType edge) { + edgesToBuild.put(missingSetId, edge); + } + + public void addToInstanceMap(final String id, final Set instance) { + System.err.println("@MAP: Added to the instance map " + + instance.identity().name() + " " + id); + if (builtIntances.containsKey(id)) { + builtIntances.remove(id); + } + + builtIntances.put(id, instance); + // see if there are instances that need the instance + if (visibilitiesToBuild.containsKey(id)) { + buildUnBuiltVisibilities(id); + } + + if (superReferencesToBuild.containsKey(id)) { + buildUnBuiltSuperReferences(id); + } + + if (instancesToBuild.containsKey(id)) { + buildUnBuiltInstances(id); + } + + if (edgesToBuild.containsKey(id)) { + buildUnBuiltEdges(id); + } + + if (semanticRoleEdgesToBuild.containsKey(id)) { + buildUnBuiltSemanticRoleEdges(id); + } + + if (variablesToBuild.containsKey(id)) { + buildUnBuiltVariables(id); + } + + if (valuesToBuild.containsKey(id)) { + buildUnBuiltValues(id); + } + } + + private void addToReferencesToBuild(final String missingInstanceId, + final SuperSetReferenceType superReference) { + superReferencesToBuild.put(missingInstanceId, superReference); + } + + private void addToValuesToBuild(final String missingInstanceId, + final String hostInstanceId, final ValueType value) { + valuesToBuild.put(missingInstanceId, new MapValue(value.getValuePair(), + hostInstanceId)); + } + + private void addToVariablesToBuild(final String missingInstanceId, + final String hostInstanceId, final VariableType variable) { + variablesToBuild.put(missingInstanceId, + new MapValue(variable.getVariablePair(), hostInstanceId)); + } + + private void addToVisibilitiesToBuild(final String missingInstanceId, + final VisibilityType visibility) { + visibilitiesToBuild.put(missingInstanceId, visibility); + } + + private boolean buildEdge(final EdgeType edge, final boolean isRetry) { + if (isBuiltInstance(edge.getSemanticIdentity() + .getUniqueRepresentationReference())) { + return true; + } else if (isBuiltInstance(edge.getMetaElement()) + && (isBuiltInstance(edge.getEdgeEnd().get(0).getInstanceId())) + && (isBuiltInstance(edge.getEdgeEnd().get(1).getInstanceId()))) { + final EdgeEnd ee1 = edge.getEdgeEnd().get(0); + final EdgeEnd ee2 = edge.getEdgeEnd().get(1); + final Set sourceInstance = getBuiltInstance(ee1.getInstanceId()); + final Set targetInstance = getBuiltInstance(ee2.getInstanceId()); + + if (edge.getMetaElement().equals( + semanticRole_to_equivalenceClass.identity() + .uniqueRepresentationReference().toString())) { + final Identity edgeId = Reconstitution.reconstituteIdentity(edge + .getSemanticIdentity().getName(), edge + .getSemanticIdentity().getPluralName(), + UUID.fromString(edge.getSemanticIdentity() + .getIdentifier()), UUID.fromString(edge + .getSemanticIdentity() + .getUniqueRepresentationReference())); + final Identity ee1Id = Reconstitution.reconstituteIdentity(ee1 + .getSemanticIdentity().getName(), ee1 + .getSemanticIdentity().getPluralName(), UUID + .fromString(ee1.getSemanticIdentity().getIdentifier()), + UUID.fromString(ee1.getSemanticIdentity() + .getIdentifier())); + final Identity ee2Id = Reconstitution.reconstituteIdentity(ee2 + .getSemanticIdentity().getName(), ee2 + .getSemanticIdentity().getPluralName(), UUID + .fromString(ee2.getSemanticIdentity().getIdentifier()), + UUID.fromString(ee2.getSemanticIdentity() + .getIdentifier())); + final Set ee1I = Reconstitution.getSetFromLocalMemory(ee1Id); + final Set ee2I = Reconstitution.getSetFromLocalMemory(ee1Id); + final Identity idRef = GmodelSemanticDomains.referencingSemanticRole.identity(); + final Set i = Reconstitution.getSetFromLocalMemory(idRef); + + final Set semanticRoleEdge = Reconstitution.reconstituteLink( + semanticRole_to_equivalenceClass.identity(), + edgeId, ee1Id, sourceInstance.identity(), + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE.identity(), + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE.identity(), + GmodelSemanticDomains.isNavigable_FALSE.identity(), + GmodelSemanticDomains.isContainer_FALSE.identity(), ee2Id, + targetInstance.identity(), + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE.identity(), + GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE.identity(), + GmodelSemanticDomains.isNavigable_FALSE.identity(), + GmodelSemanticDomains.isContainer_FALSE.identity()); + + if (InstanceBuilder.hasSemanticError(semanticRoleEdge, edgeId)) { + System.err.println("Semantic error"); + } + addToInstanceMap(semanticRoleEdge.identity() + .uniqueRepresentationReference().toString(), + semanticRoleEdge); + System.err.println(">> Created Semantic Role Edge " + + edge.getSemanticIdentity() + .getUniqueRepresentationReference()); + return true; + } else { + final Set newEdge = org.gmodel.api.serializerinterface.Reconstitution.reconstituteLink + (getBuiltInstance(edge.getMetaElement()).identity(), + InstanceBuilder.buildIdentity(edge.getSemanticIdentity()), + InstanceBuilder.buildIdentity(ee1 + .getSemanticIdentity()), + sourceInstance.identity(), InstanceBuilder + .createMinCardinality(ee1.getMinCardinality()).identity(), + InstanceBuilder.createMaxCardinality(ee1.getMaxCardinality()).identity(), + InstanceBuilder.createNavigability(ee1 + .isIsNavigable()).identity(), + InstanceBuilder.createContainer(ee1.isIsContainer()).identity(), + InstanceBuilder.buildIdentity(ee2.getSemanticIdentity()), + targetInstance.identity(), + InstanceBuilder.createMinCardinality(ee2.getMinCardinality()).identity(), + InstanceBuilder.createMaxCardinality(ee2.getMaxCardinality()).identity(), + InstanceBuilder.createNavigability(ee2.isIsNavigable()).identity(), + InstanceBuilder.createContainer(ee2.isIsContainer()).identity()); + + if (InstanceBuilder.hasSemanticError(newEdge, InstanceBuilder.buildIdentity(edge.getSemanticIdentity()))) { + return false; + } else { + addToInstanceMap(newEdge.identity() + .uniqueRepresentationReference().toString(), + newEdge); + return true; + } + } + } else { + return false; + } + } + + private boolean buildSuperReference(final SuperSetReferenceType sRef) { + if (isBuiltInstance(sRef.getId())) { + return true; + } else if (isBuiltInstance(sRef.getSubSetInstance()) + && isBuiltInstance(sRef.getSuperSetInstance())) { + final Identity si = Reconstitution.reconstituteIdentity(sRef + .getSemanticIdentity().getName(), sRef + .getSemanticIdentity().getPluralName(), UUID + .fromString(sRef.getSemanticIdentity().getIdentifier()), + UUID.fromString(sRef.getSemanticIdentity() + .getUniqueRepresentationReference())); + final Set set = Reconstitution.reconstituteLink( + G.coreGraphs.superSetReference.identity(), si, + getBuiltInstance(sRef.getSubSetInstance()).identity(), + getBuiltInstance(sRef.getSuperSetInstance()).identity()); + if (InstanceBuilder.hasSemanticError(set, si)) { + semanticErrors.add("SSR errors: "+si.name()+","+set.identity().name()); + } + addToInstanceMap(sRef.getId(), set); + return true; + } else { + return false; + } + } + + private void buildUnBuiltAttributes(final String missingInstanceId, + final Map> toBuildMap, final T attributeClass) { + final List lst = toBuildMap.get(missingInstanceId); + final Iterator itr = lst.iterator(); + while (itr.hasNext()) { + final MapValue value = itr.next(); + final String elementId = value.getOrderedPair().getElement() + .getIdentifier(); + final String metaElementId = value.getOrderedPair() + .getMetaElement().getIdentifier(); + if (isBuiltInstance(elementId) && isBuiltInstance(metaElementId)) { + final Set hostInstance = getBuiltInstance(value + .getHostInstanceId()); + if (attributeClass.equals(ValueType.class)) { + hostInstance.addToValues(getBuiltInstance(elementId)); + } else { + hostInstance.addToVariables(getBuiltInstance(elementId)); + } + } + } + if (toBuildMap.get(missingInstanceId).isEmpty()) { + toBuildMap.remove(missingInstanceId); + } + } + + private void buildUnBuiltEdges(final String id) { + final List edgesList = (List) edgesToBuild.getCollection(id); + final List toRemove = new ArrayList(); + + for (final EdgeType edge : edgesList) { + if (buildEdge(edge, false)) { + toRemove.add(edge); + } + } + + for (final EdgeType edgeToRemove : toRemove) { + edgesToBuild.remove(id, edgeToRemove); + } + } + + private void buildUnBuiltSemanticRoleEdges(final String id) { + final List edgesList = (List) semanticRoleEdgesToBuild.getCollection(id); + final List toRemove = new ArrayList(); + + for (final EdgeType edge : edgesList) { + if (buildEdge(edge, false)) { + toRemove.add(edge); + } + } + + for (final EdgeType edgeToRemove : toRemove) { + semanticRoleEdgesToBuild.remove(id, edgeToRemove); + } + } + + private boolean buildUnBuiltInstance(final Instance instance) { + if (!isBuiltInstance(instance.getSemanticIdentity()) + && existMetaInstances(instance)) { + final Set metaElement = getBuiltInstance(instance.getMetaElement()); + final Set artifact = getBuiltInstance(instance.getArtifact()); + final String name = instance.getSemanticIdentity().getName(); + final String pluralName = instance.getSemanticIdentity() + .getPluralName(); + final String id = instance.getSemanticIdentity().getIdentifier(); + final String urr = instance.getSemanticIdentity() + .getUniqueRepresentationReference(); + final Identity reconstitutedId = Reconstitution + .reconstituteIdentity(name, pluralName, + UUID.fromString(id), UUID.fromString(urr)); + if (metaElement != null && artifact != null) { + final Set builtInstance = InstanceBuilder.build(instance, + metaElement, artifact, reconstitutedId); + try { + if (builtInstance + .identity() + .uniqueRepresentationReference() + .toString() + .equals(instance.getSemanticIdentity() + .getUniqueRepresentationReference())) { + addToInstanceMap(instance.getSemanticIdentity() + .getUniqueRepresentationReference(), + builtInstance); + return true; + } else { + semanticErrors.add("Vertex Error: "+instance.getSemanticIdentity().getName() + + ","+ builtInstance.identity().name()); + if (builtInstance.identity().name().trim().startsWith( + "addConcrete(metaproperty, semanticIdentity)")) { + final Set mElement = getBuiltInstance(instance + .getMetaElement()); + Instantiation.link(G.coreGraphs.superSetReference, mElement, + G.coreGraphs.vertex); + buildUnBuiltInstance(instance); + } + return false; + } + } catch (final Exception ex) { + return false; + } + } + } + return false; + } + + public List getSemanticErrors() { + return semanticErrors; + } + + @SuppressWarnings("unchecked") + private void buildUnBuiltInstances(final String id) { + if (instancesToBuild.containsKey(id)) { + final List instancesToRemove = new ArrayList(); + final List instances = (List) instancesToBuild.getCollection(id); + for (final Instance i : instances) { + if (buildUnBuiltInstance(i)) { + instancesToRemove.add(i); + } + } + + for (final Instance instanceToRemove : instancesToRemove) { + instancesToBuild.remove(id, instanceToRemove); + } + } + } + + @SuppressWarnings("unchecked") + private void buildUnBuiltSuperReferences(final String id) { + final List superRefList = (List) superReferencesToBuild + .getCollection(id); + final List superRefsToRemove = new ArrayList(); + for (final SuperSetReferenceType sRef : superRefList) { + if (buildSuperReference(sRef)) { + superRefsToRemove.add(sRef); + } + } + + for (final SuperSetReferenceType sRefToRemove : superRefsToRemove) { + superReferencesToBuild.remove(id, sRefToRemove); + } + } + + @SuppressWarnings("unchecked") + private void buildUnBuiltValues(final String id) { + buildUnBuiltAttributes(id, valuesToBuild, ValueType.class); + } + + @SuppressWarnings("unchecked") + private void buildUnBuiltVariables(final String id) { + buildUnBuiltAttributes(id, variablesToBuild, VariableType.class); + } + + @SuppressWarnings("unchecked") + private void buildUnBuiltVisibilities(final String id) { + if (visibilitiesToBuild.containsKey(id)) { + final List visibilityList = (List) visibilitiesToBuild + .getCollection(id); + final List visibilitiesToRemove = new ArrayList(); + for (final VisibilityType visibility : visibilityList) { + if (buildVisibility(visibility, false)) { + visibilitiesToRemove.add(visibility); + } + } + + for (final VisibilityType v : visibilitiesToRemove) { + visibilitiesToBuild.remove(id, v); + } + } + } + + private boolean buildVisibility(final VisibilityType visibility, + final boolean isRetry) { + if (isBuiltInstance(visibility.getId())) { + return true; + } else if (isBuiltInstance(visibility.getSourceInstance()) + && isBuiltInstance(visibility.getTargetInstance())) { + final Identity si = Reconstitution.reconstituteIdentity(visibility + .getSemanticIdentity().getName(), visibility + .getSemanticIdentity().getPluralName(), UUID + .fromString(visibility.getSemanticIdentity() + .getIdentifier()), UUID.fromString(visibility + .getSemanticIdentity().getUniqueRepresentationReference())); + final Set set = Reconstitution + .reconstituteLink(G.coreGraphs.visibility.identity(), si, + getBuiltInstance(visibility.getSourceInstance()) + .identity(), + getBuiltInstance(visibility.getTargetInstance()) + .identity()); + if (InstanceBuilder.hasSemanticError(set, si)) { + semanticErrors.add("Visibility Error: "+visibility.getSemanticIdentity().getName()+","+set.identity().name()); + } + addToInstanceMap(visibility.getId(), set); + return true; + } else { + return false; + } + } + + private boolean compareId(final T instance, final String id) { + if (instance instanceof SuperSetReferenceType) { + return ((SuperSetReferenceType) instance).getId().equals(id); + } else if (instance instanceof VisibilityType) { + return ((VisibilityType) instance).getId().equals(id); + } else if (instance instanceof EdgeType) { + return ((EdgeType) instance).getSemanticIdentity() + .getUniqueRepresentationReference().equals(id); + } else { + return false; + } + } + + protected boolean existEdgeMetaInstances(final EdgeType edge) { + final EdgeEnd firstEdge = edge.getEdgeEnd().get(0); + final EdgeEnd secondEdge = edge.getEdgeEnd().get(1); + return (isBuiltInstance(edge.getMetaElement()) + && isBuiltInstance(firstEdge.getInstanceId()) && isBuiltInstance(secondEdge + .getInstanceId())); + } + + protected boolean existMetaInstances(final InstanceType instance) { + final String metaInstance = instance.getMetaElement(); + if (fetchInstanceFromMemory(metaInstance, metaInstance) != null) { + return true; + } else { + return false; + } + } + + protected Set getBuiltInstance(final String id) { + return fetchInstanceFromMemory(id, id); + } + + public Set fetchInstanceFromMemory(final String uuid, final String urr) { + final Identity identity = Reconstitution.reconstituteIdentity("", "", + UUID.fromString(uuid), UUID.fromString(urr)); + final Set set = Reconstitution.getSetFromLocalMemory(identity); + if (!set.identity().name() + .equals(GmodelSemanticDomains.semanticErr_ThisSetIsNotAvailableInMemory.identity().name())) { + return set; + } else { + // try in-memory map for non-Root instances + if (innerShellInstances.containsKey(urr)) { + return innerShellInstances.get(urr); + } else { + return null; + } + } + } + + public boolean isBuiltInstance(final SemanticIdType semanticIdentity) { + if (fetchInstanceFromMemory(semanticIdentity.getIdentifier(), + semanticIdentity.getUniqueRepresentationReference()) != null) { + return true; + } else { + return false; + } + } + + public boolean isBuiltInstance(final String urr) { + if (fetchInstanceFromMemory(urr, urr) != null) { + return true; + } else { + return false; + } + } + + private void putToInstancesToBuild(final String missingSetId, + final Instance instance) { + if (!instancesToBuild.containsValue(missingSetId, instance)) { + instancesToBuild.put(missingSetId, instance); + } + } + + public void removeFromBuiltInstances(final String uuid) { + if (isBuiltInstance(uuid)) { + builtIntances.remove(uuid); + } + } + + private void removeInstancesFromToBeBuiltList( + final Map> toBeBuiltMap, + final List idsToRemove) { + for (final String id : idsToRemove) { + final List toRemoveList = new ArrayList(); + if (toBeBuiltMap.containsKey(id)) { + final List todoList = toBeBuiltMap.get(id); + for (final T i : todoList) { + if (compareId(i, id)) { + toRemoveList.add(i); + } + } + todoList.removeAll(toRemoveList); + } + } + } + + public void reset() { + builtIntances.clear(); // clear all instances and reinsert kernel + // instances + InstanceBuilder.addKernelInstances(builtIntances); + instancesToBuild.clear(); + edgesToBuild.clear(); + superReferencesToBuild.clear(); + valuesToBuild.clear(); + variablesToBuild.clear(); + visibilitiesToBuild.clear(); + } + + public boolean isInnershellInstance(final String urr) { + return innerShellInstances.containsKey(urr); + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/InstanceMapValue.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/InstanceMapValue.java new file mode 100644 index 0000000..3b5facd --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/InstanceMapValue.java @@ -0,0 +1,79 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +import org.gmodel.serialization.InstanceType; + +public final class InstanceMapValue { + + private InstanceType instance; + private String id; + private String artifact; + private String metaElement; + private InstanceBuildType buildType; + + protected InstanceType getInstance() { + return instance; + } + + protected InstanceBuildType getBuildType() { + return buildType; + } + + protected InstanceMapValue(InstanceType instance, InstanceBuildType buildType) { + this.instance = instance; + this.buildType = buildType; + this.id = instance.getId(); + this.artifact = instance.getArtifact(); + this.metaElement = instance.getMetaElement(); + } + + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((id == null) ? 0 : id.hashCode()); + return result; + } + + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + InstanceMapValue other = (InstanceMapValue) obj; + if (id == null) { + if (other.id != null) + return false; + } else if (!id.equals(other.id)) + return false; + return true; + } + + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/LocalTransportContainer.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/LocalTransportContainer.java new file mode 100644 index 0000000..b0f6ef9 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/LocalTransportContainer.java @@ -0,0 +1,95 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +import java.util.UUID; + + +public class LocalTransportContainer implements Container> { + + private LocalTransportContent content; + private final UUID uuid; + + public LocalTransportContainer(final UUID uuid) { + this.uuid = uuid; + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final LocalTransportContainer other = (LocalTransportContainer) obj; + if (uuid == null) { + if (other.uuid != null) { + return false; + } + } else if (!uuid.equals(other.uuid)) { + return false; + } + return true; + } + + public UUID getContentUUID() { + return uuid; + } + + //public String getTransmissionTimeStamp() { + // return Root.transmissionTimestamp.identity().payload(); + //} + + //protected Set getTransportationContainer() { + // return Root.transportcontainer; + //} + + public LocalTransportContent getTransportationContent() { + return content; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((uuid == null) ? 0 : uuid.hashCode()); + return result; + } + + //public void setTransmissionTimeStamp() { + // Root.transmissionTimestamp.identity().setPayload(FileIndexer.getCurrentTimeStamp()); + //} + + public void setTransportationContent(final LocalTransportContent content) { + this.content = content; + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/LocalTransportContent.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/LocalTransportContent.java new file mode 100644 index 0000000..3d181ba --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/LocalTransportContent.java @@ -0,0 +1,50 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +public class LocalTransportContent implements TransportContent { + + private String content; + private T localReferenceObject; + + public String getContent() { + return content; + } + + public void setContent(final String content) { + this.content = content; + } + + public T getLocalReference() { + return localReferenceObject; + } + + public void setLocalReference(final T localReference) { + this.localReferenceObject = localReference; + } + +} \ No newline at end of file diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/MapValue.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/MapValue.java new file mode 100644 index 0000000..d0dcf19 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/MapValue.java @@ -0,0 +1,76 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +import org.gmodel.serialization.OrderedPair; + +public class MapValue { + + final private OrderedPair orderedPair; + final private String hostInstanceId; + + public OrderedPair getOrderedPair() { + return orderedPair; + } + + public String getHostInstanceId() { + return hostInstanceId; + } + + public MapValue(final OrderedPair orderedPair, final String hostInstanceId) { + super(); + this.orderedPair = orderedPair; + this.hostInstanceId = hostInstanceId; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + + ((orderedPair == null) ? 0 : orderedPair.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + MapValue other = (MapValue) obj; + if (orderedPair == null) { + if (other.orderedPair != null) + return false; + } else if (!orderedPair.getElement().equals(other.orderedPair.getElement())) + return false; + return true; + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/ProtocolType.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/ProtocolType.java new file mode 100644 index 0000000..31cbc84 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/ProtocolType.java @@ -0,0 +1,42 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: SMTL 1.0 + * + * The contents of this file are subject to the Sofismo Model Technology License Version + * 1.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.sofismo.ch/SMTL/ + * + * Software distributed under the License is distributed on an "AS IS" basis. + * See the License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is Gmodel Semantic Extensions Edition. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +public enum ProtocolType { + + REPOSITORY, REPOSITORY_CLIENT, REPOSITORY_ACCESS; + + private String className; + + private ProtocolType() { + className = name(); + } + + public String getProtocolName() { + return className; + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/SemanticIdContent.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/SemanticIdContent.java new file mode 100644 index 0000000..c29fb5f --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/SemanticIdContent.java @@ -0,0 +1,76 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +import java.util.List; + +import org.gmodel.serialization.SemanticIdentityIndex; + +public class SemanticIdContent { + + private List semanticIds; + + public List getSemanticIds() { + return semanticIds; + } + + public void setSemanticIds(final List semanticIds) { + this.semanticIds = semanticIds; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + + ((semanticIds == null) ? 0 : semanticIds.hashCode()); + return result; + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final SemanticIdContent other = (SemanticIdContent) obj; + if (semanticIds == null) { + if (other.semanticIds != null) { + return false; + } + } else if (!semanticIds.equals(other.semanticIds)) { + return false; + } + return true; + } + +} \ No newline at end of file diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/SerializationContent.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/SerializationContent.java new file mode 100644 index 0000000..d0f80a8 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/SerializationContent.java @@ -0,0 +1,127 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +import java.util.List; + +import org.gmodel.serialization.Gmodel; +import org.gmodel.serialization.SemanticIdentityIndex; + +public class SerializationContent extends SemanticIdContent { + + private String content; + private String contentChecksum; + private final SemanticIdContent data = new SemanticIdContent(); + private final Gmodel model; + private final String id; + + public SerializationContent(final String id, final String content, final Gmodel model, final List semanticIds) { + this.id = id; + this.content = content; + this.model = model; + this.data.setSemanticIds(semanticIds); + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) { + return true; + } + if (!super.equals(obj)) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final SerializationContent other = (SerializationContent) obj; + if (content == null) { + if (other.content != null) { + return false; + } + } else if (!content.equals(other.content)) { + return false; + } + if (id == null) { + if (other.id != null) { + return false; + } + } else if (!id.equals(other.id)) { + return false; + } + return true; + } + + public String getContent() { + return content; + } + + public String getContentChecksum() { + return contentChecksum; + } + + public String getId() { + return id; + } + + public Gmodel getModel() { + return model; + } + + @Override + public List getSemanticIds() { + return data.getSemanticIds(); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = super.hashCode(); + result = prime * result + ((content == null) ? 0 : content.hashCode()); + result = prime * result + ((id == null) ? 0 : id.hashCode()); + return result; + } + + public void setContent(final String content) { + this.content = content; + } + + public void setContentChecksum(final String contentChecksum) { + this.contentChecksum = contentChecksum; + } + + @Override + public void setSemanticIds(final List semanticIds) { + this.data.setSemanticIds(semanticIds); + } + + @Override + public String toString() { + return "SerializationContent [semanticIds=" + data.getSemanticIds() + + "]"; + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/SerializationMapper.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/SerializationMapper.java new file mode 100644 index 0000000..a683427 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/SerializationMapper.java @@ -0,0 +1,433 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +import java.util.ArrayList; +import java.util.List; + +import org.gmodel.G; +import org.gmodel.Identity; +import org.gmodel.Set; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models.Root; +import org.gmodel.api.models.SemanticDomain; +import org.gmodel.serialization.EdgeType; +import org.gmodel.serialization.Gmodel; +import org.gmodel.serialization.InstanceType; +import org.gmodel.serialization.InstantiationSemantic; +import org.gmodel.serialization.LinkType; +import org.gmodel.serialization.ObjectFactory; +import org.gmodel.serialization.SuperSetReferenceType; +import org.gmodel.serialization.ValueType; +import org.gmodel.serialization.VariableType; +import org.gmodel.serialization.VisibilityType; + +public final class SerializationMapper { + + private final ObjectFactory objectFactory; + // private static final String ANON_NAME = new IdentityFactory().createAnonymousIdentity().name(); + private static final String ANON_NAME = GmodelSemanticDomains.anonymous.identity().name(); + + protected SerializationMapper() { + objectFactory = InstanceBuilder.getObjectFactory(); + } + + private void addInstanceToInstanceSet( + final Gmodel.Instance serializedRootInstance, final Set set) { + final InstanceType serializedVertexInstance = objectFactory.createInstanceType(); + mapVertexToInstanceType(set, serializedVertexInstance, false); + serializedRootInstance.getInstance().add(serializedVertexInstance); + } + + private String getEdgeMetaElement(final Set edge) { + return edge.category().identity().uniqueRepresentationReference().toString(); + } + + private InstantiationSemantic getInstantiationSemantic(final Set instance) { + InstantiationSemantic semantic = null; + if (isRootAttached(instance)) { + semantic = InstantiationSemantic.CONCRETE_VERTEX; //either semantic domain or models + } else { + if (isConcrete(instance)) { + if (isSemanticDomainType(instance)) { + semantic = getSemanticDomainType(instance); + } else if (isTopRepositorySet(instance)) { + semantic = InstantiationSemantic.INSTANTIATED_CONCRETE_ARTIFACT; + } else { + semantic = InstantiationSemantic.CONCRETE_VERTEX; + } + } else { + if (isSemanticDomainType(instance)) { + semantic = getSemanticDomainType(instance); + } else if (isTopRepositorySet(instance)) { + semantic = InstantiationSemantic.ABSTRACT_VERTEX; + } else { + semantic = InstantiationSemantic.ABSTRACT_VERTEX; + } + } + + } + return semantic; + } + + private InstantiationSemantic getSemanticDomainType(final Set instance) { + final boolean isAnon = instance.identity().name().equals(ANON_NAME) ? true: false; + final Set metaSet = instance.category(); + InstantiationSemantic type = null; + if (instance.isEqualToRepresentation(GmodelSemanticDomains.infiniteSets) || + instance.isEqualToRepresentation(GmodelSemanticDomains.finiteSets)) { + type = InstantiationSemantic.INSTANTIATE_SEMANTIC_DOMAIN; + } else if (metaSet.isEqualToRepresentation(SemanticDomain.disjunctSemanticIdentitySet)) { + if (isAnon) { + type = InstantiationSemantic.ANON_DISJUNCT_SEMANTIC_IDENTITY_SET_ADDITION; + } else { + type = InstantiationSemantic.DISJUNCT_SEMANTIC_IDENTITY_SET_ADDITION; + } + } else if (metaSet.isEqualToRepresentation(SemanticDomain.semanticRole)) { + if (isAnon) { + type = InstantiationSemantic.ANON_SEMANTIC_ROLE_ADDITION; + } else { + type = InstantiationSemantic.SEMANTIC_ROLE_ADDITION; + } + } else { + type = InstantiationSemantic.SEMANTIC_DOMAIN_ADDITION; + } + return type; + } + + /* + * Given an identity, return a string that represents the unique representation reference + * @param id Identity + * @return String unique representation reference string + */ + private String getURR(final Identity id) { + return id.uniqueRepresentationReference().toString(); + } + + private boolean isConcrete(final Set vertex) { + return vertex.value(GmodelSemanticDomains.isAbstract) == (GmodelSemanticDomains.isAbstract_FALSE); + } + + private boolean isRootAttached(final Set instance) { + return instance.container().isEqualTo(Root.root); + } + + private boolean isSemanticDomainType(final Set instance) { + final Set metaSet = instance.category(); + boolean isSemanticDomainSet = false; + if (metaSet.isEqualToRepresentation(SemanticDomain.disjunctSemanticIdentitySet)) { + isSemanticDomainSet = true; + } else if (metaSet.isEqualToRepresentation(SemanticDomain.semanticRole)) { + isSemanticDomainSet = true; + } else if (metaSet.isEqualToRepresentation(SemanticDomain.semanticdomain)) { + isSemanticDomainSet = true; + } + return isSemanticDomainSet; + } + + private boolean isTopRepositorySet(final Set instance) { + return + instance.container().isEqualTo(Root.semanticdomains) || + instance.container().isEqualTo(Root.models); + } + + /** + * Map an Gmodel Edge to an EdgeType + * @mappedInstance InstanceType + * @param edge Gmodel Edge + * */ + private void mapEdge(final InstanceType mappedInstance, final Set edge) { + LinkType mappedLink; + if (mappedInstance.getLink() != null) { + mappedLink = mappedInstance.getLink(); + } else { + mappedLink = objectFactory.createLinkType(); + mappedInstance.setLink(mappedLink); + } + final EdgeType mappedEdge = objectFactory.createEdgeType(); + mappedLink.getVisibilityAndEdgeAndEdgeTrace().add(mappedEdge); + mapEdgeToEdgeType(edge, mappedEdge); + } + + /** + * Map an Gmodel Edge to an EdgeType + * @param edge Gmodel Edge + * @param mappedEdge EdgeType + */ + private void mapEdgeToEdgeType (final Set edge, final EdgeType mappedEdge) { + final Set metaEdge = edge.category(); + //final Set fromVertex = edge.connectedInstances().get(0); // first edgeend + final Set fromVertex = edge.from(); // first edgeend + //final Set toVertex = edge.connectedInstances().get(1); // second edgeend + final Set toVertex = edge.to(); // second edgeend + + int index = 0; + for (final Set e : edge.edgeEnds()) { + final Set ee = e; + final org.gmodel.serialization.EdgeType.EdgeEnd mappedEE = objectFactory.createEdgeTypeEdgeEnd(); + if (index == 0) { + mappedEE.setInstanceId(getURR(fromVertex.identity())); + } else { + mappedEE.setInstanceId(getURR(toVertex.identity())); + } + final Set minValue = ee.value(GmodelSemanticDomains.minCardinality); + final Set maxValue = ee.value(GmodelSemanticDomains.maxCardinality); + final String iMin = minValue.identity().name(); + final String iMax = maxValue.identity().name(); + mappedEE.setIsContainer(ee.value(GmodelSemanticDomains.isContainer).equals( + GmodelSemanticDomains.isContainer_TRUE)); + mappedEE.setIsNavigable(ee.value(GmodelSemanticDomains.isNavigable).equals( + GmodelSemanticDomains.isNavigable_TRUE)); + mappedEE.setMinCardinality(iMin); + mappedEE.setMaxCardinality(iMax); + if (metaEdge != G.coreGraphs.edge) { + if (index == 0) { + mappedEE.setMetaElement(getURR( metaEdge.edgeEnds().extractFirst().identity())); + } else { + mappedEE.setMetaElement(getURR( metaEdge.edgeEnds().extractSecond().identity())); + } + } else { + mappedEE.setMetaElement(getURR(G.coreGraphs.edgeEnd.identity())); + } + mappedEE.setSemanticIdentity(InstanceBuilder.mapSemanticIdentity(ee.identity())); + mappedEdge.getEdgeEnd().add(mappedEE); + index++; + } + mappedEdge.setSemanticIdentity(InstanceBuilder.mapSemanticIdentity(edge.identity())); + mappedEdge.setMetaElement(getEdgeMetaElement(edge)); + } + + /** + * Walk the given Session from bottom to top and build a corresponding + * hierarchy with the serialization classes + * + * @param rootVertex + * @return List + */ + public List mapRoot(final Set rootVertex) { + final List gmodels = new ArrayList(); + + serializeRootInstance(gmodels, Root.models); + + for ( final Set set: rootVertex.filterInstances()) { + if (InstanceBuilder.isTopSemanticDomainSet(set)) { + //process semantic domain instances + for (final Set innerSet : set.filterInstances()) { + if (InstanceBuilder.IsSemanticDomainTopInstances(innerSet)) { + serializeSemanticInstance(gmodels, innerSet); + } + } + } + } + return gmodels; + } + + /** + * The given vertex is serialized + * @param vertex + * @return + */ + public GmodelContent mapInstance(final Set vertex, final boolean isKernelSerialization) { + final List gmodels = new ArrayList(); + serializeInstance(gmodels, vertex, isKernelSerialization); + if (!gmodels.isEmpty()) { + return gmodels.get(0); + } else { + throw new IllegalStateException("No serialization is done"); + } + } + + private void mapSuperSetReference(final InstanceType mappedInstance, final Set superSetReference) { + LinkType mappedLink; + if (mappedInstance.getLink() != null) { + mappedLink = mappedInstance.getLink(); + } else { + mappedLink = objectFactory.createLinkType(); + mappedInstance.setLink(mappedLink); + } + final SuperSetReferenceType mappedSuperRef = objectFactory.createSuperSetReferenceType(); + mappedSuperRef.setSuperSetInstance(getURR((superSetReference).to().identity())); + mappedSuperRef.setSubSetInstance(getURR((superSetReference).from().identity())); + mappedSuperRef.setId(getURR(superSetReference.identity())); + mappedSuperRef.setSemanticIdentity(InstanceBuilder.mapSemanticIdentity(superSetReference.identity())); + mappedLink.getVisibilityAndEdgeAndEdgeTrace().add(mappedSuperRef); + } + + private void mapValues(final Set vertex, final InstanceType mappedSubInstance) { + for (final Set value : vertex.values()) { + final Set valuePair = value; + final ValueType mappedValue = objectFactory.createValueType(); + final org.gmodel.serialization.OrderedPair orderedPair = objectFactory.createOrderedPair(); + orderedPair.setElement(InstanceBuilder.mapSemanticIdentity(valuePair.identity())); + orderedPair.setMetaElement(InstanceBuilder.mapSemanticIdentity(valuePair.category().identity())); + mappedValue.setValuePair(orderedPair); + if (mappedSubInstance.getValues() == null) { + mappedSubInstance.setValues(objectFactory.createInstanceTypeValues()); + } + mappedSubInstance.getValues().getValue().add(mappedValue); + } + } + + private void mapVariables(final Set vertex, + final InstanceType mappedSubInstance) { + for (final Set var : vertex.variables()) { + final Set varVertex = var; + final VariableType varType = objectFactory.createVariableType(); + final org.gmodel.serialization.OrderedPair varPair = objectFactory.createOrderedPair(); + varPair.setElement(InstanceBuilder.mapSemanticIdentity(varVertex.identity())); + varPair.setMetaElement(InstanceBuilder.mapSemanticIdentity(varVertex.category().identity())); + varType.setVariablePair(varPair); + if (mappedSubInstance.getVariables() == null) { + mappedSubInstance.setVariables(objectFactory.createInstanceTypeVariables()); + } + mappedSubInstance.getVariables().getVariable().add(varType); + } + } + + private void mapVertexToGmodelInstance(final InstanceType instance, + final Gmodel.Instance mappedInstance, + final boolean isSerializedInstance) { + mappedInstance.setId(instance.getId()); + mappedInstance.setArtifact(instance.getArtifact()); + mappedInstance.setMetaElement(instance.getMetaElement()); + mappedInstance.setIsSerializationArgument(isSerializedInstance); + mappedInstance.setIsAbstract(instance.isIsAbstract()); + mappedInstance.setType(instance.getType()); + mappedInstance.setSemanticIdentity(InstanceBuilder.mapSemanticIdentity(instance + .getSemanticIdentity())); + } + + /** + * Map a given Vertex to an IntanceType + * @param instance Vertex to be mapped + * @param mappedInstance Target IntanceType + * @param isSerializedInstance Is this Vertex instance the serialization argument? + */ + private void mapVertexToInstanceType(final Set instance, + final InstanceType mappedInstance, + final boolean isSerializedInstance) { + mappedInstance.setId(getURR(instance.identity())); + mappedInstance.setArtifact(getURR(instance.container().identity())); + mappedInstance.setMetaElement(getURR(instance.category().identity())); + mappedInstance.setIsSerializationArgument(isSerializedInstance); + mappedInstance.setIsAbstract(!instance.value(GmodelSemanticDomains.isAbstract) + .equals(GmodelSemanticDomains.isAbstract_FALSE)); + mappedInstance.setType(getInstantiationSemantic(instance)); + mappedInstance.setSemanticIdentity(InstanceBuilder.mapSemanticIdentity(instance + .identity())); + } + + /** + * Map a given Visibility instance to a VisibilityType and set it to the mapped Vertex instance + * @param mappedInstance Mapped Vertex instance + * @param visibility Visibility instance to be mapped + */ + private void mapVisibility(final InstanceType mappedInstance, + final Set visibility) { + LinkType mappedLink; + if (mappedInstance.getLink() != null) { + mappedLink = mappedInstance.getLink(); + } else { + mappedLink = objectFactory.createLinkType(); + mappedInstance.setLink(mappedLink); + } + final VisibilityType mappedVisible = objectFactory.createVisibilityType(); + mappedVisible.setSourceInstance(getURR((visibility).from().identity())); + mappedVisible.setTargetInstance(getURR((visibility).to().identity())); + mappedVisible.setId(getURR(visibility.identity())); + mappedVisible.setSemanticIdentity(InstanceBuilder.mapSemanticIdentity(visibility.identity())); + mappedLink.getVisibilityAndEdgeAndEdgeTrace().add(mappedVisible); + } + + private void serializeInstance(final List gmodels, final Set instance, final boolean isKernelSerialization, final boolean isSemanticInstance, final boolean isRecursive) { + final Gmodel serializedModel = objectFactory.createGmodel(); + final InstanceType serializedInstance = objectFactory.createInstanceType(); + final Gmodel.Instance serializedRootInstance = objectFactory.createGmodelInstance(); + mapVertexToInstanceType(instance, serializedInstance, true); + mapVertexToGmodelInstance(serializedInstance, serializedRootInstance, true); + serializedModel.getInstance().add(serializedRootInstance); + + mapValues(instance, serializedInstance); + mapVariables(instance, serializedInstance); + + for (final Set set : instance.filterInstances()) { + if (set.flavor().isEqualTo(G.coreGraphs.edge)) { + mapEdge(serializedRootInstance, set); + } else if (set.flavor().isEqualTo(G.coreGraphs.visibility)) { + mapVisibility(serializedRootInstance, set); + } else if (set.flavor().isEqualTo(G.coreGraphs.superSetReference)) { + mapSuperSetReference(serializedRootInstance, set); + } + } + + for (final Set set : instance.filterInstances()) { + //add instance reference + if (isKernelSerialization && set.flavor().isEqualTo(G.coreGraphs.vertex)) { + addInstanceToInstanceSet(serializedRootInstance, set); + } else { + if (isSemanticInstance && set.flavor().isEqualTo(G.coreGraphs.vertex)) { + addInstanceToInstanceSet(serializedRootInstance, set); + } else if(InstanceBuilder.IsSemanticDomainTopInstances(set)) { + addInstanceToInstanceSet(serializedRootInstance, set); + } else if (set.flavor().isEqualTo(G.coreGraphs.vertex)) { + addInstanceToInstanceSet(serializedRootInstance, set); + } + } + } + + gmodels.add(new GmodelContent(instance.identity().uniqueRepresentationReference().toString(), + serializedModel)); + if (isRecursive) { + for (final Set set : instance.filterInstances()) { + if (isSemanticInstance && set.flavor().isEqualTo(G.coreGraphs.vertex)) { + serializeInstance(gmodels, set, isKernelSerialization, isSemanticInstance, true); + } else if (set.flavor().isEqualTo(G.coreGraphs.vertex)){ //&& InstanceBuilder.isSerializableInstance(set)) { + serializeInstance(gmodels, set, isKernelSerialization, isSemanticInstance, true); + } + } + } + } + + private void serializeRootInstance(final List gmodels, final Set models) { + if (models.flavor().isEqualTo(G.coreGraphs.vertex)) { + serializeInstance(gmodels, models, false, false, true); + } + } + + private void serializeInstance(final List gmodels, final Set models, final boolean isKernelSerialization) { + if (models.flavor().isEqualTo(G.coreGraphs.vertex)) { + serializeInstance(gmodels, models, isKernelSerialization, false, false); + } + } + + private void serializeSemanticInstance(final List gmodels, final Set instance) { + if (instance.flavor().isEqualTo(G.coreGraphs.vertex)) { + serializeInstance(gmodels, instance, false, true, true); + } + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/SerializationMarshaller.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/SerializationMarshaller.java new file mode 100644 index 0000000..9a4835a --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/SerializationMarshaller.java @@ -0,0 +1,69 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +import java.util.HashMap; +import java.util.Map; + +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Marshaller; +import javax.xml.bind.Unmarshaller; + +public class SerializationMarshaller { + + private SerializationMarshaller() { + } + + private static class MarshallerHolder { + public static final Map MARSHALLER_MAP = new HashMap(); + public static final Map UN_MARSHALLER_MAP = new HashMap(); + } + + protected static Marshaller getMarshaller(final String packageName) throws JAXBException { + if (MarshallerHolder.MARSHALLER_MAP.containsKey(packageName)) { + return MarshallerHolder.MARSHALLER_MAP.get(packageName); + } else { + final Marshaller marshaller = JAXBContext.newInstance(packageName).createMarshaller(); + marshaller.setProperty(Marshaller.JAXB_ENCODING, Serializer.CONTENT_ENCODING); + marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); + MarshallerHolder.MARSHALLER_MAP.put(packageName, marshaller); + return marshaller; + } + } + + protected static Unmarshaller getUnmarshaller(final String packageName) throws JAXBException { + if (MarshallerHolder.UN_MARSHALLER_MAP.containsKey(packageName)) { + return MarshallerHolder.UN_MARSHALLER_MAP.get(packageName); + } else { + final JAXBContext jcx = JAXBContext.newInstance(packageName); + final Unmarshaller unMarsahller = jcx.createUnmarshaller(); + MarshallerHolder.UN_MARSHALLER_MAP.put(packageName, unMarsahller); + return unMarsahller; + } + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/SerializationType.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/SerializationType.java new file mode 100644 index 0000000..b92d804 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/SerializationType.java @@ -0,0 +1,46 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +public enum SerializationType { + + ARTIFACT_PERSISTENCE, + ARTIFACT_RETRIEVAL, CHANGESET_PERSISTENCE, CONTAINMENT_TREE, CONTAINMENT_TREE_UUIDS_RETRIEVAL, + DEPENDENT_INSTANCE_UUIDS,DEPENDENT_INSTANCES, IN_MEMORY_PERSISTENCE, OBJECT_POOL_PERSISTENCE, SEARCH_ARGUMENTS, + XML; + + private String typeName; + + private SerializationType() { + typeName = name(); + } + + public String getTypeName() { + return typeName; + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/SerializedContentIndexer.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/SerializedContentIndexer.java new file mode 100644 index 0000000..e9e1bc2 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/SerializedContentIndexer.java @@ -0,0 +1,82 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +import java.util.ArrayList; +import java.util.List; + +import org.gmodel.G; +import org.gmodel.api.models.Root; +import org.gmodel.serialization.Gmodel.Instance; +import org.gmodel.serialization.InstanceType; +import org.gmodel.serialization.SemanticIdentityIndex; + +public class SerializedContentIndexer { + + public static List indexContent(final Instance instance) { + final List indexList = new ArrayList(); + if (isRootInstance(instance.getSemanticIdentity().getUniqueRepresentationReference())) { + indexList.add(indexInstance(instance)); + } else { + createInstanceIndex(instance, indexList); + } + return indexList; + } + + private static void createInstanceIndex(final Instance instance, final List indexList) { + indexList.add(indexInstance((instance))); + for (final InstanceType subInstance: instance.getInstance()) { + indexSubInstances(subInstance, indexList); + } + } + + private static void indexSubInstances(final InstanceType instance, final List indexList) { + indexList.add(indexInstance(instance)); + for (final InstanceType subInstance: instance.getInstance()) { + indexSubInstances(subInstance, indexList); + } + } + + protected static SemanticIdentityIndex indexInstance(final InstanceType instance) { + final SemanticIdentityIndex index = new SemanticIdentityIndex(); + index.setIdentifier(instance.getSemanticIdentity().getUniqueRepresentationReference()); + index.setUniqueRepresentationReference(instance.getSemanticIdentity().getUniqueRepresentationReference()); + index.setIsAnonymous(instance.getSemanticIdentity().isIsAnonymous()); + index.setMetaElementId(instance.getMetaElement()); + index.setMetaElementTypeName(G.coreGraphs.vertex.identity().name()); + index.setName(instance.getSemanticIdentity().getName()); + index.setPayload(instance.getSemanticIdentity().getPayload()); + index.setPluralName(instance.getSemanticIdentity().getPluralName()); + index.setTechnicalName(instance.getSemanticIdentity().getTechnicalName()); + return index; + } + + private static boolean isRootInstance(final String urr) { + return Root.root.identity().uniqueRepresentationReference().toString().equals(urr); + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/Serializer.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/Serializer.java new file mode 100644 index 0000000..1b60c7d --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/Serializer.java @@ -0,0 +1,181 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +import java.io.IOException; +import java.net.URI; +import java.util.List; +import java.util.Map; + +import javax.xml.bind.JAXBException; +import javax.xml.bind.Marshaller; + +import org.gmodel.Set; +import org.gmodel.serialization.Gmodel; +import org.gmodel.serialization.container.ArtefactContainer; + +/** + * @author home + * + */ +public interface Serializer { + + public static final String FILE_EXTENSION = ".xml"; + + public static final String CONTENT_ENCODING = "ISO-8859-1"; + + + /** + * GZIPping a given String (utf-8) + * @param String content + * @return Compressed String + */ + byte[] compressSerializationContent(final String content) throws IOException; + + /** + * GZIPping a given String (utf-8) in URL safe Base64 + * @param String content + * @return Compressed String + */ + String compressSerializationContentBase64(final String content) throws IOException; + + /** + * Given a class package name returns an appropriate serialization marshaller + * @param package name + * @return Marshaller + * @throws JAXBException + */ + Marshaller createMarshaller(final String classPackageName) throws JAXBException; + + /** + * Decode the given base64 string to a byte array + * @param content + * @return + */ + byte[] decodeBase64StringToByteArray(final String content); + + /** + * Decompress a GZIPPed String (utf-8) + * @param byte[] input byte array + * @return Decompressed String + */ + String decompressSerializationContent(final byte[] compressedContent) throws IOException; + + /** + * Decompress a GZIPPed String in URL safe Base64 + * @param String compressedContent + * @return Decompressed String + */ + String decompressSerializationContentBase64(final String compressedContent) throws IOException; + + /** + * Deserialize the given artifacts + * @param artifacts + */ + void deserializeInstances(final Map artifacts); + + /** + * Perform the initial full deserialization + * @param artifacts + * @throws IllegalAccessException + * @throws IllegalArgumentException + */ + void doInitialFullDeserialization(Map artifacts) throws IllegalArgumentException, IllegalAccessException; + + /** + * Encode the given byte array to a base64 string + * @param binaryContent + * @return + */ + String encodeByteArrayInBase64(byte[] binaryContent); + + /** + * Marshall a given object into a string + * @param + * @param model + * @return String + * @throws JAXBException + */ + String marshallModel(final T model) throws JAXBException; + + /** + * Serialize all instances in memory + * @return List + */ + List serializeAllInstancesInMemory(); + + /** + * Serialize the given container container + * @param container + * @return serialized content + */ + String serializeContainer(final ArtefactContainer container); + + /** + * Given vertex is serialized + * @param vertex + * @param isKernelSerialization + * @return serialized content + */ + SerializationContent serializeInstance(final Set vertex, final boolean isKernelSerialization); + + /** + * Serialize Kernel Root Vertex and to a list of strings + * @return List + */ + List serializeRoot(); + + + /** + * Serialize the current transport container content to a list of strings + * @return List + */ + //List serializeTransportContainerContent(); + + /** + * Deserialized the given input to a artefact container + * @param xmlString + * @return ArtefactContainer + */ + ArtefactContainer unmarshallContainer (String xmlString); + + /** + * Unmarshall a given XML String + * @param String XML string + * @return Gmodel + */ + Gmodel unmarshallModel (final String xmlString); + + /** + * Unmarshall a given XML file at the given uri + * @param uri Serialization destination + * @return Gmodel + */ + Gmodel unmarshallModel (final URI uri); + + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/SerializerFactory.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/SerializerFactory.java new file mode 100644 index 0000000..f4f889c --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/SerializerFactory.java @@ -0,0 +1,44 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +public class SerializerFactory { + + /** + * Return a Gmodle instance serializer which matches with the type + * @param type + * @return Serializer + */ + public static Serializer getGmodelInstanceSerializer(final SerializationType type) { + if (type.equals(SerializationType.XML)) { + return new FileSystemSerializer(); + } else { + throw new UnsupportedOperationException("Non file-system serializatio is not supported yet."); + } + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/SerializerHolder.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/SerializerHolder.java new file mode 100644 index 0000000..56a3e07 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/SerializerHolder.java @@ -0,0 +1,48 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +public class SerializerHolder { + + /** + * Return a Gmodle instance serializer which matches with the type + * @param type + * @return Serializer + */ + static class SerializerInstance { + public static final Serializer XML_SERIALIZER = new FileSystemSerializer(); + } + + public static Serializer getGmodelInstanceSerializer(final SerializationType type) { + if (type.equals(SerializationType.XML)) { + return SerializerInstance.XML_SERIALIZER; + } else { + throw new UnsupportedOperationException("Non file-system serializatio is not supported yet."); + } + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/TransportContent.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/TransportContent.java new file mode 100644 index 0000000..c5f8646 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/TransportContent.java @@ -0,0 +1,35 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +public interface TransportContent { + + String getContent(); + + void setContent(final String content); + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/Verifier.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/Verifier.java new file mode 100644 index 0000000..1eb0fe4 --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/Verifier.java @@ -0,0 +1,142 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.serialization.serializer; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.StringTokenizer; +import java.util.UUID; + +import org.gmodel.G; +import org.gmodel.Identity; +import org.gmodel.Set; +import org.gmodel.api.models.Root; +import org.gmodel.api.serializerinterface.Reconstitution; + +public class Verifier { + + private static final String SEPERATOR = "#######################################################################################"; + + public static void checkInstanceDumpFile(final String dumpFilePath, final String outputPath) { + BufferedReader in = null; + try { + in = new BufferedReader(new FileReader(dumpFilePath)); + final StringBuffer sBuff = new StringBuffer(); + String strLine; + while ((strLine = in.readLine()) != null) { + if (!strLine.startsWith("#")) { + final StringTokenizer tok = new StringTokenizer(strLine, ","); + if (tok.countTokens() == 3) { + final String urr = tok.nextToken().trim(); + final String name = tok.nextToken().trim(); + final String flavor = tok.nextToken().trim(); + final Identity id = Reconstitution.reconstituteIdentity(name, name, UUID.fromString(urr), UUID.fromString(urr)); + final Set set = Reconstitution.getSetFromLocalMemory(id); + if (set.identity().uniqueRepresentationReference().equals(UUID.fromString(urr))) { + sBuff.append("FOUND,"+urr+","+name+","+flavor+"\r\n"); + } + else { + sBuff.append("NOT FOUND,"+urr+","+name+","+flavor+"\r\n"); + } + } + } else { + sBuff.append(SEPERATOR+"\r\n"); + } + } + dumpContent(outputPath,sBuff.toString()); + } catch (final FileNotFoundException ex) { + ex.printStackTrace(); + } catch (final IOException ex) { + ex.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (final IOException ex) {} + } + } + } + + private static void dumpContent(final String path, final String content) { + FileWriter out = null; + try { + out = new FileWriter(new File(path)); + out.write(content); + out.close(); + } catch (final IllegalStateException e) { + e.printStackTrace(); + } catch (final IOException e) { + e.printStackTrace(); + } + } + + private static void getInstancesInMemory(final Set set, final List allInstancesInMemory) { + allInstancesInMemory.add(null); + allInstancesInMemory.add(set); + //process links + for (final Set i : set.filterInstances()) { + if (i.flavor().isEqualTo(G.coreGraphs.edge)) { + allInstancesInMemory.add(i); + } else if (i.flavor().isEqualTo(G.coreGraphs.visibility)) { + allInstancesInMemory.add(i); + } else if (i.flavor().isEqualTo(G.coreGraphs.superSetReference)) { + allInstancesInMemory.add(i); + } + } + allInstancesInMemory.add(null); + for (final Set i : set.filterInstances()) { + //if (i.flavor().isEqualTo(F_SemanticStateOfInMemoryModel.coreGraphs.vertex) && !i.identity().isEqualTo(Root.transportcontainer.identity())) { + if (i.flavor().isEqualTo(G.coreGraphs.vertex) ) { + + getInstancesInMemory(i, allInstancesInMemory); + } + } + } + + public static void printOutALlInstancesInMemory(final String path) { + final List allInstancesInMemory = new ArrayList(); + getInstancesInMemory(Root.models, allInstancesInMemory); + getInstancesInMemory(Root.semanticdomains, allInstancesInMemory); + + final StringBuffer sBuff = new StringBuffer(); + for (final Set i : allInstancesInMemory) { + if (i == null) { + sBuff.append(SEPERATOR+"\r\n"); + } else if (!i.identity().name().contains("this set is not available in memory")) { + sBuff.append(i.identity().uniqueRepresentationReference()+","+i+","+i.flavor()+"\r\n"); + } + } + dumpContent(path,sBuff.toString()); + } + +} diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/build.properties b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/build.properties new file mode 100644 index 0000000..ab6454d --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/build.properties @@ -0,0 +1,12 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + lib/dom4j-1.6.1.jar,\ + lib/slf4j-simple-1.6.1.jar,\ + lib/slf4j-api-1.6.1.jar,\ + lib/jetlang-0.2.1.jar,\ + lib/mysql-connector-java-5.1.15-bin.jar,\ + lib/commons-dbcp-1.3.jar,\ + lib/commons-pool-1.5.5.jar,\ + lib/commons-collections-3.2.1.jar diff --git a/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/datastructure/CircularQueue.java b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/datastructure/CircularQueue.java new file mode 100644 index 0000000..f9bc2dc --- /dev/null +++ b/src/trunk/org.gmodel.serialization/src/org/gmodel/serialization/serializer/datastructure/CircularQueue.java @@ -0,0 +1,234 @@ +/* Copyright 2004 BEA Systems, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.gmodel.serialization.serializer.datastructure; + +import java.util.AbstractCollection; +import java.util.Arrays; +import java.util.ConcurrentModificationException; +import java.util.Iterator; +import java.util.NoSuchElementException; + +public final class CircularQueue extends AbstractCollection { + + // This is the largest capacity allowed by this implementation + private static final int MAX_CAPACITY = 1 << 30; + private static final int DEFAULT_CAPACITY = 1 << 8; + + private int size = 0; + private int producerIndex = 0; + private int consumerIndex = 0; + + // capacity must be a power of 2 at all times + private int capacity; + private int maxCapacity; + + // we mask with capacity -1. This variable caches that values + private int bitmask; + + private Object[] q; + + public CircularQueue() { + this(DEFAULT_CAPACITY); + } + + // Construct a queue which has at least the specified capacity. If + // the value specified is a power of two then the queue will be + // exactly the specified size. Otherwise the queue will be the + // first power of two which is greater than the specified value. + public CircularQueue(final int c) { + this(c, MAX_CAPACITY); + } + + public CircularQueue(final int c, final int mc) { + if (c > mc) { + throw new IllegalArgumentException("Capacity greater than maximum"); + } + + if (mc > MAX_CAPACITY) { + throw new IllegalArgumentException("Maximum capacity greater than " + + "allowed"); + } + + for (capacity = 1; capacity < c; capacity <<= 1) { + ; + } + for (maxCapacity = 1; maxCapacity < mc; maxCapacity <<= 1) { + ; + } + + bitmask = capacity - 1; + q = new Object[capacity]; + } + + // Constructor used by clone() + private CircularQueue(final CircularQueue oldQueue) { + size = oldQueue.size; + producerIndex = oldQueue.producerIndex; + consumerIndex = oldQueue.consumerIndex; + capacity = oldQueue.capacity; + maxCapacity = oldQueue.maxCapacity; + bitmask = oldQueue.bitmask; + q = new Object[oldQueue.q.length]; + System.arraycopy(oldQueue.q, 0, q, 0, q.length); + } + + private boolean expandQueue() { + // double the size of the queue + // This design assumes that this is a rare case + + if (capacity == maxCapacity) { + return false; + } + + final int old_capacity = capacity; + final Object[] old_q = q; + + capacity += capacity; + bitmask = capacity - 1; + q = new Object[capacity]; + + System.arraycopy(old_q, consumerIndex, q, 0, old_capacity - consumerIndex); + + if (consumerIndex != 0) { + System.arraycopy(old_q, 0, q, old_capacity - consumerIndex, + consumerIndex); + } + + consumerIndex = 0; + producerIndex = size; + + return true; + } + + @Override + public boolean add(final Object obj) { + if (size == capacity) { + // no room + if (!expandQueue()) { + return false; + } + } + + size++; + q[producerIndex] = obj; + + producerIndex = (producerIndex + 1) & bitmask; + + return true; + } + + public Object remove() { + Object obj; + + if (size == 0) { + return null; + } + + size--; + obj = q[consumerIndex]; + q[consumerIndex] = null; // allow gc to collect + + consumerIndex = (consumerIndex + 1) & bitmask; + + return obj; + } + + @Override + public boolean isEmpty() { return size == 0; } + + @Override + public int size() { return size; } + + public int capacity() { return capacity; } + + public Object peek() { + if (size == 0) { + return null; + } + return q[consumerIndex]; + } + + @Override + public void clear() { + Arrays.fill(q, null); + size = 0; + producerIndex = 0; + consumerIndex = 0; + } + + @Override + public Object clone() { + return new CircularQueue(this); + } + + @Override + public String toString() { + final StringBuffer s = new StringBuffer(super.toString() + " - capacity: '" + + capacity() + "' size: '" + size() + "'"); + + if (size > 0) { + s.append(" elements:"); + for (int i = 0; i < size; ++i) { + s.append('\n'); + s.append('\t'); + s.append(q[consumerIndex + i & bitmask].toString()); + } + } + + return s.toString(); + } + + @Override + public Iterator iterator() { + return new Iterator() { + private final int ci = consumerIndex; + private final int pi = producerIndex; + private int s = size; + private int i = ci; + + public boolean hasNext() { + checkForModification(); + return s > 0; + } + + public Object next() { + checkForModification(); + if (s == 0) { + throw new NoSuchElementException(); + } + + s--; + final Object r = q[i]; + i = (i + 1) & bitmask; + + return r; + } + + public void remove() { + throw new UnsupportedOperationException(); + } + + private void checkForModification() { + if (ci != consumerIndex) { + throw new ConcurrentModificationException(); + } + if (pi != producerIndex) { + throw new ConcurrentModificationException(); + } + } + }; + } +} diff --git a/src/trunk/org.gmodel.statistics/.classpath b/src/trunk/org.gmodel.statistics/.classpath new file mode 100644 index 0000000..64c5e31 --- /dev/null +++ b/src/trunk/org.gmodel.statistics/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/trunk/org.gmodel.statistics/.project b/src/trunk/org.gmodel.statistics/.project new file mode 100644 index 0000000..1d22cd4 --- /dev/null +++ b/src/trunk/org.gmodel.statistics/.project @@ -0,0 +1,26 @@ + + + org.gmodel.statistics + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/src/trunk/org.gmodel.statistics/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.statistics/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..8f6dc3d --- /dev/null +++ b/src/trunk/org.gmodel.statistics/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,70 @@ +#Wed May 13 15:07:03 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.statistics/.settings/org.eclipse.jdt.ui.prefs b/src/trunk/org.gmodel.statistics/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000..131d04e --- /dev/null +++ b/src/trunk/org.gmodel.statistics/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,54 @@ +#Sun Feb 28 11:38:32 CET 2010 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=false +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/src/trunk/org.gmodel.statistics/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.statistics/META-INF/MANIFEST.MF new file mode 100644 index 0000000..ca8f7d2 --- /dev/null +++ b/src/trunk/org.gmodel.statistics/META-INF/MANIFEST.MF @@ -0,0 +1,8 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.statistics +Bundle-SymbolicName: org.gmodel.statistics +Bundle-Version: 1.0.0 +Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Export-Package: org.gmodel.statistics diff --git a/src/trunk/org.gmodel.statistics/build.properties b/src/trunk/org.gmodel.statistics/build.properties new file mode 100644 index 0000000..41eb6ad --- /dev/null +++ b/src/trunk/org.gmodel.statistics/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/src/trunk/org.gmodel.statistics/src/org/gmodel/statistics/Timer.java b/src/trunk/org.gmodel.statistics/src/org/gmodel/statistics/Timer.java new file mode 100644 index 0000000..5cfec8d --- /dev/null +++ b/src/trunk/org.gmodel.statistics/src/org/gmodel/statistics/Timer.java @@ -0,0 +1,73 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.statistics; + +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +public class Timer { + + private final Map timerRecords; + + private Timer() { + timerRecords = new HashMap(); + } + + private static class TimerHolder { + public static final Timer INSTANCE = new Timer(); + } + + public static Timer getInstance() { + return TimerHolder.INSTANCE; + } + + public synchronized void start(final String id) { + final TimerRecord timerRecord = new TimerRecord(id); + timerRecord.setStartTime( System.nanoTime()); + timerRecords.put(id, timerRecord); + } + + public synchronized long time(final String id, final TimeUnit unit) throws IllegalArgumentException{ + final long endTime = System.nanoTime(); + final TimerRecord timerRecord = timerRecords.get(id); + if (timerRecord != null) { + timerRecord.setEndTime(endTime); + return unit.convert(timerRecord.getTimeTakenInMilliseconds(), TimeUnit.MILLISECONDS); + } else { + throw new IllegalArgumentException("No timer record is found"); + } + } + + public synchronized TimerRecord[] getTimerRecords() { + return (TimerRecord[]) this.timerRecords.values().toArray(); + } + + public synchronized TimerRecord getTimerRecords(final String id) { + return timerRecords.get(id); + } + +} \ No newline at end of file diff --git a/src/trunk/org.gmodel.statistics/src/org/gmodel/statistics/TimerRecord.java b/src/trunk/org.gmodel.statistics/src/org/gmodel/statistics/TimerRecord.java new file mode 100644 index 0000000..c00f78b --- /dev/null +++ b/src/trunk/org.gmodel.statistics/src/org/gmodel/statistics/TimerRecord.java @@ -0,0 +1,115 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.statistics; + +import java.util.concurrent.TimeUnit; + +public class TimerRecord { + + public static final int INITIAL_VALUE = -1; + private long endTime = INITIAL_VALUE; + private long startTime = INITIAL_VALUE; + + private String info; + private final String id; + + public TimerRecord(final String id) { + this.id = id; + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final TimerRecord other = (TimerRecord) obj; + if (id == null) { + if (other.id != null) { + return false; + } + } else if (!id.equals(other.id)) { + return false; + } + return true; + } + + protected long getEndTime() { + return endTime; + } + + public String getId() { + return id; + } + + public String getInfo() { + return info; + } + + protected long getStartTime() { + return startTime; + } + + public long getTimeTakenInMilliseconds() { + if (startTime > -1 && endTime > -1) { + return TimeUnit.MILLISECONDS.convert(endTime - startTime, TimeUnit.NANOSECONDS); + } else { + return TimerRecord.INITIAL_VALUE; + } + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((id == null) ? 0 : id.hashCode()); + return result; + } + + @Override + public String toString() { + return "TimerRecord [endTime=" + endTime + ", id=" + id + + ", startTime=" + startTime + "]"; + } + + protected void setEndTime(final long endTime) { + this.endTime = endTime; + } + + public void setInfo(final String info) { + this.info = info; + } + + protected void setStartTime(final long startTime) { + this.startTime = startTime; + } + +} diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/.classpath b/src/trunk/org.gmodel.visualization.containmenttree.viewer/.classpath new file mode 100644 index 0000000..2d1a430 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/.project b/src/trunk/org.gmodel.visualization.containmenttree.viewer/.project new file mode 100644 index 0000000..78c6d56 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/.project @@ -0,0 +1,28 @@ + + + org.gmodel.visualization.containmenttree.viewer + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.visualization.containmenttree.viewer/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..8f6dc3d --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,70 @@ +#Wed May 13 15:07:03 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/.settings/org.eclipse.jdt.ui.prefs b/src/trunk/org.gmodel.visualization.containmenttree.viewer/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000..d20f2b5 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,54 @@ +#Mon Jun 01 15:10:28 CEST 2009 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=false +sp_cleanup.format_source_code=false +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/.settings/org.hibernate.eclipse.console.prefs b/src/trunk/org.gmodel.visualization.containmenttree.viewer/.settings/org.hibernate.eclipse.console.prefs new file mode 100644 index 0000000..7db52a0 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/.settings/org.hibernate.eclipse.console.prefs @@ -0,0 +1,4 @@ +#Mon Jul 19 11:12:57 CEST 2010 +default.configuration= +eclipse.preferences.version=1 +hibernate3.enabled=false diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.visualization.containmenttree.viewer/META-INF/MANIFEST.MF new file mode 100644 index 0000000..a487129 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/META-INF/MANIFEST.MF @@ -0,0 +1,28 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.visualization.containmenttree.viewer +Bundle-SymbolicName: org.gmodel.visualization.containmenttree.viewer;singleton:=true +Bundle-Version: 1.0.0 +Bundle-Activator: org.gmodel.visualization.containmenttree.viewer.ContainmentTreeViewerPlugin +Require-Bundle: org.eclipse.ui;bundle-version="3.5.0", + org.eclipse.core.runtime;bundle-version="3.5.0", + org.gmodel.kernel;bundle-version="1.0.0", + org.gmodel.openarchitectureware;bundle-version="1.0.0", + org.eclipse.core.expressions;bundle-version="3.4.0", + org.eclipse.ui.ide, + org.eclipse.core.resources, + org.gmodel.serialization;bundle-version="1.0.0", + org.eclipse.ui.forms, + org.gmodel.kernel.tests;bundle-version="1.0.0", + org.gmodel.connector;bundle-version="1.0.0", + org.gmodel.connector.database;bundle-version="1.0.0", + org.gmodel.repository.client;bundle-version="1.0.0", + org.gmodel.semanticextensions;bundle-version="1.0.0", + org.gmodel.semanticextensions.testscripts;bundle-version="1.0.0", + org.gmodel.common;bundle-version="1.0.0" +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Bundle-ActivationPolicy: lazy +Import-Package: org.gmodel.eclipse.xpand2 +Export-Package: org.gmodel.visualization.containmenttree.viewer, + org.gmodel.visualization.containmenttree.viewer.commands, + org.gmodel.visualization.containmenttree.viewer.model diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/build.properties b/src/trunk/org.gmodel.visualization.containmenttree.viewer/build.properties new file mode 100644 index 0000000..285b8bf --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/build.properties @@ -0,0 +1,6 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + plugin.xml,\ + icons/ diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/abstract_instance.png b/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/abstract_instance.png new file mode 100644 index 0000000..a7651ec Binary files /dev/null and b/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/abstract_instance.png differ diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/concrete_instance.png b/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/concrete_instance.png new file mode 100644 index 0000000..5761970 Binary files /dev/null and b/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/concrete_instance.png differ diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/document.png b/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/document.png new file mode 100644 index 0000000..03ddd79 Binary files /dev/null and b/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/document.png differ diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/retrieve.png b/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/retrieve.png new file mode 100644 index 0000000..ff803be Binary files /dev/null and b/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/retrieve.png differ diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/root.png b/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/root.png new file mode 100644 index 0000000..a7651ec Binary files /dev/null and b/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/root.png differ diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/search.png b/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/search.png new file mode 100644 index 0000000..cf3d97f Binary files /dev/null and b/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/search.png differ diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/store.png b/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/store.png new file mode 100644 index 0000000..61a8556 Binary files /dev/null and b/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/store.png differ diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/tree.png b/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/tree.png new file mode 100644 index 0000000..c32d25c Binary files /dev/null and b/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/tree.png differ diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/vertex.png b/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/vertex.png new file mode 100644 index 0000000..6469cea Binary files /dev/null and b/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/vertex.png differ diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/visualize.png b/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/visualize.png new file mode 100644 index 0000000..c64582b Binary files /dev/null and b/src/trunk/org.gmodel.visualization.containmenttree.viewer/icons/visualize.png differ diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/plugin.xml b/src/trunk/org.gmodel.visualization.containmenttree.viewer/plugin.xml new file mode 100644 index 0000000..e9a6f6f --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/plugin.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/pom.xml b/src/trunk/org.gmodel.visualization.containmenttree.viewer/pom.xml new file mode 100644 index 0000000..aa5030c --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/pom.xml @@ -0,0 +1,10 @@ + + 4.0.0 + + org.gmodel + org.gmodel.eclipse + 1.0.0 + + org.gmodel.visualization.containmenttree.viewer + eclipse-plugin + diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/ContainmentTreeManager.java b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/ContainmentTreeManager.java new file mode 100644 index 0000000..fa9fc74 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/ContainmentTreeManager.java @@ -0,0 +1,54 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.containmenttree.viewer; + +import org.gmodel.visualization.containmenttree.viewer.model.ContainmentModel; +import org.gmodel.visualization.containmenttree.viewer.model.ContainmentTreeNode; + +public class ContainmentTreeManager { + + private static ContainmentTreeManager treeManager; + private static ContainmentModel model; + + public static ContainmentTreeManager getTreeManager() { + if (treeManager == null) { + treeManager = new ContainmentTreeManager(); + model = new ContainmentModel(); + } + return treeManager; + } + + public ContainmentTreeNode[] getRoot() { + final ContainmentTreeNode[] root = {model.getRoot()}; + return root; + } + + public static boolean isModelLoaded() { + return model != null; + } + +} diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/ContainmentTreeViewerPlugin.java b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/ContainmentTreeViewerPlugin.java new file mode 100644 index 0000000..5f83b6f --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/ContainmentTreeViewerPlugin.java @@ -0,0 +1,75 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.containmenttree.viewer; + +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.gmodel.serialization.serializer.SerializationType; +import org.gmodel.serialization.serializer.SerializerHolder; +import org.osgi.framework.BundleContext; + +/** + * The activator class controls the plug-in life cycle + */ +public class ContainmentTreeViewerPlugin extends AbstractUIPlugin { + + // The plug-in ID + public static final String PLUGIN_ID = "org.gmodel.visualization.containmenttree.viewer"; + + // The shared instance + private static ContainmentTreeViewerPlugin plugin; + + @Override + public void start(final BundleContext context) throws Exception { + super.start(context); + plugin = this; + SerializerHolder.getGmodelInstanceSerializer(SerializationType.XML); //to initialize the serializer + updateUIConfiguration(); + addPreferencesChangeListener(); + } + + private void updateUIConfiguration() { + } + + private void addPreferencesChangeListener() { + } + + @Override + public void stop(final BundleContext context) throws Exception { + plugin = null; + super.stop(context); + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public static ContainmentTreeViewerPlugin getDefault() { + return plugin; + } + +} \ No newline at end of file diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/ContainmentTreeViewerStatus.java b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/ContainmentTreeViewerStatus.java new file mode 100644 index 0000000..61050c2 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/ContainmentTreeViewerStatus.java @@ -0,0 +1,25 @@ +package org.gmodel.visualization.containmenttree.viewer; + +public class ContainmentTreeViewerStatus { + + private boolean isKernelInitialized = false; + + public void setKernelInitialized(final boolean isKernelInitialized) { + this.isKernelInitialized = isKernelInitialized; + } + + public boolean isKernelInitialized() { + return isKernelInitialized; + } + + private ContainmentTreeViewerStatus() {} + + private static class StatusHolder { + public static final ContainmentTreeViewerStatus INSTANCE = new ContainmentTreeViewerStatus(); + } + + public static ContainmentTreeViewerStatus getInstance() { + return StatusHolder.INSTANCE; + } + +} diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/Messages.java b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/Messages.java new file mode 100644 index 0000000..e1f1503 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/Messages.java @@ -0,0 +1,41 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.containmenttree.viewer; + +import org.eclipse.osgi.util.NLS; + +public class Messages extends NLS { + private static final String BUNDLE_NAME = "org.gmodel.visualization.containmenttree.viewer.messages"; //$NON-NLS-1$ + public static String SearchTextComposite_SEARCH_HELP_TEXT; + static { + // initialize resource bundle + NLS.initializeMessages(BUNDLE_NAME, Messages.class); + } + + private Messages() { + } +} diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/SearchContributionItem.java b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/SearchContributionItem.java new file mode 100644 index 0000000..46a4bb0 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/SearchContributionItem.java @@ -0,0 +1,83 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.containmenttree.viewer; + +import org.eclipse.jface.action.ContributionItem; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Text; +import org.eclipse.swt.widgets.ToolBar; +import org.eclipse.swt.widgets.ToolItem; +import org.eclipse.ui.IViewSite; + +public class SearchContributionItem extends ContributionItem { + + private static final int WIDTH_PADDING = 3; + private ToolItem toolItem; + private final IViewSite viewSite; + + public SearchContributionItem(final IViewSite viewSite) { + this.viewSite = viewSite; + } + + @Override + public void fill(final ToolBar parent, final int index) { + final Composite page = new Composite(parent, SWT.NONE); + final GridLayout gridLayout = new GridLayout(); + gridLayout.numColumns = 1; + final GridData gridData = new GridData(); + gridData.grabExcessHorizontalSpace = true; + gridData.grabExcessHorizontalSpace = true; + gridData.horizontalAlignment = GridData.FILL; + gridData.verticalAlignment = GridData.FILL; + gridLayout.numColumns = 1; + page.setLayout(gridLayout); + final Text searchTxt = new Text(page, SWT.SINGLE | SWT.LEFT); + searchTxt.addListener(SWT.KeyUp, new Listener() { + public void handleEvent(final Event e) { + Viewer.setSearchText(searchTxt.getText()); + } + }); + searchTxt.setLayoutData(gridData); + searchTxt.pack(); + page.pack(); + toolItem = new ToolItem(parent, SWT.SEPARATOR, index); + toolItem.setWidth (page.getSize().x*WIDTH_PADDING); + toolItem.setToolTipText("Search"); + toolItem.setControl(page); + parent.pack(); + } + + public void run() { + + } + +} \ No newline at end of file diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/SearchTextComposite.java b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/SearchTextComposite.java new file mode 100644 index 0000000..b1a3fe1 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/SearchTextComposite.java @@ -0,0 +1,138 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.containmenttree.viewer; + +import java.util.logging.Level; +import java.util.logging.Logger; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.FocusEvent; +import org.eclipse.swt.events.FocusListener; +import org.eclipse.swt.events.KeyEvent; +import org.eclipse.swt.events.KeyListener; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Text; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.forms.widgets.FormToolkit; +import org.eclipse.ui.handlers.IHandlerService; +import org.gmodel.visualization.containmenttree.viewer.commands.Search; + +public class SearchTextComposite extends Composite { + + private static final int HORIZONTAL_SPAN = 3; + private boolean isHelpTextOn; + private final FormToolkit toolkit; + private final Text text; + + protected String getText() { + final String searchTxt = isHelpTextOn ? "" : text.getText().trim(); + return searchTxt; + } + + public SearchTextComposite(final Composite parent, final int style) { + super(parent, style); + toolkit = new FormToolkit(parent.getDisplay()); + text = toolkit.createText(this, ""); //$NON-NLS-1$ + buildPart(); + } + + private void buildPart() { + final GridLayout searchCompositeLayout = new GridLayout(); + searchCompositeLayout.makeColumnsEqualWidth = true; + searchCompositeLayout.horizontalSpacing = 0; + this.setLayout(searchCompositeLayout); + final GridData lData = new GridData(); + lData.horizontalSpan = HORIZONTAL_SPAN; + lData.grabExcessHorizontalSpace = true; + lData.horizontalAlignment = GridData.FILL; + this.setLayoutData(lData); + final GridData textLData = new GridData(); + textLData.horizontalAlignment = GridData.FILL; + textLData.grabExcessHorizontalSpace = true; + text.setLayoutData(textLData); + setTextStyle(Messages.SearchTextComposite_SEARCH_HELP_TEXT, true); + text.addFocusListener(getFocusListener()); + text.addKeyListener(new KeyListener(){ + + public void keyPressed(final KeyEvent e) { + } + + public void keyReleased(final KeyEvent e) { + final Text txt = (Text) e.widget; + if (!isHelpTextOn && txt.getText().trim().length() > 0) { + if (e.keyCode == SWT.CR) { + Viewer.setSearchText(txt.getText().trim()); + try { + ((IHandlerService)PlatformUI.getWorkbench().getService(IHandlerService.class)). + executeCommand(Search.COMMAND_ID, new Event()); + } catch (final Throwable ex) { + Logger.getLogger("global").log(Level.SEVERE, null, ex); + } ; + } + } + } + + }); + } + + private FocusListener getFocusListener() { + final FocusListener focusListener = new FocusListener() { + public void focusGained(final FocusEvent e) { + if (isHelpTextOn) { + setTextStyle("", false); + } + } + + public void focusLost(final FocusEvent e) { + final Text txt = (Text) e.widget; + if (txt.getText().trim().length() < 1 || isHelpTextOn) { + setTextStyle(Messages.SearchTextComposite_SEARCH_HELP_TEXT, + true); + } + } + }; + return focusListener; + } + + private void setTextStyle(final String value, final boolean isHelpText) { + text.setText(value); + if (isHelpText) { + text.setForeground(Display.getCurrent().getSystemColor( + SWT.COLOR_GRAY)); + isHelpTextOn = true; + } else { + text.setForeground(Display.getCurrent().getSystemColor( + SWT.COLOR_BLACK)); + isHelpTextOn = false; + } + } + +} diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/SearchWidgetInput.java b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/SearchWidgetInput.java new file mode 100644 index 0000000..a0bc80c --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/SearchWidgetInput.java @@ -0,0 +1,118 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.containmenttree.viewer; + +import java.util.List; + +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IPersistableElement; +import org.gmodel.serialization.container.SearchResultType; + +public class SearchWidgetInput implements IEditorInput { + + private final List results; + private final String searchText; + + public SearchWidgetInput(final String searchText, final List results) { + this.searchText = (searchText == null) ? "": searchText; + this.results = results; + } + + public boolean exists() { + return false; + } + + @SuppressWarnings("unchecked") + public Object getAdapter(final Class adapter) { + return null; + } + + public ImageDescriptor getImageDescriptor() { + return null; + } + + public String getName() { + return ""; + } + + public IPersistableElement getPersistable() { + return null; + } + + public List getResults() { + return results; + } + + public String getSearchText() { + return searchText; + } + + public String getToolTipText() { + return ""; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((results == null) ? 0 : results.hashCode()); + result = prime * result + + ((searchText == null) ? 0 : searchText.hashCode()); + return result; + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final SearchWidgetInput other = (SearchWidgetInput) obj; + if (results == null) { + if (other.results != null) { + return false; + } + } else if (!results.equals(other.results)) { + return false; + } + if (searchText == null) { + if (other.searchText != null) { + return false; + } + } else if (!searchText.equals(other.searchText)) { + return false; + } + return true; + } + +} diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/TreeContentProvider.java b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/TreeContentProvider.java new file mode 100644 index 0000000..3a58b3c --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/TreeContentProvider.java @@ -0,0 +1,62 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.containmenttree.viewer; + +import org.eclipse.jface.viewers.ITreeContentProvider; +import org.eclipse.jface.viewers.Viewer; +import org.gmodel.visualization.containmenttree.viewer.model.ContainmentTreeNode; + +public class TreeContentProvider implements ITreeContentProvider { + + public Object[] getChildren(final Object parentElement) { + final ContainmentTreeNode node = (ContainmentTreeNode) parentElement; + return node.getChildNodes(); + + } + + public Object getParent(final Object element) { + final ContainmentTreeNode node = (ContainmentTreeNode) element; + return node.getParent(); + } + + public boolean hasChildren(final Object element) { + final ContainmentTreeNode node = (ContainmentTreeNode) element; + return node.hasChildren(); + } + + public Object[] getElements(final Object inputElement) { + return ContainmentTreeManager.getTreeManager().getRoot(); + } + + public void dispose() { + + } + + public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) { + } + +} diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/TreeLabelProvider.java b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/TreeLabelProvider.java new file mode 100644 index 0000000..dc17d39 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/TreeLabelProvider.java @@ -0,0 +1,80 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + import org.eclipse.jface.viewers.ILabelProvider; +import org.eclipse.jface.viewers.ILabelProviderListener; +import org.eclipse.swt.graphics.Image; +import org.gmodel.api.Set; +import org.gmodel.impl.F_SemanticStateOfInMemoryModel; +import org.gmodel.impl.Root; +import org.gmodel.visualization.containmenttree.viewer.image.TreeIcon; +import org.gmodel.visualization.containmenttree.viewer.model.ContainmentTreeNode; +nse + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.containmenttree.viewer; + +import org.eclipse.jface.viewers.ILabelProvider; +import org.eclipse.jface.viewers.ILabelProviderListener; +import org.eclipse.swt.graphics.Image; +import org.gmodel.Set; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models.Root; +import org.gmodel.visualization.containmenttree.viewer.image.TreeIcon; +import org.gmodel.visualization.containmenttree.viewer.model.ContainmentTreeNode; + +public class TreeLabelProvider implements ILabelProvider { + + public Image getImage(final Object element) { + final Set set = ((ContainmentTreeNode) element).getSet(); + if (set.isEqualTo(Root.root)) { + return TreeIcon.ROOT.getImage(); + } else if (set.container().isEqualTo(Root.root)) { + if (set.value(GmodelSemanticDomains.isAbstract).isEqualTo(GmodelSemanticDomains.isAbstract_FALSE)) { + return TreeIcon.CONCRETE_INSTANCE.getImage(); + } else { + return TreeIcon.ABSTRACT_INSTANCE.getImage(); + } + } else { + return TreeIcon.VERTEX.getImage(); + } + } + + // FIXME: this does not appear to be used to display anything in the UI + public String getText(final Object element) { + if (element != null) { + final Set set = ((ContainmentTreeNode) element).getSet(); + return set.localVisualRecognitionText(); + } else { + return null; + } + } + + public void addListener(final ILabelProviderListener listener) { + } + + public void dispose() { + } + + public boolean isLabelProperty(final Object element, final String property) { + return false; + } + + public void removeListener(final ILabelProviderListener listener) { + } + +} diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/Viewer.java b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/Viewer.java new file mode 100644 index 0000000..5838e4d --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/Viewer.java @@ -0,0 +1,275 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.containmenttree.viewer; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; + +import org.eclipse.jface.action.IMenuListener; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.MenuManager; +import org.eclipse.jface.action.Separator; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.ITreeContentProvider; +import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.jface.viewers.ViewerSorter; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.ToolBar; +import org.eclipse.swt.widgets.ToolItem; +import org.eclipse.swt.widgets.TreeItem; +import org.eclipse.ui.IWorkbenchActionConstants; +import org.eclipse.ui.IWorkbenchPartSite; +import org.eclipse.ui.handlers.IHandlerService; +import org.eclipse.ui.part.ViewPart; +import org.gmodel.visualization.containmenttree.viewer.commands.Retrieve; +import org.gmodel.visualization.containmenttree.viewer.commands.Search; +import org.gmodel.visualization.containmenttree.viewer.commands.StoreRoot; +import org.gmodel.visualization.containmenttree.viewer.handlers.EditorLoadingHandler; +import org.gmodel.visualization.containmenttree.viewer.image.TreeIcon; +import org.gmodel.visualization.containmenttree.viewer.model.ContainmentTreeNode; + +public class Viewer extends ViewPart { + + private static final int INDEX_OF_STORE_ITEM = 2; + private static final int NUM_COLUMNS = 5; + private static TreeViewer containmentTreeViewer; + private static ToolBar btnToolbar; + private static final String CONTEXT_MENU_GROUP_KEY = "action"; + private static String searchText; + private static IWorkbenchPartSite viewerSite; + + public static TreeViewer getContainmentTreeViewer() { + return containmentTreeViewer; + } + + public static String getSearchText() { + return searchText; + } + + public static void setAccessType(final boolean isReadOnly) { + if (btnToolbar != null && btnToolbar.getItemCount() > INDEX_OF_STORE_ITEM) { + btnToolbar.getItem(INDEX_OF_STORE_ITEM).setEnabled(!isReadOnly); + } + } + + public static void setSearchText(final String text) { + searchText = text; + } + + private void buildContextMenu(final IMenuManager menuManager) { + menuManager.add(new Separator(CONTEXT_MENU_GROUP_KEY)); + menuManager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); + } + + private void createContextMenu() { + final MenuManager menuManager = new MenuManager("#PopupMenu"); + menuManager.setRemoveAllWhenShown(true); + menuManager.addMenuListener(new IMenuListener() { + public void menuAboutToShow(final IMenuManager m) { + Viewer.this.buildContextMenu(m); + } + }); + final Menu menu = menuManager.createContextMenu(containmentTreeViewer + .getControl()); + containmentTreeViewer.getControl().setMenu(menu); + containmentTreeViewer.getControl().getMenu().setVisible(false); + getSite().registerContextMenu(menuManager, containmentTreeViewer); + } + + @Override + public void createPartControl(final Composite parent) { + parent.setLayout(new FillLayout()); + createMainComposite(parent); + viewerSite = getSite(); + } + + private void createMainComposite(final Composite parent) { + final Composite mainComposite = new Composite(parent, SWT.NONE); + final GridLayout mainCompositeLayout = new GridLayout(); + mainCompositeLayout.numColumns = NUM_COLUMNS; + mainCompositeLayout.marginWidth = 0; + mainCompositeLayout.horizontalSpacing = 0; + mainComposite.setLayout(mainCompositeLayout); + final SearchTextComposite searchComposite = new SearchTextComposite(mainComposite, SWT.NONE); + final GridData btnCompositeLData = new GridData(); + btnCompositeLData.horizontalAlignment = GridData.END; + final Composite btnComposite = new Composite(mainComposite, SWT.NONE); + final FillLayout btnCompositeLayout = new FillLayout( + org.eclipse.swt.SWT.HORIZONTAL); + btnComposite.setLayout(btnCompositeLayout); + btnComposite.setLayoutData(btnCompositeLData); + btnToolbar = new ToolBar(btnComposite, SWT.NONE); + final ToolItem itemSearch = new ToolItem(btnToolbar, SWT.NONE); + itemSearch.setImage(TreeIcon.SEARCH.getImage()); + itemSearch.setToolTipText(TreeIcon.SEARCH.name().toLowerCase()); + final ToolItem itemRetrieve = new ToolItem(btnToolbar, SWT.NONE); + itemRetrieve.setImage(TreeIcon.RETRIEVE.getImage()); + itemRetrieve.setToolTipText(TreeIcon.RETRIEVE.name().toLowerCase()); + final ToolItem itemStore = new ToolItem(btnToolbar, SWT.NONE); + itemStore.setImage(TreeIcon.STORE.getImage()); + itemStore.setToolTipText(TreeIcon.STORE.name().toLowerCase()); + itemStore.setEnabled(false); + final Listener listener = new Listener() { + public void handleEvent(final Event event) { + if (event.widget.equals(itemSearch)) { + final String searchTerm = searchComposite.getText(); + if (searchTerm.length() > 0) { + Viewer.setSearchText(searchTerm); + execCommand(Search.COMMAND_ID); + } + } else if(event.widget.equals(itemRetrieve)) { + execCommand(Retrieve.COMMAND_ID); + } else if(event.widget.equals(itemStore)) { + execCommand(StoreRoot.COMMAND_ID); + } + } + + private void execCommand(final String commandId) { + final IHandlerService handlerService = (IHandlerService) getSite().getService(IHandlerService.class); + try { + handlerService.executeCommand(commandId, new Event()); + } catch (final Throwable ex) { + Logger.getLogger("global").log(Level.SEVERE, null, ex); + } + } + }; + + itemSearch.addListener(SWT.Selection, listener); + itemRetrieve.addListener(SWT.Selection, listener); + itemStore.addListener(SWT.Selection, listener); + createTree(mainComposite); + + } + + private void createTree(final Composite parent) { + final GridData treeCompositeLData = new GridData(); + treeCompositeLData.grabExcessHorizontalSpace = true; + treeCompositeLData.horizontalAlignment = GridData.FILL; + treeCompositeLData.horizontalSpan = NUM_COLUMNS; + treeCompositeLData.verticalAlignment = GridData.FILL; + treeCompositeLData.grabExcessHorizontalSpace = true; + treeCompositeLData.grabExcessVerticalSpace = true; + final Composite treeComposite = new Composite(parent, SWT.NONE); + final GridData layoutData = new GridData(); + layoutData.horizontalSpan = NUM_COLUMNS; + layoutData.horizontalAlignment = GridData.FILL; + layoutData.verticalAlignment = GridData.FILL; + layoutData.grabExcessHorizontalSpace = true; + layoutData.grabExcessVerticalSpace = true; + final FillLayout treeCompositeLayout = new FillLayout( + org.eclipse.swt.SWT.HORIZONTAL); + treeCompositeLayout.marginWidth = 0; + //treeCompositeLayout.marginWidth = TREE_COMPOSITE_MARGIN_WIDTH; + treeComposite.setLayout(treeCompositeLayout); + treeComposite.setLayoutData(treeCompositeLData); + containmentTreeViewer = new TreeViewer(treeComposite, SWT.H_SCROLL + | SWT.V_SCROLL); + containmentTreeViewer.setContentProvider(new TreeContentProvider()); + containmentTreeViewer.setLabelProvider(new TreeLabelProvider()); + containmentTreeViewer.setSorter(new ViewerSorter()); + final Listener doubleClickListener = new Listener() { + public void handleEvent(final Event event) { + final Point point = new Point(event.x, event.y); + final TreeItem item = containmentTreeViewer.getTree().getItem( + point); + if (item != null) { + final ContainmentTreeNode selectedNode = (ContainmentTreeNode) item + .getData(); + // if (item != null && + // !selectedNode.getSet().isEqualTo(Root.root)) { + EditorLoadingHandler.openVisualizationWidget( + ((ContainmentTreeNode) item.getData()), + containmentTreeViewer); + } + // } + } + }; + containmentTreeViewer.getTree().addListener(SWT.MouseDoubleClick, + doubleClickListener); + containmentTreeViewer + .addSelectionChangedListener(new ISelectionChangedListener() { + public void selectionChanged( + final SelectionChangedEvent event) { + if (containmentTreeViewer.getControl().getMenu() == null) { + createContextMenu(); + } + } + }); + + getSite().setSelectionProvider(containmentTreeViewer); + } + + @Override + public void setFocus() { + } + + public static IWorkbenchPartSite getViewerSite() { + return viewerSite; + } + + public static void selectNode(final UUID instanceURR) { + final ITreeContentProvider provider = (ITreeContentProvider) containmentTreeViewer + .getContentProvider(); + final ContainmentTreeNode rootNode = (ContainmentTreeNode) provider + .getElements(null)[0]; + final List nodeMatched = new ArrayList(); + walkTree(instanceURR, rootNode, nodeMatched); + if (!nodeMatched.isEmpty()) { + containmentTreeViewer.setSelection(new StructuredSelection( + nodeMatched.get(0)), true); + } + } + + private static void walkTree(final UUID instanceURR, + final ContainmentTreeNode rootNode, + final List nodeMatched) { + if (rootNode.getSet().identity().uniqueRepresentationReference() + .equals(instanceURR)) { + nodeMatched.add(rootNode); + } else { + if (rootNode.getChildNodes() != null) { + for (final ContainmentTreeNode n : rootNode.getChildNodes()) { + walkTree(instanceURR, n, nodeMatched); + } + } + } + } + +} diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/VisualizationInput.java b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/VisualizationInput.java new file mode 100644 index 0000000..181cd9b --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/VisualizationInput.java @@ -0,0 +1,143 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.containmenttree.viewer; + +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IPersistableElement; +import org.gmodel.Set; +import org.gmodel.api.models.Root; +import org.gmodel.visualization.containmenttree.viewer.model.ContainmentTreeNode; + +public class VisualizationInput implements IEditorInput { + + private final ContainmentTreeNode node; + + private final TreeViewer containmentTreeViewer; + + private Set setToRender; + + private String name; + + public TreeViewer getContainmentTreeViewer() { + return containmentTreeViewer; + } + + public ContainmentTreeNode getNode() { + return node; + } + + public VisualizationInput(final ContainmentTreeNode node, final TreeViewer containmentTreeViewer) { + this.node = node; + this.containmentTreeViewer = containmentTreeViewer; + updateSetToRender(node.getSet()); + } + + public void updateSetToRender(final Set setToRender) { + this.setToRender = setToRender; + this.name = createName(); + } + + public boolean exists() { + return false; + } + + public ImageDescriptor getImageDescriptor() { + return null; + } + + public String getName() { + return name; + } + + public IPersistableElement getPersistable() { + return null; + } + + public String getToolTipText() { + return name; + } + + @SuppressWarnings("unchecked") + public Object getAdapter(final Class adapter) { + return null; + } + + private String createName() { + final List artefactNames = new ArrayList(); + Set set = setToRender; + artefactNames.add(set.identity().name()); + if (set.isEqualTo(Root.root)) { + while (set.container().isEqualTo(Root.root)) { + set = set.container(); + artefactNames.add(set.identity().name()); + } + } + final StringBuilder result = new StringBuilder(); + for (int i = artefactNames.size() - 1; i >= 0; i--) { + result.append(artefactNames.get(i)); + if (i > 0) { + result.append(" > "); + } + } + return result.toString(); + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final VisualizationInput other = (VisualizationInput) obj; + if (setToRender == null) { + if (other.setToRender != null) { + return false; + } + } else if (!setToRender.equals(other.setToRender)) { + return false; + } + return true; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((setToRender == null) ? 0 : setToRender.identity().identifier().toString().hashCode()); + return result; + } +} diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/commands/InstanceHandler.java b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/commands/InstanceHandler.java new file mode 100644 index 0000000..1b76077 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/commands/InstanceHandler.java @@ -0,0 +1,94 @@ +package org.gmodel.visualization.containmenttree.viewer.commands; + +import java.util.HashMap; +import java.util.Map; + +import org.gmodel.SemanticStateOfInMemoryModel; +import org.gmodel.api.models.Root; +import org.gmodel.api.models2.RepositoryStructure; +import org.gmodel.serialization.Gmodel; +import org.gmodel.serialization.serializer.InstanceMap; +import org.gmodel.serialization.serializer.SerializationType; +import org.gmodel.serialization.serializer.Serializer; +import org.gmodel.serialization.serializer.SerializerHolder; + +public class InstanceHandler { + + private final Serializer serializer; + private final InstanceMap instanceMap; + + private static class InstanceHolder { + public static final InstanceHandler INSTANCE = new InstanceHandler(); + } + + public static InstanceHandler getInstance() { + return InstanceHolder.INSTANCE; + } + + private InstanceHandler() { + serializer = SerializerHolder.getGmodelInstanceSerializer(SerializationType.XML); + instanceMap = InstanceMap.getInstance(); + } + + private Map fetchRequiredSerializedArtifacts(final String uuid) { + final Map artifacts = new HashMap(); + fetchArtifact(uuid, artifacts, true); + return artifacts; + } + + public void doInitialFullDeserialization() throws IllegalArgumentException, IllegalAccessException { + if ( SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + //instanceMap.reset(); + final Map artifacts = fetchRequiredSerializedArtifacts(Root.root.identity().uniqueRepresentationReference().toString()); + //InstanceBuilder.decommssionOutdatedOuterShellInstances(); + serializer.doInitialFullDeserialization(artifacts); + } else { + instanceMap.reset(); + throw new IllegalAccessException("Basic repository structure cannot be found"); + } + } + + public void doCoordinateInstanceDeserialization() throws IllegalArgumentException, IllegalAccessException { + if ( SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + final Map artifacts = fetchRequiredSerializedArtifacts(RepositoryStructure.graphVisualizations.identity().uniqueRepresentationReference().toString()); + serializer.deserializeInstances(artifacts); + } else { + instanceMap.reset(); + throw new IllegalAccessException("Basic repository structure cannot be found"); + } + } + + //Fetch an instance with the UUID and deserialize it + public void deserializeInstance(final String uuid) throws IllegalAccessException { + if ( SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + final Map artifacts = new HashMap(); + fetchArtifact(uuid,artifacts, false); + instanceMap.removeFromBuiltInstances(uuid); + serializer.deserializeInstances(artifacts); + } else { + throw new IllegalAccessException("Basic repository structure cannot be found"); + } + } + + public void fetchArtifact(final String uuid, final Map artifacts, final boolean isRecursive) { +// System.err.println("Fetching "+uuid); +// try { +// final String serializedInstance = ((Connector)Mediator.getComponent(ProtocolType.REPOSITORY)).getArtefact(uuid); +// final Gmodel rootModel = serializer.unmarshallModel(serializedInstance); +// artifacts.put(uuid, rootModel); +// if (isRecursive) { +// final Gmodel.Instance rootSet = rootModel.getInstance().get(0); +// for (final InstanceType connectedInstance : rootSet.getInstance()) { +// final String id = connectedInstance.getSemanticIdentity().getUniqueRepresentationReference(); +// if (!artifacts.containsKey(id)) { +// fetchArtifact(id, artifacts, isRecursive); +// } +// } +// } +// } catch (final IllegalStateException ex) { +// Logger.getLogger("global").log( java.util.logging.Level.SEVERE, null, ex); +// } + throw new UnsupportedOperationException("Obsolte operation"); + } + +} \ No newline at end of file diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/commands/InstanceSelection.java b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/commands/InstanceSelection.java new file mode 100644 index 0000000..602af7b --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/commands/InstanceSelection.java @@ -0,0 +1,84 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.containmenttree.viewer.commands; + +import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Cursor; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Tree; +import org.gmodel.visualization.containmenttree.viewer.ContainmentTreeManager; +import org.gmodel.visualization.containmenttree.viewer.Viewer; + +public final class InstanceSelection extends AbstractHandler { + + public Object execute(final ExecutionEvent event) throws ExecutionException { + final Display display = Display.getCurrent(); + final UUID selectedNodeURR = (UUID) ((Event)event.getTrigger()).data; + if (selectedNodeURR != null) { + final Cursor wCursor = new Cursor(null, SWT.CURSOR_WAIT); + Viewer.getContainmentTreeViewer().getTree().setCursor(wCursor); + new Thread() { + @Override + public void run() { + try { + selectNode(); + } catch (final Throwable th) { + Logger.getLogger("global").log(Level.SEVERE, null, th); + } + if (display.isDisposed()) { + return; + } + } + + private void selectNode() { + display.asyncExec(new Runnable() { + public void run() { + final Tree tree = Viewer.getContainmentTreeViewer().getTree(); + if (tree.isDisposed()) { + return; + } + tree.setCursor(null); + tree.setEnabled(true); + Viewer.getContainmentTreeViewer().setInput(ContainmentTreeManager.getTreeManager()); + Viewer.selectNode(selectedNodeURR); + } + }); + } + }.start(); + } + return null; + } + +} diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/commands/Retrieve.java b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/commands/Retrieve.java new file mode 100644 index 0000000..cb6431c --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/commands/Retrieve.java @@ -0,0 +1,145 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.containmenttree.viewer.commands; + +import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.swt.custom.BusyIndicator; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Tree; +import org.gmodel.G; +import org.gmodel.SemanticStateOfInMemoryModel; +import org.gmodel.api.models.Root; +import org.gmodel.api.serializerinterface.Reconstitution; +import org.gmodel.repository.client.RepositoryClient; +import org.gmodel.repository.client.mediator.RepositoryClientMediator; +import org.gmodel.semanticextensions.outershells.SemanticExtensions; +import org.gmodel.serialization.container.ArtefactContainer; +import org.gmodel.serialization.container.ArtefactContainer.Content; +import org.gmodel.serialization.container.ContentType; +import org.gmodel.serialization.container.ObjectFactoryHolder; +import org.gmodel.serialization.serializer.ArtifactContainerContentMapper; +import org.gmodel.serialization.serializer.InstanceMap; +import org.gmodel.serialization.serializer.ProtocolType; +import org.gmodel.serialization.serializer.SerializationType; +import org.gmodel.visualization.containmenttree.viewer.ContainmentTreeManager; +import org.gmodel.visualization.containmenttree.viewer.ContainmentTreeViewerStatus; +import org.gmodel.visualization.containmenttree.viewer.Viewer; + +public final class Retrieve extends AbstractHandler { + + public static final String COMMAND_ID = "org.gmodel.visualization.containmenttree.viewer.commands.retrieve"; + + public Object execute(final ExecutionEvent event) throws ExecutionException { + final Display display = Display.getCurrent(); + final UUID selectedNodeURR = (UUID) ((Event)event.getTrigger()).data; + + BusyIndicator.showWhile(display, new Runnable() { + public void run() { + try { + if (!ContainmentTreeViewerStatus.getInstance().isKernelInitialized()) { + initialFulldeserialization(); + } + } catch (final Throwable th) { + Logger.getLogger("global").log(Level.SEVERE, null, th); //$NON-NLS-1$ + } + } + + private void initialFulldeserialization() throws IllegalArgumentException, IllegalAccessException { + bootstrappingWithRepository(); + display.asyncExec(new Runnable() { + public void run() { + final Tree tree = Viewer.getContainmentTreeViewer().getTree(); + if (tree.isDisposed()) { + return; + } + tree.setCursor(null); + tree.setEnabled(true); + Viewer.getContainmentTreeViewer().setInput(ContainmentTreeManager.getTreeManager()); + Viewer.selectNode(selectedNodeURR); + } + }); + } + + private void bootstrappingWithRepository() { + org.gmodel.G.completeOpenSourceKernelInitialization(); + final RepositoryClient client = RepositoryClientMediator.getInstance().getComponent(ProtocolType.REPOSITORY_CLIENT); + final ArtefactContainer retrievalArtifact = ObjectFactoryHolder.getInstance().createArtefactContainer(); + retrievalArtifact.setContentType(SerializationType.CONTAINMENT_TREE.toString()); + final ContentType uuidContent = ObjectFactoryHolder.getInstance().createArtefactContainerContent(); + final ContentType depthContent = ObjectFactoryHolder.getInstance().createArtefactContainerContent(); + uuidContent.setContent(""+Root.root.identity().uniqueRepresentationReference()); + depthContent.setContent(""+0); + retrievalArtifact.getContent().add((Content) uuidContent); + retrievalArtifact.getContent().add((Content) depthContent); + final ArtefactContainer returnedArtifacts = client.get(retrievalArtifact); + if (!returnedArtifacts.getContent().isEmpty()) { + new ArtifactContainerContentMapper().recreateInstancesFromArtifactContainer(returnedArtifacts); + } + G.goLiveWithGmodelEditor(); + ContainmentTreeViewerStatus.getInstance().setKernelInitialized(true); + } + + private void bootstrappingByScripts() { + org.gmodel.G.completeOpenSourceKernelInitialization(); + SemanticExtensions.instantiateFeature(); + org.gmodel.kernel.artifactinstantiation.InstantiationSequences.run(); + G.goLiveWithGmodelEditor(); + } + + private void retrievalInitialization() throws IllegalArgumentException, IllegalAccessException { + if (!SemanticStateOfInMemoryModel.gmodelEditorIsLive()) { + org.gmodel.semanticextensions.G.bootTemplate(); + org.gmodel.kernel.artifactinstantiation.InstantiationSequences.run(); + InstanceMap.getInstance(); + G.goLiveWithGmodelEditor(); + } + } + + private void fetchCoordInstances() throws IllegalArgumentException, IllegalAccessException { + final InstanceHandler deSz = InstanceHandler.getInstance(); + deSz.doCoordinateInstanceDeserialization(); + } + + private void fullInstanceDeserialization() throws IllegalAccessException { + if (!SemanticStateOfInMemoryModel.gmodelSemanticDomainIsInitialized()) { + Reconstitution.completeGmodelSemanticDomainInitialization(); + } + final InstanceHandler deSz = InstanceHandler.getInstance(); + deSz.doInitialFullDeserialization(); + } + }); + return null; + } + +} diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/commands/Search.java b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/commands/Search.java new file mode 100644 index 0000000..479d84d --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/commands/Search.java @@ -0,0 +1,92 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.containmenttree.viewer.commands; + +import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.swt.custom.BusyIndicator; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Tree; +import org.gmodel.repository.client.RepositoryClient; +import org.gmodel.repository.client.mediator.RepositoryClientMediator; +import org.gmodel.serialization.container.ArtefactContainer; +import org.gmodel.serialization.container.ContainerTypeMapper; +import org.gmodel.serialization.container.SearchResultType; +import org.gmodel.serialization.serializer.ProtocolType; +import org.gmodel.serialization.serializer.SerializationType; +import org.gmodel.visualization.containmenttree.viewer.Viewer; +import org.gmodel.visualization.containmenttree.viewer.handlers.EditorLoadingHandler; + +public class Search extends AbstractHandler { + + public static final String COMMAND_ID = "org.gmodel.visualization.containmenttree.viewer.commands.search"; + + public Object execute(final ExecutionEvent event) throws ExecutionException { + final Display display = Display.getCurrent(); + final String searchTxt = Viewer.getSearchText(); + if (searchTxt != null && !searchTxt.trim().equals("")) { + + BusyIndicator.showWhile(display, new Runnable() { + public void run() { + try { + doSearch(); + } catch (final Throwable th) { + Logger.getLogger("global").log(Level.SEVERE, null, th); + } + } + + private void doSearch() { + final RepositoryClient repoClient = RepositoryClientMediator.getInstance().getComponent(ProtocolType.REPOSITORY_CLIENT); + final ArtefactContainer searchRequestContainer = ContainerTypeMapper.mapArugmentToArtefactContainerContent(searchTxt, SerializationType.SEARCH_ARGUMENTS); + final ArtefactContainer searchResultsContainer = repoClient.get(searchRequestContainer); + final List results = ContainerTypeMapper.mapSearchResultListToSearchResultTypeList(searchResultsContainer.getSearchResult()); + + if (results != null) { + display.asyncExec(new Runnable() { + public void run() { + final Tree tree = Viewer.getContainmentTreeViewer().getTree(); + if (tree.isDisposed()) { + return; + } + tree.setCursor(null); + tree.setEnabled(true); + EditorLoadingHandler.openSearchResultsWidget(searchTxt, results); + } + }); + } + } + }); + } + return null; + } + +} diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/commands/StoreRoot.java b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/commands/StoreRoot.java new file mode 100644 index 0000000..5613f23 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/commands/StoreRoot.java @@ -0,0 +1,125 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.containmenttree.viewer.commands; + +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.swt.custom.BusyIndicator; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Tree; +import org.gmodel.G; +import org.gmodel.api.models.Root; +import org.gmodel.repository.client.RepositoryClient; +import org.gmodel.repository.client.RepositoryClientImpl; +import org.gmodel.semanticextensions.outershells.SemanticExtensions; +import org.gmodel.semanticextensions.testscripts.Test; +import org.gmodel.serialization.container.ArtefactContainer; +import org.gmodel.serialization.container.ObjectFactoryHolder; +import org.gmodel.serialization.serializer.SerializationContent; +import org.gmodel.serialization.serializer.SerializationType; +import org.gmodel.serialization.serializer.Serializer; +import org.gmodel.serialization.serializer.SerializerHolder; +import org.gmodel.visualization.containmenttree.viewer.ContainmentTreeManager; +import org.gmodel.visualization.containmenttree.viewer.ContainmentTreeViewerStatus; +import org.gmodel.visualization.containmenttree.viewer.Viewer; + +public class StoreRoot extends AbstractHandler { + + public static final String COMMAND_ID = "org.gmodel.visualization.containmenttree.viewer.commands.storeroot"; + + public Object execute(final ExecutionEvent event) throws ExecutionException { + final Display display = Display.getCurrent(); + + BusyIndicator.showWhile(display, new Runnable() { + public void run() { + try { + storeRoot(); + } catch (final Throwable th) { + Logger.getLogger("global").log(Level.SEVERE, null, th); //$NON-NLS-1$ + } + } + + private void storeRoot() throws Exception { + if(!ContainmentTreeViewerStatus.getInstance().isKernelInitialized()) { + bootstrappingByScripts(); + final RepositoryClient client = RepositoryClientImpl.getInstance(); + final ArtefactContainer persistenceArtefact = ObjectFactoryHolder.getInstance().createArtefactContainer(); + persistenceArtefact.setContentType(SerializationType.IN_MEMORY_PERSISTENCE.toString()); + client.put(persistenceArtefact); + persistenceArtefact.setContentType(SerializationType.OBJECT_POOL_PERSISTENCE.toString()); + client.put(persistenceArtefact); + } + ContainmentTreeViewerStatus.getInstance().setKernelInitialized(true); + display.asyncExec(new Runnable() { + public void run() { + final Tree tree = Viewer.getContainmentTreeViewer().getTree(); + if (tree.isDisposed()) { + return; + } + tree.setCursor(null); + tree.setEnabled(true); + Viewer.getContainmentTreeViewer().setInput(ContainmentTreeManager.getTreeManager()); + Viewer.selectNode(Root.root.identity().uniqueRepresentationReference()); + } + }); + } + + private void bootstrappingByScripts() { + org.gmodel.G.completeOpenSourceKernelInitialization(); + SemanticExtensions.instantiateFeature(); + org.gmodel.kernel.artifactinstantiation.InstantiationSequences.run(); + G.goLiveWithGmodelEditor(); + } + + private void fullInstantiation() { + Test.main(null); + } + + private List getAllArtifacts() throws Exception { + final Serializer sz = SerializerHolder.getGmodelInstanceSerializer(SerializationType.XML); + final List sessionContent = sz.serializeRoot(); + final List artifacts = new ArrayList(); + + for(final SerializationContent content : sessionContent) { + artifacts.add(content.getContent()); + } + + return artifacts; + } + + }); + + return null; + } + +} diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/contributions/VisualizationContributionItem.java b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/contributions/VisualizationContributionItem.java new file mode 100644 index 0000000..faad086 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/contributions/VisualizationContributionItem.java @@ -0,0 +1,99 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.containmenttree.viewer.contributions; + +import java.util.Collections; + +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.commands.IHandler; +import org.eclipse.core.expressions.IEvaluationContext; +import org.eclipse.jface.action.ContributionItem; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.MenuItem; +import org.eclipse.swt.widgets.ToolBar; +import org.eclipse.swt.widgets.ToolItem; +import org.eclipse.ui.IViewSite; +import org.eclipse.ui.handlers.IHandlerService; + +public class VisualizationContributionItem extends ContributionItem { + + private static final String MENU_TEXT = "Visualize"; + private final IViewSite viewSite; + private final IHandler handler; + private MenuItem menuItem; + private ToolItem toolItem; + + public VisualizationContributionItem(final IViewSite viewSite, final IHandler handler) { + this.handler = handler; + this.viewSite = viewSite; + } + + @Override + public void fill(final Menu menu, final int index) { + menuItem = new MenuItem(menu, SWT.NONE, index); + menuItem.setText(MENU_TEXT); + menuItem.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(final SelectionEvent e) { + run(); + } + }); + } + + @Override + public void fill(final ToolBar parent, final int index) { + toolItem = new ToolItem(parent, SWT.NONE, index); + toolItem.setToolTipText(MENU_TEXT); + toolItem.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(final SelectionEvent e) { + run(); + } + }); + } + + public void run() { + final IHandlerService handlerService = (IHandlerService) viewSite + .getService(IHandlerService.class); + final IEvaluationContext evaluationContext = handlerService + .createContextSnapshot(true); + final ExecutionEvent event = new ExecutionEvent(null, Collections.EMPTY_MAP, + null, evaluationContext); + + try { + handler.execute(event); + } catch (final ExecutionException ex) { + java.util.logging.Logger.getLogger("global").log( + java.util.logging.Level.SEVERE, null, ex); + } + } + +} diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/handlers/EditorLoadingHandler.java b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/handlers/EditorLoadingHandler.java new file mode 100644 index 0000000..ba6afcf --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/handlers/EditorLoadingHandler.java @@ -0,0 +1,70 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.containmenttree.viewer.handlers; + +import java.util.List; + +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.PartInitException; +import org.gmodel.serialization.container.SearchResultType; +import org.gmodel.visualization.containmenttree.viewer.SearchWidgetInput; +import org.gmodel.visualization.containmenttree.viewer.Viewer; +import org.gmodel.visualization.containmenttree.viewer.VisualizationInput; +import org.gmodel.visualization.containmenttree.viewer.model.ContainmentTreeNode; + +public class EditorLoadingHandler { + + private static final String SEARCH_WIDGET_ID = "org.gmodel.search.widget.editors.ResultsView"; + private static final String VISUALIZATION_WIDGET_ID = "org.gmodel.visualization.graph.editors.GmodelGraphViewer"; + + public static void openVisualizationWidget(final ContainmentTreeNode node, final TreeViewer controlViewer) { + try { + final IWorkbenchPage page = getActivePage(); + page.openEditor(new VisualizationInput(node, controlViewer), VISUALIZATION_WIDGET_ID); + } catch (final PartInitException ex) { + java.util.logging.Logger.getLogger("global").log( + java.util.logging.Level.SEVERE, null, ex); + } + } + + private static IWorkbenchPage getActivePage() { + return Viewer.getViewerSite().getPage(); + } + + public static void openSearchResultsWidget(final String searchText, final List results) { + try { + final IWorkbenchPage page = getActivePage(); + page.openEditor(new SearchWidgetInput(searchText, results), SEARCH_WIDGET_ID); + } catch (final PartInitException ex) { + java.util.logging.Logger.getLogger("global").log( + java.util.logging.Level.SEVERE, null, ex); + } + + } +} + diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/image/TreeIcon.java b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/image/TreeIcon.java new file mode 100644 index 0000000..fa89261 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/image/TreeIcon.java @@ -0,0 +1,56 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.containmenttree.viewer.image; + +import java.net.URL; + +import org.eclipse.core.runtime.FileLocator; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Platform; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.swt.graphics.Image; +import org.gmodel.visualization.containmenttree.viewer.ContainmentTreeViewerPlugin; + +public enum TreeIcon { + VERTEX, CONCRETE_INSTANCE, ABSTRACT_INSTANCE, ROOT, RETRIEVE, SEARCH, STORE; + + private static final String DIRECTORY_PATH = "icons"; + private static final String FILE_EXTENSION = ".png"; + + private Image image; + + private TreeIcon() { + final String path = name().toLowerCase() + FILE_EXTENSION; + final URL url = FileLocator.find(Platform.getBundle(ContainmentTreeViewerPlugin.PLUGIN_ID), new Path(DIRECTORY_PATH + "/" + path), null); + final ImageDescriptor imgDesc = ImageDescriptor.createFromURL(url); + image = imgDesc.createImage(); + } + + public Image getImage() { + return image; + } +} diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/messages.properties b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/messages.properties new file mode 100644 index 0000000..8a6ce27 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/messages.properties @@ -0,0 +1 @@ +SearchTextComposite_SEARCH_HELP_TEXT=Search diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/model/ContainmentModel.java b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/model/ContainmentModel.java new file mode 100644 index 0000000..be8c799 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/model/ContainmentModel.java @@ -0,0 +1,152 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.containmenttree.viewer.model; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.gmodel.G; +import org.gmodel.Set; +import org.gmodel.api.models.Root; +import org.gmodel.serialization.serializer.InstanceBuilder; + +public class ContainmentModel { + + private final Map> setRegistry; + private final ContainmentTreeNode rootNode; + + public ContainmentModel() { + setRegistry = new HashMap>(); + rootNode = setUpTree(); + } + + private ContainmentTreeNode setUpTree() { + final ContainmentTreeNode root = new ContainmentTreeNode(null, Root.root); + setUpContentTree(root); + return root; + } + + private void setUpContentTree(final ContainmentTreeNode rootNode) { + final Set rootSet = rootNode.getSet(); + for (final Set set : rootSet.filterInstances()) { + if (InstanceBuilder.isSerializableInstance(set) && set.flavor().isEqualTo(G.coreGraphs.vertex)) { + final ContainmentTreeNode node = new ContainmentTreeNode( + rootNode, set); + setUpVertices(node); + rootNode.addToChildNodes(node); + } + } + } + + private void setUpVertices(final ContainmentTreeNode node) { + final Set set = node.getSet(); + for (final Set s : set.filterInstances()) { + if (s.flavor().isEqualTo(G.coreGraphs.vertex)) { + final ContainmentTreeNode vertexNode = new ContainmentTreeNode(node, s); + node.addToChildNodes(vertexNode); + setUpVertices(vertexNode); + } + } + } + + private void buildTree(final Set set) { + for (final Set s : set.filterInstances()) { + if (!s.identity().isPartOfKernel() + && !s.category().identity().isPartOfKernel() + && s.flavor().isEqualTo(G.coreGraphs.vertex)) { + final String key = s.category().identity() + .uniqueRepresentationReference().toString(); + if (!setRegistry.containsKey(key)) { + setRegistry.put(key, new ArrayList()); + } + setRegistry.get(key).add(s); + } + } + } + + private void setUpTopSets(final ContainmentTreeNode root) { + for (final Set s : Root.root.filterInstances()) { + if (!s.identity().isPartOfKernel() + && s.category().identity().isPartOfKernel() + && s.flavor().isEqualTo(G.coreGraphs.vertex)) { + final ContainmentTreeNode node = new ContainmentTreeNode(root, + s); + root.addToChildNodes(node); + final String key = s.identity() + .uniqueRepresentationReference().toString(); + for (final Set set : node.getSet().filterInstances()) { + if (set.flavor().isEqualTo(G.coreGraphs.vertex)) { + final ContainmentTreeNode vertexNode = new ContainmentTreeNode( + node, set); + node.addToChildNodes(vertexNode); + } + } + if (setRegistry.containsKey(key)) { + final List instances = setRegistry.get(key); + for (final Set instance : instances) { + final ContainmentTreeNode instanceNode = new ContainmentTreeNode( + node, instance); + node.addToChildNodes(instanceNode); + setUpLowerSets(instanceNode); + } + } + } + } + } + + private void setUpLowerSets(final ContainmentTreeNode parentNode) { + final String key = parentNode.getSet().identity() + .uniqueRepresentationReference().toString(); + for (final Set set : parentNode.getSet().filterInstances()) { + if (set.flavor().isEqualTo(G.coreGraphs.vertex)) { + final ContainmentTreeNode node = new ContainmentTreeNode( + parentNode, set); + parentNode.addToChildNodes(node); + } + } + if (setRegistry.containsKey(key)) { + final List instances = setRegistry.get(key); + for (final Set instance : instances) { + final ContainmentTreeNode node = new ContainmentTreeNode( + parentNode, instance); + parentNode.addToChildNodes(node); + setUpLowerSets(node); + } + } + } + + public ContainmentTreeNode getRoot() { + return rootNode; + } + + public ContainmentTreeNode getContainmentTree() { + return null; + } + +} diff --git a/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/model/ContainmentTreeNode.java b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/model/ContainmentTreeNode.java new file mode 100644 index 0000000..6fa8152 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.containmenttree.viewer/src/org/gmodel/visualization/containmenttree/viewer/model/ContainmentTreeNode.java @@ -0,0 +1,77 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.containmenttree.viewer.model; + +import java.util.ArrayList; +import java.util.List; + +import org.gmodel.Set; + +public class ContainmentTreeNode { + + private ContainmentTreeNode parent; + + private final Set set; + + private final List children; + + public ContainmentTreeNode(final ContainmentTreeNode parent, final Set set) { + this.parent = parent; + this.set = set; + this.children = new ArrayList(); + } + + public Set getSet() { + return set; + } + + public ContainmentTreeNode getParent() { + return parent; + } + + public void setParentSet(final ContainmentTreeNode parent) { + this.parent = parent; + } + + public ContainmentTreeNode[] getChildNodes() { + if (!children.isEmpty()) { + final ContainmentTreeNode[] nodes = new ContainmentTreeNode[children.size()]; + return children.toArray(nodes); + } else { + return null; + } + } + + public void addToChildNodes(final ContainmentTreeNode node) { + children.add(node); + } + + public boolean hasChildren() { + return !children.isEmpty(); + } + +} diff --git a/src/trunk/org.gmodel.visualization.graph/.classpath b/src/trunk/org.gmodel.visualization.graph/.classpath new file mode 100644 index 0000000..9230959 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/.classpath @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/trunk/org.gmodel.visualization.graph/.project b/src/trunk/org.gmodel.visualization.graph/.project new file mode 100644 index 0000000..880ec70 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/.project @@ -0,0 +1,26 @@ + + + org.gmodel.visualization.graph + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/src/trunk/org.gmodel.visualization.graph/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.visualization.graph/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..8f6dc3d --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,70 @@ +#Wed May 13 15:07:03 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.visualization.graph/.settings/org.eclipse.jdt.ui.prefs b/src/trunk/org.gmodel.visualization.graph/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000..d20f2b5 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,54 @@ +#Mon Jun 01 15:10:28 CEST 2009 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=false +sp_cleanup.format_source_code=false +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/src/trunk/org.gmodel.visualization.graph/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.visualization.graph/META-INF/MANIFEST.MF new file mode 100644 index 0000000..b0a6140 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/META-INF/MANIFEST.MF @@ -0,0 +1,27 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.visualization.graph +Bundle-SymbolicName: org.gmodel.visualization.graph; singleton:=true +Bundle-Version: 1.0.0 +Bundle-Activator: org.gmodel.visualization.graph.Activator +Import-Package: org.eclipse.ui.forms, + org.gmodel.eclipse.xpand2 +Require-Bundle: org.gmodel.visualization.html, + org.eclipse.ui, + org.eclipse.core.runtime, + org.eclipse.core.resources, + org.eclipse.ui.editors, + org.eclipse.ui.ide, + org.gmodel.kernel, + org.gmodel.visualization.containmenttree.viewer, + org.eclipse.ui.forms, + org.gmodel.kernel.tests, + org.gmodel.serialization, + org.gmodel.connector, + org.gmodel.repository.client +Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Bundle-ClassPath: lib/org.eclipse.draw2d_3.6.0.v20100525-1225.jar, + lib/org.eclipse.zest.core_1.2.0.v20100525-1225.jar, + lib/org.eclipse.zest.layouts_1.1.0.v20100616-1515.jar, + . diff --git a/src/trunk/org.gmodel.visualization.graph/TODO.txt b/src/trunk/org.gmodel.visualization.graph/TODO.txt new file mode 100644 index 0000000..7882307 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/TODO.txt @@ -0,0 +1,16 @@ +Fix bug with kernel limit + +Hyperlinking improvements in diagrams + +Add hyperlinks to Visibility flavored Sets which are Vertex flavored Sets + +Improve diagram layouts - see JUNG project: +http://dev.eclipse.org/newslists/news.eclipse.tools.gef/msg19754.html + +Move tests for HTML generation to the right place - new org.gmodel.visualization.html.tests project + +Centralise colour choices (can still be hardwired) + +Eclipse "memento" to remember that Containment Tree view opened and which files were open + +Toolbar for navigation - add "breadcrumbs" based on containment tree diff --git a/src/trunk/org.gmodel.visualization.graph/build.properties b/src/trunk/org.gmodel.visualization.graph/build.properties new file mode 100644 index 0000000..f59f258 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/build.properties @@ -0,0 +1,10 @@ +source.. = src/ +output.. = bin/ +bin.includes = plugin.xml,\ + META-INF/,\ + .,\ + icons/,\ + lib/,\ + lib/org.eclipse.draw2d_3.6.0.v20100525-1225.jar,\ + lib/org.eclipse.zest.core_1.2.0.v20100525-1225.jar,\ + lib/org.eclipse.zest.layouts_1.1.0.v20100616-1515.jar diff --git a/src/trunk/org.gmodel.visualization.graph/icons/e_back.gif b/src/trunk/org.gmodel.visualization.graph/icons/e_back.gif new file mode 100644 index 0000000..4fb4150 Binary files /dev/null and b/src/trunk/org.gmodel.visualization.graph/icons/e_back.gif differ diff --git a/src/trunk/org.gmodel.visualization.graph/icons/e_forward.gif b/src/trunk/org.gmodel.visualization.graph/icons/e_forward.gif new file mode 100644 index 0000000..e2f8c3e Binary files /dev/null and b/src/trunk/org.gmodel.visualization.graph/icons/e_forward.gif differ diff --git a/src/trunk/org.gmodel.visualization.graph/icons/icon.png b/src/trunk/org.gmodel.visualization.graph/icons/icon.png new file mode 100644 index 0000000..6469cea Binary files /dev/null and b/src/trunk/org.gmodel.visualization.graph/icons/icon.png differ diff --git a/src/trunk/org.gmodel.visualization.graph/icons/tree.png b/src/trunk/org.gmodel.visualization.graph/icons/tree.png new file mode 100644 index 0000000..c32d25c Binary files /dev/null and b/src/trunk/org.gmodel.visualization.graph/icons/tree.png differ diff --git a/src/trunk/org.gmodel.visualization.graph/lib/org.eclipse.draw2d_3.6.0.v20100525-1225.jar b/src/trunk/org.gmodel.visualization.graph/lib/org.eclipse.draw2d_3.6.0.v20100525-1225.jar new file mode 100644 index 0000000..eca4ff6 Binary files /dev/null and b/src/trunk/org.gmodel.visualization.graph/lib/org.eclipse.draw2d_3.6.0.v20100525-1225.jar differ diff --git a/src/trunk/org.gmodel.visualization.graph/lib/org.eclipse.zest.core_1.2.0.v20100525-1225.jar b/src/trunk/org.gmodel.visualization.graph/lib/org.eclipse.zest.core_1.2.0.v20100525-1225.jar new file mode 100644 index 0000000..72f7698 Binary files /dev/null and b/src/trunk/org.gmodel.visualization.graph/lib/org.eclipse.zest.core_1.2.0.v20100525-1225.jar differ diff --git a/src/trunk/org.gmodel.visualization.graph/lib/org.eclipse.zest.layouts_1.1.0.v20100616-1515.jar b/src/trunk/org.gmodel.visualization.graph/lib/org.eclipse.zest.layouts_1.1.0.v20100616-1515.jar new file mode 100644 index 0000000..834b4b2 Binary files /dev/null and b/src/trunk/org.gmodel.visualization.graph/lib/org.eclipse.zest.layouts_1.1.0.v20100616-1515.jar differ diff --git a/src/trunk/org.gmodel.visualization.graph/plugin.xml b/src/trunk/org.gmodel.visualization.graph/plugin.xml new file mode 100644 index 0000000..b453c56 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/plugin.xml @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/src/trunk/org.gmodel.visualization.graph/pom.xml b/src/trunk/org.gmodel.visualization.graph/pom.xml new file mode 100644 index 0000000..e5fb675 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/pom.xml @@ -0,0 +1,10 @@ + + 4.0.0 + + org.gmodel + org.gmodel.eclipse + 1.0.0 + + org.gmodel.visualization.graph + eclipse-plugin + diff --git a/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/Activator.java b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/Activator.java new file mode 100644 index 0000000..01112c0 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/Activator.java @@ -0,0 +1,89 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.graph; + +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.osgi.framework.BundleContext; + +/** + * The activator class controls the plug-in life cycle + */ +public class Activator extends AbstractUIPlugin { + + // The plug-in ID + public static final String PLUGIN_ID = "org.gmodel.visualization.graph"; + + // The shared instance + private static Activator plugin; + + /** + * The constructor + */ + public Activator() { + } + + /* + * (non-Javadoc) + * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) + */ + @Override + public void start(final BundleContext context) throws Exception { + super.start(context); + plugin = this; + } + + /* + * (non-Javadoc) + * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) + */ + @Override + public void stop(final BundleContext context) throws Exception { + plugin = null; + super.stop(context); + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public static Activator getDefault() { + return plugin; + } + + /** + * Returns an image descriptor for the image file at the given + * plug-in relative path + * + * @param path the path + * @return the image descriptor + */ + public static ImageDescriptor getImageDescriptor(final String path) { + return imageDescriptorFromPlugin(PLUGIN_ID, path); + } +} diff --git a/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/editors/GmodelGraphViewer.java b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/editors/GmodelGraphViewer.java new file mode 100644 index 0000000..0384fe9 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/editors/GmodelGraphViewer.java @@ -0,0 +1,429 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.graph.editors; + +import java.net.URL; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.eclipse.core.resources.IResourceChangeEvent; +import org.eclipse.core.resources.IResourceChangeListener; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.FileLocator; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Platform; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.BusyIndicator; +import org.eclipse.swt.custom.CTabFolder; +import org.eclipse.swt.custom.CTabItem; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.graphics.Rectangle; +import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Layout; +import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.MenuItem; +import org.eclipse.swt.widgets.ToolBar; +import org.eclipse.swt.widgets.ToolItem; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IEditorSite; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.forms.IFormPart; +import org.eclipse.ui.forms.IManagedForm; +import org.eclipse.ui.forms.editor.SharedHeaderFormEditor; +import org.eclipse.ui.forms.widgets.Form; +import org.eclipse.ui.forms.widgets.FormToolkit; +import org.eclipse.zest.core.widgets.Graph; +import org.eclipse.zest.core.widgets.ZestStyles; +import org.gmodel.Set; +import org.gmodel.api.Transaction; +import org.gmodel.repository.client.RepositoryClient; +import org.gmodel.repository.client.RepositoryClientImpl; +import org.gmodel.serialization.container.ArtefactContainer; +import org.gmodel.serialization.container.ObjectFactoryHolder; +import org.gmodel.serialization.serializer.SerializationType; +import org.gmodel.visualization.containmenttree.viewer.VisualizationInput; +import org.gmodel.visualization.containmenttree.viewer.model.ContainmentTreeNode; +import org.gmodel.visualization.graph.Activator; +import org.gmodel.visualization.graph.rendering.HtmlRenderer; +import org.gmodel.visualization.graph.rendering.Renderer; +import org.gmodel.visualization.graph.rendering.RenderingCoordinator; +import org.gmodel.visualization.graph.rendering.RenderingHistory; +import org.gmodel.visualization.graph.rendering.StructuralGraphRenderer; +import org.gmodel.visualization.graph.rendering.SuperSetGraphRenderer; +import org.gmodel.visualization.graph.rendering.VisibilityGraphRenderer; + +public class GmodelGraphViewer extends SharedHeaderFormEditor implements IResourceChangeListener { + + + private static final String STRUCTURAL_VIEW_TITLE = "Structure"; + + private static final String VISIBILITY_VIEW_TITLE = "Scope"; + + private static final String SUPERSET_VIEW_TITLE = "Reuse"; + + private static final String HTML_VIEW_TITLE = "Details"; + + private ContainmentTreeNode renderingNode; + + private RenderingCoordinator coordinator; + + private TreeViewer controlViewer; + + private VisualizationInput input; + + /** + * Records the index of the last open tab. This tab will be the default for new instances. + */ + private static int lastOpenTabIndex; + + private ToolItem backButton; + + private ToolItem forwardButton; + + private SetMenu backButtonListener; + + private SetMenu forwardButtonListener; + + private RenderingHistory history; + + protected boolean dirty = false; + + /** + * Original authors: + * Rob Warner (rwarner@interspatial.com) + * Robert Harris (rbrt_harris@yahoo.com) + */ + private class SetMenu extends SelectionAdapter { + + private final Menu menu; + + private final Map setIndexes; + + private final int offsetMultiplier; + + public SetMenu(final ToolItem dropdown, final boolean forward) { + this.menu = new Menu(dropdown.getParent()); + this.setIndexes = new HashMap(); + this.offsetMultiplier = forward ? 1 : -1; + } + + private void add(final Set set) { + final int index = setIndexes.size() + 1; + setIndexes.put(set, index); + final MenuItem menuItem = new MenuItem(menu, SWT.NONE); + menuItem.setData(set); + menuItem.setText(getName(set)); + menuItem.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(final SelectionEvent event) { + final MenuItem selected = (MenuItem) event.widget; + final Set selectedSet = (Set) selected.getData(); + final int index = setIndexes.get(selectedSet); + final int offset = offsetMultiplier * index; + navigate(offset); + } + }); + } + + public void setItems(final List sets) { + // dispose of existing items to remove them from the menu + for (final MenuItem menuItem : menu.getItems()) { + menuItem.dispose(); + } + + setIndexes.clear(); + // add new items + for (final Set set : sets) { + add(set); + } + } + + /** + * Called when either the button itself or the dropdown arrow is clicked + * + * @param event + * the event that trigged this call + */ + @Override + public void widgetSelected(final SelectionEvent event) { + // If they clicked the arrow, we show the list + if (event.detail == SWT.ARROW) { + // Determine where to put the dropdown list + final ToolItem item = (ToolItem) event.widget; + final Rectangle rect = item.getBounds(); + final Point rectangleLocation = new Point(rect.x, rect.y); + final Point pt = item.getParent().toDisplay(rectangleLocation); + menu.setLocation(pt.x, pt.y + rect.height); + menu.setVisible(true); + } else { + // button pushed - handled by other listener + } + } + } + + public GmodelGraphViewer() { + ResourcesPlugin.getWorkspace().addResourceChangeListener(this); + } + + private void addHtmlPage() { + final Composite parentContainer = new Composite(getContainer(), SWT.NONE); + parentContainer.setLayout(new FillLayout()); + final int index = addPage(parentContainer); + setPageText(index, HTML_VIEW_TITLE); + + final HtmlRenderer htmlRenderer = new HtmlRenderer(coordinator, parentContainer); + addRenderer(htmlRenderer); + } + + @Override + protected void addPages() { + coordinator.updateSetToRender(renderingNode.getSet()); + + final Graph structuralGraph = addZestPage(STRUCTURAL_VIEW_TITLE); + addRenderer(new StructuralGraphRenderer(structuralGraph, coordinator, getLastTabItem())); + + final Graph visibilityGraph = addZestPage(VISIBILITY_VIEW_TITLE); + addRenderer(new VisibilityGraphRenderer(visibilityGraph, coordinator, getLastTabItem())); + + final Graph superSetGraph = addZestPage(SUPERSET_VIEW_TITLE); + addRenderer(new SuperSetGraphRenderer(superSetGraph, coordinator, getLastTabItem())); + + addHtmlPage(); + + // initial rendering + setActivePage(lastOpenTabIndex); + } + + private void addRenderer(final Renderer renderer) { + coordinator.addRenderer(renderer); + } + + private Graph addZestPage(final String tabTitle) { + final Composite parentContainer = new Composite(getContainer(), SWT.NONE); + final Graph graph = new Graph(parentContainer, SWT.NONE); + graph.setNodeStyle(ZestStyles.NODES_NO_LAYOUT_ANIMATION); + parentContainer.setLayout(new FillLayout()); + final int index = addPage(parentContainer); + setPageText(index, tabTitle); + return graph; + } + + private ToolItem createDropDownButton(final ToolBar parent, final Image image) { + final ToolItem item = new ToolItem(parent, SWT.DROP_DOWN); + item.setImage(image); + // initially disabled + item.setEnabled(false); + return item; + } + + /** + * Subclasses should extend this method to configure the form that owns the + * shared header. If the header form will contain controls that can change + * the state of the editor, they should be wrapped in an IFormPart so that + * they can participate in the life cycle event management. + * + * @param headerForm the form that owns the shared header + * @see IFormPart + */ + @Override + protected void createHeaderContents(final IManagedForm headerForm) { + final FormToolkit toolkit = getToolkit(); + final Form form = headerForm.getForm().getForm(); + toolkit.decorateFormHeading(form); + createHeaderControls(form); + } + + private void createHeaderControls(final Form form) { + final Layout layout = new FillLayout(); + final Composite headClient = new Composite(form.getHead(), SWT.NULL); + headClient.setLayout(layout); + + final ToolBar toolBar = new ToolBar(headClient, SWT.FLAT); + + createPreviousControl(toolBar); + createNextControl(toolBar); + + form.setHeadClient(headClient); + } + + private void createNextControl(final ToolBar toolBar) { + forwardButton = createDropDownButton(toolBar, getImage("e_forward.gif")); + forwardButtonListener = new SetMenu(forwardButton, true); + forwardButton.addSelectionListener(forwardButtonListener); + + forwardButton.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(final SelectionEvent e) { + if (e.detail != SWT.ARROW) { + final Set next = history.next(); + updateSetToRenderAfterNavigation(next); + } + } + }); + } + + private void createPreviousControl(final ToolBar toolBar) { + backButton = createDropDownButton(toolBar, getImage("e_back.gif")); + backButtonListener = new SetMenu(backButton, false); + backButton.addSelectionListener(backButtonListener); + + backButton.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(final SelectionEvent e) { + if (e.detail != SWT.ARROW) { + final Set previous = history.previous(); + updateSetToRenderAfterNavigation(previous); + } + } + }); + } + + @Override + public void dispose() { + ResourcesPlugin.getWorkspace().removeResourceChangeListener(this); + super.dispose(); + } + + @Override + public void doSave(final IProgressMonitor monitor) { + + BusyIndicator.showWhile(Display.getCurrent(), new Runnable() { + public void run() { + final RepositoryClient client = RepositoryClientImpl.getInstance(); + final ArtefactContainer persistenceArtefact = ObjectFactoryHolder.getInstance().createArtefactContainer(); + persistenceArtefact.setContentType(SerializationType.CHANGESET_PERSISTENCE.toString()); + client.put(persistenceArtefact); + Transaction.commitChangedSets(); + setDirty(false); + } + }); + } + + @Override + public void doSaveAs() { + // do nothing + } + + private Image getImage(final String fileName) { + final URL url = FileLocator.find(Platform.getBundle(Activator.PLUGIN_ID), new Path("icons/" + fileName), null); + final ImageDescriptor imgDesc = ImageDescriptor.createFromURL(url); + return imgDesc.createImage(); + } + + private CTabItem getLastTabItem() { + final int index = getPageCount() - 1; + final Control control = (Control) pages.get(index); + final CTabFolder folder = (CTabFolder) control.getParent(); + final CTabItem item = folder.getItem(index); + return item; + } + + private String getName(final Set set) { + return set.identity().name(); + } + + @Override + public String getTitleToolTip() { + return input.getName(); + } + + @Override + public void init(final IEditorSite site, final IEditorInput editorInput) throws PartInitException { + super.init(site, editorInput); + input = (VisualizationInput) editorInput; + renderingNode = input.getNode(); + controlViewer = input.getContainmentTreeViewer(); + + coordinator = new RenderingCoordinator(this, controlViewer); + history = coordinator.getHistory(); + } + + @Override + public boolean isDirty(){ + return dirty; + } + + @Override + public boolean isSaveAsAllowed() { + return false; + } + + private void navigate(final int offset) { + coordinator.navigate(offset); + coordinator.render(); + } + + @Override + protected void pageChange(final int newPageIndex) { + // inform coordinator of page change + coordinator.pageChange(newPageIndex); + lastOpenTabIndex = newPageIndex; + } + + public void resourceChanged(final IResourceChangeEvent event) { + } + + public void setDirty(final boolean value){ + dirty = value; + firePropertyChange(PROP_DIRTY); + } + + void setFont() { + } + + public void updateSetToRender(final Set setToRender) { + final String text = setToRender.identity().name(); + setPartName(text); + input.updateSetToRender(setToRender); + setTitleToolTip(input.getName()); + + // update button state + backButton.setEnabled(history.hasPrevious()); + forwardButton.setEnabled(history.hasNext()); + + // update dropdowns + backButtonListener.setItems(history.getPreviousSets()); + forwardButtonListener.setItems(history.getNextSets()); + } + + private void updateSetToRenderAfterNavigation(final Set setToRender) { + // inform coordinator of change + coordinator.updateSetToRender(setToRender); + coordinator.render(); + } + +} diff --git a/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/editors/GmodelGraphViewerContributor.java b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/editors/GmodelGraphViewerContributor.java new file mode 100644 index 0000000..a73090c --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/editors/GmodelGraphViewerContributor.java @@ -0,0 +1,53 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.graph.editors; + +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.part.MultiPageEditorActionBarContributor; +import org.eclipse.ui.texteditor.ITextEditor; + +public class GmodelGraphViewerContributor extends MultiPageEditorActionBarContributor { + + protected IAction getAction(final ITextEditor editor, final String actionID) { + return (editor == null ? null : editor.getAction(actionID)); + } + + @Override + public void setActivePage(final IEditorPart part) { + } + + @Override + public void contributeToMenu(final IMenuManager manager) { + } + + @Override + public void contributeToToolBar(final IToolBarManager manager) { + } +} diff --git a/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/figures/AttributeFigure.java b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/figures/AttributeFigure.java new file mode 100644 index 0000000..80854b9 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/figures/AttributeFigure.java @@ -0,0 +1,44 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.graph.figures; + +import org.eclipse.draw2d.Figure; +import org.eclipse.draw2d.ToolbarLayout; + +public class AttributeFigure extends Figure { + + public AttributeFigure() { + final ToolbarLayout layout = new ToolbarLayout(); + layout.setMinorAlignment(ToolbarLayout.ALIGN_TOPLEFT); + layout.setVertical(false); + layout.setStretchMinorAxis(false); + layout.setSpacing(2); + setLayoutManager(layout); + setBorder(new InnerFigureBorder(false)); + } + +} diff --git a/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/figures/FigureBuilder.java b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/figures/FigureBuilder.java new file mode 100644 index 0000000..eb9c206 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/figures/FigureBuilder.java @@ -0,0 +1,183 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.graph.figures; + +import org.eclipse.draw2d.Connection; +import org.eclipse.draw2d.ImageFigure; +import org.eclipse.draw2d.Label; +import org.eclipse.draw2d.PolygonDecoration; +import org.eclipse.draw2d.PolylineConnection; +import org.eclipse.draw2d.geometry.PointList; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Font; +import org.eclipse.swt.widgets.Display; +import org.eclipse.zest.core.widgets.Graph; +import org.eclipse.zest.core.widgets.GraphConnection; +import org.eclipse.zest.core.widgets.GraphNode; +import org.eclipse.zest.core.widgets.ZestStyles; +import org.gmodel.Set; +import org.gmodel.api.models.GmodelSemanticDomains; + +public class FigureBuilder { + + private static final int ANNOTATION_FONT_SIZE = 9; + private static final String FONT_NAME = "Arial"; + private static final int FONT_SIZE = 10; + private static final String META_SYMBOL = ":"; + + public static GmodelNodeFigure buildGmodelNodeFigure() { + return new GmodelNodeFigure(false); + } + + public static GmodelNodeFigure buildGmodelNodeFigure(final boolean isExternal) { + return new GmodelNodeFigure(isExternal); + } + + private static Label createMetaLabel(final String metaElementName, final boolean isAbstract) { + final Label metaLabel = new Label(metaElementName+META_SYMBOL); + if (isAbstract) { + metaLabel.setFont(new Font(null, FONT_NAME, FONT_SIZE, SWT.ITALIC)); + } else { + metaLabel.setFont(new Font(null, FONT_NAME, FONT_SIZE, SWT.NONE)); + } + metaLabel.setForegroundColor(Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GRAY)); + return metaLabel; + } + + private static Label createLabel(final String name) { + final Label label = new Label(name); + label.setFont(new Font(null, FONT_NAME, 10, SWT.NONE)); + label.setForegroundColor(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK)); + return label; + } + + public static void addIcon(final GmodelNodeFigure nodeFigure, final Set set) { + final ImageFigure imgFig = new ImageFigure(LabelIcon.ICON.getImage()); + nodeFigure.addToAttributesFigure(imgFig); + } + + public static void createMetaNamePair(final GmodelNodeFigure nodeFigure, final Set set) { + final boolean isAbstract = set.category().value(GmodelSemanticDomains.isAbstract).isEqualTo(GmodelSemanticDomains.isAbstract_TRUE); + nodeFigure.addToAttributesFigure(createMetaLabel(set.category().identity().name(), isAbstract)); + nodeFigure.addToAttributesFigure(createLabel(set.identity().name())); + } + + public static Font containsLabelFont() { + return new Font(null, FONT_NAME, ANNOTATION_FONT_SIZE, SWT.ITALIC); + } + + public static GraphConnection buildVisibilityConnection (final Graph graph, final GraphNode sourceNode, final GraphNode targetNode) { + final GraphConnection conn = new GraphConnection(graph, ZestStyles.CONNECTIONS_SOLID, + sourceNode,targetNode); + conn.setLineColor(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK)); + final PolylineConnection pLine = (PolylineConnection) conn.getConnectionFigure(); + pLine.setAntialias(SWT.ON); + pLine.setLineStyle(SWT.LINE_CUSTOM); + pLine.setLineDash(new float[] { 5.0f, 5.0f }); + final PolygonDecoration decoration = new PolygonDecoration(); + final PointList decoPtList = new PointList(); + decoPtList.addPoint(0,0); + decoPtList.addPoint(-1,1); + decoPtList.addPoint(0,0); + decoPtList.addPoint(-1,-1); + decoration.setTemplate(decoPtList); + decoration.setAntialias(SWT.ON); + pLine.setTargetDecoration(decoration); + return conn; + } + + public static void dashConnection(final Connection conn) { + final PolylineConnection pLine = (PolylineConnection) conn; + pLine.setAntialias(SWT.ON); + pLine.setLineStyle(SWT.LINE_CUSTOM); + pLine.setLineDash(new float[] { 5.0f, 5.0f }); + } + + public static GraphConnection buildSuperSetReferenceConnection (final Graph graph, final GraphNode sourceNode, final GraphNode targetNode) { + final GraphConnection conn = new GraphConnection(graph, ZestStyles.CONNECTIONS_SOLID, + sourceNode,targetNode); + conn.setLineColor(Display.getCurrent().getSystemColor(SWT.COLOR_BLUE)); + final PolylineConnection pLine = (PolylineConnection) conn.getConnectionFigure(); + pLine.setAntialias(SWT.ON); + pLine.setLineStyle(SWT.LINE_CUSTOM); + final PolygonDecoration decoration = new PolygonDecoration(); + final PointList decoPtLinst = new PointList(); + decoPtLinst.addPoint(-1,1); + decoPtLinst.addPoint(0,0); + decoPtLinst.addPoint(-1,-1); + decoration.setTemplate(decoPtLinst); + decoration.setAntialias(SWT.ON); + pLine.setTargetDecoration(decoration); + return conn; + } + + public static void addContainmentArrow(final GraphConnection conn, final boolean hasMetaContainment) { + final PolylineConnection pLine = (PolylineConnection) conn.getConnectionFigure(); + final int colorValue = hasMetaContainment ? SWT.COLOR_BLACK : SWT.COLOR_RED; + pLine.setAntialias(SWT.ON); + pLine.setLineStyle(SWT.LINE_CUSTOM); + final PolygonDecoration decoration = new PolygonDecoration(); + final PointList decoPtList = new PointList(); + decoPtList.addPoint(0,0); + decoPtList.addPoint(-1,1); + decoPtList.addPoint(-2,0); + decoPtList.addPoint(-1,-1); + decoration.setTemplate(decoPtList); + decoration.setAntialias(SWT.ON); + decoration.setForegroundColor(Display.getCurrent().getSystemColor(colorValue)); + pLine.setSourceDecoration(decoration); + } + + public static void addDirectionalArrow(final GraphConnection conn, final boolean isEnd) { + final PolylineConnection pLine = (PolylineConnection) conn.getConnectionFigure(); + pLine.setAntialias(SWT.ON); + pLine.setLineStyle(SWT.LINE_CUSTOM); + final PolygonDecoration decoration = new PolygonDecoration(); + final PointList decoPtLinst = new PointList(); + decoPtLinst.addPoint(0,0); + decoPtLinst.addPoint(-1,1); + decoPtLinst.addPoint(0,0); + decoPtLinst.addPoint(-1,-1); + decoration.setTemplate(decoPtLinst); + decoration.setAntialias(SWT.ON); + decoration.setForegroundColor(Display.getCurrent().getSystemColor(SWT.COLOR_RED)); + if (isEnd) { + pLine.setTargetDecoration(decoration); + } else { + pLine.setSourceDecoration(decoration); + } + } + + public static void createWorkspaceIndex(final GmodelNodeFigure workspaceFigure, final int n) { + final Label indexLabel = new Label(""+(n+1)); + indexLabel.setFont(new Font(null, FONT_NAME, FONT_SIZE, SWT.ITALIC)); + indexLabel.setBackgroundColor(Display.getCurrent().getSystemColor(WorkspaceGraphNode.DEFAULT_COLOR)); + workspaceFigure.setBackgroundColor(Display.getCurrent().getSystemColor(WorkspaceGraphNode.DEFAULT_COLOR)); + workspaceFigure.addToAttributesFigure(indexLabel); + } + +} diff --git a/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/figures/GmodelNodeFigure.java b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/figures/GmodelNodeFigure.java new file mode 100644 index 0000000..2146d22 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/figures/GmodelNodeFigure.java @@ -0,0 +1,71 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.graph.figures; + +import org.eclipse.draw2d.IFigure; +import org.eclipse.draw2d.RoundedRectangle; +import org.eclipse.draw2d.ToolbarLayout; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.widgets.Display; + +public class GmodelNodeFigure extends RoundedRectangle { + + private static final int ALPHA_LEVEL = 125; + + private static final Color FIGURE_COLOUR = new Color(null, 215, 213, 246); + + private final AttributeFigure attributeFigure = new AttributeFigure(); + + public GmodelNodeFigure(final boolean isExternal) { + final ToolbarLayout layout = new ToolbarLayout(); + setLayoutManager(layout); + if (isExternal) { + final Display display = Display.getCurrent(); + final Color white = display.getSystemColor(SWT.COLOR_WHITE); + setColor(white); + setBackgroundColor(white); + setForegroundColor(white); + setBorder(new InnerFigureBorder(true)); + } else { + setBackgroundColor(FIGURE_COLOUR); + } + setOpaque(true); + add(attributeFigure); + setAntialias(SWT.ON); + setAlpha(ALPHA_LEVEL); + } + + public void addToAttributesFigure(final IFigure figure) { + attributeFigure.add(figure); + } + + public void setColor(final Color color) { + this.setBackgroundColor(color); + } + +} diff --git a/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/figures/GmodelRouter.java b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/figures/GmodelRouter.java new file mode 100644 index 0000000..467b924 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/figures/GmodelRouter.java @@ -0,0 +1,71 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.graph.figures; + +import org.eclipse.draw2d.Connection; +import org.eclipse.draw2d.FanRouter; +import org.eclipse.draw2d.IFigure; +import org.eclipse.draw2d.geometry.Point; +import org.eclipse.draw2d.geometry.PointList; +import org.eclipse.zest.core.widgets.internal.PolylineArcConnection; + +public class GmodelRouter extends FanRouter { + + private final static int GAP_SIZE = 30; + + private final IFigure nodeFig; + + public GmodelRouter(final IFigure nodeFig) { + this.nodeFig = nodeFig; + } + + @Override + protected void setEndPoints(final Connection connection) { + if (connection instanceof PolylineArcConnection) { + final PolylineArcConnection pLine = (PolylineArcConnection) connection; + final PointList points = new PointList(); + final int x = nodeFig.getBounds().x; + final int y = nodeFig.getBounds().y; + final int w = nodeFig.getBounds().width; + final int ht = nodeFig.getBounds().height; + final Point p1 = new Point(x + w / 2, y + ht); + final Point p2 = new Point(x + w / 2, y + ht + GAP_SIZE); + final Point p3 = new Point(x - GAP_SIZE, y + ht + GAP_SIZE); + final Point p4 = new Point(x - GAP_SIZE, y + ht / 2); + final Point p5 = new Point(x, y + ht / 2); + points.addPoint(p1); + points.addPoint(p2); + points.addPoint(p3); + points.addPoint(p4); + points.addPoint(p5); + + pLine.setPoints(points); + } else { + super.setEndPoints(connection); + } + } +} diff --git a/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/figures/InnerFigureBorder.java b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/figures/InnerFigureBorder.java new file mode 100644 index 0000000..14f15d2 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/figures/InnerFigureBorder.java @@ -0,0 +1,74 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.graph.figures; + +import org.eclipse.draw2d.AbstractBorder; +import org.eclipse.draw2d.Graphics; +import org.eclipse.draw2d.IFigure; +import org.eclipse.draw2d.geometry.Insets; +import org.eclipse.draw2d.geometry.Rectangle; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Display; + +public class InnerFigureBorder extends AbstractBorder { + + private static final int LINE_WIDTH = 1; + private static final int ARC_DIMENSION = 8; + private static final int ZERO_PADDING = 3; + private static final int PADDING = 3; + + private final boolean isDashed; + + public InnerFigureBorder(final boolean isDashed) { + this.isDashed = isDashed; + } + + public void paint(final IFigure figure, final Graphics graphics, final Insets insets) { + if (isDashed) { + graphics.setAntialias(SWT.ON); + graphics.setLineStyle(SWT.LINE_CUSTOM); + graphics.setForegroundColor(Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GRAY)); + graphics.setLineWidth(LINE_WIDTH); + graphics.setLineDash(new float[] { 5.0f, 5.0f }); + final Rectangle rec = tempRect.setBounds(getPaintRectangle(figure, insets)); + rec.crop(new Insets(LINE_WIDTH, LINE_WIDTH, LINE_WIDTH*2, LINE_WIDTH*2)); + final float lineInset = Math.max(1.0f, graphics.getLineWidthFloat()) / 2.0f; + graphics.drawRoundRectangle(rec, Math.max(0, ARC_DIMENSION - (int) lineInset), + Math.max(0, ARC_DIMENSION - (int) lineInset)); + } + } + + public Insets getInsets(final IFigure figure) { + if (isDashed) { + return new Insets(ZERO_PADDING, ZERO_PADDING, ZERO_PADDING, ZERO_PADDING); + } else { + return new Insets(PADDING, PADDING, PADDING, PADDING); + } + } + +} + diff --git a/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/figures/LabelIcon.java b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/figures/LabelIcon.java new file mode 100644 index 0000000..c9b4958 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/figures/LabelIcon.java @@ -0,0 +1,58 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.graph.figures; + +import java.net.URL; + +import org.eclipse.core.runtime.FileLocator; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Platform; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.swt.graphics.Image; +import org.gmodel.visualization.graph.Activator; + +public enum LabelIcon { + + METAELEMENT, ICON; + + private static final String DIRECTORY_PATH = "icons"; + private static final String FILE_EXTENSION = ".png"; + + private Image image; + + private LabelIcon() { + final String path = name().toLowerCase() + FILE_EXTENSION; + final URL url = FileLocator.find(Platform.getBundle(Activator.PLUGIN_ID), new Path(DIRECTORY_PATH + "/" + path), null); + final ImageDescriptor imgDesc = ImageDescriptor.createFromURL(url); + image = imgDesc.createImage(); + } + + public Image getImage() { + return image; + } + +} diff --git a/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/figures/SetGraphNode.java b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/figures/SetGraphNode.java new file mode 100644 index 0000000..b2c7d1c --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/figures/SetGraphNode.java @@ -0,0 +1,68 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.graph.figures; + +import org.eclipse.draw2d.IFigure; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Display; +import org.eclipse.zest.core.widgets.GraphNode; +import org.eclipse.zest.core.widgets.IContainer; +import org.gmodel.Set; + +public class SetGraphNode extends GraphNode { + + private Set set; + + final private boolean isExternalSet; + + public SetGraphNode(final IContainer graphModel, final IFigure figure, final Set set, final boolean isExternalSet) { + super(graphModel, SWT.NONE, figure); + this.set = set; + this.isExternalSet = isExternalSet; + this.setBorderColor(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK)); + this.setBorderWidth(2); + } + + @Override + protected IFigure createFigureForModel() { + return (IFigure) getData(); + } + + public Set getSet() { + return set; + } + + public boolean isExternalSet() { + return isExternalSet; + } + + public void setSet(final Set set) { + this.set = set; + } + + +} diff --git a/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/figures/WorkspaceGraphNode.java b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/figures/WorkspaceGraphNode.java new file mode 100644 index 0000000..13ed25e --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/figures/WorkspaceGraphNode.java @@ -0,0 +1,76 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.graph.figures; + +import org.eclipse.draw2d.IFigure; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.widgets.Display; +import org.eclipse.zest.core.widgets.GraphNode; +import org.eclipse.zest.core.widgets.IContainer; + +public class WorkspaceGraphNode extends GraphNode { + + final private int workspaceIndex; + final protected static int DEFAULT_COLOR = SWT.COLOR_BLACK; + boolean isSelected; + + public WorkspaceGraphNode(final IContainer graphModel, final IFigure figure, final int workspaceIndex) { + super(graphModel, SWT.NONE, figure); + this.workspaceIndex= workspaceIndex; + this.setBorderColor(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK)); + this.setBorderWidth(2); + } + + @Override + protected IFigure createFigureForModel() { + return (IFigure) getData(); + } + + public int getWorkspaceIndex() { + return workspaceIndex; + } + + public void setAsCurrentWorkspaceNode() { + final GmodelNodeFigure nodeFigure = (GmodelNodeFigure) this.nodeFigure; + nodeFigure.setBackgroundColor(new Color(Display.getCurrent(), 153, 204, 255)); + isSelected = true; + } + + public void deSelectAsCurrentWorkspaceNode() { + final GmodelNodeFigure nodeFigure = (GmodelNodeFigure) this.nodeFigure; + final Display display = Display.getCurrent(); + nodeFigure.setBackgroundColor(display.getSystemColor(DEFAULT_COLOR)); + isSelected = false; + } + + @Override + public boolean isSelected() { + return isSelected; + } + +} diff --git a/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/AbstractGraphRenderer.java b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/AbstractGraphRenderer.java new file mode 100644 index 0000000..1bb1365 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/AbstractGraphRenderer.java @@ -0,0 +1,323 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.graph.rendering; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Random; +import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; + +import org.eclipse.draw2d.ConnectionEndpointLocator; +import org.eclipse.draw2d.Label; +import org.eclipse.draw2d.PolylineConnection; +import org.eclipse.draw2d.geometry.Point; +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.CTabFolder; +import org.eclipse.swt.custom.CTabItem; +import org.eclipse.swt.events.PaintEvent; +import org.eclipse.swt.events.PaintListener; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Text; +import org.eclipse.zest.core.widgets.Graph; +import org.eclipse.zest.core.widgets.GraphConnection; +import org.eclipse.zest.core.widgets.GraphNode; +import org.eclipse.zest.layouts.LayoutAlgorithm; +import org.eclipse.zest.layouts.LayoutStyles; +import org.eclipse.zest.layouts.algorithms.SpringLayoutAlgorithm; +import org.eclipse.zest.layouts.progress.ProgressEvent; +import org.eclipse.zest.layouts.progress.ProgressListener; +import org.gmodel.G; +import org.gmodel.Set; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.visualization.graph.figures.FigureBuilder; +import org.gmodel.visualization.graph.figures.GmodelNodeFigure; +import org.gmodel.visualization.graph.figures.SetGraphNode; +import org.gmodel.visualization.graph.figures.WorkspaceGraphNode; + +public abstract class AbstractGraphRenderer extends AbstractRenderer { + + private static final String CARDINALITY_CONCATENATION = ".."; //$NON-NLS-1$ + + private static final int CARDINALITY_LABEL_FROM_OWNER_DISTANCE = 20; + + private static final int LABEL_DISTANCE = 3; + + private static final int LABEL_GAP_MULTIPLIER = 10; + + protected static final int ROOT_COLOR = SWT.COLOR_GRAY; + + protected final Graph graph; + + private final CTabItem item; + + protected SetGraphNode rootNode; + + protected List workspaceNodes; + + private final Set visualizationAspect; + + protected static final int NUMBER_OF_WORKSPACES = 2; + + private static final LayoutAlgorithm LAYOUT_ALGORITHM = new SpringLayoutAlgorithm(LayoutStyles.NO_LAYOUT_NODE_RESIZING); + + private static final String EMPTY_GRAPH_MESSAGE = "There is nothing to display in the current view"; + + private static final InstanceCoordinates instanceCoords = InstanceCoordinates.getInstance(); + + public AbstractGraphRenderer(final Graph graph, final RenderingCoordinator coordinator, final String visualizationAspect, final CTabItem item) { + super(coordinator); + this.graph = graph; + this.item = item; + this.visualizationAspect = InstanceCoordinates.getInstance().getVisualizationVertexByName(visualizationAspect); + setUpGraph(graph); + } + + private void addCardinalityLabel(final String min, final String max, final GraphConnection conn, final boolean isEnd, + final boolean hasMultipleConnections, final boolean edgeTextExits) { + final String NA = GmodelSemanticDomains.is_NOTAPPLICABLE.identity().name(); + if (!min.equals(NA) && !max.equals(NA)) { + final Label cardianlityLabel = new Label(min + CARDINALITY_CONCATENATION + max); + cardianlityLabel.setForegroundColor(Display.getCurrent().getSystemColor(SWT.COLOR_RED)); + final ConnectionEndpointLocator endPointLocator = new ConnectionEndpointLocator(conn.getConnectionFigure(), isEnd); + conn.getConnectionFigure().add(cardianlityLabel, endPointLocator); + // bring the labels closer to the connector if there are no edge labels + final int gapMulti = (edgeTextExits) ? LABEL_GAP_MULTIPLIER: 1; + endPointLocator.setUDistance(CARDINALITY_LABEL_FROM_OWNER_DISTANCE); + if (hasMultipleConnections) { + endPointLocator.setVDistance(LABEL_DISTANCE * gapMulti); + } else { + endPointLocator.setVDistance(-LABEL_DISTANCE * gapMulti); + } + } + } + + protected void addContainsLabel(final Set edge, final Set ee, final GraphConnection conn, final boolean isEnd) { + final Set metaSet = edge.category(); + boolean hasMetaContainment = false; + if (metaSet.flavor().isEqualTo(G.coreGraphs.edge) && !metaSet.identity().isPartOfKernel()) { + final Set metaEdge = metaSet; + final int eeIndex = (isEnd) ? 1 : 0; + final Set mEE; + if (eeIndex == 0) { + mEE = metaEdge.edgeEnds().extractFirst(); + } else { + mEE = metaEdge.edgeEnds().extractSecond(); + } + + if (mEE.value(GmodelSemanticDomains.isContainer).isEqualTo( + GmodelSemanticDomains.isContainer_TRUE)) { + hasMetaContainment = true; + } + } + if (ee.value(GmodelSemanticDomains.isContainer).isEqualTo( + GmodelSemanticDomains.isContainer_TRUE)) { + FigureBuilder.addContainmentArrow(conn, hasMetaContainment); + } + } + + protected void addEdgeEndLabels(final Set ee, final GraphConnection conn, final boolean isEnd, final boolean hasMultipleConnections) { + String eeText = ""; //$NON-NLS-1$ + if (!ee.identity().name().equals((GmodelSemanticDomains.anonymous.identity().name()))) { + eeText = ee.identity().name(); + final Label containLabel = new Label(eeText); + containLabel.setFont(FigureBuilder.containsLabelFont()); + final ConnectionEndpointLocator endPt = new ConnectionEndpointLocator( + conn.getConnectionFigure(), isEnd); + conn.getConnectionFigure().add(containLabel, endPt); + endPt.setUDistance(LABEL_DISTANCE); + endPt.setVDistance(-LABEL_DISTANCE); + if (hasMultipleConnections) { + endPt.setUDistance(LABEL_DISTANCE); + endPt.setVDistance(LABEL_DISTANCE); + } + } + final String iMin = getValueOf(ee, GmodelSemanticDomains.minCardinality); + final String iMax = getValueOf(ee, GmodelSemanticDomains.maxCardinality); + addCardinalityLabel(iMin, iMax, conn, isEnd, hasMultipleConnections, !eeText.trim().equals("")); //$NON-NLS-1$ + } + + protected abstract void addHandlers(); + + @Override + protected void afterRendering() { + if (graph.getNodes().isEmpty()) { + final CTabFolder folder = item.getParent(); + final Text text = new Text(folder, SWT.MULTI); + text.setText(EMPTY_GRAPH_MESSAGE); + text.setEditable(false); + item.setControl(text); + } else { + item.setControl(graph.getParent()); + graph.applyLayout(); + } + } + + @Override + protected void beforeRendering() { + clearGraph(); + } + + private void clearGraph() { + for (final Object object : graph.getConnections().toArray()) { + ((GraphConnection) object).dispose(); + } + for (final Object object : graph.getNodes().toArray()) { + ((GraphNode) object).dispose(); + } + } + + protected void createGraphNode(final Map nodeMap, final Set set, final boolean isPartOfContainmentSet) { + if (!nodeMap.containsKey(set.identity().identifier())) { + final GmodelNodeFigure nodeFigure = FigureBuilder.buildGmodelNodeFigure(!isPartOfContainmentSet); + FigureBuilder.createMetaNamePair(nodeFigure, set); + nodeFigure.setSize(-1, -1); + final GraphNode node = new SetGraphNode(graph, nodeFigure, set, isPartOfContainmentSet); + nodeMap.put(set.identity().identifier(), node); + } + } + + @Override + protected abstract void doRender(); + + protected void enableAntiAliasing(final GraphConnection connection) { + final PolylineConnection pLine = (PolylineConnection) connection.getConnectionFigure(); + pLine.setAntialias(SWT.ON); + } + + private String getValueOf(final Set set, final Set valueSet) { + return set.value(valueSet).identity().name(); + } + + protected Set getVisualizationAspect() { + return visualizationAspect; + } + + protected boolean isPartOfContainmentSet(final Set containmentSet, final Set set) { + return containmentSet.filterInstances().containsSemanticMatch(set); + } + + protected void setUpCoordinatesManager(final Class renderer) { + graph.addPaintListener(new PaintListener(){ + public void paintControl(final PaintEvent e) { + if (rootNode != null) { + rootNode.setLocation(0, 0); + } + if (graph.getSelection().size() > 0) { + if (graph.getSelection().get(0) instanceof SetGraphNode) { + final SetGraphNode setNode= (SetGraphNode) graph.getSelection().get(0); + if (setNode.isExternalSet()) { + System.err.println(""); + } + //Update coordinates whenever a node is moved + if (setNode.isVisible()) { + if (instanceCoords.hasCoordinatesOf(setNode.getSet(), getSetToRender(), visualizationAspect)) { + final Set vizArtifact = instanceCoords.getVisualizedArtifactInstance(getSetToRender()); + instanceCoords.updateCoordinatesOf(setNode.getSet(), setNode.getLocation(), vizArtifact, visualizationAspect); + getCoordinator().coordinatesChanged(); + } + } + } + } + } + }); + + graph.getLayoutAlgorithm().addProgressListener(new ProgressListener() { + private void initNodeLocation() { + for (final Object node : graph.getNodes()) { + if (node instanceof SetGraphNode) { + final SetGraphNode gNode = (SetGraphNode) node; + final Set vizArtifact = (instanceCoords.hasVisualizedArtifactInstance(getSetToRender())) ? + instanceCoords.getVisualizedArtifactInstance(getSetToRender()) : + instanceCoords.addArtifactInstanceToVisualize(getSetToRender()); + try { + if (instanceCoords.hasCoordinatesOf(gNode.getSet(), getSetToRender(), visualizationAspect)) { + final Point nodeLocation = instanceCoords.getCoordinatesOf(gNode.getSet(), vizArtifact, visualizationAspect); + gNode.setLocation(nodeLocation.x, nodeLocation.y); + gNode.setVisible(true); + } else { + instanceCoords.addInstanceToVisualize(gNode.getSet(), vizArtifact, visualizationAspect); + instanceCoords.updateCoordinatesOf(gNode.getSet(), gNode.getLocation(),vizArtifact, visualizationAspect); + gNode.setVisible(true); + } + } catch (final IllegalStateException ex) { + Logger.getLogger("global").log(Level.WARNING, null, ex); + } + } + } + } + + public void progressEnded(final ProgressEvent e) { + initNodeLocation(); + } + + public void progressStarted(final ProgressEvent e) { + } + + public void progressUpdated(final ProgressEvent e) { + } + } + ); + + } + + private void setUpGraph(final Graph graph) { + graph.setLayoutAlgorithm(LAYOUT_ALGORITHM, true); + addHandlers(); + } + + private void turnAllConnectedNodesClear(final int workspaceIndex, final SetGraphNode setNode, final Class renderer) { + setNode.setVisible(false); + final String artifactUUID = setNode.getSet().container().identity().uniqueRepresentationReference().toString(); + final String setUUID = setNode.getSet().identity().uniqueRepresentationReference().toString(); + if (GraphNodeCoordinates.hasCoordinatesOf(artifactUUID, setUUID, renderer)) { + //remove coords and give a new location + GraphNodeCoordinates.removeCoordinatesOf(artifactUUID, setUUID, renderer); + final Random random = new Random(); + final int rndX = random.nextInt(workspaceNodes.get(0).getLocation().x - setNode.getNodeFigure().getBounds().width); + setNode.setLocation(rndX, 300); + GraphNodeCoordinates.addSet(artifactUUID, setUUID, setNode.getLocation(), renderer); + } + final List conns = new ArrayList(setNode.getSourceConnections()); + conns.addAll(setNode.getTargetConnections()); + for (final Object obj : conns) { + final GraphConnection conn = (GraphConnection) obj; + conn.setVisible(false); + final SetGraphNode srcNode = (SetGraphNode) conn.getSource(); + final SetGraphNode destNode = (SetGraphNode) conn.getDestination(); + if (srcNode.isVisible() != false) { + turnAllConnectedNodesClear(workspaceIndex, srcNode, renderer); + } + if (destNode.isVisible() != false) { + turnAllConnectedNodesClear(workspaceIndex, destNode, renderer); + } + } + } + +} diff --git a/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/AbstractRenderer.java b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/AbstractRenderer.java new file mode 100644 index 0000000..f3201ac --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/AbstractRenderer.java @@ -0,0 +1,89 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.graph.rendering; + +import org.gmodel.Set; + +public abstract class AbstractRenderer implements Renderer { + + private final RenderingCoordinator coordinator; + + private boolean renderingNeeded; + + /** + * A local reference to the {@link Set} last rendered is retained because the + * {@link RenderingCoordinator}'s reference may have changed while the focus was + * on a different tab (different renderer), and thus the normal "dirty check" + * (involving checking whether the argument to {@link #updateSetToRender(Set)} is + * the same as that of the {@link RenderingCoordinator}) gives the wrong result. + * In that case, rendering should be done again for the new situation. + */ + private Set setToRender; + + + public AbstractRenderer(final RenderingCoordinator coordinator) { + this.coordinator = coordinator; + renderingNeeded = true; + } + + protected void afterRendering() { + // do nothing + } + + protected void beforeRendering() { + // do nothing + } + + protected abstract void doRender(); + + protected RenderingCoordinator getCoordinator() { + return coordinator; + } + + protected final Set getSetToRender() { + return coordinator.getSetToRender(); + } + + public final void render() { + if (renderingNeeded) { + beforeRendering(); + doRender(); + afterRendering(); + renderingNeeded = false; + } + } + + public final void updateSetToRender(final Set updatedSetToRender) { + if (setToRender == null || !setToRender.isEqualTo(updatedSetToRender)) { + coordinator.updateSetToRender(updatedSetToRender); + setToRender = updatedSetToRender; + renderingNeeded = true; + } + } + +} diff --git a/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/GraphNodeCoordinates.java b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/GraphNodeCoordinates.java new file mode 100644 index 0000000..710a9ca --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/GraphNodeCoordinates.java @@ -0,0 +1,92 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.graph.rendering; + +import java.util.HashMap; +import java.util.Map; + +import org.eclipse.draw2d.geometry.Point; + +public class GraphNodeCoordinates { + + private static Map> coordMaps = null; + + protected GraphNodeCoordinates() { + } + + private static synchronized Map getMap(final Class renderer) { + final String rendererName = renderer.getName(); + if (coordMaps == null) { + coordMaps = new HashMap>(); + } + if (coordMaps.containsKey(rendererName)) { + return coordMaps.get(rendererName); + } else { + final Map newCoordMap = new HashMap(); + coordMaps.put(rendererName, newCoordMap); + return newCoordMap; + } + } + + public static void addSet(final String artifactUUID, final String setUUID, final Point location, final Class renderer) { + final String uuid = getMapId(artifactUUID, setUUID); + if (getMap(renderer).containsKey(uuid)) { + getMap(renderer).remove(uuid); + } + getMap(renderer).put(uuid, location); + } + + public static Point getCoordinatesOf(final String artifactUUID, final String setUUID, final Class renderer) { + final String uuid = getMapId(artifactUUID, setUUID); + if(getMap(renderer).containsKey(uuid)) { + return getMap(renderer).get(uuid); + } else { + return null; + } + } + + public static boolean hasCoordinatesOf(final String artifactUUID, final String setUUID, final Class renderer) { + if (getCoordinatesOf(artifactUUID, setUUID, renderer) != null) { + return true; + } + return false; + } + + public static void removeCoordinatesOf(final String artifactUUID, final String setUUID, final Class renderer) { + if (getCoordinatesOf(artifactUUID, setUUID, renderer) != null) { + final String uuid = getMapId(artifactUUID, setUUID); + if(getMap(renderer).containsKey(uuid)) { + getMap(renderer).remove(uuid); + } + } + } + + private static String getMapId(final String artifactUUID, final String setUUID) { + return artifactUUID+setUUID; + } + +} diff --git a/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/HtmlRenderer.java b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/HtmlRenderer.java new file mode 100644 index 0000000..43c468c --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/HtmlRenderer.java @@ -0,0 +1,115 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.graph.rendering; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.SWTError; +import org.eclipse.swt.browser.Browser; +import org.eclipse.swt.browser.LocationAdapter; +import org.eclipse.swt.browser.LocationEvent; +import org.eclipse.swt.widgets.Composite; +import org.gmodel.G; +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.api.models.HTMLRepresentation; +import org.gmodel.api.models2.RepositoryStructure; +import org.gmodel.visualization.html.OawHtmlDerivedFileGenerator; + +public final class HtmlRenderer extends AbstractRenderer { + + private static final String LOCATION_PREFIX = "about:"; + + private static final String NO_LOCATION = "about:blank"; + + private Browser browser; + + public HtmlRenderer(final RenderingCoordinator coordinator, final Composite parentContainer) { + super(coordinator); + + try { + browser = new Browser(parentContainer, SWT.NONE); + } catch (final SWTError e) { + System.out.println("Could not instantiate Browser: " + e.getMessage()); + return; + } + + browser.addLocationListener(new LocationAdapter() { + @Override + public void changing(final LocationEvent event) { + // assume all hyperlinks are symbolic and refer to other Sets + final String location = event.location; + if (!NO_LOCATION.equals(location)) { + final String identifier = location.substring(LOCATION_PREFIX.length()); + + // find referenced Set + final Set referencedSet = findByIdentifier(identifier); + if (referencedSet != null) { + updateSetToRender(referencedSet); + render(); + } + // prevent normal link-following behaviour + event.doit = false; + } + } + }); + } + + private Set findByIdentifier(final String identifier) { + final Set setToRender = getSetToRender(); + for (final Set set : setToRender.filterFlavor(G.coreGraphs.vertex)) { + if (identifier.equals(set.identity().identifier().toString())) { + return set; + } + } + return null; + } + + @Override + public void doRender() { + final OawHtmlDerivedFileGenerator generator = new OawHtmlDerivedFileGenerator(); + /* + * TODO retrieve template content eventually from + * + * HTMLRepresentation.html_to_artifact.identity().getPayload() + * + * (needs to be set to fixed HTML template as part of boot sequence) + */ + final Set setToRender = getSetToRender(); + final String generatedOutput = generator.generate(setToRender, null); + final String identityName = HTMLRepresentation.htmlRepresentation.identity().name() + " of " + setToRender.identity().name(); + final Set semanticIdentity = Instantiation.addDisjunctSemanticIdentitySet(identityName, identityName, RepositoryStructure.htmlRepresentations); + semanticIdentity.identity().setPayload(generatedOutput); + + // create htmlRepresentation instance whose identity contains the generated HTML + Instantiation.instantiateConcrete(HTMLRepresentation.htmlRepresentation, semanticIdentity); + + // show in browser + browser.setText(generatedOutput); + } + +} diff --git a/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/InstanceCoordinates.java b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/InstanceCoordinates.java new file mode 100644 index 0000000..e82dfb3 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/InstanceCoordinates.java @@ -0,0 +1,357 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.graph.rendering; + + +import org.eclipse.draw2d.geometry.Point; +import org.gmodel.G; +import org.gmodel.Identity; +import org.gmodel.Set; +import org.gmodel.api.Instantiation; +import org.gmodel.api.models.GmodelSemanticDomains; +import org.gmodel.api.models.Root; +import org.gmodel.api.models2.RepositoryStructure; +import org.gmodel.api.models2.Visualization; + +public class InstanceCoordinates { + // TODO Ensure that this class (and Eclipse based visualisation and storage of layout info) works with the latest version of the graphVisualization model + + //ALL these constants are temporary as currently all outershell UUIDs are volatile and it is not possible to + //create a registry of them + protected static final String STRUCTURE = org.gmodel.api.models2.Visualization.structure.identity().name(); + protected static final String REUSE = org.gmodel.api.models2.Visualization.reuse.identity().name(); + protected static final String VISIBILITIES = org.gmodel.api.models2.Visualization.visibilities.identity().name(); + + private final String INIT_COORD_VALUE = "0"; + private static final Set coordDomain = Instantiation.addSemanticDomain("coordinates domain", "coordinates domains", GmodelSemanticDomains.finiteSets); + private static final String ARTIFACT_VISUALIZATION_INSTANCE = org.gmodel.api.models2.Visualization.graphVisualization.identity().name(); + private static final String VISUALIZATION = org.gmodel.api.models2.Visualization.visualizedGraph.identity().name(); + private static final String SYMBOL = org.gmodel.api.models2.Visualization.symbol.identity().name(); + private static final String REPRESENTATION = org.gmodel.api.models2.Visualization.representation.identity().name(); + private static final String DIAGRAM = org.gmodel.api.models2.Visualization.diagram.identity().name(); + private static final String X = org.gmodel.api.models2.Visualization.x.identity().name(); + private static final String Y = org.gmodel.api.models2.Visualization.y.identity().name(); + private static final String Z = org.gmodel.api.models2.Visualization.z.identity().name(); + private static final String ANON_NAME = GmodelSemanticDomains.anonymous.identity().name(); + + /* TODO create semantic identities for these two strings! */ + public static final String VISUALIZED_ARTIFACT = "visualized graph"; + public static final String REPRESENTED_INSTANCE = "represented instance"; + + private static final InstanceCoordinates instance = new InstanceCoordinates(); + + private static class InstanceCoordinatesHoler { + public static final InstanceCoordinates INSTANCE = new InstanceCoordinates(); + } + + public static InstanceCoordinates getInstance() { + return InstanceCoordinatesHoler.INSTANCE; + } + + private InstanceCoordinates() { + } + + public Set addArtifactInstanceToVisualize(final Set artifactInstance) { + final Set viz = RepositoryStructure.graphVisualizations.addConcrete(getArtifactVisualizationInstance(), + //F_SemanticStateOfInMemoryModel.addDisjunctSemanticIdentitySet(artifactInstance.identity().getName()+" graph visualizedGraph", artifactInstance.identity().getPluralName()+" container graphVisualizations", testDomain)); + Instantiation.addDisjunctSemanticIdentitySet(artifactInstance.identity().name()+" "+ org.gmodel.api.models2.Visualization.graphVisualization.identity().name(), artifactInstance.identity().pluralName()+" "+ org.gmodel.api.models2.Visualization.graphVisualization.identity().pluralName(), coordDomain)); + + //payload of the visualized container instance contains the uuid of the container instance + viz.identity().setPayload(artifactInstance.identity().uniqueRepresentationReference().toString()); + addArtifactInstanceToVisualize(viz, artifactInstance); + return viz; + } + +// public Set getArtifactVisualizations() { +// return RepositoryStructure.graphVisualizations; +// } + + private Set addArtifactInstanceToVisualize(final Set artifactVisualization, final Set artifactInstanceToVisualize) { + //Instance w reference to the container instance to be visualized + final Set viz = artifactVisualization.addConcrete(getVisualizationVertexByName(VISUALIZATION), + Instantiation.addDisjunctSemanticIdentitySet(artifactInstanceToVisualize.identity().name()+" "+ org.gmodel.api.models2.Visualization.visualizedGraph.identity().name(), + artifactInstanceToVisualize.identity().pluralName()+" "+ org.gmodel.api.models2.Visualization.graphVisualization.identity().pluralName(), coordDomain)); + viz.identity().setPayload(artifactInstanceToVisualize.identity().uniqueRepresentationReference().toString()); + createNonContainmentReference(getVisualizationEdgeById(Visualization.visualizedGraph_to_graph.identity()), viz, artifactInstanceToVisualize); + //create containment links for three visualizedGraph aspects + final Set struct = artifactVisualization.addConcrete(getVisualizationVertexByName(STRUCTURE), + Instantiation.addDisjunctSemanticIdentitySet("", "", coordDomain)); + struct.identity().setPayload(getVisualizationVertexByName(STRUCTURE).identity().uniqueRepresentationReference().toString()); + final Set visibilities = artifactVisualization.addConcrete(getVisualizationVertexByName(VISIBILITIES), + Instantiation.addDisjunctSemanticIdentitySet("", "", coordDomain)); + final Set reuse = artifactVisualization.addConcrete(getVisualizationVertexByName(REUSE), + Instantiation.addDisjunctSemanticIdentitySet("", "", coordDomain)); + final Set structDiag = createDiagram(artifactVisualization, getVisualizationVertexByName(STRUCTURE)); + final Set visibilitiesDiag = createDiagram(artifactVisualization, getVisualizationVertexByName(VISIBILITIES)); + final Set reuseDiag = createDiagram(artifactVisualization, getVisualizationVertexByName(REUSE)); + createContainmentVisualizationLink(getVisualizationEdgeById(Visualization.visualizedAspect_to_diagram.identity()), struct, structDiag); + createContainmentVisualizationLink(getVisualizationEdgeById(Visualization.visualizedAspect_to_diagram.identity()), visibilities, visibilitiesDiag); + createContainmentVisualizationLink(getVisualizationEdgeById(Visualization.visualizedAspect_to_diagram.identity()), reuse, reuseDiag); + + return viz; + } + + public Set addInstanceToVisualize(final Set instanceToVisualize, final Set artifactVisualization, final Set visualizationAspect) { + final Set vizInstance = artifactVisualization.addConcrete(getVisualizationVertexByName(REPRESENTATION), + Instantiation.addDisjunctSemanticIdentitySet("","", coordDomain)); + vizInstance.identity().setPayload(getRepresentationInstanceKey(instanceToVisualize, visualizationAspect)); + + createNonContainmentReference(getVisualizationEdgeById(Visualization.representation_to_representedInstance.identity()), + vizInstance, instanceToVisualize); + //Set up coords + final Set instanceXCoord = artifactVisualization.addConcrete(getVisualizationVertexByName(X), + Instantiation.addDisjunctSemanticIdentitySet("", "", coordDomain)); + instanceXCoord.identity().setPayload(INIT_COORD_VALUE); + createContainmentVisualizationLink(getVisualizationEdgeById(Visualization.representation_to_x.identity()), + vizInstance, instanceXCoord); + final Set instanceYCoord = artifactVisualization.addConcrete(getVisualizationVertexByName(Y), + Instantiation.addDisjunctSemanticIdentitySet("", "", coordDomain)); + instanceYCoord.identity().setPayload(INIT_COORD_VALUE); + createContainmentVisualizationLink(getVisualizationEdgeById(Visualization.representation_to_y.identity()), + vizInstance, instanceYCoord); + final Set instanceIcon = artifactVisualization.addConcrete(getVisualizationVertexByName(SYMBOL), + Instantiation.addDisjunctSemanticIdentitySet("", "", coordDomain)); + // TODO Chul to confirm the deletion of the statement below. Given the latest version of graphVisualization model it should be obsolete + //createContainmentVisualizationLink(getVisualizationEdgeById(Visualization.visualization_of_semantic_domain_to_symbols.identity()), + // vizInstance, instanceIcon); + //add the instance to the diagram instance that belongs to the struct aspect + final Set diagramInstance = findDiagramInstance(artifactVisualization, getVisualizationVertexByName(STRUCTURE)); + createContainmentVisualizationLink(getVisualizationEdgeById(Visualization.diagram_to_representation.identity()), + diagramInstance, vizInstance); + return vizInstance; + } + + public Set getVisualizationVertexByName(final String name) { + for (final Set s : getArtifactVisualizationInstance().filterInstances()) { + if (s.flavor().isEqualTo(G.coreGraphs.vertex)) { + if (s.identity().name().equals(name)) { + return s; + } + } + } + throw new IllegalStateException("No visualizedGraph instance is found."); + } + + public Set getVisualizationEdgeById(final Identity id) { + for (final Set s : getArtifactVisualizationInstance().filterLinks()) { + if (s.flavor().isEqualTo(G.coreGraphs.edge)) { + if (s.identity().name().equals(id.name())) { + return s; + } + } + } + throw new IllegalStateException("No visualizedGraph instance is found."); + } + + private Set createContainmentVisualizationLink(final Set metaLink, final Set firstSet, final Set secondSet) { + final Set link = + Instantiation.link(metaLink, + Instantiation.addAnonymousDisjunctSemanticIdentitySet(coordDomain), Instantiation.addAnonymousDisjunctSemanticIdentitySet(coordDomain), + firstSet, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_TRUE, + Instantiation.addAnonymousDisjunctSemanticIdentitySet(coordDomain), + secondSet, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + if (link.identity().name().equals(ANON_NAME)) { + return link; + } else { + throw new IllegalStateException("Link instance has not been set up. "+metaLink+""+firstSet.identity()+"to"+secondSet); + } + } + + private Set createDiagram(final Set artifactVisualization, final Set diagramType) { + final Set diag = artifactVisualization.addConcrete(getVisualizationVertexByName(DIAGRAM), + Instantiation.addDisjunctSemanticIdentitySet("", "", coordDomain)); + diag.identity().setPayload(diagramType.identity().uniqueRepresentationReference().toString()); + return diag; + } + + private Set createNonContainmentReference(final Set metaInstance, final Set viz, final Set instanceToVisualize) { + final Set link = Instantiation.link(metaInstance, + Instantiation.addAnonymousDisjunctSemanticIdentitySet(coordDomain), Instantiation.addAnonymousDisjunctSemanticIdentitySet(coordDomain), + viz, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE, + Instantiation.addAnonymousDisjunctSemanticIdentitySet(coordDomain), + instanceToVisualize, + GmodelSemanticDomains.minCardinality_NOTAPPLICABLE, GmodelSemanticDomains.maxCardinality_NOTAPPLICABLE, GmodelSemanticDomains.isNavigable_NOTAPPLICABLE, GmodelSemanticDomains.isContainer_FALSE + ); + if (link.identity().name().equals(ANON_NAME)) { + return link; + } else { + throw new IllegalStateException("Link instance has not been set up. "+metaInstance+""+viz.identity()+"to"+instanceToVisualize); + } + } + + private Set findDiagramInstance(final Set artifactInstance, final Set visualizationAspect) { + Set diagram = null; + for (final Set s : artifactInstance.filterInstances()) { + if (s.category().identity().isEqualToRepresentation(getVisualizationVertexByName(DIAGRAM).identity()) && + s.identity().payload().equals(visualizationAspect.identity().uniqueRepresentationReference().toString())) { + diagram = s; + break; + } + } + if (diagram != null) { + return diagram; + } else { + throw new IllegalStateException("Diagram instance has not been set up."); + } + } + + private Set findRepresentationInstance(final Set instance, final Set visualizedArtifact, final Set visualizationAspect) { + Set representationSet = null; + for (final Set l : visualizedArtifact.filterInstances()) { + final String setPayload = (l.identity().payload() == null) ? "" : l.identity().payload(); + if (l.category().identity().isEqualToRepresentation(getVisualizationVertexByName(REPRESENTATION).identity()) && + setPayload.equals( + getRepresentationInstanceKey(instance, + visualizationAspect))) { + representationSet = l; + break; + } + } + return representationSet; + } + + private Set getCoordinateInstanceOf(final Set instance, final Set visualizedArtifact, final Set coordinateSet, final Set visualizationAspect) { + final Set representationSet = findRepresentationInstance(instance, visualizedArtifact, visualizationAspect); + Set coordInstance = null; + if (representationSet != null) { + for (final Set l : visualizedArtifact.filterLinks()) { + if (l.flavor().isEqualTo(G.coreGraphs.edge)) { + final Set e = l; + if (e.from().identity().isEqualToRepresentation(representationSet.identity())) { + final Set toMetaInstance = e.to().category(); + if (toMetaInstance.identity().isEqualToRepresentation(coordinateSet.identity())) { + coordInstance = e.to(); + break; + } + } + } + } + } else { + throw new IllegalStateException("Representation instance has not been set up."); + } + + if (coordInstance != null) { + return coordInstance; + } else { + throw new IllegalStateException("Coordinate instance has not been set up."); + } + } + + public Point getCoordinatesOf(final Set instance, final Set visualizedArtifact, final Set visualizationAspect) { + final Set xSet = getCoordinateInstanceOf(instance, visualizedArtifact, getVisualizationVertexByName(X), visualizationAspect); + final Set ySet = getCoordinateInstanceOf(instance, visualizedArtifact, getVisualizationVertexByName(Y), visualizationAspect); + return new Point(Integer.parseInt(xSet.identity().payload()), + Integer.parseInt(ySet.identity().payload())); + } + + private String getRepresentationInstanceKey(final Set instance, final Set visualizationAspect) { + return visualizationAspect.identity().uniqueRepresentationReference().toString()+ + instance.identity().uniqueRepresentationReference().toString(); + } + + public Set getVisualizedArtifactInstance(final Set artifactInstance) { + Set vizualizedArtifactInstance = null; + for (final Set s : RepositoryStructure.graphVisualizations.filterInstances()) { + final String setPayload = (s.identity().payload() == null) ? "" : s.identity().payload(); + if (s.category().identity().isEqualToRepresentation(getArtifactVisualizationInstance().identity()) && + setPayload.equals(artifactInstance.identity().uniqueRepresentationReference().toString())) { + vizualizedArtifactInstance = s; + break; + } + } + + if (vizualizedArtifactInstance == null) { + //try to fetch this from the repository +// final InstanceHandler instanceHandler = InstanceHandler.getInstance(); +// try { +// instanceHandler.deserializeInstance(artifactInstance.identity().getUniqueRepresentationReference().toString()); +// } catch (final IllegalAccessException e) { +// } + throw new IllegalStateException("Visualized Artifact instance has not been set up."); + + } + return vizualizedArtifactInstance; + } + + public boolean hasVisualizedArtifactInstance(final Set artifactInstance) { + Set vizualizedArtifactInstance = null; + for (final Set s : RepositoryStructure.graphVisualizations.filterInstances()) { + final String setPayload = (s.identity().payload() == null) ? "" : s.identity().payload(); + if (s.category().identity().isEqualToRepresentation(getArtifactVisualizationInstance().identity()) && + setPayload.equals(artifactInstance.identity().uniqueRepresentationReference().toString())) { + vizualizedArtifactInstance = s; + break; + } + } + + if (vizualizedArtifactInstance == null) { + return false; + } else { + return true; + } + } + + public Set getArtifactVisualizationInstance() { + for (final Set s : Root.universalartifactengineering.filterInstances()) { + if (s.identity().name().equals(ARTIFACT_VISUALIZATION_INSTANCE)) { + return s; + } + } + throw new IllegalStateException("No artifacti visualizedGraph instance is found."); + } + + public void updateCoordinatesOf(final Set instance, final Point location, final Set visualizedArtifact, final Set visualizationAspect) { + final Set xSet = getCoordinateInstanceOf(instance, visualizedArtifact, getVisualizationVertexByName(X), visualizationAspect); + final Set ySet = getCoordinateInstanceOf(instance, visualizedArtifact, getVisualizationVertexByName(Y), visualizationAspect); + xSet.assignNewPayload(Integer.toString(location.x)); + ySet.assignNewPayload(Integer.toString(location.y)); + } + + public boolean hasCoordinatesOf(final Set instance, final Set containerSet, final Set visualizationAspect) { + if (hasVisualizedArtifactInstance(containerSet)) { + try { + final Set visualizedArtifact = getVisualizedArtifactInstance(containerSet); + final Set xSet = getCoordinateInstanceOf(instance, visualizedArtifact, getVisualizationVertexByName(X), visualizationAspect); + final Set ySet = getCoordinateInstanceOf(instance, visualizedArtifact,getVisualizationVertexByName(Y), visualizationAspect); + if (xSet != null && ySet != null) { + return true; + } else { + return false; + } + } catch(final IllegalStateException ex) { + return false; + } + } else { + return false; + } + } + +} diff --git a/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/Renderer.java b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/Renderer.java new file mode 100644 index 0000000..1afc845 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/Renderer.java @@ -0,0 +1,44 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.graph.rendering; + +import org.gmodel.Set; + +public interface Renderer { + + /** + * Updates the {@link Set} to be rendered when {@link #render()} is next called + * + * @param setToRender + */ + void updateSetToRender(Set setToRender); + + /** + * Renders the {@link Set} last passed to {@link #updateSetToRender(Set)} + */ + void render(); + +} diff --git a/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/RenderingCoordinator.java b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/RenderingCoordinator.java new file mode 100644 index 0000000..78721d2 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/RenderingCoordinator.java @@ -0,0 +1,145 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.graph.rendering; + +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.jface.viewers.ITreeContentProvider; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.jface.viewers.TreeViewer; +import org.gmodel.Set; +import org.gmodel.visualization.containmenttree.viewer.model.ContainmentTreeNode; +import org.gmodel.visualization.graph.editors.GmodelGraphViewer; + +/** + * Coordinates the rendering of the currently selected {@link Set} across multiple tabs. + * Each tab shows a different representation of the {@link Set}, and rendering is deferred + * until the tab is actually selected (and its contents shown). + */ +public final class RenderingCoordinator implements Renderer { + + private Set setToRender; + + private int pageIndex; + + private final List renderers; + + private final GmodelGraphViewer graphViewer; + + private final TreeViewer viewer; + + private final RenderingHistory renderingHistory; + + public RenderingCoordinator(final GmodelGraphViewer graphViewer, final TreeViewer viewer) { + this.graphViewer = graphViewer; + this.viewer = viewer; + this.renderers = new ArrayList(); + this.renderingHistory = new RenderingHistory(); + this.pageIndex = -1; + } + + public void addRenderer(final Renderer renderer) { + renderers.add(renderer); + } + + public void coordinatesChanged() { + graphViewer.setDirty(true); + } + + public RenderingHistory getHistory() { + return renderingHistory; + } + + public Set getSetToRender() { + return setToRender; + } + + public void navigate(final int offset) { + this.setToRender = renderingHistory.navigate(offset); + updateViewer(); + } + + /** + * Called upon page change (tab selection) + * + * @param newPageIndex + */ + public void pageChange(final int newPageIndex) { + this.pageIndex = newPageIndex; + render(); + } + + /** + * Delegates rendering to the {@link Renderer} associated with the + * current page + */ + public void render() { + final Renderer renderer = renderers.get(pageIndex); + renderer.updateSetToRender(setToRender); + renderer.render(); + } + + private void setViewerNode() { + final ITreeContentProvider provider = (ITreeContentProvider) this.viewer.getContentProvider(); + final ContainmentTreeNode rootNode = (ContainmentTreeNode) provider.getElements(null)[0]; + final List nodeMatched = new ArrayList(); + walkTree(rootNode, nodeMatched); + if (!nodeMatched.isEmpty()) { + viewer.setSelection(new StructuredSelection(nodeMatched.get(0)), true); + } + } + + /** + * Called by a {@link Renderer} in order to inform of a + * change in the rendered {@link Set} (no page change) + * + * @param setToRender + */ + public void updateSetToRender(final Set setToRender) { + this.setToRender = setToRender; + // update history + renderingHistory.updateSetToRender(setToRender); + updateViewer(); + } + + private void updateViewer() { + // now update viewer (includes change made to history) + graphViewer.updateSetToRender(setToRender); + setViewerNode(); + } + + private void walkTree(final ContainmentTreeNode rootNode, final List nodeMatched) { + final Set setToRender = getSetToRender(); + if (rootNode.getSet().isEqualToRepresentation(setToRender)) { + nodeMatched.add(rootNode); + } else if (rootNode.getChildNodes() != null) { + for (final ContainmentTreeNode n : rootNode.getChildNodes()) { + walkTree(n, nodeMatched); + } + } + } +} diff --git a/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/RenderingHistory.java b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/RenderingHistory.java new file mode 100644 index 0000000..9302fd1 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/RenderingHistory.java @@ -0,0 +1,117 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.graph.rendering; + +import java.util.ArrayList; +import java.util.List; + +import org.gmodel.Set; + +public class RenderingHistory { + + private final List sets; + + private int index; + + public RenderingHistory() { + sets = new ArrayList(); + index = -1; + } + + /** + * Invoked after navigating a "hyperlink" to a different {@link Set} + * @param setToRender + */ + public void updateSetToRender(final Set setToRender) { + final Set currentSet = getCurrentSet(); + if (currentSet == null || !currentSet.isEqualTo(setToRender)) { + // remove sets after this one + final int removals = sets.size() - index - 1; + for (int i = 0; i < removals; i++) { + sets.remove(index); + } + + // add set at the end + sets.add(setToRender); + + // update index + index++; + } + } + + /** + * Navigate to a different {@link Set} by way of an offset + * + * @param offset + * @return the resulting {@link Set} + */ + public Set navigate(final int offset) { + if (offset == 0) { + throw new IllegalArgumentException("Offset must be non-zero"); + } + final int newIndex = index + offset; + if (newIndex < 0 || newIndex >= sets.size()) { + throw new IllegalArgumentException("Offset of " + offset + " is invalid because it implies an index of " + newIndex + " (size is " + sets.size() + ")"); + } + index = newIndex; + return getCurrentSet(); + } + + public Set getCurrentSet() { + if (index < 0) { + return null; + } + return sets.get(index); + } + + public Set next() { + // forward + index++; + return getCurrentSet(); + } + + public Set previous() { + // back + index--; + return getCurrentSet(); + } + + public boolean hasNext() { + return index < sets.size() - 1; + } + + public boolean hasPrevious() { + return index > 0; + } + + public List getPreviousSets() { + return sets.subList(0, index); + } + + public List getNextSets() { + return sets.subList(index + 1, sets.size()); + } +} diff --git a/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/StructuralGraphRenderer.java b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/StructuralGraphRenderer.java new file mode 100644 index 0000000..78a0a31 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/StructuralGraphRenderer.java @@ -0,0 +1,274 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.graph.rendering; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +import org.eclipse.draw2d.BendpointConnectionRouter; +import org.eclipse.draw2d.FanRouter; +import org.eclipse.draw2d.IFigure; +import org.eclipse.draw2d.geometry.Point; +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.CTabItem; +import org.eclipse.swt.graphics.Cursor; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.zest.core.widgets.Graph; +import org.eclipse.zest.core.widgets.GraphConnection; +import org.eclipse.zest.core.widgets.GraphNode; +import org.eclipse.zest.core.widgets.ZestStyles; +import org.eclipse.zest.core.widgets.internal.PolylineArcConnection; +import org.gmodel.G; +import org.gmodel.Set; +import org.gmodel.api.models.Root; +import org.gmodel.visualization.graph.figures.FigureBuilder; +import org.gmodel.visualization.graph.figures.GmodelNodeFigure; +import org.gmodel.visualization.graph.figures.GmodelRouter; +import org.gmodel.visualization.graph.figures.SetGraphNode; +import org.gmodel.visualization.graph.figures.WorkspaceGraphNode; + +public final class StructuralGraphRenderer extends AbstractGraphRenderer { + + public StructuralGraphRenderer(final Graph graph, final RenderingCoordinator coordinator, final CTabItem item) { + super(graph, coordinator, InstanceCoordinates.STRUCTURE, item); + } + + @Override + protected void addHandlers() { + addDrillDownUpHandler(); + addCursorHandler(); + setUpCoordinatesManager(this.getClass()); + } + + private void addDrillDownUpHandler() { + // TODO change to single click and alter icon to a "hand" + graph.addListener(SWT.MouseDoubleClick, new Listener() { + public void handleEvent(final Event event) { + if (!graph.getSelection().isEmpty() && graph.getSelection().get(0) instanceof SetGraphNode) { + final SetGraphNode node = (SetGraphNode) graph.getSelection().get(0); + final Set set = node.getSet(); + if (!set.isEqualTo(Root.root) && !set.filterInstances().isEmpty()) { + final Set setToRender = getSetToRender(); + if (set.isEqualTo(setToRender)) { + updateSetToRender(set.container()); + } else { + updateSetToRender(set); + } + render(); + } + } else if (!graph.getSelection().isEmpty() & graph.getSelection().get(0) instanceof WorkspaceGraphNode) { + final WorkspaceGraphNode selectedWorkspaceNode = (WorkspaceGraphNode) graph.getSelection().get(0); + for(final WorkspaceGraphNode node : workspaceNodes) { + if (!node.equals(selectedWorkspaceNode)) { + node.deSelectAsCurrentWorkspaceNode(); + } + } + selectedWorkspaceNode.setAsCurrentWorkspaceNode(); + for (final Object obj : graph.getNodes()) { + if (obj instanceof SetGraphNode) { + final SetGraphNode setNode = (SetGraphNode) obj; + if (GraphNodeCoordinates.getCoordinatesOf( + getSetToRender().identity().uniqueRepresentationReference().toString(), + setNode.getSet().identity().uniqueRepresentationReference().toString(), + StructuralGraphRenderer.class) != null) { + setNode.setVisible(true); + } else { + if (!setNode.equals(rootNode)) { + setNode.setVisible(false); + } + } + } + } + } + } + }); + } + + private void addCursorHandler() { + graph.addListener(SWT.MouseMove, new Listener() { + public void handleEvent(final Event event) { + final Point pt = new Point(event.x, event.y); + graph.getShell().setCursor(null); + for (final Object o : graph.getNodes()) { + if (o instanceof SetGraphNode) { + final SetGraphNode node = (SetGraphNode) o; + final Set set = node.getSet(); + final Set setToRender = getSetToRender(); + if (!set.isEqualTo(setToRender) && set.filterInstances().size() > 0) { + if (node.getNodeFigure().containsPoint(pt)) { + graph.getShell().setCursor(new Cursor(null, SWT.CURSOR_HAND)); + break; + } + } + } + } + } + }); + + graph.addListener(SWT.MouseDown, new Listener() { + public void handleEvent(final Event event) { + System.err.println("D "+graph.dragDetect(event)); + } + }); + } + + @Override + public void doRender() { + final Map nodeMap = new HashMap(); + final GmodelNodeFigure rootFigure = FigureBuilder.buildGmodelNodeFigure(); + rootFigure.setColor(Display.getCurrent().getSystemColor(ROOT_COLOR)); + final Set setToRender = getSetToRender(); + FigureBuilder.createMetaNamePair(rootFigure, setToRender); + rootFigure.setSize(-1, -1); + rootNode = new SetGraphNode(graph, rootFigure, setToRender, false); + + //addWorkspaceNodes(); + + nodeMap.put(setToRender.identity().identifier(), rootNode); + for (final Set set : setToRender.filterInstances()) { + buildSetGraphNode(set, nodeMap, false); + } + + // Edges + final FanRouter edgeRouter = new FanRouter(); + edgeRouter.setNextRouter(new BendpointConnectionRouter()); + final Map connectionMap = new HashMap(); + for (final Set set : setToRender.filterLinks()) { + if (set.flavor().isEqualTo(G.coreGraphs.edge)) { + final Set edge = set; + final Set ee1 = edge.edgeEnds().extractFirst(); + final Set ee2 = edge.edgeEnds().extractSecond(); + + final Set set1 = edge.from(); + final Set set2 = edge.to(); + + boolean hasMultipleConnections = false; + + if (getSetFromMap(set1, nodeMap) != null || getSetFromMap(set2, nodeMap) != null) { + //if either of them are not present then create a dotted vertex and connect it + createExternalVertex(set1, set2, nodeMap); + final Set s1 = getSetFromMap(set1, nodeMap); + final Set s2 = getSetFromMap(set2, nodeMap); + if (s1 != null && s2 != null) { + final GraphConnection conn = new GraphConnection(graph, ZestStyles.CONNECTIONS_SOLID, + nodeMap.get(s1.identity().identifier()), + nodeMap.get(s2.identity().identifier())); + if (connectionMap.containsKey(getConnectionKey(set1, set2, false))) { + hasMultipleConnections = true; + } + connectionMap.put(getConnectionKey(set1, set2, true), conn); + connectionMap.put(getConnectionKey(set1, set2, false), conn); + conn.setLineColor(Display.getCurrent().getSystemColor( + SWT.COLOR_BLACK)); + + final GraphNode gNode = nodeMap.get(getSetFromMap(set1, nodeMap).identity().identifier()); + final IFigure nodeFig = gNode.getNodeFigure(); + final boolean isSelfLoop = set1.isEqualToRepresentation(set2); + conn.getConnectionFigure().setConnectionRouter(edgeRouter); + if (isSelfLoop) { + final PolylineArcConnection pLine = (PolylineArcConnection) conn.getConnectionFigure(); + pLine.setConnectionRouter(new GmodelRouter(nodeFig)); + } + enableAntiAliasing(conn); + addContainsLabel(edge, ee1, conn, false); + addContainsLabel(edge, ee2, conn, true); + addEdgeEndLabels(ee1, conn, false, hasMultipleConnections); + addEdgeEndLabels(ee2, conn, true, hasMultipleConnections); + } + } + } + } + } + + private void addWorkspaceNodes() { + workspaceNodes = new ArrayList(); + for (int i = 0; i < NUMBER_OF_WORKSPACES; i++) { + final GmodelNodeFigure workspaceFigure = FigureBuilder.buildGmodelNodeFigure(); + workspaceFigure.setSize(-1, -1); + FigureBuilder.createWorkspaceIndex(workspaceFigure, i); + final WorkspaceGraphNode workspaceNode = new WorkspaceGraphNode(graph, workspaceFigure, i); + workspaceNode.setSize(40, 20); + if (i == 0) { + workspaceNode.setAsCurrentWorkspaceNode(); + } + workspaceNodes.add(workspaceNode); + } + } + + protected void buildSetGraphNode(final Set set, final Map nodeMap, final boolean isExternal) { + if (set.flavor().isEqualTo(G.coreGraphs.vertex)) { + final GmodelNodeFigure nodeFigure = FigureBuilder.buildGmodelNodeFigure(isExternal); + FigureBuilder.addIcon(nodeFigure, set); + FigureBuilder.createMetaNamePair(nodeFigure, set); + nodeFigure.setSize(-1, -1); + final GraphNode node = new SetGraphNode(graph, nodeFigure, set, isExternal); + nodeMap.put(set.identity().identifier(), node); + } + } + + protected boolean createExternalVertex(final Set set1, final Set set2, final Map nodeMap) { + if (getSetFromMap(set1, nodeMap) != null && getSetFromMap(set2, nodeMap) != null) { + return false; + } else { + if (getSetFromMap(set1, nodeMap) == null) { + buildExternalGraphNode(set1, nodeMap); + } + if (getSetFromMap(set2, nodeMap) == null) { + buildExternalGraphNode(set2, nodeMap); + } + return true; + } + } + + private void buildExternalGraphNode(final Set set, final Map nodeMap) { + buildSetGraphNode(set, nodeMap, true); + } + + protected String getConnectionKey(final Set set1, final Set set2, final boolean reverse) { + final String key; + if (reverse) { + key = set2.identity().identifier().toString() + set1.identity().identifier().toString(); //$NON-NLS-1$ + } else { + key = set1.identity().identifier().toString() + set2.identity().identifier().toString(); //$NON-NLS-1$ + } + return key; + } + + protected Set getSetFromMap(final Set set, final Map nodeMap) { + Set retSet = null; + if (nodeMap.containsKey(set.identity().identifier())) { + retSet = ((SetGraphNode)nodeMap.get(set.identity().identifier())).getSet(); + } + return retSet; + } + +} diff --git a/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/SuperSetGraphRenderer.java b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/SuperSetGraphRenderer.java new file mode 100644 index 0000000..3e9c7f9 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/SuperSetGraphRenderer.java @@ -0,0 +1,80 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.graph.rendering; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +import org.eclipse.swt.custom.CTabItem; +import org.eclipse.swt.widgets.Display; +import org.eclipse.zest.core.widgets.Graph; +import org.eclipse.zest.core.widgets.GraphNode; +import org.gmodel.G; +import org.gmodel.Set; +import org.gmodel.visualization.graph.figures.FigureBuilder; +import org.gmodel.visualization.graph.figures.GmodelNodeFigure; + +public final class SuperSetGraphRenderer extends AbstractGraphRenderer { + + public SuperSetGraphRenderer(final Graph graph, final RenderingCoordinator coordinator, final CTabItem item) { + super(graph, coordinator, InstanceCoordinates.REUSE, item); + } + + @Override + protected void addHandlers() { + setUpCoordinatesManager(this.getClass()); + } + + @Override + protected void doRender() { + final Map nodeMap = new HashMap(); + final GmodelNodeFigure rootFigure = FigureBuilder.buildGmodelNodeFigure(); + rootFigure.setColor(Display.getCurrent().getSystemColor(ROOT_COLOR)); + + final Set setToRender = getSetToRender(); + FigureBuilder.createMetaNamePair(rootFigure, setToRender); + rootFigure.setSize(-1, -1); + + for (final Set set : setToRender.filterLinks()) { + if (set.flavor().isEqualTo(G.coreGraphs.superSetReference)) { + final Set superRef = set; + + final Set superSet = superRef.to(); + final Set subSet = superRef.from(); + createGraphNode(nodeMap, superSet, isPartOfContainmentSet(setToRender, superSet)); + createGraphNode(nodeMap, subSet, isPartOfContainmentSet(setToRender, subSet)); + + FigureBuilder.buildSuperSetReferenceConnection(graph, + nodeMap.get(subSet.identity().identifier()), + nodeMap.get(superSet.identity().identifier())); + + } + } + } +} diff --git a/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/VisibilityGraphRenderer.java b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/VisibilityGraphRenderer.java new file mode 100644 index 0000000..6330de0 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.graph/src/org/gmodel/visualization/graph/rendering/VisibilityGraphRenderer.java @@ -0,0 +1,80 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2010 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Jorn Bettin + * Chul Kim + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.graph.rendering; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +import org.eclipse.swt.custom.CTabItem; +import org.eclipse.swt.widgets.Display; +import org.eclipse.zest.core.widgets.Graph; +import org.eclipse.zest.core.widgets.GraphNode; +import org.gmodel.G; +import org.gmodel.Set; +import org.gmodel.visualization.graph.figures.FigureBuilder; +import org.gmodel.visualization.graph.figures.GmodelNodeFigure; + +public final class VisibilityGraphRenderer extends AbstractGraphRenderer { + + public VisibilityGraphRenderer(final Graph graph, final RenderingCoordinator coordinator, final CTabItem item) { + super(graph, coordinator, InstanceCoordinates.VISIBILITIES, item); + } + + @Override + protected void addHandlers() { + setUpCoordinatesManager(this.getClass()); + } + + @Override + protected void doRender() { + final Map nodeMap = new HashMap(); + final GmodelNodeFigure rootFigure = FigureBuilder.buildGmodelNodeFigure(); + rootFigure.setColor(Display.getCurrent().getSystemColor(ROOT_COLOR)); + + final Set setToRender = getSetToRender(); + FigureBuilder.createMetaNamePair(rootFigure, setToRender); + rootFigure.setSize(-1, -1); + + for (final Set set : setToRender.filterLinks()) { + if (set.flavor().isEqualTo(G.coreGraphs.visibility)) { + final Set visibility = set; + + final Set fromSet = visibility.from(); + final Set toSet = visibility.to(); + createGraphNode(nodeMap, fromSet, isPartOfContainmentSet(setToRender, fromSet)); + createGraphNode(nodeMap, toSet, isPartOfContainmentSet(setToRender, toSet)); + + FigureBuilder.buildVisibilityConnection(graph, + nodeMap.get(fromSet.identity().identifier()), + nodeMap.get(toSet.identity().identifier())); + } + } + } + +} diff --git a/src/trunk/org.gmodel.visualization.html/.classpath b/src/trunk/org.gmodel.visualization.html/.classpath new file mode 100644 index 0000000..2d1a430 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.html/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/trunk/org.gmodel.visualization.html/.project b/src/trunk/org.gmodel.visualization.html/.project new file mode 100644 index 0000000..6a056e8 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.html/.project @@ -0,0 +1,26 @@ + + + org.gmodel.visualization.html + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/src/trunk/org.gmodel.visualization.html/.settings/org.eclipse.jdt.core.prefs b/src/trunk/org.gmodel.visualization.html/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..8f6dc3d --- /dev/null +++ b/src/trunk/org.gmodel.visualization.html/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,70 @@ +#Wed May 13 15:07:03 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/src/trunk/org.gmodel.visualization.html/.settings/org.eclipse.jdt.ui.prefs b/src/trunk/org.gmodel.visualization.html/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000..d20f2b5 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.html/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,54 @@ +#Mon Jun 01 15:10:28 CEST 2009 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=false +sp_cleanup.format_source_code=false +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/src/trunk/org.gmodel.visualization.html/META-INF/MANIFEST.MF b/src/trunk/org.gmodel.visualization.html/META-INF/MANIFEST.MF new file mode 100644 index 0000000..e9334a4 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.html/META-INF/MANIFEST.MF @@ -0,0 +1,20 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.gmodel.visualization.html +Bundle-SymbolicName: org.gmodel.visualization.html +Bundle-Version: 1.0.0 +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Import-Package: org.eclipse.emf.mwe.core, + org.eclipse.emf.mwe.core.issues, + org.eclipse.emf.mwe.core.monitor, + org.eclipse.internal.xtend.expression.parser, + org.eclipse.xpand2, + org.eclipse.xpand2.output, + org.eclipse.xtend.expression, + org.eclipse.xtend.typesystem, + org.gmodel, + org.gmodel.api, + org.gmodel.eclipse.xpand2 +Require-Bundle: org.eclipse.emf.mwe.core, + org.gmodel.openarchitectureware +Export-Package: org.gmodel.visualization.html diff --git a/src/trunk/org.gmodel.visualization.html/build.properties b/src/trunk/org.gmodel.visualization.html/build.properties new file mode 100644 index 0000000..b107977 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.html/build.properties @@ -0,0 +1,3 @@ +source.. = src/ +bin.includes = META-INF/,\ + . diff --git a/src/trunk/org.gmodel.visualization.html/pom.xml b/src/trunk/org.gmodel.visualization.html/pom.xml new file mode 100644 index 0000000..d91e642 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.html/pom.xml @@ -0,0 +1,10 @@ + + 4.0.0 + + org.gmodel + org.gmodel.eclipse + 1.0.0 + + org.gmodel.visualization.html + eclipse-plugin + diff --git a/src/trunk/org.gmodel.visualization.html/src/org/gmodel/visualization/html/OawHtmlDerivedFileGenerator.java b/src/trunk/org.gmodel.visualization.html/src/org/gmodel/visualization/html/OawHtmlDerivedFileGenerator.java new file mode 100644 index 0000000..f35bdf3 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.html/src/org/gmodel/visualization/html/OawHtmlDerivedFileGenerator.java @@ -0,0 +1,68 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * Sofismo AG (Sofismo). + * Portions created by the Initial Developer are + * Copyright (C) 2009-2011 Sofismo AG. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +package org.gmodel.visualization.html; + +import org.eclipse.emf.mwe.core.WorkflowContext; +import org.eclipse.emf.mwe.core.WorkflowContextDefaultImpl; +import org.eclipse.emf.mwe.core.issues.Issues; +import org.eclipse.emf.mwe.core.issues.IssuesImpl; +import org.eclipse.emf.mwe.core.monitor.NullProgressMonitor; +import org.eclipse.emf.mwe.core.monitor.ProgressMonitor; +import org.eclipse.internal.xtend.expression.parser.SyntaxConstants; +import org.gmodel.Set; +import org.gmodel.eclipse.xpand2.GmodelGenerator; +import org.gmodel.eclipse.xpand2.InMemoryOutput; + +public class OawHtmlDerivedFileGenerator { + + private static final String TEMPLATE_NAME = "template"; + + private static final String TEMPLATE_FUNCTION = "main"; + + private static final String QUALIFIED_TEMPLATE_FUNCTION_NAME = OawHtmlDerivedFileGenerator.class.getPackage().getName().replace(".", SyntaxConstants.NS_DELIM) + + SyntaxConstants.NS_DELIM + + TEMPLATE_NAME + + SyntaxConstants.NS_DELIM + + TEMPLATE_FUNCTION; + + public String generate(final Set set, final String templateContent) { + final GmodelGenerator generator = new GmodelGenerator(set); + // generator.setTemplateContent(HTMLRepresentation.html_to_artifact.identity().getPayload()); + generator.setTemplateName(QUALIFIED_TEMPLATE_FUNCTION_NAME); + final InMemoryOutput output = new InMemoryOutput(); + generator.setOutput(output); + try { + final WorkflowContext ctx = new WorkflowContextDefaultImpl(); + final ProgressMonitor monitor = new NullProgressMonitor(); + final Issues issues = new IssuesImpl(); + generator.invoke(ctx, monitor, issues); + } catch (final Exception ex) { + System.err.println(ex); + } + return output.getOutput(); + } + +} diff --git a/src/trunk/org.gmodel.visualization.html/src/org/gmodel/visualization/html/template.xpt b/src/trunk/org.gmodel.visualization.html/src/org/gmodel/visualization/html/template.xpt new file mode 100644 index 0000000..5005ed0 --- /dev/null +++ b/src/trunk/org.gmodel.visualization.html/src/org/gmodel/visualization/html/template.xpt @@ -0,0 +1,214 @@ +«EXTENSION org::gmodel::openarchitectureware::kernel» + +«DEFINE main FOR org::gmodel::core::Vertex» + +«FILE "documentation.html"» + + + + + + + «REM» + WORKING - minCardinality: "«getKernelValues().minCardinality()»" + minCardinality: "«getKernelValues().minCardinality.identity().getName()»" + isAbstract: "«getKernelValues().isAbstract.identity().getName()»" + «ENDREM» + + «REM»Artifact container - START«ENDREM» +
+

«EXPAND displaySet FOR this»

+ + «REM»Display : in a simple one column table «ENDREM» + «REM»Vertex-flavored container - START«ENDREM» +
+

«getKernelVertex().identity().getName()»«EXPAND flavored»

+ «LET flavoredSet(getKernelVertex()) AS vertexFlavored» + «IF vertexFlavored.isEmpty» + «EXPAND emptySet» + «ELSE» + + «FOREACH vertexFlavored AS set» + + «REM» Condition is consistent with other views «ENDREM» + + + «ENDFOREACH» +
«IF set.instanceSet().isEmpty()»«EXPAND displaySet FOR set»«ELSE»«EXPAND displayVertexFlavoredSet FOR set»«ENDIF»
+ «ENDIF» + «ENDLET» +
+ «REM»Vertex-flavored container - END«ENDREM» + + «REM»SuperSetReference-flavored container - START«ENDREM» +
+

«getKernelSuperSetReference().identity().getPluralName()»

+ «LET flavoredSet(getKernelSuperSetReference()) AS superSetReferenceFlavored» + «IF superSetReferenceFlavored.isEmpty» + «EXPAND emptySet» + «ELSE» + + + + + + «FOREACH superSetReferenceFlavored AS set» + + + + + «ENDFOREACH» +
sub setsuper set
«EXPAND displaySet FOR set.fromSubSet()»«EXPAND displaySet FOR set.toSuperSet()»
+ «ENDIF» + «ENDLET» +
+ «REM»SuperSetReference-flavored container - END«ENDREM» + + «REM»Edge-flavored container - START«ENDREM» +
+

«getKernelEdge().identity().getName()»«EXPAND flavored»

+ «LET flavoredSet(getKernelEdge()) AS edgeFlavored» + «IF edgeFlavored.isEmpty» + «EXPAND emptySet» + «ELSE» + + + + + + + + + «FOREACH edgeFlavored AS set» + «LET getKernelValues().minCardinality() AS minCardinality» + «LET getKernelValues().maxCardinality() AS maxCardinality» + + + «LET set.fromEdgeEndFlavored() AS from» + + «ENDLET» + + «LET set.toEdgeEndFlavored() AS to» + + «ENDLET» + + + «ENDLET» + «ENDLET» + «ENDFOREACH» +
1st [min, max]«getKernelEdge().identity().getName()»«EXPAND flavored»2nd [min, max]
«EXPAND displaySet FOR set.fromConnectedInstance()»«EXPAND displaySet FOR from» «from.value(minCardinality).identity().getName()»,«from.value(maxCardinality).identity().getName()»«EXPAND displaySet FOR set»«EXPAND displaySet FOR to» «to.value(minCardinality).identity().getName()»,«to.value(maxCardinality).identity().getName()»«EXPAND displaySet FOR set.toConnectedInstance()»
+ «ENDIF» + «ENDLET» +
+ «REM»Edge-flavored container - END«ENDREM» + + «REM»Visibility-flavored container - START«ENDREM» +
+

«getKernelVisibility().identity().getName()»«EXPAND flavored»

+ «LET flavoredSet(getKernelVisibility()) AS visibilityFlavored» + «IF visibilityFlavored.isEmpty» + «EXPAND emptySet» + «ELSE» + + + + + + «FOREACH visibilityFlavored AS set» + + + + + «ENDFOREACH» +
fromto
«EXPAND displaySet FOR set.fromSubGraph()»«EXPAND displaySet FOR set.toSubGraph()»
+ «ENDIF» + «ENDLET» +
+ «REM»Visibility-flavored container - END«ENDREM» + +
+ «REM»Artifact container - END«ENDREM» + + +«ENDFILE» +«ENDDEFINE» + +«DEFINE displayVertexFlavoredSet FOR org::gmodel::api::SetType»«category().identity().getName()» : «identity().getName()»«ENDDEFINE» + +«DEFINE displaySet FOR org::gmodel::api::SetType»«category().identity().getName()» : «identity().getName()»«ENDDEFINE» + +«DEFINE flavored FOR Object»flavored«ENDDEFINE» + +«DEFINE emptySet FOR Object»None«ENDDEFINE» \ No newline at end of file diff --git a/src/trunk/pom.xml b/src/trunk/pom.xml new file mode 100644 index 0000000..4034107 --- /dev/null +++ b/src/trunk/pom.xml @@ -0,0 +1,125 @@ + + 4.0.0 + org.gmodel + org.gmodel.eclipse + 1.0.0 + pom + + + org.gmodel.connector.database + org.gmodel.connector.database.db2 + org.gmodel.connector.database.mysql + org.gmodel.connector.database.postgresql + org.gmodel.connector.database.ui + org.gmodel.openarchitectureware + org.gmodel.preferences + org.gmodel.preferences.ui + org.gmodel.search.widget + org.gmodel.visualization.containmenttree.viewer + org.gmodel.visualization.graph + org.gmodel.visualization.html + + + org.gmodel.openarchitectureware.tests + + + tycho-build/org.gmodel.eclipse.feature + + + tycho-build/p2-updatesite + + + 0.13.0 + + + + + org.eclipse.tycho + tycho-maven-plugin + ${tycho-version} + true + + + org.eclipse.tycho + target-platform-configuration + ${tycho-version} + + p2 + + + + org.eclipse.tycho + maven-osgi-test-plugin + ${tycho-version} + + + + org.eclipse.tycho + tycho-p2-repository-plugin + ${tycho-version} + + true + + + + + org.eclipse.tycho + maven-osgi-packaging-plugin + ${tycho-version} + + true + + + + + + + + + galileo + p2 + http://download.eclipse.org/releases/galileo + + + + + local-p2 + p2 + file://${user.dir}/tycho-p2-repository + + + + + diff --git a/src/trunk/project/.classpath b/src/trunk/project/.classpath new file mode 100644 index 0000000..301c11b --- /dev/null +++ b/src/trunk/project/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/trunk/project/.project b/src/trunk/project/.project new file mode 100644 index 0000000..1eda9a0 --- /dev/null +++ b/src/trunk/project/.project @@ -0,0 +1,18 @@ + + + project + + + + + + org.scala-ide.sdt.core.scalabuilder + + + + + + org.scala-ide.sdt.core.scalanature + org.eclipse.jdt.core.javanature + + \ No newline at end of file diff --git a/src/trunk/project/Build.scala b/src/trunk/project/Build.scala new file mode 100644 index 0000000..bc8e07f --- /dev/null +++ b/src/trunk/project/Build.scala @@ -0,0 +1,196 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Limited (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +import sbt._ +import Keys._ + +import Predef.{conforms => _, _} +import sbt.Types.:+: +import sbt.Path._ + +/* +TODO fix up project structure to eliminate warnings + +[warn] Using project/plugins/ is deprecated for plugin configuration (/home/andrew/code/GoogleCode/gmodel-sbt-build/project/plugins). +[warn] Put .sbt plugin definitions directly in project/, +[warn] .scala plugin definitions in project/project/, +[warn] and remove the project/plugins/ directory. +*/ + +object GmodelBuild extends Build { + import BuildSettings._ + import DependencyManagement._ + import com.github.siasia.WebPlugin + + lazy val root = Project( + "root", + file ("."), + settings = buildSettings + ) aggregate ( + artifactpool, + common, + connector, + editorSemanticdomain, + hibernateosgi, + objectpool, + kernel, + kernelTestbench, + repository, + repositoryClient, + repositoryClientMediator, + repositoryMediator, + serialization, + semanticextensions, + semanticextensionsTestscripts, + statistics, + + artifactpoolTests, + kernelTests + ) + + lazy val artifactpool = Project( + "artifactpool", + file ("org.gmodel.artifactpool"), + settings = javaProjectSettings + ) + + lazy val artifactpoolTests = Project( + "artifactpool-tests", + file ("org.gmodel.artifactpool.tests"), + settings = javaTestProjectSettings ++ Seq( + libraryDependencies ++= Seq( JUnit ) + ) + ) dependsOn(artifactpool) + + lazy val common = Project( + "common", + file ("org.gmodel.common"), + settings = javaProjectSettings + ) + + lazy val connector = Project( + "connector", + file ("org.gmodel.connector"), + settings = javaProjectSettings + ) dependsOn (serialization) + + lazy val editorSemanticdomain = Project( + "editor-semanticdomain", + file ("org.gmodel.editor.semanticdomain"), + settings = { + buildSettings ++ + WebPlugin.webSettings ++ + Seq( + libraryDependencies ++= Seq(Vaadin, Jetty), + // see https://github.com/harrah/xsbt/wiki/Library-Management + unmanagedJars in Compile <++= baseDirectory map { base => + val dir = base / "src" / "main" / "webapp" / "WEB-INF" / "lib" + val customJars = (dir ** "*.jar") + customJars.classpath + } + ) + } + ) dependsOn (kernel, repositoryClient, serialization, common, semanticextensions) + + lazy val hibernateosgi = Project( + "hibernateosgi", + file("org.gmodel.hibernateosgi"), + settings = javaProjectSettings ++ Packaging.defaultSettings + ) + + lazy val objectpool = Project( + "objectpool", + file ("org.gmodel.objectpool"), + settings = javaProjectSettings + ) dependsOn (kernel) + + lazy val kernel = Project( + "kernel", + file ("org.gmodel.kernel"), + settings = javaProjectSettings + ) + + lazy val kernelTests = Project( + "kernel-tests", + file ("org.gmodel.kernel.tests"), + settings = javaTestProjectSettings ++ Seq( + libraryDependencies ++= Seq( JUnit ) + ) + ) dependsOn (kernel) + + lazy val kernelTestbench = Project( + "kernel-testbench", + file ("org.gmodel.kernel.testbench"), + settings = javaProjectSettings + ) dependsOn (kernel) + + lazy val repository = Project( + "repository", + file ("org.gmodel.repository"), + settings = javaProjectSettings + ) dependsOn (artifactpool, common, connector, hibernateosgi, kernel, serialization, statistics) + + lazy val repositoryClient = Project( + "repository-client", + file ("org.gmodel.repository.client"), + settings = buildAndPackageSettings + ) dependsOn (connector, kernel, objectpool, repository, serialization, statistics) + + lazy val repositoryClientMediator = Project( + "repository-client-mediator", + file ("org.gmodel.repository.client.mediator"), + settings = javaProjectSettings + ) + + lazy val repositoryMediator = Project( + "repository-mediator", + file ("org.gmodel.repository.mediator"), + settings = javaProjectSettings + ) + + lazy val serialization = Project( + "serialization", + file ("org.gmodel.serialization"), + settings = javaProjectSettings + ) dependsOn (kernel, statistics) + + lazy val semanticextensions = Project( + "semanticextensions", + file ("org.gmodel.semanticextensions"), + settings = javaProjectSettings + ) dependsOn (kernel) + + lazy val semanticextensionsTestscripts = Project( + "semanticextensions-testscripts", + file ("org.gmodel.semanticextensions.testscripts"), + settings = javaProjectSettings + ) dependsOn (kernel, kernelTests, kernelTestbench, semanticextensions) + + lazy val statistics = Project( + "statistics", + file ("org.gmodel.statistics"), + settings = javaProjectSettings + ) +} diff --git a/src/trunk/project/BuildSettings.scala b/src/trunk/project/BuildSettings.scala new file mode 100644 index 0000000..4300a24 --- /dev/null +++ b/src/trunk/project/BuildSettings.scala @@ -0,0 +1,72 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Limited (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +import sbt._ +import Keys._ + +object BuildSettings { + // TODO properly enforce naming conventions (http://maven.apache.org/guides/mini/guide-naming-conventions.html) with minimal duplication + + val buildSettings = Defaults.defaultSettings ++ Seq( + organization := "org.gmodel", + // TODO replace with sbt-release version + version := "1.0.0", + scalaVersion := "2.9.1", + crossPaths := false, + + ivyXML := DependencyManagement.ivyXml, + + // append several options to the list of options passed to the Java compiler + javacOptions ++= Seq("-source", "1.5", "-target", "1.5"), + + publishTo <<= (version) { version: String => + val nexus = "http://localhost:8081/nexus/content/repositories/" + if (version.trim.endsWith("SNAPSHOT")) { + Some("snapshots" at nexus + "snapshots/") + } else { + Some("releases" at nexus + "releases/") + } + }, + + credentials += Credentials(Path.userHome / ".ivy2" / ".credentials") + ) + + val buildAndPackageSettings = buildSettings ++ Packaging.defaultSettings + + val javaProjectSettings = buildAndPackageSettings ++ Seq( + // set the main Java source directory to be /src + javaSource in Compile <<= baseDirectory(_ / "src") + ) + + val javaTestProjectSettings = javaProjectSettings ++ Seq( + javaSource in Test <<= baseDirectory(_ / "src"), + parallelExecution in Test := false, + libraryDependencies += "com.novocode" % "junit-interface" % "0.7" % "test->default", + libraryDependencies += DependencyManagement.JUnit, + testListeners <+= (target).map { + t => new eu.henkelmann.sbt.JUnitXmlTestsListener(t.asFile.getAbsolutePath) + } + ) +} diff --git a/src/trunk/project/DependencyManagement.scala b/src/trunk/project/DependencyManagement.scala new file mode 100644 index 0000000..e61bb3d --- /dev/null +++ b/src/trunk/project/DependencyManagement.scala @@ -0,0 +1,49 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Limited (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +import sbt._ +import xml.Node + +object DependencyManagement { + + lazy val JUnit = "junit" % "junit" % "4.10" + lazy val Vaadin = "com.vaadin" % "vaadin" % "6.7.1" + lazy val Jetty = "org.eclipse.jetty" % "jetty-webapp" % "8.0.4.v20111024" % "container" + + def ivyXml = { + + { overridesFor( Seq(JUnit) ) } + + } + + private def overridesFor(modules: Seq[ModuleID]): Seq[Node] = { + modules.map{m => + val org = m.organization + val module = m.name + val rev = m.revision + + } + } +} diff --git a/src/trunk/project/Manifest.scala b/src/trunk/project/Manifest.scala new file mode 100644 index 0000000..91add8f --- /dev/null +++ b/src/trunk/project/Manifest.scala @@ -0,0 +1,72 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Limited (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +import sbt._ +import Keys._ +import java.net.URL +import java.util.Map.Entry +import java.util.jar.Attributes +import java.util.jar.{Manifest => JarManifest} +import scala.collection.JavaConverters._ + +object Manifest { + + private val bundleVersionKey = "Bundle-Version" + + /** + * Incorporates existing MANIFEST.MF entries in resulting jar (plus extra ones defined by SBT) + */ + def enrichManifest() = { + + (packageOptions, mainClass in Compile, name, version, homepage, organization, organizationName, baseDirectory) map { + (p, main, name, ver, h, org, orgName, bd) => { + // defaults (can we remove this duplication?) + Package.addSpecManifestAttributes(name, ver, orgName) +: + Package.addImplManifestAttributes(name, ver, h, org, orgName) +: + // added - use the entries already defined in MANIFEST.MF + useExistingManifestEntries(bd, ver) +: + // more defaults + main.map(Package.MainClass.apply) ++: + p + } + } + } + + private def useExistingManifestEntries(baseDir: File, version: String): PackageOption = { + val allEntries = retrieveManifestEntries(baseDir) + // replace the bundle version in the manifest with the project's version + val withUpdatedBundleVersion = allEntries.filterNot(e => e._1 == bundleVersionKey) ++ List( (bundleVersionKey, version) ) + Package.ManifestAttributes(withUpdatedBundleVersion: _*) + } + + private def retrieveManifestEntries(baseDir: File): List[(String,String)] = { + val manifestLocation = "file://" + baseDir.getAbsolutePath + "/META-INF/MANIFEST.MF" + val manifest = new JarManifest(new URL(manifestLocation).openStream) + val attributes = manifest.getMainAttributes + val entrySet = attributes.entrySet.asScala + entrySet.map{entry => (entry.getKey.toString, entry.getValue.toString)}.toList + } + +} diff --git a/src/trunk/project/Packaging.scala b/src/trunk/project/Packaging.scala new file mode 100644 index 0000000..c03b666 --- /dev/null +++ b/src/trunk/project/Packaging.scala @@ -0,0 +1,68 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Gmodel. + * + * The Initial Developer of the Original Code is + * SoftMetaWare Limited (SoftMetaWare). + * Portions created by the Initial Developer are + * Copyright (C) 2011 SoftMetaWare Ltd. + * All Rights Reserved. + * + * Contributor(s): + * Andrew Shewring + * ***** END LICENSE BLOCK ***** */ + +import sbt._ +import Keys._ +import java.io.File +import java.io.FilenameFilter + +object Packaging { + + val defaultSettings = Seq( + packageConfiguration in Compile in packageBin <<= addEmbeddedJarsToBinary(), + + packageOptions <<= Manifest.enrichManifest + ) + + /** + * Adds all jars in the lib directory to the resulting jar + */ + def addEmbeddedJarsToBinary() = { + (packageConfiguration in Compile in packageBin, baseDirectory) map { + (config, base) => { + var embeddedJarDir = "lib" + var libDirectory = new File(base, embeddedJarDir) + + val additionalSources = if (libDirectory.exists) { + + var jarFilter = new FilenameFilter() { + def accept(dir: File, name: String): Boolean = name.endsWith(".jar") + } + val jarFiles = List(libDirectory.listFiles(jarFilter): _*) + + jarFiles.map{j => + val jarPath = embeddedJarDir + "/" + j.getName + (j, jarPath) + } + } else { + Seq.empty + } + + new Package.Configuration(config.sources ++ additionalSources, config.jar, config.options) + } + } + } + +} diff --git a/src/trunk/project/plugins/lib/junit_xml_listener-0.3.jar b/src/trunk/project/plugins/lib/junit_xml_listener-0.3.jar new file mode 100644 index 0000000..dcd0861 Binary files /dev/null and b/src/trunk/project/plugins/lib/junit_xml_listener-0.3.jar differ diff --git a/src/trunk/project/plugins/plugins.sbt b/src/trunk/project/plugins/plugins.sbt new file mode 100644 index 0000000..ff424cf --- /dev/null +++ b/src/trunk/project/plugins/plugins.sbt @@ -0,0 +1,8 @@ +resolvers += "Web plugin repo" at "http://siasia.github.com/maven2" + +libraryDependencies <+= sbtVersion(v => "com.github.siasia" %% "xsbt-web-plugin" % (v+"-0.2.10")) + +resolvers += Classpaths.typesafeResolver + +addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse" % "1.5.0") + diff --git a/src/trunk/sbt-launch-0.11.2.jar b/src/trunk/sbt-launch-0.11.2.jar new file mode 100644 index 0000000..84fd9b7 Binary files /dev/null and b/src/trunk/sbt-launch-0.11.2.jar differ diff --git a/src/trunk/sbt.sh b/src/trunk/sbt.sh new file mode 100755 index 0000000..3c6fb35 --- /dev/null +++ b/src/trunk/sbt.sh @@ -0,0 +1 @@ +java -Xmx512m -XX:MaxPermSize=256m -jar `dirname $0`/sbt-launch-0.11.2.jar "$@" diff --git a/src/trunk/tycho-build/org.gmodel.eclipse.feature/build.properties b/src/trunk/tycho-build/org.gmodel.eclipse.feature/build.properties new file mode 100644 index 0000000..b045d39 --- /dev/null +++ b/src/trunk/tycho-build/org.gmodel.eclipse.feature/build.properties @@ -0,0 +1 @@ +bin.includes = feature.xml \ No newline at end of file diff --git a/src/trunk/tycho-build/org.gmodel.eclipse.feature/feature.xml b/src/trunk/tycho-build/org.gmodel.eclipse.feature/feature.xml new file mode 100644 index 0000000..d97ec21 --- /dev/null +++ b/src/trunk/tycho-build/org.gmodel.eclipse.feature/feature.xml @@ -0,0 +1,33 @@ + + + Gmodel Eclipse Integration components + + + + Copyright 2009-2011 + + + + These components are subject to the Mozilla Public License Version + 1.1 (the "License"); you may not use them except in compliance with + the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + + Software distributed under the License is distributed on an "AS IS" basis, + WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + for the specific language governing rights and limitations under the License. + + + + + + + + + + + + + + + diff --git a/src/trunk/tycho-build/org.gmodel.eclipse.feature/pom.xml b/src/trunk/tycho-build/org.gmodel.eclipse.feature/pom.xml new file mode 100644 index 0000000..71a69b0 --- /dev/null +++ b/src/trunk/tycho-build/org.gmodel.eclipse.feature/pom.xml @@ -0,0 +1,11 @@ + + 4.0.0 + org.gmodel.eclipse.feature + eclipse-feature + + org.gmodel + org.gmodel.eclipse + 1.0.0 + ../../pom.xml + + diff --git a/src/trunk/tycho-build/p2-updatesite/category.xml b/src/trunk/tycho-build/p2-updatesite/category.xml new file mode 100644 index 0000000..da3ff50 --- /dev/null +++ b/src/trunk/tycho-build/p2-updatesite/category.xml @@ -0,0 +1,3 @@ + + + diff --git a/src/trunk/tycho-build/p2-updatesite/pom.xml b/src/trunk/tycho-build/p2-updatesite/pom.xml new file mode 100644 index 0000000..42c989f --- /dev/null +++ b/src/trunk/tycho-build/p2-updatesite/pom.xml @@ -0,0 +1,11 @@ + + 4.0.0 + + org.gmodel + org.gmodel.eclipse + 1.0.0 + ../../pom.xml + + p2-updatesite + eclipse-repository + diff --git a/src/trunk/tycho-p2-repository/README.txt b/src/trunk/tycho-p2-repository/README.txt new file mode 100644 index 0000000..07547f6 --- /dev/null +++ b/src/trunk/tycho-p2-repository/README.txt @@ -0,0 +1,7 @@ +This temporary p2 repository contains dependencies of the Maven Tycho build. + +It was created by putting the dependent OSGi bundles into the /plugins directory and then running the following command with Eclipse (version 3.7.0): + +/path/to/eclipse -debug -consolelog -nosplash -verbose -application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher -metadataRepository file:/repo -artifactRepository file:/repo -source -compress -publishArtifacts + +The repository is then located at /repo diff --git a/src/trunk/tycho-p2-repository/artifacts.jar b/src/trunk/tycho-p2-repository/artifacts.jar new file mode 100644 index 0000000..7af298d Binary files /dev/null and b/src/trunk/tycho-p2-repository/artifacts.jar differ diff --git a/src/trunk/tycho-p2-repository/content.jar b/src/trunk/tycho-p2-repository/content.jar new file mode 100644 index 0000000..9d6ecdd Binary files /dev/null and b/src/trunk/tycho-p2-repository/content.jar differ diff --git a/src/trunk/tycho-p2-repository/plugins/org.gmodel.artifactpool_1.0.0.jar b/src/trunk/tycho-p2-repository/plugins/org.gmodel.artifactpool_1.0.0.jar new file mode 100644 index 0000000..f2b12c0 Binary files /dev/null and b/src/trunk/tycho-p2-repository/plugins/org.gmodel.artifactpool_1.0.0.jar differ diff --git a/src/trunk/tycho-p2-repository/plugins/org.gmodel.common_1.0.0.jar b/src/trunk/tycho-p2-repository/plugins/org.gmodel.common_1.0.0.jar new file mode 100644 index 0000000..46df7bb Binary files /dev/null and b/src/trunk/tycho-p2-repository/plugins/org.gmodel.common_1.0.0.jar differ diff --git a/src/trunk/tycho-p2-repository/plugins/org.gmodel.connector_1.0.0.jar b/src/trunk/tycho-p2-repository/plugins/org.gmodel.connector_1.0.0.jar new file mode 100644 index 0000000..2b1f9a7 Binary files /dev/null and b/src/trunk/tycho-p2-repository/plugins/org.gmodel.connector_1.0.0.jar differ diff --git a/src/trunk/tycho-p2-repository/plugins/org.gmodel.hibernateosgi_1.0.0.jar b/src/trunk/tycho-p2-repository/plugins/org.gmodel.hibernateosgi_1.0.0.jar new file mode 100644 index 0000000..4e5b0e5 Binary files /dev/null and b/src/trunk/tycho-p2-repository/plugins/org.gmodel.hibernateosgi_1.0.0.jar differ diff --git a/src/trunk/tycho-p2-repository/plugins/org.gmodel.kernel.testbench_1.0.0.jar b/src/trunk/tycho-p2-repository/plugins/org.gmodel.kernel.testbench_1.0.0.jar new file mode 100644 index 0000000..7aa069c Binary files /dev/null and b/src/trunk/tycho-p2-repository/plugins/org.gmodel.kernel.testbench_1.0.0.jar differ diff --git a/src/trunk/tycho-p2-repository/plugins/org.gmodel.kernel.tests_1.0.0.jar b/src/trunk/tycho-p2-repository/plugins/org.gmodel.kernel.tests_1.0.0.jar new file mode 100644 index 0000000..5c65a34 Binary files /dev/null and b/src/trunk/tycho-p2-repository/plugins/org.gmodel.kernel.tests_1.0.0.jar differ diff --git a/src/trunk/tycho-p2-repository/plugins/org.gmodel.kernel_1.0.0.jar b/src/trunk/tycho-p2-repository/plugins/org.gmodel.kernel_1.0.0.jar new file mode 100644 index 0000000..a1a2aee Binary files /dev/null and b/src/trunk/tycho-p2-repository/plugins/org.gmodel.kernel_1.0.0.jar differ diff --git a/src/trunk/tycho-p2-repository/plugins/org.gmodel.objectpool_1.0.0.jar b/src/trunk/tycho-p2-repository/plugins/org.gmodel.objectpool_1.0.0.jar new file mode 100644 index 0000000..0152a48 Binary files /dev/null and b/src/trunk/tycho-p2-repository/plugins/org.gmodel.objectpool_1.0.0.jar differ diff --git a/src/trunk/tycho-p2-repository/plugins/org.gmodel.repository.client_1.0.0.jar b/src/trunk/tycho-p2-repository/plugins/org.gmodel.repository.client_1.0.0.jar new file mode 100644 index 0000000..72a5ef4 Binary files /dev/null and b/src/trunk/tycho-p2-repository/plugins/org.gmodel.repository.client_1.0.0.jar differ diff --git a/src/trunk/tycho-p2-repository/plugins/org.gmodel.repository_1.0.0.jar b/src/trunk/tycho-p2-repository/plugins/org.gmodel.repository_1.0.0.jar new file mode 100644 index 0000000..9a37c81 Binary files /dev/null and b/src/trunk/tycho-p2-repository/plugins/org.gmodel.repository_1.0.0.jar differ diff --git a/src/trunk/tycho-p2-repository/plugins/org.gmodel.semanticextensions.testscripts_1.0.0.jar b/src/trunk/tycho-p2-repository/plugins/org.gmodel.semanticextensions.testscripts_1.0.0.jar new file mode 100644 index 0000000..ecb7371 Binary files /dev/null and b/src/trunk/tycho-p2-repository/plugins/org.gmodel.semanticextensions.testscripts_1.0.0.jar differ diff --git a/src/trunk/tycho-p2-repository/plugins/org.gmodel.semanticextensions_1.0.0.jar b/src/trunk/tycho-p2-repository/plugins/org.gmodel.semanticextensions_1.0.0.jar new file mode 100644 index 0000000..fe500da Binary files /dev/null and b/src/trunk/tycho-p2-repository/plugins/org.gmodel.semanticextensions_1.0.0.jar differ diff --git a/src/trunk/tycho-p2-repository/plugins/org.gmodel.serialization_1.0.0.jar b/src/trunk/tycho-p2-repository/plugins/org.gmodel.serialization_1.0.0.jar new file mode 100644 index 0000000..74d2731 Binary files /dev/null and b/src/trunk/tycho-p2-repository/plugins/org.gmodel.serialization_1.0.0.jar differ diff --git a/src/trunk/tycho-p2-repository/plugins/org.gmodel.statistics_1.0.0.jar b/src/trunk/tycho-p2-repository/plugins/org.gmodel.statistics_1.0.0.jar new file mode 100644 index 0000000..09c63d6 Binary files /dev/null and b/src/trunk/tycho-p2-repository/plugins/org.gmodel.statistics_1.0.0.jar differ