diff --git a/config/java.header b/config/java.header index c7205bfd..ce6929b2 100644 --- a/config/java.header +++ b/config/java.header @@ -1,5 +1,5 @@ (/\*|#|)$ -( \*|#|)$ +( \*|#|)$ ( \*|#|)$ ( \*|#|)$ ( \*|#|)$ @@ -12,4 +12,4 @@ ( \*|#|)$ ( \*|#|)$ ( \*|#|)$ -( \*/|#|)$ \ No newline at end of file +( \*/|#|)$ diff --git a/config/scalastyle_config.xml b/config/scalastyle_config.xml index dd4c99b2..a0d605bf 100644 --- a/config/scalastyle_config.xml +++ b/config/scalastyle_config.xml @@ -9,7 +9,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dg-common/pom.xml b/dg-common/pom.xml index c88d3058..791f4d85 100644 --- a/dg-common/pom.xml +++ b/dg-common/pom.xml @@ -1,256 +1,256 @@ - - - - - - dg-parent - org.finra.datagenerator - 2.3-SNAPSHOT - - 4.0.0 - - dg-common - org.finra.datagenerator - 2.3-SNAPSHOT - Data Generator Common Utils - - - true - - - - - - org.scala-lang - scala-library - 2.10.4 - - - - org.scalatest - scalatest_2.10 - 2.2.0 - - - - commons-codec - commons-codec - 1.10 - - - - com.jcraft - jsch - 0.1.53 - - - - uk.com.robust-it - cloning - 1.9.1 - - - - org.apache.commons - commons-math3 - 3.5 - - - - org.apache.commons - commons-compress - 1.9 - - - - commons-io - commons-io - 2.4 - - - - - - - net.alchim31.maven - scala-maven-plugin - 3.2.0 - - - doc-jar - - doc-jar - - - - compile - - compile - - compile - - - test-compile - - testCompile - - test-compile - - - process-resources - - compile - - - - - - org.apache.maven.plugins - maven-dependency-plugin - - - copy-dependencies - prepare-package - - copy-dependencies - - - slf4j-log4j12,slf4j-jdk14,google-collections - ${project.build.directory}/lib - true - true - true - - - - - - 2.6 - org.apache.maven.plugins - maven-jar-plugin - - - - true - lib/ - org.finra.datagenerator.common.SocialNetwork_Example - - - - - - org.scalastyle - scalastyle-maven-plugin - 0.6.0 - - true - true - - true - true - ${basedir}/src/main/scala - ${basedir}/src/test/scala - ${project.basedir}/../config/scalastyle_config.xml - ${project.basedir}/../config/scalastyle-output_dg-common.xml - UTF-8 - - - - - check - - - - - - org.apache.maven.plugins - maven-pmd-plugin - 3.2 - - check - - - true - true - true - - /rulesets/java/braces.xml - /rulesets/java/strictexception.xml - /rulesets/java/basic.xml - - - - - test - test - - check - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 2.1 - - 1.7 - 1.7 - - - - org.apache.maven.plugins - maven-checkstyle-plugin - 2.12.1 - - - test - test - - ../config/sun_checkstyle.xml - ../config/java.header - true - true - true - **/*.* - UTF-8 - true - true - true - - - check - - - - - - org.apache.maven.plugins - maven-surefire-plugin - 2.10 - - - **/*Test*.scala - **/*Test*.java - - - - - - + + + + + + dg-parent + org.finra.datagenerator + 2.3-SNAPSHOT + + 4.0.0 + + dg-common + org.finra.datagenerator + 2.3-SNAPSHOT + Data Generator Common Utils + + + true + + + + + + org.scala-lang + scala-library + 2.10.4 + + + + org.scalatest + scalatest_2.10 + 2.2.0 + + + + commons-codec + commons-codec + 1.10 + + + + com.jcraft + jsch + 0.1.53 + + + + uk.com.robust-it + cloning + 1.9.1 + + + + org.apache.commons + commons-math3 + 3.5 + + + + org.apache.commons + commons-compress + 1.9 + + + + commons-io + commons-io + 2.4 + + + + + + + net.alchim31.maven + scala-maven-plugin + 3.2.0 + + + doc-jar + + doc-jar + + + + compile + + compile + + compile + + + test-compile + + testCompile + + test-compile + + + process-resources + + compile + + + + + + org.apache.maven.plugins + maven-dependency-plugin + + + copy-dependencies + prepare-package + + copy-dependencies + + + slf4j-log4j12,slf4j-jdk14,google-collections + ${project.build.directory}/lib + true + true + true + + + + + + 2.6 + org.apache.maven.plugins + maven-jar-plugin + + + + true + lib/ + org.finra.datagenerator.common.SocialNetwork_Example + + + + + + org.scalastyle + scalastyle-maven-plugin + 0.6.0 + + true + true + + true + true + ${basedir}/src/main/scala + ${basedir}/src/test/scala + ${project.basedir}/../config/scalastyle_config.xml + ${project.basedir}/../config/scalastyle-output_dg-common.xml + UTF-8 + + + + + check + + + + + + org.apache.maven.plugins + maven-pmd-plugin + 3.2 + + check + + + true + true + true + + /rulesets/java/braces.xml + /rulesets/java/strictexception.xml + /rulesets/java/basic.xml + + + + + test + test + + check + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 2.1 + + 1.7 + 1.7 + + + + org.apache.maven.plugins + maven-checkstyle-plugin + 2.12.1 + + + test + test + + ../config/sun_checkstyle.xml + ../config/java.header + true + true + true + **/*.* + UTF-8 + true + true + true + + + check + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.10 + + + **/*Test*.scala + **/*Test*.java + + + + + + diff --git a/dg-common/src/main/java/org/finra/datagenerator/common/Helpers/ScalaInJavaHelper.java b/dg-common/src/main/java/org/finra/datagenerator/common/Helpers/ScalaInJavaHelper.java index a0cd0056..30cb3d7c 100644 --- a/dg-common/src/main/java/org/finra/datagenerator/common/Helpers/ScalaInJavaHelper.java +++ b/dg-common/src/main/java/org/finra/datagenerator/common/Helpers/ScalaInJavaHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 DataGenerator Contributors + * Copyright DataGenerator Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/SocialNetworkExample.java b/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/SocialNetworkExample.java index 385401a8..8ba28d72 100644 --- a/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/SocialNetworkExample.java +++ b/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/SocialNetworkExample.java @@ -1,34 +1,34 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.SocialNetwork_Example_Java; - -/** - * Main method that generates social-network friendship graphs - */ -public final class SocialNetworkExample { - private SocialNetworkExample() { - // Not called -- utility class + +/** + * Main method that generates social-network friendship graphs + */ +public final class SocialNetworkExample { + private SocialNetworkExample() { + // Not called -- utility class + } + + /** + * Main entry point + * @param args Arguments + */ + public static void main(String[] args) { + SocialNetworkStructureBuilder.getInstance().generateAllNodeDataTypeGraphCombinationsOfMaxLength(4); } - - /** - * Main entry point - * @param args Arguments - */ - public static void main(String[] args) { - SocialNetworkStructureBuilder.getInstance().generateAllNodeDataTypeGraphCombinationsOfMaxLength(4); - } } diff --git a/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/SocialNetworkStructureBuilder.java b/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/SocialNetworkStructureBuilder.java index afc8776b..62b24581 100644 --- a/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/SocialNetworkStructureBuilder.java +++ b/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/SocialNetworkStructureBuilder.java @@ -1,85 +1,85 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.SocialNetwork_Example_Java; - -import org.finra.datagenerator.common.Graph.Graph; -import org.finra.datagenerator.common.GraphEngine.StructureBuilder; -import scala.NotImplementedError; -import scala.collection.Iterator; + +import org.finra.datagenerator.common.Graph.Graph; +import org.finra.datagenerator.common.GraphEngine.StructureBuilder; +import scala.NotImplementedError; +import scala.collection.Iterator; import scala.collection.immutable.Vector; - + import java.io.File; - -/** - * Builds all combinations of graph structures for friendships with a maximum graph size - */ -public final class SocialNetworkStructureBuilder extends StructureBuilder { + +/** + * Builds all combinations of graph structures for friendships with a maximum graph size + */ +public final class SocialNetworkStructureBuilder extends StructureBuilder { // Defined as protected in the Scala abstract class, but for some reason it requires public on the Java impl. - - /** - * Node data types - * @return UserTypes - */ - public UserTypes nodeDataTypes() { - return UserTypes.getInstance(); + + /** + * Node data types + * @return UserTypes + */ + public UserTypes nodeDataTypes() { + return UserTypes.getInstance(); } - - private final String systemTempDir = System.getProperty("java.io.tmpdir").replace('\\', '/'); + + private final String systemTempDir = System.getProperty("java.io.tmpdir").replace('\\', '/'); private final String outDir = systemTempDir + (systemTempDir.endsWith("/") ? "" : "/") + "SocialNetworkGraphs/"; - - private static final Boolean WRITE_STRUCTURES_IN_PARALLEL = false; // Same structure = same ID helps debugging. + + private static final Boolean WRITE_STRUCTURES_IN_PARALLEL = false; // Same structure = same ID helps debugging. private static final Boolean ALSO_WRITE_AS_PNG = true; - + private static final SocialNetworkStructureBuilder INSTANCE = new SocialNetworkStructureBuilder(); - - /** - * Singleton instance - * @return SocialNetworkStructureBuilder singleton - */ - public static SocialNetworkStructureBuilder getInstance() { - return INSTANCE; + + /** + * Singleton instance + * @return SocialNetworkStructureBuilder singleton + */ + public static SocialNetworkStructureBuilder getInstance() { + return INSTANCE; } - - private SocialNetworkStructureBuilder() { - new File(outDir).mkdirs(); + + private SocialNetworkStructureBuilder() { + new File(outDir).mkdirs(); } - - /** - * Build all combinations of graph structures for generic event stubs of a maximum length - * @param length Maximum number of nodes in each to generate - * @return All graph combinations of specified length or less - */ - public Vector> generateAllNodeDataTypeGraphCombinationsOfMaxLength(int length) { + + /** + * Build all combinations of graph structures for generic event stubs of a maximum length + * @param length Maximum number of nodes in each to generate + * @return All graph combinations of specified length or less + */ + public Vector> generateAllNodeDataTypeGraphCombinationsOfMaxLength(int length) { Vector> graphs = super.generateAllNodeDataTypeGraphCombinationsOfMaxLength(length); - - if (WRITE_STRUCTURES_IN_PARALLEL) { - // Left as an exercise to the student. - throw new NotImplementedError(); - } else { - int i = 0; - for (Iterator> iter = graphs.toIterator(); iter.hasNext();) { - Graph graph = iter.next(); - graph.setGraphId("S_" + ++i + "_" + graph.allNodes().size()); - graph.writeDotFile(outDir + graph.graphId() + ".gv", false, ALSO_WRITE_AS_PNG); - } - System.out.println("Wrote " + i + " graph files in DOT format to " + outDir + ""); + + if (WRITE_STRUCTURES_IN_PARALLEL) { + // Left as an exercise to the student. + throw new NotImplementedError(); + } else { + int i = 0; + for (Iterator> iter = graphs.toIterator(); iter.hasNext();) { + Graph graph = iter.next(); + graph.setGraphId("S_" + ++i + "_" + graph.allNodes().size()); + graph.writeDotFile(outDir + graph.graphId() + ".gv", false, ALSO_WRITE_AS_PNG); + } + System.out.println("Wrote " + i + " graph files in DOT format to " + outDir + ""); } - - return graphs; + + return graphs; } - + } diff --git a/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/SocialNetworkUtilities.java b/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/SocialNetworkUtilities.java index 15d7b299..4806735b 100644 --- a/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/SocialNetworkUtilities.java +++ b/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/SocialNetworkUtilities.java @@ -1,97 +1,97 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.SocialNetwork_Example_Java; - -import org.finra.datagenerator.common.Helpers.RandomHelper; -import scala.NotImplementedError; + +import org.finra.datagenerator.common.Helpers.RandomHelper; +import scala.NotImplementedError; import scala.Tuple2; - + import java.sql.Date; - -/** - * Utility methods relating to data that are part of social event users. - * Not fully implemented, and not used, because this is for data generation and not stub generation, and - * the current implementation only supports stub generation and doesn't yet have any implementation of - * stub-to-data translation. - */ -public final class SocialNetworkUtilities { - private SocialNetworkUtilities() { - // Not called -- utility class + +/** + * Utility methods relating to data that are part of social event users. + * Not fully implemented, and not used, because this is for data generation and not stub generation, and + * the current implementation only supports stub generation and doesn't yet have any implementation of + * stub-to-data translation. + */ +public final class SocialNetworkUtilities { + private SocialNetworkUtilities() { + // Not called -- utility class } - - /** - * Randomly get whether it is a secret account - * @return Boolean - */ - public static Boolean getRandomIsSecret() { - return RandomHelper.evaluateProbability(0.1); // 10% of accounts are secret accounts. + + /** + * Randomly get whether it is a secret account + * @return Boolean + */ + public static Boolean getRandomIsSecret() { + return RandomHelper.evaluateProbability(0.1); // 10% of accounts are secret accounts. } - - /** - * Get random geographical location - * @return 2-Tuple of ints (latitude, longitude) - */ - public static Tuple2 getRandomGeographicalLocation() { - return new Tuple2<>( - (double) (RandomHelper.randWithConfiguredSeed().nextInt(999) + 1) / 100, - (double) (RandomHelper.randWithConfiguredSeed().nextInt(999) + 1) / 100); + + /** + * Get random geographical location + * @return 2-Tuple of ints (latitude, longitude) + */ + public static Tuple2 getRandomGeographicalLocation() { + return new Tuple2<>( + (double) (RandomHelper.randWithConfiguredSeed().nextInt(999) + 1) / 100, + (double) (RandomHelper.randWithConfiguredSeed().nextInt(999) + 1) / 100); } - - /** - * Get distance between geographical coordinates - * @param point1 Point1 - * @param point2 Point2 - * @return Distance (double) - */ - public static Double getDistanceBetweenCoordinates(Tuple2 point1, Tuple2 point2) { - // sqrt( (x2-x1)^2 + (y2-y2)^2 ) - Double xDiff = point1._1() - point2._1(); - Double yDiff = point1._2() - point2._2(); - return Math.sqrt(xDiff * xDiff + yDiff * yDiff); + + /** + * Get distance between geographical coordinates + * @param point1 Point1 + * @param point2 Point2 + * @return Distance (double) + */ + public static Double getDistanceBetweenCoordinates(Tuple2 point1, Tuple2 point2) { + // sqrt( (x2-x1)^2 + (y2-y2)^2 ) + Double xDiff = point1._1() - point2._1(); + Double yDiff = point1._2() - point2._2(); + return Math.sqrt(xDiff * xDiff + yDiff * yDiff); } - - /** - * Not implemented. - * @param point1 Point1 - * @param point2 Point2 - * @return Throws an exception. - */ - public static Double getDistanceWithinThresholdOfCoordinates( - Tuple2 point1, Tuple2 point2) { - throw new NotImplementedError(); + + /** + * Not implemented. + * @param point1 Point1 + * @param point2 Point2 + * @return Throws an exception. + */ + public static Double getDistanceWithinThresholdOfCoordinates( + Tuple2 point1, Tuple2 point2) { + throw new NotImplementedError(); } - - /** - * Not implemented. - * @return Throws exception. - */ - public static Date getRandomBirthDate() { - throw new NotImplementedError(); + + /** + * Not implemented. + * @return Throws exception. + */ + public static Date getRandomBirthDate() { + throw new NotImplementedError(); } - + private static final Double COORDINATE_THRESHOLD = 2.0; - - /** - * Whether or not points are within some threshold. - * @param point1 Point 1 - * @param point2 Point 2 - * @return True or false - */ - public static Boolean areCoordinatesWithinThreshold(Tuple2 point1, Tuple2 point2) { - return getDistanceBetweenCoordinates(point1, point2) < COORDINATE_THRESHOLD; - } + + /** + * Whether or not points are within some threshold. + * @param point1 Point 1 + * @param point2 Point 2 + * @return True or false + */ + public static Boolean areCoordinatesWithinThreshold(Tuple2 point1, Tuple2 point2) { + return getDistanceBetweenCoordinates(point1, point2) < COORDINATE_THRESHOLD; + } } diff --git a/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/User.java b/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/User.java index 98659f76..dd5116dd 100644 --- a/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/User.java +++ b/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/User.java @@ -1,79 +1,79 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.SocialNetwork_Example_Java; - -import org.finra.datagenerator.common.NodeData.NodeData; + +import org.finra.datagenerator.common.NodeData.NodeData; import scala.Tuple2; - + import java.sql.Date; - -/** - * Social network user - */ -public class User extends NodeData { - final UserTypeVal dataType; - final String firstName; - final String lastName; - final Date dateOfBirth; - final Tuple2 geographicalLocation; - final Boolean isSecret; + +/** + * Social network user + */ +public class User extends NodeData { + final UserTypeVal dataType; + final String firstName; + final String lastName; + final Date dateOfBirth; + final Tuple2 geographicalLocation; + final Boolean isSecret; final Long socialNetworkId; - - /** - * Construct a User - * @param dataType User type - * @param firstName First name - * @param lastName Last name - * @param dateOfBirth Date of birth - * @param geographicalLocation Latitude and longitude - * @param isSecret Is secret user - * @param socialNetworkId Social network ID of user - */ - public User( - final UserTypeVal dataType, - final String firstName, - final String lastName, - final Date dateOfBirth, // Assert > 13 years old when creating - final Tuple2 geographicalLocation, - final Boolean isSecret, - final Long socialNetworkId) { - super(); - this.dataType = dataType; - this.firstName = firstName; - this.lastName = lastName; - this.dateOfBirth = dateOfBirth; - this.geographicalLocation = geographicalLocation; - this.isSecret = isSecret; - this.socialNetworkId = socialNetworkId; + + /** + * Construct a User + * @param dataType User type + * @param firstName First name + * @param lastName Last name + * @param dateOfBirth Date of birth + * @param geographicalLocation Latitude and longitude + * @param isSecret Is secret user + * @param socialNetworkId Social network ID of user + */ + public User( + final UserTypeVal dataType, + final String firstName, + final String lastName, + final Date dateOfBirth, // Assert > 13 years old when creating + final Tuple2 geographicalLocation, + final Boolean isSecret, + final Long socialNetworkId) { + super(); + this.dataType = dataType; + this.firstName = firstName; + this.lastName = lastName; + this.dateOfBirth = dateOfBirth; + this.geographicalLocation = geographicalLocation; + this.isSecret = isSecret; + this.socialNetworkId = socialNetworkId; + } + + /** + * Get default ID to display when outputting user, e.g., as part of a node in of DOT file + * @return ID String + */ + public String defaultDisplayableDataId() { + return socialNetworkId + " (" + dataType.name() + "): " + lastName + ", " + firstName; } - - /** - * Get default ID to display when outputting user, e.g., as part of a node in of DOT file - * @return ID String - */ - public String defaultDisplayableDataId() { - return socialNetworkId + " (" + dataType.name() + "): " + lastName + ", " + firstName; + + /** + * Get user type + * @return User type + */ + public UserTypeVal getDataType() { + return dataType; } - - /** - * Get user type - * @return User type - */ - public UserTypeVal getDataType() { - return dataType; - } } diff --git a/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/UserStub.java b/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/UserStub.java index 03808594..dba1012e 100644 --- a/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/UserStub.java +++ b/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/UserStub.java @@ -1,184 +1,184 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.SocialNetwork_Example_Java; - -import org.finra.datagenerator.common.NodeData.NodeDataStub; -import scala.Option; -import scala.Some; + +import org.finra.datagenerator.common.NodeData.NodeDataStub; +import scala.Option; +import scala.Some; import scala.Tuple2; - + import java.util.LinkedList; - + import static org.finra.datagenerator.common.Helpers.ScalaInJavaHelper.linkedListToScalaIterable; - -/** - * Describes a user with type and optional metadata - */ -@SuppressWarnings("unchecked") // e.g., "Unchecked call to 'apply(A)' as a member of raw type 'scala.Option' -public class UserStub extends NodeDataStub { + +/** + * Describes a user with type and optional metadata + */ +@SuppressWarnings("unchecked") // e.g., "Unchecked call to 'apply(A)' as a member of raw type 'scala.Option' +public class UserStub extends NodeDataStub { private final Option none = Option.apply(null); - - private UserTypeVal dataType = UserType.PUBLIC_USER; - private Option> geographicalLocation = none; + + private UserTypeVal dataType = UserType.PUBLIC_USER; + private Option> geographicalLocation = none; private Option isSecret = none; - - /** - * Get empty UserStub - */ - protected UserStub() { + + /** + * Get empty UserStub + */ + protected UserStub() { } - - /** - * Construct a UserStub - * @param userType User type - */ - public UserStub(final UserTypeVal userType) { - this(); - dataType = userType; + + /** + * Construct a UserStub + * @param userType User type + */ + public UserStub(final UserTypeVal userType) { + this(); + dataType = userType; } - - /** - * Construct a UserStub - * @param userType User type - * @param geographicalLocation Latitude and longitude - * @param isSecret Is secret user - * - */ - public UserStub(final UserTypeVal userType, final Tuple2 geographicalLocation, final Boolean isSecret) { - this(); - dataType = userType; - this.geographicalLocation = new Some<>(geographicalLocation); - this.isSecret = new Some<>(isSecret); + + /** + * Construct a UserStub + * @param userType User type + * @param geographicalLocation Latitude and longitude + * @param isSecret Is secret user + * + */ + public UserStub(final UserTypeVal userType, final Tuple2 geographicalLocation, final Boolean isSecret) { + this(); + dataType = userType; + this.geographicalLocation = new Some<>(geographicalLocation); + this.isSecret = new Some<>(isSecret); } - - /** - * Gets default displayable data ID, used for outputting, e.g., to DOT file - * @return Default displayable data ID string - */ - public String defaultDisplayableDataId() { - return dataType.name(); + + /** + * Gets default displayable data ID, used for outputting, e.g., to DOT file + * @return Default displayable data ID string + */ + public String defaultDisplayableDataId() { + return dataType.name(); } - - /** - * Elements to display when outputting, e.g., to DOT file - * @return Iterable - */ - @Override - public scala.collection.Iterable displayableElements() { - LinkedList elements = new LinkedList<>(); - if (geographicalLocation.nonEmpty()) { - elements.add("Lat=" + geographicalLocation.get()._1()); - elements.add("Long=" + geographicalLocation.get()._2()); - } - if (isSecret.nonEmpty() && isSecret.get()) { - elements.add("IsSecret=True"); + + /** + * Elements to display when outputting, e.g., to DOT file + * @return Iterable + */ + @Override + public scala.collection.Iterable displayableElements() { + LinkedList elements = new LinkedList<>(); + if (geographicalLocation.nonEmpty()) { + elements.add("Lat=" + geographicalLocation.get()._1()); + elements.add("Long=" + geographicalLocation.get()._2()); + } + if (isSecret.nonEmpty() && isSecret.get()) { + elements.add("IsSecret=True"); } - - // Also possible to build a Scala collection directly in Java code, but building in Java and converting at - // the very end is probably easier for Java developers than having to figure out the Scala collection classes - // and deal with the annoying Java-interop syntax, e.g., to rewrite the Scala code "myArray += valToInsert" in + + // Also possible to build a Scala collection directly in Java code, but building in Java and converting at + // the very end is probably easier for Java developers than having to figure out the Scala collection classes + // and deal with the annoying Java-interop syntax, e.g., to rewrite the Scala code "myArray += valToInsert" in // Java would look like "myArray.$plus$eq(valToInsert);", which we'd rather avoid. - - return linkedListToScalaIterable(elements); + + return linkedListToScalaIterable(elements); } - - /** - * Elements to display when outputting in simplified format, e.g., to DOT file - * @return Iterable - */ - @Override - public scala.collection.Iterable simplifiedDisplayableElements() { - LinkedList elements = new LinkedList<>(); + + /** + * Elements to display when outputting in simplified format, e.g., to DOT file + * @return Iterable + */ + @Override + public scala.collection.Iterable simplifiedDisplayableElements() { + LinkedList elements = new LinkedList<>(); elements.add(displayableDataId()); - - return linkedListToScalaIterable(elements); + + return linkedListToScalaIterable(elements); } - - /** - * Get random stub matching this user type - * @param userType User type - * @return Random stub - */ - public static UserStub getStubWithRandomParams(UserTypeVal userType) { - // Java coerces the return type as a Tuple2 of Objects -- but it's declared as a Tuple2 of Doubles! - // Oh the joys of type erasure. - Tuple2 tuple = SocialNetworkUtilities.getRandomGeographicalLocation(); - return new UserStub(userType, new Tuple2<>((Double) tuple._1(), (Double) tuple._2()), - SocialNetworkUtilities.getRandomIsSecret()); + + /** + * Get random stub matching this user type + * @param userType User type + * @return Random stub + */ + public static UserStub getStubWithRandomParams(UserTypeVal userType) { + // Java coerces the return type as a Tuple2 of Objects -- but it's declared as a Tuple2 of Doubles! + // Oh the joys of type erasure. + Tuple2 tuple = SocialNetworkUtilities.getRandomGeographicalLocation(); + return new UserStub(userType, new Tuple2<>((Double) tuple._1(), (Double) tuple._2()), + SocialNetworkUtilities.getRandomIsSecret()); } - - /** - * Get the user type - * @return User type - */ - public UserTypeVal getDataType() { - return dataType(); + + /** + * Get the user type + * @return User type + */ + public UserTypeVal getDataType() { + return dataType(); } - - /** - * Get the user type - * @return User type - */ - @Override - public UserTypeVal dataType() { - return UserType.ADMIN; + + /** + * Get the user type + * @return User type + */ + @Override + public UserTypeVal dataType() { + return UserType.ADMIN; } - - /** - * Set the user type - * @param userType User type - */ - @Override - public void setDataType(UserTypeVal userType) { - dataType = userType; + + /** + * Set the user type + * @param userType User type + */ + @Override + public void setDataType(UserTypeVal userType) { + dataType = userType; } - - // This stuff comes for free in Scala, but when extending a Scala case class in Java, we must define these. + + // This stuff comes for free in Scala, but when extending a Scala case class in Java, we must define these. // http://dcsobral.blogspot.com/2009/06/case-classes-and-product.html - - /** - * Get element by index - * @param n Index - * @return Element corresponding to index - */ - public Object productElement(int n) { - assert n >= 0 && n < 3; - switch (n) { - case 0: return dataType; - case 1: return geographicalLocation; - case 2: return isSecret; - default: throw new IllegalArgumentException(n + " is not an allowed index into UserStub!"); - } + + /** + * Get element by index + * @param n Index + * @return Element corresponding to index + */ + public Object productElement(int n) { + assert n >= 0 && n < 3; + switch (n) { + case 0: return dataType; + case 1: return geographicalLocation; + case 2: return isSecret; + default: throw new IllegalArgumentException(n + " is not an allowed index into UserStub!"); + } + } + + /** + * Number of fields in this type + * @return 3 + */ + public int productArity() { + return 3; } - - /** - * Number of fields in this type - * @return 3 - */ - public int productArity() { - return 3; + + /** + * Can equal + * @param that Other object + * @return Whether or not objects can equal + */ + public boolean canEqual(Object that) { + return that != null && that.getClass() == getClass(); } - - /** - * Can equal - * @param that Other object - * @return Whether or not objects can equal - */ - public boolean canEqual(Object that) { - return that != null && that.getClass() == getClass(); - } } diff --git a/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/UserTransitions.java b/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/UserTransitions.java index 50d23db0..04d9be49 100644 --- a/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/UserTransitions.java +++ b/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/UserTransitions.java @@ -1,84 +1,84 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.SocialNetwork_Example_Java; - -import org.finra.datagenerator.common.Graph.Node; -import org.finra.datagenerator.common.GraphEngine.DataTransitions; + +import org.finra.datagenerator.common.Graph.Node; +import org.finra.datagenerator.common.GraphEngine.DataTransitions; import scala.NotImplementedError; - -/** - * Methods to link users together - */ -public final class UserTransitions extends DataTransitions { + +/** + * Methods to link users together + */ +public final class UserTransitions extends DataTransitions { private static final UserTransitions INSTANCE = new UserTransitions(); - - public static UserTransitions getInstance() { - return INSTANCE; + + public static UserTransitions getInstance() { + return INSTANCE; } - - private UserTransitions() { + + private UserTransitions() { } - - @Override - public UserTypes nodeDataTypes() { - return UserTypes.getInstance(); + + @Override + public UserTypes nodeDataTypes() { + return UserTypes.getInstance(); } - - @Override - public void linkExistingNodes(Node parent, Node child) { - parent.addLinkToExistingChild(child); + + @Override + public void linkExistingNodes(Node parent, Node child) { + parent.addLinkToExistingChild(child); } - - @Override - public boolean isStubParentTypeTransitionAllowed(Node childNode, Node candidateParentNode) { - UserTypeVal childType = childNode.data().dataType(); + + @Override + public boolean isStubParentTypeTransitionAllowed(Node childNode, Node candidateParentNode) { + UserTypeVal childType = childNode.data().dataType(); UserTypeVal parentType = candidateParentNode.data().dataType(); - - if (childType == UserType.ADMIN) { - return parentType == UserType.ADMIN; - } else if (childType == UserType.SOCIAL_NETWORK_EMPLOYEE) { - return parentType != UserType.PUBLIC_USER; - } else { - return true; - } + + if (childType == UserType.ADMIN) { + return parentType == UserType.ADMIN; + } else if (childType == UserType.SOCIAL_NETWORK_EMPLOYEE) { + return parentType != UserType.PUBLIC_USER; + } else { + return true; + } + } + + @Override + public boolean isParentTypeTransitionAllowed(Node childDataNode, Node candidateParentDataNode) { + throw new NotImplementedError(); } - - @Override - public boolean isParentTypeTransitionAllowed(Node childDataNode, Node candidateParentDataNode) { - throw new NotImplementedError(); + + @Override + public Node addRandomlyGeneratedParentData(Node childDataNode, UserTypeVal parentNodeDataType) { + throw new NotImplementedError(); } - - @Override - public Node addRandomlyGeneratedParentData(Node childDataNode, UserTypeVal parentNodeDataType) { - throw new NotImplementedError(); + + @Override + public Node addRandomlyGeneratedParentData(Node childDataNode, UserStub parentNodeDataStub) { + throw new NotImplementedError(); } - - @Override - public Node addRandomlyGeneratedParentData(Node childDataNode, UserStub parentNodeDataStub) { - throw new NotImplementedError(); + + @Override + public Node addRandomlyGeneratedChildData(Node parentDataNode, UserTypeVal childNodeDataType) { + throw new NotImplementedError(); } - - @Override - public Node addRandomlyGeneratedChildData(Node parentDataNode, UserTypeVal childNodeDataType) { - throw new NotImplementedError(); + + @Override + public Node addRandomlyGeneratedChildData(Node parentDataNode, UserStub childNodeDataStub) { + throw new NotImplementedError(); } - - @Override - public Node addRandomlyGeneratedChildData(Node parentDataNode, UserStub childNodeDataStub) { - throw new NotImplementedError(); - } } diff --git a/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/UserType.java b/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/UserType.java index 2cb996cc..282d57de 100644 --- a/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/UserType.java +++ b/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/UserType.java @@ -1,384 +1,384 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.SocialNetwork_Example_Java; - -import org.finra.datagenerator.common.Graph.Node; -import org.finra.datagenerator.common.Helpers.RandomHelper; -import org.finra.datagenerator.common.Helpers.ScalaInJavaHelper; -import org.finra.datagenerator.common.NodeData.DisplayableData; -import org.finra.datagenerator.common.NodeData.NodeDataType; -import scala.Function1; -import scala.Tuple2; -import scala.collection.Seq; -import scala.collection.mutable.ListBuffer; + +import org.finra.datagenerator.common.Graph.Node; +import org.finra.datagenerator.common.Helpers.RandomHelper; +import org.finra.datagenerator.common.Helpers.ScalaInJavaHelper; +import org.finra.datagenerator.common.NodeData.DisplayableData; +import org.finra.datagenerator.common.NodeData.NodeDataType; +import scala.Function1; +import scala.Tuple2; +import scala.collection.Seq; +import scala.collection.mutable.ListBuffer; import scala.runtime.AbstractFunction1; - + import java.util.LinkedList; - -/** - * User Type - */ -public final class UserType { - private UserType() { - // Not called -- utility class + +/** + * User Type + */ +public final class UserType { + private UserType() { + // Not called -- utility class } - - /** - * ADMIN - */ - public static final UserTypeVal ADMIN = new UserTypeVal() { - /** - * Get data type - * @return - */ - public NodeDataType.NodeDataType getDataType() { - return UserType.ADMIN; + + /** + * ADMIN + */ + public static final UserTypeVal ADMIN = new UserTypeVal() { + /** + * Get data type + * @return + */ + public NodeDataType.NodeDataType getDataType() { + return UserType.ADMIN; } - - /** - * Get name of data type - * @return - */ - @Override - public String name() { - return "Admin"; + + /** + * Get name of data type + * @return + */ + @Override + public String name() { + return "Admin"; } - - /** - * Get allowable child types - * @param nodeOfThisType Node of this type - * @return Sequence of allowable child types - */ - @Override - public Seq getAllowableChildTypes(Node nodeOfThisType) { - LinkedList list = new LinkedList<>(); - list.add(UserType.ADMIN); - list.add(UserType.SOCIAL_NETWORK_EMPLOYEE); - list.add(UserType.PUBLIC_USER); - return ScalaInJavaHelper.linkedListToScalaIterable(list).toSeq(); + + /** + * Get allowable child types + * @param nodeOfThisType Node of this type + * @return Sequence of allowable child types + */ + @Override + public Seq getAllowableChildTypes(Node nodeOfThisType) { + LinkedList list = new LinkedList<>(); + list.add(UserType.ADMIN); + list.add(UserType.SOCIAL_NETWORK_EMPLOYEE); + list.add(UserType.PUBLIC_USER); + return ScalaInJavaHelper.linkedListToScalaIterable(list).toSeq(); } - - /** - * Get allowable parent types - * @param nodeOfThisType Node of this type - * @return Sequence of allowable parent types - */ - @Override - public Seq getAllowableParentTypes(Node nodeOfThisType) { - LinkedList list = new LinkedList<>(); - list.add(UserType.ADMIN); - return ScalaInJavaHelper.linkedListToScalaIterable(list).toSeq(); + + /** + * Get allowable parent types + * @param nodeOfThisType Node of this type + * @return Sequence of allowable parent types + */ + @Override + public Seq getAllowableParentTypes(Node nodeOfThisType) { + LinkedList list = new LinkedList<>(); + list.add(UserType.ADMIN); + return ScalaInJavaHelper.linkedListToScalaIterable(list).toSeq(); } - - /** - * Whether or not to create children - * @param node Node - * @param maxToGenerate Max nodes to generate - * @param probabilityMultiplier As this goes up from 1, we are more linearly more likely to produce children - * @param Type param - * @return Added children - */ - @Override - public - ListBuffer, Object>>> - childStateTransitionPredicates(Node node, int maxToGenerate, - final int probabilityMultiplier) { - ListBuffer, Object>>> list = + + /** + * Whether or not to create children + * @param node Node + * @param maxToGenerate Max nodes to generate + * @param probabilityMultiplier As this goes up from 1, we are more linearly more likely to produce children + * @param Type param + * @return Added children + */ + @Override + public + ListBuffer, Object>>> + childStateTransitionPredicates(Node node, int maxToGenerate, + final int probabilityMultiplier) { + ListBuffer, Object>>> list = new ListBuffer<>(); - - list.$plus$eq(new Tuple2, Object>>( - UserType.ADMIN, - new AbstractFunction1, Object>() { - public Object apply(Node sourceEventNode) { - return RandomHelper.evaluateProbability(probabilityMultiplier * 0.07); - } - })); - list.$plus$eq(new Tuple2, Object>>( - UserType.SOCIAL_NETWORK_EMPLOYEE, - new AbstractFunction1, Object>() { - public Object apply(Node sourceEventNode) { - return RandomHelper.evaluateProbability(probabilityMultiplier * 0.1); - } - })); - list.$plus$eq(new Tuple2, Object>>( - UserType.PUBLIC_USER, - new AbstractFunction1, Object>() { - public Object apply(Node sourceEventNode) { - return RandomHelper.evaluateProbability(probabilityMultiplier * 0.15); - } - })); - return list; + + list.$plus$eq(new Tuple2, Object>>( + UserType.ADMIN, + new AbstractFunction1, Object>() { + public Object apply(Node sourceEventNode) { + return RandomHelper.evaluateProbability(probabilityMultiplier * 0.07); + } + })); + list.$plus$eq(new Tuple2, Object>>( + UserType.SOCIAL_NETWORK_EMPLOYEE, + new AbstractFunction1, Object>() { + public Object apply(Node sourceEventNode) { + return RandomHelper.evaluateProbability(probabilityMultiplier * 0.1); + } + })); + list.$plus$eq(new Tuple2, Object>>( + UserType.PUBLIC_USER, + new AbstractFunction1, Object>() { + public Object apply(Node sourceEventNode) { + return RandomHelper.evaluateProbability(probabilityMultiplier * 0.15); + } + })); + return list; } - - /** - * Whether or not to create parents - * @param node Node - * @param maxToGenerate Max nodes to generate - * @param probabilityMultiplier As this goes up from 1, we are more linearly more likely to produce children - * @param Type param - * @return Added parents - */ - @Override - public - ListBuffer, Object>>> - parentStateTransitionPredicates(Node node, int maxToGenerate, - final int probabilityMultiplier) { - ListBuffer, Object>>> list = + + /** + * Whether or not to create parents + * @param node Node + * @param maxToGenerate Max nodes to generate + * @param probabilityMultiplier As this goes up from 1, we are more linearly more likely to produce children + * @param Type param + * @return Added parents + */ + @Override + public + ListBuffer, Object>>> + parentStateTransitionPredicates(Node node, int maxToGenerate, + final int probabilityMultiplier) { + ListBuffer, Object>>> list = new ListBuffer<>(); - - list.$plus$eq(new Tuple2, Object>>( - UserType.ADMIN, - new AbstractFunction1, Object>() { - public Object apply(Node sourceEventNode) { - return RandomHelper.evaluateProbability(probabilityMultiplier * 0.07); - } + + list.$plus$eq(new Tuple2, Object>>( + UserType.ADMIN, + new AbstractFunction1, Object>() { + public Object apply(Node sourceEventNode) { + return RandomHelper.evaluateProbability(probabilityMultiplier * 0.07); + } })); - - return list; - } + + return list; + } }; - - /** - * Social network employee - */ - public static final UserTypeVal SOCIAL_NETWORK_EMPLOYEE = new UserTypeVal() { - /** - * Get data type - * @return - */ - public NodeDataType.NodeDataType getDataType() { - return UserType.SOCIAL_NETWORK_EMPLOYEE; + + /** + * Social network employee + */ + public static final UserTypeVal SOCIAL_NETWORK_EMPLOYEE = new UserTypeVal() { + /** + * Get data type + * @return + */ + public NodeDataType.NodeDataType getDataType() { + return UserType.SOCIAL_NETWORK_EMPLOYEE; } - - /** - * Get name of data type - * @return - */ - @Override - public String name() { - return "SocialNetworkEmployee"; + + /** + * Get name of data type + * @return + */ + @Override + public String name() { + return "SocialNetworkEmployee"; } - - /** - * Get allowable child types - * @param nodeOfThisType Node of this type - * @return Sequence of allowable child types - */ - @Override - public Seq getAllowableChildTypes(Node nodeOfThisType) { - LinkedList list = new LinkedList<>(); - list.add(UserType.SOCIAL_NETWORK_EMPLOYEE); - list.add(UserType.PUBLIC_USER); - return ScalaInJavaHelper.linkedListToScalaIterable(list).toSeq(); + + /** + * Get allowable child types + * @param nodeOfThisType Node of this type + * @return Sequence of allowable child types + */ + @Override + public Seq getAllowableChildTypes(Node nodeOfThisType) { + LinkedList list = new LinkedList<>(); + list.add(UserType.SOCIAL_NETWORK_EMPLOYEE); + list.add(UserType.PUBLIC_USER); + return ScalaInJavaHelper.linkedListToScalaIterable(list).toSeq(); } - - /** - * Get allowable parent types - * @param nodeOfThisType Node of this type - * @return Sequence of allowable parent types - */ - @Override - public Seq getAllowableParentTypes(Node nodeOfThisType) { - LinkedList list = new LinkedList<>(); - list.add(UserType.ADMIN); - list.add(UserType.SOCIAL_NETWORK_EMPLOYEE); - return ScalaInJavaHelper.linkedListToScalaIterable(list).toSeq(); + + /** + * Get allowable parent types + * @param nodeOfThisType Node of this type + * @return Sequence of allowable parent types + */ + @Override + public Seq getAllowableParentTypes(Node nodeOfThisType) { + LinkedList list = new LinkedList<>(); + list.add(UserType.ADMIN); + list.add(UserType.SOCIAL_NETWORK_EMPLOYEE); + return ScalaInJavaHelper.linkedListToScalaIterable(list).toSeq(); } - - /** - * Whether or not to create children - * @param node Node - * @param maxToGenerate Max nodes to generate - * @param probabilityMultiplier As this goes up from 1, we are more linearly more likely to produce children - * @param Type param - * @return Added children - */ - @Override - public - ListBuffer, Object>>> - childStateTransitionPredicates(Node node, int maxToGenerate, - final int probabilityMultiplier) { - ListBuffer, Object>>> list = + + /** + * Whether or not to create children + * @param node Node + * @param maxToGenerate Max nodes to generate + * @param probabilityMultiplier As this goes up from 1, we are more linearly more likely to produce children + * @param Type param + * @return Added children + */ + @Override + public + ListBuffer, Object>>> + childStateTransitionPredicates(Node node, int maxToGenerate, + final int probabilityMultiplier) { + ListBuffer, Object>>> list = new ListBuffer<>(); - - list.$plus$eq(new Tuple2, Object>>( - UserType.SOCIAL_NETWORK_EMPLOYEE, - new AbstractFunction1, Object>() { - public Object apply(Node sourceEventNode) { - return RandomHelper.evaluateProbability(probabilityMultiplier * 0.25); - } - })); - list.$plus$eq(new Tuple2, Object>>( - UserType.PUBLIC_USER, - new AbstractFunction1, Object>() { - public Object apply(Node sourceEventNode) { - return RandomHelper.evaluateProbability(probabilityMultiplier * 0.30); - } - })); - return list; + + list.$plus$eq(new Tuple2, Object>>( + UserType.SOCIAL_NETWORK_EMPLOYEE, + new AbstractFunction1, Object>() { + public Object apply(Node sourceEventNode) { + return RandomHelper.evaluateProbability(probabilityMultiplier * 0.25); + } + })); + list.$plus$eq(new Tuple2, Object>>( + UserType.PUBLIC_USER, + new AbstractFunction1, Object>() { + public Object apply(Node sourceEventNode) { + return RandomHelper.evaluateProbability(probabilityMultiplier * 0.30); + } + })); + return list; } - - /** - * Whether or not to create parents - * @param node Node - * @param maxToGenerate Max nodes to generate - * @param probabilityMultiplier As this goes up from 1, we are more linearly more likely to produce children - * @param Type param - * @return Added parents - */ - @Override - public - ListBuffer, Object>>> - parentStateTransitionPredicates(Node node, int maxToGenerate, - final int probabilityMultiplier) { - ListBuffer, Object>>> list = + + /** + * Whether or not to create parents + * @param node Node + * @param maxToGenerate Max nodes to generate + * @param probabilityMultiplier As this goes up from 1, we are more linearly more likely to produce children + * @param Type param + * @return Added parents + */ + @Override + public + ListBuffer, Object>>> + parentStateTransitionPredicates(Node node, int maxToGenerate, + final int probabilityMultiplier) { + ListBuffer, Object>>> list = new ListBuffer<>(); - - list.$plus$eq(new Tuple2, Object>>( - UserType.ADMIN, - new AbstractFunction1, Object>() { - public Object apply(Node sourceEventNode) { - return RandomHelper.evaluateProbability(probabilityMultiplier * 0.03); - } - })); - list.$plus$eq(new Tuple2, Object>>( - UserType.SOCIAL_NETWORK_EMPLOYEE, - new AbstractFunction1, Object>() { - public Object apply(Node sourceEventNode) { - return RandomHelper.evaluateProbability(probabilityMultiplier * 0.25); - } + + list.$plus$eq(new Tuple2, Object>>( + UserType.ADMIN, + new AbstractFunction1, Object>() { + public Object apply(Node sourceEventNode) { + return RandomHelper.evaluateProbability(probabilityMultiplier * 0.03); + } })); - - return list; - } + list.$plus$eq(new Tuple2, Object>>( + UserType.SOCIAL_NETWORK_EMPLOYEE, + new AbstractFunction1, Object>() { + public Object apply(Node sourceEventNode) { + return RandomHelper.evaluateProbability(probabilityMultiplier * 0.25); + } + })); + + return list; + } }; - - /** - * Public User - */ - public static final UserTypeVal PUBLIC_USER = new UserTypeVal() { - /** - * Get data type - * @return - */ - public NodeDataType.NodeDataType getDataType() { - return UserType.PUBLIC_USER; + + /** + * Public User + */ + public static final UserTypeVal PUBLIC_USER = new UserTypeVal() { + /** + * Get data type + * @return + */ + public NodeDataType.NodeDataType getDataType() { + return UserType.PUBLIC_USER; } - - /** - * Get name of data type - * @return - */ - @Override - public String name() { - return "PublicUser"; + + /** + * Get name of data type + * @return + */ + @Override + public String name() { + return "PublicUser"; } - - /** - * Get allowable child types - * @param nodeOfThisType Node of this type - * @return Sequence of allowable child types - */ - @Override - public Seq getAllowableChildTypes(Node nodeOfThisType) { - LinkedList list = new LinkedList<>(); - list.add(UserType.PUBLIC_USER); - return ScalaInJavaHelper.linkedListToScalaIterable(list).toSeq(); + + /** + * Get allowable child types + * @param nodeOfThisType Node of this type + * @return Sequence of allowable child types + */ + @Override + public Seq getAllowableChildTypes(Node nodeOfThisType) { + LinkedList list = new LinkedList<>(); + list.add(UserType.PUBLIC_USER); + return ScalaInJavaHelper.linkedListToScalaIterable(list).toSeq(); } - - /** - * Get allowable parent types - * @param nodeOfThisType Node of this type - * @return Sequence of allowable parent types - */ - @Override - public Seq getAllowableParentTypes(Node nodeOfThisType) { - LinkedList list = new LinkedList<>(); - list.add(UserType.ADMIN); - list.add(UserType.SOCIAL_NETWORK_EMPLOYEE); - list.add(UserType.PUBLIC_USER); - return ScalaInJavaHelper.linkedListToScalaIterable(list).toSeq(); + + /** + * Get allowable parent types + * @param nodeOfThisType Node of this type + * @return Sequence of allowable parent types + */ + @Override + public Seq getAllowableParentTypes(Node nodeOfThisType) { + LinkedList list = new LinkedList<>(); + list.add(UserType.ADMIN); + list.add(UserType.SOCIAL_NETWORK_EMPLOYEE); + list.add(UserType.PUBLIC_USER); + return ScalaInJavaHelper.linkedListToScalaIterable(list).toSeq(); } - - /** - * Whether or not to create children - * @param node Node - * @param maxToGenerate Max nodes to generate - * @param probabilityMultiplier As this goes up from 1, we are more linearly more likely to produce children - * @param Type param - * @return Added children - */ - @Override - public - ListBuffer, Object>>> - childStateTransitionPredicates(Node node, int maxToGenerate, - final int probabilityMultiplier) { - ListBuffer, Object>>> list = + + /** + * Whether or not to create children + * @param node Node + * @param maxToGenerate Max nodes to generate + * @param probabilityMultiplier As this goes up from 1, we are more linearly more likely to produce children + * @param Type param + * @return Added children + */ + @Override + public + ListBuffer, Object>>> + childStateTransitionPredicates(Node node, int maxToGenerate, + final int probabilityMultiplier) { + ListBuffer, Object>>> list = new ListBuffer<>(); - - list.$plus$eq(new Tuple2, Object>>( - UserType.PUBLIC_USER, - new AbstractFunction1, Object>() { - public Object apply(Node sourceEventNode) { - return RandomHelper.evaluateProbability(probabilityMultiplier * 0.35); - } - })); - return list; + + list.$plus$eq(new Tuple2, Object>>( + UserType.PUBLIC_USER, + new AbstractFunction1, Object>() { + public Object apply(Node sourceEventNode) { + return RandomHelper.evaluateProbability(probabilityMultiplier * 0.35); + } + })); + return list; } - - /** - * Whether or not to create parents - * @param node Node - * @param maxToGenerate Max nodes to generate - * @param probabilityMultiplier As this goes up from 1, we are more linearly more likely to produce children - * @param Type param - * @return Added parents - */ - @Override - public - ListBuffer, Object>>> - parentStateTransitionPredicates(Node node, int maxToGenerate, - final int probabilityMultiplier) { - ListBuffer, Object>>> list = + + /** + * Whether or not to create parents + * @param node Node + * @param maxToGenerate Max nodes to generate + * @param probabilityMultiplier As this goes up from 1, we are more linearly more likely to produce children + * @param Type param + * @return Added parents + */ + @Override + public + ListBuffer, Object>>> + parentStateTransitionPredicates(Node node, int maxToGenerate, + final int probabilityMultiplier) { + ListBuffer, Object>>> list = new ListBuffer<>(); - - list.$plus$eq(new Tuple2, Object>>( - UserType.ADMIN, - new AbstractFunction1, Object>() { - public Object apply(Node sourceEventNode) { - return RandomHelper.evaluateProbability(probabilityMultiplier * 0.01); - } - })); - list.$plus$eq(new Tuple2, Object>>( - UserType.SOCIAL_NETWORK_EMPLOYEE, - new AbstractFunction1, Object>() { - public Object apply(Node sourceEventNode) { - return RandomHelper.evaluateProbability(probabilityMultiplier * 0.02); - } - })); - list.$plus$eq(new Tuple2, Object>>( - UserType.PUBLIC_USER, - new AbstractFunction1, Object>() { - public Object apply(Node sourceEventNode) { - return RandomHelper.evaluateProbability(probabilityMultiplier * 0.35); - } + + list.$plus$eq(new Tuple2, Object>>( + UserType.ADMIN, + new AbstractFunction1, Object>() { + public Object apply(Node sourceEventNode) { + return RandomHelper.evaluateProbability(probabilityMultiplier * 0.01); + } + })); + list.$plus$eq(new Tuple2, Object>>( + UserType.SOCIAL_NETWORK_EMPLOYEE, + new AbstractFunction1, Object>() { + public Object apply(Node sourceEventNode) { + return RandomHelper.evaluateProbability(probabilityMultiplier * 0.02); + } })); - - return list; - } - }; + list.$plus$eq(new Tuple2, Object>>( + UserType.PUBLIC_USER, + new AbstractFunction1, Object>() { + public Object apply(Node sourceEventNode) { + return RandomHelper.evaluateProbability(probabilityMultiplier * 0.35); + } + })); + + return list; + } + }; } diff --git a/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/UserTypeVal.java b/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/UserTypeVal.java index 1a1fa4e6..627ec2ee 100644 --- a/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/UserTypeVal.java +++ b/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/UserTypeVal.java @@ -1,57 +1,57 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.SocialNetwork_Example_Java; - -import org.finra.datagenerator.common.Graph.Node; + +import org.finra.datagenerator.common.Graph.Node; import org.finra.datagenerator.common.NodeData.NodeDataType; - -/** - * Abstract type for UserType enumerated values. - */ -public abstract class UserTypeVal extends NodeDataType.NodeDataType { - /** - * Instance of UserTypes - * @return UserTypes - */ - @Override - public UserTypes nodeDataTypes() { - return UserTypes.getInstance(); + +/** + * Abstract type for UserType enumerated values. + */ +public abstract class UserTypeVal extends NodeDataType.NodeDataType { + /** + * Instance of UserTypes + * @return UserTypes + */ + @Override + public UserTypes nodeDataTypes() { + return UserTypes.getInstance(); + } + + /** + * A stub wrapped around this type + * @return Stub + */ + @Override + public UserStub asStub() { + return new UserStub(this); + } + + /** + * Method to link existing nodes + * @param dataNode Node to link to parent + */ + // We don't have any engines that use these two methods yet, but it might be useful at some point. + public void probabilisticallyLinkToExistingParentDataNode(Node dataNode) { } - - /** - * A stub wrapped around this type - * @return Stub - */ - @Override - public UserStub asStub() { - return new UserStub(this); + /** + * Method to link existing nodes + * @param dataNode Node to link to child + */ + public void probabilisticallyLinkToExistingParentStubNode(Node dataNode) { } - - /** - * Method to link existing nodes - * @param dataNode Node to link to parent - */ - // We don't have any engines that use these two methods yet, but it might be useful at some point. - public void probabilisticallyLinkToExistingParentDataNode(Node dataNode) { - } - /** - * Method to link existing nodes - * @param dataNode Node to link to child - */ - public void probabilisticallyLinkToExistingParentStubNode(Node dataNode) { - } } diff --git a/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/UserTypes.java b/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/UserTypes.java index c6bc04a5..ecec8b4b 100644 --- a/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/UserTypes.java +++ b/dg-common/src/main/java/org/finra/datagenerator/common/SocialNetwork_Example_Java/UserTypes.java @@ -1,81 +1,81 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.SocialNetwork_Example_Java; - -import org.finra.datagenerator.common.GraphEngine.DataTransitions; -import org.finra.datagenerator.common.NodeData.NodeDataTypes; + +import org.finra.datagenerator.common.GraphEngine.DataTransitions; +import org.finra.datagenerator.common.NodeData.NodeDataTypes; import scala.collection.immutable.HashSet; - -/** - * User type classifications - */ -public final class UserTypes implements NodeDataTypes { + +/** + * User type classifications + */ +public final class UserTypes implements NodeDataTypes { private static final UserTypes INSTANCE = new UserTypes(); - - /** - * Get singleton instance - * @return UserTypes - */ - public static UserTypes getInstance() { - return INSTANCE; + + /** + * Get singleton instance + * @return UserTypes + */ + public static UserTypes getInstance() { + return INSTANCE; } - - private UserTypes() { + + private UserTypes() { } - + private HashSet allDataTypes; - - /** - * Get all data types - * @return All data types in a HashSet - */ - public HashSet allDataTypes() { - if (allDataTypes == null) { - // Would be cleaner if we could call scala's apply method here, but it isn't part of a HashSet companion - // object -- instead it lives in GenericCompanion, and it's unclear now to get to it from Java. - allDataTypes = new HashSet<>(); - allDataTypes = allDataTypes.$plus(UserType.ADMIN); - allDataTypes = allDataTypes.$plus(UserType.PUBLIC_USER); - allDataTypes = allDataTypes.$plus(UserType.SOCIAL_NETWORK_EMPLOYEE); - } - return allDataTypes; + + /** + * Get all data types + * @return All data types in a HashSet + */ + public HashSet allDataTypes() { + if (allDataTypes == null) { + // Would be cleaner if we could call scala's apply method here, but it isn't part of a HashSet companion + // object -- instead it lives in GenericCompanion, and it's unclear now to get to it from Java. + allDataTypes = new HashSet<>(); + allDataTypes = allDataTypes.$plus(UserType.ADMIN); + allDataTypes = allDataTypes.$plus(UserType.PUBLIC_USER); + allDataTypes = allDataTypes.$plus(UserType.SOCIAL_NETWORK_EMPLOYEE); + } + return allDataTypes; } - + private HashSet allInitialDataTypes; - - /** - * All data types that can be the first node added to a graph. - * @return Set of types - */ - public HashSet allInitialDataTypes() { - if (allInitialDataTypes == null) { - // Would be cleaner if we could call scala's apply method here, but it isn't part of a HashSet companion - // object -- instead it lives in GenericCompanion, and it's unclear now to get to it from Java. - allInitialDataTypes = new HashSet<>(); - allInitialDataTypes = allInitialDataTypes.$plus(UserType.ADMIN); - } - return allInitialDataTypes; + + /** + * All data types that can be the first node added to a graph. + * @return Set of types + */ + public HashSet allInitialDataTypes() { + if (allInitialDataTypes == null) { + // Would be cleaner if we could call scala's apply method here, but it isn't part of a HashSet companion + // object -- instead it lives in GenericCompanion, and it's unclear now to get to it from Java. + allInitialDataTypes = new HashSet<>(); + allInitialDataTypes = allInitialDataTypes.$plus(UserType.ADMIN); + } + return allInitialDataTypes; + } + + /** + * Class used for data transition methods + * @return DataTransitions instance + */ + public DataTransitions dataTransitions() { + return UserTransitions.getInstance(); } - - /** - * Class used for data transition methods - * @return DataTransitions instance - */ - public DataTransitions dataTransitions() { - return UserTransitions.getInstance(); - } } diff --git a/dg-common/src/main/resources/log4j.properties b/dg-common/src/main/resources/log4j.properties index 66c5d55e..3f0a8dbc 100644 --- a/dg-common/src/main/resources/log4j.properties +++ b/dg-common/src/main/resources/log4j.properties @@ -1,5 +1,5 @@ # -# Copyright 2014 DataGenerator Contributors +# Copyright DataGenerator Contributors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddChildToExistingNodeDescription.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddChildToExistingNodeDescription.scala index 5bb260b2..99fc913c 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddChildToExistingNodeDescription.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddChildToExistingNodeDescription.scala @@ -1,30 +1,30 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.Graph - + import org.finra.datagenerator.common.NodeData.DisplayableData - + import scala.beans.BeanProperty - -/** - * Describes the creation of a link between one node and another existing node as its child - * @param parentNodeIndex Index of parent node - * @param childNodeIndex Index of child node - * @tparam T Node data type - */ -class AddChildToExistingNodeDescription[+T <: DisplayableData](@BeanProperty val parentNodeIndex: Int, @BeanProperty val childNodeIndex: Int) + +/** + * Describes the creation of a link between one node and another existing node as its child + * @param parentNodeIndex Index of parent node + * @param childNodeIndex Index of child node + * @tparam T Node data type + */ +class AddChildToExistingNodeDescription[+T <: DisplayableData](@BeanProperty val parentNodeIndex: Int, @BeanProperty val childNodeIndex: Int) extends EdgeCreationDescription[T] diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddInitialNodeDescription.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddInitialNodeDescription.scala index 771b9ab5..748d1275 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddInitialNodeDescription.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddInitialNodeDescription.scala @@ -1,28 +1,28 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.Graph - + import org.finra.datagenerator.common.NodeData.DisplayableData - + import scala.beans.BeanProperty - -/** - * Describes the creation of first-added node in a graph - * @param dataToAdd Data to add - * @tparam T Node data type - */ + +/** + * Describes the creation of first-added node in a graph + * @param dataToAdd Data to add + * @tparam T Node data type + */ class AddInitialNodeDescription[+T <: DisplayableData](@BeanProperty val dataToAdd: T) extends EdgeCreationDescription[T] diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddNewChildDescription.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddNewChildDescription.scala index e3bc4319..b48174df 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddNewChildDescription.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddNewChildDescription.scala @@ -1,30 +1,30 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.Graph - + import org.finra.datagenerator.common.NodeData.DisplayableData - + import scala.beans.BeanProperty - -/** - * Describes the creation of a new node, linked as a child of an existing node. - * @param parentNodeIndex Index of parent node to add from - * @param dataToAdd Data to add - * @tparam T Type of node data - */ -class AddNewChildDescription[+T <: DisplayableData](@BeanProperty val parentNodeIndex: Int, @BeanProperty val dataToAdd: T) + +/** + * Describes the creation of a new node, linked as a child of an existing node. + * @param parentNodeIndex Index of parent node to add from + * @param dataToAdd Data to add + * @tparam T Type of node data + */ +class AddNewChildDescription[+T <: DisplayableData](@BeanProperty val parentNodeIndex: Int, @BeanProperty val dataToAdd: T) extends EdgeCreationDescription[T] diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddNewOrphanedNodeDescription.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddNewOrphanedNodeDescription.scala index f4a2bd8a..402a9fdc 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddNewOrphanedNodeDescription.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddNewOrphanedNodeDescription.scala @@ -1,28 +1,28 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.Graph - + import org.finra.datagenerator.common.NodeData.DisplayableData - + import scala.beans.BeanProperty - -/** - * Describes the creation of an orphaned node, not linked to any other nodes in the graph - * @param dataToAdd Data to add - * @tparam T Type of node data - */ + +/** + * Describes the creation of an orphaned node, not linked to any other nodes in the graph + * @param dataToAdd Data to add + * @tparam T Type of node data + */ class AddNewOrphanedNodeDescription[+T <: DisplayableData](@BeanProperty val dataToAdd: T) extends EdgeCreationDescription[T] diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddNewParentDescription.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddNewParentDescription.scala index a1eafb1f..81bda408 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddNewParentDescription.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddNewParentDescription.scala @@ -1,30 +1,30 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.Graph - + import org.finra.datagenerator.common.NodeData.DisplayableData - + import scala.beans.BeanProperty - -/** - * Describes the creation of a new node, linked as a parent of an existing node. - * @param childNodeIndex Index of child node - * @param dataToAdd Data to add - * @tparam T Type of node data - */ -class AddNewParentDescription[+T <: DisplayableData](@BeanProperty val childNodeIndex: Int, @BeanProperty val dataToAdd: T) + +/** + * Describes the creation of a new node, linked as a parent of an existing node. + * @param childNodeIndex Index of child node + * @param dataToAdd Data to add + * @tparam T Type of node data + */ +class AddNewParentDescription[+T <: DisplayableData](@BeanProperty val childNodeIndex: Int, @BeanProperty val dataToAdd: T) extends EdgeCreationDescription[T] diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddNewRootNodeDescription.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddNewRootNodeDescription.scala index a7b5ea70..102e9fd6 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddNewRootNodeDescription.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddNewRootNodeDescription.scala @@ -1,28 +1,28 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.Graph - + import org.finra.datagenerator.common.NodeData.DisplayableData - + import scala.beans.BeanProperty - -/** - * Describes the creation of a new root node in the graph - * @param dataToAdd Data to add - * @tparam T Type of node data - */ + +/** + * Describes the creation of a new root node in the graph + * @param dataToAdd Data to add + * @tparam T Type of node data + */ class AddNewRootNodeDescription[+T <: DisplayableData](@BeanProperty val dataToAdd: T) extends EdgeCreationDescription[T] diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddParentToExistingNodeDescription.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddParentToExistingNodeDescription.scala index b37c0482..bd3d0da3 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddParentToExistingNodeDescription.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/AddParentToExistingNodeDescription.scala @@ -1,30 +1,30 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.Graph - + import org.finra.datagenerator.common.NodeData.DisplayableData - + import scala.beans.BeanProperty - -/** - * Describes the creation of a link between one node and another existing node as its parent - * @param childNodeIndex Child node index - * @param parentNodeIndex Parent node index - * @tparam T Type of node data - */ -class AddParentToExistingNodeDescription[+T <: DisplayableData](@BeanProperty val childNodeIndex: Int, @BeanProperty val parentNodeIndex: Int) + +/** + * Describes the creation of a link between one node and another existing node as its parent + * @param childNodeIndex Child node index + * @param parentNodeIndex Parent node index + * @tparam T Type of node data + */ +class AddParentToExistingNodeDescription[+T <: DisplayableData](@BeanProperty val childNodeIndex: Int, @BeanProperty val parentNodeIndex: Int) extends EdgeCreationDescription[T] diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/EdgeCreationDescription.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/EdgeCreationDescription.scala index 97a316ae..433612e9 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/EdgeCreationDescription.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/EdgeCreationDescription.scala @@ -1,25 +1,25 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.Graph - + import org.finra.datagenerator.common.NodeData.DisplayableData - -/** - * Description of an edge to add to the graph. Can be used to rebuild a graph - * (for example, perhaps an analogous graph of a different type) in the same order as originally created. - */ + +/** + * Description of an edge to add to the graph. Can be used to rebuild a graph + * (for example, perhaps an analogous graph of a different type) in the same order as originally created. + */ abstract class EdgeCreationDescription[+T <: DisplayableData] diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/Graph.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/Graph.scala index 68ef237a..45b07a44 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/Graph.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/Graph.scala @@ -1,276 +1,276 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.Graph - + import java.io.{FileOutputStream, OutputStream} - -import org.finra.datagenerator.common.Helpers.{RetryHelper, DotHelper, RandomHelper} -import org.finra.datagenerator.common.NodeData.DisplayableData -import org.finra.datagenerator.common.Helpers.CloningHelper.ObjectCloning -import scala.beans.BeanProperty + +import org.finra.datagenerator.common.Helpers.{RetryHelper, DotHelper, RandomHelper} +import org.finra.datagenerator.common.NodeData.DisplayableData +import org.finra.datagenerator.common.Helpers.CloningHelper.ObjectCloning +import scala.beans.BeanProperty import scala.collection.mutable - -/** * - * Generic directed acyclic graph. Can have multiple root nodes. - * Programmers should be careful not to create cycles, because this class does not check for cycles. - * @tparam T Type of data stored in each graph childNode - * @param initialNodeValue Create the graph with one childNode containing this supplied value. - * @param isEdgeLinkTrackingOn Whether or not to maintain history of all events used to create graph. - * @param _graphId org.finra.datagenerator.common.Graph ID. Can be set later using graphId setter method. If not set, will eventually default to UUID. - * @param appendSharedDisplayIdsWithNumericalSuffix If true, if multiple nodes with same displayableDataId, appends with _1, _2, etc. - */ -class Graph[T <: DisplayableData](initialNodeValue: Option[T] = None, var isEdgeLinkTrackingOn: Boolean = false, - private var _graphId: String = "", var appendSharedDisplayIdsWithNumericalSuffix: Boolean = true) { - def this(graphId: String) { - this(_graphId=graphId, appendSharedDisplayIdsWithNumericalSuffix = true) - } - def this(initialNodeValue: T, graphId: String) { - this(initialNodeValue=Option(initialNodeValue), _graphId=graphId) - } - def this(initialNodeValue: T) { - this(initialNodeValue=Option(initialNodeValue)) + +/** * + * Generic directed acyclic graph. Can have multiple root nodes. + * Programmers should be careful not to create cycles, because this class does not check for cycles. + * @tparam T Type of data stored in each graph childNode + * @param initialNodeValue Create the graph with one childNode containing this supplied value. + * @param isEdgeLinkTrackingOn Whether or not to maintain history of all events used to create graph. + * @param _graphId org.finra.datagenerator.common.Graph ID. Can be set later using graphId setter method. If not set, will eventually default to UUID. + * @param appendSharedDisplayIdsWithNumericalSuffix If true, if multiple nodes with same displayableDataId, appends with _1, _2, etc. + */ +class Graph[T <: DisplayableData](initialNodeValue: Option[T] = None, var isEdgeLinkTrackingOn: Boolean = false, + private var _graphId: String = "", var appendSharedDisplayIdsWithNumericalSuffix: Boolean = true) { + def this(graphId: String) { + this(_graphId=graphId, appendSharedDisplayIdsWithNumericalSuffix = true) + } + def this(initialNodeValue: T, graphId: String) { + this(initialNodeValue=Option(initialNodeValue), _graphId=graphId) + } + def this(initialNodeValue: T) { + this(initialNodeValue=Option(initialNodeValue)) } - - @BeanProperty + + @BeanProperty var customSeed: Option[Long] = None - - @BeanProperty + + @BeanProperty var customGlobalSeed: Option[Short] = None - - @BeanProperty + + @BeanProperty var customBooleanAttributes = mutable.HashMap[String, Boolean]() - - @BeanProperty + + @BeanProperty var customStringAttributes = mutable.HashMap[String, String]() - - @BeanProperty + + @BeanProperty var userConfiguredGraphId = false - - /** - * Get the graph ID. - * @return org.finra.datagenerator.common.Graph ID - */ - def graphId: String = { - if (_graphId.isEmpty) _graphId = RandomHelper.randomUuid().replace('-','_') - _graphId + + /** + * Get the graph ID. + * @return org.finra.datagenerator.common.Graph ID + */ + def graphId: String = { + if (_graphId.isEmpty) _graphId = RandomHelper.randomUuid().replace('-','_') + _graphId } - - /** - * Set the graph ID. - * @param value String to set as graph ID - */ - def graphId_=(value: String): Unit = { - _graphId = value.replace('-','_').replace(' ','_').replace("\"","") - userConfiguredGraphId = true + + /** + * Set the graph ID. + * @param value String to set as graph ID + */ + def graphId_=(value: String): Unit = { + _graphId = value.replace('-','_').replace(' ','_').replace("\"","") + userConfiguredGraphId = true } - - /** - * Java-style setter for graphId - * @param value Value to set org.finra.datagenerator.common.Graph ID to - */ - def setGraphId(value: String): Unit = { - graphId = value + + /** + * Java-style setter for graphId + * @param value Value to set org.finra.datagenerator.common.Graph ID to + */ + def setGraphId(value: String): Unit = { + graphId = value } - - /** - * Java-style getter for graphId - * @return org.finra.datagenerator.common.Graph ID - */ - def getGraphId: String = { - graphId + + /** + * Java-style getter for graphId + * @return org.finra.datagenerator.common.Graph ID + */ + def getGraphId: String = { + graphId } - + if (_graphId != "") graphId = _graphId - - /** - * All the root nodes in this graph (nodes with no parents, but excluding orphans) - */ - @BeanProperty + + /** + * All the root nodes in this graph (nodes with no parents, but excluding orphans) + */ + @BeanProperty val rootNodes = new mutable.ArrayBuffer[Node[T]]() - - /** - * All the nodes in this graph, in the sequence they were added. - */ - @BeanProperty + + /** + * All the nodes in this graph, in the sequence they were added. + */ + @BeanProperty var allNodes = new mutable.ArrayBuffer[Node[T]]() - - /** - * Used when appendSharedDisplayIdsWithNumericalSuffix is true, to ensure each node data has a unique displayable ID. - */ - @BeanProperty + + /** + * Used when appendSharedDisplayIdsWithNumericalSuffix is true, to ensure each node data has a unique displayable ID. + */ + @BeanProperty var nodeIdCounters = collection.immutable.HashMap[String, Int]() - - /** - * Optional structure that can be used for retracing the steps used to create the graph. - */ - @BeanProperty + + /** + * Optional structure that can be used for retracing the steps used to create the graph. + */ + @BeanProperty var edgeLinkTrackingDescriptions = collection.immutable.List[EdgeCreationDescription[T]]() - - if (initialNodeValue != None) { - addInitialNode(initialNodeValue.get) + + if (initialNodeValue != None) { + addInitialNode(initialNodeValue.get) } - - /** - * Add the first node in this graph. - * @param newNodeValue Data to add as initial node in graph - * @return Added node - */ - def addInitialNode(newNodeValue: T): Node[T] = { + + /** + * Add the first node in this graph. + * @param newNodeValue Data to add as initial node in graph + * @return Added node + */ + def addInitialNode(newNodeValue: T): Node[T] = { require(allNodes.size == 0 && rootNodes.size == 0, s"Can't add initial node ${newNodeValue} because the graph is not empty.") - + if (isEdgeLinkTrackingOn) edgeLinkTrackingDescriptions :+= new AddInitialNodeDescription[T](newNodeValue) - - addNewRootNode(newNodeValue, track=false) + + addNewRootNode(newNodeValue, track=false) } - - /** - * Add a new node as a root in this graph. - * @param newNodeValue Value to add as new root node in graph - * @param track Whether or not to track this change (leave true by default -- overridden internally). - * @return Added node - */ - def addNewRootNode(newNodeValue: T, track: Boolean = true): Node[T] = { - val newNode = new Node[T](newNodeValue, this, allNodes.size) - allNodes += newNode + + /** + * Add a new node as a root in this graph. + * @param newNodeValue Value to add as new root node in graph + * @param track Whether or not to track this change (leave true by default -- overridden internally). + * @return Added node + */ + def addNewRootNode(newNodeValue: T, track: Boolean = true): Node[T] = { + val newNode = new Node[T](newNodeValue, this, allNodes.size) + allNodes += newNode rootNodes += newNode - + if (isEdgeLinkTrackingOn && track) edgeLinkTrackingDescriptions :+= new AddNewRootNodeDescription[T](newNodeValue) - - newNode + + newNode } - - /** - * Add a new node to the graph, but don't link it to anything. - * TODO: This would be better accomplished by having a separate graph with this single childNode. - * @param newNodeValue Data to add as new orphaned node - * @return Orphaned node - */ - def addNewOrphanedNode(newNodeValue: T): Node[T] = { + + /** + * Add a new node to the graph, but don't link it to anything. + * TODO: This would be better accomplished by having a separate graph with this single childNode. + * @param newNodeValue Data to add as new orphaned node + * @return Orphaned node + */ + def addNewOrphanedNode(newNodeValue: T): Node[T] = { // TODO: This would be better accomplished by having a separate graph with this single childNode. - - val newNode = new Node[T](newNodeValue, this, allNodes.size) + + val newNode = new Node[T](newNodeValue, this, allNodes.size) allNodes += newNode - + if (isEdgeLinkTrackingOn) edgeLinkTrackingDescriptions :+= new AddNewOrphanedNodeDescription[T](newNodeValue) - - newNode + + newNode } - - /** - * Given a displayableDataId string, returns the (first) node having that ID if found. - * @param displayableDataId String representing a node's displayableDataId - * @return Option(Node) if found, else None - */ - def getNodeByDisplayId(displayableDataId: String): Option[Node[T]] = { - allNodes.find(node => node.data.displayableDataId.equals(displayableDataId)) + + /** + * Given a displayableDataId string, returns the (first) node having that ID if found. + * @param displayableDataId String representing a node's displayableDataId + * @return Option(Node) if found, else None + */ + def getNodeByDisplayId(displayableDataId: String): Option[Node[T]] = { + allNodes.find(node => node.data.displayableDataId.equals(displayableDataId)) } - - /** - * Writes this graph to a GraphViz "DOT" file -- there are various clients to read this kind of file, save to image, etc. - * @param filepathToCreate String representing full local path of new file to create - * @param isSimplified Whether or not to use simplifiedDisplayableElements instead of displayableElements when outputting - * @param alsoWriteAsPng Whether or not to call dot.exe to convert the .gv file to .png when done writing - */ - def writeDotFile(filepathToCreate: String, isSimplified: Boolean = false, alsoWriteAsPng: Boolean = true): Unit = { - val writer = RetryHelper.retry(10, Seq(classOf[java.io.FileNotFoundException])){ - new FileOutputStream(filepathToCreate) - }(_ => { - Thread.sleep(100) - }) - try { - writeDotFileToOpenStream(writer, isSimplified = isSimplified) - } - finally { - writer.close() + + /** + * Writes this graph to a GraphViz "DOT" file -- there are various clients to read this kind of file, save to image, etc. + * @param filepathToCreate String representing full local path of new file to create + * @param isSimplified Whether or not to use simplifiedDisplayableElements instead of displayableElements when outputting + * @param alsoWriteAsPng Whether or not to call dot.exe to convert the .gv file to .png when done writing + */ + def writeDotFile(filepathToCreate: String, isSimplified: Boolean = false, alsoWriteAsPng: Boolean = true): Unit = { + val writer = RetryHelper.retry(10, Seq(classOf[java.io.FileNotFoundException])){ + new FileOutputStream(filepathToCreate) + }(_ => { + Thread.sleep(100) + }) + try { + writeDotFileToOpenStream(writer, isSimplified = isSimplified) + } + finally { + writer.close() + } + + if (alsoWriteAsPng) { + DotHelper.writeDotFileAsPng(filepathToCreate) } - - if (alsoWriteAsPng) { - DotHelper.writeDotFileAsPng(filepathToCreate) - } } - - /** - * Writes this graph to a GraphViz "DOT" file stream -- there are various clients to read this kind of file, save to image, etc. - * @param out Open output stream to write to - * @param isSimplified Whether or not to use simplifiedDisplayableElements instead of displayableElements when outputting - */ - def writeDotFileToOpenStream(out: OutputStream, isSimplified: Boolean = false): Unit = { - // Write any graph-specific attributes + + /** + * Writes this graph to a GraphViz "DOT" file stream -- there are various clients to read this kind of file, save to image, etc. + * @param out Open output stream to write to + * @param isSimplified Whether or not to use simplifiedDisplayableElements instead of displayableElements when outputting + */ + def writeDotFileToOpenStream(out: OutputStream, isSimplified: Boolean = false): Unit = { + // Write any graph-specific attributes out.write(s"""digraph "Graph_${graphId}" {\r\n""".getBytes("UTF-8")) - - // Write all labels and edges + + // Write all labels and edges allNodes.foreach(_.writeDotFormatGraphVisualizationOfNodeToOpenStream(out, isSimplified = isSimplified)) - - // End graph - out.write("}".getBytes("UTF-8")) + + // End graph + out.write("}".getBytes("UTF-8")) } - - /** - * Create a copy of this graph - * @return Copied graph - */ - def deepCopy: Graph[T] = { - val copiedGraph = new Graph[T]( - initialNodeValue = Option(allNodes.head.data.deepClone(Set(allNodes.head.data.dataType.getClass))), - isEdgeLinkTrackingOn = false, - _graphId = _graphId, - appendSharedDisplayIdsWithNumericalSuffix = false - ) - copiedGraph.edgeLinkTrackingDescriptions = edgeLinkTrackingDescriptions.deepClone() - copiedGraph.customSeed = customSeed - copiedGraph.customGlobalSeed = customGlobalSeed - copiedGraph.nodeIdCounters = nodeIdCounters.deepClone() - copiedGraph.customBooleanAttributes = customBooleanAttributes.deepClone() - copiedGraph.customStringAttributes = customStringAttributes.deepClone() - //copiedGraph.customBooleanAttributes = customBooleanAttributes.deepClone() - allNodes.tail.foreach(node => copiedGraph.addNewRootNode(node.data.deepClone(Set(node.data.dataType.getClass)))) - allNodes.foreach(node => { - val nodeInNewGraph = copiedGraph.allNodes(node.nodeIndexInContainingGraph) - node.parents.foreach(parent => { - val parentInNewGraph = copiedGraph.allNodes(parent.nodeIndexInContainingGraph) - if (!nodeInNewGraph.parents.contains(parentInNewGraph)) { - nodeInNewGraph.addLinkToExistingParent(parentInNewGraph) - } - }) + + /** + * Create a copy of this graph + * @return Copied graph + */ + def deepCopy: Graph[T] = { + val copiedGraph = new Graph[T]( + initialNodeValue = Option(allNodes.head.data.deepClone(Set(allNodes.head.data.dataType.getClass))), + isEdgeLinkTrackingOn = false, + _graphId = _graphId, + appendSharedDisplayIdsWithNumericalSuffix = false + ) + copiedGraph.edgeLinkTrackingDescriptions = edgeLinkTrackingDescriptions.deepClone() + copiedGraph.customSeed = customSeed + copiedGraph.customGlobalSeed = customGlobalSeed + copiedGraph.nodeIdCounters = nodeIdCounters.deepClone() + copiedGraph.customBooleanAttributes = customBooleanAttributes.deepClone() + copiedGraph.customStringAttributes = customStringAttributes.deepClone() + //copiedGraph.customBooleanAttributes = customBooleanAttributes.deepClone() + allNodes.tail.foreach(node => copiedGraph.addNewRootNode(node.data.deepClone(Set(node.data.dataType.getClass)))) + allNodes.foreach(node => { + val nodeInNewGraph = copiedGraph.allNodes(node.nodeIndexInContainingGraph) + node.parents.foreach(parent => { + val parentInNewGraph = copiedGraph.allNodes(parent.nodeIndexInContainingGraph) + if (!nodeInNewGraph.parents.contains(parentInNewGraph)) { + nodeInNewGraph.addLinkToExistingParent(parentInNewGraph) + } + }) }) - - copiedGraph.isEdgeLinkTrackingOn = isEdgeLinkTrackingOn - copiedGraph.appendSharedDisplayIdsWithNumericalSuffix = appendSharedDisplayIdsWithNumericalSuffix - copiedGraph + + copiedGraph.isEdgeLinkTrackingOn = isEdgeLinkTrackingOn + copiedGraph.appendSharedDisplayIdsWithNumericalSuffix = appendSharedDisplayIdsWithNumericalSuffix + copiedGraph } - - /* - /** - * Used for testing graph isomorphism. - * @return String uniquely representing this graph's structure - */ - def getStructuralMD5: String = { - // TODO: Implement. This is a graph isomorphism problem, which is not yet known if possible in polynomial time. + + /* + /** + * Used for testing graph isomorphism. + * @return String uniquely representing this graph's structure + */ + def getStructuralMD5: String = { + // TODO: Implement. This is a graph isomorphism problem, which is not yet known if possible in polynomial time. // Look into using nauty - http://stackoverflow.com/questions/14532164/hash-value-for-directed-acyclic-graph - - // Done by ignoring graph ID, node order, and node data. - // Each node's data is represented using DisplayableData.getStructuralMD5. This is not guaranteed to be in a form - // usable for comparing isomorphism, because some nodes may have IDs that perhaps should be ignored for - // comparison isomorphism... But if we need to compare isomorphism for any data type, we should make sure that - // type's data overrides getStructuralMD5 in such a way that two nodes return the same value if considered equal + + // Done by ignoring graph ID, node order, and node data. + // Each node's data is represented using DisplayableData.getStructuralMD5. This is not guaranteed to be in a form + // usable for comparing isomorphism, because some nodes may have IDs that perhaps should be ignored for + // comparison isomorphism... But if we need to compare isomorphism for any data type, we should make sure that + // type's data overrides getStructuralMD5 in such a way that two nodes return the same value if considered equal // for purposes of isomorphism. - - ??? - } - */ + + ??? + } + */ } diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/Node.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/Node.scala index 43f5c2f0..0bafef7f 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/Node.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/Graph/Node.scala @@ -1,274 +1,274 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.Graph - -// Dev notes: -// So we want mutable covariant types. -// We want to be able to change a Node without copying the entire structure --> mutable -// We want to be able to write code that is generic around Nodes -- e.g., have an engine that takes in a Node of any type. -// So a method that accepts a Node[GenericType] should also accept a Node[ConcreteType] --> covariance -// This is why we have all sorts of @uV (uncheckedVariance) annotations -- because -// covariance and mutability are incompatible because the compiler cannot guarantee type-safety. -// The classic example is the Java Array, where you can cast an Array[Int] to an Array[Object] and add a string to it, -// resulting in a ClassCastException when sometime later tries to get the string value from the Array[Int]. + +// Dev notes: +// So we want mutable covariant types. +// We want to be able to change a Node without copying the entire structure --> mutable +// We want to be able to write code that is generic around Nodes -- e.g., have an engine that takes in a Node of any type. +// So a method that accepts a Node[GenericType] should also accept a Node[ConcreteType] --> covariance +// This is why we have all sorts of @uV (uncheckedVariance) annotations -- because +// covariance and mutability are incompatible because the compiler cannot guarantee type-safety. +// The classic example is the Java Array, where you can cast an Array[Int] to an Array[Object] and add a string to it, +// resulting in a ClassCastException when sometime later tries to get the string value from the Array[Int]. // So we are giving up some type-safety, but we will just be careful not to write code that does this! - + import java.io.OutputStream - -import org.finra.datagenerator.common.NodeData.DisplayableData -import scala.annotation.unchecked.{uncheckedVariance => uV} -import scala.beans.BeanProperty + +import org.finra.datagenerator.common.NodeData.DisplayableData +import scala.annotation.unchecked.{uncheckedVariance => uV} +import scala.beans.BeanProperty import scala.collection.mutable - -/** - * Generic childNode in a directed acyclic graph - * @param _data Data to be stored in node - * @param _containingGraph Containing graph - * @param nodeIndexInContainingGraph 0-based index of node in containing graph's allNodes collection (same as order added) - * @tparam T_NodeData Type of data stored in node - */ -class Node[+T_NodeData <: DisplayableData](_data: T_NodeData, _containingGraph: Graph[T_NodeData], var nodeIndexInContainingGraph: Int) { - @BeanProperty + +/** + * Generic childNode in a directed acyclic graph + * @param _data Data to be stored in node + * @param _containingGraph Containing graph + * @param nodeIndexInContainingGraph 0-based index of node in containing graph's allNodes collection (same as order added) + * @tparam T_NodeData Type of data stored in node + */ +class Node[+T_NodeData <: DisplayableData](_data: T_NodeData, _containingGraph: Graph[T_NodeData], var nodeIndexInContainingGraph: Int) { + @BeanProperty val containingGraph: Graph[T_NodeData @uV] = _containingGraph - - @BeanProperty + + @BeanProperty var data: T_NodeData @uV = _data - - if (containingGraph.appendSharedDisplayIdsWithNumericalSuffix) { - // Fill in IDs - if (data.overrideDisplayableDataId.isEmpty) { - if (!containingGraph.nodeIdCounters.contains(data.defaultDisplayableDataId)) { - containingGraph.nodeIdCounters += ((data.defaultDisplayableDataId, 1)) - data.overrideDisplayableDataId = s"${data.defaultDisplayableDataId}_1" - } else { - containingGraph.nodeIdCounters += ((data.defaultDisplayableDataId, containingGraph.nodeIdCounters(data.defaultDisplayableDataId) + 1)) - data.overrideDisplayableDataId = s"${data.defaultDisplayableDataId}_${containingGraph.nodeIdCounters(data.defaultDisplayableDataId)}" - } - } else { - if (!containingGraph.nodeIdCounters.contains(data.overrideDisplayableDataId)) { - containingGraph.nodeIdCounters += ((data.overrideDisplayableDataId, 1)) - } else { - containingGraph.nodeIdCounters += ((data.overrideDisplayableDataId, containingGraph.nodeIdCounters(data.overrideDisplayableDataId) + 1)) - data.overrideDisplayableDataId += s"_${containingGraph.nodeIdCounters(data.overrideDisplayableDataId)}" - } - } - // else if overrideDisplayableDataId is nonEmpty, we assume it's unique and we don't care to check (yet), - // but we could add this in later. If it's not, the DOT graph output will be wrong. + + if (containingGraph.appendSharedDisplayIdsWithNumericalSuffix) { + // Fill in IDs + if (data.overrideDisplayableDataId.isEmpty) { + if (!containingGraph.nodeIdCounters.contains(data.defaultDisplayableDataId)) { + containingGraph.nodeIdCounters += ((data.defaultDisplayableDataId, 1)) + data.overrideDisplayableDataId = s"${data.defaultDisplayableDataId}_1" + } else { + containingGraph.nodeIdCounters += ((data.defaultDisplayableDataId, containingGraph.nodeIdCounters(data.defaultDisplayableDataId) + 1)) + data.overrideDisplayableDataId = s"${data.defaultDisplayableDataId}_${containingGraph.nodeIdCounters(data.defaultDisplayableDataId)}" + } + } else { + if (!containingGraph.nodeIdCounters.contains(data.overrideDisplayableDataId)) { + containingGraph.nodeIdCounters += ((data.overrideDisplayableDataId, 1)) + } else { + containingGraph.nodeIdCounters += ((data.overrideDisplayableDataId, containingGraph.nodeIdCounters(data.overrideDisplayableDataId) + 1)) + data.overrideDisplayableDataId += s"_${containingGraph.nodeIdCounters(data.overrideDisplayableDataId)}" + } + } + // else if overrideDisplayableDataId is nonEmpty, we assume it's unique and we don't care to check (yet), + // but we could add this in later. If it's not, the DOT graph output will be wrong. } - - @BeanProperty + + @BeanProperty val parents: mutable.ArrayBuffer[Node[T_NodeData @uV]] = new mutable.ArrayBuffer[Node[T_NodeData]]() - - @BeanProperty + + @BeanProperty val children: mutable.ArrayBuffer[Node[T_NodeData @uV]] = new mutable.ArrayBuffer[Node[T_NodeData]]() - + private lazy val descendantsInternal: mutable.HashSet[Node[T_NodeData @uV]] = new mutable.HashSet[Node[T_NodeData]]() - - /** - * Remove this node from its containing graph - */ - def delete(): Unit = { - if (isRoot) { - containingGraph.rootNodes -= this - } - parents.foreach(parent => { - parent.children -= this - }) - parents.clear() - children.foreach(child => { - child.parents -= this - if (child.isRoot) { - containingGraph.rootNodes += child - } - }) - children.clear() - containingGraph.allNodes.indices.filter(_ > nodeIndexInContainingGraph).foreach(index => { - containingGraph.allNodes(index).nodeIndexInContainingGraph -= 1 - }) - containingGraph.allNodes -= this + + /** + * Remove this node from its containing graph + */ + def delete(): Unit = { + if (isRoot) { + containingGraph.rootNodes -= this + } + parents.foreach(parent => { + parent.children -= this + }) + parents.clear() + children.foreach(child => { + child.parents -= this + if (child.isRoot) { + containingGraph.rootNodes += child + } + }) + children.clear() + containingGraph.allNodes.indices.filter(_ > nodeIndexInContainingGraph).foreach(index => { + containingGraph.allNodes(index).nodeIndexInContainingGraph -= 1 + }) + containingGraph.allNodes -= this } - - /** - * Break all links and remove from rootNodes collection - */ - def orphan(): Unit = { - breakAllLinks() - if (isRoot) { - containingGraph.rootNodes -= this - } + + /** + * Break all links and remove from rootNodes collection + */ + def orphan(): Unit = { + breakAllLinks() + if (isRoot) { + containingGraph.rootNodes -= this + } } - - /** - * Break all links this node particpates in. - */ - def breakAllLinks(): Unit = { - this.children.foreach(child => { - child.parents -= this - if (child.isRoot) { - containingGraph.rootNodes += child - } - }) - this.parents.foreach(_.children -= this) - this.children.clear() - this.parents.clear() + + /** + * Break all links this node particpates in. + */ + def breakAllLinks(): Unit = { + this.children.foreach(child => { + child.parents -= this + if (child.isRoot) { + containingGraph.rootNodes += child + } + }) + this.parents.foreach(_.children -= this) + this.children.clear() + this.parents.clear() } - - /** - * Get all the descendant nodes (children of this node, those children's children, to the bottom). - * TODO: If we change org.finra.datagenerator.common.Graph to support cycles, then this method needs to change to only - * traverse a child if it hasn't already been traversed. - * @return Set of all descendents - */ - def getDescendants(): mutable.HashSet[Node[T_NodeData @uV]] = { - descendantsInternal.clear() - if (children.size > 0) { - children.foreach(child => { - descendantsInternal ++= child.getDescendants() - }) - } - descendantsInternal + + /** + * Get all the descendant nodes (children of this node, those children's children, to the bottom). + * TODO: If we change org.finra.datagenerator.common.Graph to support cycles, then this method needs to change to only + * traverse a child if it hasn't already been traversed. + * @return Set of all descendents + */ + def getDescendants(): mutable.HashSet[Node[T_NodeData @uV]] = { + descendantsInternal.clear() + if (children.size > 0) { + children.foreach(child => { + descendantsInternal ++= child.getDescendants() + }) + } + descendantsInternal } - - /** - * Whether or not this is a root node - * @return True = root, false = not root - */ - def isRoot : Boolean = { - parents.isEmpty + + /** + * Whether or not this is a root node + * @return True = root, false = not root + */ + def isRoot : Boolean = { + parents.isEmpty } - - /** - * Create a new node and link it as the parent to this node. - * @param parentData Node to add parent to - * @return Added parent node - */ - def addParent(parentData: T_NodeData @uV): Node[T_NodeData @uV] = { - if (isRoot) { - containingGraph.rootNodes -= this + + /** + * Create a new node and link it as the parent to this node. + * @param parentData Node to add parent to + * @return Added parent node + */ + def addParent(parentData: T_NodeData @uV): Node[T_NodeData @uV] = { + if (isRoot) { + containingGraph.rootNodes -= this } - + val newParent = new Node[T_NodeData @uV](parentData, containingGraph, containingGraph.allNodes.size) - - newParent.children += this + + newParent.children += this parents += newParent - - containingGraph.rootNodes += newParent + + containingGraph.rootNodes += newParent containingGraph.allNodes += newParent - - if (containingGraph.isEdgeLinkTrackingOn) containingGraph.edgeLinkTrackingDescriptions :+= + + if (containingGraph.isEdgeLinkTrackingOn) containingGraph.edgeLinkTrackingDescriptions :+= new AddNewParentDescription(nodeIndexInContainingGraph, parentData) - - newParent + + newParent } - - /** - * Add a link between this node and another node in the same graph, with the other node as this node's parent. - * Won't check for cycles, so don't try to link something as a parent if it's one of this childNode's descendants!! - * @param nodeToLink Node to link to an existing parent - */ - def addLinkToExistingParent(nodeToLink: Node[T_NodeData @uV]): Unit = { - // TODO: Consider making Node an inner class of org.finra.datagenerator.common.Graph. That would prevent passing in a Node from a different graph, - // because in Scala inner classes are scoped under the containing object, not the class. - require(containingGraph == nodeToLink.containingGraph, "Trying to link a node from a different graph!") - if (isRoot) containingGraph.rootNodes -= this - parents += nodeToLink + + /** + * Add a link between this node and another node in the same graph, with the other node as this node's parent. + * Won't check for cycles, so don't try to link something as a parent if it's one of this childNode's descendants!! + * @param nodeToLink Node to link to an existing parent + */ + def addLinkToExistingParent(nodeToLink: Node[T_NodeData @uV]): Unit = { + // TODO: Consider making Node an inner class of org.finra.datagenerator.common.Graph. That would prevent passing in a Node from a different graph, + // because in Scala inner classes are scoped under the containing object, not the class. + require(containingGraph == nodeToLink.containingGraph, "Trying to link a node from a different graph!") + if (isRoot) containingGraph.rootNodes -= this + parents += nodeToLink nodeToLink.children += this - - if (containingGraph.isEdgeLinkTrackingOn) containingGraph.edgeLinkTrackingDescriptions :+= - new AddParentToExistingNodeDescription(nodeIndexInContainingGraph, nodeToLink.nodeIndexInContainingGraph) + + if (containingGraph.isEdgeLinkTrackingOn) containingGraph.edgeLinkTrackingDescriptions :+= + new AddParentToExistingNodeDescription(nodeIndexInContainingGraph, nodeToLink.nodeIndexInContainingGraph) } - - /** - * Add a link between this node and another node in the same graph, with the other node as this node's child. - * Won't check for cycles, so don't try to link something as a child if it's one of this childNode's ancestors!! - * @param nodeToLink Node to link to an existing child - */ - def addLinkToExistingChild(nodeToLink: Node[T_NodeData @uV]): Unit = { - // TODO: Consider making Node an inner class of org.finra.datagenerator.common.Graph. That would prevent passing in a Node from a different graph, - // because in Scala inner classes are scoped under the containing object, not the class. - require(containingGraph == nodeToLink.containingGraph, "Trying to link a node from a different graph!") - if (nodeToLink.isRoot) containingGraph.rootNodes -= nodeToLink - children += nodeToLink + + /** + * Add a link between this node and another node in the same graph, with the other node as this node's child. + * Won't check for cycles, so don't try to link something as a child if it's one of this childNode's ancestors!! + * @param nodeToLink Node to link to an existing child + */ + def addLinkToExistingChild(nodeToLink: Node[T_NodeData @uV]): Unit = { + // TODO: Consider making Node an inner class of org.finra.datagenerator.common.Graph. That would prevent passing in a Node from a different graph, + // because in Scala inner classes are scoped under the containing object, not the class. + require(containingGraph == nodeToLink.containingGraph, "Trying to link a node from a different graph!") + if (nodeToLink.isRoot) containingGraph.rootNodes -= nodeToLink + children += nodeToLink nodeToLink.parents += this - - if (containingGraph.isEdgeLinkTrackingOn) containingGraph.edgeLinkTrackingDescriptions :+= - new AddChildToExistingNodeDescription(nodeIndexInContainingGraph, nodeToLink.nodeIndexInContainingGraph) + + if (containingGraph.isEdgeLinkTrackingOn) containingGraph.edgeLinkTrackingDescriptions :+= + new AddChildToExistingNodeDescription(nodeIndexInContainingGraph, nodeToLink.nodeIndexInContainingGraph) } - - /** - * Create a new node and link it as the child to this node. - * @param childData Node to add child to - * @return Added child node - */ - def addChild(childData: T_NodeData @uV): Node[T_NodeData @uV] = { - val newChild = new Node[T_NodeData @uV](childData, containingGraph, containingGraph.allNodes.size) - children += newChild + + /** + * Create a new node and link it as the child to this node. + * @param childData Node to add child to + * @return Added child node + */ + def addChild(childData: T_NodeData @uV): Node[T_NodeData @uV] = { + val newChild = new Node[T_NodeData @uV](childData, containingGraph, containingGraph.allNodes.size) + children += newChild newChild.parents += this - + containingGraph.allNodes += newChild - - if (containingGraph.isEdgeLinkTrackingOn) containingGraph.edgeLinkTrackingDescriptions :+= + + if (containingGraph.isEdgeLinkTrackingOn) containingGraph.edgeLinkTrackingDescriptions :+= new AddNewChildDescription(nodeIndexInContainingGraph, childData) - - newChild + + newChild } - - /** - * Creates a copy of the graph and adds a new node as a child from the analog of this node in the copied graph. - * @param childData Data to add in child node - * @return Added child node - */ - def addChildToAnalogNodeInCopiedGraph(childData: T_NodeData @uV): Node[T_NodeData @uV] = { - getAnalogInCopiedGraph.addChild(childData) + + /** + * Creates a copy of the graph and adds a new node as a child from the analog of this node in the copied graph. + * @param childData Data to add in child node + * @return Added child node + */ + def addChildToAnalogNodeInCopiedGraph(childData: T_NodeData @uV): Node[T_NodeData @uV] = { + getAnalogInCopiedGraph.addChild(childData) } - - /** - * Creates a copy of the graph and adds a new node as a parent from the analog of this node in the copied graph. - * @param parentData Data to add in parent node - * @return Added parent node - */ - def addParentToAnalogNodeInCopiedGraph(parentData: T_NodeData @uV): Node[T_NodeData @uV] = { - getAnalogInCopiedGraph.addParent(parentData) + + /** + * Creates a copy of the graph and adds a new node as a parent from the analog of this node in the copied graph. + * @param parentData Data to add in parent node + * @return Added parent node + */ + def addParentToAnalogNodeInCopiedGraph(parentData: T_NodeData @uV): Node[T_NodeData @uV] = { + getAnalogInCopiedGraph.addParent(parentData) } - + // TODO: Need method to link an existing childNode as parent, in copied graph. - - /** - * Create a copy of the containing graph and get the analogous node in the copied graph. - * @return Node in copied graph - */ - def getAnalogInCopiedGraph: Node[T_NodeData @uV] = { - containingGraph.deepCopy.allNodes(nodeIndexInContainingGraph) + + /** + * Create a copy of the containing graph and get the analogous node in the copied graph. + * @return Node in copied graph + */ + def getAnalogInCopiedGraph: Node[T_NodeData @uV] = { + containingGraph.deepCopy.allNodes(nodeIndexInContainingGraph) + } + + /** + * Write this node, and all its edges to its children, in DOT format to an open stream. + * @param out Output stream to write to + * @param isSimplified Whether or not to write using simplifiedDisplayableElements instead of displayableElements + */ + def writeDotFormatGraphVisualizationOfNodeToOpenStream(out: OutputStream, isSimplified: Boolean = false): Unit = { + val elementsToDisplay = if (isSimplified) data.simplifiedDisplayableElements else data.displayableElements + if (elementsToDisplay.nonEmpty) { + out.write( s""""${data.displayableDataId}" [label="${ + elementsToDisplay.map(_.replace("|", "\\|")).mkString("|") + }" shape="record"];\r\n""".getBytes("UTF-8")) + } + children.foreach(child => out.write( s""""${data.displayableDataId}"->"${child.data.displayableDataId}"\r\n""".getBytes("UTF-8"))) } - - /** - * Write this node, and all its edges to its children, in DOT format to an open stream. - * @param out Output stream to write to - * @param isSimplified Whether or not to write using simplifiedDisplayableElements instead of displayableElements - */ - def writeDotFormatGraphVisualizationOfNodeToOpenStream(out: OutputStream, isSimplified: Boolean = false): Unit = { - val elementsToDisplay = if (isSimplified) data.simplifiedDisplayableElements else data.displayableElements - if (elementsToDisplay.nonEmpty) { - out.write( s""""${data.displayableDataId}" [label="${ - elementsToDisplay.map(_.replace("|", "\\|")).mkString("|") - }" shape="record"];\r\n""".getBytes("UTF-8")) - } - children.foreach(child => out.write( s""""${data.displayableDataId}"->"${child.data.displayableDataId}"\r\n""".getBytes("UTF-8"))) - } } diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/GraphEngine/DataNodeGenerator.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/GraphEngine/DataNodeGenerator.scala index 77541a84..634fbaeb 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/GraphEngine/DataNodeGenerator.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/GraphEngine/DataNodeGenerator.scala @@ -1,98 +1,98 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.GraphEngine - -import org.finra.datagenerator.common.Graph.Node -import org.finra.datagenerator.common.NodeData.NodeDataType.NodeDataType -import org.finra.datagenerator.common.NodeData.{NodeDataTypes, NodeDataStub, DisplayableData, NodeData} -import org.finra.datagenerator.common.Helpers.RandomHelper -import scala.annotation.unchecked.{uncheckedVariance => uV} + +import org.finra.datagenerator.common.Graph.Node +import org.finra.datagenerator.common.NodeData.NodeDataType.NodeDataType +import org.finra.datagenerator.common.NodeData.{NodeDataTypes, NodeDataStub, DisplayableData, NodeData} +import org.finra.datagenerator.common.Helpers.RandomHelper +import scala.annotation.unchecked.{uncheckedVariance => uV} import scala.collection.mutable.ListBuffer - -/** - * Responsible for creating new linked nodes from a specified node, using specified predicate and create functions. - * @tparam T_NodeData Type of data to generate (e.g., could be either real data or could be stubbed data) - * @tparam T_NodeDataTypeData Concrete type of data underlying T_NodeData (e.g., if T_NodeData is a stub, then this is the data that stub abstracts) - * @tparam T_NodeDataStub Stub type for the data - * @tparam T_NodeDataType Data type type for this data - * @tparam T_NodeDataTypes Data types type for this data - */ -trait DataNodeGenerator[+T_NodeData <: DisplayableData, - +T_NodeDataTypeData <: NodeData with DisplayableData, - // When we try to fill in the type parameters, we get compilation errors. Replacing them with implicit type parameters works. - // Not sure the reason, maybe even a compiler bug, because all the types in the comments seem to check out. - +T_NodeDataStub <: NodeDataStub[_,_,_,_], //[T_NodeDataType, T_NodeData, T_NodeDataTypes, T_NodeDataStub], - +T_NodeDataType <: NodeDataType[_,_,_,_], //[T_NodeData, T_NodeDataStub, T_NodeDataTypes, T_NodeDataType], - +T_NodeDataTypes <: NodeDataTypes[_,_,_,_]] { - //[T_NodeData, T_NodeDataStub, T_NodeDataType, T_NodeDataTypes]] { - /** - * - * @param eventNode Node from which to generate and link new child or parent nodes - * @param maxToGenerate Number of nodes left to create - * @param stateTransitionPredicates List of event types and predicates defining whether or not they should be generated. - * Predicate will typically be a probability function. - * @param createFunction Function to create the new linked childNode if the predicate passes - * @return All newly created nodes - */ - def generateLinkedNodes(eventNode: Node[T_NodeData@uV], - maxToGenerate: Long, - stateTransitionPredicates: ListBuffer[(T_NodeDataType@uV, (Node[T_NodeData@uV] => Boolean))], - createFunction: (T_NodeDataType@uV) => Node[T_NodeData@uV] + +/** + * Responsible for creating new linked nodes from a specified node, using specified predicate and create functions. + * @tparam T_NodeData Type of data to generate (e.g., could be either real data or could be stubbed data) + * @tparam T_NodeDataTypeData Concrete type of data underlying T_NodeData (e.g., if T_NodeData is a stub, then this is the data that stub abstracts) + * @tparam T_NodeDataStub Stub type for the data + * @tparam T_NodeDataType Data type type for this data + * @tparam T_NodeDataTypes Data types type for this data + */ +trait DataNodeGenerator[+T_NodeData <: DisplayableData, + +T_NodeDataTypeData <: NodeData with DisplayableData, + // When we try to fill in the type parameters, we get compilation errors. Replacing them with implicit type parameters works. + // Not sure the reason, maybe even a compiler bug, because all the types in the comments seem to check out. + +T_NodeDataStub <: NodeDataStub[_,_,_,_], //[T_NodeDataType, T_NodeData, T_NodeDataTypes, T_NodeDataStub], + +T_NodeDataType <: NodeDataType[_,_,_,_], //[T_NodeData, T_NodeDataStub, T_NodeDataTypes, T_NodeDataType], + +T_NodeDataTypes <: NodeDataTypes[_,_,_,_]] { + //[T_NodeData, T_NodeDataStub, T_NodeDataType, T_NodeDataTypes]] { + /** + * + * @param eventNode Node from which to generate and link new child or parent nodes + * @param maxToGenerate Number of nodes left to create + * @param stateTransitionPredicates List of event types and predicates defining whether or not they should be generated. + * Predicate will typically be a probability function. + * @param createFunction Function to create the new linked childNode if the predicate passes + * @return All newly created nodes + */ + def generateLinkedNodes(eventNode: Node[T_NodeData@uV], + maxToGenerate: Long, + stateTransitionPredicates: ListBuffer[(T_NodeDataType@uV, (Node[T_NodeData@uV] => Boolean))], + createFunction: (T_NodeDataType@uV) => Node[T_NodeData@uV] ): collection.immutable.Vector[Node[T_NodeData]] = { - + val newNodes = scala.collection.mutable.ArrayBuffer[Node[T_NodeData]]() - - if (stateTransitionPredicates.length == 0) { - newNodes.toVector - } else { + + if (stateTransitionPredicates.length == 0) { + newNodes.toVector + } else { var generatedCount = 0 - - // For each possible next state (iterated in random order), - // Generate transition based on probability. Keep generating more until the predicate returns false, - // Or until we're at max # of states in graph. - // If predicate returns false, continue same procedure for next states in iteration. - // If we've exhausted all possible next states and still want to generate (some # of states + + // For each possible next state (iterated in random order), + // Generate transition based on probability. Keep generating more until the predicate returns false, + // Or until we're at max # of states in graph. + // If predicate returns false, continue same procedure for next states in iteration. + // If we've exhausted all possible next states and still want to generate (some # of states // left in graph), that's ok -- just return. - + var exitGeneration = false - + while (stateTransitionPredicates.nonEmpty && !exitGeneration) { - - // Gen rand int from 0 to list size - 1. Use that to get next event type & prob. Remove from list. - // Evaluate prob repeatedly until false, then repeat. + + // Gen rand int from 0 to list size - 1. Use that to get next event type & prob. Remove from list. + // Evaluate prob repeatedly until false, then repeat. val nextIndexToGet = RandomHelper.randWithConfiguredSeed.nextInt(stateTransitionPredicates.length) - - val nextEventAndEvaluationPredicate = stateTransitionPredicates.remove(nextIndexToGet) - val nextEventType = nextEventAndEvaluationPredicate._1 + + val nextEventAndEvaluationPredicate = stateTransitionPredicates.remove(nextIndexToGet) + val nextEventType = nextEventAndEvaluationPredicate._1 val evaluationPredicate = nextEventAndEvaluationPredicate._2 - - // Checking against maxToGenerate will lead to event lifecycles that are not always finished (e.g., - // might have a routed event but no new event to link on the routed side. - // Eventually we should be able to extract errors and warnings from such a graph. - while (evaluationPredicate(eventNode) && !exitGeneration) { - if (generatedCount < maxToGenerate) { - newNodes += createFunction(nextEventType) - generatedCount += 1 - } else { - exitGeneration = true - } - } - } - newNodes.toVector - } - } + + // Checking against maxToGenerate will lead to event lifecycles that are not always finished (e.g., + // might have a routed event but no new event to link on the routed side. + // Eventually we should be able to extract errors and warnings from such a graph. + while (evaluationPredicate(eventNode) && !exitGeneration) { + if (generatedCount < maxToGenerate) { + newNodes += createFunction(nextEventType) + generatedCount += 1 + } else { + exitGeneration = true + } + } + } + newNodes.toVector + } + } } diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/GraphEngine/DataTransitions.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/GraphEngine/DataTransitions.scala index 23f23fa7..0dbb1182 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/GraphEngine/DataTransitions.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/GraphEngine/DataTransitions.scala @@ -1,158 +1,158 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.GraphEngine - -import org.finra.datagenerator.common.Graph.Node -import org.finra.datagenerator.common.NodeData.NodeDataType.NodeDataType + +import org.finra.datagenerator.common.Graph.Node +import org.finra.datagenerator.common.NodeData.NodeDataType.NodeDataType import org.finra.datagenerator.common.NodeData.{NodeDataTypes, DisplayableData, NodeData, NodeDataStub} - + import scala.annotation.unchecked.{uncheckedVariance => uV} - -/** - * Defines what to do when adding a child or parent, with specified type, from a source node of specified type, - * as well as how to link existing events. - * Must be overridden with an implementation to define how to perform these transitions. - * @tparam T_NodeData Type of data to generate (e.g., could be either real data or could be stubbed data) - * @tparam T_NodeDataStub Stub type for the data - * @tparam T_NodeDataType Data type type for this data - * @tparam T_NodeDataTypes Data types type for this data - */ -abstract class DataTransitions[+T_NodeData <: NodeData with DisplayableData, - +T_NodeDataType <: NodeDataType[T_NodeData, T_NodeDataStub, T_NodeDataTypes, T_NodeDataType], - +T_NodeDataStub <: NodeDataStub[T_NodeDataType, T_NodeData, T_NodeDataTypes, T_NodeDataStub], - +T_NodeDataTypes <: NodeDataTypes[T_NodeData, T_NodeDataStub, T_NodeDataType, T_NodeDataTypes]] { - /** - * Information about all data types in this domain - * @return NodeDataTypes object - */ + +/** + * Defines what to do when adding a child or parent, with specified type, from a source node of specified type, + * as well as how to link existing events. + * Must be overridden with an implementation to define how to perform these transitions. + * @tparam T_NodeData Type of data to generate (e.g., could be either real data or could be stubbed data) + * @tparam T_NodeDataStub Stub type for the data + * @tparam T_NodeDataType Data type type for this data + * @tparam T_NodeDataTypes Data types type for this data + */ +abstract class DataTransitions[+T_NodeData <: NodeData with DisplayableData, + +T_NodeDataType <: NodeDataType[T_NodeData, T_NodeDataStub, T_NodeDataTypes, T_NodeDataType], + +T_NodeDataStub <: NodeDataStub[T_NodeDataType, T_NodeData, T_NodeDataTypes, T_NodeDataStub], + +T_NodeDataTypes <: NodeDataTypes[T_NodeData, T_NodeDataStub, T_NodeDataType, T_NodeDataTypes]] { + /** + * Information about all data types in this domain + * @return NodeDataTypes object + */ def nodeDataTypes: T_NodeDataTypes - - /** - * Predicate that returns true if a candidate node is already linked as a parent of another node. - * @param childNode Child node to check - * @param candidateParentNode Parent to check - * @return True - already linked; false - not already linked - */ - def isExistingParentAlreadyLinked(childNode: Node[T_NodeData @uV], candidateParentNode: Node[T_NodeData @uV]): Boolean = { - childNode.parents.contains(candidateParentNode) + + /** + * Predicate that returns true if a candidate node is already linked as a parent of another node. + * @param childNode Child node to check + * @param candidateParentNode Parent to check + * @return True - already linked; false - not already linked + */ + def isExistingParentAlreadyLinked(childNode: Node[T_NodeData @uV], candidateParentNode: Node[T_NodeData @uV]): Boolean = { + childNode.parents.contains(candidateParentNode) } - - /** - * Link two existing nodes together. - * @param parent Node to link as parent - * @param child Node to link as child - */ + + /** + * Link two existing nodes together. + * @param parent Node to link as parent + * @param child Node to link as child + */ protected def linkExistingNodes(parent: Node[T_NodeData @uV], child: Node[T_NodeData @uV]): Unit - - /** - * Link two existing nodes together if not already linked. - * @param parent Node to link as parent - * @param child Node to link as child - */ - def linkExistingNodesIfNotAlreadyLinked(parent: Node[T_NodeData @uV], child: Node[T_NodeData @uV]): Unit = { - if (!isExistingParentAlreadyLinked(child, parent)) { - linkExistingNodes(parent, child) - } + + /** + * Link two existing nodes together if not already linked. + * @param parent Node to link as parent + * @param child Node to link as child + */ + def linkExistingNodesIfNotAlreadyLinked(parent: Node[T_NodeData @uV], child: Node[T_NodeData @uV]): Unit = { + if (!isExistingParentAlreadyLinked(child, parent)) { + linkExistingNodes(parent, child) + } } - - /** - * Predicate that returns true if a data node is allowed to be linked to another existing node as the child of the existing node. - * @param childNode Child to check - * @param candidateParentNode Node to check if it can be parent of child - * @return True - link allowed; false - link not allowed - */ - def isLinkToExistingParentAllowed(childNode: Node[T_NodeData @uV], candidateParentNode: Node[T_NodeData @uV]): Boolean = { - // A candidate parent is any childNode that matches the following criteria: - // - Not already a direct parent of the childNode - // - Not a child/grandchild/etc. of the childNode (but parents of descendants are ok -- think of them as nephews) + + /** + * Predicate that returns true if a data node is allowed to be linked to another existing node as the child of the existing node. + * @param childNode Child to check + * @param candidateParentNode Node to check if it can be parent of child + * @return True - link allowed; false - link not allowed + */ + def isLinkToExistingParentAllowed(childNode: Node[T_NodeData @uV], candidateParentNode: Node[T_NodeData @uV]): Boolean = { + // A candidate parent is any childNode that matches the following criteria: + // - Not already a direct parent of the childNode + // - Not a child/grandchild/etc. of the childNode (but parents of descendants are ok -- think of them as nephews) // - Transition between parent and child is allowed - - childNode != candidateParentNode && - !childNode.getDescendants().contains(candidateParentNode) && - isParentTypeTransitionAllowed(childNode, candidateParentNode) + + childNode != candidateParentNode && + !childNode.getDescendants().contains(candidateParentNode) && + isParentTypeTransitionAllowed(childNode, candidateParentNode) } - - /** - * Predicate that returns true if a stub node is allowed to be linked to another existing node as the child of the existing node. - * @param childNode Child we're trying to link existing node from - * @param candidateParentNode Existing parent we're trying to link to - * @return True - link allowed; false - link not allowed - */ - def isStubLinkToExistingParentAllowed(childNode: Node[T_NodeDataStub @uV], candidateParentNode: Node[T_NodeDataStub @uV]): Boolean = { - // A candidate parent is any childNode that matches the following criteria: - // - Not already a direct parent of the childNode - // - Not a child/grandchild/etc. of the childNode (but parents of descendants are ok -- think of them as nephews) + + /** + * Predicate that returns true if a stub node is allowed to be linked to another existing node as the child of the existing node. + * @param childNode Child we're trying to link existing node from + * @param candidateParentNode Existing parent we're trying to link to + * @return True - link allowed; false - link not allowed + */ + def isStubLinkToExistingParentAllowed(childNode: Node[T_NodeDataStub @uV], candidateParentNode: Node[T_NodeDataStub @uV]): Boolean = { + // A candidate parent is any childNode that matches the following criteria: + // - Not already a direct parent of the childNode + // - Not a child/grandchild/etc. of the childNode (but parents of descendants are ok -- think of them as nephews) // - Transition between parent and child is allowed - - childNode != candidateParentNode && - !childNode.getDescendants().contains(candidateParentNode) && - !childNode.parents.contains(candidateParentNode) && - isStubParentTypeTransitionAllowed(childNode, candidateParentNode) + + childNode != candidateParentNode && + !childNode.getDescendants().contains(candidateParentNode) && + !childNode.parents.contains(candidateParentNode) && + isStubParentTypeTransitionAllowed(childNode, candidateParentNode) } - - /** - * Predicate that returns true if a stub node is allowed to be linked to a not-yet-existing parent node. - * @param childNode Child to link from - * @param candidateParentNode Parent to link to - * @return True if link allowed - */ + + /** + * Predicate that returns true if a stub node is allowed to be linked to a not-yet-existing parent node. + * @param childNode Child to link from + * @param candidateParentNode Parent to link to + * @return True if link allowed + */ def isStubParentTypeTransitionAllowed(childNode: Node[T_NodeDataStub @uV], candidateParentNode: Node[T_NodeDataStub @uV]): Boolean - - /** - * Predicate that returns true if a data node is allowed to be linked to a not-yet-existing parent node. - * @param childDataNode Child to link from - * @param candidateParentDataNode Parent to link to - * @return True if link allowed - */ + + /** + * Predicate that returns true if a data node is allowed to be linked to a not-yet-existing parent node. + * @param childDataNode Child to link from + * @param candidateParentDataNode Parent to link to + * @return True if link allowed + */ def isParentTypeTransitionAllowed(childDataNode: Node[T_NodeData @uV], candidateParentDataNode: Node[T_NodeData @uV]): Boolean - - /** - * Add a new node, having data of the specified type, as a parent to the existing node. - * @param childDataNode Child to add from - * @param parentNodeDataType Type of parent node to add - * @return Added parent node - */ - def addRandomlyGeneratedParentData(childDataNode: Node[T_NodeData @uV], parentNodeDataType: (T_NodeDataType @uV)): Node[T_NodeData @uV]/* = { - addRandomlyGeneratedParentEvent(childDataNode, new NodeDataStub(parentNodeDataType)) + + /** + * Add a new node, having data of the specified type, as a parent to the existing node. + * @param childDataNode Child to add from + * @param parentNodeDataType Type of parent node to add + * @return Added parent node + */ + def addRandomlyGeneratedParentData(childDataNode: Node[T_NodeData @uV], parentNodeDataType: (T_NodeDataType @uV)): Node[T_NodeData @uV]/* = { + addRandomlyGeneratedParentEvent(childDataNode, new NodeDataStub(parentNodeDataType)) }*/ - - /** - * Add a new node, having data satisfying the specified stub, as a parent to the existing node. - * @param childDataNode Child to add from - * @param parentNodeDataStub Stub describing parent node to add - * @return Added parent node - */ + + /** + * Add a new node, having data satisfying the specified stub, as a parent to the existing node. + * @param childDataNode Child to add from + * @param parentNodeDataStub Stub describing parent node to add + * @return Added parent node + */ def addRandomlyGeneratedParentData(childDataNode: Node[T_NodeData @uV], parentNodeDataStub: (T_NodeDataStub @uV)): Node[T_NodeData @uV] - - /** - * Add a new node, having data of the specified type, as a child to the existing node. - * @param parentDataNode Parent to add from - * @param childNodeDataType Type of child to add - * @return Added child node - */ - def addRandomlyGeneratedChildData(parentDataNode: Node[T_NodeData @uV], childNodeDataType: (T_NodeDataType @uV)): Node[T_NodeData @uV]/* = { - addRandomlyGeneratedChildData(parentDataNode, new NodeDataStub(childNodeDataType)) + + /** + * Add a new node, having data of the specified type, as a child to the existing node. + * @param parentDataNode Parent to add from + * @param childNodeDataType Type of child to add + * @return Added child node + */ + def addRandomlyGeneratedChildData(parentDataNode: Node[T_NodeData @uV], childNodeDataType: (T_NodeDataType @uV)): Node[T_NodeData @uV]/* = { + addRandomlyGeneratedChildData(parentDataNode, new NodeDataStub(childNodeDataType)) }*/ - - /** - * Add a new node, having data satisfying the specified stub, as a child to the existing node. - * @param parentDataNode Parent to add from - * @param childNodeDataStub Stub describing child node to add - * @return Added child node - */ - def addRandomlyGeneratedChildData(parentDataNode: Node[T_NodeData @uV], childNodeDataStub: (T_NodeDataStub @uV)): Node[T_NodeData @uV] + + /** + * Add a new node, having data satisfying the specified stub, as a child to the existing node. + * @param parentDataNode Parent to add from + * @param childNodeDataStub Stub describing child node to add + * @return Added child node + */ + def addRandomlyGeneratedChildData(parentDataNode: Node[T_NodeData @uV], childNodeDataStub: (T_NodeDataStub @uV)): Node[T_NodeData @uV] } diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/GraphEngine/DefaultNodeGenerator.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/GraphEngine/DefaultNodeGenerator.scala index 2bba0761..1461a61f 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/GraphEngine/DefaultNodeGenerator.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/GraphEngine/DefaultNodeGenerator.scala @@ -1,35 +1,35 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.GraphEngine - -import org.finra.datagenerator.common.NodeData.NodeDataType.NodeDataType + +import org.finra.datagenerator.common.NodeData.NodeDataType.NodeDataType import org.finra.datagenerator.common.NodeData.{NodeDataTypes, DisplayableData, NodeData, NodeDataStub} - -/** - * Default node generator - * @tparam T_NodeData Type of data to generate (e.g., could be either real data or could be stubbed data) - * @tparam T_NodeDataTypeData Concrete type of data underlying T_NodeData (e.g., if T_NodeData is a stub, then this is the data that stub abstracts) - * @tparam T_NodeDataStub Stub type for the data - * @tparam T_NodeDataType Data type type for this data - * @tparam T_NodeDataTypes Data types type for this data - */ -class DefaultNodeGenerator[+T_NodeDataTypeData <: DisplayableData, - +T_NodeData <: NodeData with DisplayableData, - +T_NodeDataStub <: NodeDataStub[T_NodeDataType, T_NodeData, T_NodeDataTypes, T_NodeDataStub], - +T_NodeDataType <: NodeDataType[T_NodeData, T_NodeDataStub, T_NodeDataTypes, T_NodeDataType], - +T_NodeDataTypes <: NodeDataTypes[T_NodeData, T_NodeDataStub, T_NodeDataType, T_NodeDataTypes]] + +/** + * Default node generator + * @tparam T_NodeData Type of data to generate (e.g., could be either real data or could be stubbed data) + * @tparam T_NodeDataTypeData Concrete type of data underlying T_NodeData (e.g., if T_NodeData is a stub, then this is the data that stub abstracts) + * @tparam T_NodeDataStub Stub type for the data + * @tparam T_NodeDataType Data type type for this data + * @tparam T_NodeDataTypes Data types type for this data + */ +class DefaultNodeGenerator[+T_NodeDataTypeData <: DisplayableData, + +T_NodeData <: NodeData with DisplayableData, + +T_NodeDataStub <: NodeDataStub[T_NodeDataType, T_NodeData, T_NodeDataTypes, T_NodeDataStub], + +T_NodeDataType <: NodeDataType[T_NodeData, T_NodeDataStub, T_NodeDataTypes, T_NodeDataType], + +T_NodeDataTypes <: NodeDataTypes[T_NodeData, T_NodeDataStub, T_NodeDataType, T_NodeDataTypes]] extends DataNodeGenerator[T_NodeDataTypeData, T_NodeData, T_NodeDataStub, T_NodeDataType, T_NodeDataTypes] diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/GraphEngine/StructureBuilder.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/GraphEngine/StructureBuilder.scala index b4173533..a3841954 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/GraphEngine/StructureBuilder.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/GraphEngine/StructureBuilder.scala @@ -1,226 +1,226 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.GraphEngine - -import org.finra.datagenerator.common.Graph.{Graph, Node} -import org.finra.datagenerator.common.NodeData.NodeDataType.NodeDataType -import org.finra.datagenerator.common.NodeData.{NodeDataTypes, NodeData, NodeDataStub} -import scala.annotation.unchecked.{uncheckedVariance => uV} + +import org.finra.datagenerator.common.Graph.{Graph, Node} +import org.finra.datagenerator.common.NodeData.NodeDataType.NodeDataType +import org.finra.datagenerator.common.NodeData.{NodeDataTypes, NodeData, NodeDataStub} +import scala.annotation.unchecked.{uncheckedVariance => uV} import scala.collection.immutable - -/** - * Builds graph structures - * @tparam T_NodeData Type of data to generate (e.g., could be either real data or could be stubbed data) - * @tparam T_NodeDataStub Stub type for the data - * @tparam T_NodeDataType Data type type for this data - * @tparam T_NodeDataTypes Data types type for this data - */ -abstract class StructureBuilder[+T_NodeData <: NodeData, - +T_NodeDataType <: NodeDataType[T_NodeData, T_NodeDataStub, T_NodeDataTypes @uV, T_NodeDataType], - +T_NodeDataStub <: NodeDataStub[T_NodeDataType, T_NodeData, T_NodeDataTypes, T_NodeDataStub], - +T_NodeDataTypes <: NodeDataTypes[T_NodeData, T_NodeDataStub, T_NodeDataType, T_NodeDataTypes]]{ - /** - * Provides info about all possible types and the subset of all initial types - * @return Node data types - */ + +/** + * Builds graph structures + * @tparam T_NodeData Type of data to generate (e.g., could be either real data or could be stubbed data) + * @tparam T_NodeDataStub Stub type for the data + * @tparam T_NodeDataType Data type type for this data + * @tparam T_NodeDataTypes Data types type for this data + */ +abstract class StructureBuilder[+T_NodeData <: NodeData, + +T_NodeDataType <: NodeDataType[T_NodeData, T_NodeDataStub, T_NodeDataTypes @uV, T_NodeDataType], + +T_NodeDataStub <: NodeDataStub[T_NodeDataType, T_NodeData, T_NodeDataTypes, T_NodeDataStub], + +T_NodeDataTypes <: NodeDataTypes[T_NodeData, T_NodeDataStub, T_NodeDataType, T_NodeDataTypes]]{ + /** + * Provides info about all possible types and the subset of all initial types + * @return Node data types + */ protected def nodeDataTypes: T_NodeDataTypes - - /** - * Defines how to create parents and children of specified types from a specified node - */ + + /** + * Defines how to create parents and children of specified types from a specified node + */ lazy val dataTransitions = nodeDataTypes.dataTransitions - - /** - * Build all combinations of graph structures for generic event stubs of a maximum length - * @param length Maximum number of nodes in each to generate - * @return All graph combinations of specified length or less - */ - def generateAllNodeDataTypeGraphCombinationsOfMaxLength(length: Int): immutable.Vector[Graph[T_NodeDataStub @uV]] = { + + /** + * Build all combinations of graph structures for generic event stubs of a maximum length + * @param length Maximum number of nodes in each to generate + * @return All graph combinations of specified length or less + */ + def generateAllNodeDataTypeGraphCombinationsOfMaxLength(length: Int): immutable.Vector[Graph[T_NodeDataStub @uV]] = { if (length < 0) throw new IllegalArgumentException(s"Length (passed in as $length) must be positive.") - - var graphs = - if (length == 0) { - immutable.Vector[Graph[T_NodeDataStub @uV]]() - } else { - getAllSingleNodeGraphs + + var graphs = + if (length == 0) { + immutable.Vector[Graph[T_NodeDataStub @uV]]() + } else { + getAllSingleNodeGraphs } - + var remainingLength = length - 1 - - // TODO: Need to remove duplicates. - // E.g., consider a node type "SomeType," which is an initial node type and can have another "SomeType" as - // a parent and/or child. - // One 2-node graph: Start with "SomeType" and add child "SomeType" - // Another 2-node graph: Start with "SomeType" and add parent "SomeType" - // These graphs are structurally equivalent and the duplicates should be removed. - // This should be doable if we add a method to org.finra.datagenerator.common.Graph to get hash code of the structural parts of the graph - // -- i.e., ignore graph ID and ignore node-creation order. Then, instead of a sequential data structure, - // we can add the graphs to a HashMap and use this "hash code" as the key, thus ensuring we don't add the + + // TODO: Need to remove duplicates. + // E.g., consider a node type "SomeType," which is an initial node type and can have another "SomeType" as + // a parent and/or child. + // One 2-node graph: Start with "SomeType" and add child "SomeType" + // Another 2-node graph: Start with "SomeType" and add parent "SomeType" + // These graphs are structurally equivalent and the duplicates should be removed. + // This should be doable if we add a method to org.finra.datagenerator.common.Graph to get hash code of the structural parts of the graph + // -- i.e., ignore graph ID and ignore node-creation order. Then, instead of a sequential data structure, + // we can add the graphs to a HashMap and use this "hash code" as the key, thus ensuring we don't add the // same graph twice. - - while (remainingLength > 0) { + + while (remainingLength > 0) { graphs ++= getAllGraphsHavingOneAdditionalLink(graphs) - - remainingLength -= 1 + + remainingLength -= 1 } - - graphs + + graphs } - - /** - * Get all allowable graphs containing only one node - * @return All allowable graphs with one node - */ - def getAllSingleNodeGraphs: collection.immutable.Vector[Graph[T_NodeDataStub @uV]] = { + + /** + * Get all allowable graphs containing only one node + * @return All allowable graphs with one node + */ + def getAllSingleNodeGraphs: collection.immutable.Vector[Graph[T_NodeDataStub @uV]] = { var graphs = collection.immutable.Vector[Graph[T_NodeDataStub]]() - - nodeDataTypes.allInitialDataTypes.foreach(initialType => { - // TODO: Can this be done without the cast? For some reason the compiler is unable to coerce the type even though we know it's correct. - graphs :+= new Graph(Option(initialType.asStub), isEdgeLinkTrackingOn = false, appendSharedDisplayIdsWithNumericalSuffix = true) - }) - graphs + + nodeDataTypes.allInitialDataTypes.foreach(initialType => { + // TODO: Can this be done without the cast? For some reason the compiler is unable to coerce the type even though we know it's correct. + graphs :+= new Graph(Option(initialType.asStub), isEdgeLinkTrackingOn = false, appendSharedDisplayIdsWithNumericalSuffix = true) + }) + graphs } - - def getCandidateExistingParentNodes(node: Node[T_NodeDataStub @uV]): collection.immutable.Vector[Node[T_NodeDataStub @uV]] = { - (for (nodeInGraph <- node.containingGraph.allNodes - if dataTransitions.isStubLinkToExistingParentAllowed(node, nodeInGraph)) - yield nodeInGraph - ).toVector + + def getCandidateExistingParentNodes(node: Node[T_NodeDataStub @uV]): collection.immutable.Vector[Node[T_NodeDataStub @uV]] = { + (for (nodeInGraph <- node.containingGraph.allNodes + if dataTransitions.isStubLinkToExistingParentAllowed(node, nodeInGraph)) + yield nodeInGraph + ).toVector } - + // TODO: Would be nice to reduce the duplicate code of the following two methods. - - /** - * Get all the graphs based on the graph the passed-in node belongs to, and adding one of each possible child to the - * specified node, plus for each graph having a new possible child, generating all possible graphs with new links - * between existing nodes. - * @param node Node to build from - * @param nodeDataStub Stub representing child to add - * @return Generated graphs - */ - def getCopiedGraphsFromAddingChildToAnalogNodeAndLinkingAllPossibleExistingParents( - node: Node[T_NodeDataStub @uV], nodeDataStub: (T_NodeDataStub @uV)): immutable.Vector[Graph[T_NodeDataStub @uV]] = { - val initialGraph = node.addChildToAnalogNodeInCopiedGraph(nodeDataStub).containingGraph + + /** + * Get all the graphs based on the graph the passed-in node belongs to, and adding one of each possible child to the + * specified node, plus for each graph having a new possible child, generating all possible graphs with new links + * between existing nodes. + * @param node Node to build from + * @param nodeDataStub Stub representing child to add + * @return Generated graphs + */ + def getCopiedGraphsFromAddingChildToAnalogNodeAndLinkingAllPossibleExistingParents( + node: Node[T_NodeDataStub @uV], nodeDataStub: (T_NodeDataStub @uV)): immutable.Vector[Graph[T_NodeDataStub @uV]] = { + val initialGraph = node.addChildToAnalogNodeInCopiedGraph(nodeDataStub).containingGraph var graphs = immutable.Vector[Graph[T_NodeDataStub @uV]](initialGraph) - + val candidateParents = getCandidateExistingParentNodes(node).toSet - - // Get all edge combinations from this childNode to candidates subsets, and add each as a new graph. - candidateParents.subsets(candidateParents.size).foreach(candidateParentsSet => { + + // Get all edge combinations from this childNode to candidates subsets, and add each as a new graph. + candidateParents.subsets(candidateParents.size).foreach(candidateParentsSet => { val newGraph = initialGraph.deepCopy - - candidateParentsSet.foreach(parentToAdd => { - newGraph.allNodes(newGraph.allNodes.size - 1).addLinkToExistingParent(newGraph.allNodes(parentToAdd.nodeIndexInContainingGraph)) - }) - graphs :+= newGraph + + candidateParentsSet.foreach(parentToAdd => { + newGraph.allNodes(newGraph.allNodes.size - 1).addLinkToExistingParent(newGraph.allNodes(parentToAdd.nodeIndexInContainingGraph)) + }) + graphs :+= newGraph }) - - graphs + + graphs } - - /** - * Get all the graphs based on the graph the passed-in node belongs to, and adding one of each possible parent to the - * specified node, plus for each graph having a new possible parent, generating all possible graphs with new links - * between existing nodes. - * @param node Node to build from - * @param nodeDataStub Stub representing child to add - * @return Generated graphs - */ - def getCopiedGraphsFromAddingParentToAnalogNodeAndLinkingAllPossibleExistingParents( - node: Node[T_NodeDataStub @uV], nodeDataStub: (T_NodeDataStub @uV)): immutable.Vector[Graph[T_NodeDataStub @uV]] = { - val initialGraph = node.addChildToAnalogNodeInCopiedGraph(nodeDataStub).containingGraph + + /** + * Get all the graphs based on the graph the passed-in node belongs to, and adding one of each possible parent to the + * specified node, plus for each graph having a new possible parent, generating all possible graphs with new links + * between existing nodes. + * @param node Node to build from + * @param nodeDataStub Stub representing child to add + * @return Generated graphs + */ + def getCopiedGraphsFromAddingParentToAnalogNodeAndLinkingAllPossibleExistingParents( + node: Node[T_NodeDataStub @uV], nodeDataStub: (T_NodeDataStub @uV)): immutable.Vector[Graph[T_NodeDataStub @uV]] = { + val initialGraph = node.addChildToAnalogNodeInCopiedGraph(nodeDataStub).containingGraph var graphs = immutable.Vector[Graph[T_NodeDataStub @uV]](initialGraph) - + val candidateParents = getCandidateExistingParentNodes(node).toSet - - // Get all edge combinations from this childNode to candidates subsets, and add each as a new graph. - candidateParents.subsets(candidateParents.size).foreach(candidateParentsSet => { + + // Get all edge combinations from this childNode to candidates subsets, and add each as a new graph. + candidateParents.subsets(candidateParents.size).foreach(candidateParentsSet => { val newGraph = initialGraph.deepCopy - - candidateParentsSet.foreach(parentToAdd => { - newGraph.allNodes(newGraph.allNodes.size - 1).addLinkToExistingParent(newGraph.allNodes(parentToAdd.nodeIndexInContainingGraph)) - }) - graphs :+= newGraph + + candidateParentsSet.foreach(parentToAdd => { + newGraph.allNodes(newGraph.allNodes.size - 1).addLinkToExistingParent(newGraph.allNodes(parentToAdd.nodeIndexInContainingGraph)) + }) + graphs :+= newGraph }) - - graphs + + graphs } - - /** - * Get all the graphs based on the graph the passed-in node belongs to, and adding one of each possible child to the - * specified node. - * @param node Node to add from - * @return All graphs with one additional child from the passed-in node - */ - def getAllGraphsHavingOneAdditionalChildFromNode(node: Node[T_NodeDataStub @uV]): Seq[Graph[T_NodeDataStub @uV]] = { - var newGraphs = collection.immutable.Vector[Graph[T_NodeDataStub]]() - node.data.dataType.getAllowableChildTypes(node).foreach(allowableChild => { - newGraphs ++= getCopiedGraphsFromAddingChildToAnalogNodeAndLinkingAllPossibleExistingParents(node, allowableChild.asStub) - }) - newGraphs + + /** + * Get all the graphs based on the graph the passed-in node belongs to, and adding one of each possible child to the + * specified node. + * @param node Node to add from + * @return All graphs with one additional child from the passed-in node + */ + def getAllGraphsHavingOneAdditionalChildFromNode(node: Node[T_NodeDataStub @uV]): Seq[Graph[T_NodeDataStub @uV]] = { + var newGraphs = collection.immutable.Vector[Graph[T_NodeDataStub]]() + node.data.dataType.getAllowableChildTypes(node).foreach(allowableChild => { + newGraphs ++= getCopiedGraphsFromAddingChildToAnalogNodeAndLinkingAllPossibleExistingParents(node, allowableChild.asStub) + }) + newGraphs } - - /** - * Get all the graphs based on the graph the passed-in node belongs to, and adding one of each possible parent to the - * specified node. - * @param node Node to add from - * @return All graphs with one additional parent from the passed-in node - */ - def getAllGraphsHavingOneAdditionalParentFromNode(node: Node[T_NodeDataStub @uV]): Seq[Graph[T_NodeDataStub @uV]] = { - var newGraphs = collection.immutable.Vector[Graph[T_NodeDataStub]]() - node.data.dataType.getAllowableParentTypes(node).foreach(allowableChild => { - newGraphs ++= getCopiedGraphsFromAddingParentToAnalogNodeAndLinkingAllPossibleExistingParents(node, allowableChild.asStub) - }) - newGraphs + + /** + * Get all the graphs based on the graph the passed-in node belongs to, and adding one of each possible parent to the + * specified node. + * @param node Node to add from + * @return All graphs with one additional parent from the passed-in node + */ + def getAllGraphsHavingOneAdditionalParentFromNode(node: Node[T_NodeDataStub @uV]): Seq[Graph[T_NodeDataStub @uV]] = { + var newGraphs = collection.immutable.Vector[Graph[T_NodeDataStub]]() + node.data.dataType.getAllowableParentTypes(node).foreach(allowableChild => { + newGraphs ++= getCopiedGraphsFromAddingParentToAnalogNodeAndLinkingAllPossibleExistingParents(node, allowableChild.asStub) + }) + newGraphs } - - /** - * Get all the graphs having one additional node. - * @param graph Grpah to build from - * @return All graphs with one additional link - */ - def getAllGraphsHavingOneAdditionalLink(graph: Graph[T_NodeDataStub @uV]): immutable.Vector[Graph[T_NodeDataStub @uV]] = { + + /** + * Get all the graphs having one additional node. + * @param graph Grpah to build from + * @return All graphs with one additional link + */ + def getAllGraphsHavingOneAdditionalLink(graph: Graph[T_NodeDataStub @uV]): immutable.Vector[Graph[T_NodeDataStub @uV]] = { var newGraphs = immutable.Vector[Graph[T_NodeDataStub @uV]]() - - graph.allNodes.foreach(node => { - newGraphs ++= getAllGraphsHavingOneAdditionalChildFromNode(node) + + graph.allNodes.foreach(node => { + newGraphs ++= getAllGraphsHavingOneAdditionalChildFromNode(node) newGraphs ++= getAllGraphsHavingOneAdditionalParentFromNode(node) - - // Every time you add a new childNode, whether parent or child, also add all structure combinations with the same - // nodes but additional edges from the added childNode. - // e.g., The graph after adding the childNode. - // The graph after adding the childNode + linking to 1 existing parent. - // The graph after adding the childNode + linking to 2 existing parents. - // For all possible links having the newly added childNode as a child. + + // Every time you add a new childNode, whether parent or child, also add all structure combinations with the same + // nodes but additional edges from the added childNode. + // e.g., The graph after adding the childNode. + // The graph after adding the childNode + linking to 1 existing parent. + // The graph after adding the childNode + linking to 2 existing parents. + // For all possible links having the newly added childNode as a child. }) - - newGraphs + + newGraphs } - - /** - * For each graph, get all the graphs having one additional node. - * @param graphs Graphs to build from - * @return All graphs with one additional link - */ - def getAllGraphsHavingOneAdditionalLink(graphs: immutable.Vector[Graph[T_NodeDataStub @uV]]): immutable.Vector[Graph[T_NodeDataStub @uV]] = { + + /** + * For each graph, get all the graphs having one additional node. + * @param graphs Graphs to build from + * @return All graphs with one additional link + */ + def getAllGraphsHavingOneAdditionalLink(graphs: immutable.Vector[Graph[T_NodeDataStub @uV]]): immutable.Vector[Graph[T_NodeDataStub @uV]] = { var newGraphs = immutable.Vector[Graph[T_NodeDataStub @uV]]() - + graphs.foreach(graph => newGraphs ++= getAllGraphsHavingOneAdditionalLink(graph)) - - newGraphs - } + + newGraphs + } } diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/Helpers/CharHelper.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/Helpers/CharHelper.scala index b75f1db4..3bc4cdce 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/Helpers/CharHelper.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/Helpers/CharHelper.scala @@ -1,67 +1,67 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.Helpers - -/** - * Helper methods for Char - */ -object CharHelper { - /** - * A-Z a-z - */ + +/** + * Helper methods for Char + */ +object CharHelper { + /** + * A-Z a-z + */ val alphabeticChars = ('a' to 'z') ++ ('A' to 'Z') - - /** - * A-Z a-z 0-9 - _ - */ + + /** + * A-Z a-z 0-9 - _ + */ val alphanumericChars = ('a' to 'z') ++ ('A' to 'Z') ++ ('0' to '9') ++ ('_' to '_') - - /** - * a-f 0-9 - */ + + /** + * a-f 0-9 + */ val hexCharsLowercase = ('a' to 'f') ++ ('0' to '9') - - /** - * A-F 0-9 - */ + + /** + * A-F 0-9 + */ val hexCharsUppercase = ('A' to 'F') ++ ('0' to '9') - - /** - * a-f A-F 0-9 - */ + + /** + * a-f A-F 0-9 + */ val hexCharsAll = ('A' to 'F') ++ ('a' to 'f') ++ ('0' to '9') - - /** - * 8, 9, a, b - */ + + /** + * 8, 9, a, b + */ val hexCharsBetween8AndB = ('8' to '9') ++ ('a' to 'b') - - /** - * 0-9 - */ + + /** + * 0-9 + */ val numericCharacters = ('0' to '9') - - implicit class CharExtensions(val char: Char) extends AnyVal { - def isHexadecimal: Boolean = { - hexCharsAll.contains(char) + + implicit class CharExtensions(val char: Char) extends AnyVal { + def isHexadecimal: Boolean = { + hexCharsAll.contains(char) + } + + def isNumeric: Boolean = { + numericCharacters.contains(char) } - - def isNumeric: Boolean = { - numericCharacters.contains(char) - } - } + } } diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/Helpers/CloningHelper.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/Helpers/CloningHelper.scala index ea52062b..222fd88b 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/Helpers/CloningHelper.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/Helpers/CloningHelper.scala @@ -1,43 +1,43 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.Helpers - + import com.rits.cloning.Cloner - -/** - * Implicit methods for object cloning - */ -object CloningHelper { - // Uses third-party tool + +/** + * Implicit methods for object cloning + */ +object CloningHelper { + // Uses third-party tool private val cloner = new Cloner() - + implicit class ObjectCloning[T](val cloneableObject: T) extends AnyVal { - - /** - * Performs a deep clone of the specified object, using a third-party library utilizing Java reflection. - * Avoid using if possible -- it's better-performing if you're able to implement your own method to copy an - * object, or copy using Scala's built in copy if utilizing a case class. - * @return Deep clone of object - */ - def deepClone(classesNotToClone: Set[Class[_]] = Set()): T = { - classesNotToClone.foreach(classNotToClone => { - cloner.dontClone(classNotToClone) - }) - cloner.deepClone(cloneableObject) - } - } + + /** + * Performs a deep clone of the specified object, using a third-party library utilizing Java reflection. + * Avoid using if possible -- it's better-performing if you're able to implement your own method to copy an + * object, or copy using Scala's built in copy if utilizing a case class. + * @return Deep clone of object + */ + def deepClone(classesNotToClone: Set[Class[_]] = Set()): T = { + classesNotToClone.foreach(classNotToClone => { + cloner.dontClone(classNotToClone) + }) + cloner.deepClone(cloneableObject) + } + } } diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/Helpers/DotHelper.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/Helpers/DotHelper.scala index 516a87c9..4f959520 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/Helpers/DotHelper.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/Helpers/DotHelper.scala @@ -1,45 +1,45 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.Helpers - + import scala.beans.BooleanBeanProperty - -/** - * Helper methods for GraphViz DOT file operations - */ -object DotHelper { - @BooleanBeanProperty + +/** + * Helper methods for GraphViz DOT file operations + */ +object DotHelper { + @BooleanBeanProperty var anyFailures = false - - /** - * Requires dot.exe to be in PATH -- else will try to run, fail, and log the error and then continue. - * Preconditions: dot.exe must be installed in PATH (open-source GraphViz installer will do this), else - * it will log a failure and continue. - * @param dotFilePath Local path of DOT file to write as PNG. - */ - def writeDotFileAsPng(dotFilePath: String): Unit = { - if (!anyFailures) { - try { - Runtime.getRuntime.exec( s"""dot.exe -Tpng "${dotFilePath}" -O""") - } catch { - case e: java.io.IOException => - DotHelper.anyFailures = true - println(s"Error running dot.exe: ${e.getMessage}") // scalastyle:ignore - } - } - } + + /** + * Requires dot.exe to be in PATH -- else will try to run, fail, and log the error and then continue. + * Preconditions: dot.exe must be installed in PATH (open-source GraphViz installer will do this), else + * it will log a failure and continue. + * @param dotFilePath Local path of DOT file to write as PNG. + */ + def writeDotFileAsPng(dotFilePath: String): Unit = { + if (!anyFailures) { + try { + Runtime.getRuntime.exec( s"""dot.exe -Tpng "${dotFilePath}" -O""") + } catch { + case e: java.io.IOException => + DotHelper.anyFailures = true + println(s"Error running dot.exe: ${e.getMessage}") // scalastyle:ignore + } + } + } } diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/Helpers/NumericHelper.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/Helpers/NumericHelper.scala index c54d2d09..08f850b7 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/Helpers/NumericHelper.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/Helpers/NumericHelper.scala @@ -1,38 +1,38 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.Helpers - -/** - * Numeric helper methods - */ -object NumericHelper { - /** - * Take a 48-bit number and a 16-bit number and concatenate them together as a Long. - * @param num1 48-bit number - * @param num2 16-bit number - * @return Long composed of the two passed-in numbers - */ - def concatenateTwoNumbers48BitAnd16Bit(num1: Long, num2: Short): Long = { + +/** + * Numeric helper methods + */ +object NumericHelper { + /** + * Take a 48-bit number and a 16-bit number and concatenate them together as a Long. + * @param num1 48-bit number + * @param num2 16-bit number + * @return Long composed of the two passed-in numbers + */ + def concatenateTwoNumbers48BitAnd16Bit(num1: Long, num2: Short): Long = { require(num1 >= 0L && num1 < 281474976710656L, s"num1 is $num1") // Max 2^48 - 1 - - // We'd feel pretty dumb ORing against a negative number, - // so make this basically an unsigned short (0 to 2^16 - 1) + + // We'd feel pretty dumb ORing against a negative number, + // so make this basically an unsigned short (0 to 2^16 - 1) val modifiedNum2 = num2 + 32768 - - num1 << 16 | modifiedNum2 - } + + num1 << 16 | modifiedNum2 + } } diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/Helpers/RandomHelper.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/Helpers/RandomHelper.scala index f946aa23..4d7e2525 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/Helpers/RandomHelper.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/Helpers/RandomHelper.scala @@ -1,372 +1,372 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.Helpers - -import org.apache.commons.math3.distribution.GammaDistribution + +import org.apache.commons.math3.distribution.GammaDistribution import org.apache.commons.math3.random.JDKRandomGenerator - -import scala.beans.BeanProperty + +import scala.beans.BeanProperty import scala.util.Random - -/** - * Configurable randomizers managed per thread, including separate randomizers based on two different levels -- - * things that should change less often (the information in the data) and things that should change more often - * (the unique IDs that key the data). - */ -object RandomHelper { - /** - * Implicit methods for a random generator - * @param random Random number generator - */ - implicit class RandomExtensions(val random: Random) extends AnyVal { - /** - * Get next long between 0 (inclusive) and max (exclusive) - * @return Long >= 0 and < max - * @param maxSizeExclusive Max number (exclusive) - */ - def nextLong(maxSizeExclusive: Long): Long = { - var bits: Long = 0L - var result: Long = 0L - do { - bits = (random.nextLong << 1) >>> 1 - result = bits % maxSizeExclusive - } while (bits - result + (maxSizeExclusive - 1) < 0L) - result + +/** + * Configurable randomizers managed per thread, including separate randomizers based on two different levels -- + * things that should change less often (the information in the data) and things that should change more often + * (the unique IDs that key the data). + */ +object RandomHelper { + /** + * Implicit methods for a random generator + * @param random Random number generator + */ + implicit class RandomExtensions(val random: Random) extends AnyVal { + /** + * Get next long between 0 (inclusive) and max (exclusive) + * @return Long >= 0 and < max + * @param maxSizeExclusive Max number (exclusive) + */ + def nextLong(maxSizeExclusive: Long): Long = { + var bits: Long = 0L + var result: Long = 0L + do { + bits = (random.nextLong << 1) >>> 1 + result = bits % maxSizeExclusive + } while (bits - result + (maxSizeExclusive - 1) < 0L) + result } - - /** - * Get the next Long with specified minimum size (inclusive) - * and specified maximum size (exclusive). - * @param minSizeInclusive Min size (inclusive), >= 0 - * @param maxSizeExclusive Max size (exclusive) - * @return Random long in range [min, max) - */ - def nextLong(minSizeInclusive: Long, maxSizeExclusive: Long) : Long = { - require(minSizeInclusive >= 0) + + /** + * Get the next Long with specified minimum size (inclusive) + * and specified maximum size (exclusive). + * @param minSizeInclusive Min size (inclusive), >= 0 + * @param maxSizeExclusive Max size (exclusive) + * @return Random long in range [min, max) + */ + def nextLong(minSizeInclusive: Long, maxSizeExclusive: Long) : Long = { + require(minSizeInclusive >= 0) require(maxSizeExclusive > minSizeInclusive) - - val scale = maxSizeExclusive - minSizeInclusive - val returnVal = nextLong(scale) + minSizeInclusive - require(returnVal >= 0) - returnVal + + val scale = maxSizeExclusive - minSizeInclusive + val returnVal = nextLong(scale) + minSizeInclusive + require(returnVal >= 0) + returnVal + } + + /** + * Generate a random alphabetic string from allowable characters + * @param length Length of string to generate; acts as max length if minLength is also specified + * @param minLengthMaybe If specified, then length is randomized between minLength and length + * @return Random string containing only alphabetic characters + */ + def randomAlphabeticString(length: Int, minLengthMaybe: Option[Int] = None): String = { + randomStringFromAllowableChars(length, CharHelper.alphabeticChars, minLengthMaybe) + } + /** + * Generate a random alphanumeric string from allowable characters + * @param length Length of string to generate; acts as max length if minLength is also specified + * @param minLengthMaybe If specified, then length is randomized between minLength and length + * @return Random string containing only alphanumeric characters + */ + def randomAlphanumericString(length: Int, minLengthMaybe: Option[Int] = None): String = { + randomStringFromAllowableChars(length, CharHelper.alphanumericChars, minLengthMaybe) } - - /** - * Generate a random alphabetic string from allowable characters - * @param length Length of string to generate; acts as max length if minLength is also specified - * @param minLengthMaybe If specified, then length is randomized between minLength and length - * @return Random string containing only alphabetic characters - */ - def randomAlphabeticString(length: Int, minLengthMaybe: Option[Int] = None): String = { - randomStringFromAllowableChars(length, CharHelper.alphabeticChars, minLengthMaybe) - } - /** - * Generate a random alphanumeric string from allowable characters - * @param length Length of string to generate; acts as max length if minLength is also specified - * @param minLengthMaybe If specified, then length is randomized between minLength and length - * @return Random string containing only alphanumeric characters - */ - def randomAlphanumericString(length: Int, minLengthMaybe: Option[Int] = None): String = { - randomStringFromAllowableChars(length, CharHelper.alphanumericChars, minLengthMaybe) - } - /** - * Generate a random hexadecimal string from allowable characters - * @param length Length of string to generate; acts as max length if minLength is also specified - * @param minLengthMaybe If specified, then length is randomized between minLength and length - * @return Random hexadecimal string (lowercase) - */ - def randomHexString(length: Int, minLengthMaybe: Option[Int] = None): String = { - randomStringFromAllowableChars(length, CharHelper.hexCharsLowercase, minLengthMaybe) + /** + * Generate a random hexadecimal string from allowable characters + * @param length Length of string to generate; acts as max length if minLength is also specified + * @param minLengthMaybe If specified, then length is randomized between minLength and length + * @return Random hexadecimal string (lowercase) + */ + def randomHexString(length: Int, minLengthMaybe: Option[Int] = None): String = { + randomStringFromAllowableChars(length, CharHelper.hexCharsLowercase, minLengthMaybe) } - - /** - * Get random string of maximum length including allowable characters 8, 9, a, and b - * @return Random hex char from 8 to b (lowercase) - */ - def randomHexCharFrom8ToB: Char = { - val randomIndex = random.nextInt(CharHelper.hexCharsBetween8AndB.length) - CharHelper.hexCharsBetween8AndB(randomIndex) + + /** + * Get random string of maximum length including allowable characters 8, 9, a, and b + * @return Random hex char from 8 to b (lowercase) + */ + def randomHexCharFrom8ToB: Char = { + val randomIndex = random.nextInt(CharHelper.hexCharsBetween8AndB.length) + CharHelper.hexCharsBetween8AndB(randomIndex) } - - /** - * Get a random int between two numbers, inclusive - * @param min Minimum, inclusive - * @param max Maximum, inclusive - * @return Random int in range - */ - def randomIntInRange(min: Int, max: Int): Int = { - min + random.nextInt(max - min + 1) + + /** + * Get a random int between two numbers, inclusive + * @param min Minimum, inclusive + * @param max Maximum, inclusive + * @return Random int in range + */ + def randomIntInRange(min: Int, max: Int): Int = { + min + random.nextInt(max - min + 1) } - - /** - * Generate a random string from allowable characters - * @param length Length of string to generate; acts as max length if minLength is also specified - * @param chars Allowable characters - * @param minLengthMaybe If specified, then length is randomized between minLength and length - * @return Random string containing only the allowed characters - */ - def randomStringFromAllowableChars(length: Int, chars: Seq[Char], minLengthMaybe: Option[Int] = None): String = { - val adjustedLength = - if (minLengthMaybe.isEmpty) { - length - } - else { - randomIntInRange(minLengthMaybe.get, length) + + /** + * Generate a random string from allowable characters + * @param length Length of string to generate; acts as max length if minLength is also specified + * @param chars Allowable characters + * @param minLengthMaybe If specified, then length is randomized between minLength and length + * @return Random string containing only the allowed characters + */ + def randomStringFromAllowableChars(length: Int, chars: Seq[Char], minLengthMaybe: Option[Int] = None): String = { + val adjustedLength = + if (minLengthMaybe.isEmpty) { + length } - - if (adjustedLength == 0) { - "" - } else { - val sb = new StringBuilder - for (i <- 1 to adjustedLength) { - val randomIndex = random.nextInt(chars.length) - sb.append(chars(randomIndex)) - } - sb.toString() - } + else { + randomIntInRange(minLengthMaybe.get, length) + } + + if (adjustedLength == 0) { + "" + } else { + val sb = new StringBuilder + for (i <- 1 to adjustedLength) { + val randomIndex = random.nextInt(chars.length) + sb.append(chars(randomIndex)) + } + sb.toString() + } + } + + /** + * Returns true (percentage * 100)% of the time, else false + * @param percentage A number between 0 and 1.0 (or else, if below 0 it will always evaluate false, and >= 1 will always evaluate true) + * @return Whether or not probability passed + */ + def evaluateProbability(percentage: Double): Boolean = { + random.nextDouble <= percentage } - - /** - * Returns true (percentage * 100)% of the time, else false - * @param percentage A number between 0 and 1.0 (or else, if below 0 it will always evaluate false, and >= 1 will always evaluate true) - * @return Whether or not probability passed - */ - def evaluateProbability(percentage: Double): Boolean = { - random.nextDouble <= percentage + + /** + * Same behavior as java.util.UUID.randomUUID(). + * @return Random UUID + */ + def randomUuid: String = { + // xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx where x is any hexadecimal digit and y is one of 8, 9, A, or B (e.g., f47ac10b-58cc-4372-a567-0e02b2c3d479) + s"${randomHexString(8)}-${randomHexString(4)}-4${randomHexString(3) + }-${randomHexCharFrom8ToB}${randomHexString(3)}-${randomHexString(12)}" } - - /** - * Same behavior as java.util.UUID.randomUUID(). - * @return Random UUID - */ - def randomUuid: String = { - // xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx where x is any hexadecimal digit and y is one of 8, 9, A, or B (e.g., f47ac10b-58cc-4372-a567-0e02b2c3d479) - s"${randomHexString(8)}-${randomHexString(4)}-4${randomHexString(3) - }-${randomHexCharFrom8ToB}${randomHexString(3)}-${randomHexString(12)}" - } } - - private val threadToRandomSeedsMap = new collection.parallel.mutable.ParHashMap[Thread, (scala.util.Random, scala.util.Random)]() - /** - * Generates random seeds for creating randomizers for data that doesn't need to be globally unique. - */ + + private val threadToRandomSeedsMap = new collection.parallel.mutable.ParHashMap[Thread, (scala.util.Random, scala.util.Random)]() + /** + * Generates random seeds for creating randomizers for data that doesn't need to be globally unique. + */ @BeanProperty var randomSeedRandomizer = new util.Random() - - /** - * Initial part of random seed to use for randomizers for data that needs to be globally unique. - */ + + /** + * Initial part of random seed to use for randomizers for data that needs to be globally unique. + */ @BeanProperty var randomSeedBaseForGloballyUniqueIds: Short = (util.Random.nextInt(65535) - 32767).toShort - - /** - * Given a unique value, combines it with configurable random seeds and creates randomizers for this thread. - * @param uniqueValue A long limited to 48 unsigned bits (method will fail if greater) - * @param randomSeedMaybe Random seed for non-globally unique values (typical use case, this seed should be same across runs) - * @param globalRandomSeedBaseMaybe Random seed for non-globally unique values (typical use case, this seed should be same across runs) - * @return 2-Tuple of randomizers for this thread - */ - def setUpRandomSeedsForCurrentThreadBasedOnUniqueValue(uniqueValue: Long, randomSeedMaybe: Option[Long] = None - , globalRandomSeedBaseMaybe: Option[Short] = None): (Random, Random) = { - val currentThread = Thread.currentThread() - val localRandomSeed = if (randomSeedMaybe.nonEmpty) randomSeedMaybe.get else randomSeedRandomizer.nextLong() - val localGlobalRandomSeedBase = if (globalRandomSeedBaseMaybe.nonEmpty) globalRandomSeedBaseMaybe.get else randomSeedBaseForGloballyUniqueIds - val seedAndGlobalSeed = (new scala.util.Random(localRandomSeed), - new scala.util.Random(NumericHelper.concatenateTwoNumbers48BitAnd16Bit(uniqueValue, localGlobalRandomSeedBase))) - threadToRandomSeedsMap += - ((currentThread, - seedAndGlobalSeed)) - println(s"Setting up random seeds for thread ${currentThread.getId // scalastyle:ignore - }: Seed is ${localRandomSeed}. Initial random val is ${seedAndGlobalSeed._1.nextInt()}.") - seedAndGlobalSeed + + /** + * Given a unique value, combines it with configurable random seeds and creates randomizers for this thread. + * @param uniqueValue A long limited to 48 unsigned bits (method will fail if greater) + * @param randomSeedMaybe Random seed for non-globally unique values (typical use case, this seed should be same across runs) + * @param globalRandomSeedBaseMaybe Random seed for non-globally unique values (typical use case, this seed should be same across runs) + * @return 2-Tuple of randomizers for this thread + */ + def setUpRandomSeedsForCurrentThreadBasedOnUniqueValue(uniqueValue: Long, randomSeedMaybe: Option[Long] = None + , globalRandomSeedBaseMaybe: Option[Short] = None): (Random, Random) = { + val currentThread = Thread.currentThread() + val localRandomSeed = if (randomSeedMaybe.nonEmpty) randomSeedMaybe.get else randomSeedRandomizer.nextLong() + val localGlobalRandomSeedBase = if (globalRandomSeedBaseMaybe.nonEmpty) globalRandomSeedBaseMaybe.get else randomSeedBaseForGloballyUniqueIds + val seedAndGlobalSeed = (new scala.util.Random(localRandomSeed), + new scala.util.Random(NumericHelper.concatenateTwoNumbers48BitAnd16Bit(uniqueValue, localGlobalRandomSeedBase))) + threadToRandomSeedsMap += + ((currentThread, + seedAndGlobalSeed)) + println(s"Setting up random seeds for thread ${currentThread.getId // scalastyle:ignore + }: Seed is ${localRandomSeed}. Initial random val is ${seedAndGlobalSeed._1.nextInt()}.") + seedAndGlobalSeed } - - /** - * Remove the randomizers for the current thread. - */ - def removeEntryForCurrentThread(): Unit = { - val currentThread = Thread.currentThread() - println(s"Removing thread ${currentThread.getId}. Final random val is ${threadToRandomSeedsMap(currentThread)._1.nextInt()}.") // scalastyle:ignore - threadToRandomSeedsMap.remove(currentThread) + + /** + * Remove the randomizers for the current thread. + */ + def removeEntryForCurrentThread(): Unit = { + val currentThread = Thread.currentThread() + println(s"Removing thread ${currentThread.getId}. Final random val is ${threadToRandomSeedsMap(currentThread)._1.nextInt()}.") // scalastyle:ignore + threadToRandomSeedsMap.remove(currentThread) } - - /** - * Get the configured-seed randomizer for the current thread. - * @return Randomizer for values that are not intended to be globally unique (e.g., across multiple application runs) - */ - def randWithConfiguredSeed: Random = { - val currentThread = Thread.currentThread() - if (!threadToRandomSeedsMap.contains(currentThread)) { - // In current use case this only happens on the main thread, but for other uses cases it will be default behavior. - setUpRandomSeedsForCurrentThreadBasedOnUniqueValue(0)._1 - } else { - threadToRandomSeedsMap(currentThread)._1 - } + + /** + * Get the configured-seed randomizer for the current thread. + * @return Randomizer for values that are not intended to be globally unique (e.g., across multiple application runs) + */ + def randWithConfiguredSeed: Random = { + val currentThread = Thread.currentThread() + if (!threadToRandomSeedsMap.contains(currentThread)) { + // In current use case this only happens on the main thread, but for other uses cases it will be default behavior. + setUpRandomSeedsForCurrentThreadBasedOnUniqueValue(0)._1 + } else { + threadToRandomSeedsMap(currentThread)._1 + } + } + + /** + * Get the configured-seed globally unique randomizer for the current thread. + * @return Randomizer for values that are intended to be globally unique (e.g., across multiple application runs) + */ + def randForGloballyUniqueIds: Random = { + val currentThread = Thread.currentThread() + if (!threadToRandomSeedsMap.contains(currentThread)) { + // In current use case this only happens on the main thread, but for other uses cases it will be default behavior. + setUpRandomSeedsForCurrentThreadBasedOnUniqueValue(0)._2 + } else { + threadToRandomSeedsMap(currentThread)._2 + } } - - /** - * Get the configured-seed globally unique randomizer for the current thread. - * @return Randomizer for values that are intended to be globally unique (e.g., across multiple application runs) - */ - def randForGloballyUniqueIds: Random = { - val currentThread = Thread.currentThread() - if (!threadToRandomSeedsMap.contains(currentThread)) { - // In current use case this only happens on the main thread, but for other uses cases it will be default behavior. - setUpRandomSeedsForCurrentThreadBasedOnUniqueValue(0)._2 - } else { - threadToRandomSeedsMap(currentThread)._2 - } + + /** + * Gets the specified randomizer + * @param isGloballyRandom Whether or not to get the globally unique randomizer + * @return Randomizer + */ + def getRandomizer(isGloballyRandom: Boolean = false): Random = { + if (isGloballyRandom) { + randForGloballyUniqueIds + } else { + randWithConfiguredSeed + } + } + + /** + * Generate a random alphabetic string from allowable characters + * @param length Length of string to generate; acts as max length if minLength is also specified + * @param isGloballyRandom Whether or not to use global randomizer + * @param minLengthMaybe If specified, then length is randomized between minLength and length + * @return Random string containing only alphabetic characters + */ + def randomAlphabeticString(length: Int, isGloballyRandom: Boolean = false, minLengthMaybe: Option[Int] = None): String = { + getRandomizer(isGloballyRandom).randomAlphabeticString(length, minLengthMaybe) } - - /** - * Gets the specified randomizer - * @param isGloballyRandom Whether or not to get the globally unique randomizer - * @return Randomizer - */ - def getRandomizer(isGloballyRandom: Boolean = false): Random = { - if (isGloballyRandom) { - randForGloballyUniqueIds - } else { - randWithConfiguredSeed - } + /** + * Generate a random alphanumeric string from allowable characters + * @param length Length of string to generate; acts as max length if minLength is also specified + * @param isGloballyRandom Whether or not to use global randomizer + * @param minLengthMaybe If specified, then length is randomized between minLength and length + * @return Random string containing only alphanumeric characters + */ + def randomAlphanumericString(length: Int, isGloballyRandom: Boolean = false, minLengthMaybe: Option[Int] = None): String = { + getRandomizer(isGloballyRandom).randomAlphanumericString(length, minLengthMaybe) } - - /** - * Generate a random alphabetic string from allowable characters - * @param length Length of string to generate; acts as max length if minLength is also specified - * @param isGloballyRandom Whether or not to use global randomizer - * @param minLengthMaybe If specified, then length is randomized between minLength and length - * @return Random string containing only alphabetic characters - */ - def randomAlphabeticString(length: Int, isGloballyRandom: Boolean = false, minLengthMaybe: Option[Int] = None): String = { - getRandomizer(isGloballyRandom).randomAlphabeticString(length, minLengthMaybe) - } - /** - * Generate a random alphanumeric string from allowable characters - * @param length Length of string to generate; acts as max length if minLength is also specified - * @param isGloballyRandom Whether or not to use global randomizer - * @param minLengthMaybe If specified, then length is randomized between minLength and length - * @return Random string containing only alphanumeric characters - */ - def randomAlphanumericString(length: Int, isGloballyRandom: Boolean = false, minLengthMaybe: Option[Int] = None): String = { - getRandomizer(isGloballyRandom).randomAlphanumericString(length, minLengthMaybe) - } - /** - * Generate a random hexadecimal string from allowable characters - * @param length Length of string to generate; acts as max length if minLength is also specified - * @param isGloballyRandom Whether or not to use global randomizer - * @param minLengthMaybe If specified, then length is randomized between minLength and length - * @return Random hexadecimal string (lowercase) - */ - def randomHexString(length: Int, isGloballyRandom: Boolean = false, minLengthMaybe: Option[Int] = None): String = { - getRandomizer(isGloballyRandom).randomHexString(length, minLengthMaybe) + /** + * Generate a random hexadecimal string from allowable characters + * @param length Length of string to generate; acts as max length if minLength is also specified + * @param isGloballyRandom Whether or not to use global randomizer + * @param minLengthMaybe If specified, then length is randomized between minLength and length + * @return Random hexadecimal string (lowercase) + */ + def randomHexString(length: Int, isGloballyRandom: Boolean = false, minLengthMaybe: Option[Int] = None): String = { + getRandomizer(isGloballyRandom).randomHexString(length, minLengthMaybe) } - - /** - * Get random string of maximum length including allowable characters 8, 9, a, and b - * @param isGloballyRandom Whether or not to use randomizer for globally unique values - * @return Random hex char from 8 to b (lowercase) - */ - def randomHexCharFrom8ToB(isGloballyRandom: Boolean = false): Char = { - getRandomizer(isGloballyRandom).randomHexCharFrom8ToB + + /** + * Get random string of maximum length including allowable characters 8, 9, a, and b + * @param isGloballyRandom Whether or not to use randomizer for globally unique values + * @return Random hex char from 8 to b (lowercase) + */ + def randomHexCharFrom8ToB(isGloballyRandom: Boolean = false): Char = { + getRandomizer(isGloballyRandom).randomHexCharFrom8ToB } - - /** - * Get a random int between two numbers, inclusive - * @param min Minimum, inclusive - * @param max Maximum, inclusive - * @param isGloballyRandom Whether or not to use randomizer for globally unique values - * @return Random int in range - */ - def randomIntInRange(min: Int, max: Int, isGloballyRandom: Boolean = false): Int = { - getRandomizer(isGloballyRandom).randomIntInRange(min, max) + + /** + * Get a random int between two numbers, inclusive + * @param min Minimum, inclusive + * @param max Maximum, inclusive + * @param isGloballyRandom Whether or not to use randomizer for globally unique values + * @return Random int in range + */ + def randomIntInRange(min: Int, max: Int, isGloballyRandom: Boolean = false): Int = { + getRandomizer(isGloballyRandom).randomIntInRange(min, max) } - - /** - * Generate a random string from allowable characters - * @param length Length of string to generate; acts as max length if minLength is also specified - * @param chars Allowable characters - * @param isGloballyRandom Whether or not to use global randomizer - * @param minLengthMaybe If specified, then length is randomized between minLength and length - * @return Random string containing only the allowed characters - */ - def randomStringFromAllowableChars(length: Int, chars: Seq[Char], isGloballyRandom: Boolean = false, minLengthMaybe: Option[Int] = None): String = { - getRandomizer(isGloballyRandom).randomStringFromAllowableChars(length, chars, minLengthMaybe) + + /** + * Generate a random string from allowable characters + * @param length Length of string to generate; acts as max length if minLength is also specified + * @param chars Allowable characters + * @param isGloballyRandom Whether or not to use global randomizer + * @param minLengthMaybe If specified, then length is randomized between minLength and length + * @return Random string containing only the allowed characters + */ + def randomStringFromAllowableChars(length: Int, chars: Seq[Char], isGloballyRandom: Boolean = false, minLengthMaybe: Option[Int] = None): String = { + getRandomizer(isGloballyRandom).randomStringFromAllowableChars(length, chars, minLengthMaybe) } - - /** - * Returns true (percentage * 100)% of the time, else false - * @param percentage A number between 0 and 1.0 (or else, if below 0 it will always evaluate false, and >= 1 will always evaluate true) - * @return Whether or not probability passed - */ - def evaluateProbability(percentage: Double): Boolean = { - getRandomizer(false).evaluateProbability(percentage) + + /** + * Returns true (percentage * 100)% of the time, else false + * @param percentage A number between 0 and 1.0 (or else, if below 0 it will always evaluate false, and >= 1 will always evaluate true) + * @return Whether or not probability passed + */ + def evaluateProbability(percentage: Double): Boolean = { + getRandomizer(false).evaluateProbability(percentage) } - - /** - * Get the next Long from the configured-seed randomizer for the current thread, with specified maximum size (exclusive). - * @param maxSizeExclusive Max size (exclusive) - * @return Random long in range [0, maxsize) - */ - def nextLong(maxSizeExclusive: Long): Long = { - getRandomizer(false).nextLong(maxSizeExclusive) + + /** + * Get the next Long from the configured-seed randomizer for the current thread, with specified maximum size (exclusive). + * @param maxSizeExclusive Max size (exclusive) + * @return Random long in range [0, maxsize) + */ + def nextLong(maxSizeExclusive: Long): Long = { + getRandomizer(false).nextLong(maxSizeExclusive) } - - /** - * Get the next Long from the configured-seed randomizer for the current thread, with specified minimum size (inclusive) - * and specified maximum size (exclusive). - * @param minSizeInclusive Min size (inclusive), >= 0 - * @param maxSizeExclusive Max size (exclusive) - * @return Random long in range [min, max) - */ - def nextLong(minSizeInclusive: Long, maxSizeExclusive: Long) : Long = { - getRandomizer(false).nextLong(minSizeInclusive, maxSizeExclusive) + + /** + * Get the next Long from the configured-seed randomizer for the current thread, with specified minimum size (inclusive) + * and specified maximum size (exclusive). + * @param minSizeInclusive Min size (inclusive), >= 0 + * @param maxSizeExclusive Max size (exclusive) + * @return Random long in range [min, max) + */ + def nextLong(minSizeInclusive: Long, maxSizeExclusive: Long) : Long = { + getRandomizer(false).nextLong(minSizeInclusive, maxSizeExclusive) } - - /** - * Same behavior as java.util.UUID.randomUUID() except uses a random generator with configurable seed. - * @param isGloballyRandom Whether or not to use the globally random seeded genernator or the regular one - * @return Random UUID - */ - def randomUuid(isGloballyRandom: Boolean = false): String = { - getRandomizer(isGloballyRandom).randomUuid + + /** + * Same behavior as java.util.UUID.randomUUID() except uses a random generator with configurable seed. + * @param isGloballyRandom Whether or not to use the globally random seeded genernator or the regular one + * @return Random UUID + */ + def randomUuid(isGloballyRandom: Boolean = false): String = { + getRandomizer(isGloballyRandom).randomUuid } - - /** - * Gamma generators for main thread, keyed by random and globally random seeds. - */ + + /** + * Gamma generators for main thread, keyed by random and globally random seeds. + */ private val gammaGenerators = new collection.mutable.HashMap[(Double, Double), GammaDistribution]() - - /** - * Get the next integer from a gamma distribution of the specified shape and scale, with optional random seed. - * Not yet thread-aware because so far we have only needed to use this from the main thread. - * @param gammaDistShape Gamma distribution shape - * @param gammaDistScale Gamma distribution scala - * @param randomSeedOption A random seed to use, or None (default) - * @return Next int from gamma distribution - */ - def getNextIntFromGammaDistribution(gammaDistShape: Double, gammaDistScale: Double, randomSeedOption: Option[Long] = None): Int = { - if (!gammaGenerators.contains((gammaDistShape, gammaDistScale))) { - val localRandomSeed = if (randomSeedOption.nonEmpty) randomSeedOption.get else randomSeedRandomizer.nextLong() - gammaGenerators.put((gammaDistShape, gammaDistScale), new GammaDistribution( - new JDKRandomGenerator() { setSeed(localRandomSeed)}, gammaDistShape, gammaDistScale)) + + /** + * Get the next integer from a gamma distribution of the specified shape and scale, with optional random seed. + * Not yet thread-aware because so far we have only needed to use this from the main thread. + * @param gammaDistShape Gamma distribution shape + * @param gammaDistScale Gamma distribution scala + * @param randomSeedOption A random seed to use, or None (default) + * @return Next int from gamma distribution + */ + def getNextIntFromGammaDistribution(gammaDistShape: Double, gammaDistScale: Double, randomSeedOption: Option[Long] = None): Int = { + if (!gammaGenerators.contains((gammaDistShape, gammaDistScale))) { + val localRandomSeed = if (randomSeedOption.nonEmpty) randomSeedOption.get else randomSeedRandomizer.nextLong() + gammaGenerators.put((gammaDistShape, gammaDistScale), new GammaDistribution( + new JDKRandomGenerator() { setSeed(localRandomSeed)}, gammaDistShape, gammaDistScale)) } - - val gammaGenerator = gammaGenerators.get((gammaDistShape, gammaDistScale)).get + + val gammaGenerator = gammaGenerators.get((gammaDistShape, gammaDistScale)).get val nextValInGamma = gammaGenerator.sample - - math.round(nextValInGamma).toInt - } + + math.round(nextValInGamma).toInt + } } diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/Helpers/RetryHelper.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/Helpers/RetryHelper.scala index 3c6247b5..4ce7e353 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/Helpers/RetryHelper.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/Helpers/RetryHelper.scala @@ -1,62 +1,62 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.Helpers - + import scala.util.control.Exception._ - -// Motivation for this object is described in the following blog posts: -// http://googlyadventures.blogspot.com/2015/05/what-else-i-learned-yesterday.html + +// Motivation for this object is described in the following blog posts: +// http://googlyadventures.blogspot.com/2015/05/what-else-i-learned-yesterday.html // http://googlyadventures.blogspot.com/2015/06/today-i-learned-doing-things-hard-way.html - -/** - * Helper methods to retry code with configurable retry count and exceptions to handle - */ -object RetryHelper { - /** - * Retry any block of code up to a max number of times, optionally specifying the types of exceptions to retry - * and code to run when handling one of the retryable exception types. - * @param maxTries Number of times to try before throwing the exception. - * @param exceptionTypesToRetry Types of exceptions to retry. Defaults to single-element sequence containing classOf[RuntimeException] - * @param codeToRetry Block of code to try - * @param handlingCode Block of code to run if there is a catchable exception - * @tparam T Return type of block of code to try - * @return Return value of block of code to try (else exception will be thrown if it failed all tries) - */ - def retry[T](maxTries: Int, exceptionTypesToRetry: Seq[Class[_ <: Throwable]] = Seq(classOf[RuntimeException])) - (codeToRetry: => T) - (handlingCode: Throwable => Unit = _ => ()): T = { - var result: Option[T] = None - var left = maxTries - while (!result.isDefined) { + +/** + * Helper methods to retry code with configurable retry count and exceptions to handle + */ +object RetryHelper { + /** + * Retry any block of code up to a max number of times, optionally specifying the types of exceptions to retry + * and code to run when handling one of the retryable exception types. + * @param maxTries Number of times to try before throwing the exception. + * @param exceptionTypesToRetry Types of exceptions to retry. Defaults to single-element sequence containing classOf[RuntimeException] + * @param codeToRetry Block of code to try + * @param handlingCode Block of code to run if there is a catchable exception + * @tparam T Return type of block of code to try + * @return Return value of block of code to try (else exception will be thrown if it failed all tries) + */ + def retry[T](maxTries: Int, exceptionTypesToRetry: Seq[Class[_ <: Throwable]] = Seq(classOf[RuntimeException])) + (codeToRetry: => T) + (handlingCode: Throwable => Unit = _ => ()): T = { + var result: Option[T] = None + var left = maxTries + while (!result.isDefined) { left = left - 1 - + // try/catch{case...} doesn't seem to support dynamic exception types, so using handling block instead. - - handling(exceptionTypesToRetry: _*) - .by(ex => { - if (left <= 0) { - throw ex - } else { - handlingCode(ex) - } - }).apply({ - result = Option(codeToRetry) - }) - } - result.get - } + + handling(exceptionTypesToRetry: _*) + .by(ex => { + if (left <= 0) { + throw ex + } else { + handlingCode(ex) + } + }).apply({ + result = Option(codeToRetry) + }) + } + result.get + } } diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/NodeData/DisplayableData.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/NodeData/DisplayableData.scala index 5c0688ad..393b33b4 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/NodeData/DisplayableData.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/NodeData/DisplayableData.scala @@ -1,61 +1,61 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.NodeData - -import java.security.MessageDigest + +import java.security.MessageDigest import javax.xml.bind.DatatypeConverter - + import NodeDataType.NodeDataType - -/** - * Trait used for any data with a displayable ID and optional fields, and with around event type. - * For example, this could be used for an object that can be viewed as an element in a DOT file, but it's not specific to that. - */ -trait DisplayableData { - private var _overrideDisplayableDataId = "" - def overrideDisplayableDataId: String = _overrideDisplayableDataId - def overrideDisplayableDataId_=(value: String): Unit = { - _overrideDisplayableDataId = value - } - def getOverrideDisplayableDataId: String = overrideDisplayableDataId - def defaultDisplayableDataId: String - def getDefaultDisplayableDataId: String = defaultDisplayableDataId - def displayableDataId: String = { // Anything that uniquely identifies a childNode; e.g., 1, 2, 3, or NW_1, NW_2, RT_1 - if (overrideDisplayableDataId.nonEmpty) { - overrideDisplayableDataId - } - else { - defaultDisplayableDataId - } - } - def getDisplayableDataId: String = displayableDataId - def displayableElements: Iterable[String] = Iterable[String](displayableDataId) - def getDisplayableElements: Iterable[String] = displayableElements - def simplifiedDisplayableElements: Iterable[String] = Iterable[String](displayableDataId) - def getSimplifiedDisplayableElements: Iterable[String] = simplifiedDisplayableElements - def dataType: NodeDataType[_, _, _, _] = getDataType + +/** + * Trait used for any data with a displayable ID and optional fields, and with around event type. + * For example, this could be used for an object that can be viewed as an element in a DOT file, but it's not specific to that. + */ +trait DisplayableData { + private var _overrideDisplayableDataId = "" + def overrideDisplayableDataId: String = _overrideDisplayableDataId + def overrideDisplayableDataId_=(value: String): Unit = { + _overrideDisplayableDataId = value + } + def getOverrideDisplayableDataId: String = overrideDisplayableDataId + def defaultDisplayableDataId: String + def getDefaultDisplayableDataId: String = defaultDisplayableDataId + def displayableDataId: String = { // Anything that uniquely identifies a childNode; e.g., 1, 2, 3, or NW_1, NW_2, RT_1 + if (overrideDisplayableDataId.nonEmpty) { + overrideDisplayableDataId + } + else { + defaultDisplayableDataId + } + } + def getDisplayableDataId: String = displayableDataId + def displayableElements: Iterable[String] = Iterable[String](displayableDataId) + def getDisplayableElements: Iterable[String] = displayableElements + def simplifiedDisplayableElements: Iterable[String] = Iterable[String](displayableDataId) + def getSimplifiedDisplayableElements: Iterable[String] = simplifiedDisplayableElements + def dataType: NodeDataType[_, _, _, _] = getDataType def getDataType: NodeDataType[_, _, _, _] - - /** - * Used for testing graph isomorphism. - * @return String uniquely representing this graph's structure - */ - def getStructuralMD5: String = { - val strToMd5 = s"${dataType.name},${displayableElements.mkString(",")}" - DatatypeConverter.printHexBinary(MessageDigest.getInstance("MD5").digest(strToMd5.getBytes("UTF-8"))) - } + + /** + * Used for testing graph isomorphism. + * @return String uniquely representing this graph's structure + */ + def getStructuralMD5: String = { + val strToMd5 = s"${dataType.name},${displayableElements.mkString(",")}" + DatatypeConverter.printHexBinary(MessageDigest.getInstance("MD5").digest(strToMd5.getBytes("UTF-8"))) + } } diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/NodeData/NodeData.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/NodeData/NodeData.scala index 3a29cf7a..1bc2767b 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/NodeData/NodeData.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/NodeData/NodeData.scala @@ -1,38 +1,38 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.NodeData - + import scala.beans.BeanProperty - -/** - * Data that can be stored in a node of a graph - * @param _stubCreatedFromMaybe Optional stub that this data was created from - */ -abstract class NodeData(_stubCreatedFromMaybe: Option[_ <: NodeDataStub[_, _, _, _]] = None) extends DisplayableData { - def this() = { - this(None) + +/** + * Data that can be stored in a node of a graph + * @param _stubCreatedFromMaybe Optional stub that this data was created from + */ +abstract class NodeData(_stubCreatedFromMaybe: Option[_ <: NodeDataStub[_, _, _, _]] = None) extends DisplayableData { + def this() = { + this(None) } - - /** - * Custom properties -- typically defined from stub's metadata. - */ - @BeanProperty + + /** + * Custom properties -- typically defined from stub's metadata. + */ + @BeanProperty var customPropertyMap = collection.mutable.HashMap[String, String]() - - def stubCreatedFromMaybe: Option[_ <: NodeDataStub[_, _, _, _]] = _stubCreatedFromMaybe - def getStubCreatedFromMaybe: Option[_ <: NodeDataStub[_, _, _, _]] = stubCreatedFromMaybe + + def stubCreatedFromMaybe: Option[_ <: NodeDataStub[_, _, _, _]] = _stubCreatedFromMaybe + def getStubCreatedFromMaybe: Option[_ <: NodeDataStub[_, _, _, _]] = stubCreatedFromMaybe } diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/NodeData/NodeDataStub.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/NodeData/NodeDataStub.scala index ab5adc66..3450d940 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/NodeData/NodeDataStub.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/NodeData/NodeDataStub.scala @@ -1,44 +1,44 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.NodeData - -import NodeDataType.NodeDataType + +import NodeDataType.NodeDataType import scala.annotation.unchecked.{uncheckedVariance => uV} - -/** - * Stub of data that can be stored in a node of a graph. - * The idea is the real data we store in a node may be way too complicated, - * so we can use a stub to specify type and any relevant metadata (e.g., derived from a DOT - * file, as in one implementation), and we can have an engine later expand a stub node - * into a full-fledged data node. - * @tparam T_NodeDataType Data type type for this data - * @tparam T_NodeData Data that uses this type. - * @tparam T_NodeDataTypes Data types type for this data - * @tparam T_ThisType This type - */ -abstract case class NodeDataStub[+T_NodeDataType <: NodeDataType[T_NodeData, T_ThisType, T_NodeDataTypes, T_NodeDataType], - +T_NodeData <: NodeData, - +T_NodeDataTypes <: NodeDataTypes[T_NodeData, T_ThisType, T_NodeDataType, T_NodeDataTypes], - +T_ThisType <: NodeDataStub[T_NodeDataType, T_NodeData, T_NodeDataTypes, T_ThisType] - ] protected() extends DisplayableData { - override def dataType(): (T_NodeDataType @uV) = getDataType - def getDataType: (T_NodeDataType @uV) - def setDataType(value: (T_NodeDataType @uV)): Unit - def dataType_=(value: (T_NodeDataType @uV)): Unit = { - setDataType(value) - } + +/** + * Stub of data that can be stored in a node of a graph. + * The idea is the real data we store in a node may be way too complicated, + * so we can use a stub to specify type and any relevant metadata (e.g., derived from a DOT + * file, as in one implementation), and we can have an engine later expand a stub node + * into a full-fledged data node. + * @tparam T_NodeDataType Data type type for this data + * @tparam T_NodeData Data that uses this type. + * @tparam T_NodeDataTypes Data types type for this data + * @tparam T_ThisType This type + */ +abstract case class NodeDataStub[+T_NodeDataType <: NodeDataType[T_NodeData, T_ThisType, T_NodeDataTypes, T_NodeDataType], + +T_NodeData <: NodeData, + +T_NodeDataTypes <: NodeDataTypes[T_NodeData, T_ThisType, T_NodeDataType, T_NodeDataTypes], + +T_ThisType <: NodeDataStub[T_NodeDataType, T_NodeData, T_NodeDataTypes, T_ThisType] + ] protected() extends DisplayableData { + override def dataType(): (T_NodeDataType @uV) = getDataType + def getDataType: (T_NodeDataType @uV) + def setDataType(value: (T_NodeDataType @uV)): Unit + def dataType_=(value: (T_NodeDataType @uV)): Unit = { + setDataType(value) + } } diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/NodeData/NodeDataType.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/NodeData/NodeDataType.scala index 5f983a0e..24ccf87e 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/NodeData/NodeDataType.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/NodeData/NodeDataType.scala @@ -1,214 +1,214 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.NodeData - -import org.finra.datagenerator.common.Graph.Node -import org.finra.datagenerator.common.GraphEngine.{DefaultNodeGenerator, DataNodeGenerator} -import scala.annotation.unchecked.{uncheckedVariance => uV} + +import org.finra.datagenerator.common.Graph.Node +import org.finra.datagenerator.common.GraphEngine.{DefaultNodeGenerator, DataNodeGenerator} +import scala.annotation.unchecked.{uncheckedVariance => uV} import scala.collection.mutable.ListBuffer - -/** - * Type & metadata for data stored in node of a graph - */ -object NodeDataType { - /** - * Each object extending this trait can be thought of as a value in an enumeration of all node data types. - * @tparam T_NodeData Data that uses this type. - * @tparam T_NodeDataStub Stub type for the data - * @tparam T_NodeDataTypes Data types type for this data - * @tparam T_ThisType This type - */ - abstract class NodeDataType[+T_NodeData <: NodeData, - +T_NodeDataStub <: NodeDataStub[T_ThisType, T_NodeData, T_NodeDataTypes, T_NodeDataStub], - +T_NodeDataTypes <: NodeDataTypes[T_NodeData @uV, T_NodeDataStub @uV, T_ThisType @uV, T_NodeDataTypes @uV], - +T_ThisType <: NodeDataType[T_NodeData, T_NodeDataStub, T_NodeDataTypes, T_ThisType]] extends DisplayableData { - /** - * Specifies what generator to use when trying to create a new child or parent from a specified data node - */ - lazy val dataNodeGenerator: DataNodeGenerator[T_NodeData, T_NodeData, T_NodeDataStub, T_ThisType, T_NodeDataTypes] = + +/** + * Type & metadata for data stored in node of a graph + */ +object NodeDataType { + /** + * Each object extending this trait can be thought of as a value in an enumeration of all node data types. + * @tparam T_NodeData Data that uses this type. + * @tparam T_NodeDataStub Stub type for the data + * @tparam T_NodeDataTypes Data types type for this data + * @tparam T_ThisType This type + */ + abstract class NodeDataType[+T_NodeData <: NodeData, + +T_NodeDataStub <: NodeDataStub[T_ThisType, T_NodeData, T_NodeDataTypes, T_NodeDataStub], + +T_NodeDataTypes <: NodeDataTypes[T_NodeData @uV, T_NodeDataStub @uV, T_ThisType @uV, T_NodeDataTypes @uV], + +T_ThisType <: NodeDataType[T_NodeData, T_NodeDataStub, T_NodeDataTypes, T_ThisType]] extends DisplayableData { + /** + * Specifies what generator to use when trying to create a new child or parent from a specified data node + */ + lazy val dataNodeGenerator: DataNodeGenerator[T_NodeData, T_NodeData, T_NodeDataStub, T_ThisType, T_NodeDataTypes] = new DefaultNodeGenerator[T_NodeData, T_NodeData, T_NodeDataStub, T_ThisType, T_NodeDataTypes]() - - /** - * Specifies what generator to use when trying to create a new child or parent from a specified stub node - */ - lazy val dataStubNodeGenerator: DataNodeGenerator[T_NodeDataStub, T_NodeData, T_NodeDataStub, T_ThisType, T_NodeDataTypes] = + + /** + * Specifies what generator to use when trying to create a new child or parent from a specified stub node + */ + lazy val dataStubNodeGenerator: DataNodeGenerator[T_NodeDataStub, T_NodeData, T_NodeDataStub, T_ThisType, T_NodeDataTypes] = new DefaultNodeGenerator[T_NodeDataStub, T_NodeData, T_NodeDataStub, T_ThisType, T_NodeDataTypes]() - - /** - * Wrapper that specifies all possible node data types in this domain, and possible metadata/groupings thereof. - */ + + /** + * Wrapper that specifies all possible node data types in this domain, and possible metadata/groupings thereof. + */ def nodeDataTypes: T_NodeDataTypes - - /** - * Specifies an object of a class implementing DataTransitions, which define, from each type, how to create a - * child or parent of each allowable child/parent type. - */ + + /** + * Specifies an object of a class implementing DataTransitions, which define, from each type, how to create a + * child or parent of each allowable child/parent type. + */ lazy val dataTransitions = nodeDataTypes.dataTransitions//.asInstanceOf[DataTransitions[T_NodeData, T_ThisType, T_NodeDataStub]] - - /** - * Creates a stub wrapper around this type - * @return Stub wrapper around this type - */ + + /** + * Creates a stub wrapper around this type + * @return Stub wrapper around this type + */ def asStub: T_NodeDataStub - - /** - * Name that uniquely identifies this type - */ + + /** + * Name that uniquely identifies this type + */ val name: String = getClass.getSimpleName.replaceAllLiterally("$", "") - - /** - * Lowercased name - * @return Lowercased name - */ + + /** + * Lowercased name + * @return Lowercased name + */ def nameLowercase: String = name.toLowerCase() - - /** - * Name that uniquely identifies this type, to be used for display - * @return Default displayable data ID (defaults to name) - */ + + /** + * Name that uniquely identifies this type, to be used for display + * @return Default displayable data ID (defaults to name) + */ override def defaultDisplayableDataId: String = name - - /** - * Types are considered the same based on their unique names - * @param that Value to compare to - * @return True if equals - */ - override def equals(that: Any): Boolean = { - that match { - case that: this.type => true - case _ => false - } - } - /** - * Hash code is simply the name - * @return Hashcode (name) - */ + + /** + * Types are considered the same based on their unique names + * @param that Value to compare to + * @return True if equals + */ + override def equals(that: Any): Boolean = { + that match { + case that: this.type => true + case _ => false + } + } + /** + * Hash code is simply the name + * @return Hashcode (name) + */ override def hashCode: Int = name.hashCode - - /** - * Gets a sequence of all the node data types that may be created as a child from the current node - * @param nodeOfThisType Node from which to get allowable child types - * @return Sequence of NodeDataType - */ + + /** + * Gets a sequence of all the node data types that may be created as a child from the current node + * @param nodeOfThisType Node from which to get allowable child types + * @return Sequence of NodeDataType + */ def getAllowableChildTypes(nodeOfThisType: Node[T_NodeDataStub @uV]): Seq[T_ThisType] - - /** - * Gets a sequence of all the node data types that may be created as a parent from the current node - * @param nodeOfThisType Node from which to get allowable parent types - * @return Sequence of NodeDataType - */ + + /** + * Gets a sequence of all the node data types that may be created as a parent from the current node + * @param nodeOfThisType Node from which to get allowable parent types + * @return Sequence of NodeDataType + */ def getAllowableParentTypes(nodeOfThisType: Node[T_NodeDataStub @uV]): Seq[T_ThisType] - - /** - * Gets a sequence of predicates used by the child-generator methods. These predicate functions determine, for each allowable child type, - * whether or not, when deciding to add a child, if the generator will choose to add a child of that type. - * @param node Node from which we may wish to add a child - * @param maxToGenerate Maximum number of nodes in graph - * @param probabilityMultiplier Example usage: Predicate function might determine true/false based on a random function. - * Multiplier will make that function more probable to return true. - * @tparam T_DisplayableData Type of data. In this case it will be either a Data or a Stub. - * @return Mutable list of each possible child data type mapped to a predicate function used to determine whether or not to add a child of that type - */ - def childStateTransitionPredicates[T_DisplayableData <: DisplayableData](node: Node[T_DisplayableData @uV] + + /** + * Gets a sequence of predicates used by the child-generator methods. These predicate functions determine, for each allowable child type, + * whether or not, when deciding to add a child, if the generator will choose to add a child of that type. + * @param node Node from which we may wish to add a child + * @param maxToGenerate Maximum number of nodes in graph + * @param probabilityMultiplier Example usage: Predicate function might determine true/false based on a random function. + * Multiplier will make that function more probable to return true. + * @tparam T_DisplayableData Type of data. In this case it will be either a Data or a Stub. + * @return Mutable list of each possible child data type mapped to a predicate function used to determine whether or not to add a child of that type + */ + def childStateTransitionPredicates[T_DisplayableData <: DisplayableData](node: Node[T_DisplayableData @uV] , maxToGenerate:Int, probabilityMultiplier: Int): ListBuffer[(T_ThisType @uV, (Node[T_DisplayableData @uV] => Boolean))] - - /** - * Gets a sequence of predicates used by the parent-generator methods. These predicate functions determine, for each allowable parent type, - * whether or not, when deciding to add a parent, if the generator will choose to add a parent of that type. - * @param node Node from which we may wish to add a parent - * @param maxToGenerate Maximum number of nodes in graph - * @param probabilityMultiplier Example usage: Predicate function might determine true/false based on a random function. - * Multiplier will make that function more probable to return true. - * @tparam T_DisplayableData Type of data. In this case it will be either a Data or a Stub. - * @return Mutable list of each possible parent data type mapped to a predicate function used to determine whether or not to add a parent of that type - */ - def parentStateTransitionPredicates[T_DisplayableData <: DisplayableData](node: Node[T_DisplayableData @uV], maxToGenerate:Int + + /** + * Gets a sequence of predicates used by the parent-generator methods. These predicate functions determine, for each allowable parent type, + * whether or not, when deciding to add a parent, if the generator will choose to add a parent of that type. + * @param node Node from which we may wish to add a parent + * @param maxToGenerate Maximum number of nodes in graph + * @param probabilityMultiplier Example usage: Predicate function might determine true/false based on a random function. + * Multiplier will make that function more probable to return true. + * @tparam T_DisplayableData Type of data. In this case it will be either a Data or a Stub. + * @return Mutable list of each possible parent data type mapped to a predicate function used to determine whether or not to add a parent of that type + */ + def parentStateTransitionPredicates[T_DisplayableData <: DisplayableData](node: Node[T_DisplayableData @uV], maxToGenerate:Int , probabilityMultiplier: Int): ListBuffer[(T_ThisType @uV, (Node[T_DisplayableData @uV] => Boolean))] - - /** - * Probabilistically link this node to another existing node such that the other node should be a parent of this node. - * Does nothing by default, but may be overridden. Also not yet called from anywhere, but eventually we may have some generation engine that uses this. - * @param dataNode Node to be linked as a child of another node that already exists in the same graph - */ + + /** + * Probabilistically link this node to another existing node such that the other node should be a parent of this node. + * Does nothing by default, but may be overridden. Also not yet called from anywhere, but eventually we may have some generation engine that uses this. + * @param dataNode Node to be linked as a child of another node that already exists in the same graph + */ def probabilisticallyLinkToExistingParentDataNode(dataNode: Node[T_NodeData @uV]): Unit - - /** - * Probabilistically link this node to another existing node such that the other node should be a parent of this node. - * Does nothing by default, but may be overridden. Also not yet called from anywhere, but eventually we may have some generation engine that uses this. - * @param stubNode Node to be linked as a child of another node that already exists in the same graph - */ + + /** + * Probabilistically link this node to another existing node such that the other node should be a parent of this node. + * Does nothing by default, but may be overridden. Also not yet called from anywhere, but eventually we may have some generation engine that uses this. + * @param stubNode Node to be linked as a child of another node that already exists in the same graph + */ def probabilisticallyLinkToExistingParentStubNode(stubNode: Node[T_NodeDataStub @uV]): Unit - - /** - * Given a stub node, creates new child stub nodes based on the allowable child types - * and defined predicates specifying whether or not to add a child of a certain type - * @param stubNode Node of a data stub - * @param maxToGenerate Maximum number of nodes in graph - * @param probabilityMultiplier Example usage: Predicate function might determine true/false based on a random function. - * Multiplier will make that function more probable to return true. - * @return Vector of all added child nodes - */ - def generateAndAddChildStubs(stubNode: Node[T_NodeDataStub @uV], maxToGenerate: Int, probabilityMultiplier: Int): Vector[Node[T_NodeDataStub @uV]] = { - dataStubNodeGenerator.generateLinkedNodes(stubNode, maxToGenerate, childStateTransitionPredicates[T_NodeDataStub @uV](stubNode, maxToGenerate - , probabilityMultiplier), (nextEventType: T_ThisType) => stubNode.addChild(nextEventType.asStub) - ) + + /** + * Given a stub node, creates new child stub nodes based on the allowable child types + * and defined predicates specifying whether or not to add a child of a certain type + * @param stubNode Node of a data stub + * @param maxToGenerate Maximum number of nodes in graph + * @param probabilityMultiplier Example usage: Predicate function might determine true/false based on a random function. + * Multiplier will make that function more probable to return true. + * @return Vector of all added child nodes + */ + def generateAndAddChildStubs(stubNode: Node[T_NodeDataStub @uV], maxToGenerate: Int, probabilityMultiplier: Int): Vector[Node[T_NodeDataStub @uV]] = { + dataStubNodeGenerator.generateLinkedNodes(stubNode, maxToGenerate, childStateTransitionPredicates[T_NodeDataStub @uV](stubNode, maxToGenerate + , probabilityMultiplier), (nextEventType: T_ThisType) => stubNode.addChild(nextEventType.asStub) + ) + } + + /** + * Given a stub node, creates new parent stub nodes based on the allowable child types + * and defined predicates specifying whether or not to add a parent of a certain type + * @param stubNode Node of a data stub + * @param maxToGenerate Maximum number of nodes in graph + * @param probabilityMultiplier Example usage: Predicate function might determine true/false based on a random function. + * Multiplier will make that function more probable to return true. + * @return Vector of all added parent nodes + */ + def generateAndAddParentStubs(stubNode: Node[T_NodeDataStub @uV], maxToGenerate: Int, probabilityMultiplier: Int): Vector[Node[T_NodeDataStub @uV]] = { + dataStubNodeGenerator.generateLinkedNodes(stubNode, maxToGenerate, parentStateTransitionPredicates[T_NodeDataStub @uV](stubNode, maxToGenerate + , probabilityMultiplier), (nextEventType: T_ThisType) => stubNode.addParent(nextEventType.asStub) + ) } - - /** - * Given a stub node, creates new parent stub nodes based on the allowable child types - * and defined predicates specifying whether or not to add a parent of a certain type - * @param stubNode Node of a data stub - * @param maxToGenerate Maximum number of nodes in graph - * @param probabilityMultiplier Example usage: Predicate function might determine true/false based on a random function. - * Multiplier will make that function more probable to return true. - * @return Vector of all added parent nodes - */ - def generateAndAddParentStubs(stubNode: Node[T_NodeDataStub @uV], maxToGenerate: Int, probabilityMultiplier: Int): Vector[Node[T_NodeDataStub @uV]] = { - dataStubNodeGenerator.generateLinkedNodes(stubNode, maxToGenerate, parentStateTransitionPredicates[T_NodeDataStub @uV](stubNode, maxToGenerate - , probabilityMultiplier), (nextEventType: T_ThisType) => stubNode.addParent(nextEventType.asStub) - ) + + /** + * Given a data node, creates new child data nodes based on the allowable child types and defined predicates + * specifying whether or not to add a child of a certain type + * @param dataNode Node of a data stub + * @param maxToGenerate Maximum number of nodes in graph + * @param probabilityMultiplier Example usage: Predicate function might determine true/false based on a random function. + * Multiplier will make that function more probable to return true. + * @return Vector of all added child nodes + */ + def generateAndAddChildNodes(dataNode: Node[T_NodeData @uV], maxToGenerate: Int, probabilityMultiplier: Int): Vector[Node[T_NodeData @uV]] = { + dataNodeGenerator.generateLinkedNodes(dataNode, maxToGenerate, childStateTransitionPredicates[T_NodeData @uV](dataNode, maxToGenerate + , probabilityMultiplier), (nextEventType: T_ThisType) => dataTransitions.addRandomlyGeneratedChildData(dataNode, nextEventType)) } - - /** - * Given a data node, creates new child data nodes based on the allowable child types and defined predicates - * specifying whether or not to add a child of a certain type - * @param dataNode Node of a data stub - * @param maxToGenerate Maximum number of nodes in graph - * @param probabilityMultiplier Example usage: Predicate function might determine true/false based on a random function. - * Multiplier will make that function more probable to return true. - * @return Vector of all added child nodes - */ - def generateAndAddChildNodes(dataNode: Node[T_NodeData @uV], maxToGenerate: Int, probabilityMultiplier: Int): Vector[Node[T_NodeData @uV]] = { - dataNodeGenerator.generateLinkedNodes(dataNode, maxToGenerate, childStateTransitionPredicates[T_NodeData @uV](dataNode, maxToGenerate - , probabilityMultiplier), (nextEventType: T_ThisType) => dataTransitions.addRandomlyGeneratedChildData(dataNode, nextEventType)) + + /** + * Given a data node, creates new parent data nodes based on the allowable child types and defined predicates specifying + * whether or not to add a parent of a certain type + * @param dataNode Node of a data stub + * @param maxToGenerate Maximum number of nodes in graph + * @param probabilityMultiplier Example usage: Predicate function might determine true/false based on a random function. + * Multiplier will make that function more probable to return true. + * @return Vector of all added parent nodes + */ + def generateAndAddParentNodes(dataNode: Node[T_NodeData @uV], maxToGenerate: Int, probabilityMultiplier: Int): Vector[Node[T_NodeData @uV]] = { + dataNodeGenerator.generateLinkedNodes(dataNode, maxToGenerate, parentStateTransitionPredicates[T_NodeData @uV](dataNode, maxToGenerate + , probabilityMultiplier), (nextEventType: T_ThisType) => dataTransitions.addRandomlyGeneratedParentData(dataNode, nextEventType)) } - - /** - * Given a data node, creates new parent data nodes based on the allowable child types and defined predicates specifying - * whether or not to add a parent of a certain type - * @param dataNode Node of a data stub - * @param maxToGenerate Maximum number of nodes in graph - * @param probabilityMultiplier Example usage: Predicate function might determine true/false based on a random function. - * Multiplier will make that function more probable to return true. - * @return Vector of all added parent nodes - */ - def generateAndAddParentNodes(dataNode: Node[T_NodeData @uV], maxToGenerate: Int, probabilityMultiplier: Int): Vector[Node[T_NodeData @uV]] = { - dataNodeGenerator.generateLinkedNodes(dataNode, maxToGenerate, parentStateTransitionPredicates[T_NodeData @uV](dataNode, maxToGenerate - , probabilityMultiplier), (nextEventType: T_ThisType) => dataTransitions.addRandomlyGeneratedParentData(dataNode, nextEventType)) - } - } + } } diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/NodeData/NodeDataTypes.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/NodeData/NodeDataTypes.scala index c1ed6a9b..827faa07 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/NodeData/NodeDataTypes.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/NodeData/NodeDataTypes.scala @@ -1,51 +1,51 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.NodeData - + import org.finra.datagenerator.common.GraphEngine.DataTransitions - + import scala.annotation.unchecked.{uncheckedVariance => uV} - -/** - * Describes all the possible node data types - * @tparam T_NodeData Type of data to generate (e.g., could be either real data or could be stubbed data) - * @tparam T_NodeDataStub Stub type for the data - * @tparam T_NodeDataType Data type type for this data - * @tparam T_ThisType This type - */ -trait NodeDataTypes[+T_NodeData <: NodeData, - +T_NodeDataStub <: NodeDataStub[T_NodeDataType, T_NodeData, T_ThisType, T_NodeDataStub], - +T_NodeDataType <: NodeDataType.NodeDataType[T_NodeData @uV, T_NodeDataStub @uV, T_ThisType @uV, T_NodeDataType], - +T_ThisType <: NodeDataTypes[T_NodeData, T_NodeDataStub, T_NodeDataType, T_ThisType]] { - /** - * All data types that are part of this domain - * @return All data types - */ + +/** + * Describes all the possible node data types + * @tparam T_NodeData Type of data to generate (e.g., could be either real data or could be stubbed data) + * @tparam T_NodeDataStub Stub type for the data + * @tparam T_NodeDataType Data type type for this data + * @tparam T_ThisType This type + */ +trait NodeDataTypes[+T_NodeData <: NodeData, + +T_NodeDataStub <: NodeDataStub[T_NodeDataType, T_NodeData, T_ThisType, T_NodeDataStub], + +T_NodeDataType <: NodeDataType.NodeDataType[T_NodeData @uV, T_NodeDataStub @uV, T_ThisType @uV, T_NodeDataType], + +T_ThisType <: NodeDataTypes[T_NodeData, T_NodeDataStub, T_NodeDataType, T_ThisType]] { + /** + * All data types that are part of this domain + * @return All data types + */ def allDataTypes: collection.immutable.HashSet[T_NodeDataType @uV] - - /** - * All data types that are part of this domain and which are allowed to be the initial (e.g., only) node in a graph. - * @return Initial data types - */ + + /** + * All data types that are part of this domain and which are allowed to be the initial (e.g., only) node in a graph. + * @return Initial data types + */ def allInitialDataTypes: collection.immutable.HashSet[T_NodeDataType @uV] - - /** - * Specifies an object of a class implementing DataTransitions, which define, from each type, how to create a - * child or parent of each allowable child/parent type. - */ - def dataTransitions: DataTransitions[T_NodeData, T_NodeDataType, T_NodeDataStub, T_ThisType] + + /** + * Specifies an object of a class implementing DataTransitions, which define, from each type, how to create a + * child or parent of each allowable child/parent type. + */ + def dataTransitions: DataTransitions[T_NodeData, T_NodeDataType, T_NodeDataStub, T_ThisType] } diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/SocialNetworkExample_Program.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/SocialNetworkExample_Program.scala index 8a5d9135..903ee171 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/SocialNetworkExample_Program.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/SocialNetworkExample_Program.scala @@ -1,24 +1,24 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.SocialNetwork_Example - -/** - * Main method that generates social-network friendship graphs - */ -object SocialNetworkExample_Program extends App { - SocialNetworkStructureBuilder.generateAllNodeDataTypeGraphCombinationsOfMaxLength(4) + +/** + * Main method that generates social-network friendship graphs + */ +object SocialNetworkExample_Program extends App { + SocialNetworkStructureBuilder.generateAllNodeDataTypeGraphCombinationsOfMaxLength(4) } diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/SocialNetworkStructureBuilder.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/SocialNetworkStructureBuilder.scala index 4c0be475..2cfda4fe 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/SocialNetworkStructureBuilder.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/SocialNetworkStructureBuilder.scala @@ -1,67 +1,67 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.SocialNetwork_Example - -import java.io.File + +import java.io.File import java.util.concurrent.atomic.AtomicInteger - -import org.finra.datagenerator.common.Graph.Graph + +import org.finra.datagenerator.common.Graph.Graph import org.finra.datagenerator.common.GraphEngine.StructureBuilder - + import scala.collection.immutable - -/** - * Builds all combinations of graph structures for friendships with a maximum graph size - */ -object SocialNetworkStructureBuilder extends StructureBuilder[User, UserType.UserType, UserStub, UserTypes] { + +/** + * Builds all combinations of graph structures for friendships with a maximum graph size + */ +object SocialNetworkStructureBuilder extends StructureBuilder[User, UserType.UserType, UserStub, UserTypes] { def nodeDataTypes: UserTypes = new UserTypes() - - val systemTempDir = System.getProperty("java.io.tmpdir").replaceAllLiterally("\\", "/") - val outDir = s"$systemTempDir${if (systemTempDir.endsWith("/")) "" else "/"}SocialNetworkGraphs/" + + val systemTempDir = System.getProperty("java.io.tmpdir").replaceAllLiterally("\\", "/") + val outDir = s"$systemTempDir${if (systemTempDir.endsWith("/")) "" else "/"}SocialNetworkGraphs/" new File(outDir).mkdirs() - - val WRITE_STRUCTURES_IN_PARALLEL = false // Having same structure be same ID helps debugging... + + val WRITE_STRUCTURES_IN_PARALLEL = false // Having same structure be same ID helps debugging... val ALSO_WRITE_AS_PNG = true - - /** - * Build all combinations of graph structures for generic event stubs of a maximum length - * @param length Maximum number of nodes in each to generate - * @return All graph combinations of specified length or less - */ - override def generateAllNodeDataTypeGraphCombinationsOfMaxLength(length: Int): immutable.Vector[Graph[UserStub]] = { + + /** + * Build all combinations of graph structures for generic event stubs of a maximum length + * @param length Maximum number of nodes in each to generate + * @return All graph combinations of specified length or less + */ + override def generateAllNodeDataTypeGraphCombinationsOfMaxLength(length: Int): immutable.Vector[Graph[UserStub]] = { val graphs = super.generateAllNodeDataTypeGraphCombinationsOfMaxLength(length) - - if (WRITE_STRUCTURES_IN_PARALLEL) { - val i = new AtomicInteger(0) - graphs.par.foreach(graph => { - graph.graphId = s"S_${i.incrementAndGet()}_${graph.allNodes.size}" - graph.writeDotFile(s"${outDir}${graph.graphId}.gv", alsoWriteAsPng = ALSO_WRITE_AS_PNG) - }) - println(s"Wrote ${i.get} graph files in DOT format to $outDir.") // scalastyle:ignore - } else { - var i = 0 - graphs.foreach(graph => { - i += 1 - graph.graphId = s"S_${i}_${graph.allNodes.size}" - graph.writeDotFile(s"${outDir}${graph.graphId}.gv", alsoWriteAsPng = ALSO_WRITE_AS_PNG) - }) - println(s"Wrote $i graph files in DOT format to $outDir.") // scalastyle:ignore + + if (WRITE_STRUCTURES_IN_PARALLEL) { + val i = new AtomicInteger(0) + graphs.par.foreach(graph => { + graph.graphId = s"S_${i.incrementAndGet()}_${graph.allNodes.size}" + graph.writeDotFile(s"${outDir}${graph.graphId}.gv", alsoWriteAsPng = ALSO_WRITE_AS_PNG) + }) + println(s"Wrote ${i.get} graph files in DOT format to $outDir.") // scalastyle:ignore + } else { + var i = 0 + graphs.foreach(graph => { + i += 1 + graph.graphId = s"S_${i}_${graph.allNodes.size}" + graph.writeDotFile(s"${outDir}${graph.graphId}.gv", alsoWriteAsPng = ALSO_WRITE_AS_PNG) + }) + println(s"Wrote $i graph files in DOT format to $outDir.") // scalastyle:ignore } - - graphs - } + + graphs + } } diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/SocialNetworkUtilities.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/SocialNetworkUtilities.scala index bd9290c7..c523aab0 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/SocialNetworkUtilities.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/SocialNetworkUtilities.scala @@ -1,56 +1,56 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.SocialNetwork_Example - + import org.finra.datagenerator.common.Helpers.RandomHelper - -/** - * Utility methods relating to data that are part of social event users. - * Not fully implemented, and not used, because this is for data generation and not stub generation, and - * the current implementation only supports stub generation and doesn't yet have any implementation of - * stub-to-data translation. - */ -object SocialNetworkUtilities { - def getRandomIsSecret: Boolean = { - RandomHelper.evaluateProbability(0.1) // 10% of accounts are secret accounts. + +/** + * Utility methods relating to data that are part of social event users. + * Not fully implemented, and not used, because this is for data generation and not stub generation, and + * the current implementation only supports stub generation and doesn't yet have any implementation of + * stub-to-data translation. + */ +object SocialNetworkUtilities { + def getRandomIsSecret: Boolean = { + RandomHelper.evaluateProbability(0.1) // 10% of accounts are secret accounts. + } + + def getRandomGeographicalLocation: (Double, Double) = { + ((RandomHelper.randWithConfiguredSeed.nextInt(999) + 1).toDouble / 100, + (RandomHelper.randWithConfiguredSeed.nextInt(999) + 1).toDouble / 100) } - - def getRandomGeographicalLocation: (Double, Double) = { - ((RandomHelper.randWithConfiguredSeed.nextInt(999) + 1).toDouble / 100, - (RandomHelper.randWithConfiguredSeed.nextInt(999) + 1).toDouble / 100) + + def getDistanceBetweenCoordinates(point1: (Double, Double), point2: (Double, Double)): Double = { + // sqrt( (x2-x1)^2 + (y2-y2)^2 ) + val xDiff = point1._1 - point2._1 + val yDiff = point1._2 - point2._2 + math.sqrt((xDiff * xDiff) + (yDiff * yDiff)) } - - def getDistanceBetweenCoordinates(point1: (Double, Double), point2: (Double, Double)): Double = { - // sqrt( (x2-x1)^2 + (y2-y2)^2 ) - val xDiff = point1._1 - point2._1 - val yDiff = point1._2 - point2._2 - math.sqrt((xDiff * xDiff) + (yDiff * yDiff)) + + def getDistanceWithinThresholdOfCoordinates(point1: (Double, Double), point2: (Double, Double)): Double = { + ??? } - - def getDistanceWithinThresholdOfCoordinates(point1: (Double, Double), point2: (Double, Double)): Double = { - ??? + + def getRandomBirthDate: java.util.Date = { + ??? } - - def getRandomBirthDate: java.util.Date = { - ??? + + val COORDINATE_THRESHOLD = 2.0 + def areCoordinatesWithinThreshold(point1: (Double, Double), point2: (Double, Double)): Boolean = { + getDistanceBetweenCoordinates(point1, point2) < COORDINATE_THRESHOLD } - - val COORDINATE_THRESHOLD = 2.0 - def areCoordinatesWithinThreshold(point1: (Double, Double), point2: (Double, Double)): Boolean = { - getDistanceBetweenCoordinates(point1, point2) < COORDINATE_THRESHOLD - } } diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/User.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/User.scala index 929c84f4..5ec329ca 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/User.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/User.scala @@ -1,39 +1,39 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.SocialNetwork_Example - -import org.finra.datagenerator.common.NodeData.NodeData + +import org.finra.datagenerator.common.NodeData.NodeData import org.finra.datagenerator.common.NodeData.NodeDataType.NodeDataType - + import scala.beans.BeanProperty - -/* -Social network user - */ -class User( private var _dataType: UserType.UserType, - @BeanProperty var firstName: String, - @BeanProperty var lastName: String, - @BeanProperty val dateOfBirth: java.sql.Date, // Assert > 13 years old when creating - @BeanProperty var geographicalLocation: (Double, Double), - @BeanProperty var isSecret: Boolean, - @BeanProperty val socialNetworkId: Long) extends NodeData(None) { + +/* +Social network user + */ +class User( private var _dataType: UserType.UserType, + @BeanProperty var firstName: String, + @BeanProperty var lastName: String, + @BeanProperty val dateOfBirth: java.sql.Date, // Assert > 13 years old when creating + @BeanProperty var geographicalLocation: (Double, Double), + @BeanProperty var isSecret: Boolean, + @BeanProperty val socialNetworkId: Long) extends NodeData(None) { override def defaultDisplayableDataId: String = s"$socialNetworkId (${dataType.name}): $lastName, $firstName" - - override def getDataType: UserType.UserType = { - _dataType - } + + override def getDataType: UserType.UserType = { + _dataType + } } diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/UserStub.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/UserStub.scala index 31e7e29e..31aa19c7 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/UserStub.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/UserStub.scala @@ -1,77 +1,77 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.SocialNetwork_Example - -import org.finra.datagenerator.common.NodeData.NodeDataStub -import org.finra.datagenerator.common.NodeData.NodeDataType.NodeDataType + +import org.finra.datagenerator.common.NodeData.NodeDataStub +import org.finra.datagenerator.common.NodeData.NodeDataType.NodeDataType import org.finra.datagenerator.common.SocialNetwork_Example.UserType.UserType - -import scala.beans.BeanProperty -import scala.collection.mutable + +import scala.beans.BeanProperty +import scala.collection.mutable import scala.collection.mutable.ArrayBuffer - -/** - * A user stub is input used to create a user, and comprises of user type plus optional metadata - * representing parameters of that user that we want to override with specified values. - * Any non-specified parameters are expected to be populated with default or random values. - */ -class UserStub protected() extends NodeDataStub[UserType, User, UserTypes, UserStub]() { - protected var _dataType: UserType = UserType.PUBLIC_USER - override def setDataType(value: UserType): Unit ={ - _dataType = value - } - override def getDataType: UserType = { - _dataType + +/** + * A user stub is input used to create a user, and comprises of user type plus optional metadata + * representing parameters of that user that we want to override with specified values. + * Any non-specified parameters are expected to be populated with default or random values. + */ +class UserStub protected() extends NodeDataStub[UserType, User, UserTypes, UserStub]() { + protected var _dataType: UserType = UserType.PUBLIC_USER + override def setDataType(value: UserType): Unit ={ + _dataType = value + } + override def getDataType: UserType = { + _dataType } - - @BeanProperty var geographicalLocation: Option[(Double, Double)] = None + + @BeanProperty var geographicalLocation: Option[(Double, Double)] = None @BeanProperty var isSecret: Option[Boolean] = None - - def this(userType: UserType.UserType, geographicalLocation: (Double, Double), isSecret: Boolean) = { - this() - this._dataType = userType - this.geographicalLocation = Option(geographicalLocation) - this.isSecret = Option(isSecret) + + def this(userType: UserType.UserType, geographicalLocation: (Double, Double), isSecret: Boolean) = { + this() + this._dataType = userType + this.geographicalLocation = Option(geographicalLocation) + this.isSecret = Option(isSecret) } - - def this(userType: UserType.UserType) = { - this() - this._dataType = userType + + def this(userType: UserType.UserType) = { + this() + this._dataType = userType } - - override def displayableElements: ArrayBuffer[String] = { - val elements = mutable.ArrayBuffer[String](displayableDataId) - if (geographicalLocation.nonEmpty) { - elements += s"Lat=${geographicalLocation.get._1}" - elements += s"Long=${geographicalLocation.get._2}" - } - if (isSecret.nonEmpty && isSecret.get) elements += s"IsSecret=True" - elements + + override def displayableElements: ArrayBuffer[String] = { + val elements = mutable.ArrayBuffer[String](displayableDataId) + if (geographicalLocation.nonEmpty) { + elements += s"Lat=${geographicalLocation.get._1}" + elements += s"Long=${geographicalLocation.get._2}" + } + if (isSecret.nonEmpty && isSecret.get) elements += s"IsSecret=True" + elements } - - override def simplifiedDisplayableElements: Iterable[String] = { - Iterable[String](displayableDataId) + + override def simplifiedDisplayableElements: Iterable[String] = { + Iterable[String](displayableDataId) } - - override def defaultDisplayableDataId: String = dataType.name + + override def defaultDisplayableDataId: String = dataType.name } - -object UserStub { - def getStubWithRandomParams(userType: UserType.UserType): UserStub = { - new UserStub(userType, SocialNetworkUtilities.getRandomGeographicalLocation, SocialNetworkUtilities.getRandomIsSecret) - } + +object UserStub { + def getStubWithRandomParams(userType: UserType.UserType): UserStub = { + new UserStub(userType, SocialNetworkUtilities.getRandomGeographicalLocation, SocialNetworkUtilities.getRandomIsSecret) + } } diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/UserTransitions.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/UserTransitions.scala index 67688868..c34b3a54 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/UserTransitions.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/UserTransitions.scala @@ -1,54 +1,54 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.SocialNetwork_Example - -import org.finra.datagenerator.common.Graph.Node + +import org.finra.datagenerator.common.Graph.Node import org.finra.datagenerator.common.GraphEngine.DataTransitions - + class UserTransitions - -object UserTransitions extends DataTransitions[User, UserType.UserType, UserStub, UserTypes] { + +object UserTransitions extends DataTransitions[User, UserType.UserType, UserStub, UserTypes] { override def nodeDataTypes: UserTypes = new UserTypes() - - override def isStubParentTypeTransitionAllowed(childNode: Node[UserStub], candidateParentNode: Node[UserStub]): Boolean = { - childNode.data.dataType match { - case UserType.ADMIN => - candidateParentNode.data.dataType match { - case UserType.ADMIN => true - case _ => false - } - case UserType.SOCIAL_NETWORK_EMPLOYEE => - candidateParentNode.data.dataType match { - case UserType.PUBLIC_USER => false - case _ => true - } - case UserType.PUBLIC_USER => true - } + + override def isStubParentTypeTransitionAllowed(childNode: Node[UserStub], candidateParentNode: Node[UserStub]): Boolean = { + childNode.data.dataType match { + case UserType.ADMIN => + candidateParentNode.data.dataType match { + case UserType.ADMIN => true + case _ => false + } + case UserType.SOCIAL_NETWORK_EMPLOYEE => + candidateParentNode.data.dataType match { + case UserType.PUBLIC_USER => false + case _ => true + } + case UserType.PUBLIC_USER => true + } + } + + // The following methods all deal with the User object. As we do not yet have a generator that deals with User objects, + // we leave this to be implemented later. (Currently we have the SocialNetworkStructureBuilder, which builds graphs of + // UserStubs. So for now we only need the transition methods that take in stubs.) + override def isParentTypeTransitionAllowed(childDataNode: Node[User], candidateParentDataNode: Node[User]): Boolean = ??? + override def addRandomlyGeneratedParentData(childDataNode: Node[User], parentNodeDataType: UserType.UserType): Node[User] = ??? + override def addRandomlyGeneratedParentData(childDataNode: Node[User], parentNodeDataStub: UserStub): Node[User] = ??? + override def addRandomlyGeneratedChildData(parentDataNode: Node[User], childNodeDataType: UserType.UserType): Node[User] = ??? + override def addRandomlyGeneratedChildData(parentDataNode: Node[User], childNodeDataStub: UserStub): Node[User] = ??? + override def linkExistingNodes(parent: Node[User], child: Node[User]): Unit = { + parent.addLinkToExistingChild(child) } - - // The following methods all deal with the User object. As we do not yet have a generator that deals with User objects, - // we leave this to be implemented later. (Currently we have the SocialNetworkStructureBuilder, which builds graphs of - // UserStubs. So for now we only need the transition methods that take in stubs.) - override def isParentTypeTransitionAllowed(childDataNode: Node[User], candidateParentDataNode: Node[User]): Boolean = ??? - override def addRandomlyGeneratedParentData(childDataNode: Node[User], parentNodeDataType: UserType.UserType): Node[User] = ??? - override def addRandomlyGeneratedParentData(childDataNode: Node[User], parentNodeDataStub: UserStub): Node[User] = ??? - override def addRandomlyGeneratedChildData(parentDataNode: Node[User], childNodeDataType: UserType.UserType): Node[User] = ??? - override def addRandomlyGeneratedChildData(parentDataNode: Node[User], childNodeDataStub: UserStub): Node[User] = ??? - override def linkExistingNodes(parent: Node[User], child: Node[User]): Unit = { - parent.addLinkToExistingChild(child) - } } diff --git a/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/UserType.scala b/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/UserType.scala index 5b451d1b..03b6c0fd 100644 --- a/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/UserType.scala +++ b/dg-common/src/main/scala/org/finra/datagenerator/common/SocialNetwork_Example/UserType.scala @@ -1,140 +1,140 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.SocialNetwork_Example - -import org.finra.datagenerator.common.Graph.Node -import org.finra.datagenerator.common.Helpers.RandomHelper -import org.finra.datagenerator.common.NodeData._ -import scala.beans.BeanProperty + +import org.finra.datagenerator.common.Graph.Node +import org.finra.datagenerator.common.Helpers.RandomHelper +import org.finra.datagenerator.common.NodeData._ +import scala.beans.BeanProperty import scala.collection.mutable.ListBuffer - -/** - * Description: Defines all user state and transition probability information. - * Each type is defined and mapped to a set of predicates determining the allowable parent and child types and whether or not to create them, - * as well as the actual methods and business logic to create the parent/child states for each allowable state transition (edge/link). - */ -class UserTypes extends NodeDataTypes[User, UserStub, UserType.UserType, UserTypes] { - def allInitialDataTypes: collection.immutable.HashSet[UserType.UserType] = { - collection.immutable.HashSet[UserType.UserType](UserType.ADMIN) + +/** + * Description: Defines all user state and transition probability information. + * Each type is defined and mapped to a set of predicates determining the allowable parent and child types and whether or not to create them, + * as well as the actual methods and business logic to create the parent/child states for each allowable state transition (edge/link). + */ +class UserTypes extends NodeDataTypes[User, UserStub, UserType.UserType, UserTypes] { + def allInitialDataTypes: collection.immutable.HashSet[UserType.UserType] = { + collection.immutable.HashSet[UserType.UserType](UserType.ADMIN) } - - def allDataTypes: collection.immutable.HashSet[UserType.UserType] = { - collection.immutable.HashSet[UserType.UserType](UserType.ADMIN, UserType.SOCIAL_NETWORK_EMPLOYEE, UserType.PUBLIC_USER) + + def allDataTypes: collection.immutable.HashSet[UserType.UserType] = { + collection.immutable.HashSet[UserType.UserType](UserType.ADMIN, UserType.SOCIAL_NETWORK_EMPLOYEE, UserType.PUBLIC_USER) } - - def dataTransitions: UserTransitions.type = UserTransitions + + def dataTransitions: UserTransitions.type = UserTransitions } - -import NodeDataType.NodeDataType -object UserType { - abstract class UserType extends NodeDataType[User, UserStub, UserTypes, UserType] { - @BeanProperty def nodeDataTypes: UserTypes = new UserTypes() + +import NodeDataType.NodeDataType +object UserType { + abstract class UserType extends NodeDataType[User, UserStub, UserTypes, UserType] { + @BeanProperty def nodeDataTypes: UserTypes = new UserTypes() def asStub: UserStub = new UserStub(this) - - // We don't have any engines that use these two methods yet, but it might be useful at some point. - override def probabilisticallyLinkToExistingParentDataNode(dataNode: Node[User]): Unit = {} - override def probabilisticallyLinkToExistingParentStubNode(stubNode: Node[UserStub]): Unit = {} + + // We don't have any engines that use these two methods yet, but it might be useful at some point. + override def probabilisticallyLinkToExistingParentDataNode(dataNode: Node[User]): Unit = {} + override def probabilisticallyLinkToExistingParentStubNode(stubNode: Node[UserStub]): Unit = {} } - - // ADMIN can friend request ADMIN, SOCIAL_NETWORK_EMPLOYEE, and PUBLIC_USER - // SOCIAL_NETWORK_EMPLOYEE can friend request SOCIAL_NETWORK_EMPLOYEE and PUBLIC_USER + + // ADMIN can friend request ADMIN, SOCIAL_NETWORK_EMPLOYEE, and PUBLIC_USER + // SOCIAL_NETWORK_EMPLOYEE can friend request SOCIAL_NETWORK_EMPLOYEE and PUBLIC_USER // PUBLIC_USER can friend request PUBLIC_USER - - case object ADMIN extends UserType { - override def getDataType: NodeDataType[User, UserStub, UserTypes, UserType] = UserType.ADMIN + + case object ADMIN extends UserType { + override def getDataType: NodeDataType[User, UserStub, UserTypes, UserType] = UserType.ADMIN override val name = "Admin" - - override def getAllowableChildTypes(nodeOfThisType: Node[UserStub]): Seq[UserType.UserType] = { - nodeDataTypes.allDataTypes.toSeq - } - override def getAllowableParentTypes(nodeOfThisType: Node[UserStub]): Seq[UserType.UserType] = { - Seq[UserType.UserType](UserType.ADMIN) - } - override def childStateTransitionPredicates[T_DisplayableData <: DisplayableData]( - node: Node[T_DisplayableData], maxToGenerate: Int, probabilityMultiplier: Int) - : ListBuffer[(UserType.UserType, (Node[T_DisplayableData] => Boolean))] = { - ListBuffer[(UserType.UserType, (Node[T_DisplayableData] => Boolean))]( - (UserType.ADMIN, (sourceEventNode: Node[T_DisplayableData]) => RandomHelper.evaluateProbability(probabilityMultiplier*0.07)), - (UserType.SOCIAL_NETWORK_EMPLOYEE, (sourceEventNode: Node[T_DisplayableData]) => RandomHelper.evaluateProbability(probabilityMultiplier*0.1)), - (UserType.PUBLIC_USER, (sourceEventNode: Node[T_DisplayableData]) => RandomHelper.evaluateProbability(probabilityMultiplier*0.15)) - ) - } - override def parentStateTransitionPredicates[T_DisplayableData <: DisplayableData]( - node: Node[T_DisplayableData], maxToGenerate: Int, probabilityMultiplier: Int) - : ListBuffer[(UserType.UserType, (Node[T_DisplayableData] => Boolean))] = { - ListBuffer[(UserType.UserType, (Node[T_DisplayableData] => Boolean))]( - (UserType.ADMIN, (sourceEventNode: Node[T_DisplayableData]) => RandomHelper.evaluateProbability(probabilityMultiplier * 0.07)) - ) - } + + override def getAllowableChildTypes(nodeOfThisType: Node[UserStub]): Seq[UserType.UserType] = { + nodeDataTypes.allDataTypes.toSeq + } + override def getAllowableParentTypes(nodeOfThisType: Node[UserStub]): Seq[UserType.UserType] = { + Seq[UserType.UserType](UserType.ADMIN) + } + override def childStateTransitionPredicates[T_DisplayableData <: DisplayableData]( + node: Node[T_DisplayableData], maxToGenerate: Int, probabilityMultiplier: Int) + : ListBuffer[(UserType.UserType, (Node[T_DisplayableData] => Boolean))] = { + ListBuffer[(UserType.UserType, (Node[T_DisplayableData] => Boolean))]( + (UserType.ADMIN, (sourceEventNode: Node[T_DisplayableData]) => RandomHelper.evaluateProbability(probabilityMultiplier*0.07)), + (UserType.SOCIAL_NETWORK_EMPLOYEE, (sourceEventNode: Node[T_DisplayableData]) => RandomHelper.evaluateProbability(probabilityMultiplier*0.1)), + (UserType.PUBLIC_USER, (sourceEventNode: Node[T_DisplayableData]) => RandomHelper.evaluateProbability(probabilityMultiplier*0.15)) + ) + } + override def parentStateTransitionPredicates[T_DisplayableData <: DisplayableData]( + node: Node[T_DisplayableData], maxToGenerate: Int, probabilityMultiplier: Int) + : ListBuffer[(UserType.UserType, (Node[T_DisplayableData] => Boolean))] = { + ListBuffer[(UserType.UserType, (Node[T_DisplayableData] => Boolean))]( + (UserType.ADMIN, (sourceEventNode: Node[T_DisplayableData]) => RandomHelper.evaluateProbability(probabilityMultiplier * 0.07)) + ) + } } - - case object SOCIAL_NETWORK_EMPLOYEE extends UserType { - override def getDataType: NodeDataType[User, UserStub, UserTypes, UserType] = UserType.ADMIN + + case object SOCIAL_NETWORK_EMPLOYEE extends UserType { + override def getDataType: NodeDataType[User, UserStub, UserTypes, UserType] = UserType.ADMIN override val name = "SocialNetworkEmployee" - - override def getAllowableChildTypes(nodeOfThisType: Node[UserStub]): Seq[UserType.UserType] = { - Seq[UserType.UserType](UserType.SOCIAL_NETWORK_EMPLOYEE, UserType.PUBLIC_USER) - } - override def getAllowableParentTypes(nodeOfThisType: Node[UserStub]): Seq[UserType.UserType] = { - Seq[UserType.UserType](UserType.ADMIN, UserType.SOCIAL_NETWORK_EMPLOYEE) - } - override def childStateTransitionPredicates[T_DisplayableData <: DisplayableData]( - node: Node[T_DisplayableData], maxToGenerate: Int, probabilityMultiplier: Int) - : ListBuffer[(UserType.UserType, (Node[T_DisplayableData] => Boolean))] = { - ListBuffer[(UserType.UserType, (Node[T_DisplayableData] => Boolean))]( - (UserType.SOCIAL_NETWORK_EMPLOYEE, (sourceEventNode: Node[T_DisplayableData]) => RandomHelper.evaluateProbability(probabilityMultiplier*0.25)), - (UserType.PUBLIC_USER, (sourceEventNode: Node[T_DisplayableData]) => RandomHelper.evaluateProbability(probabilityMultiplier*0.30)) - ) - } - override def parentStateTransitionPredicates[T_DisplayableData <: DisplayableData]( - node: Node[T_DisplayableData], maxToGenerate: Int, probabilityMultiplier: Int) - : ListBuffer[(UserType.UserType, (Node[T_DisplayableData] => Boolean))] = { - ListBuffer[(UserType.UserType, (Node[T_DisplayableData] => Boolean))]( - (UserType.ADMIN, (sourceEventNode: Node[T_DisplayableData]) => RandomHelper.evaluateProbability(probabilityMultiplier*0.03)), - (UserType.SOCIAL_NETWORK_EMPLOYEE, (sourceEventNode: Node[T_DisplayableData]) => RandomHelper.evaluateProbability(probabilityMultiplier*0.25)) - ) - } + + override def getAllowableChildTypes(nodeOfThisType: Node[UserStub]): Seq[UserType.UserType] = { + Seq[UserType.UserType](UserType.SOCIAL_NETWORK_EMPLOYEE, UserType.PUBLIC_USER) + } + override def getAllowableParentTypes(nodeOfThisType: Node[UserStub]): Seq[UserType.UserType] = { + Seq[UserType.UserType](UserType.ADMIN, UserType.SOCIAL_NETWORK_EMPLOYEE) + } + override def childStateTransitionPredicates[T_DisplayableData <: DisplayableData]( + node: Node[T_DisplayableData], maxToGenerate: Int, probabilityMultiplier: Int) + : ListBuffer[(UserType.UserType, (Node[T_DisplayableData] => Boolean))] = { + ListBuffer[(UserType.UserType, (Node[T_DisplayableData] => Boolean))]( + (UserType.SOCIAL_NETWORK_EMPLOYEE, (sourceEventNode: Node[T_DisplayableData]) => RandomHelper.evaluateProbability(probabilityMultiplier*0.25)), + (UserType.PUBLIC_USER, (sourceEventNode: Node[T_DisplayableData]) => RandomHelper.evaluateProbability(probabilityMultiplier*0.30)) + ) + } + override def parentStateTransitionPredicates[T_DisplayableData <: DisplayableData]( + node: Node[T_DisplayableData], maxToGenerate: Int, probabilityMultiplier: Int) + : ListBuffer[(UserType.UserType, (Node[T_DisplayableData] => Boolean))] = { + ListBuffer[(UserType.UserType, (Node[T_DisplayableData] => Boolean))]( + (UserType.ADMIN, (sourceEventNode: Node[T_DisplayableData]) => RandomHelper.evaluateProbability(probabilityMultiplier*0.03)), + (UserType.SOCIAL_NETWORK_EMPLOYEE, (sourceEventNode: Node[T_DisplayableData]) => RandomHelper.evaluateProbability(probabilityMultiplier*0.25)) + ) + } } - - case object PUBLIC_USER extends UserType { - override def getDataType: NodeDataType[User, UserStub, UserTypes, UserType] = UserType.ADMIN + + case object PUBLIC_USER extends UserType { + override def getDataType: NodeDataType[User, UserStub, UserTypes, UserType] = UserType.ADMIN override val name = "PublicUser" - - override def getAllowableChildTypes(nodeOfThisType: Node[UserStub]): Seq[UserType.UserType] = { - Seq[UserType.UserType](UserType.PUBLIC_USER) - } - override def getAllowableParentTypes(nodeOfThisType: Node[UserStub]): Seq[UserType.UserType] = { - nodeDataTypes.allDataTypes.toSeq - } - override def childStateTransitionPredicates[T_DisplayableData <: DisplayableData]( - node: Node[T_DisplayableData], maxToGenerate: Int, probabilityMultiplier: Int) - : ListBuffer[(UserType.UserType, (Node[T_DisplayableData] => Boolean))] = { - ListBuffer[(UserType.UserType, (Node[T_DisplayableData] => Boolean))]( - (UserType.PUBLIC_USER, (sourceEventNode: Node[T_DisplayableData]) => RandomHelper.evaluateProbability(probabilityMultiplier*0.35)) - ) - } - override def parentStateTransitionPredicates[T_DisplayableData <: DisplayableData]( - node: Node[T_DisplayableData], maxToGenerate: Int, probabilityMultiplier: Int) - : ListBuffer[(UserType.UserType, (Node[T_DisplayableData] => Boolean))]= { - ListBuffer[(UserType.UserType, (Node[T_DisplayableData] => Boolean))]( - (UserType.ADMIN, (sourceEventNode: Node[T_DisplayableData]) => RandomHelper.evaluateProbability(probabilityMultiplier*0.01)), - (UserType.SOCIAL_NETWORK_EMPLOYEE, (sourceEventNode: Node[T_DisplayableData]) => RandomHelper.evaluateProbability(probabilityMultiplier*0.02)), - (UserType.PUBLIC_USER, (sourceEventNode: Node[T_DisplayableData]) => RandomHelper.evaluateProbability(probabilityMultiplier*0.35)) - ) - } - } + + override def getAllowableChildTypes(nodeOfThisType: Node[UserStub]): Seq[UserType.UserType] = { + Seq[UserType.UserType](UserType.PUBLIC_USER) + } + override def getAllowableParentTypes(nodeOfThisType: Node[UserStub]): Seq[UserType.UserType] = { + nodeDataTypes.allDataTypes.toSeq + } + override def childStateTransitionPredicates[T_DisplayableData <: DisplayableData]( + node: Node[T_DisplayableData], maxToGenerate: Int, probabilityMultiplier: Int) + : ListBuffer[(UserType.UserType, (Node[T_DisplayableData] => Boolean))] = { + ListBuffer[(UserType.UserType, (Node[T_DisplayableData] => Boolean))]( + (UserType.PUBLIC_USER, (sourceEventNode: Node[T_DisplayableData]) => RandomHelper.evaluateProbability(probabilityMultiplier*0.35)) + ) + } + override def parentStateTransitionPredicates[T_DisplayableData <: DisplayableData]( + node: Node[T_DisplayableData], maxToGenerate: Int, probabilityMultiplier: Int) + : ListBuffer[(UserType.UserType, (Node[T_DisplayableData] => Boolean))]= { + ListBuffer[(UserType.UserType, (Node[T_DisplayableData] => Boolean))]( + (UserType.ADMIN, (sourceEventNode: Node[T_DisplayableData]) => RandomHelper.evaluateProbability(probabilityMultiplier*0.01)), + (UserType.SOCIAL_NETWORK_EMPLOYEE, (sourceEventNode: Node[T_DisplayableData]) => RandomHelper.evaluateProbability(probabilityMultiplier*0.02)), + (UserType.PUBLIC_USER, (sourceEventNode: Node[T_DisplayableData]) => RandomHelper.evaluateProbability(probabilityMultiplier*0.35)) + ) + } + } } diff --git a/dg-common/src/test/resources/log4j.properties b/dg-common/src/test/resources/log4j.properties index 5ef39d73..3f9415ac 100644 --- a/dg-common/src/test/resources/log4j.properties +++ b/dg-common/src/test/resources/log4j.properties @@ -1,5 +1,5 @@ # -# Copyright 2014 DataGenerator Contributors +# Copyright DataGenerator Contributors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/dg-common/src/test/scala/org/finra/datagenerator/common/Graph/GraphTests.scala b/dg-common/src/test/scala/org/finra/datagenerator/common/Graph/GraphTests.scala index 628ceaee..f44965be 100644 --- a/dg-common/src/test/scala/org/finra/datagenerator/common/Graph/GraphTests.scala +++ b/dg-common/src/test/scala/org/finra/datagenerator/common/Graph/GraphTests.scala @@ -1,80 +1,80 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.Graph - + import java.io.ByteArrayOutputStream - -import org.finra.datagenerator.common.SocialNetwork_Example._ -import org.junit.runner.RunWith -import org.scalatest.WordSpec + +import org.finra.datagenerator.common.SocialNetwork_Example._ +import org.junit.runner.RunWith +import org.scalatest.WordSpec import org.scalatest.junit.JUnitRunner - -/** -* org.finra.datagenerator.common.Graph unit tests -*/ -@RunWith(classOf[JUnitRunner]) -class GraphTests extends WordSpec { - "A new graph" when { - "Adding some nodes" should { - "Contain all nodes and edges in the DOT output of the copied graph" in { - val initialNodeValue = UserType.ADMIN.asStub - val graph = new Graph[UserStub]( - Option(initialNodeValue), isEdgeLinkTrackingOn = true, _graphId = "TestGraph1", appendSharedDisplayIdsWithNumericalSuffix = true) - assert(graph.rootNodes.size == 1 && graph.allNodes.size == 1 && graph.rootNodes.head == graph.allNodes.head - && graph.rootNodes.head.data == initialNodeValue) - val child1 = graph.allNodes.head.addChild(UserType.ADMIN.asStub) - val child2 = graph.allNodes.head.addChild(UserType.SOCIAL_NETWORK_EMPLOYEE.asStub) - val child3 = graph.allNodes.head.addChild(UserType.PUBLIC_USER.asStub) - val grandchild1 = child1.addChild(UserType.PUBLIC_USER.asStub) - child2.addLinkToExistingChild(grandchild1) - grandchild1.addLinkToExistingParent(child3) - child3.addParent(UserType.ADMIN.asStub) - assert(graph.rootNodes.size == 2 && graph.allNodes.size == 6) - val outputStream = new ByteArrayOutputStream() - val copiedGraph = graph.deepCopy - copiedGraph.writeDotFileToOpenStream(outputStream, isSimplified = true) - val dotOutput = outputStream.toString - val expectedDotOutput = - """|digraph "Graph_TestGraph1" { - |"Admin_1" [label="Admin_1" shape="record"]; - |"Admin_1"->"Admin_2" - |"Admin_1"->"SocialNetworkEmployee_1" - |"Admin_1"->"PublicUser_1" - |"Admin_2" [label="Admin_2" shape="record"]; - |"Admin_2"->"PublicUser_2" - |"SocialNetworkEmployee_1" [label="SocialNetworkEmployee_1" shape="record"]; - |"SocialNetworkEmployee_1"->"PublicUser_2" - |"PublicUser_1" [label="PublicUser_1" shape="record"]; - |"PublicUser_1"->"PublicUser_2" - |"PublicUser_2" [label="PublicUser_2" shape="record"]; - |"Admin_3" [label="Admin_3" shape="record"]; - |"Admin_3"->"PublicUser_1" + +/** +* org.finra.datagenerator.common.Graph unit tests +*/ +@RunWith(classOf[JUnitRunner]) +class GraphTests extends WordSpec { + "A new graph" when { + "Adding some nodes" should { + "Contain all nodes and edges in the DOT output of the copied graph" in { + val initialNodeValue = UserType.ADMIN.asStub + val graph = new Graph[UserStub]( + Option(initialNodeValue), isEdgeLinkTrackingOn = true, _graphId = "TestGraph1", appendSharedDisplayIdsWithNumericalSuffix = true) + assert(graph.rootNodes.size == 1 && graph.allNodes.size == 1 && graph.rootNodes.head == graph.allNodes.head + && graph.rootNodes.head.data == initialNodeValue) + val child1 = graph.allNodes.head.addChild(UserType.ADMIN.asStub) + val child2 = graph.allNodes.head.addChild(UserType.SOCIAL_NETWORK_EMPLOYEE.asStub) + val child3 = graph.allNodes.head.addChild(UserType.PUBLIC_USER.asStub) + val grandchild1 = child1.addChild(UserType.PUBLIC_USER.asStub) + child2.addLinkToExistingChild(grandchild1) + grandchild1.addLinkToExistingParent(child3) + child3.addParent(UserType.ADMIN.asStub) + assert(graph.rootNodes.size == 2 && graph.allNodes.size == 6) + val outputStream = new ByteArrayOutputStream() + val copiedGraph = graph.deepCopy + copiedGraph.writeDotFileToOpenStream(outputStream, isSimplified = true) + val dotOutput = outputStream.toString + val expectedDotOutput = + """|digraph "Graph_TestGraph1" { + |"Admin_1" [label="Admin_1" shape="record"]; + |"Admin_1"->"Admin_2" + |"Admin_1"->"SocialNetworkEmployee_1" + |"Admin_1"->"PublicUser_1" + |"Admin_2" [label="Admin_2" shape="record"]; + |"Admin_2"->"PublicUser_2" + |"SocialNetworkEmployee_1" [label="SocialNetworkEmployee_1" shape="record"]; + |"SocialNetworkEmployee_1"->"PublicUser_2" + |"PublicUser_1" [label="PublicUser_1" shape="record"]; + |"PublicUser_1"->"PublicUser_2" + |"PublicUser_2" [label="PublicUser_2" shape="record"]; + |"Admin_3" [label="Admin_3" shape="record"]; + |"Admin_3"->"PublicUser_1" |}""".stripMargin - - val actualLines = dotOutput.lines.toList + + val actualLines = dotOutput.lines.toList val expectedLines = expectedDotOutput.lines.toList - - actualLines.foreach(line => { - assert(expectedLines.contains(line)) - }) - expectedLines.foreach(line => { - assert(actualLines.contains(line)) - }) - } - } - } + + actualLines.foreach(line => { + assert(expectedLines.contains(line)) + }) + expectedLines.foreach(line => { + assert(actualLines.contains(line)) + }) + } + } + } } \ No newline at end of file diff --git a/dg-common/src/test/scala/org/finra/datagenerator/common/Helpers/GammaGeneratorDemo.scala b/dg-common/src/test/scala/org/finra/datagenerator/common/Helpers/GammaGeneratorDemo.scala index 749d73b5..2d013ad0 100644 --- a/dg-common/src/test/scala/org/finra/datagenerator/common/Helpers/GammaGeneratorDemo.scala +++ b/dg-common/src/test/scala/org/finra/datagenerator/common/Helpers/GammaGeneratorDemo.scala @@ -1,31 +1,31 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.common.Helpers - -import org.apache.commons.math3.distribution.GammaDistribution + +import org.apache.commons.math3.distribution.GammaDistribution import org.apache.commons.math3.random.JDKRandomGenerator - -/** - * Quick and dirty demo of Gamma Generator - */ -object GammaGeneratorDemo extends App { - var gammaGenerator = new GammaDistribution(new JDKRandomGenerator() { setSeed(65536)}, 3, 2.5) - for (i <- 1 to 10000) { - val nextNumberInGammaDistribution = gammaGenerator.sample - println(nextNumberInGammaDistribution) // scalastyle:ignore - } + +/** + * Quick and dirty demo of Gamma Generator + */ +object GammaGeneratorDemo extends App { + var gammaGenerator = new GammaDistribution(new JDKRandomGenerator() { setSeed(65536)}, 3, 2.5) + for (i <- 1 to 10000) { + val nextNumberInGammaDistribution = gammaGenerator.sample + println(nextNumberInGammaDistribution) // scalastyle:ignore + } } diff --git a/dg-common/src/test/scala/org/finra/datagenerator/common/Helpers/RetryHelperTests.scala b/dg-common/src/test/scala/org/finra/datagenerator/common/Helpers/RetryHelperTests.scala index caf01b9a..b4cb23f8 100644 --- a/dg-common/src/test/scala/org/finra/datagenerator/common/Helpers/RetryHelperTests.scala +++ b/dg-common/src/test/scala/org/finra/datagenerator/common/Helpers/RetryHelperTests.scala @@ -1,104 +1,104 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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. */ - -import org.finra.datagenerator.common.Helpers.{RandomHelper, RetryHelper} -import org.junit.runner.RunWith -import org.scalatest.WordSpec + +import org.finra.datagenerator.common.Helpers.{RandomHelper, RetryHelper} +import org.junit.runner.RunWith +import org.scalatest.WordSpec import org.scalatest.junit.JUnitRunner - -/** - * Unit tests for RetryHelper - */ -@RunWith(classOf[JUnitRunner]) -class RetryHelperTests extends WordSpec { - "Retrying a method" when { - "the method always throws an exception that we support retrying" should { - "retry and eventually fail, and handling code should execute when retrying" in { - var i = 0 - var flag = false + +/** + * Unit tests for RetryHelper + */ +@RunWith(classOf[JUnitRunner]) +class RetryHelperTests extends WordSpec { + "Retrying a method" when { + "the method always throws an exception that we support retrying" should { + "retry and eventually fail, and handling code should execute when retrying" in { + var i = 0 + var flag = false var exceptionThrown = false - - try { - RetryHelper.retry(200, Seq(classOf[IllegalArgumentException]))({ - i += 1 - throw new IllegalArgumentException() - })(_ => { - flag = true - }) - } catch { - case ex: IllegalArgumentException => - assert(flag, "Handling code did not execute properly!") - exceptionThrown = true - } - assert(i == 200, "Retry count was not correct!") - assert(exceptionThrown, "Expected exception was not thrown!") - } - } - "the method sometimes throws an exception that we support retrying" should { - "retry and eventually succeed, and handling code should execute when retrying" in { - var i = 0 + + try { + RetryHelper.retry(200, Seq(classOf[IllegalArgumentException]))({ + i += 1 + throw new IllegalArgumentException() + })(_ => { + flag = true + }) + } catch { + case ex: IllegalArgumentException => + assert(flag, "Handling code did not execute properly!") + exceptionThrown = true + } + assert(i == 200, "Retry count was not correct!") + assert(exceptionThrown, "Expected exception was not thrown!") + } + } + "the method sometimes throws an exception that we support retrying" should { + "retry and eventually succeed, and handling code should execute when retrying" in { + var i = 0 + var flag = false + + RetryHelper.retry(200, Seq(classOf[IllegalArgumentException]))({ + i += 1 + val thisTryShouldFail = + if (i == 1) { + true + } else if (i < 200) { + RandomHelper.evaluateProbability(0.9) + } else { + false + } + if (thisTryShouldFail) { + throw new IllegalArgumentException() + } + })(_ => flag = true) + assert(i <= 200, "Retry count was not correct!") + assert(flag, "Handling code did not execute properly!") + } + } + "the method sometimes throws an exception that we do NOT support retrying" should { + "fail, with the same exception, and handling code should not execute" in { + var i = 0 var flag = false - - RetryHelper.retry(200, Seq(classOf[IllegalArgumentException]))({ - i += 1 - val thisTryShouldFail = - if (i == 1) { - true - } else if (i < 200) { - RandomHelper.evaluateProbability(0.9) - } else { - false - } - if (thisTryShouldFail) { - throw new IllegalArgumentException() - } - })(_ => flag = true) - assert(i <= 200, "Retry count was not correct!") - assert(flag, "Handling code did not execute properly!") - } - } - "the method sometimes throws an exception that we do NOT support retrying" should { - "fail, with the same exception, and handling code should not execute" in { - var i = 0 - var flag = false var exceptionThrown = false - - try { - RetryHelper.retry(200, Seq(classOf[IllegalArgumentException]))({ - i += 1 - val thisTryShouldFail = - if (i == 1) { - true - } else if (i < 200) { - RandomHelper.evaluateProbability(0.9) - } else { - false - } - if (thisTryShouldFail) { - throw new NullPointerException() - } - })(_ => flag = true) - } catch { - case ex: NullPointerException => - assert(!flag, "Handling code should not have executed!") - exceptionThrown = true - } - assert(i == 1, "Retry count was not correct!") - assert(exceptionThrown, "Expected exception was not thrown!") - } - } - } + + try { + RetryHelper.retry(200, Seq(classOf[IllegalArgumentException]))({ + i += 1 + val thisTryShouldFail = + if (i == 1) { + true + } else if (i < 200) { + RandomHelper.evaluateProbability(0.9) + } else { + false + } + if (thisTryShouldFail) { + throw new NullPointerException() + } + })(_ => flag = true) + } catch { + case ex: NullPointerException => + assert(!flag, "Handling code should not have executed!") + exceptionThrown = true + } + assert(i == 1, "Retry count was not correct!") + assert(exceptionThrown, "Expected exception was not thrown!") + } + } + } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/consumer/DataConsumer.java b/dg-core/src/main/java/org/finra/datagenerator/consumer/DataConsumer.java index 15b30ac8..acc55769 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/consumer/DataConsumer.java +++ b/dg-core/src/main/java/org/finra/datagenerator/consumer/DataConsumer.java @@ -1,254 +1,254 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.consumer; - -import org.apache.log4j.Logger; -import org.finra.datagenerator.reporting.ReportingHandler; + +import org.apache.log4j.Logger; +import org.finra.datagenerator.reporting.ReportingHandler; import org.finra.datagenerator.writer.DataWriter; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.URL; -import java.net.URLConnection; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.concurrent.Callable; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.Future; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.URL; +import java.net.URLConnection; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; import java.util.concurrent.atomic.AtomicBoolean; - -/** - * Processes search results produced by a SearchDistributor. - */ + +/** + * Processes search results produced by a SearchDistributor. + */ public class DataConsumer { - - private static final Logger log = Logger.getLogger(DataConsumer.class); - private DataPipe dataPipe; - private final List dataTransformers = new ArrayList<>(); - private final List dataWriters = new ArrayList<>(); + + private static final Logger log = Logger.getLogger(DataConsumer.class); + private DataPipe dataPipe; + private final List dataTransformers = new ArrayList<>(); + private final List dataWriters = new ArrayList<>(); private AtomicBoolean hardExitFlag; - + private long maxNumberOfLines = 10000; - - private String reportingHost; + + private String reportingHost; private final ExecutorService threadPool = Executors.newFixedThreadPool(1); - - /** - * Public default constructor - */ - public DataConsumer() { - this.dataPipe = new DataPipe(this); - } - - /** - * Adds a data transformer to the end of the data transformers list - * - * @param dc a reference to a DataTransformer - * @return a reference to the current DataConsumer - */ - public DataConsumer addDataTransformer(DataTransformer dc) { - dataTransformers.add(dc); - return this; - } - - /** - * Adds a DataWriter to the end of the dataWriters list - * - * @param ow a reference to a data writer - * @return a reference to the current DataConsumer - */ - public DataConsumer addDataWriter(DataWriter ow) { - this.dataWriters.add(ow); - return this; - } - - /** - * A setter for the reporting host - * - * @param reportingHost a String containing the URL of the reporting host - * @return a reference to the current DataConsumer - */ - public DataConsumer setReportingHost(String reportingHost) { - this.reportingHost = reportingHost; - return this; - } - - /** - * A setter for maxNumberOfLines - * - * @param maxNumberOfLines the max number of lines - * @return a reference to the current DataConsumer - */ - public DataConsumer setMaxNumberOfLines(long maxNumberOfLines) { - this.maxNumberOfLines = maxNumberOfLines; - return this; - } - - /** - * Setter for exit flag - * - * @param flag a reference to an AtomicBoolean - * @return a reference to the current DataConsumer - */ - public DataConsumer setExitFlag(AtomicBoolean flag) { - hardExitFlag = flag; - return this; - } - - public AtomicBoolean getExitFlag() { - return hardExitFlag; - } - - public long getMaxNumberOfLines() { - return this.maxNumberOfLines; - } - - public String getReportingHost() { - return this.reportingHost; - } - - public DataPipe getDataPipe() { - return this.dataPipe; - } - - /** - * Consumes a produced result. Calls every transformer in sequence, then - * calls every dataWriter in sequence. - * - * @param initialVars a map containing the initial variables assignments - * @return the number of lines written - */ - public int consume(Map initialVars) { + + /** + * Public default constructor + */ + public DataConsumer() { this.dataPipe = new DataPipe(this); - - // Set initial variables - for (Map.Entry ent : initialVars.entrySet()) { - dataPipe.getDataMap().put(ent.getKey(), ent.getValue()); + } + + /** + * Adds a data transformer to the end of the data transformers list + * + * @param dc a reference to a DataTransformer + * @return a reference to the current DataConsumer + */ + public DataConsumer addDataTransformer(DataTransformer dc) { + dataTransformers.add(dc); + return this; + } + + /** + * Adds a DataWriter to the end of the dataWriters list + * + * @param ow a reference to a data writer + * @return a reference to the current DataConsumer + */ + public DataConsumer addDataWriter(DataWriter ow) { + this.dataWriters.add(ow); + return this; + } + + /** + * A setter for the reporting host + * + * @param reportingHost a String containing the URL of the reporting host + * @return a reference to the current DataConsumer + */ + public DataConsumer setReportingHost(String reportingHost) { + this.reportingHost = reportingHost; + return this; + } + + /** + * A setter for maxNumberOfLines + * + * @param maxNumberOfLines the max number of lines + * @return a reference to the current DataConsumer + */ + public DataConsumer setMaxNumberOfLines(long maxNumberOfLines) { + this.maxNumberOfLines = maxNumberOfLines; + return this; + } + + /** + * Setter for exit flag + * + * @param flag a reference to an AtomicBoolean + * @return a reference to the current DataConsumer + */ + public DataConsumer setExitFlag(AtomicBoolean flag) { + hardExitFlag = flag; + return this; + } + + public AtomicBoolean getExitFlag() { + return hardExitFlag; + } + + public long getMaxNumberOfLines() { + return this.maxNumberOfLines; + } + + public String getReportingHost() { + return this.reportingHost; + } + + public DataPipe getDataPipe() { + return this.dataPipe; + } + + /** + * Consumes a produced result. Calls every transformer in sequence, then + * calls every dataWriter in sequence. + * + * @param initialVars a map containing the initial variables assignments + * @return the number of lines written + */ + public int consume(Map initialVars) { + this.dataPipe = new DataPipe(this); + + // Set initial variables + for (Map.Entry ent : initialVars.entrySet()) { + dataPipe.getDataMap().put(ent.getKey(), ent.getValue()); } - - // Call transformers - for (DataTransformer dc : dataTransformers) { - dc.transform(dataPipe); + + // Call transformers + for (DataTransformer dc : dataTransformers) { + dc.transform(dataPipe); } - - // Call writers - for (DataWriter oneOw : dataWriters) { - try { - oneOw.writeOutput(dataPipe); - } catch (Exception e) { //NOPMD - log.error("Exception in DataWriter", e); - } + + // Call writers + for (DataWriter oneOw : dataWriters) { + try { + oneOw.writeOutput(dataPipe); + } catch (Exception e) { //NOPMD + log.error("Exception in DataWriter", e); + } } - - return 1; - } - - /** - * Consumes a produced result. Calls every transformer in sequence, then - * returns the produced result(s) back to the caller - * - * Children may override this class to produce more than one consumed result - * - * @param initialVars a map containing the initial variables assignments - * @return the produced output map - */ - public List> transformAndReturn(Map initialVars) { + + return 1; + } + + /** + * Consumes a produced result. Calls every transformer in sequence, then + * returns the produced result(s) back to the caller + * + * Children may override this class to produce more than one consumed result + * + * @param initialVars a map containing the initial variables assignments + * @return the produced output map + */ + public List> transformAndReturn(Map initialVars) { this.dataPipe = new DataPipe(this); - - // Set initial variables - for (Map.Entry ent : initialVars.entrySet()) { - dataPipe.getDataMap().put(ent.getKey(), ent.getValue()); + + // Set initial variables + for (Map.Entry ent : initialVars.entrySet()) { + dataPipe.getDataMap().put(ent.getKey(), ent.getValue()); } - - // Call transformers - for (DataTransformer dc : dataTransformers) { - dc.transform(dataPipe); + + // Call transformers + for (DataTransformer dc : dataTransformers) { + dc.transform(dataPipe); } - - List> result = new LinkedList<>(); - result.add(dataPipe.getDataMap()); - return result; - } - - /** - * Creates a future for sending a request to the reporting host and ignoring - * the response. - * - * @param path the path at the reporting host where the request should be - * sent - * @return a {@link java.util.concurrent.Future} that wraps this activity - */ - public Future sendRequest(final String path) { - return sendRequest(path, null); - } - - /** - * Creates a future that will send a request to the reporting host and call - * the handler with the response - * - * @param path the path at the reporting host which the request will be made - * @param reportingHandler the handler to receive the response once executed - * and recieved - * @return a {@link java.util.concurrent.Future} for handing the request - */ - public Future sendRequest(final String path, final ReportingHandler reportingHandler) { - return threadPool.submit(new Callable() { - @Override - public String call() { + + List> result = new LinkedList<>(); + result.add(dataPipe.getDataMap()); + return result; + } + + /** + * Creates a future for sending a request to the reporting host and ignoring + * the response. + * + * @param path the path at the reporting host where the request should be + * sent + * @return a {@link java.util.concurrent.Future} that wraps this activity + */ + public Future sendRequest(final String path) { + return sendRequest(path, null); + } + + /** + * Creates a future that will send a request to the reporting host and call + * the handler with the response + * + * @param path the path at the reporting host which the request will be made + * @param reportingHandler the handler to receive the response once executed + * and recieved + * @return a {@link java.util.concurrent.Future} for handing the request + */ + public Future sendRequest(final String path, final ReportingHandler reportingHandler) { + return threadPool.submit(new Callable() { + @Override + public String call() { String response = getResponse(path); - - if (reportingHandler != null) { - reportingHandler.handleResponse(response); + + if (reportingHandler != null) { + reportingHandler.handleResponse(response); } - - return response; - } - }); - } - - /** - * Sends a synchronous request to the reporting host returning the response - * - * @param path the path inside the reporting host to send the request to - * @return a String containing the response - */ - public String sendRequestSync(String path) { - return getResponse(path); - } - - private String getResponse(String path) { + + return response; + } + }); + } + + /** + * Sends a synchronous request to the reporting host returning the response + * + * @param path the path inside the reporting host to send the request to + * @return a String containing the response + */ + public String sendRequestSync(String path) { + return getResponse(path); + } + + private String getResponse(String path) { StringBuilder content = new StringBuilder(); - - try { + + try { URL url = new URL("http://" + reportingHost + "/" + path); - - URLConnection urlConnection = url.openConnection(); - try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()))) { - String line; - while ((line = bufferedReader.readLine()) != null) { - content.append(line).append("\n"); - } - } - } catch (IOException e) { - log.error("Error while reading: " + path + " from " + reportingHost); - } - return content.toString(); - } + + URLConnection urlConnection = url.openConnection(); + try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()))) { + String line; + while ((line = bufferedReader.readLine()) != null) { + content.append(line).append("\n"); + } + } + } catch (IOException e) { + log.error("Error while reading: " + path + " from " + reportingHost); + } + return content.toString(); + } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/consumer/DataPipe.java b/dg-core/src/main/java/org/finra/datagenerator/consumer/DataPipe.java index bb652444..71862a7c 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/consumer/DataPipe.java +++ b/dg-core/src/main/java/org/finra/datagenerator/consumer/DataPipe.java @@ -1,100 +1,100 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.consumer; - -import java.util.HashMap; -import java.util.Map; + +import java.util.HashMap; +import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; - -/** - * Wrapper for search results. - */ + +/** + * Wrapper for search results. + */ public class DataPipe { - - private final Map dataMap = new HashMap<>(); + + private final Map dataMap = new HashMap<>(); private final DataConsumer dataConsumer; - - /** - * Default constructor. Initializes the dataConsumer to {@link DataConsumer} - */ - public DataPipe() { + + /** + * Default constructor. Initializes the dataConsumer to {@link DataConsumer} + */ + public DataPipe() { dataConsumer = new DataConsumer(); - + } - - /** - * Constructor sets a user given {@link DataConsumer} - * - * @param dataConsumer a reference to {@link DataConsumer} - */ - public DataPipe(final DataConsumer dataConsumer) { - this.dataConsumer = dataConsumer; + + /** + * Constructor sets a user given {@link DataConsumer} + * + * @param dataConsumer a reference to {@link DataConsumer} + */ + public DataPipe(final DataConsumer dataConsumer) { + this.dataConsumer = dataConsumer; } - - /** - * Constructor sets a max number of lines and shares an exit flag with the - * DataPipe - * - * @param maxNumberOfLines a long containing the maximum number of lines - * expected to flow through this pipe - * @param flag an AtomicBoolean exit flag - */ - public DataPipe(final long maxNumberOfLines, final AtomicBoolean flag) { - this.dataConsumer = new DataConsumer().setMaxNumberOfLines(maxNumberOfLines).setExitFlag(flag); + + /** + * Constructor sets a max number of lines and shares an exit flag with the + * DataPipe + * + * @param maxNumberOfLines a long containing the maximum number of lines + * expected to flow through this pipe + * @param flag an AtomicBoolean exit flag + */ + public DataPipe(final long maxNumberOfLines, final AtomicBoolean flag) { + this.dataConsumer = new DataConsumer().setMaxNumberOfLines(maxNumberOfLines).setExitFlag(flag); } - - public DataConsumer getDataConsumer() { - return this.dataConsumer; + + public DataConsumer getDataConsumer() { + return this.dataConsumer; } - - public Map getDataMap() { - return dataMap; + + public Map getDataMap() { + return dataMap; } - - /** - * Given an array of variable names, returns a pipe delimited {@link String} - * of values. - * - * @param outTemplate an array of {@link String}s containing the variable - * names. - * @return a pipe delimited {@link String} of values - */ - public String getPipeDelimited(String[] outTemplate) { - return getDelimited(outTemplate, "|"); + + /** + * Given an array of variable names, returns a pipe delimited {@link String} + * of values. + * + * @param outTemplate an array of {@link String}s containing the variable + * names. + * @return a pipe delimited {@link String} of values + */ + public String getPipeDelimited(String[] outTemplate) { + return getDelimited(outTemplate, "|"); } - - /** - * Given an array of variable names, returns a delimited {@link String} - * of values. - * - * @param outTemplate an array of {@link String}s containing the variable - * names. - * @param separator the delimiter to use - * @return a pipe delimited {@link String} of values - */ - public String getDelimited(String[] outTemplate, String separator) { + + /** + * Given an array of variable names, returns a delimited {@link String} + * of values. + * + * @param outTemplate an array of {@link String}s containing the variable + * names. + * @param separator the delimiter to use + * @return a pipe delimited {@link String} of values + */ + public String getDelimited(String[] outTemplate, String separator) { StringBuilder b = new StringBuilder(1024); - - for (String var : outTemplate) { - if (b.length() > 0) { - b.append(separator); - } - b.append(getDataMap().get(var)); + + for (String var : outTemplate) { + if (b.length() > 0) { + b.append(separator); + } + b.append(getDataMap().get(var)); } - - return b.toString(); - } + + return b.toString(); + } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/consumer/DataTransformer.java b/dg-core/src/main/java/org/finra/datagenerator/consumer/DataTransformer.java index eac67915..5d0f8ea3 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/consumer/DataTransformer.java +++ b/dg-core/src/main/java/org/finra/datagenerator/consumer/DataTransformer.java @@ -1,29 +1,29 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.consumer; - -/** - * Applies transformations on a given DataPipe. - */ + +/** + * Applies transformations on a given DataPipe. + */ public interface DataTransformer { - - /** - * Applies transformations on a given data - * - * @param cr a reference to DataPipe from which to read the current map - */ - void transform(DataPipe cr); + + /** + * Applies transformations on a given data + * + * @param cr a reference to DataPipe from which to read the current map + */ + void transform(DataPipe cr); } diff --git a/dg-core/src/main/java/org/finra/datagenerator/consumer/EquivalenceClassTransformer.java b/dg-core/src/main/java/org/finra/datagenerator/consumer/EquivalenceClassTransformer.java index af07839c..11466c2f 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/consumer/EquivalenceClassTransformer.java +++ b/dg-core/src/main/java/org/finra/datagenerator/consumer/EquivalenceClassTransformer.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 DataGenerator Contributors + * Copyright DataGenerator Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/dg-core/src/main/java/org/finra/datagenerator/consumer/RepeatingDataConsumer.java b/dg-core/src/main/java/org/finra/datagenerator/consumer/RepeatingDataConsumer.java index 454d6b77..7a4557b4 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/consumer/RepeatingDataConsumer.java +++ b/dg-core/src/main/java/org/finra/datagenerator/consumer/RepeatingDataConsumer.java @@ -1,51 +1,51 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.consumer; - + import java.util.Map; - -/** - * Consumer that repeat whole set necessary number of times - */ -public class RepeatingDataConsumer extends DataConsumer { + +/** + * Consumer that repeat whole set necessary number of times + */ +public class RepeatingDataConsumer extends DataConsumer { private int repeatNumber = 1; - - public int getRepeatNumber() { - return repeatNumber; + + public int getRepeatNumber() { + return repeatNumber; } - - public void setRepeatNumber(int repeatNumber) { - this.repeatNumber = repeatNumber; + + public void setRepeatNumber(int repeatNumber) { + this.repeatNumber = repeatNumber; } - - /** - * Overridden 'consume' method. Corresponding parent method will be called necessary number of times - * - * @param initialVars - a map containing the initial variables assignments - * @return the number of lines written - */ - public int consume(Map initialVars) { + + /** + * Overridden 'consume' method. Corresponding parent method will be called necessary number of times + * + * @param initialVars - a map containing the initial variables assignments + * @return the number of lines written + */ + public int consume(Map initialVars) { int result = 0; - - for (int i = 0; i < repeatNumber; i++) { - result += super.consume(initialVars); + + for (int i = 0; i < repeatNumber; i++) { + result += super.consume(initialVars); } - - return result; + + return result; } - + } diff --git a/dg-core/src/main/java/org/finra/datagenerator/distributor/ProcessingStrategy.java b/dg-core/src/main/java/org/finra/datagenerator/distributor/ProcessingStrategy.java index 7da965ee..72bafde6 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/distributor/ProcessingStrategy.java +++ b/dg-core/src/main/java/org/finra/datagenerator/distributor/ProcessingStrategy.java @@ -1,35 +1,35 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.distributor; - + import java.util.Map; - -/** - * Created by Brijesh on 9/29/2015. - */ + +/** + * Created by Brijesh on 9/29/2015. + */ public interface ProcessingStrategy { - - /** - * Takes the map generated from SCXMLFrontier and pass it - * to the consumer for data processing - * - * @param resultsMap map of String and String - * - */ + + /** + * Takes the map generated from SCXMLFrontier and pass it + * to the consumer for data processing + * + * @param resultsMap map of String and String + * + */ void processOutput(Map resultsMap); - + } diff --git a/dg-core/src/main/java/org/finra/datagenerator/distributor/SearchDistributor.java b/dg-core/src/main/java/org/finra/datagenerator/distributor/SearchDistributor.java index 8a260b5e..cfcdbf29 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/distributor/SearchDistributor.java +++ b/dg-core/src/main/java/org/finra/datagenerator/distributor/SearchDistributor.java @@ -1,45 +1,45 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.distributor; - -import org.finra.datagenerator.consumer.DataConsumer; + +import org.finra.datagenerator.consumer.DataConsumer; import org.finra.datagenerator.engine.Frontier; - + import java.util.List; - -/** - * Takes Frontiers produced by an Engine and completes the search on each Frontier, - * giving the results to a DataConsumer for post-processing and outputting. - */ + +/** + * Takes Frontiers produced by an Engine and completes the search on each Frontier, + * giving the results to a DataConsumer for post-processing and outputting. + */ public interface SearchDistributor { - - /** - * Sets the data consumer - * - * @param dataConsumer the DataConsumer - * @return a reference to the current SearchDistributor - */ + + /** + * Sets the data consumer + * + * @param dataConsumer the DataConsumer + * @return a reference to the current SearchDistributor + */ SearchDistributor setDataConsumer(DataConsumer dataConsumer); - - /** - * Distributes the list of the problems - * - * @param frontierList a list containing the search problems to - * distribute - */ + + /** + * Distributes the list of the problems + * + * @param frontierList a list containing the search problems to + * distribute + */ void distribute(List frontierList); - + } diff --git a/dg-core/src/main/java/org/finra/datagenerator/distributor/multithreaded/DefaultDistributor.java b/dg-core/src/main/java/org/finra/datagenerator/distributor/multithreaded/DefaultDistributor.java index 5371dd3b..39c6620c 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/distributor/multithreaded/DefaultDistributor.java +++ b/dg-core/src/main/java/org/finra/datagenerator/distributor/multithreaded/DefaultDistributor.java @@ -1,153 +1,153 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.distributor.multithreaded; - -import org.apache.log4j.Logger; -import org.finra.datagenerator.consumer.DataConsumer; -import org.finra.datagenerator.distributor.SearchDistributor; + +import org.apache.log4j.Logger; +import org.finra.datagenerator.consumer.DataConsumer; +import org.finra.datagenerator.distributor.SearchDistributor; import org.finra.datagenerator.engine.Frontier; - -import java.io.IOException; -import java.util.List; -import java.util.Map; -import java.util.Queue; -import java.util.concurrent.ConcurrentLinkedQueue; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; + +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.Queue; +import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicBoolean; - -/** - * Uses a multithreaded approach to process Frontiers in parallel. - */ + +/** + * Uses a multithreaded approach to process Frontiers in parallel. + */ public class DefaultDistributor implements SearchDistributor { - - /** - * Logger - */ + + /** + * Logger + */ protected static final Logger log = Logger.getLogger(DefaultDistributor.class); - - private int threadCount = 1; - private final Queue> queue = new ConcurrentLinkedQueue<>(); - private DataConsumer userDataOutput; - private final AtomicBoolean searchExitFlag = new AtomicBoolean(false); - private final AtomicBoolean hardExitFlag = new AtomicBoolean(false); + + private int threadCount = 1; + private final Queue> queue = new ConcurrentLinkedQueue<>(); + private DataConsumer userDataOutput; + private final AtomicBoolean searchExitFlag = new AtomicBoolean(false); + private final AtomicBoolean hardExitFlag = new AtomicBoolean(false); private long maxNumberOfLines = -1; - - /** - * Sets the maximum number of lines to generate - * - * @param numberOfLines a long containing the maximum number of lines to - * generate - * @return a reference to the current DefaultDistributor - */ - public DefaultDistributor setMaxNumberOfLines(long numberOfLines) { - this.maxNumberOfLines = numberOfLines; - return this; + + /** + * Sets the maximum number of lines to generate + * + * @param numberOfLines a long containing the maximum number of lines to + * generate + * @return a reference to the current DefaultDistributor + */ + public DefaultDistributor setMaxNumberOfLines(long numberOfLines) { + this.maxNumberOfLines = numberOfLines; + return this; } - - /** - * Sets the number of threads to use - * - * @param threadCount an int containing the thread count - * @return a reference to the current DefaultDistributor - */ - public DefaultDistributor setThreadCount(int threadCount) { - this.threadCount = threadCount; - return this; + + /** + * Sets the number of threads to use + * + * @param threadCount an int containing the thread count + * @return a reference to the current DefaultDistributor + */ + public DefaultDistributor setThreadCount(int threadCount) { + this.threadCount = threadCount; + return this; } - - @Override - public SearchDistributor setDataConsumer(DataConsumer dataConsumer) { - this.userDataOutput = dataConsumer; - dataConsumer.setExitFlag(hardExitFlag); - return this; + + @Override + public SearchDistributor setDataConsumer(DataConsumer dataConsumer) { + this.userDataOutput = dataConsumer; + dataConsumer.setExitFlag(hardExitFlag); + return this; } - - @Override + + @Override public void distribute(List frontierList) { - - // Start output thread (consumer) - Thread outputThread = new Thread() { - @Override - public void run() { - try { - produceOutput(); - } catch (IOException ex) { - log.error("Error during output", ex); - } - } - }; + + // Start output thread (consumer) + Thread outputThread = new Thread() { + @Override + public void run() { + try { + produceOutput(); + } catch (IOException ex) { + log.error("Error during output", ex); + } + } + }; outputThread.start(); - - // Start search threads (producers) - ExecutorService threadPool = Executors.newFixedThreadPool(threadCount); - for (Frontier frontier : frontierList) { - Runnable worker = null; - worker = new SearchWorker(frontier, queue, searchExitFlag); - threadPool.execute(worker); + + // Start search threads (producers) + ExecutorService threadPool = Executors.newFixedThreadPool(threadCount); + for (Frontier frontier : frontierList) { + Runnable worker = null; + worker = new SearchWorker(frontier, queue, searchExitFlag); + threadPool.execute(worker); } - - threadPool.shutdown(); - try { - // Wait for exit - while (!threadPool.isTerminated()) { - log.debug("Waiting for threadpool to terminate"); - Thread.sleep(1000); + + threadPool.shutdown(); + try { + // Wait for exit + while (!threadPool.isTerminated()) { + log.debug("Waiting for threadpool to terminate"); + Thread.sleep(1000); } - - //alert the output thread that the worker threads are done + + //alert the output thread that the worker threads are done searchExitFlag.set(true); - - // Now, wait for the output thread to get done - outputThread.join(); - log.info("DONE"); - } catch (InterruptedException ex) { - log.info("Interrupted !!... exiting", ex); - } + + // Now, wait for the output thread to get done + outputThread.join(); + log.info("DONE"); + } catch (InterruptedException ex) { + log.info("Interrupted !!... exiting", ex); + } } - - private void produceOutput() throws IOException { - long lines = 0; - while (!Thread.interrupted() && !hardExitFlag.get()) { - Map row = queue.poll(); - if (row != null) { - lines += userDataOutput.consume(row); - } else { - if (searchExitFlag.get()) { - break; - } else if (hardExitFlag.get()) { - break; - } + + private void produceOutput() throws IOException { + long lines = 0; + while (!Thread.interrupted() && !hardExitFlag.get()) { + Map row = queue.poll(); + if (row != null) { + lines += userDataOutput.consume(row); + } else { + if (searchExitFlag.get()) { + break; + } else if (hardExitFlag.get()) { + break; + } + } + + if (maxNumberOfLines != -1 && lines >= maxNumberOfLines) { + break; } - - if (maxNumberOfLines != -1 && lines >= maxNumberOfLines) { - break; - } } - - if (searchExitFlag.get()) { - log.info("Exiting, search exit flag is true"); + + if (searchExitFlag.get()) { + log.info("Exiting, search exit flag is true"); } - - if (hardExitFlag.get()) { - log.info("Exiting, consumer exit flag is true"); + + if (hardExitFlag.get()) { + log.info("Exiting, consumer exit flag is true"); } - - searchExitFlag.set(true); - hardExitFlag.set(true); + + searchExitFlag.set(true); + hardExitFlag.set(true); } - + } diff --git a/dg-core/src/main/java/org/finra/datagenerator/distributor/multithreaded/QueueResultsProcessing.java b/dg-core/src/main/java/org/finra/datagenerator/distributor/multithreaded/QueueResultsProcessing.java index 82545e41..4414891b 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/distributor/multithreaded/QueueResultsProcessing.java +++ b/dg-core/src/main/java/org/finra/datagenerator/distributor/multithreaded/QueueResultsProcessing.java @@ -1,62 +1,62 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.distributor.multithreaded; - -import org.apache.log4j.Logger; + +import org.apache.log4j.Logger; import org.finra.datagenerator.distributor.ProcessingStrategy; - -import java.io.Serializable; -import java.util.Map; + +import java.io.Serializable; +import java.util.Map; import java.util.Queue; - -/** - * A simple wrapper for storing Frontier search results into a queue - */ + +/** + * A simple wrapper for storing Frontier search results into a queue + */ public class QueueResultsProcessing implements ProcessingStrategy, Serializable { - + private static final Logger log = Logger.getLogger(QueueResultsProcessing.class); - + private final Queue> queue; - - /** - * A simple wrapper for storing Frontier search results into a queue. Poll the provided queue to access the results. - * - * @param queue the queue to use as storage of the produced results - */ - public QueueResultsProcessing(final Queue> queue) { - this.queue = queue; + + /** + * A simple wrapper for storing Frontier search results into a queue. Poll the provided queue to access the results. + * + * @param queue the queue to use as storage of the produced results + */ + public QueueResultsProcessing(final Queue> queue) { + this.queue = queue; } - - /** - * Stores the output from a Frontier into the queue, pausing and waiting if the given queue is too large - * - * @param resultsMap map of String and String representing the output of a Frontier's DFS - */ - @Override - public void processOutput(Map resultsMap) { + + /** + * Stores the output from a Frontier into the queue, pausing and waiting if the given queue is too large + * + * @param resultsMap map of String and String representing the output of a Frontier's DFS + */ + @Override + public void processOutput(Map resultsMap) { queue.add(resultsMap); - - if (queue.size() > 10000) { - log.info("Queue size " + queue.size() + ", waiting"); - try { - Thread.sleep(500); - } catch (InterruptedException ex) { - log.info("Interrupted ", ex); - } - } - } + + if (queue.size() > 10000) { + log.info("Queue size " + queue.size() + ", waiting"); + try { + Thread.sleep(500); + } catch (InterruptedException ex) { + log.info("Interrupted ", ex); + } + } + } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/distributor/multithreaded/SearchWorker.java b/dg-core/src/main/java/org/finra/datagenerator/distributor/multithreaded/SearchWorker.java index 763449d3..35ad2593 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/distributor/multithreaded/SearchWorker.java +++ b/dg-core/src/main/java/org/finra/datagenerator/distributor/multithreaded/SearchWorker.java @@ -1,58 +1,58 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.distributor.multithreaded; - -import org.apache.log4j.Logger; + +import org.apache.log4j.Logger; import org.finra.datagenerator.engine.Frontier; - -import java.util.Map; -import java.util.Queue; + +import java.util.Map; +import java.util.Queue; import java.util.concurrent.atomic.AtomicBoolean; - -/** - * Implementation of a partial search produced by an Engine's bootstrapping. - */ + +/** + * Implementation of a partial search produced by an Engine's bootstrapping. + */ public class SearchWorker implements Runnable { - - /** - * Logger - */ + + /** + * Logger + */ private static final Logger log = Logger.getLogger(SearchWorker.class); - - private final Frontier frontier; - private final Queue> queue; + + private final Frontier frontier; + private final Queue> queue; private final AtomicBoolean flag; - - /** - * Public constructor - * - * @param frontier the problem to search - * @param queue a queue that will receive the results - * @param flag shared exit flag - */ - public SearchWorker(final Frontier frontier, final Queue> queue, final AtomicBoolean flag) { - this.queue = queue; - this.frontier = frontier; - this.flag = flag; + + /** + * Public constructor + * + * @param frontier the problem to search + * @param queue a queue that will receive the results + * @param flag shared exit flag + */ + public SearchWorker(final Frontier frontier, final Queue> queue, final AtomicBoolean flag) { + this.queue = queue; + this.frontier = frontier; + this.flag = flag; + } + + @Override + public void run() { + log.info(Thread.currentThread().getName() + " is starting DFS"); + frontier.searchForScenarios(new QueueResultsProcessing(queue), flag); + log.info(Thread.currentThread().getName() + " is done with DFS"); } - - @Override - public void run() { - log.info(Thread.currentThread().getName() + " is starting DFS"); - frontier.searchForScenarios(new QueueResultsProcessing(queue), flag); - log.info(Thread.currentThread().getName() + " is done with DFS"); - } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/distributor/spark/CatchAndStoreProcessing.java b/dg-core/src/main/java/org/finra/datagenerator/distributor/spark/CatchAndStoreProcessing.java index 23e769bf..8f5ec9e6 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/distributor/spark/CatchAndStoreProcessing.java +++ b/dg-core/src/main/java/org/finra/datagenerator/distributor/spark/CatchAndStoreProcessing.java @@ -1,50 +1,50 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.distributor.spark; - + import org.finra.datagenerator.distributor.ProcessingStrategy; - -import java.io.Serializable; -import java.util.List; + +import java.io.Serializable; +import java.util.List; import java.util.Map; - -/** - * Simple wrapper for storing Frontier results into a List - */ + +/** + * Simple wrapper for storing Frontier results into a List + */ public class CatchAndStoreProcessing implements ProcessingStrategy, Serializable { - + private final List> storage; - - /** - * Simple wrapper for storing Frontier results into a List - * - * @param storage the List to store into - */ - public CatchAndStoreProcessing(final List> storage) { - this.storage = storage; + + /** + * Simple wrapper for storing Frontier results into a List + * + * @param storage the List to store into + */ + public CatchAndStoreProcessing(final List> storage) { + this.storage = storage; + } + + /** + * Adds the passes results map to the given List. Poll the List to access the results. + * + * @param resultsMap map of String and String to add to the list + */ + @Override + public void processOutput(Map resultsMap) { + storage.add(resultsMap); } - - /** - * Adds the passes results map to the given List. Poll the List to access the results. - * - * @param resultsMap map of String and String to add to the list - */ - @Override - public void processOutput(Map resultsMap) { - storage.add(resultsMap); - } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/distributor/spark/SparkDistributor.java b/dg-core/src/main/java/org/finra/datagenerator/distributor/spark/SparkDistributor.java index 3f64c005..c7710cde 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/distributor/spark/SparkDistributor.java +++ b/dg-core/src/main/java/org/finra/datagenerator/distributor/spark/SparkDistributor.java @@ -1,87 +1,87 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.distributor.spark; - -import org.apache.spark.SparkConf; -import org.apache.spark.api.java.JavaRDD; -import org.apache.spark.api.java.JavaSparkContext; -import org.apache.spark.api.java.function.FlatMapFunction; -import org.finra.datagenerator.consumer.DataConsumer; -import org.finra.datagenerator.distributor.SearchDistributor; + +import org.apache.spark.SparkConf; +import org.apache.spark.api.java.JavaRDD; +import org.apache.spark.api.java.JavaSparkContext; +import org.apache.spark.api.java.function.FlatMapFunction; +import org.finra.datagenerator.consumer.DataConsumer; +import org.finra.datagenerator.distributor.SearchDistributor; import org.finra.datagenerator.engine.Frontier; - -import java.io.Serializable; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; + +import java.io.Serializable; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; - -/** - * Created by Brijesh - */ + +/** + * Created by Brijesh + */ public class SparkDistributor implements SearchDistributor, Serializable { - - private static DataConsumer dataConsumer = new DataConsumer(); - private final AtomicBoolean searchExitFlag = new AtomicBoolean(false); - private final AtomicBoolean hardExitFlag = new AtomicBoolean(false); + + private static DataConsumer dataConsumer = new DataConsumer(); + private final AtomicBoolean searchExitFlag = new AtomicBoolean(false); + private final AtomicBoolean hardExitFlag = new AtomicBoolean(false); private final String masterURL; - + private JavaRDD> generatedMaps; - - /** - * Sets the master URL - * - * @param masterURL a String containing master URL - */ - public SparkDistributor(final String masterURL) { - this.masterURL = masterURL; + + /** + * Sets the master URL + * + * @param masterURL a String containing master URL + */ + public SparkDistributor(final String masterURL) { + this.masterURL = masterURL; } - - @Override - public SparkDistributor setDataConsumer(DataConsumer dataConsumer) { - SparkDistributor.dataConsumer = dataConsumer; - dataConsumer.setExitFlag(hardExitFlag); - return this; + + @Override + public SparkDistributor setDataConsumer(DataConsumer dataConsumer) { + SparkDistributor.dataConsumer = dataConsumer; + dataConsumer.setExitFlag(hardExitFlag); + return this; } - - @Override - public void distribute(final List frontierList) { + + @Override + public void distribute(final List frontierList) { JavaSparkContext sc = new JavaSparkContext(new SparkConf().setAppName("dg-spark").setMaster(masterURL)); - - generatedMaps = sc - .parallelize(frontierList) - .flatMap(new FlatMapFunction>() { - @Override - public Iterable> call(Frontier frontier) { - LinkedList> storage = new LinkedList<>(); + + generatedMaps = sc + .parallelize(frontierList) + .flatMap(new FlatMapFunction>() { + @Override + public Iterable> call(Frontier frontier) { + LinkedList> storage = new LinkedList<>(); frontier.searchForScenarios(new CatchAndStoreProcessing(storage), searchExitFlag); - - return storage; - } - }) - .flatMap(new FlatMapFunction, Map>() { - @Override - public Iterable> call(Map initialVars) { - return SparkDistributor.dataConsumer.transformAndReturn(initialVars); - } - }); + + return storage; + } + }) + .flatMap(new FlatMapFunction, Map>() { + @Override + public Iterable> call(Map initialVars) { + return SparkDistributor.dataConsumer.transformAndReturn(initialVars); + } + }); + } + + public JavaRDD> getGeneratedMaps() { + return generatedMaps; } - - public JavaRDD> getGeneratedMaps() { - return generatedMaps; - } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/Engine.java b/dg-core/src/main/java/org/finra/datagenerator/engine/Engine.java index 2da62cb5..f5b3760a 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/Engine.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/Engine.java @@ -1,57 +1,57 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine; - + import org.finra.datagenerator.distributor.SearchDistributor; - + import java.io.InputStream; - -/** - * Performs the bootstrapping search on a data model, producing Frontiers for a SearchDistributor to distribute. - */ + +/** + * Performs the bootstrapping search on a data model, producing Frontiers for a SearchDistributor to distribute. + */ public interface Engine { - - /** - * Processes the model, produces the required bootstrap Frontiers, - * and has the provided distributor distribute those Frontiers - * - * @param distributor the distributor - */ + + /** + * Processes the model, produces the required bootstrap Frontiers, + * and has the provided distributor distribute those Frontiers + * + * @param distributor the distributor + */ void process(SearchDistributor distributor); - - /** - * Sets the model, passing it as an InputStream - * - * @param inputFileStream the model as an InputStream - */ + + /** + * Sets the model, passing it as an InputStream + * + * @param inputFileStream the model as an InputStream + */ void setModelByInputFileStream(InputStream inputFileStream); - - /** - * Sets the model, passing it as a String - * - * @param model the model as a String - */ + + /** + * Sets the model, passing it as a String + * + * @param model the model as a String + */ void setModelByText(String model); - - /** - * Sets the minimum number of bootstrap states to produce - * - * @param min the minimum number of bootstrap states to produce - * @return an equivalent engine with the minimum number of bootstrap states to produce set - */ - Engine setBootstrapMin(int min); + + /** + * Sets the minimum number of bootstrap states to produce + * + * @param min the minimum number of bootstrap states to produce + * @return an equivalent engine with the minimum number of bootstrap states to produce set + */ + Engine setBootstrapMin(int min); } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/Frontier.java b/dg-core/src/main/java/org/finra/datagenerator/engine/Frontier.java index 3233207a..d64c63b5 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/Frontier.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/Frontier.java @@ -1,38 +1,38 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine; - + import org.finra.datagenerator.distributor.ProcessingStrategy; - + import java.util.concurrent.atomic.AtomicBoolean; - -/** - * Represents a partial search produced by an Engine's bootstrapping. - */ + +/** + * Represents a partial search produced by an Engine's bootstrapping. + */ public interface Frontier { - - /** - * Passes to the processingStrategy Maps of variable assignments produced by a DFS; - * the DFS is performed on a possible state bound up inside the Frontier and will - * stop early if flag is set to true - * - * @param processingStrategy knows what to do with completed maps - * @param flag the exit flag - */ + + /** + * Passes to the processingStrategy Maps of variable assignments produced by a DFS; + * the DFS is performed on a possible state bound up inside the Frontier and will + * stop early if flag is set to true + * + * @param processingStrategy knows what to do with completed maps + * @param flag the exit flag + */ void searchForScenarios(ProcessingStrategy processingStrategy, AtomicBoolean flag); - + } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/PossibleState.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/PossibleState.java index 0815c681..0eb2a8d8 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/PossibleState.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/PossibleState.java @@ -1,51 +1,51 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml; - + import org.apache.commons.scxml.model.TransitionTarget; - -import java.io.Serializable; + +import java.io.Serializable; import java.util.Map; - -/** - * Represents a partial traversal over an SCXML state machine, storing - * a list of variable assignments and the current state machine state. - */ -public class PossibleState implements Serializable { - final TransitionTarget nextState; + +/** + * Represents a partial traversal over an SCXML state machine, storing + * a list of variable assignments and the current state machine state. + */ +public class PossibleState implements Serializable { + final TransitionTarget nextState; final Map variables; - - /** - * Constructor - * - * @param nextState the next state to expand as part of a search over an SCXML model - * @param variables variables assigned so far in the search - */ - public PossibleState(final TransitionTarget nextState, final Map variables) { - this.nextState = nextState; - this.variables = variables; + + /** + * Constructor + * + * @param nextState the next state to expand as part of a search over an SCXML model + * @param variables variables assigned so far in the search + */ + public PossibleState(final TransitionTarget nextState, final Map variables) { + this.nextState = nextState; + this.variables = variables; + } + + /** + * toString + * + * @return the id of next state and the state of assigned variables + */ + public String toString() { + return "<" + nextState.getId() + ";" + variables.toString() + ">"; } - - /** - * toString - * - * @return the id of next state and the state of assigned variables - */ - public String toString() { - return "<" + nextState.getId() + ";" + variables.toString() + ">"; - } } \ No newline at end of file diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/SCXMLEngine.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/SCXMLEngine.java index dd170169..e3ec8faa 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/SCXMLEngine.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/SCXMLEngine.java @@ -1,292 +1,292 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml; - -import org.apache.commons.scxml.Context; -import org.apache.commons.scxml.SCXMLExecutor; -import org.apache.commons.scxml.SCXMLExpressionException; -import org.apache.commons.scxml.env.jsp.ELContext; -import org.apache.commons.scxml.env.jsp.ELEvaluator; -import org.apache.commons.scxml.io.SCXMLParser; -import org.apache.commons.scxml.model.Action; -import org.apache.commons.scxml.model.Assign; -import org.apache.commons.scxml.model.CustomAction; -import org.apache.commons.scxml.model.ModelException; -import org.apache.commons.scxml.model.OnEntry; -import org.apache.commons.scxml.model.SCXML; -import org.apache.commons.scxml.model.Transition; -import org.apache.commons.scxml.model.TransitionTarget; -import org.finra.datagenerator.distributor.SearchDistributor; -import org.finra.datagenerator.engine.Engine; -import org.finra.datagenerator.engine.Frontier; -import org.finra.datagenerator.engine.scxml.tags.CustomTagExtension; -import org.finra.datagenerator.engine.scxml.tags.FileExtension; -import org.finra.datagenerator.engine.scxml.tags.RangeExtension; -import org.finra.datagenerator.engine.scxml.tags.SetAssignExtension; -import org.finra.datagenerator.engine.scxml.tags.SingleValueAssignExtension; -import org.xml.sax.InputSource; + +import org.apache.commons.scxml.Context; +import org.apache.commons.scxml.SCXMLExecutor; +import org.apache.commons.scxml.SCXMLExpressionException; +import org.apache.commons.scxml.env.jsp.ELContext; +import org.apache.commons.scxml.env.jsp.ELEvaluator; +import org.apache.commons.scxml.io.SCXMLParser; +import org.apache.commons.scxml.model.Action; +import org.apache.commons.scxml.model.Assign; +import org.apache.commons.scxml.model.CustomAction; +import org.apache.commons.scxml.model.ModelException; +import org.apache.commons.scxml.model.OnEntry; +import org.apache.commons.scxml.model.SCXML; +import org.apache.commons.scxml.model.Transition; +import org.apache.commons.scxml.model.TransitionTarget; +import org.finra.datagenerator.distributor.SearchDistributor; +import org.finra.datagenerator.engine.Engine; +import org.finra.datagenerator.engine.Frontier; +import org.finra.datagenerator.engine.scxml.tags.CustomTagExtension; +import org.finra.datagenerator.engine.scxml.tags.FileExtension; +import org.finra.datagenerator.engine.scxml.tags.RangeExtension; +import org.finra.datagenerator.engine.scxml.tags.SetAssignExtension; +import org.finra.datagenerator.engine.scxml.tags.SingleValueAssignExtension; +import org.xml.sax.InputSource; import org.xml.sax.SAXException; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; import java.util.Set; - -/** - * Engine implementation for generating data with SCXML state machine models. - */ -public class SCXMLEngine extends SCXMLExecutor implements Engine { - private SCXML model; - private int bootStrapMin; + +/** + * Engine implementation for generating data with SCXML state machine models. + */ +public class SCXMLEngine extends SCXMLExecutor implements Engine { + private SCXML model; + private int bootStrapMin; private List tagExtensionList; - - /** - * Constructor - */ - public SCXMLEngine() { + + /** + * Constructor + */ + public SCXMLEngine() { super(); - - tagExtensionList = new LinkedList<>(); - tagExtensionList.add(new SetAssignExtension()); - tagExtensionList.add(new SingleValueAssignExtension()); - tagExtensionList.add(new FileExtension()); + + tagExtensionList = new LinkedList<>(); + tagExtensionList.add(new SetAssignExtension()); + tagExtensionList.add(new SingleValueAssignExtension()); + tagExtensionList.add(new FileExtension()); tagExtensionList.add(new RangeExtension()); - - ELEvaluator elEvaluator = new ELEvaluator(); + + ELEvaluator elEvaluator = new ELEvaluator(); ELContext context = new ELContext(); - - this.setEvaluator(elEvaluator); - this.setRootContext(context); + + this.setEvaluator(elEvaluator); + this.setRootContext(context); } - - /** - * Alternative Constructor to support InLineTransformers within the model - * - * @param tagExtensionList the list of extensions to add - */ - public SCXMLEngine(final List tagExtensionList) { - this(); - // Adding all CustomTagExtensions - They will be added FIFO order - // (Whatever CustomTagExtension that was added to the list first will be added to the engine first) - for (CustomTagExtension cte:tagExtensionList) { - addTagExtension(cte); - } + + /** + * Alternative Constructor to support InLineTransformers within the model + * + * @param tagExtensionList the list of extensions to add + */ + public SCXMLEngine(final List tagExtensionList) { + this(); + // Adding all CustomTagExtensions - They will be added FIFO order + // (Whatever CustomTagExtension that was added to the list first will be added to the engine first) + for (CustomTagExtension cte:tagExtensionList) { + addTagExtension(cte); + } } - - /** - * Searches the model for all variable assignments and makes a default map of those variables, setting them to "" - * - * @return the default variable assignment map - */ - private Map fillInitialVariables() { + + /** + * Searches the model for all variable assignments and makes a default map of those variables, setting them to "" + * + * @return the default variable assignment map + */ + private Map fillInitialVariables() { Map targets = model.getChildren(); - - Set variables = new HashSet<>(); - for (TransitionTarget target : targets.values()) { - OnEntry entry = target.getOnEntry(); - List actions = entry.getActions(); - for (Action action : actions) { - if (action instanceof Assign) { - String variable = ((Assign) action).getName(); - variables.add(variable); - } else if (action instanceof SetAssignExtension.SetAssignTag) { - String variable = ((SetAssignExtension.SetAssignTag) action).getName(); - variables.add(variable); - } - } + + Set variables = new HashSet<>(); + for (TransitionTarget target : targets.values()) { + OnEntry entry = target.getOnEntry(); + List actions = entry.getActions(); + for (Action action : actions) { + if (action instanceof Assign) { + String variable = ((Assign) action).getName(); + variables.add(variable); + } else if (action instanceof SetAssignExtension.SetAssignTag) { + String variable = ((SetAssignExtension.SetAssignTag) action).getName(); + variables.add(variable); + } + } } - - Map result = new HashMap<>(); - for (String variable : variables) { - result.put(variable, ""); + + Map result = new HashMap<>(); + for (String variable : variables) { + result.put(variable, ""); } - - return result; + + return result; } - - /** - * Performs a partial BFS on model until the search frontier reaches the desired bootstrap size - * - * @param min the desired bootstrap size - * @return a list of found PossibleState - * @throws ModelException if the desired bootstrap can not be reached - */ - public List bfs(int min) throws ModelException { + + /** + * Performs a partial BFS on model until the search frontier reaches the desired bootstrap size + * + * @param min the desired bootstrap size + * @return a list of found PossibleState + * @throws ModelException if the desired bootstrap can not be reached + */ + public List bfs(int min) throws ModelException { List bootStrap = new LinkedList<>(); - - TransitionTarget initial = model.getInitialTarget(); - PossibleState initialState = new PossibleState(initial, fillInitialVariables()); + + TransitionTarget initial = model.getInitialTarget(); + PossibleState initialState = new PossibleState(initial, fillInitialVariables()); bootStrap.add(initialState); - - while (bootStrap.size() < min) { - PossibleState state = bootStrap.remove(0); + + while (bootStrap.size() < min) { + PossibleState state = bootStrap.remove(0); TransitionTarget nextState = state.nextState; - - if (nextState.getId().equalsIgnoreCase("end")) { - throw new ModelException("Could not achieve required bootstrap without reaching end state"); + + if (nextState.getId().equalsIgnoreCase("end")) { + throw new ModelException("Could not achieve required bootstrap without reaching end state"); } - - //run every action in series - List> product = new LinkedList<>(); + + //run every action in series + List> product = new LinkedList<>(); product.add(new HashMap<>(state.variables)); - - OnEntry entry = nextState.getOnEntry(); + + OnEntry entry = nextState.getOnEntry(); List actions = entry.getActions(); - - for (Action action : actions) { - for (CustomTagExtension tagExtension : tagExtensionList) { - if (tagExtension.getTagActionClass().isInstance(action)) { - product = tagExtension.pipelinePossibleStates(action, product); - } - } + + for (Action action : actions) { + for (CustomTagExtension tagExtension : tagExtensionList) { + if (tagExtension.getTagActionClass().isInstance(action)) { + product = tagExtension.pipelinePossibleStates(action, product); + } + } } - - //go through every transition and see which of the products are valid, adding them to the list + + //go through every transition and see which of the products are valid, adding them to the list List transitions = nextState.getTransitionsList(); - - for (Transition transition : transitions) { - String condition = transition.getCond(); + + for (Transition transition : transitions) { + String condition = transition.getCond(); TransitionTarget target = ((List) transition.getTargets()).get(0); - - for (Map p : product) { + + for (Map p : product) { Boolean pass; - - if (condition == null) { - pass = true; - } else { - //scrub the context clean so we may use it to evaluate transition conditional - Context context = this.getRootContext(); + + if (condition == null) { + pass = true; + } else { + //scrub the context clean so we may use it to evaluate transition conditional + Context context = this.getRootContext(); context.reset(); - - //set up new context - for (Map.Entry e : p.entrySet()) { - context.set(e.getKey(), e.getValue()); + + //set up new context + for (Map.Entry e : p.entrySet()) { + context.set(e.getKey(), e.getValue()); + } + + //evaluate condition + try { + pass = (Boolean) this.getEvaluator().eval(context, condition); + } catch (SCXMLExpressionException ex) { + pass = false; } - - //evaluate condition - try { - pass = (Boolean) this.getEvaluator().eval(context, condition); - } catch (SCXMLExpressionException ex) { - pass = false; - } } - - //transition condition satisfied, add to bootstrap list - if (pass) { - PossibleState result = new PossibleState(target, p); - bootStrap.add(result); - } - } - } + + //transition condition satisfied, add to bootstrap list + if (pass) { + PossibleState result = new PossibleState(target, p); + bootStrap.add(result); + } + } + } } - - return bootStrap; + + return bootStrap; } - - /** - * Performs the BFS and gives the results to a distributor to distribute - * - * @param distributor the distributor - */ - public void process(SearchDistributor distributor) { - List bootStrap; - try { - bootStrap = bfs(bootStrapMin); - } catch (ModelException e) { - bootStrap = new LinkedList<>(); + + /** + * Performs the BFS and gives the results to a distributor to distribute + * + * @param distributor the distributor + */ + public void process(SearchDistributor distributor) { + List bootStrap; + try { + bootStrap = bfs(bootStrapMin); + } catch (ModelException e) { + bootStrap = new LinkedList<>(); } - - List frontiers = new LinkedList<>(); - for (PossibleState p : bootStrap) { - SCXMLFrontier dge = new SCXMLFrontier(p, model, tagExtensionList); - frontiers.add(dge); + + List frontiers = new LinkedList<>(); + for (PossibleState p : bootStrap) { + SCXMLFrontier dge = new SCXMLFrontier(p, model, tagExtensionList); + frontiers.add(dge); } - - distributor.distribute(frontiers); + + distributor.distribute(frontiers); } - - private List customActionsFromTagExtensions() { + + private List customActionsFromTagExtensions() { List customActions = new ArrayList<>(); - - for (CustomTagExtension tagExtension : tagExtensionList) { - if (!tagExtension.getTagNameSpace().equals("http://www.w3.org/2005/07/scxml")) { - CustomAction action = new CustomAction(tagExtension.getTagNameSpace(), tagExtension.getTagName(), - tagExtension.getTagActionClass()); - customActions.add(action); - } + + for (CustomTagExtension tagExtension : tagExtensionList) { + if (!tagExtension.getTagNameSpace().equals("http://www.w3.org/2005/07/scxml")) { + CustomAction action = new CustomAction(tagExtension.getTagNameSpace(), tagExtension.getTagName(), + tagExtension.getTagActionClass()); + customActions.add(action); + } + } + + return customActions; + } + + /** + * Sets the SCXML model with an InputStream + * + * @param inputFileStream the model input stream + */ + public void setModelByInputFileStream(InputStream inputFileStream) { + try { + this.model = SCXMLParser.parse(new InputSource(inputFileStream), null, customActionsFromTagExtensions()); + this.setStateMachine(this.model); + } catch (IOException | SAXException | ModelException e) { + e.printStackTrace(); } - - return customActions; } - - /** - * Sets the SCXML model with an InputStream - * - * @param inputFileStream the model input stream - */ - public void setModelByInputFileStream(InputStream inputFileStream) { - try { - this.model = SCXMLParser.parse(new InputSource(inputFileStream), null, customActionsFromTagExtensions()); - this.setStateMachine(this.model); - } catch (IOException | SAXException | ModelException e) { - e.printStackTrace(); - } + + /** + * Sets the SCXML model with a string + * + * @param model the model text + */ + public void setModelByText(String model) { + try { + InputStream is = new ByteArrayInputStream(model.getBytes()); + this.model = SCXMLParser.parse(new InputSource(is), null, customActionsFromTagExtensions()); + this.setStateMachine(this.model); + } catch (IOException | SAXException | ModelException e) { + e.printStackTrace(); + } } - - /** - * Sets the SCXML model with a string - * - * @param model the model text - */ - public void setModelByText(String model) { - try { - InputStream is = new ByteArrayInputStream(model.getBytes()); - this.model = SCXMLParser.parse(new InputSource(is), null, customActionsFromTagExtensions()); - this.setStateMachine(this.model); - } catch (IOException | SAXException | ModelException e) { - e.printStackTrace(); - } + + /** + * bootstrapMin setter + * + * @param min sets the desired bootstrap min + * @return this + */ + public Engine setBootstrapMin(int min) { + bootStrapMin = min; + return this; } - - /** - * bootstrapMin setter - * - * @param min sets the desired bootstrap min - * @return this - */ - public Engine setBootstrapMin(int min) { - bootStrapMin = min; - return this; + + /** + * Adds a custom tag extension to this engine for use in model parsing and processing. Custom tags should be added + * before the model is set. + * + * @param tagExtension the extension to add + */ + private void addTagExtension(CustomTagExtension tagExtension) { + this.tagExtensionList.add(tagExtension); } - - /** - * Adds a custom tag extension to this engine for use in model parsing and processing. Custom tags should be added - * before the model is set. - * - * @param tagExtension the extension to add - */ - private void addTagExtension(CustomTagExtension tagExtension) { - this.tagExtensionList.add(tagExtension); - } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/SCXMLFrontier.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/SCXMLFrontier.java index a3a9d8c6..38551306 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/SCXMLFrontier.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/SCXMLFrontier.java @@ -1,161 +1,161 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml; - -import org.apache.commons.scxml.Context; -import org.apache.commons.scxml.SCXMLExecutor; -import org.apache.commons.scxml.SCXMLExpressionException; -import org.apache.commons.scxml.env.jsp.ELContext; -import org.apache.commons.scxml.env.jsp.ELEvaluator; -import org.apache.commons.scxml.model.Action; -import org.apache.commons.scxml.model.OnEntry; -import org.apache.commons.scxml.model.SCXML; -import org.apache.commons.scxml.model.Transition; -import org.apache.commons.scxml.model.TransitionTarget; -import org.apache.log4j.Logger; -import org.finra.datagenerator.distributor.ProcessingStrategy; -import org.finra.datagenerator.engine.Frontier; + +import org.apache.commons.scxml.Context; +import org.apache.commons.scxml.SCXMLExecutor; +import org.apache.commons.scxml.SCXMLExpressionException; +import org.apache.commons.scxml.env.jsp.ELContext; +import org.apache.commons.scxml.env.jsp.ELEvaluator; +import org.apache.commons.scxml.model.Action; +import org.apache.commons.scxml.model.OnEntry; +import org.apache.commons.scxml.model.SCXML; +import org.apache.commons.scxml.model.Transition; +import org.apache.commons.scxml.model.TransitionTarget; +import org.apache.log4j.Logger; +import org.finra.datagenerator.distributor.ProcessingStrategy; +import org.finra.datagenerator.engine.Frontier; import org.finra.datagenerator.engine.scxml.tags.CustomTagExtension; - -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; + +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; - -/** - * Frontier implementation for generating data with SCXML state machine models. - */ + +/** + * Frontier implementation for generating data with SCXML state machine models. + */ public class SCXMLFrontier extends SCXMLExecutor implements Frontier { - - private final PossibleState root; - private static final Logger log = Logger.getLogger(SCXMLFrontier.class); + + private final PossibleState root; + private static final Logger log = Logger.getLogger(SCXMLFrontier.class); private List tagExtensionList; - - /** - * Constructor - * - * @param possibleState the root node of the model and partial variable assignment to start a dfs from - * @param model the model text - * @param tagExtensionList custom tags used in this model - */ - public SCXMLFrontier(final PossibleState possibleState, final SCXML model, - final List tagExtensionList) { - root = possibleState; - this.tagExtensionList = tagExtensionList; + + /** + * Constructor + * + * @param possibleState the root node of the model and partial variable assignment to start a dfs from + * @param model the model text + * @param tagExtensionList custom tags used in this model + */ + public SCXMLFrontier(final PossibleState possibleState, final SCXML model, + final List tagExtensionList) { + root = possibleState; + this.tagExtensionList = tagExtensionList; this.setStateMachine(model); - - ELEvaluator elEvaluator = new ELEvaluator(); + + ELEvaluator elEvaluator = new ELEvaluator(); ELContext context = new ELContext(); - - this.setEvaluator(elEvaluator); - this.setRootContext(context); + + this.setEvaluator(elEvaluator); + this.setRootContext(context); } - - /** - * Constructor - * - * @param possibleState the root node of the model and partial variable assignment to start a dfs from - * @param model the model text - */ - public SCXMLFrontier(final PossibleState possibleState, final SCXML model) { - this(possibleState, model, new LinkedList()); + + /** + * Constructor + * + * @param possibleState the root node of the model and partial variable assignment to start a dfs from + * @param model the model text + */ + public SCXMLFrontier(final PossibleState possibleState, final SCXML model) { + this(possibleState, model, new LinkedList()); } - - /** - * Performs a DFS on the model, starting from root, giving results to the processingStrategy - * Just a public wrapper for private dfs function - * - * @param processingStrategy the results handler - * @param flag used to stop the search before completion - */ - public void searchForScenarios(ProcessingStrategy processingStrategy, AtomicBoolean flag) { - dfs(processingStrategy, flag, root); + + /** + * Performs a DFS on the model, starting from root, giving results to the processingStrategy + * Just a public wrapper for private dfs function + * + * @param processingStrategy the results handler + * @param flag used to stop the search before completion + */ + public void searchForScenarios(ProcessingStrategy processingStrategy, AtomicBoolean flag) { + dfs(processingStrategy, flag, root); } - - private void dfs(ProcessingStrategy processingStrategy, AtomicBoolean flag, PossibleState state) { - if (flag.get()) { - return; + + private void dfs(ProcessingStrategy processingStrategy, AtomicBoolean flag, PossibleState state) { + if (flag.get()) { + return; } - + TransitionTarget nextState = state.nextState; - - //reached end of chart, valid assignment found - if (nextState.getId().equalsIgnoreCase("end")) { + + //reached end of chart, valid assignment found + if (nextState.getId().equalsIgnoreCase("end")) { processingStrategy.processOutput(state.variables); - - return; + + return; } - - //run every action in series - List> product = new LinkedList<>(); + + //run every action in series + List> product = new LinkedList<>(); product.add(new HashMap<>(state.variables)); - - OnEntry entry = nextState.getOnEntry(); + + OnEntry entry = nextState.getOnEntry(); List actions = entry.getActions(); - - for (Action action : actions) { - for (CustomTagExtension tagExtension : tagExtensionList) { - if (tagExtension.getTagActionClass().isInstance(action)) { - product = tagExtension.pipelinePossibleStates(action, product); - } - } + + for (Action action : actions) { + for (CustomTagExtension tagExtension : tagExtensionList) { + if (tagExtension.getTagActionClass().isInstance(action)) { + product = tagExtension.pipelinePossibleStates(action, product); + } + } } - - //go through every transition and see which of the products are valid, recursive searching on them + + //go through every transition and see which of the products are valid, recursive searching on them List transitions = nextState.getTransitionsList(); - - for (Transition transition : transitions) { - String condition = transition.getCond(); + + for (Transition transition : transitions) { + String condition = transition.getCond(); TransitionTarget target = ((List) transition.getTargets()).get(0); - - for (Map p : product) { + + for (Map p : product) { Boolean pass; - - if (condition == null) { - pass = true; - } else { - //scrub the context clean so we may use it to evaluate transition conditional - Context context = this.getRootContext(); + + if (condition == null) { + pass = true; + } else { + //scrub the context clean so we may use it to evaluate transition conditional + Context context = this.getRootContext(); context.reset(); - - //set up new context - for (Map.Entry e : p.entrySet()) { - context.set(e.getKey(), e.getValue()); + + //set up new context + for (Map.Entry e : p.entrySet()) { + context.set(e.getKey(), e.getValue()); + } + + //evaluate condition + try { + pass = (Boolean) this.getEvaluator().eval(context, condition); + } catch (SCXMLExpressionException ex) { + pass = false; } - - //evaluate condition - try { - pass = (Boolean) this.getEvaluator().eval(context, condition); - } catch (SCXMLExpressionException ex) { - pass = false; - } } - - //transition condition satisfied, continue search recursively - if (pass) { - PossibleState result = new PossibleState(target, p); - dfs(processingStrategy, flag, result); - } - } - } + + //transition condition satisfied, continue search recursively + if (pass) { + PossibleState result = new PossibleState(target, p); + dfs(processingStrategy, flag, result); + } + } + } + } + + public PossibleState getRoot() { + return root; } - - public PossibleState getRoot() { - return root; - } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/SCXMLGapper.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/SCXMLGapper.java index c4a8ebbe..e104fd51 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/SCXMLGapper.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/SCXMLGapper.java @@ -1,140 +1,140 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml; - -import org.apache.commons.scxml.io.SCXMLParser; -import org.apache.commons.scxml.model.CustomAction; -import org.apache.commons.scxml.model.ModelException; -import org.apache.commons.scxml.model.SCXML; -import org.apache.commons.scxml.model.TransitionTarget; -import org.finra.datagenerator.engine.Frontier; -import org.finra.datagenerator.engine.scxml.tags.CustomTagExtension; -import org.finra.datagenerator.engine.scxml.tags.FileExtension; -import org.finra.datagenerator.engine.scxml.tags.RangeExtension; -import org.finra.datagenerator.engine.scxml.tags.SetAssignExtension; -import org.finra.datagenerator.engine.scxml.tags.SingleValueAssignExtension; -import org.xml.sax.InputSource; + +import org.apache.commons.scxml.io.SCXMLParser; +import org.apache.commons.scxml.model.CustomAction; +import org.apache.commons.scxml.model.ModelException; +import org.apache.commons.scxml.model.SCXML; +import org.apache.commons.scxml.model.TransitionTarget; +import org.finra.datagenerator.engine.Frontier; +import org.finra.datagenerator.engine.scxml.tags.CustomTagExtension; +import org.finra.datagenerator.engine.scxml.tags.FileExtension; +import org.finra.datagenerator.engine.scxml.tags.RangeExtension; +import org.finra.datagenerator.engine.scxml.tags.SetAssignExtension; +import org.finra.datagenerator.engine.scxml.tags.SingleValueAssignExtension; +import org.xml.sax.InputSource; import org.xml.sax.SAXException; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; import java.util.Map; - -/** - * Provides serialization tools for SCXMLFrontier. - */ -public class SCXMLGapper { + +/** + * Provides serialization tools for SCXMLFrontier. + */ +public class SCXMLGapper { private SCXML model; - - private void setModel(String model, List tagExtensionList) { + + private void setModel(String model, List tagExtensionList) { List customActions = new ArrayList<>(); - - for (CustomTagExtension tagExtension : tagExtensionList) { - if (!tagExtension.getTagNameSpace().equals("http://www.w3.org/2005/07/scxml")) { - CustomAction action = new CustomAction(tagExtension.getTagNameSpace(), tagExtension.getTagName(), - tagExtension.getTagActionClass()); - customActions.add(action); - } + + for (CustomTagExtension tagExtension : tagExtensionList) { + if (!tagExtension.getTagNameSpace().equals("http://www.w3.org/2005/07/scxml")) { + CustomAction action = new CustomAction(tagExtension.getTagNameSpace(), tagExtension.getTagName(), + tagExtension.getTagActionClass()); + customActions.add(action); + } + } + + try { + InputStream is = new ByteArrayInputStream(model.getBytes()); + this.model = SCXMLParser.parse(new InputSource(is), null, customActions); + } catch (IOException | SAXException | ModelException e) { + e.printStackTrace(); } - - try { - InputStream is = new ByteArrayInputStream(model.getBytes()); - this.model = SCXMLParser.parse(new InputSource(is), null, customActions); - } catch (IOException | SAXException | ModelException e) { - e.printStackTrace(); - } } - - /** - * Takes a model and an SCXMLFrontier and decomposes the Frontier into a Map of Strings to Strings - * These strings can be sent over a network to get a Frontier past a 'gap' - * - * @param frontier the Frontier - * @param modelText the model - * @return the map of strings representing a decomposition - */ - public Map decompose(Frontier frontier, String modelText) { - if (!(frontier instanceof SCXMLFrontier)) { - return null; + + /** + * Takes a model and an SCXMLFrontier and decomposes the Frontier into a Map of Strings to Strings + * These strings can be sent over a network to get a Frontier past a 'gap' + * + * @param frontier the Frontier + * @param modelText the model + * @return the map of strings representing a decomposition + */ + public Map decompose(Frontier frontier, String modelText) { + if (!(frontier instanceof SCXMLFrontier)) { + return null; } - - TransitionTarget target = ((SCXMLFrontier) frontier).getRoot().nextState; + + TransitionTarget target = ((SCXMLFrontier) frontier).getRoot().nextState; Map variables = ((SCXMLFrontier) frontier).getRoot().variables; - - Map decomposition = new HashMap(); + + Map decomposition = new HashMap(); decomposition.put("target", target.getId()); - - StringBuilder packedVariables = new StringBuilder(); - for (Map.Entry variable : variables.entrySet()) { - packedVariables.append(variable.getKey()); - packedVariables.append("::"); - packedVariables.append(variable.getValue()); - packedVariables.append(";"); + + StringBuilder packedVariables = new StringBuilder(); + for (Map.Entry variable : variables.entrySet()) { + packedVariables.append(variable.getKey()); + packedVariables.append("::"); + packedVariables.append(variable.getValue()); + packedVariables.append(";"); } - - decomposition.put("variables", packedVariables.toString()); + + decomposition.put("variables", packedVariables.toString()); decomposition.put("model", modelText); - - return decomposition; + + return decomposition; } - - /** - * Produces an SCXMLFrontier by reversing a decomposition; the model text is bundled into the decomposition. - * - * @param decomposition the decomposition, assembled back into a map - * @return a rebuilt SCXMLFrontier - */ - public Frontier reproduce(Map decomposition) { - return reproduce(decomposition, new LinkedList()); + + /** + * Produces an SCXMLFrontier by reversing a decomposition; the model text is bundled into the decomposition. + * + * @param decomposition the decomposition, assembled back into a map + * @return a rebuilt SCXMLFrontier + */ + public Frontier reproduce(Map decomposition) { + return reproduce(decomposition, new LinkedList()); } - - /** - * Produces an SCXMLFrontier by reversing a decomposition; the model text is bundled into the decomposition. - * - * @param decomposition the decomposition, assembled back into a map - * @param tagExtensionList custom tags to use in the model - * @return a rebuilt SCXMLFrontier - */ - public Frontier reproduce(Map decomposition, List tagExtensionList) { - tagExtensionList = new LinkedList<>(tagExtensionList); - tagExtensionList.add(new SetAssignExtension()); - tagExtensionList.add(new SingleValueAssignExtension()); - tagExtensionList.add(new FileExtension()); + + /** + * Produces an SCXMLFrontier by reversing a decomposition; the model text is bundled into the decomposition. + * + * @param decomposition the decomposition, assembled back into a map + * @param tagExtensionList custom tags to use in the model + * @return a rebuilt SCXMLFrontier + */ + public Frontier reproduce(Map decomposition, List tagExtensionList) { + tagExtensionList = new LinkedList<>(tagExtensionList); + tagExtensionList.add(new SetAssignExtension()); + tagExtensionList.add(new SingleValueAssignExtension()); + tagExtensionList.add(new FileExtension()); tagExtensionList.add(new RangeExtension()); - - setModel(decomposition.get("model"), tagExtensionList); + + setModel(decomposition.get("model"), tagExtensionList); TransitionTarget target = (TransitionTarget) model.getTargets().get(decomposition.get("target")); - - Map variables = new HashMap<>(); - String[] assignments = decomposition.get("variables").split(";"); - for (int i = 0; i < assignments.length; i++) { - String[] a = assignments[i].split("::"); - if (a.length == 2) { - variables.put(a[0], a[1]); - } else { - variables.put(a[0], ""); - } + + Map variables = new HashMap<>(); + String[] assignments = decomposition.get("variables").split(";"); + for (int i = 0; i < assignments.length; i++) { + String[] a = assignments[i].split("::"); + if (a.length == 2) { + variables.put(a[0], a[1]); + } else { + variables.put(a[0], ""); + } } - - return new SCXMLFrontier(new PossibleState(target, variables), model, tagExtensionList); - } + + return new SCXMLFrontier(new PossibleState(target, variables), model, tagExtensionList); + } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/CustomTagExtension.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/CustomTagExtension.java index 51cfe303..92b66c38 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/CustomTagExtension.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/CustomTagExtension.java @@ -1,61 +1,61 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags; - + import org.apache.commons.scxml.model.Action; - -import java.io.Serializable; -import java.util.List; + +import java.io.Serializable; +import java.util.List; import java.util.Map; - -/** - * @param the action class handled by this class' filerPossibleStates logic - */ + +/** + * @param the action class handled by this class' filerPossibleStates logic + */ public interface CustomTagExtension extends Serializable { - - /** - * Returns a class object representing the Action class handled by this class' pipelinePossibleStates logic - * - * @return a class object - */ + + /** + * Returns a class object representing the Action class handled by this class' pipelinePossibleStates logic + * + * @return a class object + */ Class getTagActionClass(); - - /** - * Returns the name of this custom tag, as would be used in the model - * - * @return the custom tag name - */ + + /** + * Returns the name of this custom tag, as would be used in the model + * + * @return the custom tag name + */ String getTagName(); - - /** - * Returns the name space of this custom tag, as would be used in the model - * - * @return the custom tag name space - */ + + /** + * Returns the name space of this custom tag, as would be used in the model + * + * @return the custom tag name space + */ String getTagNameSpace(); - - /** - * Given an appropriate Action object for a tag in an scxml model, performs arbitrary logic on a list of - * possible states. - * - * @param action an Action of the type handled by this class - * @param possibleStateList a current list of possible states produced so far from expanding a model state - * - * @return a new list of possible states - */ - List> pipelinePossibleStates(A action, List> possibleStateList); + + /** + * Given an appropriate Action object for a tag in an scxml model, performs arbitrary logic on a list of + * possible states. + * + * @param action an Action of the type handled by this class + * @param possibleStateList a current list of possible states produced so far from expanding a model state + * + * @return a new list of possible states + */ + List> pipelinePossibleStates(A action, List> possibleStateList); } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/FileExtension.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/FileExtension.java index 68338413..cbcc9619 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/FileExtension.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/FileExtension.java @@ -1,192 +1,192 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; import java.util.Set; - -import org.apache.commons.logging.Log; -import org.apache.commons.scxml.ErrorReporter; -import org.apache.commons.scxml.EventDispatcher; -import org.apache.commons.scxml.SCInstance; -import org.apache.commons.scxml.SCXMLExpressionException; -import org.apache.commons.scxml.model.Action; -import org.apache.commons.scxml.model.ModelException; + +import org.apache.commons.logging.Log; +import org.apache.commons.scxml.ErrorReporter; +import org.apache.commons.scxml.EventDispatcher; +import org.apache.commons.scxml.SCInstance; +import org.apache.commons.scxml.SCXMLExpressionException; +import org.apache.commons.scxml.model.Action; +import org.apache.commons.scxml.model.ModelException; import org.apache.log4j.Logger; - -/** - * Implementation of dg:file tag - */ -public class FileExtension implements CustomTagExtension { + +/** + * Implementation of dg:file tag + */ +public class FileExtension implements CustomTagExtension { private static final Logger log = Logger.getLogger(FileExtension.class); - + private static Map> cachedDataFiles = new HashMap<>(); - - public Class getTagActionClass() { - return FileTag.class; + + public Class getTagActionClass() { + return FileTag.class; } - - public String getTagName() { - return "file"; + + public String getTagName() { + return "file"; } - - public String getTagNameSpace() { - return "org.finra.datagenerator"; + + public String getTagNameSpace() { + return "org.finra.datagenerator"; } - - /** - * Performs variable assignments from a set of values - * - * @param action a SetAssignTag Action - * @param possibleStateList a current list of possible states produced so far from expanding a model state - * - * @return the cartesian product of every current possible state and the set of values specified by action - */ - public List> pipelinePossibleStates(FileTag action, - List> possibleStateList) { - String variable = action.getName(); - String fileName = action.getFileName(); + + /** + * Performs variable assignments from a set of values + * + * @param action a SetAssignTag Action + * @param possibleStateList a current list of possible states produced so far from expanding a model state + * + * @return the cartesian product of every current possible state and the set of values specified by action + */ + public List> pipelinePossibleStates(FileTag action, + List> possibleStateList) { + String variable = action.getName(); + String fileName = action.getFileName(); String fileSeparator = action.getFileSeparator(); - - Set domain = new HashSet(); - if (fileName != null && fileName.length() > 0) { - generateFileValues(domain, fileName, fileSeparator); + + Set domain = new HashSet(); + if (fileName != null && fileName.length() > 0) { + generateFileValues(domain, fileName, fileSeparator); } - - //take the product - List> productTemp = new LinkedList<>(); - for (Map p : possibleStateList) { - for (String value : domain) { - HashMap n = new HashMap<>(p); - n.put(variable, value); - productTemp.add(n); - } + + //take the product + List> productTemp = new LinkedList<>(); + for (Map p : possibleStateList) { + for (String value : domain) { + HashMap n = new HashMap<>(p); + n.put(variable, value); + productTemp.add(n); + } } - - return productTemp; + + return productTemp; } - - private void generateFileValues(Set domain, String fileName, String fileSeparator) { - if (fileName != null && !fileName.equals("")) { - // check cache with data file's data, maybe this file already cached - Set data; - if (cachedDataFiles.containsKey(fileName)) { - domain.addAll(cachedDataFiles.get(fileName)); - } else { - data = cacheAndReturnDataFile(fileName, fileSeparator); - if (data != null) { - domain.addAll(data); - } - } - } + + private void generateFileValues(Set domain, String fileName, String fileSeparator) { + if (fileName != null && !fileName.equals("")) { + // check cache with data file's data, maybe this file already cached + Set data; + if (cachedDataFiles.containsKey(fileName)) { + domain.addAll(cachedDataFiles.get(fileName)); + } else { + data = cacheAndReturnDataFile(fileName, fileSeparator); + if (data != null) { + domain.addAll(data); + } + } + } } - - private Set cacheAndReturnDataFile(String fileName, String fileSeparator) { - InputStream inputStream = FileExtension.class.getResourceAsStream("/" + fileName); - if (inputStream != null) { - BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); - try { - String line; - List lines = new ArrayList(); - while ((line = bufferedReader.readLine()) != null) { - if (!line.startsWith("#")) { - lines.add(line); - } - } - - Set data = new HashSet(); - if (lines.size() == 1) { - if (fileSeparator == null || fileSeparator.equals("")) { - fileSeparator = ","; - } - String[] lineSplitted = lines.get(0).split(fileSeparator); - for (String value : lineSplitted) { - data.add(value); - } - } else { - for (String currentLine : lines) { - data.add(currentLine); - } - } - cachedDataFiles.put(fileName, data); - return data; - } catch (IOException e) { - log.error("Oops! Can't read '" + fileName + "' file... " + e); - } - } - return null; + + private Set cacheAndReturnDataFile(String fileName, String fileSeparator) { + InputStream inputStream = FileExtension.class.getResourceAsStream("/" + fileName); + if (inputStream != null) { + BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); + try { + String line; + List lines = new ArrayList(); + while ((line = bufferedReader.readLine()) != null) { + if (!line.startsWith("#")) { + lines.add(line); + } + } + + Set data = new HashSet(); + if (lines.size() == 1) { + if (fileSeparator == null || fileSeparator.equals("")) { + fileSeparator = ","; + } + String[] lineSplitted = lines.get(0).split(fileSeparator); + for (String value : lineSplitted) { + data.add(value); + } + } else { + for (String currentLine : lines) { + data.add(currentLine); + } + } + cachedDataFiles.put(fileName, data); + return data; + } catch (IOException e) { + log.error("Oops! Can't read '" + fileName + "' file... " + e); + } + } + return null; } - - /** - * A custom Action for the 'dg:assign' tag inside models - */ - public static class FileTag extends Action { - private String name; - private String fileName; + + /** + * A custom Action for the 'dg:assign' tag inside models + */ + public static class FileTag extends Action { + private String name; + private String fileName; private String fileSeparator; - - public String getName() { - return name; + + public String getName() { + return name; } - - public void setName(String name) { - this.name = name; + + public void setName(String name) { + this.name = name; } - - public String getFileName() { - return fileName; + + public String getFileName() { + return fileName; } - - public void setFileName(String fileName) { - this.fileName = fileName; + + public void setFileName(String fileName) { + this.fileName = fileName; } - - public String getFileSeparator() { - return fileSeparator; + + public String getFileSeparator() { + return fileSeparator; } - - public void setFileSeparator(String fileSeparator) { - this.fileSeparator = fileSeparator; + + public void setFileSeparator(String fileSeparator) { + this.fileSeparator = fileSeparator; } - - /** - * Required implementation of an abstract method in Action - * - * @param eventDispatcher unused - * @param errorReporter unused - * @param scInstance unused - * @param log unused - * @param collection unused - * @throws ModelException never - * @throws SCXMLExpressionException never - */ - public void execute(EventDispatcher eventDispatcher, ErrorReporter errorReporter, SCInstance scInstance, - Log log, Collection collection) throws ModelException, SCXMLExpressionException { - //Handled manually - } - } + + /** + * Required implementation of an abstract method in Action + * + * @param eventDispatcher unused + * @param errorReporter unused + * @param scInstance unused + * @param log unused + * @param collection unused + * @throws ModelException never + * @throws SCXMLExpressionException never + */ + public void execute(EventDispatcher eventDispatcher, ErrorReporter errorReporter, SCInstance scInstance, + Log log, Collection collection) throws ModelException, SCXMLExpressionException { + //Handled manually + } + } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/InLineTransformerExtension.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/InLineTransformerExtension.java index 66e78f8f..5dbf5db5 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/InLineTransformerExtension.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/InLineTransformerExtension.java @@ -1,114 +1,114 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags; - -import org.apache.commons.logging.Log; -import org.apache.commons.scxml.ErrorReporter; -import org.apache.commons.scxml.EventDispatcher; -import org.apache.commons.scxml.SCInstance; -import org.apache.commons.scxml.SCXMLExpressionException; -import org.apache.commons.scxml.model.Action; -import org.apache.commons.scxml.model.ModelException; -import org.finra.datagenerator.consumer.DataPipe; + +import org.apache.commons.logging.Log; +import org.apache.commons.scxml.ErrorReporter; +import org.apache.commons.scxml.EventDispatcher; +import org.apache.commons.scxml.SCInstance; +import org.apache.commons.scxml.SCXMLExpressionException; +import org.apache.commons.scxml.model.Action; +import org.apache.commons.scxml.model.ModelException; +import org.finra.datagenerator.consumer.DataPipe; import org.finra.datagenerator.consumer.DataTransformer; - -import java.util.Collection; -import java.util.List; + +import java.util.Collection; +import java.util.List; import java.util.Map; - -/** - * Implementation of dg:transform tag - */ + +/** + * Implementation of dg:transform tag + */ public class InLineTransformerExtension implements CustomTagExtension { - + private Map transformers; - - /** - * Constructor - * - * @param transformers a map of DataTransformers from their names in the model - */ - public InLineTransformerExtension(final Map transformers) { - this.transformers = transformers; + + /** + * Constructor + * + * @param transformers a map of DataTransformers from their names in the model + */ + public InLineTransformerExtension(final Map transformers) { + this.transformers = transformers; } - - public Class getTagActionClass() { - return TransformTag.class; + + public Class getTagActionClass() { + return TransformTag.class; } - - public String getTagName() { - return "transform"; + + public String getTagName() { + return "transform"; } - - public String getTagNameSpace() { - return "org.finra.datagenerator"; + + public String getTagNameSpace() { + return "org.finra.datagenerator"; } - - /** - * Applies a stated DataTransformer (given by name in a TransformTag Action) against every possible state - * - * @param action a TransformTag Action - * @param possibleStateList a current list of possible states produced so far from expanding a model state - * - * @return the same list of possible states, each processed with the stated DataTransformer - */ - public List> pipelinePossibleStates(TransformTag action, - List> possibleStateList) { - DataTransformer tr = transformers.get(action.getName()); + + /** + * Applies a stated DataTransformer (given by name in a TransformTag Action) against every possible state + * + * @param action a TransformTag Action + * @param possibleStateList a current list of possible states produced so far from expanding a model state + * + * @return the same list of possible states, each processed with the stated DataTransformer + */ + public List> pipelinePossibleStates(TransformTag action, + List> possibleStateList) { + DataTransformer tr = transformers.get(action.getName()); DataPipe pipe = new DataPipe(0, null); - - for (Map possibleState : possibleStateList) { - pipe.getDataMap().putAll(possibleState); - tr.transform(pipe); - possibleState.putAll(pipe.getDataMap()); + + for (Map possibleState : possibleStateList) { + pipe.getDataMap().putAll(possibleState); + tr.transform(pipe); + possibleState.putAll(pipe.getDataMap()); } - - return possibleStateList; + + return possibleStateList; } - - /** - * A custom Action for the 'transform' tag inside models - */ - public static class TransformTag extends Action { + + /** + * A custom Action for the 'transform' tag inside models + */ + public static class TransformTag extends Action { private String name; - - public String getName() { - return name; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; } - - public void setName(String name) { - this.name = name; + + /** + * Required implementation of an abstract method in Action + * + * @param eventDispatcher unused + * @param errorReporter unused + * @param scInstance unused + * @param log unused + * @param collection unused + * @throws ModelException never + * @throws SCXMLExpressionException never + */ + public void execute(EventDispatcher eventDispatcher, ErrorReporter errorReporter, SCInstance scInstance, Log log, + Collection collection) throws ModelException, SCXMLExpressionException { + //Handled manually } - - /** - * Required implementation of an abstract method in Action - * - * @param eventDispatcher unused - * @param errorReporter unused - * @param scInstance unused - * @param log unused - * @param collection unused - * @throws ModelException never - * @throws SCXMLExpressionException never - */ - public void execute(EventDispatcher eventDispatcher, ErrorReporter errorReporter, SCInstance scInstance, Log log, - Collection collection) throws ModelException, SCXMLExpressionException { - //Handled manually - } } - + } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/NWiseExtension.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/NWiseExtension.java index 2393e371..831d0fc9 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/NWiseExtension.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/NWiseExtension.java @@ -1,204 +1,204 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags; - -import org.apache.commons.logging.Log; -import org.apache.commons.scxml.ErrorReporter; -import org.apache.commons.scxml.EventDispatcher; -import org.apache.commons.scxml.SCInstance; -import org.apache.commons.scxml.SCXMLExpressionException; -import org.apache.commons.scxml.model.Action; + +import org.apache.commons.logging.Log; +import org.apache.commons.scxml.ErrorReporter; +import org.apache.commons.scxml.EventDispatcher; +import org.apache.commons.scxml.SCInstance; +import org.apache.commons.scxml.SCXMLExpressionException; +import org.apache.commons.scxml.model.Action; import org.apache.commons.scxml.model.ModelException; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; import java.util.Set; - -/** - * Implementation of dg:nwise tag - */ + +/** + * Implementation of dg:nwise tag + */ public class NWiseExtension implements CustomTagExtension { - - public Class getTagActionClass() { - return NWiseAction.class; + + public Class getTagActionClass() { + return NWiseAction.class; } - - public String getTagName() { - return "nwise"; + + public String getTagName() { + return "nwise"; } - - public String getTagNameSpace() { - return "org.finra.datagenerator"; + + public String getTagNameSpace() { + return "org.finra.datagenerator"; } - - private void makeNWiseTuplesHelper(List> resultTuples, String[] variables, - int startVariable, Set preGivenVariables, int nWise) { - if (nWise <= 0) { - Set result = new HashSet<>(preGivenVariables); - resultTuples.add(result); - return; + + private void makeNWiseTuplesHelper(List> resultTuples, String[] variables, + int startVariable, Set preGivenVariables, int nWise) { + if (nWise <= 0) { + Set result = new HashSet<>(preGivenVariables); + resultTuples.add(result); + return; + } + + for (int varIndex = startVariable; varIndex <= variables.length - nWise; varIndex++) { + preGivenVariables.add(variables[varIndex]); + makeNWiseTuplesHelper(resultTuples, variables, varIndex + 1, preGivenVariables, nWise - 1); + preGivenVariables.remove(variables[varIndex]); } - - for (int varIndex = startVariable; varIndex <= variables.length - nWise; varIndex++) { - preGivenVariables.add(variables[varIndex]); - makeNWiseTuplesHelper(resultTuples, variables, varIndex + 1, preGivenVariables, nWise - 1); - preGivenVariables.remove(variables[varIndex]); - } } - - /** - * Produces all tuples of size n chosen from a list of variable names - * - * @param variables the list of variable names to make tuples of - * @param nWise the size of the desired tuples - * @return all tuples of size nWise - */ - public List> makeNWiseTuples(String[] variables, int nWise) { - List> completeTuples = new ArrayList<>(); + + /** + * Produces all tuples of size n chosen from a list of variable names + * + * @param variables the list of variable names to make tuples of + * @param nWise the size of the desired tuples + * @return all tuples of size nWise + */ + public List> makeNWiseTuples(String[] variables, int nWise) { + List> completeTuples = new ArrayList<>(); makeNWiseTuplesHelper(completeTuples, variables, 0, new HashSet(), nWise); - - return completeTuples; + + return completeTuples; } - - private void expandTupleHelper(List> resultExpansions, String[] variables, - Map variableDomains, int nextVariable, - Map partialAssignment) { - if (nextVariable >= variables.length) { - Map resultAssignment = new HashMap<>(partialAssignment); - resultExpansions.add(resultAssignment); - return; + + private void expandTupleHelper(List> resultExpansions, String[] variables, + Map variableDomains, int nextVariable, + Map partialAssignment) { + if (nextVariable >= variables.length) { + Map resultAssignment = new HashMap<>(partialAssignment); + resultExpansions.add(resultAssignment); + return; + } + + String variable = variables[nextVariable]; + for (String domainValue : variableDomains.get(variable)) { + partialAssignment.put(variable, domainValue); + expandTupleHelper(resultExpansions, variables, variableDomains, nextVariable + 1, partialAssignment); } - - String variable = variables[nextVariable]; - for (String domainValue : variableDomains.get(variable)) { - partialAssignment.put(variable, domainValue); - expandTupleHelper(resultExpansions, variables, variableDomains, nextVariable + 1, partialAssignment); - } } - - /** - * Expands a tuple of variable names into every combination of assignments to those variables - * - * @param tuple a list of variables - * @param variableDomains a map defining the domain for each variable - * @return the cartesian product of the domains of each variable in the tuple - */ - public List> expandTupleIntoTestCases(Set tuple, Map variableDomains) { - List> expandedTestCases = new ArrayList<>(); - String[] variables = tuple.toArray(new String[tuple.size()]); + + /** + * Expands a tuple of variable names into every combination of assignments to those variables + * + * @param tuple a list of variables + * @param variableDomains a map defining the domain for each variable + * @return the cartesian product of the domains of each variable in the tuple + */ + public List> expandTupleIntoTestCases(Set tuple, Map variableDomains) { + List> expandedTestCases = new ArrayList<>(); + String[] variables = tuple.toArray(new String[tuple.size()]); expandTupleHelper(expandedTestCases, variables, variableDomains, 0, new HashMap()); - - return expandedTestCases; + + return expandedTestCases; } - - /** - * Finds all nWise combinations of a set of variables, each with a given domain of values - * - * @param nWise the number of variables in each combination - * @param coVariables the varisbles - * @param variableDomains the domains - * @return all nWise combinations of the set of variables - */ - public List> produceNWise(int nWise, String[] coVariables, Map variableDomains) { + + /** + * Finds all nWise combinations of a set of variables, each with a given domain of values + * + * @param nWise the number of variables in each combination + * @param coVariables the varisbles + * @param variableDomains the domains + * @return all nWise combinations of the set of variables + */ + public List> produceNWise(int nWise, String[] coVariables, Map variableDomains) { List> tuples = makeNWiseTuples(coVariables, nWise); - - List> testCases = new ArrayList<>(); - for (Set tuple : tuples) { - testCases.addAll(expandTupleIntoTestCases(tuple, variableDomains)); + + List> testCases = new ArrayList<>(); + for (Set tuple : tuples) { + testCases.addAll(expandTupleIntoTestCases(tuple, variableDomains)); } - - return testCases; + + return testCases; } - - /** - * Uses current variable assignments and info in an NWiseActionTag to expand on an n wise combinatorial set - * - * @param action an NWiseAction Action - * @param possibleStateList a current list of possible states produced so far from expanding a model state - * @return every input possible state expanded on an n wise combinatorial set defined by that input possible state - */ - public List> pipelinePossibleStates(NWiseAction action, List> possibleStateList) { - String[] coVariables = action.getCoVariables().split(","); + + /** + * Uses current variable assignments and info in an NWiseActionTag to expand on an n wise combinatorial set + * + * @param action an NWiseAction Action + * @param possibleStateList a current list of possible states produced so far from expanding a model state + * @return every input possible state expanded on an n wise combinatorial set defined by that input possible state + */ + public List> pipelinePossibleStates(NWiseAction action, List> possibleStateList) { + String[] coVariables = action.getCoVariables().split(","); int n = Integer.valueOf(action.getN()); - + List> newPossibleStateList = new ArrayList<>(); - - for (Map possibleState : possibleStateList) { - Map variableDomains = new HashMap<>(); - Map defaultVariableValues = new HashMap<>(); - for (String variable : coVariables) { - String variableMetaInfo = possibleState.get(variable); - String[] variableDomain = variableMetaInfo.split(","); - variableDomains.put(variable, variableDomain); - defaultVariableValues.put(variable, variableDomain[0]); + + for (Map possibleState : possibleStateList) { + Map variableDomains = new HashMap<>(); + Map defaultVariableValues = new HashMap<>(); + for (String variable : coVariables) { + String variableMetaInfo = possibleState.get(variable); + String[] variableDomain = variableMetaInfo.split(","); + variableDomains.put(variable, variableDomain); + defaultVariableValues.put(variable, variableDomain[0]); + } + + List> nWiseCombinations = produceNWise(n, coVariables, variableDomains); + for (Map nWiseCombination : nWiseCombinations) { + Map newPossibleState = new HashMap<>(possibleState); + newPossibleState.putAll(defaultVariableValues); + newPossibleState.putAll(nWiseCombination); + newPossibleStateList.add(newPossibleState); } - - List> nWiseCombinations = produceNWise(n, coVariables, variableDomains); - for (Map nWiseCombination : nWiseCombinations) { - Map newPossibleState = new HashMap<>(possibleState); - newPossibleState.putAll(defaultVariableValues); - newPossibleState.putAll(nWiseCombination); - newPossibleStateList.add(newPossibleState); - } } - - return newPossibleStateList; + + return newPossibleStateList; } - - /** - * A custom Action for the 'dg:nwise' tag inside models - */ - public static class NWiseAction extends Action { - private String coVariables; + + /** + * A custom Action for the 'dg:nwise' tag inside models + */ + public static class NWiseAction extends Action { + private String coVariables; private String n; - - public String getCoVariables() { - return coVariables; + + public String getCoVariables() { + return coVariables; } - - public void setCoVariables(String coVariables) { - this.coVariables = coVariables; + + public void setCoVariables(String coVariables) { + this.coVariables = coVariables; } - - public String getN() { - return n; + + public String getN() { + return n; } - - public void setN(String n) { - this.n = n; + + public void setN(String n) { + this.n = n; } - - /** - * Required implementation of an abstract method in Action - * - * @param eventDispatcher unused - * @param errorReporter unused - * @param scInstance unused - * @param log unused - * @param collection unused - * @throws ModelException never - * @throws SCXMLExpressionException never - */ - public void execute(EventDispatcher eventDispatcher, ErrorReporter errorReporter, SCInstance scInstance, + + /** + * Required implementation of an abstract method in Action + * + * @param eventDispatcher unused + * @param errorReporter unused + * @param scInstance unused + * @param log unused + * @param collection unused + * @throws ModelException never + * @throws SCXMLExpressionException never + */ + public void execute(EventDispatcher eventDispatcher, ErrorReporter errorReporter, SCInstance scInstance, Log log, Collection collection) throws ModelException, SCXMLExpressionException { - - } - } + + } + } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/RangeExtension.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/RangeExtension.java index 48355bb8..6a088b41 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/RangeExtension.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/RangeExtension.java @@ -1,155 +1,155 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags; - -import org.apache.commons.logging.Log; -import org.apache.commons.scxml.ErrorReporter; -import org.apache.commons.scxml.EventDispatcher; -import org.apache.commons.scxml.SCInstance; -import org.apache.commons.scxml.SCXMLExpressionException; -import org.apache.commons.scxml.model.Action; + +import org.apache.commons.logging.Log; +import org.apache.commons.scxml.ErrorReporter; +import org.apache.commons.scxml.EventDispatcher; +import org.apache.commons.scxml.SCInstance; +import org.apache.commons.scxml.SCXMLExpressionException; +import org.apache.commons.scxml.model.Action; import org.apache.commons.scxml.model.ModelException; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; import java.util.Map; - -/** - * Implementation of dg:range tag - */ + +/** + * Implementation of dg:range tag + */ public class RangeExtension implements CustomTagExtension { - - public Class getTagActionClass() { - return RangeTag.class; + + public Class getTagActionClass() { + return RangeTag.class; } - - public String getTagName() { - return "range"; + + public String getTagName() { + return "range"; } - - public String getTagNameSpace() { - return "org.finra.datagenerator"; + + public String getTagNameSpace() { + return "org.finra.datagenerator"; } - - /** - * Performs variable assignments from a set of values - * - * @param action a RangeTag Action - * @param possibleStateList a current list of possible states produced so far from expanding a model state - * @return the cartesian product of every current possible state and the set of values specified by action - */ - public List> pipelinePossibleStates(RangeTag action, - List> possibleStateList) { - String variable = action.getName(); - BigDecimal from = new BigDecimal(action.getFrom()); - BigDecimal to = new BigDecimal(action.getTo()); - BigDecimal step; - if (action.getStep() != null) { - step = new BigDecimal(action.getStep()); - } else { - step = BigDecimal.ONE; + + /** + * Performs variable assignments from a set of values + * + * @param action a RangeTag Action + * @param possibleStateList a current list of possible states produced so far from expanding a model state + * @return the cartesian product of every current possible state and the set of values specified by action + */ + public List> pipelinePossibleStates(RangeTag action, + List> possibleStateList) { + String variable = action.getName(); + BigDecimal from = new BigDecimal(action.getFrom()); + BigDecimal to = new BigDecimal(action.getTo()); + BigDecimal step; + if (action.getStep() != null) { + step = new BigDecimal(action.getStep()); + } else { + step = BigDecimal.ONE; } - - List rangeValues = new ArrayList<>(); - if (step.signum() == 1) { - for (BigDecimal current = from; current.compareTo(to) <= 0; current = current.add(step)) { - rangeValues.add(current); - } - } else if (step.signum() == -1) { - for (BigDecimal current = from; current.compareTo(to) >= 0; current = current.add(step)) { - rangeValues.add(current); - } - } else { - rangeValues.add(from); + + List rangeValues = new ArrayList<>(); + if (step.signum() == 1) { + for (BigDecimal current = from; current.compareTo(to) <= 0; current = current.add(step)) { + rangeValues.add(current); + } + } else if (step.signum() == -1) { + for (BigDecimal current = from; current.compareTo(to) >= 0; current = current.add(step)) { + rangeValues.add(current); + } + } else { + rangeValues.add(from); } - - //take the product - List> productTemp = new LinkedList<>(); - for (Map p : possibleStateList) { - for (BigDecimal value : rangeValues) { - HashMap n = new HashMap<>(p); - n.put(variable, value.toString()); - productTemp.add(n); - } + + //take the product + List> productTemp = new LinkedList<>(); + for (Map p : possibleStateList) { + for (BigDecimal value : rangeValues) { + HashMap n = new HashMap<>(p); + n.put(variable, value.toString()); + productTemp.add(n); + } } - - return productTemp; + + return productTemp; } - - /** - * A custom Action for the 'dg:range' tag inside models - */ - public static class RangeTag extends Action { - private String name; - private String from; - private String to; + + /** + * A custom Action for the 'dg:range' tag inside models + */ + public static class RangeTag extends Action { + private String name; + private String from; + private String to; private String step; - - public String getName() { - return name; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; } - - public void setName(String name) { - this.name = name; + + public String getFrom() { + return from; } - - public String getFrom() { - return from; + + public void setFrom(String from) { + this.from = from; } - - public void setFrom(String from) { - this.from = from; + + public String getTo() { + return to; } - - public String getTo() { - return to; + + public void setTo(String to) { + this.to = to; } - - public void setTo(String to) { - this.to = to; + + public String getStep() { + return step; } - - public String getStep() { - return step; + + public void setStep(String step) { + this.step = step; } - - public void setStep(String step) { - this.step = step; + + /** + * Required implementation of an abstract method in Action + * + * @param eventDispatcher unused + * @param errorReporter unused + * @param scInstance unused + * @param log unused + * @param collection unused + * @throws ModelException never + * @throws SCXMLExpressionException never + */ + public void execute(EventDispatcher eventDispatcher, ErrorReporter errorReporter, SCInstance scInstance, + Log log, Collection collection) throws ModelException, SCXMLExpressionException { + //Handled manually } - - /** - * Required implementation of an abstract method in Action - * - * @param eventDispatcher unused - * @param errorReporter unused - * @param scInstance unused - * @param log unused - * @param collection unused - * @throws ModelException never - * @throws SCXMLExpressionException never - */ - public void execute(EventDispatcher eventDispatcher, ErrorReporter errorReporter, SCInstance scInstance, - Log log, Collection collection) throws ModelException, SCXMLExpressionException { - //Handled manually - } } - + } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/SetAssignExtension.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/SetAssignExtension.java index 8d2592e7..c6bdd108 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/SetAssignExtension.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/SetAssignExtension.java @@ -1,147 +1,147 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags; - -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.scxml.ErrorReporter; -import org.apache.commons.scxml.EventDispatcher; -import org.apache.commons.scxml.SCInstance; -import org.apache.commons.scxml.SCXMLExpressionException; -import org.apache.commons.scxml.model.Action; -import org.apache.commons.scxml.model.ModelException; -import org.finra.datagenerator.exceptions.NullActionException; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.scxml.ErrorReporter; +import org.apache.commons.scxml.EventDispatcher; +import org.apache.commons.scxml.SCInstance; +import org.apache.commons.scxml.SCXMLExpressionException; +import org.apache.commons.scxml.model.Action; +import org.apache.commons.scxml.model.ModelException; +import org.finra.datagenerator.exceptions.NullActionException; import org.finra.datagenerator.exceptions.NullSetException; - -import java.util.Collection; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; + +import java.util.Collection; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; import java.util.Map; - -/** - * Implementation of dg:assign tag - */ + +/** + * Implementation of dg:assign tag + */ public class SetAssignExtension implements CustomTagExtension { - - public Class getTagActionClass() { - return SetAssignTag.class; + + public Class getTagActionClass() { + return SetAssignTag.class; } - - public String getTagName() { - return "assign"; + + public String getTagName() { + return "assign"; } - - public String getTagNameSpace() { - return "org.finra.datagenerator"; + + public String getTagNameSpace() { + return "org.finra.datagenerator"; } - - /** - * Performs variable assignments from a set of values - * - * @param action a SetAssignTag Action - * @param possibleStateList a current list of possible states produced so far from expanding a model state - * @return the cartesian product of every current possible state and the set of values specified by action - */ - public List> pipelinePossibleStates(SetAssignTag action, - List> possibleStateList) { - if (action == null) { - throw new NullActionException("Called with a null action, and possibleStateList = " - + possibleStateList.toString()); + + /** + * Performs variable assignments from a set of values + * + * @param action a SetAssignTag Action + * @param possibleStateList a current list of possible states produced so far from expanding a model state + * @return the cartesian product of every current possible state and the set of values specified by action + */ + public List> pipelinePossibleStates(SetAssignTag action, + List> possibleStateList) { + if (action == null) { + throw new NullActionException("Called with a null action, and possibleStateList = " + + possibleStateList.toString()); } - - String variable = action.getName(); + + String variable = action.getName(); String set = action.getSet(); - + String[] domain; - - if (set == null) { - throw new NullSetException("Called with a null set, action name=" + action.getName() - + " and possibleStateList = " + possibleStateList.toString()); + + if (set == null) { + throw new NullSetException("Called with a null set, action name=" + action.getName() + + " and possibleStateList = " + possibleStateList.toString()); } - - if (StringUtils.splitByWholeSeparator(set, action.getSeparator()).length == 0) { - domain = new String[]{""}; - } else { - domain = StringUtils.splitByWholeSeparator(set, action.getSeparator()); + + if (StringUtils.splitByWholeSeparator(set, action.getSeparator()).length == 0) { + domain = new String[]{""}; + } else { + domain = StringUtils.splitByWholeSeparator(set, action.getSeparator()); } - - //take the product - List> productTemp = new LinkedList<>(); - for (Map p : possibleStateList) { - for (String value : domain) { - HashMap n = new HashMap<>(p); - n.put(variable, value); - productTemp.add(n); - } + + //take the product + List> productTemp = new LinkedList<>(); + for (Map p : possibleStateList) { + for (String value : domain) { + HashMap n = new HashMap<>(p); + n.put(variable, value); + productTemp.add(n); + } } - - return productTemp; + + return productTemp; } - - /** - * A custom Action for the 'dg:assign' tag inside models - */ + + /** + * A custom Action for the 'dg:assign' tag inside models + */ public static class SetAssignTag extends Action { - - private String name; - private String set; + + private String name; + private String set; private String separator = ","; - - public String getName() { - return name; + + public String getName() { + return name; } - - public void setName(String name) { - this.name = name; + + public void setName(String name) { + this.name = name; } - - public String getSet() { - return set; + + public String getSet() { + return set; } - - public void setSet(String set) { - this.set = set; + + public void setSet(String set) { + this.set = set; + } + + public String getSeparator() { + return this.separator; } - - public String getSeparator() { - return this.separator; + + public void setSeparator(String sep) { + this.separator = sep; } - - public void setSeparator(String sep) { - this.separator = sep; + + /** + * Required implementation of an abstract method in Action + * + * @param eventDispatcher unused + * @param errorReporter unused + * @param scInstance unused + * @param log unused + * @param collection unused + * @throws ModelException never + * @throws SCXMLExpressionException never + */ + public void execute(EventDispatcher eventDispatcher, ErrorReporter errorReporter, SCInstance scInstance, + Log log, Collection collection) throws ModelException, SCXMLExpressionException { + //Handled manually } - - /** - * Required implementation of an abstract method in Action - * - * @param eventDispatcher unused - * @param errorReporter unused - * @param scInstance unused - * @param log unused - * @param collection unused - * @throws ModelException never - * @throws SCXMLExpressionException never - */ - public void execute(EventDispatcher eventDispatcher, ErrorReporter errorReporter, SCInstance scInstance, - Log log, Collection collection) throws ModelException, SCXMLExpressionException { - //Handled manually - } } - + } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/SingleValueAssignExtension.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/SingleValueAssignExtension.java index a3c4123d..609e34ae 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/SingleValueAssignExtension.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/SingleValueAssignExtension.java @@ -1,56 +1,56 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags; - + import org.apache.commons.scxml.model.Assign; - -import java.util.List; + +import java.util.List; import java.util.Map; - -/** - * Implementation of assign tag of scxml model - */ + +/** + * Implementation of assign tag of scxml model + */ public class SingleValueAssignExtension implements CustomTagExtension { - - public Class getTagActionClass() { - return Assign.class; + + public Class getTagActionClass() { + return Assign.class; } - - public String getTagName() { - return "assign"; + + public String getTagName() { + return "assign"; } - - public String getTagNameSpace() { - return "http://www.w3.org/2005/07/scxml"; + + public String getTagNameSpace() { + return "http://www.w3.org/2005/07/scxml"; } - - /** - * Assigns one variable to one value - * - * @param action an Assign Action - * @param possibleStateList a current list of possible states produced so far from expanding a model state - * - * @return the same list, with every possible state augmented with an assigned variable, defined by action - */ - public List> pipelinePossibleStates(Assign action, List> possibleStateList) { - for (Map possibleState : possibleStateList) { - possibleState.put(action.getName(), action.getExpr()); + + /** + * Assigns one variable to one value + * + * @param action an Assign Action + * @param possibleStateList a current list of possible states produced so far from expanding a model state + * + * @return the same list, with every possible state augmented with an assigned variable, defined by action + */ + public List> pipelinePossibleStates(Assign action, List> possibleStateList) { + for (Map possibleState : possibleStateList) { + possibleState.put(action.getName(), action.getExpr()); } - - return possibleStateList; - } + + return possibleStateList; + } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/BoundaryDate.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/BoundaryDate.java index a0890239..877f29e9 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/BoundaryDate.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/BoundaryDate.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 DataGenerator Contributors + * Copyright DataGenerator Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/BoundaryDecimal.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/BoundaryDecimal.java index 517babb0..7506b482 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/BoundaryDecimal.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/BoundaryDecimal.java @@ -1,348 +1,348 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary; - -import org.finra.datagenerator.consumer.EquivalenceClassTransformer; -import org.finra.datagenerator.engine.scxml.tags.CustomTagExtension; -import org.finra.datagenerator.engine.scxml.tags.boundary.action.BoundaryActionDecimal; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.math.BigDecimal; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; + +import org.finra.datagenerator.consumer.EquivalenceClassTransformer; +import org.finra.datagenerator.engine.scxml.tags.CustomTagExtension; +import org.finra.datagenerator.engine.scxml.tags.boundary.action.BoundaryActionDecimal; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.math.BigDecimal; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; import java.util.Map; - -/** - * @param a generic type that represents a BoundaryTag - */ + +/** + * @param a generic type that represents a BoundaryTag + */ public abstract class BoundaryDecimal implements CustomTagExtension { - - /** - * @param action an Action of the type handled by this class - * @param positive a boolean denoting positive or negative cases - * @return a list of Strings that contain the states - */ + + /** + * @param action an Action of the type handled by this class + * @param positive a boolean denoting positive or negative cases + * @return a list of Strings that contain the states + */ public List setParameters(T action, boolean positive) { - - BigDecimal max, min; - int minLen; - int maxLen; - int[] lengths = new int[2]; - boolean isNullable = true; + + BigDecimal max, min; + int minLen; + int maxLen; + int[] lengths = new int[2]; + boolean isNullable = true; String nullable = action.getNullable(); - - if (!nullable.equalsIgnoreCase("true")) { - isNullable = false; + + if (!nullable.equalsIgnoreCase("true")) { + isNullable = false; } - - if (action.getLength() == null) { - lengths[0] = Integer.parseInt("10"); - lengths[1] = Integer.parseInt("0"); - } else { - if (action.getLength().contains(",")) { - lengths[0] = Integer.parseInt(action.getLength().split(",")[0]); - lengths[1] = Integer.parseInt(action.getLength().split(",")[1]); - } else { - lengths[0] = Integer.parseInt(action.getLength()); - if (Integer.parseInt(action.getLength()) > 38) { - lengths[0] = Integer.parseInt("38"); - } - lengths[1] = Integer.parseInt("0"); - } - } - if (action.getMinLen() != null) { - if (Integer.parseInt(action.getMinLen()) <= lengths[0]) { - minLen = Integer.parseInt(action.getMinLen()); - } else { - minLen = lengths[0]; - } - } else { - minLen = -1; - } - if (action.getMaxLen() != null) { - if (Integer.parseInt(action.getMaxLen()) <= lengths[0]) { - maxLen = Integer.parseInt(action.getMaxLen()); - } else { - maxLen = lengths[0]; - } - } else { - maxLen = -1; - } - int exp = lengths[0]; - if (action.getMin() != null) { - min = new BigDecimal(action.getMin()); - } else { - min = BigDecimal.TEN.pow(exp); - min = min.negate(); - min = min.add(BigDecimal.ONE); + + if (action.getLength() == null) { + lengths[0] = Integer.parseInt("10"); + lengths[1] = Integer.parseInt("0"); + } else { + if (action.getLength().contains(",")) { + lengths[0] = Integer.parseInt(action.getLength().split(",")[0]); + lengths[1] = Integer.parseInt(action.getLength().split(",")[1]); + } else { + lengths[0] = Integer.parseInt(action.getLength()); + if (Integer.parseInt(action.getLength()) > 38) { + lengths[0] = Integer.parseInt("38"); + } + lengths[1] = Integer.parseInt("0"); + } + } + if (action.getMinLen() != null) { + if (Integer.parseInt(action.getMinLen()) <= lengths[0]) { + minLen = Integer.parseInt(action.getMinLen()); + } else { + minLen = lengths[0]; + } + } else { + minLen = -1; + } + if (action.getMaxLen() != null) { + if (Integer.parseInt(action.getMaxLen()) <= lengths[0]) { + maxLen = Integer.parseInt(action.getMaxLen()); + } else { + maxLen = lengths[0]; + } + } else { + maxLen = -1; + } + int exp = lengths[0]; + if (action.getMin() != null) { + min = new BigDecimal(action.getMin()); + } else { + min = BigDecimal.TEN.pow(exp); + min = min.negate(); + min = min.add(BigDecimal.ONE); + } + + if (action.getMax() != null) { + max = new BigDecimal(action.getMax()); + } else { + max = BigDecimal.TEN.pow(exp); + max = max.subtract(BigDecimal.ONE); } - - if (action.getMax() != null) { - max = new BigDecimal(action.getMax()); - } else { - max = BigDecimal.TEN.pow(exp); - max = max.subtract(BigDecimal.ONE); + + if (positive) { + return positive(isNullable, min, max, minLen, maxLen, lengths); + } else { + return negative(isNullable, min, max, minLen, maxLen, lengths); } - - if (positive) { - return positive(isNullable, min, max, minLen, maxLen, lengths); - } else { - return negative(isNullable, min, max, minLen, maxLen, lengths); - } } - - /** - * @param nullable nullable - * @param min minimum value - * @param max maximum value - * @param minLen minimum length - * @param maxLen maximum length - * @param lengths number of leading and trailing digits - * @return a list of Strings that contain the boundary cases - */ - public List negative(boolean nullable, BigDecimal min, BigDecimal max, - int minLen, int maxLen, int[] lengths) { - boolean minMaxLenPresent = true; - boolean minMaxPresent = true; - EquivalenceClassTransformer eq = new EquivalenceClassTransformer(); - List values = new LinkedList<>(); - Method m; - StringBuilder decimalUpperBound = new StringBuilder(); + + /** + * @param nullable nullable + * @param min minimum value + * @param max maximum value + * @param minLen minimum length + * @param maxLen maximum length + * @param lengths number of leading and trailing digits + * @return a list of Strings that contain the boundary cases + */ + public List negative(boolean nullable, BigDecimal min, BigDecimal max, + int minLen, int maxLen, int[] lengths) { + boolean minMaxLenPresent = true; + boolean minMaxPresent = true; + EquivalenceClassTransformer eq = new EquivalenceClassTransformer(); + List values = new LinkedList<>(); + Method m; + StringBuilder decimalUpperBound = new StringBuilder(); StringBuilder decimalLowerBound = new StringBuilder(); - - try { - m = EquivalenceClassTransformer.class.getDeclaredMethod("digitSequence", StringBuilder.class, int.class); + + try { + m = EquivalenceClassTransformer.class.getDeclaredMethod("digitSequence", StringBuilder.class, int.class); m.setAccessible(true); - - if (minLen == -1 && maxLen == -1) { - minMaxLenPresent = false; - } - if (minLen == -1) { - minLen = min.toString().length(); - } - if (maxLen == -1) { - maxLen = lengths[0]; - } - int exp = lengths[0]; - BigDecimal defaultMin = BigDecimal.TEN.pow(exp); - defaultMin = defaultMin.negate(); + + if (minLen == -1 && maxLen == -1) { + minMaxLenPresent = false; + } + if (minLen == -1) { + minLen = min.toString().length(); + } + if (maxLen == -1) { + maxLen = lengths[0]; + } + int exp = lengths[0]; + BigDecimal defaultMin = BigDecimal.TEN.pow(exp); + defaultMin = defaultMin.negate(); defaultMin = defaultMin.add(BigDecimal.ONE); - - BigDecimal defaultMax = BigDecimal.TEN.pow(exp); + + BigDecimal defaultMax = BigDecimal.TEN.pow(exp); defaultMax = defaultMax.subtract(BigDecimal.ONE); - - if (min.compareTo(defaultMin) == 0 && max.compareTo(defaultMax) == 0) { - minMaxPresent = false; - } - if (minMaxLenPresent && !minMaxPresent) { - m.invoke(eq, decimalLowerBound, minLen - 1); + + if (min.compareTo(defaultMin) == 0 && max.compareTo(defaultMax) == 0) { + minMaxPresent = false; + } + if (minMaxLenPresent && !minMaxPresent) { + m.invoke(eq, decimalLowerBound, minLen - 1); m.invoke(eq, decimalUpperBound, maxLen + 1); - - } else { - decimalLowerBound.append(constructData(min.subtract(BigDecimal.ONE), minLen - 1, maxLen + 1, lengths, false)); - decimalUpperBound.append(constructData(max.add(BigDecimal.ONE), minLen - 1, maxLen + 1, lengths, true)); - } - values.add(decimalLowerBound.toString()); - values.add(decimalUpperBound.toString()); - } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { - e.printStackTrace(); + + } else { + decimalLowerBound.append(constructData(min.subtract(BigDecimal.ONE), minLen - 1, maxLen + 1, lengths, false)); + decimalUpperBound.append(constructData(max.add(BigDecimal.ONE), minLen - 1, maxLen + 1, lengths, true)); + } + values.add(decimalLowerBound.toString()); + values.add(decimalUpperBound.toString()); + } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { + e.printStackTrace(); + } + + if (!nullable) { + values.add(""); } - - if (!nullable) { - values.add(""); - } - return values; + return values; } - - /** - * @param nullable nullable - * @param min minimum value - * @param max maximum value - * @param minLen minimum length - * @param maxLen maximum length - * @param lengths number of leading and trailing digits - * @return a list of Strings that contain the boundary cases - */ - public List positive(boolean nullable, BigDecimal min, BigDecimal max, - int minLen, int maxLen, int[] lengths) { - boolean minMaxLenPresent = true; - boolean minMaxPresent = true; - EquivalenceClassTransformer eq = new EquivalenceClassTransformer(); - List values = new LinkedList<>(); - Method m; - StringBuilder decimalUpperBound = new StringBuilder(); - StringBuilder decimalLowerBound = new StringBuilder(); - StringBuilder decimalMid = new StringBuilder(); + + /** + * @param nullable nullable + * @param min minimum value + * @param max maximum value + * @param minLen minimum length + * @param maxLen maximum length + * @param lengths number of leading and trailing digits + * @return a list of Strings that contain the boundary cases + */ + public List positive(boolean nullable, BigDecimal min, BigDecimal max, + int minLen, int maxLen, int[] lengths) { + boolean minMaxLenPresent = true; + boolean minMaxPresent = true; + EquivalenceClassTransformer eq = new EquivalenceClassTransformer(); + List values = new LinkedList<>(); + Method m; + StringBuilder decimalUpperBound = new StringBuilder(); + StringBuilder decimalLowerBound = new StringBuilder(); + StringBuilder decimalMid = new StringBuilder(); BigDecimal mid; - - try { - m = EquivalenceClassTransformer.class.getDeclaredMethod("digitSequence", StringBuilder.class, int.class); + + try { + m = EquivalenceClassTransformer.class.getDeclaredMethod("digitSequence", StringBuilder.class, int.class); m.setAccessible(true); - - if (minLen == -1 && maxLen == -1) { - minMaxLenPresent = false; - } - if (minLen == -1) { - minLen = min.toString().length(); - if (Character.toString(min.toString().charAt(0)).equals("-")) { - minLen = min.toString().length() - 1; - } - if (maxLen != -1) { - minMaxLenPresent = false; - } - } - if (maxLen == -1) { - maxLen = lengths[0]; - if (minLen != -1) { - minMaxLenPresent = false; - } - } + + if (minLen == -1 && maxLen == -1) { + minMaxLenPresent = false; + } + if (minLen == -1) { + minLen = min.toString().length(); + if (Character.toString(min.toString().charAt(0)).equals("-")) { + minLen = min.toString().length() - 1; + } + if (maxLen != -1) { + minMaxLenPresent = false; + } + } + if (maxLen == -1) { + maxLen = lengths[0]; + if (minLen != -1) { + minMaxLenPresent = false; + } + } int exp = lengths[0]; - - BigDecimal defaultMin = BigDecimal.TEN.pow(exp); - defaultMin = defaultMin.negate(); + + BigDecimal defaultMin = BigDecimal.TEN.pow(exp); + defaultMin = defaultMin.negate(); defaultMin = defaultMin.add(BigDecimal.ONE); - - BigDecimal defaultMax = BigDecimal.TEN.pow(exp); + + BigDecimal defaultMax = BigDecimal.TEN.pow(exp); defaultMax = defaultMax.subtract(BigDecimal.ONE); - - if (min.compareTo(defaultMin) == 0 && max.compareTo(defaultMax) == 0) { - minMaxPresent = false; - } - if (minMaxLenPresent && !minMaxPresent) { - m.invoke(eq, decimalLowerBound, minLen); - m.invoke(eq, decimalUpperBound, maxLen); + + if (min.compareTo(defaultMin) == 0 && max.compareTo(defaultMax) == 0) { + minMaxPresent = false; + } + if (minMaxLenPresent && !minMaxPresent) { + m.invoke(eq, decimalLowerBound, minLen); + m.invoke(eq, decimalUpperBound, maxLen); m.invoke(eq, decimalMid, (maxLen - minLen) / 2 + minLen); - - } else { - mid = max.subtract(min); - mid = mid.divide(new BigDecimal("2")); + + } else { + mid = max.subtract(min); + mid = mid.divide(new BigDecimal("2")); mid = mid.add(min); - - decimalLowerBound.append(constructData(min, minLen, maxLen, lengths, false)); - decimalUpperBound.append(constructData(max, minLen, maxLen, lengths, true)); + + decimalLowerBound.append(constructData(min, minLen, maxLen, lengths, false)); + decimalUpperBound.append(constructData(max, minLen, maxLen, lengths, true)); decimalMid.append(constructData(mid, minLen, maxLen, lengths, false)); - - if (min.compareTo(BigDecimal.ZERO) == -1 && max.compareTo(BigDecimal.ZERO) == 1 - && !values.contains("0")) { - values.add("0"); - } - } - values.add(decimalLowerBound.toString()); - values.add(decimalUpperBound.toString()); + + if (min.compareTo(BigDecimal.ZERO) == -1 && max.compareTo(BigDecimal.ZERO) == 1 + && !values.contains("0")) { + values.add("0"); + } + } + values.add(decimalLowerBound.toString()); + values.add(decimalUpperBound.toString()); values.add(decimalMid.toString()); - - } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { - e.printStackTrace(); + + } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { + e.printStackTrace(); } - - if (nullable) { - values.add(""); - } - return values; + + if (nullable) { + values.add(""); + } + return values; } - - /** - * @param boundary the min or max value - * @param minLen the min Length - * @param maxLen the max Length - * @param lengths the length parameters for decimal field - * @param upperBound boolean for upperBound bound - * @return the number of trailing digits to append to the value - */ - public String constructData(BigDecimal boundary, int minLen, int maxLen, int[] lengths, boolean upperBound) { - Method m; - EquivalenceClassTransformer eq = new EquivalenceClassTransformer(); - StringBuilder value = new StringBuilder(); - int trailing; - try { - m = EquivalenceClassTransformer.class.getDeclaredMethod("digitSequence", StringBuilder.class, int.class); + + /** + * @param boundary the min or max value + * @param minLen the min Length + * @param maxLen the max Length + * @param lengths the length parameters for decimal field + * @param upperBound boolean for upperBound bound + * @return the number of trailing digits to append to the value + */ + public String constructData(BigDecimal boundary, int minLen, int maxLen, int[] lengths, boolean upperBound) { + Method m; + EquivalenceClassTransformer eq = new EquivalenceClassTransformer(); + StringBuilder value = new StringBuilder(); + int trailing; + try { + m = EquivalenceClassTransformer.class.getDeclaredMethod("digitSequence", StringBuilder.class, int.class); m.setAccessible(true); - - if (upperBound) { - if (boundary.toString().length() > maxLen) { - value.append(boundary.toString().substring(0, maxLen - 1)); - return value.toString(); + + if (upperBound) { + if (boundary.toString().length() > maxLen) { + value.append(boundary.toString().substring(0, maxLen - 1)); + return value.toString(); + } + + if (boundary.toString().length() + lengths[1] <= maxLen) { + trailing = lengths[1]; + } else { + if (maxLen - boundary.toString().length() <= lengths[1]) { + trailing = maxLen - boundary.toString().length(); + } else { + trailing = lengths[1] - boundary.toString().length(); + } } - - if (boundary.toString().length() + lengths[1] <= maxLen) { - trailing = lengths[1]; - } else { - if (maxLen - boundary.toString().length() <= lengths[1]) { - trailing = maxLen - boundary.toString().length(); - } else { - trailing = lengths[1] - boundary.toString().length(); - } - } - if (trailing > 0) { - value.append(boundary.subtract(BigDecimal.ONE)); - } else { - value.append(boundary); + if (trailing > 0) { + value.append(boundary.subtract(BigDecimal.ONE)); + } else { + value.append(boundary); } - - } else { - if (boundary.toString().length() > minLen) { - if (Character.toString(boundary.toString().charAt(0)).equals("-")) { - value.append(boundary.toString().substring(0, minLen + 1)); - } else { - value.append(boundary.toString().substring(0, minLen)); - } - return value.toString(); + + } else { + if (boundary.toString().length() > minLen) { + if (Character.toString(boundary.toString().charAt(0)).equals("-")) { + value.append(boundary.toString().substring(0, minLen + 1)); + } else { + value.append(boundary.toString().substring(0, minLen)); + } + return value.toString(); } - - if (boundary.toString().length() + lengths[1] <= minLen) { - trailing = lengths[1]; - } else { - if (minLen - boundary.toString().length() <= lengths[1]) { - trailing = minLen - boundary.toString().length(); - } else { - trailing = lengths[1] - boundary.toString().length(); - } - } - value.append(boundary); - } - if (trailing > 0) { - value.append("."); - } + + if (boundary.toString().length() + lengths[1] <= minLen) { + trailing = lengths[1]; + } else { + if (minLen - boundary.toString().length() <= lengths[1]) { + trailing = minLen - boundary.toString().length(); + } else { + trailing = lengths[1] - boundary.toString().length(); + } + } + value.append(boundary); + } + if (trailing > 0) { + value.append("."); + } m.invoke(eq, value, trailing); - - } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { - e.printStackTrace(); - } - return value.toString(); + + } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { + e.printStackTrace(); + } + return value.toString(); + } + + /** + * @param action an Action of the type handled by this class + * @param possibleStateList a current list of possible states produced so far from + * expanding a model state + * @param variableValue a list storing the values + * @return a list of Maps containing the cross product of all states + */ + public List> returnStates(T action, + List> possibleStateList, List variableValue) { + List> states = new LinkedList<>(); + for (Map p : possibleStateList) { + for (String s : variableValue) { + HashMap n = new HashMap<>(p); + n.put(action.getName(), s); + states.add(n); + } + } + return states; } - - /** - * @param action an Action of the type handled by this class - * @param possibleStateList a current list of possible states produced so far from - * expanding a model state - * @param variableValue a list storing the values - * @return a list of Maps containing the cross product of all states - */ - public List> returnStates(T action, - List> possibleStateList, List variableValue) { - List> states = new LinkedList<>(); - for (Map p : possibleStateList) { - for (String s : variableValue) { - HashMap n = new HashMap<>(p); - n.put(action.getName(), s); - states.add(n); - } - } - return states; - } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/BoundaryInteger.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/BoundaryInteger.java index b4659c86..62255be5 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/BoundaryInteger.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/BoundaryInteger.java @@ -1,142 +1,142 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary; - -import org.finra.datagenerator.engine.scxml.tags.CustomTagExtension; + +import org.finra.datagenerator.engine.scxml.tags.CustomTagExtension; import org.finra.datagenerator.engine.scxml.tags.boundary.action.BoundaryActionNumeric; - -import java.math.BigInteger; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; + +import java.math.BigInteger; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; import java.util.Map; - -/** - * @param a generic type that represents a BoundaryTag - */ + +/** + * @param a generic type that represents a BoundaryTag + */ public abstract class BoundaryInteger implements CustomTagExtension { - - /** - * @param action an Action of the type handled by this class - * @param minVALUE a String containing the minimum possible value - * @param maxVALUE a String containing the maximum possible value - * @param positive a boolean denoting positive or negative cases - * @return a List containing the boundary values - */ + + /** + * @param action an Action of the type handled by this class + * @param minVALUE a String containing the minimum possible value + * @param maxVALUE a String containing the maximum possible value + * @param positive a boolean denoting positive or negative cases + * @return a List containing the boundary values + */ public List buildNumericData(BoundaryActionNumeric action, String minVALUE, String maxVALUE, boolean positive) { - - if (action.getClass().getCanonicalName() != null) { - System.out.println(action.getClass().getCanonicalName()); + + if (action.getClass().getCanonicalName() != null) { + System.out.println(action.getClass().getCanonicalName()); } - - BigInteger min = new BigInteger(action.getMin()); - BigInteger max = new BigInteger(action.getMax()); - List values = new LinkedList<>(); + + BigInteger min = new BigInteger(action.getMin()); + BigInteger max = new BigInteger(action.getMax()); + List values = new LinkedList<>(); String nullString = ""; - - if (min.compareTo(max) == 1) { - BigInteger temp = new BigInteger(action.getMin()); - action.setMin(action.getMax()); - action.setMax(temp.toString()); - min = new BigInteger(action.getMin()); - max = new BigInteger(action.getMax()); + + if (min.compareTo(max) == 1) { + BigInteger temp = new BigInteger(action.getMin()); + action.setMin(action.getMax()); + action.setMax(temp.toString()); + min = new BigInteger(action.getMin()); + max = new BigInteger(action.getMax()); } - - if (min.compareTo(new BigInteger(minVALUE)) == -1) { - action.setMin(minVALUE); - min = new BigInteger(minVALUE); + + if (min.compareTo(new BigInteger(minVALUE)) == -1) { + action.setMin(minVALUE); + min = new BigInteger(minVALUE); } - - if (max.compareTo(new BigInteger(maxVALUE)) == 1) { - action.setMax(maxVALUE); - max = new BigInteger(maxVALUE); + + if (max.compareTo(new BigInteger(maxVALUE)) == 1) { + action.setMax(maxVALUE); + max = new BigInteger(maxVALUE); } - - if (positive) { - values.add(min.toString()); - positiveCase(min, max, values); + + if (positive) { + values.add(min.toString()); + positiveCase(min, max, values); values.add(max.toString()); - - if (action.getNullable().equals("true")) { - values.add(nullString); + + if (action.getNullable().equals("true")) { + values.add(nullString); } - - } else { + + } else { negativeCase(min, max, values); - - if (!action.getNullable().equals("true")) { - values.add(nullString); - } + + if (!action.getNullable().equals("true")) { + values.add(nullString); + } } - - if (min.compareTo(BigInteger.ZERO) == -1 && max.compareTo(BigInteger.ZERO) == 1 - && min.compareTo(BigInteger.ONE) != 0 && max.compareTo(new BigInteger("-1")) != 0) { - values.add("0"); + + if (min.compareTo(BigInteger.ZERO) == -1 && max.compareTo(BigInteger.ZERO) == 1 + && min.compareTo(BigInteger.ONE) != 0 && max.compareTo(new BigInteger("-1")) != 0) { + values.add("0"); } - - return values; + + return values; + } + + /** + * @param min a BigInteger containing the min defined by Action + * @param max a BigInteger containing the max defined by Action + * @param values a list of boundary values + * @return a list of BigIntegers with the boundary values -/+ one + */ + public List negativeCase(BigInteger min, BigInteger max, List values) { + BigInteger minMinusOne = min.subtract(BigInteger.ONE); + BigInteger maxPlusOne = max.add(BigInteger.ONE); + values.add(minMinusOne.toString()); + values.add(maxPlusOne.toString()); + return values; } - - /** - * @param min a BigInteger containing the min defined by Action - * @param max a BigInteger containing the max defined by Action - * @param values a list of boundary values - * @return a list of BigIntegers with the boundary values -/+ one - */ - public List negativeCase(BigInteger min, BigInteger max, List values) { - BigInteger minMinusOne = min.subtract(BigInteger.ONE); - BigInteger maxPlusOne = max.add(BigInteger.ONE); - values.add(minMinusOne.toString()); - values.add(maxPlusOne.toString()); - return values; + + /** + * @param min a BigInteger containing the min defined by Action + * @param max a BigInteger containing the max defined by Action + * @param values a list of boundary values + * @return a list of BigIntegers with the boundary values +/- one + */ + public List positiveCase(BigInteger min, BigInteger max, List values) { + BigInteger minPlusOne = min.add(BigInteger.ONE); + BigInteger maxMinusOne = max.subtract(BigInteger.ONE); + BigInteger mid = max.subtract(min).divide(new BigInteger("2")); + values.add(minPlusOne.toString()); + values.add(mid.toString()); + values.add(maxMinusOne.toString()); + return values; } - - /** - * @param min a BigInteger containing the min defined by Action - * @param max a BigInteger containing the max defined by Action - * @param values a list of boundary values - * @return a list of BigIntegers with the boundary values +/- one - */ - public List positiveCase(BigInteger min, BigInteger max, List values) { - BigInteger minPlusOne = min.add(BigInteger.ONE); - BigInteger maxMinusOne = max.subtract(BigInteger.ONE); - BigInteger mid = max.subtract(min).divide(new BigInteger("2")); - values.add(minPlusOne.toString()); - values.add(mid.toString()); - values.add(maxMinusOne.toString()); - return values; + + /** + * @param action an Action of the type handled by this class + * @param possibleStateList a current list of possible states produced so far from + * expanding a model state + * @param variableValue a list storing the values + * @return a list of Maps containing the cross product of all states + */ + public List> returnStates(T action, + List> possibleStateList, List variableValue) { + List> states = new LinkedList<>(); + for (Map p : possibleStateList) { + for (String s : variableValue) { + HashMap n = new HashMap<>(p); + n.put(action.getName(), s); + states.add(n); + } + } + return states; } - - /** - * @param action an Action of the type handled by this class - * @param possibleStateList a current list of possible states produced so far from - * expanding a model state - * @param variableValue a list storing the values - * @return a list of Maps containing the cross product of all states - */ - public List> returnStates(T action, - List> possibleStateList, List variableValue) { - List> states = new LinkedList<>(); - for (Map p : possibleStateList) { - for (String s : variableValue) { - HashMap n = new HashMap<>(p); - n.put(action.getName(), s); - states.add(n); - } - } - return states; - } } \ No newline at end of file diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/BoundaryVarchar.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/BoundaryVarchar.java index 72d7588d..c944579a 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/BoundaryVarchar.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/BoundaryVarchar.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 DataGenerator Contributors + * Copyright DataGenerator Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/Holiday.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/Holiday.java index a0bbb2f1..ed2999fd 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/Holiday.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/Holiday.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 DataGenerator Contributors + * Copyright DataGenerator Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveBigInt.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveBigInt.java index 642b6189..daf7c6ee 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveBigInt.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveBigInt.java @@ -1,67 +1,67 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary; - + import org.finra.datagenerator.engine.scxml.tags.boundary.action.BoundaryActionNumeric; - -import java.util.List; + +import java.util.List; import java.util.Map; - -/** - * Implementation of dg:negativeBoundHiveBigInt tag - */ + +/** + * Implementation of dg:negativeBoundHiveBigInt tag + */ public class NegativeBoundHiveBigInt extends BoundaryInteger { - - public Class getTagActionClass() { - return NegativeBoundHiveBigIntTag.class; + + public Class getTagActionClass() { + return NegativeBoundHiveBigIntTag.class; } - - public String getTagName() { - return "negativeBoundHiveBigInt"; + + public String getTagName() { + return "negativeBoundHiveBigInt"; } - - public String getTagNameSpace() { - return "org.finra.datagenerator"; + + public String getTagNameSpace() { + return "org.finra.datagenerator"; + } + + /** + * @param action an Action of the type handled by this class + * @param possibleStateList a current list of possible states produced so far from + * expanding a model state + * @return a list with negative boundary conditions assigned + * to the variable + */ + public List> pipelinePossibleStates(NegativeBoundHiveBigIntTag action, + List> possibleStateList) { + final String minVALUE = Long.toString(Long.MIN_VALUE); + final String maxVALUE = Long.toString(Long.MAX_VALUE); + return returnStates(action, possibleStateList, buildNumericData(action, minVALUE, maxVALUE, false)); } - - /** - * @param action an Action of the type handled by this class - * @param possibleStateList a current list of possible states produced so far from - * expanding a model state - * @return a list with negative boundary conditions assigned - * to the variable - */ - public List> pipelinePossibleStates(NegativeBoundHiveBigIntTag action, - List> possibleStateList) { - final String minVALUE = Long.toString(Long.MIN_VALUE); - final String maxVALUE = Long.toString(Long.MAX_VALUE); - return returnStates(action, possibleStateList, buildNumericData(action, minVALUE, maxVALUE, false)); + + /** + * A custom Action for the 'dg:negativeBoundHiveBigInt' tag inside models + */ + public static class NegativeBoundHiveBigIntTag extends BoundaryActionNumeric { + /** + * constructor + */ + public NegativeBoundHiveBigIntTag() { + this.setMin(Long.toString(Long.MIN_VALUE)); + this.setMax(Long.toString(Long.MAX_VALUE)); + } } - - /** - * A custom Action for the 'dg:negativeBoundHiveBigInt' tag inside models - */ - public static class NegativeBoundHiveBigIntTag extends BoundaryActionNumeric { - /** - * constructor - */ - public NegativeBoundHiveBigIntTag() { - this.setMin(Long.toString(Long.MIN_VALUE)); - this.setMax(Long.toString(Long.MAX_VALUE)); - } - } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveDate.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveDate.java index 318a85f8..32e3fc2d 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveDate.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveDate.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 DataGenerator Contributors + * Copyright DataGenerator Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveDecimal.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveDecimal.java index b133f2df..e3281e0d 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveDecimal.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveDecimal.java @@ -1,56 +1,56 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary; - -import org.finra.datagenerator.engine.scxml.tags.boundary.action.BoundaryActionDecimal; -import java.util.List; + +import org.finra.datagenerator.engine.scxml.tags.boundary.action.BoundaryActionDecimal; +import java.util.List; import java.util.Map; - -/** - * Implementation of dg:negativeBoundHiveDecimal tag - */ + +/** + * Implementation of dg:negativeBoundHiveDecimal tag + */ public class NegativeBoundHiveDecimal extends BoundaryDecimal { - - public Class getTagActionClass() { - return NegativeBoundHiveDecimalTag.class; + + public Class getTagActionClass() { + return NegativeBoundHiveDecimalTag.class; } - - public String getTagName() { - return "negativeBoundHiveDecimal"; + + public String getTagName() { + return "negativeBoundHiveDecimal"; } - - public String getTagNameSpace() { - return "org.finra.datagenerator"; + + public String getTagNameSpace() { + return "org.finra.datagenerator"; } - - /** - * @param action an Action of the type handled by this class - * @param possibleStateList a current list of possible states produced so far from - * expanding a model state - * @return a list with negative boundary conditions assigned - * to the variable - */ - public List> pipelinePossibleStates(NegativeBoundHiveDecimalTag action, + + /** + * @param action an Action of the type handled by this class + * @param possibleStateList a current list of possible states produced so far from + * expanding a model state + * @return a list with negative boundary conditions assigned + * to the variable + */ + public List> pipelinePossibleStates(NegativeBoundHiveDecimalTag action, List> possibleStateList) { - - return returnStates(action, possibleStateList, setParameters(action, false)); + + return returnStates(action, possibleStateList, setParameters(action, false)); } - - /** - * A custom Action for the 'dg:negativeBoundHiveDecimal' tag inside models - */ - public static class NegativeBoundHiveDecimalTag extends BoundaryActionDecimal { } + + /** + * A custom Action for the 'dg:negativeBoundHiveDecimal' tag inside models + */ + public static class NegativeBoundHiveDecimalTag extends BoundaryActionDecimal { } } \ No newline at end of file diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveInt.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveInt.java index 94dac701..e1f2def9 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveInt.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveInt.java @@ -1,67 +1,67 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary; - + import org.finra.datagenerator.engine.scxml.tags.boundary.action.BoundaryActionNumeric; - -import java.util.List; + +import java.util.List; import java.util.Map; - -/** - * Implementation of dg:negativeBoundHiveInt tag - */ + +/** + * Implementation of dg:negativeBoundHiveInt tag + */ public class NegativeBoundHiveInt extends BoundaryInteger { - - public Class getTagActionClass() { - return NegativeBoundHiveIntTag.class; + + public Class getTagActionClass() { + return NegativeBoundHiveIntTag.class; } - - public String getTagName() { - return "negativeBoundHiveInt"; + + public String getTagName() { + return "negativeBoundHiveInt"; } - - public String getTagNameSpace() { - return "org.finra.datagenerator"; + + public String getTagNameSpace() { + return "org.finra.datagenerator"; + } + + /** + * @param action an Action of the type handled by this class + * @param possibleStateList a current list of possible states produced so far from + * expanding a model state + * @return a list with negative boundary conditions assigned + * to the variable + */ + public List> pipelinePossibleStates(NegativeBoundHiveIntTag action, + List> possibleStateList) { + final String minVALUE = Integer.toString(Integer.MIN_VALUE); + final String maxVALUE = Integer.toString(Integer.MAX_VALUE); + return returnStates(action, possibleStateList, buildNumericData(action, minVALUE, maxVALUE, false)); } - - /** - * @param action an Action of the type handled by this class - * @param possibleStateList a current list of possible states produced so far from - * expanding a model state - * @return a list with negative boundary conditions assigned - * to the variable - */ - public List> pipelinePossibleStates(NegativeBoundHiveIntTag action, - List> possibleStateList) { - final String minVALUE = Integer.toString(Integer.MIN_VALUE); - final String maxVALUE = Integer.toString(Integer.MAX_VALUE); - return returnStates(action, possibleStateList, buildNumericData(action, minVALUE, maxVALUE, false)); + + /** + * A custom Action for the 'dg:negativeBoundHiveInt' tag inside models + */ + public static class NegativeBoundHiveIntTag extends BoundaryActionNumeric { + /** + * constructor + */ + public NegativeBoundHiveIntTag() { + this.setMin(Integer.toString(Integer.MIN_VALUE)); + this.setMax(Integer.toString(Integer.MAX_VALUE)); + } } - - /** - * A custom Action for the 'dg:negativeBoundHiveInt' tag inside models - */ - public static class NegativeBoundHiveIntTag extends BoundaryActionNumeric { - /** - * constructor - */ - public NegativeBoundHiveIntTag() { - this.setMin(Integer.toString(Integer.MIN_VALUE)); - this.setMax(Integer.toString(Integer.MAX_VALUE)); - } - } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveSmallInt.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveSmallInt.java index 5ec8ec16..4f9944c7 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveSmallInt.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveSmallInt.java @@ -1,68 +1,68 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary; - + import org.finra.datagenerator.engine.scxml.tags.boundary.action.BoundaryActionNumeric; - -import java.util.List; + +import java.util.List; import java.util.Map; - -/** - * Implementation of dg:negativeBoundHiveSmallInt tag - */ + +/** + * Implementation of dg:negativeBoundHiveSmallInt tag + */ public class NegativeBoundHiveSmallInt extends BoundaryInteger { - - public Class getTagActionClass() { - return NegativeBoundHiveSmallIntTag.class; + + public Class getTagActionClass() { + return NegativeBoundHiveSmallIntTag.class; } - - public String getTagName() { - return "negativeBoundHiveSmallInt"; + + public String getTagName() { + return "negativeBoundHiveSmallInt"; } - - public String getTagNameSpace() { - return "org.finra.datagenerator"; + + public String getTagNameSpace() { + return "org.finra.datagenerator"; + } + + /** + * @param action an Action of the type handled by this class + * @param possibleStateList a current list of possible states produced so far from + * expanding a model state + * @return a list with negative boundary conditions assigned + * to the variable + */ + public List> pipelinePossibleStates(NegativeBoundHiveSmallIntTag action, + List> possibleStateList) { + final String minVALUE = "-32768"; + final String maxVALUE = "32767"; + return returnStates(action, possibleStateList, buildNumericData(action, minVALUE, maxVALUE, false)); } - - /** - * @param action an Action of the type handled by this class - * @param possibleStateList a current list of possible states produced so far from - * expanding a model state - * @return a list with negative boundary conditions assigned - * to the variable - */ - public List> pipelinePossibleStates(NegativeBoundHiveSmallIntTag action, - List> possibleStateList) { - final String minVALUE = "-32768"; - final String maxVALUE = "32767"; - return returnStates(action, possibleStateList, buildNumericData(action, minVALUE, maxVALUE, false)); + + /** + * A custom Action for the 'dg:negativeBoundHiveSmallInt' tag inside models + */ + public static class NegativeBoundHiveSmallIntTag extends BoundaryActionNumeric { + /** + * constructor + */ + public NegativeBoundHiveSmallIntTag() { + this.setMin("-32768"); + this.setMax("32767"); + } } - - /** - * A custom Action for the 'dg:negativeBoundHiveSmallInt' tag inside models - */ - public static class NegativeBoundHiveSmallIntTag extends BoundaryActionNumeric { - /** - * constructor - */ - public NegativeBoundHiveSmallIntTag() { - this.setMin("-32768"); - this.setMax("32767"); - } - } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveTinyInt.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveTinyInt.java index ef068265..99176175 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveTinyInt.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveTinyInt.java @@ -1,68 +1,68 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary; - + import org.finra.datagenerator.engine.scxml.tags.boundary.action.BoundaryActionNumeric; - -import java.util.List; + +import java.util.List; import java.util.Map; - -/** - * Implementation of dg:negativeBoundHiveTinyInt tag - */ + +/** + * Implementation of dg:negativeBoundHiveTinyInt tag + */ public class NegativeBoundHiveTinyInt extends BoundaryInteger { - - public Class getTagActionClass() { - return NegativeBoundHiveTinyIntTag.class; + + public Class getTagActionClass() { + return NegativeBoundHiveTinyIntTag.class; } - - public String getTagName() { - return "negativeBoundHiveTinyInt"; + + public String getTagName() { + return "negativeBoundHiveTinyInt"; } - - public String getTagNameSpace() { - return "org.finra.datagenerator"; + + public String getTagNameSpace() { + return "org.finra.datagenerator"; + } + + /** + * @param action an Action of the type handled by this class + * @param possibleStateList a current list of possible states produced so far from + * expanding a model state + * @return a list with negative boundary conditions assigned + * to the variable + */ + public List> pipelinePossibleStates(NegativeBoundHiveTinyIntTag action, + List> possibleStateList) { + final String minVALUE = "-128"; + final String maxVALUE = "127"; + return returnStates(action, possibleStateList, buildNumericData(action, minVALUE, maxVALUE, false)); } - - /** - * @param action an Action of the type handled by this class - * @param possibleStateList a current list of possible states produced so far from - * expanding a model state - * @return a list with negative boundary conditions assigned - * to the variable - */ - public List> pipelinePossibleStates(NegativeBoundHiveTinyIntTag action, - List> possibleStateList) { - final String minVALUE = "-128"; - final String maxVALUE = "127"; - return returnStates(action, possibleStateList, buildNumericData(action, minVALUE, maxVALUE, false)); + + /** + * A custom Action for the 'dg:negativeBoundHiveTinyInt' tag inside models + */ + public static class NegativeBoundHiveTinyIntTag extends BoundaryActionNumeric { + /** + * constructor + */ + public NegativeBoundHiveTinyIntTag() { + this.setMin("-128"); + this.setMax("127"); + } } - - /** - * A custom Action for the 'dg:negativeBoundHiveTinyInt' tag inside models - */ - public static class NegativeBoundHiveTinyIntTag extends BoundaryActionNumeric { - /** - * constructor - */ - public NegativeBoundHiveTinyIntTag() { - this.setMin("-128"); - this.setMax("127"); - } - } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveVarchar.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveVarchar.java index 73f5962a..6f5c1a2b 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveVarchar.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveVarchar.java @@ -1,64 +1,64 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary; - + import org.finra.datagenerator.engine.scxml.tags.boundary.action.BoundaryActionVarchar; - -import java.util.List; + +import java.util.List; import java.util.Map; - -/** - * Implementation of dg:negativeBoundHiveVarchar tag - */ + +/** + * Implementation of dg:negativeBoundHiveVarchar tag + */ public class NegativeBoundHiveVarchar extends BoundaryVarchar { - - public Class getTagActionClass() { - return NegativeBoundHiveVarcharTag.class; + + public Class getTagActionClass() { + return NegativeBoundHiveVarcharTag.class; } - - public String getTagName() { - return "negativeBoundHiveVarchar"; + + public String getTagName() { + return "negativeBoundHiveVarchar"; } - - public String getTagNameSpace() { - return "org.finra.datagenerator"; + + public String getTagNameSpace() { + return "org.finra.datagenerator"; } - - /** - * @param action an Action of the type handled by this class - * @param possibleStateList a current list of possible states produced so far from - * expanding a model state - * @return a list with negative boundary conditions assigned - * to the variable - */ - public List> pipelinePossibleStates(NegativeBoundHiveVarcharTag action, + + /** + * @param action an Action of the type handled by this class + * @param possibleStateList a current list of possible states produced so far from + * expanding a model state + * @return a list with negative boundary conditions assigned + * to the variable + */ + public List> pipelinePossibleStates(NegativeBoundHiveVarcharTag action, List> possibleStateList) { - - return returnStates(action, possibleStateList, buildVarcharData(action, false)); + + return returnStates(action, possibleStateList, buildVarcharData(action, false)); + } + + /** + * A custom Action for the 'dg:negativeBoundHiveVarchar' tag inside models + */ + public static class NegativeBoundHiveVarcharTag extends BoundaryActionVarchar { + /** + * constructor + */ + public NegativeBoundHiveVarcharTag() { + this.setLength("10"); + } } - - /** - * A custom Action for the 'dg:negativeBoundHiveVarchar' tag inside models - */ - public static class NegativeBoundHiveVarcharTag extends BoundaryActionVarchar { - /** - * constructor - */ - public NegativeBoundHiveVarcharTag() { - this.setLength("10"); - } - } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveBigInt.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveBigInt.java index 8417dd6a..f072694a 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveBigInt.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveBigInt.java @@ -1,68 +1,68 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary; - + import org.finra.datagenerator.engine.scxml.tags.boundary.action.BoundaryActionNumeric; - -import java.util.List; + +import java.util.List; import java.util.Map; - -/** - * Implementation of dg:positiveBoundHiveBigInt tag - */ + +/** + * Implementation of dg:positiveBoundHiveBigInt tag + */ public class PositiveBoundHiveBigInt extends BoundaryInteger { - - public Class getTagActionClass() { - return PositiveBoundHiveBigIntTag.class; + + public Class getTagActionClass() { + return PositiveBoundHiveBigIntTag.class; } - - public String getTagName() { - return "positiveBoundHiveBigInt"; + + public String getTagName() { + return "positiveBoundHiveBigInt"; } - - public String getTagNameSpace() { - return "org.finra.datagenerator"; + + public String getTagNameSpace() { + return "org.finra.datagenerator"; + } + + /** + * @param action an Action of the type handled by this class + * @param possibleStateList a current list of possible states produced so far from + * expanding a model state + * @return a list with positive boundary conditions assigned + * to the variable + */ + public List> pipelinePossibleStates(PositiveBoundHiveBigIntTag action, + List> possibleStateList) { + final String minVALUE = Long.toString(Long.MIN_VALUE); + final String maxVALUE = Long.toString(Long.MAX_VALUE); + return returnStates(action, possibleStateList, buildNumericData(action, minVALUE, maxVALUE, true)); } - - /** - * @param action an Action of the type handled by this class - * @param possibleStateList a current list of possible states produced so far from - * expanding a model state - * @return a list with positive boundary conditions assigned - * to the variable - */ - public List> pipelinePossibleStates(PositiveBoundHiveBigIntTag action, - List> possibleStateList) { - final String minVALUE = Long.toString(Long.MIN_VALUE); - final String maxVALUE = Long.toString(Long.MAX_VALUE); - return returnStates(action, possibleStateList, buildNumericData(action, minVALUE, maxVALUE, true)); + + /** + * A custom Action for the 'dg:positiveBoundHiveBigInt' tag inside models + */ + public static class PositiveBoundHiveBigIntTag extends BoundaryActionNumeric { + /** + * constructor + */ + public PositiveBoundHiveBigIntTag() { + this.setMin(Long.toString(Long.MIN_VALUE)); + this.setMax(Long.toString(Long.MAX_VALUE)); + } } - - /** - * A custom Action for the 'dg:positiveBoundHiveBigInt' tag inside models - */ - public static class PositiveBoundHiveBigIntTag extends BoundaryActionNumeric { - /** - * constructor - */ - public PositiveBoundHiveBigIntTag() { - this.setMin(Long.toString(Long.MIN_VALUE)); - this.setMax(Long.toString(Long.MAX_VALUE)); - } - } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveDate.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveDate.java index 30f90796..fcded25b 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveDate.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveDate.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 DataGenerator Contributors + * Copyright DataGenerator Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveDecimal.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveDecimal.java index 2e725a4c..0661938d 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveDecimal.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveDecimal.java @@ -1,59 +1,59 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary; - + import org.finra.datagenerator.engine.scxml.tags.boundary.action.BoundaryActionDecimal; - - import java.util.List; + + import java.util.List; import java.util.Map; - -/** -* Implementation of dg:positiveBoundHiveDecimal tag -*/ + +/** +* Implementation of dg:positiveBoundHiveDecimal tag +*/ public class PositiveBoundHiveDecimal extends BoundaryDecimal { - - public Class getTagActionClass() { - return PositiveBoundHiveDecimalTag.class; + + public Class getTagActionClass() { + return PositiveBoundHiveDecimalTag.class; } - - public String getTagName() { - return "positiveBoundHiveDecimal"; + + public String getTagName() { + return "positiveBoundHiveDecimal"; } - - public String getTagNameSpace() { - return "org.finra.datagenerator"; + + public String getTagNameSpace() { + return "org.finra.datagenerator"; } - - /** - * @param action an Action of the type handled by this class - * @param possibleStateList a current list of possible states produced so far from - * expanding a model state - * @return a list with positive boundary conditions assigned - * to the variable - */ - public List> pipelinePossibleStates(PositiveBoundHiveDecimalTag action, + + /** + * @param action an Action of the type handled by this class + * @param possibleStateList a current list of possible states produced so far from + * expanding a model state + * @return a list with positive boundary conditions assigned + * to the variable + */ + public List> pipelinePossibleStates(PositiveBoundHiveDecimalTag action, List> possibleStateList) { - - return returnStates(action, possibleStateList, setParameters(action, true)); + + return returnStates(action, possibleStateList, setParameters(action, true)); } - - /** - * A custom Action for the 'dg:positiveBoundHiveDecimal' tag inside models - */ + + /** + * A custom Action for the 'dg:positiveBoundHiveDecimal' tag inside models + */ public static class PositiveBoundHiveDecimalTag extends BoundaryActionDecimal { } - + } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveInt.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveInt.java index 0d6abc58..a11b6fac 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveInt.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveInt.java @@ -1,68 +1,68 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary; - + import org.finra.datagenerator.engine.scxml.tags.boundary.action.BoundaryActionNumeric; - -import java.util.List; + +import java.util.List; import java.util.Map; - -/** - * Implementation of dg:boundaryHiveIntPos tag - */ + +/** + * Implementation of dg:boundaryHiveIntPos tag + */ public class PositiveBoundHiveInt extends BoundaryInteger { - - public Class getTagActionClass() { - return PositiveBoundHiveIntTag.class; + + public Class getTagActionClass() { + return PositiveBoundHiveIntTag.class; } - - public String getTagName() { - return "boundaryHiveIntPos"; + + public String getTagName() { + return "boundaryHiveIntPos"; } - - public String getTagNameSpace() { - return "org.finra.datagenerator"; + + public String getTagNameSpace() { + return "org.finra.datagenerator"; + } + + /** + * @param action an Action of the type handled by this class + * @param possibleStateList a current list of possible states produced so far from + * expanding a model state + * @return a list with positive boundary conditions assigned + * to the variable + */ + public List> pipelinePossibleStates(PositiveBoundHiveIntTag action, + List> possibleStateList) { + final String minVALUE = Integer.toString(Integer.MIN_VALUE); + final String maxVALUE = Integer.toString(Integer.MAX_VALUE); + return returnStates(action, possibleStateList, buildNumericData(action, minVALUE, maxVALUE, true)); } - - /** - * @param action an Action of the type handled by this class - * @param possibleStateList a current list of possible states produced so far from - * expanding a model state - * @return a list with positive boundary conditions assigned - * to the variable - */ - public List> pipelinePossibleStates(PositiveBoundHiveIntTag action, - List> possibleStateList) { - final String minVALUE = Integer.toString(Integer.MIN_VALUE); - final String maxVALUE = Integer.toString(Integer.MAX_VALUE); - return returnStates(action, possibleStateList, buildNumericData(action, minVALUE, maxVALUE, true)); + + /** + * A custom Action for the 'dg:positiveBoundHiveInt' tag inside models + */ + public static class PositiveBoundHiveIntTag extends BoundaryActionNumeric { + /** + * constructor + */ + public PositiveBoundHiveIntTag() { + this.setMin(Integer.toString(Integer.MIN_VALUE)); + this.setMax(Integer.toString(Integer.MAX_VALUE)); + } } - - /** - * A custom Action for the 'dg:positiveBoundHiveInt' tag inside models - */ - public static class PositiveBoundHiveIntTag extends BoundaryActionNumeric { - /** - * constructor - */ - public PositiveBoundHiveIntTag() { - this.setMin(Integer.toString(Integer.MIN_VALUE)); - this.setMax(Integer.toString(Integer.MAX_VALUE)); - } - } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveSmallInt.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveSmallInt.java index 466f66bc..0782cc7f 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveSmallInt.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveSmallInt.java @@ -1,68 +1,68 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary; - + import org.finra.datagenerator.engine.scxml.tags.boundary.action.BoundaryActionNumeric; - -import java.util.List; + +import java.util.List; import java.util.Map; - -/** - * Implementation of dg:positiveBoundHiveSmallInt tag - */ + +/** + * Implementation of dg:positiveBoundHiveSmallInt tag + */ public class PositiveBoundHiveSmallInt extends BoundaryInteger { - - public Class getTagActionClass() { - return PositiveBoundHiveSmallIntTag.class; + + public Class getTagActionClass() { + return PositiveBoundHiveSmallIntTag.class; } - - public String getTagName() { - return "positiveBoundHiveSmallInt"; + + public String getTagName() { + return "positiveBoundHiveSmallInt"; } - - public String getTagNameSpace() { - return "org.finra.datagenerator"; + + public String getTagNameSpace() { + return "org.finra.datagenerator"; + } + + /** + * @param action an Action of the type handled by this class + * @param possibleStateList a current list of possible states produced so far from + * expanding a model state + * @return a list with positive boundary conditions assigned + * to the variable + */ + public List> pipelinePossibleStates(PositiveBoundHiveSmallIntTag action, + List> possibleStateList) { + final String minVALUE = "-32768"; + final String maxVALUE = "32767"; + return returnStates(action, possibleStateList, buildNumericData(action, minVALUE, maxVALUE, true)); } - - /** - * @param action an Action of the type handled by this class - * @param possibleStateList a current list of possible states produced so far from - * expanding a model state - * @return a list with positive boundary conditions assigned - * to the variable - */ - public List> pipelinePossibleStates(PositiveBoundHiveSmallIntTag action, - List> possibleStateList) { - final String minVALUE = "-32768"; - final String maxVALUE = "32767"; - return returnStates(action, possibleStateList, buildNumericData(action, minVALUE, maxVALUE, true)); + + /** + * A custom Action for the 'dg:positiveBoundHiveSmallInt' tag inside models + */ + public static class PositiveBoundHiveSmallIntTag extends BoundaryActionNumeric { + /** + * constructor + */ + public PositiveBoundHiveSmallIntTag() { + this.setMin("-32768"); + this.setMax("32767"); + } } - - /** - * A custom Action for the 'dg:positiveBoundHiveSmallInt' tag inside models - */ - public static class PositiveBoundHiveSmallIntTag extends BoundaryActionNumeric { - /** - * constructor - */ - public PositiveBoundHiveSmallIntTag() { - this.setMin("-32768"); - this.setMax("32767"); - } - } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveTinyInt.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveTinyInt.java index 2fdc6063..1cba7594 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveTinyInt.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveTinyInt.java @@ -1,69 +1,69 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary; - + import org.finra.datagenerator.engine.scxml.tags.boundary.action.BoundaryActionNumeric; - -import java.util.List; + +import java.util.List; import java.util.Map; - -/** - * Implementation of dg:positiveBoundHiveTinyInt tag - */ -public class PositiveBoundHiveTinyInt extends + +/** + * Implementation of dg:positiveBoundHiveTinyInt tag + */ +public class PositiveBoundHiveTinyInt extends BoundaryInteger { - - public Class getTagActionClass() { - return PositiveBoundHiveTinyIntTag.class; + + public Class getTagActionClass() { + return PositiveBoundHiveTinyIntTag.class; } - - public String getTagName() { - return "positiveBoundHiveTinyInt"; + + public String getTagName() { + return "positiveBoundHiveTinyInt"; } - - public String getTagNameSpace() { - return "org.finra.datagenerator"; + + public String getTagNameSpace() { + return "org.finra.datagenerator"; + } + + /** + * @param action an Action of the type handled by this class + * @param possibleStateList a current list of possible states produced so far from + * expanding a model state + * @return a list with positive boundary conditions assigned + * to the variable + */ + public List> pipelinePossibleStates(PositiveBoundHiveTinyIntTag action, + List> possibleStateList) { + final String minVALUE = "-128"; + final String maxVALUE = "127"; + return returnStates(action, possibleStateList, buildNumericData(action, minVALUE, maxVALUE, true)); } - - /** - * @param action an Action of the type handled by this class - * @param possibleStateList a current list of possible states produced so far from - * expanding a model state - * @return a list with positive boundary conditions assigned - * to the variable - */ - public List> pipelinePossibleStates(PositiveBoundHiveTinyIntTag action, - List> possibleStateList) { - final String minVALUE = "-128"; - final String maxVALUE = "127"; - return returnStates(action, possibleStateList, buildNumericData(action, minVALUE, maxVALUE, true)); + + /** + * A custom Action for the 'dg:positiveBoundHiveTinyInt' tag inside models + */ + public static class PositiveBoundHiveTinyIntTag extends BoundaryActionNumeric { + /** + * constructor + */ + public PositiveBoundHiveTinyIntTag() { + this.setMin("-128"); + this.setMax("127"); + } } - - /** - * A custom Action for the 'dg:positiveBoundHiveTinyInt' tag inside models - */ - public static class PositiveBoundHiveTinyIntTag extends BoundaryActionNumeric { - /** - * constructor - */ - public PositiveBoundHiveTinyIntTag() { - this.setMin("-128"); - this.setMax("127"); - } - } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveVarchar.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveVarchar.java index 8ac0cd17..5e9ed6dc 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveVarchar.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveVarchar.java @@ -1,64 +1,64 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary; - + import org.finra.datagenerator.engine.scxml.tags.boundary.action.BoundaryActionVarchar; - -import java.util.List; + +import java.util.List; import java.util.Map; - -/** - * Implementation of dg:positiveBoundHiveVarchar tag - */ + +/** + * Implementation of dg:positiveBoundHiveVarchar tag + */ public class PositiveBoundHiveVarchar extends BoundaryVarchar { - - public Class getTagActionClass() { - return PositiveBoundHiveVarcharTag.class; + + public Class getTagActionClass() { + return PositiveBoundHiveVarcharTag.class; } - - public String getTagName() { - return "positiveBoundHiveVarchar"; + + public String getTagName() { + return "positiveBoundHiveVarchar"; } - - public String getTagNameSpace() { - return "org.finra.datagenerator"; + + public String getTagNameSpace() { + return "org.finra.datagenerator"; } - - /** - * @param action an Action of the type handled by this class - * @param possibleStateList a current list of possible states produced so far from - * expanding a model state - * @return a list with positive boundary conditions assigned - * to the variable - */ - public List> pipelinePossibleStates(PositiveBoundHiveVarcharTag action, + + /** + * @param action an Action of the type handled by this class + * @param possibleStateList a current list of possible states produced so far from + * expanding a model state + * @return a list with positive boundary conditions assigned + * to the variable + */ + public List> pipelinePossibleStates(PositiveBoundHiveVarcharTag action, List> possibleStateList) { - - return returnStates(action, possibleStateList, buildVarcharData(action, true)); + + return returnStates(action, possibleStateList, buildVarcharData(action, true)); + } + + /** + * A custom Action for the 'dg:positiveBoundHiveVarchar' tag inside models + */ + public static class PositiveBoundHiveVarcharTag extends BoundaryActionVarchar { + /** + * constructor + */ + public PositiveBoundHiveVarcharTag() { + this.setLength("10"); + } } - - /** - * A custom Action for the 'dg:positiveBoundHiveVarchar' tag inside models - */ - public static class PositiveBoundHiveVarcharTag extends BoundaryActionVarchar { - /** - * constructor - */ - public PositiveBoundHiveVarcharTag() { - this.setLength("10"); - } - } } \ No newline at end of file diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/action/BoundaryAction.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/action/BoundaryAction.java index a7b4f5b2..fb3bd307 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/action/BoundaryAction.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/action/BoundaryAction.java @@ -1,61 +1,61 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary.action; - -import org.apache.commons.logging.Log; -import org.apache.commons.scxml.ErrorReporter; -import org.apache.commons.scxml.EventDispatcher; -import org.apache.commons.scxml.SCInstance; -import org.apache.commons.scxml.SCXMLExpressionException; -import org.apache.commons.scxml.model.Action; + +import org.apache.commons.logging.Log; +import org.apache.commons.scxml.ErrorReporter; +import org.apache.commons.scxml.EventDispatcher; +import org.apache.commons.scxml.SCInstance; +import org.apache.commons.scxml.SCXMLExpressionException; +import org.apache.commons.scxml.model.Action; import org.apache.commons.scxml.model.ModelException; - + import java.util.Collection; - -/** - * Action for all types - */ + +/** + * Action for all types + */ public class BoundaryAction extends Action { - - private String name; + + private String name; private String nullable = "true"; - - public String getName() { - return name; + + public String getName() { + return name; } - + public String getNullable() { - - return nullable; + + return nullable; } - - public void setName(String name) { - this.name = name; + + public void setName(String name) { + this.name = name; } - - public void setNullable(String nullable) { - this.nullable = nullable; + + public void setNullable(String nullable) { + this.nullable = nullable; } - - @Override - public void execute(EventDispatcher eventDispatcher, ErrorReporter errorReporter, - SCInstance scInstance, Log log, Collection collection) + + @Override + public void execute(EventDispatcher eventDispatcher, ErrorReporter errorReporter, + SCInstance scInstance, Log log, Collection collection) throws ModelException, SCXMLExpressionException { - - } + + } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/action/BoundaryActionDate.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/action/BoundaryActionDate.java index f0d9928f..7d7e1338 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/action/BoundaryActionDate.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/action/BoundaryActionDate.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 DataGenerator Contributors + * Copyright DataGenerator Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/action/BoundaryActionDecimal.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/action/BoundaryActionDecimal.java index 5481aacb..d4a07654 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/action/BoundaryActionDecimal.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/action/BoundaryActionDecimal.java @@ -1,51 +1,51 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary.action; - -/** - * Action for Decimal types - */ + +/** + * Action for Decimal types + */ public class BoundaryActionDecimal extends BoundaryActionNumeric { - - private String maxLen; - private String minLen; + + private String maxLen; + private String minLen; private String length; - - public String getLength() { - return length; + + public String getLength() { + return length; } - - public String getMaxLen() { - return maxLen; + + public String getMaxLen() { + return maxLen; } - - public String getMinLen() { - return minLen; + + public String getMinLen() { + return minLen; } - - public void setLength(String length) { - this.length = length; + + public void setLength(String length) { + this.length = length; + } + + public void setMaxLen(String maxLen) { + this.maxLen = maxLen; } - - public void setMaxLen(String maxLen) { - this.maxLen = maxLen; + + public void setMinLen(String minLen) { + this.minLen = minLen; } - - public void setMinLen(String minLen) { - this.minLen = minLen; - } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/action/BoundaryActionNumeric.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/action/BoundaryActionNumeric.java index f42ea8eb..b1669b1a 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/action/BoundaryActionNumeric.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/action/BoundaryActionNumeric.java @@ -1,41 +1,41 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary.action; - -/** - * Action for Integer types - */ + +/** + * Action for Integer types + */ public class BoundaryActionNumeric extends BoundaryAction { - - private String min; + + private String min; private String max; - - public String getMax() { - return max; + + public String getMax() { + return max; } - - public String getMin() { - return min; + + public String getMin() { + return min; } - - public void setMax(String max) { - this.max = max; + + public void setMax(String max) { + this.max = max; + } + + public void setMin(String min) { + this.min = min; } - - public void setMin(String min) { - this.min = min; - } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/action/BoundaryActionVarchar.java b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/action/BoundaryActionVarchar.java index e4cbacf8..1b3b5ef5 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/action/BoundaryActionVarchar.java +++ b/dg-core/src/main/java/org/finra/datagenerator/engine/scxml/tags/boundary/action/BoundaryActionVarchar.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 DataGenerator Contributors + * Copyright DataGenerator Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/dg-core/src/main/java/org/finra/datagenerator/exceptions/NullActionException.java b/dg-core/src/main/java/org/finra/datagenerator/exceptions/NullActionException.java index c94d041f..4d3b07a7 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/exceptions/NullActionException.java +++ b/dg-core/src/main/java/org/finra/datagenerator/exceptions/NullActionException.java @@ -1,47 +1,47 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.exceptions; - -/** - * A null action exception - */ -public class NullActionException extends RuntimeException { - /** - * Constructor with a message - * @param msg The message - */ - public NullActionException(final String msg) { - super(msg); + +/** + * A null action exception + */ +public class NullActionException extends RuntimeException { + /** + * Constructor with a message + * @param msg The message + */ + public NullActionException(final String msg) { + super(msg); + } + + /** + * Constructor with a Throwable + * @param e The throwable + */ + public NullActionException(final Throwable e) { + super(e); } - - /** - * Constructor with a Throwable - * @param e The throwable - */ - public NullActionException(final Throwable e) { - super(e); + + /** + * Constructor with a message and a throwable + * @param msg The message + * @param e a throwable + */ + public NullActionException(final String msg, final Throwable e) { + super(msg, e); } - - /** - * Constructor with a message and a throwable - * @param msg The message - * @param e a throwable - */ - public NullActionException(final String msg, final Throwable e) { - super(msg, e); - } } \ No newline at end of file diff --git a/dg-core/src/main/java/org/finra/datagenerator/exceptions/NullSetException.java b/dg-core/src/main/java/org/finra/datagenerator/exceptions/NullSetException.java index 1d5e3d99..dc1198e1 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/exceptions/NullSetException.java +++ b/dg-core/src/main/java/org/finra/datagenerator/exceptions/NullSetException.java @@ -1,47 +1,47 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.exceptions; - -/** - * A null set exception - */ -public class NullSetException extends RuntimeException { - /** - * Constructor with a message - * @param msg The message - */ - public NullSetException(final String msg) { - super(msg); + +/** + * A null set exception + */ +public class NullSetException extends RuntimeException { + /** + * Constructor with a message + * @param msg The message + */ + public NullSetException(final String msg) { + super(msg); + } + + /** + * Constructor with a Throwable + * @param e The throwable + */ + public NullSetException(final Throwable e) { + super(e); } - - /** - * Constructor with a Throwable - * @param e The throwable - */ - public NullSetException(final Throwable e) { - super(e); + + /** + * Constructor with a message and a throwable + * @param msg The message + * @param e a throwable + */ + public NullSetException(final String msg, final Throwable e) { + super(msg, e); } - - /** - * Constructor with a message and a throwable - * @param msg The message - * @param e a throwable - */ - public NullSetException(final String msg, final Throwable e) { - super(msg, e); - } } \ No newline at end of file diff --git a/dg-core/src/main/java/org/finra/datagenerator/exec/LogInitializer.java b/dg-core/src/main/java/org/finra/datagenerator/exec/LogInitializer.java index 97d264a7..382702b6 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/exec/LogInitializer.java +++ b/dg-core/src/main/java/org/finra/datagenerator/exec/LogInitializer.java @@ -1,99 +1,99 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.exec; - -import java.util.concurrent.atomic.AtomicBoolean; -import org.apache.log4j.BasicConfigurator; -import org.apache.log4j.ConsoleAppender; -import org.apache.log4j.Level; -import org.apache.log4j.Logger; + +import java.util.concurrent.atomic.AtomicBoolean; +import org.apache.log4j.BasicConfigurator; +import org.apache.log4j.ConsoleAppender; +import org.apache.log4j.Level; +import org.apache.log4j.Logger; import org.apache.log4j.PatternLayout; - -/** - * Initializes log4j - */ + +/** + * Initializes log4j + */ public final class LogInitializer { - - /** - * Whether or not we initialized log4j. - */ + + /** + * Whether or not we initialized log4j. + */ private static final AtomicBoolean INIT = new AtomicBoolean(false); - + private LogInitializer() { - + } - - /** - * Initializes log4j - * - * @param loggerLevel log level to initialize to - */ - public static void initialize(String loggerLevel) { - if (!INIT.compareAndSet(false, true)) { - return; + + /** + * Initializes log4j + * + * @param loggerLevel log level to initialize to + */ + public static void initialize(String loggerLevel) { + if (!INIT.compareAndSet(false, true)) { + return; } - - BasicConfigurator.resetConfiguration(); - ConsoleAppender consoleAppender = new ConsoleAppender( - new PatternLayout("<%d{yyMMdd HHmmss} %5p %C{1}:%L> %m%n"), ConsoleAppender.SYSTEM_ERR); + + BasicConfigurator.resetConfiguration(); + ConsoleAppender consoleAppender = new ConsoleAppender( + new PatternLayout("<%d{yyMMdd HHmmss} %5p %C{1}:%L> %m%n"), ConsoleAppender.SYSTEM_ERR); BasicConfigurator.configure(consoleAppender); - + Level level; - + String logLevel; - - if (loggerLevel != null) { - logLevel = loggerLevel.toLowerCase(); - } else { - logLevel = "default"; + + if (loggerLevel != null) { + logLevel = loggerLevel.toLowerCase(); + } else { + logLevel = "default"; } - - switch (logLevel) { - case "all": - level = Level.ALL; - break; - case "debug": - level = Level.DEBUG; - break; - case "error": - level = Level.ERROR; - break; - case "fatal": - level = Level.FATAL; - break; - case "info": - level = Level.INFO; - break; - case "off": - level = Level.OFF; - break; - case "trace": - level = Level.TRACE; - break; - case "warn": - level = Level.WARN; - break; - default: - level = Level.INFO; - break; + + switch (logLevel) { + case "all": + level = Level.ALL; + break; + case "debug": + level = Level.DEBUG; + break; + case "error": + level = Level.ERROR; + break; + case "fatal": + level = Level.FATAL; + break; + case "info": + level = Level.INFO; + break; + case "off": + level = Level.OFF; + break; + case "trace": + level = Level.TRACE; + break; + case "warn": + level = Level.WARN; + break; + default: + level = Level.INFO; + break; } - - Logger.getRootLogger().setLevel(Level.OFF); + + Logger.getRootLogger().setLevel(Level.OFF); Logger.getLogger("org.finra").setLevel(level); - - System.err.println("Set loglevel to " + level.toString()); - } + + System.err.println("Set loglevel to " + level.toString()); + } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/reporting/ReportingHandler.java b/dg-core/src/main/java/org/finra/datagenerator/reporting/ReportingHandler.java index 9d1c2d1d..c23bd137 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/reporting/ReportingHandler.java +++ b/dg-core/src/main/java/org/finra/datagenerator/reporting/ReportingHandler.java @@ -1,29 +1,29 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.reporting; - -/** - * A ReportingHandler - */ + +/** + * A ReportingHandler + */ public interface ReportingHandler { - - /** - * Handles a request. - * - * @param response a String containing the response - */ - void handleResponse(String response); + + /** + * Handles a request. + * + * @param response a String containing the response + */ + void handleResponse(String response); } diff --git a/dg-core/src/main/java/org/finra/datagenerator/reporting/ReportingHost.java b/dg-core/src/main/java/org/finra/datagenerator/reporting/ReportingHost.java index 6a4244c2..8c30936a 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/reporting/ReportingHost.java +++ b/dg-core/src/main/java/org/finra/datagenerator/reporting/ReportingHost.java @@ -1,39 +1,39 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.reporting; - -/** - * A ReportingHost - */ + +/** + * A ReportingHost + */ public interface ReportingHost { - - /** - * Initialize - */ + + /** + * Initialize + */ void init(); - - /** - * Cleanup - */ + + /** + * Cleanup + */ void cleanup(); - - /** - * Handle a request - * - * @return a String containing the response - */ - String handleRequest(); + + /** + * Handle a request + * + * @return a String containing the response + */ + String handleRequest(); } diff --git a/dg-core/src/main/java/org/finra/datagenerator/writer/AllFieldsWriter.java b/dg-core/src/main/java/org/finra/datagenerator/writer/AllFieldsWriter.java index 2dad7294..66225d77 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/writer/AllFieldsWriter.java +++ b/dg-core/src/main/java/org/finra/datagenerator/writer/AllFieldsWriter.java @@ -1,90 +1,90 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.writer; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; import org.finra.datagenerator.consumer.DataPipe; - -import java.io.IOException; -import java.io.OutputStream; + +import java.io.IOException; +import java.io.OutputStream; import java.util.Arrays; - -/** - * Outputs fields in sorted order - */ -public class AllFieldsWriter implements DataWriter { + +/** + * Outputs fields in sorted order + */ +public class AllFieldsWriter implements DataWriter { private String separator = "|"; - - /** - * Logger - */ - protected static final Logger log = Logger.getLogger(AllFieldsWriter.class); - private final OutputStream os; - private String[] outTemplate; + + /** + * Logger + */ + protected static final Logger log = Logger.getLogger(AllFieldsWriter.class); + private final OutputStream os; + private String[] outTemplate; private final boolean showHeadings; - - /** - * Constructor - * - * @param os the output stream to use in writing - */ - public AllFieldsWriter(final OutputStream os) { - this.os = os; - showHeadings = true; + + /** + * Constructor + * + * @param os the output stream to use in writing + */ + public AllFieldsWriter(final OutputStream os) { + this.os = os; + showHeadings = true; } - - /** - * Constructor - * - * @param os the output stream to use in writing - * @param showHeadings whether or not to show the headings on the first line - */ - public AllFieldsWriter(final boolean showHeadings, final OutputStream os) { - this.os = os; - this.showHeadings = showHeadings; + + /** + * Constructor + * + * @param os the output stream to use in writing + * @param showHeadings whether or not to show the headings on the first line + */ + public AllFieldsWriter(final boolean showHeadings, final OutputStream os) { + this.os = os; + this.showHeadings = showHeadings; } - - /** - * Changes the current separator to the given one - * - * @param newSeparator the new separator - * @return a reference to this object - */ - public AllFieldsWriter setSeparator(String newSeparator) { - this.separator = newSeparator; - return this; + + /** + * Changes the current separator to the given one + * + * @param newSeparator the new separator + * @return a reference to this object + */ + public AllFieldsWriter setSeparator(String newSeparator) { + this.separator = newSeparator; + return this; } - - @Override - public void writeOutput(DataPipe cr) { - try { - if (outTemplate == null) { - outTemplate = cr.getDataMap().keySet().toArray(new String[cr.getDataMap().size()]); - Arrays.sort(outTemplate); - if (showHeadings) { - os.write(StringUtils.join(outTemplate, separator).getBytes()); - os.write("\n".getBytes()); - } + + @Override + public void writeOutput(DataPipe cr) { + try { + if (outTemplate == null) { + outTemplate = cr.getDataMap().keySet().toArray(new String[cr.getDataMap().size()]); + Arrays.sort(outTemplate); + if (showHeadings) { + os.write(StringUtils.join(outTemplate, separator).getBytes()); + os.write("\n".getBytes()); + } } - - os.write(cr.getDelimited(outTemplate, separator).getBytes()); - os.write("\n".getBytes()); - } catch (IOException e) { - log.error("IOException in DefaultConsumer", e); - } - } + + os.write(cr.getDelimited(outTemplate, separator).getBytes()); + os.write("\n".getBytes()); + } catch (IOException e) { + log.error("IOException in DefaultConsumer", e); + } + } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/writer/BulkWriter.java b/dg-core/src/main/java/org/finra/datagenerator/writer/BulkWriter.java index 682991aa..6c4126a5 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/writer/BulkWriter.java +++ b/dg-core/src/main/java/org/finra/datagenerator/writer/BulkWriter.java @@ -1,29 +1,29 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.writer; - -/** - * Outputs the search results contained in memory. - * - * Created by Mauricio Silva on 6/23/2014. - */ + +/** + * Outputs the search results contained in memory. + * + * Created by Mauricio Silva on 6/23/2014. + */ public interface BulkWriter extends DataWriter { - - /** - * Tells the DataWrite to write all output to an output stream upon completion of data generation. - */ - void finish(); + + /** + * Tells the DataWrite to write all output to an output stream upon completion of data generation. + */ + void finish(); } \ No newline at end of file diff --git a/dg-core/src/main/java/org/finra/datagenerator/writer/DataWriter.java b/dg-core/src/main/java/org/finra/datagenerator/writer/DataWriter.java index 946d1f6e..325f32f4 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/writer/DataWriter.java +++ b/dg-core/src/main/java/org/finra/datagenerator/writer/DataWriter.java @@ -1,31 +1,31 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.writer; - + import org.finra.datagenerator.consumer.DataPipe; - -/** - * Outputs the search results contained in a DataPipe. - */ + +/** + * Outputs the search results contained in a DataPipe. + */ public interface DataWriter { - - /** - * Writes an output to a given data pipe - * - * @param cr the DataPipe to write to - */ - void writeOutput(DataPipe cr); + + /** + * Writes an output to a given data pipe + * + * @param cr the DataPipe to write to + */ + void writeOutput(DataPipe cr); } diff --git a/dg-core/src/main/java/org/finra/datagenerator/writer/DefaultWriter.java b/dg-core/src/main/java/org/finra/datagenerator/writer/DefaultWriter.java index d2689afa..76c0857c 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/writer/DefaultWriter.java +++ b/dg-core/src/main/java/org/finra/datagenerator/writer/DefaultWriter.java @@ -1,67 +1,67 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.writer; - -import org.apache.log4j.Logger; + +import org.apache.log4j.Logger; import org.finra.datagenerator.consumer.DataPipe; - -import java.io.IOException; + +import java.io.IOException; import java.io.OutputStream; - -/** - * Orders result variables based on a template and writes them separated by pipe characters to a given OutputStream. - */ -public class DefaultWriter implements DataWriter { + +/** + * Orders result variables based on a template and writes them separated by pipe characters to a given OutputStream. + */ +public class DefaultWriter implements DataWriter { private String separator = "|"; - - /** - * Logger - */ - protected static final Logger log = Logger.getLogger(DefaultWriter.class); - private final OutputStream os; + + /** + * Logger + */ + protected static final Logger log = Logger.getLogger(DefaultWriter.class); + private final OutputStream os; private String[] outTemplate; - - /** - * Constructor - * - * @param os the output stream to use in writing - * @param outTemplate the output template to format writing - */ - public DefaultWriter(final OutputStream os, final String[] outTemplate) { - this.os = os; - this.outTemplate = outTemplate; + + /** + * Constructor + * + * @param os the output stream to use in writing + * @param outTemplate the output template to format writing + */ + public DefaultWriter(final OutputStream os, final String[] outTemplate) { + this.os = os; + this.outTemplate = outTemplate; + } + + /** + * Changes the current separator to the given one + * @param newSeparator the new separator + * @return a reference to this object + */ + public DefaultWriter setSeparator(String newSeparator) { + this.separator = newSeparator; + return this; + } + + @Override + public void writeOutput(DataPipe cr) { + try { + os.write(cr.getDelimited(outTemplate, separator).getBytes()); + os.write("\n".getBytes()); + } catch (IOException e) { + log.error("IOException in DefaultConsumer", e); + } } - - /** - * Changes the current separator to the given one - * @param newSeparator the new separator - * @return a reference to this object - */ - public DefaultWriter setSeparator(String newSeparator) { - this.separator = newSeparator; - return this; - } - - @Override - public void writeOutput(DataPipe cr) { - try { - os.write(cr.getDelimited(outTemplate, separator).getBytes()); - os.write("\n".getBytes()); - } catch (IOException e) { - log.error("IOException in DefaultConsumer", e); - } - } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/writer/JsonWriter.java b/dg-core/src/main/java/org/finra/datagenerator/writer/JsonWriter.java index 64ff058c..9a4be464 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/writer/JsonWriter.java +++ b/dg-core/src/main/java/org/finra/datagenerator/writer/JsonWriter.java @@ -1,91 +1,91 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.writer; - -import org.apache.log4j.Logger; -import org.finra.datagenerator.consumer.DataPipe; -import org.json.JSONArray; + +import org.apache.log4j.Logger; +import org.finra.datagenerator.consumer.DataPipe; +import org.json.JSONArray; import org.json.JSONObject; - -import java.io.IOException; -import java.io.OutputStream; + +import java.io.IOException; +import java.io.OutputStream; import java.util.Map; - -/** - * Orders result variables based on a template and writes them in Json format to a given OutputStream. - * - * Created by Mauricio Silva on 6/27/2015. - */ + +/** + * Orders result variables based on a template and writes them in Json format to a given OutputStream. + * + * Created by Mauricio Silva on 6/27/2015. + */ public class JsonWriter implements BulkWriter { - - /** - * Logger - */ - protected static final Logger log = Logger.getLogger(JsonWriter.class); - private final OutputStream os; - private String[] outTemplate; + + /** + * Logger + */ + protected static final Logger log = Logger.getLogger(JsonWriter.class); + private final OutputStream os; + private String[] outTemplate; private JSONArray jsonArray; - - /** - * Constructor - * - * @param os the output stream to use in writing - * @param outTemplate the output template to format writing - */ - public JsonWriter(final OutputStream os, final String[] outTemplate) { - this.os = os; - this.outTemplate = outTemplate; - this.jsonArray = new JSONArray(); + + /** + * Constructor + * + * @param os the output stream to use in writing + * @param outTemplate the output template to format writing + */ + public JsonWriter(final OutputStream os, final String[] outTemplate) { + this.os = os; + this.outTemplate = outTemplate; + this.jsonArray = new JSONArray(); } - - @Override - public void writeOutput(DataPipe cr) { - jsonArray.put(getJsonFormatted(cr.getDataMap())); + + @Override + public void writeOutput(DataPipe cr) { + jsonArray.put(getJsonFormatted(cr.getDataMap())); } - - @Override - public void finish() { - try { - os.write(jsonArray.toString(3).getBytes()); - os.write("\n".getBytes()); - } catch (IOException e) { - log.error("IOException in JsonWriter", e); - } + + @Override + public void finish() { + try { + os.write(jsonArray.toString(3).getBytes()); + os.write("\n".getBytes()); + } catch (IOException e) { + log.error("IOException in JsonWriter", e); + } } - - /** - * Given an array of variable names, returns a JsonObject - * of values. - * - * @param dataMap an map containing variable names and their corresponding values - * names. - * @return a json object of values - */ - public JSONObject getJsonFormatted(Map dataMap) { + + /** + * Given an array of variable names, returns a JsonObject + * of values. + * + * @param dataMap an map containing variable names and their corresponding values + * names. + * @return a json object of values + */ + public JSONObject getJsonFormatted(Map dataMap) { JSONObject oneRowJson = new JSONObject(); - - for (int i = 0; i < outTemplate.length; i++) { - oneRowJson.put(outTemplate[i], dataMap.get(outTemplate[i])); + + for (int i = 0; i < outTemplate.length; i++) { + oneRowJson.put(outTemplate[i], dataMap.get(outTemplate[i])); } - - return oneRowJson; + + return oneRowJson; } - + } diff --git a/dg-core/src/main/java/org/finra/datagenerator/writer/SqlWriter.java b/dg-core/src/main/java/org/finra/datagenerator/writer/SqlWriter.java index e5510eaf..442f625a 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/writer/SqlWriter.java +++ b/dg-core/src/main/java/org/finra/datagenerator/writer/SqlWriter.java @@ -1,112 +1,112 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.writer; - -import org.apache.log4j.Logger; + +import org.apache.log4j.Logger; import org.finra.datagenerator.consumer.DataPipe; - -import java.io.IOException; -import java.io.OutputStream; + +import java.io.IOException; +import java.io.OutputStream; import java.util.Map; - -/** - * Orders result variables based on a template and writes them in sql format to a given OutputStream. - * - * Created by Mauricio Silva on 6/27/2015. - */ -public class SqlWriter implements DataWriter { - /** - * Logger - */ - protected static final Logger log = Logger.getLogger(SqlWriter.class); - private final OutputStream os; - private String[] outTemplate; - private String schema; - private String tableName; + +/** + * Orders result variables based on a template and writes them in sql format to a given OutputStream. + * + * Created by Mauricio Silva on 6/27/2015. + */ +public class SqlWriter implements DataWriter { + /** + * Logger + */ + protected static final Logger log = Logger.getLogger(SqlWriter.class); + private final OutputStream os; + private String[] outTemplate; + private String schema; + private String tableName; private SqlStatementType sqlStatement; - - /** - * Sql statement types - */ - public enum SqlStatementType { - /** - * Insert Statement - */ - INSERT, - /** - * Update Statement - */ - UPDATE + + /** + * Sql statement types + */ + public enum SqlStatementType { + /** + * Insert Statement + */ + INSERT, + /** + * Update Statement + */ + UPDATE } - - /** - * Constructor - * - * @param os the output stream to use in writing - * @param outTemplate the output template to format writing - * @param schema indicates schema of db - * @param tableName indicates table name of db - * @param sqlStatement insert/update - */ - public SqlWriter(final OutputStream os, final String[] outTemplate, final String schema, - final String tableName, final SqlStatementType sqlStatement) { - this.os = os; - this.outTemplate = outTemplate; - this.schema = schema; - this.tableName = tableName; - this.sqlStatement = sqlStatement; + + /** + * Constructor + * + * @param os the output stream to use in writing + * @param outTemplate the output template to format writing + * @param schema indicates schema of db + * @param tableName indicates table name of db + * @param sqlStatement insert/update + */ + public SqlWriter(final OutputStream os, final String[] outTemplate, final String schema, + final String tableName, final SqlStatementType sqlStatement) { + this.os = os; + this.outTemplate = outTemplate; + this.schema = schema; + this.tableName = tableName; + this.sqlStatement = sqlStatement; } - - @Override - public void writeOutput(DataPipe cr) { - try { - os.write(getSqlFormatted(cr.getDataMap()).getBytes()); - os.write("\n".getBytes()); - } catch (IOException e) { - log.error("IOException in SqlWriter", e); - } + + @Override + public void writeOutput(DataPipe cr) { + try { + os.write(getSqlFormatted(cr.getDataMap()).getBytes()); + os.write("\n".getBytes()); + } catch (IOException e) { + log.error("IOException in SqlWriter", e); + } } - - /** - * Given an array of variable names, returns a sql statement {@link String} - * of values. - * - * @param dataMap an map containing variable names and their corresponding values - * names. - * @return values in Sql format - */ - //INSERT/UPDATE INTO schema.table (key1, key2) VALUES ("value1","valu2"); - public String getSqlFormatted(Map dataMap) { - StringBuilder keys = new StringBuilder(); - StringBuilder values = new StringBuilder(); + + /** + * Given an array of variable names, returns a sql statement {@link String} + * of values. + * + * @param dataMap an map containing variable names and their corresponding values + * names. + * @return values in Sql format + */ + //INSERT/UPDATE INTO schema.table (key1, key2) VALUES ("value1","valu2"); + public String getSqlFormatted(Map dataMap) { + StringBuilder keys = new StringBuilder(); + StringBuilder values = new StringBuilder(); StringBuilder query = new StringBuilder(); - - for (String var : outTemplate) { - if (keys.length() > 0) { - keys.append(','); - } - if (values.length() > 0) { - values.append(','); - } - keys.append(var); - values.append(dataMap.get(var)); - } - return query.append(sqlStatement).append(" INTO ").append(schema).append(".") - .append(tableName).append(" (").append(keys).append(") ").append("VALUES") - .append(" (").append(values).append(");").toString(); - } + + for (String var : outTemplate) { + if (keys.length() > 0) { + keys.append(','); + } + if (values.length() > 0) { + values.append(','); + } + keys.append(var); + values.append(dataMap.get(var)); + } + return query.append(sqlStatement).append(" INTO ").append(schema).append(".") + .append(tableName).append(" (").append(keys).append(") ").append("VALUES") + .append(" (").append(values).append(");").toString(); + } } diff --git a/dg-core/src/main/java/org/finra/datagenerator/writer/XmlWriter.java b/dg-core/src/main/java/org/finra/datagenerator/writer/XmlWriter.java index 7f3049fe..f957348c 100644 --- a/dg-core/src/main/java/org/finra/datagenerator/writer/XmlWriter.java +++ b/dg-core/src/main/java/org/finra/datagenerator/writer/XmlWriter.java @@ -1,124 +1,124 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.writer; - -import org.apache.log4j.Logger; + +import org.apache.log4j.Logger; import org.finra.datagenerator.consumer.DataPipe; - -import java.io.IOException; -import java.io.OutputStream; -import java.util.ArrayList; -import java.util.List; + +import java.io.IOException; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.List; import java.util.Map; - -/** - * Orders result variables based on a template and writes them in Xml format to a given OutputStream. - * - * Created by Mauricio Silva on 6/27/2015. - */ -public class XmlWriter implements BulkWriter { - /** - * Logger - */ - protected static final Logger log = Logger.getLogger(XmlWriter.class); - private final OutputStream os; - private String[] outTemplate; - private String rootNode; - private String recordNode; + +/** + * Orders result variables based on a template and writes them in Xml format to a given OutputStream. + * + * Created by Mauricio Silva on 6/27/2015. + */ +public class XmlWriter implements BulkWriter { + /** + * Logger + */ + protected static final Logger log = Logger.getLogger(XmlWriter.class); + private final OutputStream os; + private String[] outTemplate; + private String rootNode; + private String recordNode; private List xmlRecords; - - /** - * Constructor - * - * @param os the output stream to use in writing - * @param outTemplate the output template to format writing - * @param rootNode name of the root Node of the Xml output - * @param recordNode name of an individual record Node of the Xml output - */ - public XmlWriter(final OutputStream os, final String[] outTemplate, - final String rootNode, final String recordNode) { - this.os = os; - this.outTemplate = outTemplate; - this.rootNode = rootNode; - this.recordNode = recordNode; - this.xmlRecords = new ArrayList(); + + /** + * Constructor + * + * @param os the output stream to use in writing + * @param outTemplate the output template to format writing + * @param rootNode name of the root Node of the Xml output + * @param recordNode name of an individual record Node of the Xml output + */ + public XmlWriter(final OutputStream os, final String[] outTemplate, + final String rootNode, final String recordNode) { + this.os = os; + this.outTemplate = outTemplate; + this.rootNode = rootNode; + this.recordNode = recordNode; + this.xmlRecords = new ArrayList(); } - - @Override - public void writeOutput(DataPipe cr) { - xmlRecords.add(getXmlFormatted(cr.getDataMap())); + + @Override + public void writeOutput(DataPipe cr) { + xmlRecords.add(getXmlFormatted(cr.getDataMap())); } - - @Override - public void finish() { - try { - os.write(appendXmlStartTag(rootNode).getBytes()); - for (String xml : xmlRecords) { - os.write(appendXmlStartTag(recordNode).getBytes()); - os.write(xml.getBytes()); - os.write(appendXmlEndingTag(rootNode).getBytes()); - } - os.write(appendXmlEndingTag(rootNode).getBytes()); - os.write("\n".getBytes()); - } catch (IOException e) { - log.error("IOException in XmlWriter", e); - } + + @Override + public void finish() { + try { + os.write(appendXmlStartTag(rootNode).getBytes()); + for (String xml : xmlRecords) { + os.write(appendXmlStartTag(recordNode).getBytes()); + os.write(xml.getBytes()); + os.write(appendXmlEndingTag(rootNode).getBytes()); + } + os.write(appendXmlEndingTag(rootNode).getBytes()); + os.write("\n".getBytes()); + } catch (IOException e) { + log.error("IOException in XmlWriter", e); + } } - - /** - * Given an array of variable names, returns an Xml String - * of values. - * - * @param dataMap an map containing variable names and their corresponding values - * names. - * @param dataMap - * @return values in Xml format - */ - public String getXmlFormatted(Map dataMap) { - StringBuilder sb = new StringBuilder(); - for (String var : outTemplate) { - sb.append(appendXmlStartTag(var)); - sb.append(dataMap.get(var)); - sb.append(appendXmlEndingTag(var)); - } - return sb.toString(); + + /** + * Given an array of variable names, returns an Xml String + * of values. + * + * @param dataMap an map containing variable names and their corresponding values + * names. + * @param dataMap + * @return values in Xml format + */ + public String getXmlFormatted(Map dataMap) { + StringBuilder sb = new StringBuilder(); + for (String var : outTemplate) { + sb.append(appendXmlStartTag(var)); + sb.append(dataMap.get(var)); + sb.append(appendXmlEndingTag(var)); + } + return sb.toString(); } - - /** - * Helper xml start tag writer - * - * @param value the output stream to use in writing - */ - private String appendXmlStartTag(String value) { - StringBuilder sb = new StringBuilder(); + + /** + * Helper xml start tag writer + * + * @param value the output stream to use in writing + */ + private String appendXmlStartTag(String value) { + StringBuilder sb = new StringBuilder(); sb.append("<").append(value).append(">"); - - return sb.toString(); + + return sb.toString(); } - - /** - * Helper xml end tag writer - * - * @param value the output stream to use in writing - */ - private String appendXmlEndingTag(String value) { - StringBuilder sb = new StringBuilder(); + + /** + * Helper xml end tag writer + * + * @param value the output stream to use in writing + */ + private String appendXmlEndingTag(String value) { + StringBuilder sb = new StringBuilder(); sb.append(""); - - return sb.toString(); - } + + return sb.toString(); + } } diff --git a/dg-core/src/main/resources/log4j.properties b/dg-core/src/main/resources/log4j.properties index 66c5d55e..3f0a8dbc 100644 --- a/dg-core/src/main/resources/log4j.properties +++ b/dg-core/src/main/resources/log4j.properties @@ -1,5 +1,5 @@ # -# Copyright 2014 DataGenerator Contributors +# Copyright DataGenerator Contributors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/dg-core/src/main/resources/nasdaqlisted.txt b/dg-core/src/main/resources/nasdaqlisted.txt index c0682ca5..8baff061 100644 --- a/dg-core/src/main/resources/nasdaqlisted.txt +++ b/dg-core/src/main/resources/nasdaqlisted.txt @@ -1,2975 +1,2975 @@ -AAIT|iShares MSCI All Country Asia Information Technology Index Fund|G|N|N|100 -AAL|American Airlines Group, Inc. - Common Stock|Q|N|N|100 -AAME|Atlantic American Corporation - Common Stock|G|N|N|100 -AAOI|Applied Optoelectronics, Inc. - Common Stock|G|N|N|100 -AAON|AAON, Inc. - Common Stock|Q|N|N|100 -AAPL|Apple Inc. - Common Stock|Q|N|N|100 -AAVL|Avalanche Biotechnologies, Inc. - Common Stock|G|N|N|100 -AAWW|Atlas Air Worldwide Holdings - Common Stock|Q|N|N|100 -AAXJ|iShares MSCI All Country Asia ex Japan Index Fund|G|N|N|100 -ABAC|Aoxin Tianli Group, Inc. - Common Shares|S|N|N|100 -ABAX|ABAXIS, Inc. - Common Stock|Q|N|N|100 -ABCB|Ameris Bancorp - Common Stock|Q|N|N|100 -ABCD|Cambium Learning Group, Inc. - Common Stock|S|N|N|100 -ABCO|The Advisory Board Company - Common Stock|Q|N|N|100 -ABCW|Anchor BanCorp Wisconsin Inc. - Common Stock|Q|N|N|100 -ABDC|Alcentra Capital Corp. - Common Stock|Q|N|N|100 -ABGB|Abengoa, S.A. - American Depositary Shares|Q|N|N|100 -ABIO|ARCA biopharma, Inc. - Common Stock|S|N|N|100 -ABMD|ABIOMED, Inc. - Common Stock|Q|N|N|100 -ABTL|Autobytel Inc. - Common Stock|S|N|N|100 -ABY|Abengoa Yield plc - Ordinary Shares|Q|N|N|100 -ACAD|ACADIA Pharmaceuticals Inc. - Common Stock|Q|N|N|100 -ACAS|American Capital, Ltd. - Common Stock|Q|N|N|100 -ACAT|Arctic Cat Inc. - Common Stock|Q|N|N|100 -ACET|Aceto Corporation - Common Stock|Q|N|N|100 -ACFC|Atlantic Coast Financial Corporation - Common Stock|G|N|N|100 -ACFN|Acorn Energy, Inc. - Common Stock|G|N|D|100 -ACGL|Arch Capital Group Ltd. - Common Stock|Q|N|N|100 -ACHC|Acadia Healthcare Company, Inc. - Common Stock|Q|N|N|100 -ACHN|Achillion Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -ACIW|ACI Worldwide, Inc. - Common Stock|Q|N|N|100 -ACLS|Axcelis Technologies, Inc. - Common Stock|Q|N|N|100 -ACNB|ACNB Corporation - Common Stock|S|N|N|100 -ACOR|Acorda Therapeutics, Inc. - Common Stock|Q|N|N|100 -ACPW|Active Power, Inc. - Common Stock|S|N|N|100 -ACRX|AcelRx Pharmaceuticals, Inc. - Common Stock|G|N|N|100 -ACSF|American Capital Senior Floating, Ltd. - Common Stock|Q|N|N|100 -ACST|Acasti Pharma, Inc. - Class A Common Stock|S|N|D|100 -ACTA|Actua Corporation - Common Stock|Q|N|N|100 -ACTG|Acacia Research Corporation - Common Stock|Q|N|N|100 -ACTS|Actions Semiconductor Co., Ltd. - American Depositary Shares, each representing Six Ordinary Shares|Q|N|N|100 -ACUR|Acura Pharmaceuticals, Inc. - Common Stock|S|N|D|100 -ACWI|iShares MSCI ACWI Index Fund|G|N|N|100 -ACWX|iShares MSCI ACWI ex US Index Fund|G|N|N|100 -ACXM|Acxiom Corporation - Common Stock|Q|N|N|100 -ADAT|Authentidate Holding Corp. - Common Stock|S|N|N|100 -ADBE|Adobe Systems Incorporated - Common Stock|Q|N|N|100 -ADEP|Adept Technology, Inc. - Common Stock|S|N|N|100 -ADES|Advanced Emissions Solutions, Inc. - Common Stock|S|N|H|100 -ADHD|Alcobra Ltd. - Ordinary Shares|G|N|N|100 -ADI|Analog Devices, Inc. - Common Stock|Q|N|N|100 -ADMA|ADMA Biologics Inc - Common Stock|S|N|N|100 -ADMP|Adamis Pharmaceuticals Corporation - Common Stock|S|N|N|100 -ADMS|Adamas Pharmaceuticals, Inc. - Common Stock|G|N|N|100 -ADNC|Audience, Inc. - Common Stock|Q|N|N|100 -ADP|Automatic Data Processing, Inc. - Common Stock|Q|N|N|100 -ADRA|BLDRS Asia 50 ADR Index Fund|G|N|N|100 -ADRD|BLDRS Developed Markets 100 ADR Index Fund|G|N|N|100 -ADRE|BLDRS Emerging Markets 50 ADR Index Fund|G|N|N|100 -ADRU|BLDRS Europe 100 ADR Index Fund|G|N|N|100 -ADSK|Autodesk, Inc. - Common Stock|Q|N|N|100 -ADTN|ADTRAN, Inc. - Common Stock|Q|N|N|100 -ADUS|Addus HomeCare Corporation - Common Stock|Q|N|N|100 -ADVS|Advent Software, Inc. - Common Stock|Q|N|N|100 -ADXS|Advaxis, Inc. - Common Stock|S|N|N|100 -ADXSW|Advaxis, Inc. - Warrants|S|N|N|100 -AEGN|Aegion Corp - Class A Common Stock|Q|N|N|100 -AEGR|Aegerion Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -AEHR|Aehr Test Systems - Common Stock|S|N|N|100 -AEIS|Advanced Energy Industries, Inc. - Common Stock|Q|N|N|100 -AEPI|AEP Industries Inc. - Common Stock|Q|N|N|100 -AERI|Aerie Pharmaceuticals, Inc. - Common Stock|G|N|N|100 -AETI|American Electric Technologies, Inc. - Common Stock|S|N|N|100 -AEY|ADDvantage Technologies Group, Inc. - Common Stock|G|N|N|100 -AEZS|AEterna Zentaris Inc. - Common Stock|S|N|D|100 -AFAM|Almost Family Inc - Common Stock|Q|N|N|100 -AFCB|Athens Bancshares Corporation - Common Stock|S|N|N|100 -AFFX|Affymetrix, Inc. - Common Stock|Q|N|N|100 -AFH|Atlas Financial Holdings, Inc. - Ordinary Shares|S|N|N|100 -AFMD|Affimed N.V. - Common Stock|G|N|N|100 -AFOP|Alliance Fiber Optic Products, Inc. - Common Stock|G|N|N|100 -AFSI|AmTrust Financial Services, Inc. - Common Stock|Q|N|N|100 -AGEN|Agenus Inc. - Common Stock|S|N|N|100 -AGII|Argo Group International Holdings, Ltd. - Common Stock|Q|N|N|100 -AGIIL|Argo Group International Holdings, Ltd. - 6.5% Senior Notes Due 2042|Q|N|N|100 -AGIO|Agios Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -AGNC|American Capital Agency Corp. - Common Stock|Q|N|N|100 -AGNCB|American Capital Agency Corp. - Depositary Shares representing 1/1000th Series B Preferred Stock|Q|N|N|100 -AGNCP|American Capital Agency Corp. - Cumulative Preferred Series A|Q|N|N|100 -AGND|WisdomTree Barclays U.S. Aggregate Bond Negative Duration Fund|G|N|N|100 -AGRX|Agile Therapeutics, Inc. - Common Stock|G|N|N|100 -AGTC|Applied Genetic Technologies Corporation - Common Stock|G|N|N|100 -AGYS|Agilysys, Inc. - Common Stock|Q|N|N|100 -AGZD|WisdomTree Barclays U.S. Aggregate Bond Zero Duration Fund|G|N|N|100 -AHGP|Alliance Holdings GP, L.P. - Common Units Representing Limited Partner Interests|Q|N|N|100 -AHPI|Allied Healthcare Products, Inc. - Common Stock|G|N|N|100 -AIMC|Altra Industrial Motion Corp. - Common Stock|Q|N|N|100 -AINV|Apollo Investment Corporation - Closed End Fund|Q|N|N|100 -AIQ|Alliance HealthCare Services, Inc. - Common Stock|G|N|N|100 -AIRM|Air Methods Corporation - Common Stock|Q|N|N|100 -AIRR|First Trust RBA American Industrial Renaissance ETF|G|N|N|100 -AIRT|Air T, Inc. - Common Stock|S|N|N|100 -AIXG|Aixtron SE - American Depositary Shares, each representing one Ordinary Share|Q|N|N|100 -AKAM|Akamai Technologies, Inc. - Common Stock|Q|N|N|100 -AKAO|Achaogen, Inc. - Common Stock|G|N|N|100 -AKBA|Akebia Therapeutics, Inc. - Common Stock|G|N|N|100 -AKER|Akers Biosciences Inc - Common Stock|S|N|N|100 -AKRX|Akorn, Inc. - Common Stock|Q|N|N|100 -ALCO|Alico, Inc. - Common Stock|Q|N|N|100 -ALDR|Alder BioPharmaceuticals, Inc. - Common Stock|G|N|N|100 -ALDX|Aldeyra Therapeutics, Inc. - Common Stock|S|N|N|100 -ALGN|Align Technology, Inc. - Common Stock|Q|N|N|100 -ALGT|Allegiant Travel Company - Common Stock|Q|N|N|100 -ALIM|Alimera Sciences, Inc. - Common Stock|G|N|N|100 -ALKS|Alkermes plc - Ordinary Shares|Q|N|N|100 -ALLB|Alliance Bancorp, Inc. of Pennsylvania - Common Stock|G|N|N|100 -ALLT|Allot Communications Ltd. - Ordinary Shares|Q|N|N|100 -ALNY|Alnylam Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -ALOG|Analogic Corporation - Common Stock|Q|N|N|100 -ALOT|Astro-Med, Inc. - Common Stock|G|N|N|100 -ALQA|Alliqua BioMedical, Inc. - Common Stock|S|N|N|100 -ALSK|Alaska Communications Systems Group, Inc. - Common Stock|Q|N|N|100 -ALTR|Altera Corporation - Common Stock|Q|N|N|100 -ALXA|Alexza Pharmaceuticals, Inc. - Common Stock|G|N|D|100 -ALXN|Alexion Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -AMAG|AMAG Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -AMAT|Applied Materials, Inc. - Common Stock|Q|N|N|100 -AMBA|Ambarella, Inc. - Ordinary Shares|Q|N|N|100 -AMBC|Ambac Financial Group, Inc. - Common Stock|Q|N|N|100 -AMBCW|Ambac Financial Group, Inc. - Warrants|Q|N|N|100 -AMCC|Applied Micro Circuits Corporation - Common Stock|Q|N|N|100 -AMCF|Andatee China Marine Fuel Services Corporation - Common Stock|S|N|N|100 -AMCN|AirMedia Group Inc - American Depositary Shares, each representing two ordinary shares|Q|N|N|100 -AMCX|AMC Networks Inc. - Class A Common Stock|Q|N|N|100 -AMD|Advanced Micro Devices, Inc. - Common Stock|S|N|N|100 -AMDA|Amedica Corporation - Common Stock|S|N|N|100 -AMED|Amedisys Inc - Common Stock|Q|N|N|100 -AMGN|Amgen Inc. - Common Stock|Q|N|N|100 -AMIC|American Independence Corp. - Common Stock|G|N|N|100 -AMKR|Amkor Technology, Inc. - Common Stock|Q|N|N|100 -AMNB|American National Bankshares, Inc. - Common Stock|Q|N|N|100 -AMOT|Allied Motion Technologies, Inc. - Common Stock|G|N|N|100 -AMOV|America Movil, S.A.B. de C.V. - American Depositary Shares, each representing 20 A Shares|Q|N|N|100 -AMPH|Amphastar Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -AMRB|American River Bankshares - Common Stock|Q|N|N|100 -AMRI|Albany Molecular Research, Inc. - Common Stock|Q|N|N|100 -AMRK|A-Mark Precious Metals, Inc. - Common Stock|Q|N|N|100 -AMRN|Amarin Corporation plc - American Depositary Shares, each representing one Ordinary Share|G|N|N|100 -AMRS|Amyris, Inc. - Common Stock|Q|N|N|100 -AMSC|American Superconductor Corporation - Common Stock|Q|N|D|100 -AMSF|AMERISAFE, Inc. - Common Stock|Q|N|N|100 -AMSG|Amsurg Corp. - Common Stock|Q|N|N|100 -AMSGP|Amsurg Corp. - 5.250% Mandatory Convertible Preferred Stock, Series A-1|Q|N|N|100 -AMSWA|American Software, Inc. - Class A Common Stock|Q|N|N|100 -AMTX|Aemetis, Inc - Common Stock|G|N|N|100 -AMWD|American Woodmark Corporation - Common Stock|Q|N|N|100 -AMZN|Amazon.com, Inc. - Common Stock|Q|N|N|100 -ANAC|Anacor Pharmaceuticals, Inc. - Common Stock|G|N|N|100 -ANAD|ANADIGICS, Inc. - Common Stock|Q|N|D|100 -ANAT|American National Insurance Company - Common Stock|Q|N|D|100 -ANCB|Anchor Bancorp - Common Stock|G|N|N|100 -ANCI|American Caresource Holdings Inc - Common Stock|S|N|D|100 -ANCX|Access National Corporation - Common Stock|G|N|N|100 -ANDE|The Andersons, Inc. - Common Stock|Q|N|N|100 -ANGI|Angie's List, Inc. - Common Stock|Q|N|N|100 -ANGO|AngioDynamics, Inc. - Common Stock|Q|N|N|100 -ANIK|Anika Therapeutics Inc. - Common Stock|Q|N|N|100 -ANIP|ANI Pharmaceuticals, Inc. - Common Stock|G|N|N|100 -ANSS|ANSYS, Inc. - Common Stock|Q|N|N|100 -ANTH|Anthera Pharmaceuticals, Inc. - Common Stock|G|N|D|100 -ANY|Sphere 3D Corp - Common Shares|G|N|N|100 -AOSL|Alpha and Omega Semiconductor Limited - Common Shares|Q|N|N|100 -APAGF|Apco Oil and Gas International Inc. - Ordinary Shares|S|N|N|100 -APDN|Applied DNA Sciences Inc - Common Stock|S|N|N|100 -APDNW|Applied DNA Sciences Inc - Warrant|S|N|N|100 -APEI|American Public Education, Inc. - Common Stock|Q|N|N|100 -APOG|Apogee Enterprises, Inc. - Common Stock|Q|N|N|100 -APOL|Apollo Education Group, Inc. - Class A Common Stock|Q|N|N|100 -APPS|Digital Turbine, Inc. - Common Stock|S|N|N|100 -APPY|Venaxis, Inc. - Common Stock|S|N|N|100 -APRI|Apricus Biosciences, Inc - Common Stock|S|N|N|100 -APSA|Alto Palermo S.A. - American Depository Shares, each representing forty shares of Common Stock|Q|N|N|100 -APTO|Aptose Biosciences, Inc. - Common Shares|S|N|N|100 -APWC|Asia Pacific Wire & Cable Corporation Limited - Common shares, Par value .01 per share|G|N|N|100 -AQXP|Aquinox Pharmaceuticals, Inc. - Common Stock|G|N|N|100 -ARAY|Accuray Incorporated - Common Stock|Q|N|N|100 -ARCB|ArcBest Corporation - Common Stock|Q|N|N|100 -ARCC|Ares Capital Corporation - Closed End Fund|Q|N|N|100 -ARCI|Appliance Recycling Centers of America, Inc. - Common Stock|S|N|N|100 -ARCP|American Realty Capital Properties, Inc. - Common Stock|Q|N|E|100 -ARCPP|American Realty Capital Properties, Inc. - 6.70% Series F Cumulative Redeemable Preferred Stock|Q|N|E|100 -ARCW|ARC Group Worldwide, Inc. - Common Stock|S|N|N|100 -ARDM|Aradigm Corporation - Common Stock|S|N|N|100 -ARDX|Ardelyx, Inc. - Common Stock|G|N|N|100 -AREX|Approach Resources Inc. - Common Stock|Q|N|N|100 -ARGS|Argos Therapeutics, Inc. - Common Stock|G|N|N|100 -ARIA|ARIAD Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -ARII|American Railcar Industries, Inc. - Common Stock|Q|N|N|100 -ARIS|ARI Network Services, Inc. - Common Stock|S|N|N|100 -ARKR|Ark Restaurants Corp. - Common Stock|G|N|N|100 -ARLP|Alliance Resource Partners, L.P. - Common Units Representing Limited Partnership Interests|Q|N|N|100 -ARMH|ARM Holdings plc - American Depositary Shares each representing 3 Ordinary Shares|Q|N|N|100 -ARNA|Arena Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -AROW|Arrow Financial Corporation - Common Stock|Q|N|N|100 -ARQL|ArQule, Inc. - Common Stock|G|N|N|100 -ARRS|ARRIS Group, Inc. - Common Stock|Q|N|N|100 -ARRY|Array BioPharma Inc. - Common Stock|G|N|N|100 -ARTNA|Artesian Resources Corporation - Class A Non-Voting Common Stock|Q|N|N|100 -ARTW|Art's-Way Manufacturing Co., Inc. - Common Stock|S|N|N|100 -ARTX|Arotech Corporation - Common Stock|G|N|N|100 -ARUN|Aruba Networks, Inc. - Common Stock|Q|N|N|100 -ARWR|Arrowhead Research Corporation - Common Stock|Q|N|N|100 -ASBB|ASB Bancorp, Inc. - Common Stock|G|N|N|100 -ASBI|Ameriana Bancorp - Common Stock|S|N|N|100 -ASCMA|Ascent Capital Group, Inc. - Series A Common Stock|Q|N|N|100 -ASEI|American Science and Engineering, Inc. - Common Stock|Q|N|N|100 -ASFI|Asta Funding, Inc. - Common Stock|Q|N|H|100 -ASMB|Assembly Biosciences, Inc. - Common Stock|S|N|N|100 -ASMI|ASM International N.V. - Common Shares|Q|N|N|100 -ASML|ASML Holding N.V. - ADS represents 1 ordinary share|Q|N|N|100 -ASNA|Ascena Retail Group, Inc. - Common Stock|Q|N|N|100 -ASPS|Altisource Portfolio Solutions S.A. - Common Stock|Q|N|N|100 -ASPX|Auspex Pharmaceuticals, Inc. - Common Stock|G|N|N|100 -ASRV|AmeriServ Financial Inc. - Common Stock|G|N|N|100 -ASRVP|AmeriServ Financial Inc. - AmeriServ Financial Trust I - 8.45% Beneficial Unsecured Securities, Series A|G|N|N|100 -ASTC|Astrotech Corporation - Common Stock|S|N|N|100 -ASTE|Astec Industries, Inc. - Common Stock|Q|N|N|100 -ASTI|Ascent Solar Technologies, Inc. - Common Stock|S|N|N|100 -ASUR|Asure Software Inc - Common Stock|S|N|N|100 -ASYS|Amtech Systems, Inc. - Common Stock|Q|N|N|100 -ATAI|ATA Inc. - American Depositary Shares, each representing two common shares|G|N|N|100 -ATAX|America First Multifamily Investors, L.P. - Beneficial Unit Certificates (BUCs) representing Limited Partnership Interests|Q|N|N|100 -ATEA|Astea International, Inc. - Common Stock|S|N|D|100 -ATEC|Alphatec Holdings, Inc. - Common Stock|Q|N|N|100 -ATHN|athenahealth, Inc. - Common Stock|Q|N|N|100 -ATHX|Athersys, Inc. - Common Stock|S|N|N|100 -ATLC|Atlanticus Holdings Corporation - Common Stock|Q|N|N|100 -ATLO|Ames National Corporation - Common Stock|S|N|N|100 -ATML|Atmel Corporation - Common Stock|Q|N|N|100 -ATNI|Atlantic Tele-Network, Inc. - Common Stock|Q|N|N|100 -ATNY|API Technologies Corp. - Common Stock|S|N|N|100 -ATOS|Atossa Genetics Inc. - Common Stock|S|N|N|100 -ATRA|Atara Biotherapeutics, Inc. - Common Stock|Q|N|N|100 -ATRC|AtriCure, Inc. - Common Stock|G|N|N|100 -ATRI|ATRION Corporation - Common Stock|Q|N|N|100 -ATRM|ATRM Holdings, Inc. - Common Stock|S|N|E|100 -ATRO|Astronics Corporation - Common Stock|Q|N|N|100 -ATRS|Antares Pharma, Inc. - Common Stock|S|N|N|100 -ATSG|Air Transport Services Group, Inc - Common Stock|Q|N|N|100 -ATTU|Attunity Ltd. - Ordinary Shares|S|N|N|100 -ATVI|Activision Blizzard, Inc - Common Stock|Q|N|N|100 -AUBN|Auburn National Bancorporation, Inc. - Common Stock|G|N|N|100 -AUDC|AudioCodes Ltd. - Ordinary Shares|Q|N|N|100 -AUMA|AR Capital Acquisition Corp. - Common Stock|S|N|N|100 -AUMAU|AR Capital Acquisition Corp. - Units|S|N|N|100 -AUMAW|AR Capital Acquisition Corp. - Warrants|S|N|N|100 -AUPH|Aurinia Pharmaceuticals Inc - Common Shares|G|N|N|100 -AUXL|Auxilium Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -AVAV|AeroVironment, Inc. - Common Stock|Q|N|N|100 -AVEO|AVEO Pharmaceuticals, Inc. - Common Stock|Q|N|D|100 -AVGO|Avago Technologies Limited - Ordinary Shares|Q|N|N|100 -AVHI|A V Homes, Inc. - Common Stock|Q|N|N|100 -AVID|Avid Technology, Inc. - Common Stock|Q|N|N|100 -AVNW|Aviat Networks, Inc. - Common Stock|Q|N|N|100 -AWAY|HomeAway, Inc. - Common Stock|Q|N|N|100 -AWRE|Aware, Inc. - Common Stock|G|N|N|100 -AXAS|Abraxas Petroleum Corporation - Common Stock|S|N|N|100 -AXDX|Accelerate Diagnostics, Inc. - Common Stock|S|N|N|100 -AXGN|AxoGen, Inc. - Common Stock|S|N|N|100 -AXJS|iShares MSCI All Country Asia ex Japan Small Cap Index Fund|G|N|N|100 -AXPW|Axion Power International, Inc. - Common Stock|S|N|N|100 -AXPWW|Axion Power International, Inc. - Series A Warrants|S|N|N|100 -AXTI|AXT Inc - Common Stock|Q|N|N|100 -AZPN|Aspen Technology, Inc. - Common Stock|Q|N|N|100 -BABY|Natus Medical Incorporated - Common Stock|Q|N|N|100 -BAGR|Diversified Restaurant Holdings, Inc. - Common Stock|S|N|N|100 -BAMM|Books-A-Million, Inc. - Common Stock|Q|N|N|100 -BANF|BancFirst Corporation - Common Stock|Q|N|N|100 -BANFP|BancFirst Corporation - 7.2% Cumulative Trust Preferred Securities|Q|N|N|100 -BANR|Banner Corporation - Common Stock|Q|N|N|100 -BANX|StoneCastle Financial Corp - Common Stock|Q|N|N|100 -BASI|Bioanalytical Systems, Inc. - Common Stock|S|N|N|100 -BBBY|Bed Bath & Beyond Inc. - Common Stock|Q|N|N|100 -BBC|BioShares Biotechnology Clinical Trials Fund|G|N|N|100 -BBCN|BBCN Bancorp, Inc. - Common Stock|Q|N|N|100 -BBEP|BreitBurn Energy Partners, L.P. - Common Units Representing Limited Partnership|Q|N|N|100 -BBEPP|BreitBurn Energy Partners, L.P. - 8.25% Series A Cumulative Redeemable Perpetual Preferred Units|Q|N|N|100 -BBGI|Beasley Broadcast Group, Inc. - Class A Common Stock|G|N|N|100 -BBLU|Blue Earth, Inc. - Common Stock|S|N|N|100 -BBNK|Bridge Capital Holdings - Common Stock|Q|N|N|100 -BBOX|Black Box Corporation - Common Stock|Q|N|N|100 -BBP|BioShares Biotechnology Products Fund|G|N|N|100 -BBRG|Bravo Brio Restaurant Group, Inc. - Common Stock|Q|N|N|100 -BBRY|BlackBerry Limited - Common Stock|Q|N|N|100 -BBSI|Barrett Business Services, Inc. - Common Stock|Q|N|N|100 -BCBP|BCB Bancorp, Inc. (NJ) - Common Stock|G|N|N|100 -BCLI|Brainstorm Cell Therapeutics Inc. - Common Stock|S|N|N|100 -BCOM|B Communications Ltd. - Ordinary Shares|Q|N|N|100 -BCOR|Blucora, Inc. - Common Stock|Q|N|N|100 -BCOV|Brightcove Inc. - Common Stock|Q|N|N|100 -BCPC|Balchem Corporation - Common Stock|Q|N|N|100 -BCRX|BioCryst Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -BDBD|Boulder Brands, Inc. - Common Stock|Q|N|N|100 -BDCV|BDCA Venture, Inc. - Common Stock|S|N|N|100 -BDE|Black Diamond, Inc. - Common Stock|Q|N|D|100 -BDGE|Bridge Bancorp, Inc. - Common Stock|Q|N|N|100 -BDMS|Birner Dental Management Services, Inc. - Common Stock|S|N|N|100 -BDSI|BioDelivery Sciences International, Inc. - Common Stock|S|N|N|100 -BEAT|BioTelemetry, Inc. - Common Stock|Q|N|N|100 -BEAV|B/E Aerospace, Inc. - Common Stock|Q|N|N|100 -BEBE|bebe stores, inc. - Common Stock|Q|N|N|100 -BECN|Beacon Roofing Supply, Inc. - Common Stock|Q|N|N|100 -BELFA|Bel Fuse Inc. - Class A Common Stock|Q|N|N|100 -BELFB|Bel Fuse Inc. - Class B Common Stock|Q|N|N|100 -BFIN|BankFinancial Corporation - Common Stock|Q|N|N|100 -BGCP|BGC Partners, Inc. - Class A Common Stock|Q|N|N|100 -BGFV|Big 5 Sporting Goods Corporation - Common Stock|Q|N|N|100 -BGMD|BG Medicine, Inc. - Common Stock|S|N|D|100 -BHBK|Blue Hills Bancorp, Inc. - Common Stock|Q|N|N|100 -BIB|ProShares Ultra Nasdaq Biotechnology|G|N|N|100 -BICK|First Trust BICK Index Fund|G|N|N|100 -BIDU|Baidu, Inc. - American Depositary Shares, each representing one tenth Class A ordinary share|Q|N|N|100 -BIIB|Biogen Idec Inc. - Common Stock|Q|N|N|100 -BIND|BIND Therapeutics, Inc. - Common Stock|Q|N|N|100 -BIOC|Biocept, Inc. - Common Stock|S|N|N|100 -BIOD|Biodel Inc. - Common Stock|S|N|N|100 -BIOL|Biolase, Inc. - Common Stock|S|N|N|100 -BIOS|BioScrip, Inc. - Common Stock|Q|N|N|100 -BIS|ProShares UltraShort Nasdaq Biotechnology|G|N|N|100 -BJRI|BJ's Restaurants, Inc. - Common Stock|Q|N|N|100 -BKCC|BlackRock Kelso Capital Corporation - Common Stock|Q|N|N|100 -BKEP|Blueknight Energy Partners L.P., L.L.C. - Common Units representing Limited Partner Interests|G|N|N|100 -BKEPP|Blueknight Energy Partners L.P., L.L.C. - Series A Preferred Units|G|N|N|100 -BKMU|Bank Mutual Corporation - Common Stock|Q|N|N|100 -BKSC|Bank of South Carolina Corp. - Common Stock|S|N|N|100 -BKYF|The Bank of Kentucky Financial Corp. - Common Stock|Q|N|N|100 -BLCM|Bellicum Pharmaceuticals, Inc. - Common Stock|G|N|N|100 -BLDP|Ballard Power Systems, Inc. - Common Shares|G|N|N|100 -BLDR|Builders FirstSource, Inc. - Common Stock|Q|N|N|100 -BLFS|BioLife Solutions, Inc. - Common Stock|S|N|N|100 -BLIN|Bridgeline Digital, Inc. - Common Stock|S|N|D|100 -BLKB|Blackbaud, Inc. - Common Stock|Q|N|N|100 -BLMN|Bloomin' Brands, Inc. - Common Stock|Q|N|N|100 -BLMT|BSB Bancorp, Inc. - Common Stock|S|N|N|100 -BLRX|BioLineRx Ltd. - American Depositary Shares|S|N|N|100 -BLUE|bluebird bio, Inc. - Common Stock|Q|N|N|100 -BLVD|Boulevard Acquisition Corp. - Common Stock|S|N|N|100 -BLVDU|Boulevard Acquisition Corp. - Units|S|N|N|100 -BLVDW|Boulevard Acquisition Corp. - Warrants|S|N|N|100 -BMRC|Bank of Marin Bancorp - Common Stock|S|N|N|100 -BMRN|BioMarin Pharmaceutical Inc. - Common Stock|Q|N|N|100 -BMTC|Bryn Mawr Bank Corporation - Common Stock|Q|N|N|100 -BNCL|Beneficial Bancorp, Inc. - Common Stock|Q|N|N|100 -BNCN|BNC Bancorp - Common Stock|S|N|N|100 -BNDX|Vanguard Total International Bond ETF|G|N|N|100 -BNFT|Benefitfocus, Inc. - Common Stock|G|N|N|100 -BNSO|Bonso Electronics International, Inc. - Common Stock|S|N|N|100 -BOBE|Bob Evans Farms, Inc. - Common Stock|Q|N|N|100 -BOCH|Bank of Commerce Holdings (CA) - Common Stock|G|N|N|100 -BOFI|BofI Holding, Inc. - Common Stock|Q|N|N|100 -BOKF|BOK Financial Corporation - Common Stock|Q|N|N|100 -BONA|Bona Film Group Limited - American Depositary Shares|Q|N|N|100 -BONT|The Bon-Ton Stores, Inc. - Common Stock|Q|N|N|100 -BOOM|Dynamic Materials Corporation - Common Stock|Q|N|N|100 -BOSC|B.O.S. Better Online Solutions - Ordinary Shares|S|N|N|100 -BOTA|Biota Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -BOTJ|Bank of the James Financial Group, Inc. - Common Stock|S|N|N|100 -BPFH|Boston Private Financial Holdings, Inc. - Common Stock|Q|N|N|100 -BPFHP|Boston Private Financial Holdings, Inc. - Depositary Shares representing 1/40th Interest in a Share of 6.95% Non-Cumulative Perpetual Preferred Stock, Series D|Q|N|N|100 -BPFHW|Boston Private Financial Holdings, Inc. - Warrants to purchase 1 share of common stock @ $8.00/share|Q|N|N|100 -BPOP|Popular, Inc. - Common Stock|Q|N|N|100 -BPOPM|Popular, Inc. - Popular Capital Trust II - 6.125% Cumulative Monthly Income Trust Preferred Securities|Q|N|N|100 -BPOPN|Popular, Inc. - Popular Capital Trust I -6.70% Cumulative Monthly Income Trust Preferred Securities|Q|N|N|100 -BPTH|Bio-Path Holdings, Inc. - Common Stock|S|N|N|100 -BRCD|Brocade Communications Systems, Inc. - Common Stock|Q|N|N|100 -BRCM|Broadcom Corporation - Class A Common Stock|Q|N|N|100 -BRDR|Borderfree, Inc. - Common Stock|Q|N|N|100 -BREW|Craft Brew Alliance, Inc. - Common Stock|Q|N|N|100 -BRID|Bridgford Foods Corporation - Common Stock|G|N|N|100 -BRKL|Brookline Bancorp, Inc. - Common Stock|Q|N|N|100 -BRKR|Bruker Corporation - Common Stock|Q|N|N|100 -BRKS|Brooks Automation, Inc. - Common Stock|Q|N|N|100 -BRLI|Bio-Reference Laboratories, Inc. - Common Stock|Q|N|D|100 -BSDM|BSD Medical Corporation - Common Stock|S|N|D|100 -BSET|Bassett Furniture Industries, Incorporated - Common Stock|Q|N|N|100 -BSF|Bear State Financial, Inc. - Common Stock|G|N|N|100 -BSFT|BroadSoft, Inc. - Common Stock|Q|N|N|100 -BSPM|Biostar Pharmaceuticals, Inc. - Common Stock|S|N|N|100 -BSQR|BSQUARE Corporation - Common Stock|G|N|N|100 -BSRR|Sierra Bancorp - Common Stock|Q|N|N|100 -BSTC|BioSpecifics Technologies Corp - Common Stock|G|N|D|100 -BTUI|BTU International, Inc. - Common Stock|G|N|N|100 -BUR|Burcon NutraScience Corp - Ordinary Shares|G|N|N|100 -BUSE|First Busey Corporation - Common Stock|Q|N|N|100 -BV|Bazaarvoice, Inc. - Common Stock|Q|N|N|100 -BVA|Cordia Bancorp Inc. - Common Stock|S|N|N|100 -BVSN|BroadVision, Inc. - Common Stock|G|N|N|100 -BWEN|Broadwind Energy, Inc. - Common Stock|S|N|N|100 -BWFG|Bankwell Financial Group, Inc. - Common Stock|G|N|N|100 -BWINA|Baldwin & Lyons, Inc. - Class A (voting) Common Stock|G|N|N|100 -BWINB|Baldwin & Lyons, Inc. - Class B (nonvoting) Common Stock|G|N|N|100 -BWLD|Buffalo Wild Wings, Inc. - Common Stock|Q|N|N|100 -BYBK|Bay Bancorp, Inc. - Common Stock|S|N|N|100 -BYFC|Broadway Financial Corporation - Common Stock|S|N|N|100 -BYLK|Baylake Corp - Common Stock|S|N|N|100 -CA|CA Inc. - Common Stock|Q|N|N|100 -CAAS|China Automotive Systems, Inc. - Common Stock|S|N|N|100 -CAC|Camden National Corporation - Common Stock|Q|N|N|100 -CACB|Cascade Bancorp - Common Stock|S|N|N|100 -CACC|Credit Acceptance Corporation - Common Stock|Q|N|N|100 -CACG|Chart Acquisition Corp. - Common Stock|S|N|D|100 -CACGU|Chart Acquisition Corp. - Units|S|N|D|100 -CACGW|Chart Acquisition Corp. - Warrants|S|N|D|100 -CACH|Cache, Inc. - Common Stock|Q|N|D|100 -CACQ|Caesars Acquisition Company - Class A Common Stock|Q|N|N|100 -CADC|China Advanced Construction Materials Group, Inc. - Common Stock|S|N|N|100 -CADT|DT Asia Investments Limited - Ordinary Shares|S|N|N|100 -CADTR|DT Asia Investments Limited - Right|S|N|N|100 -CADTU|DT Asia Investments Limited - Unit|S|N|N|100 -CADTW|DT Asia Investments Limited - Warrant|S|N|N|100 -CAKE|The Cheesecake Factory Incorporated - Common Stock|Q|N|N|100 -CALA|Calithera Biosciences, Inc. - Common Stock|Q|N|N|100 -CALD|Callidus Software, Inc. - Common Stock|G|N|N|100 -CALI|China Auto Logistics Inc. - Common Stock|G|N|D|100 -CALL|magicJack VocalTec Ltd - Ordinary Shares|G|N|N|100 -CALM|Cal-Maine Foods, Inc. - Common Stock|Q|N|N|100 -CAMB|Cambridge Capital Acquisition Corporation - Common Stock|S|N|D|100 -CAMBU|Cambridge Capital Acquisition Corporation - Unit|S|N|D|100 -CAMBW|Cambridge Capital Acquisition Corporation - Warrant|S|N|D|100 -CAMP|CalAmp Corp. - Common Stock|Q|N|N|100 -CAMT|Camtek Ltd. - Ordinary Shares|G|N|N|100 -CAPN|Capnia, Inc. - Common Stock|S|N|N|100 -CAPNW|Capnia, Inc. - Series A Warrant|S|N|N|100 -CAR|Avis Budget Group, Inc. - Common Stock|Q|N|N|100 -CARA|Cara Therapeutics, Inc. - Common Stock|G|N|N|100 -CARB|Carbonite, Inc. - Common Stock|G|N|N|100 -CARO|Carolina Financial Corporation - Common Stock|S|N|N|100 -CART|Carolina Trust Bank - Common Stock|S|N|N|100 -CARV|Carver Bancorp, Inc. - Common Stock|S|N|N|100 -CARZ|First Trust NASDAQ Global Auto Index Fund|G|N|N|100 -CASH|Meta Financial Group, Inc. - Common Stock|Q|N|N|100 -CASI|CASI Pharmaceuticals, Inc. - Common Stock|S|N|N|100 -CASM|CAS Medical Systems, Inc. - Common Stock|S|N|N|100 -CASS|Cass Information Systems, Inc - Common Stock|Q|N|N|100 -CASY|Caseys General Stores, Inc. - Common Stock|Q|N|N|100 -CATM|Cardtronics, Inc. - Common Stock|Q|N|N|100 -CATY|Cathay General Bancorp - Common Stock|Q|N|N|100 -CATYW|Cathay General Bancorp - Warrant|Q|N|N|100 -CAVM|Cavium, Inc. - Common Stock|Q|N|N|100 -CBAK|China BAK Battery, Inc. - Common Stock|G|N|N|100 -CBAN|Colony Bankcorp, Inc. - Common Stock|G|N|N|100 -CBAY|CymaBay Therapeutics Inc. - Common Stock|S|N|N|100 -CBDE|CBD Energy Limited - Ordinary Shares|S|N|K|100 -CBF|Capital Bank Financial Corp. - Class A Common Stock|Q|N|N|100 -CBFV|CB Financial Services, Inc. - Common Stock|G|N|N|100 -CBIN|Community Bank Shares of Indiana, Inc. - Common Stock|S|N|N|100 -CBLI|Cleveland BioLabs, Inc. - Common Stock|S|N|D|100 -CBMG|Cellular Biomedicine Group, Inc. - Common Stock|S|N|N|100 -CBMX|CombiMatrix Corporation - Common Stock|S|N|N|100 -CBNJ|Cape Bancorp, Inc. - Common Stock|Q|N|N|100 -CBNK|Chicopee Bancorp, Inc. - Common Stock|G|N|N|100 -CBOE|CBOE Holdings, Inc. - Common Stock|Q|N|N|100 -CBPO|China Biologic Products, Inc. - Common Stock|Q|N|N|100 -CBRL|Cracker Barrel Old Country Store, Inc. - Common Stock|Q|N|N|100 -CBRX|Columbia Laboratories, Inc. - Common Stock|S|N|N|100 -CBSH|Commerce Bancshares, Inc. - Common Stock|Q|N|N|100 -CBSHP|Commerce Bancshares, Inc. - Depositary Shares, each representing a 1/1000th interest of 6.00% Series B Non-Cumulative Perpetual Preferred Stock|Q|N|N|100 -CBSTZ|Cubist Pharmaceuticals, Inc. - Contingent Value Right|Q|N|N|100 -CCBG|Capital City Bank Group - Common Stock|Q|N|N|100 -CCCL|China Ceramics Co., Ltd. - Common Stock|G|N|D|100 -CCCR|China Commercial Credit, Inc. - Common Stock|S|N|E|100 -CCIH|ChinaCache International Holdings Ltd. - American Depositary Shares|Q|N|N|100 -CCLP|CSI Compressco LP - common units|Q|N|N|100 -CCMP|Cabot Microelectronics Corporation - Common Stock|Q|N|N|100 -CCNE|CNB Financial Corporation - Common Stock|Q|N|N|100 -CCOI|Cogent Communications Holdings, Inc. - Common Stock|Q|N|N|100 -CCRN|Cross Country Healthcare, Inc. - Common Stock|Q|N|N|100 -CCUR|Concurrent Computer Corporation - Common Stock|G|N|N|100 -CCXI|ChemoCentryx, Inc. - Common Stock|Q|N|N|100 -CDC|Compass EMP U S EQ Income 100 Enhanced Volatility Weighted Fund|G|N|N|100 -CDK|CDK Global, Inc. - Common Stock|Q|N|N|100 -CDNA|CareDx, Inc. - Common Stock|G|N|N|100 -CDNS|Cadence Design Systems, Inc. - Common Stock|Q|N|N|100 -CDTI|Clean Diesel Technologies, Inc. - Common Stock|S|N|N|100 -CDW|CDW Corporation - Common Stock|Q|N|N|100 -CDXS|Codexis, Inc. - Common Stock|Q|N|N|100 -CDZI|Cadiz, Inc. - Common Stock|G|N|N|100 -CECE|CECO Environmental Corp. - Common Stock|Q|N|N|100 -CECO|Career Education Corporation - Common Stock|Q|N|N|100 -CELG|Celgene Corporation - Common Stock|Q|N|N|100 -CELGZ|Celgene Corporation - Contingent Value Right|G|N|N|100 -CEMI|Chembio Diagnostics, Inc. - Common Stock|S|N|N|100 -CEMP|Cempra, Inc. - Common Stock|Q|N|N|100 -CENT|Central Garden & Pet Company - Common Stock|Q|N|N|100 -CENTA|Central Garden & Pet Company - Class A Common Stock Nonvoting|Q|N|N|100 -CENX|Century Aluminum Company - Common Stock|Q|N|N|100 -CERE|Ceres, Inc. - Common Stock|S|N|D|100 -CERN|Cerner Corporation - Common Stock|Q|N|N|100 -CERS|Cerus Corporation - Common Stock|G|N|N|100 -CERU|Cerulean Pharma Inc. - Common Stock|G|N|N|100 -CETV|Central European Media Enterprises Ltd. - Class A Common Stock|Q|N|N|100 -CEVA|CEVA, Inc. - Common Stock|Q|N|N|100 -CFA|Compass EMP US 500 Volatility Weighted Index ETF|G|N|N|100 -CFBK|Central Federal Corporation - Common Stock|S|N|N|100 -CFFI|C&F Financial Corporation - Common Stock|Q|N|N|100 -CFFN|Capitol Federal Financial, Inc. - Common Stock|Q|N|N|100 -CFGE|Calamos Focus Growth ETF|G|N|N|100 -CFNB|California First National Bancorp - Common Stock|G|N|N|100 -CFNL|Cardinal Financial Corporation - Common Stock|Q|N|N|100 -CFO|Compass EMP US 500 Enhanced Volatility Weighted Index ETF|G|N|N|100 -CFRX|ContraFect Corporation - Common Stock|S|N|N|100 -CFRXW|ContraFect Corporation - Warrant|S|N|N|100 -CFRXZ|ContraFect Corporation - Warrant|S|N|N|100 -CG|The Carlyle Group L.P. - Common Units|Q|N|N|100 -CGEN|Compugen Ltd. - Ordinary Shares|G|N|N|100 -CGIX|Cancer Genetics, Inc. - Common Stock|S|N|N|100 -CGNX|Cognex Corporation - Common Stock|Q|N|N|100 -CGO|Calamos Global Total Return Fund - Common Stock|Q|N|N|100 -CHCI|Comstock Holding Companies, Inc. - Class A Common Stock|S|N|N|100 -CHCO|City Holding Company - Common Stock|Q|N|N|100 -CHDN|Churchill Downs, Incorporated - Common Stock|Q|N|N|100 -CHEF|The Chefs' Warehouse, Inc. - Common Stock|Q|N|N|100 -CHEV|Cheviot Financial Corp - Common Stock|S|N|N|100 -CHFC|Chemical Financial Corporation - Common Stock|Q|N|N|100 -CHFN|Charter Financial Corp. - Common Stock|S|N|N|100 -CHI|Calamos Convertible Opportunities and Income Fund - Common Stock|Q|N|N|100 -CHKE|Cherokee Inc. - Common Stock|Q|N|N|100 -CHKP|Check Point Software Technologies Ltd. - Ordinary Shares|Q|N|N|100 -CHLN|China Housing & Land Development, Inc. - Common Stock|S|N|D|100 -CHMG|Chemung Financial Corp - Common Stock|Q|N|N|100 -CHNR|China Natural Resources, Inc. - Common Stock|S|N|N|100 -CHOP|China Gerui Advanced Materials Group Limited - Ordinary Shares|Q|N|N|100 -CHRS|Coherus BioSciences, Inc. - Common Stock|G|N|N|100 -CHRW|C.H. Robinson Worldwide, Inc. - Common Stock|Q|N|N|100 -CHSCL|CHS Inc - Class B Cumulative Redeemable Preferred Stock, Series 4|Q|N|N|100 -CHSCM|CHS Inc - Class B Reset Rate Cumulative Redeemable Preferred Stock, Series 3|Q|N|N|100 -CHSCN|CHS Inc - Preferred Class B Series 2 Reset Rate|Q|N|N|100 -CHSCO|CHS Inc - Class B Cumulative Redeemable Preferred Stock|Q|N|N|100 -CHSCP|CHS Inc - 8% Cumulative Redeemable Preferred Stock|Q|N|N|100 -CHTR|Charter Communications, Inc. - Class A Common Stock|Q|N|N|100 -CHUY|Chuy's Holdings, Inc. - Common Stock|Q|N|N|100 -CHW|Calamos Global Dynamic Income Fund - Common Stock|Q|N|N|100 -CHXF|WisdomTree China Dividend Ex-Financials Fund|G|N|N|100 -CHY|Calamos Convertible and High Income Fund - Common Stock|Q|N|N|100 -CHYR|ChyronHego Corporation - Common Stock|G|N|N|100 -CIDM|Cinedigm Corp - Class A Common Stock|G|N|N|100 -CIFC|CIFC Corp. - Common Stock|S|N|N|100 -CIMT|Cimatron, Limited - Ordinary Shares|S|N|N|100 -CINF|Cincinnati Financial Corporation - Common Stock|Q|N|N|100 -CISAW|CIS Acquisition Ltd. - Warrant|S|N|D|100 -CISG|CNinsure Inc. - American depositary shares, each representing 20 ordinary shares|Q|N|N|100 -CIZ|Compass EMP Developed 500 Enhanced Volatility Weighted Index ETF|G|N|N|100 -CIZN|Citizens Holding Company - Common Stock|G|N|N|100 -CJJD|China Jo-Jo Drugstores, Inc. - Common Stock|S|N|N|100 -CKEC|Carmike Cinemas, Inc. - Common Stock|Q|N|N|100 -CKSW|ClickSoftware Technologies Ltd. - Ordinary Shares|Q|N|N|100 -CLAC|Capitol Acquisition Corp. II - Common Stock|S|N|D|100 -CLACU|Capitol Acquisition Corp. II - Unit|S|N|D|100 -CLACW|Capitol Acquisition Corp. II - Warrant|S|N|D|100 -CLBH|Carolina Bank Holdings Inc. - Common Stock|G|N|N|100 -CLCT|Collectors Universe, Inc. - Common Stock|G|N|N|100 -CLDN|Celladon Corporation - Common Stock|G|N|N|100 -CLDX|Celldex Therapeutics, Inc. - Common Stock|Q|N|N|100 -CLFD|Clearfield, Inc. - Common Stock|G|N|N|100 -CLIR|ClearSign Combustion Corporation - Common Stock|S|N|N|100 -CLMS|Calamos Asset Management, Inc. - Class A Common Stock|Q|N|N|100 -CLMT|Calumet Specialty Products Partners, L.P. - Common units representing limited partner interests|Q|N|N|100 -CLNE|Clean Energy Fuels Corp. - Common Stock|Q|N|N|100 -CLNT|Cleantech Solutions International, Inc. - Common Stock|S|N|N|100 -CLRB|Cellectar Biosciences, Inc. - Common Stock|S|N|N|100 -CLRBW|Cellectar Biosciences, Inc. - Warrants|S|N|N|100 -CLRO|ClearOne, Inc. - Common Stock|S|N|N|100 -CLRX|CollabRx, Inc. - Common Stock|S|N|D|100 -CLSN|Celsion Corporation - Common Stock|S|N|N|100 -CLTX|Celsus Therapeutics Plc - American Depositary Shares|S|N|N|100 -CLUB|Town Sports International Holdings, Inc. - Common Stock|G|N|N|100 -CLVS|Clovis Oncology, Inc. - Common Stock|Q|N|N|100 -CLWT|Euro Tech Holdings Company Limited - Ordinary Shares|S|N|N|100 -CMCO|Columbus McKinnon Corporation - Common Stock|Q|N|N|100 -CMCSA|Comcast Corporation - Class A Common Stock|Q|N|N|100 -CMCSK|Comcast Corporation - Class A Special Common Stock|Q|N|N|100 -CMCT|CIM Commercial Trust Corporation - Common Stock|G|N|N|100 -CME|CME Group Inc. - Class A Common Stock|Q|N|N|100 -CMFN|CM Finance Inc - Common Stock|Q|N|N|100 -CMGE|China Mobile Games and Entertainment Group Limited - American Depositary Shares|G|N|N|100 -CMLS|Cumulus Media Inc. - Common Stock|Q|N|N|100 -CMPR|Cimpress N.V - Ordinary Shares (The Netherlands)|Q|N|N|100 -CMRX|Chimerix, Inc. - Common Stock|G|N|N|100 -CMSB|CMS Bancorp, Inc. - common stock|S|N|N|100 -CMTL|Comtech Telecommunications Corp. - Common Stock|Q|N|N|100 -CNAT|Conatus Pharmaceuticals Inc. - Common Stock|G|N|N|100 -CNBKA|Century Bancorp, Inc. - Class A Common Stock|Q|N|N|100 -CNCE|Concert Pharmaceuticals, Inc. - Common Stock|G|N|N|100 -CNDO|Coronado Biosciences, Inc. - Common Stock|S|N|N|100 -CNET|ChinaNet Online Holdings, Inc. - Common Stock|S|N|N|100 -CNIT|China Information Technology, Inc. - Ordinary Shares|Q|N|N|100 -CNLM|CB Pharma Acquisition Corp. - Ordinary Shares|S|N|N|100 -CNLMR|CB Pharma Acquisition Corp. - Rights|S|N|N|100 -CNLMU|CB Pharma Acquisition Corp. - Units|S|N|N|100 -CNLMW|CB Pharma Acquisition Corp. - Warrants|S|N|N|100 -CNMD|CONMED Corporation - Common Stock|Q|N|N|100 -CNOB|ConnectOne Bancorp, Inc. - Common Stock|Q|N|N|100 -CNSI|Comverse Inc. - Common Stock|G|N|N|100 -CNSL|Consolidated Communications Holdings, Inc. - Common Stock|Q|N|N|100 -CNTF|China TechFaith Wireless Communication Technology Limited - American Depositary Shares, each representing 15 ordinary shares|Q|N|N|100 -CNTY|Century Casinos, Inc. - Common Stock|S|N|N|100 -CNV|Cnova N.V. - Ordinary Shares|Q|N|N|100 -CNXR|Connecture, Inc. - Common Stock|G|N|N|100 -CNYD|China Yida Holding, Co. - Common Stock|S|N|N|100 -COB|CommunityOne Bancorp - Common Stock|S|N|N|100 -COBK|Colonial Financial Services, Inc. - Common Stock|G|N|N|100 -COBZ|CoBiz Financial Inc. - Common Stock|Q|N|N|100 -COCO|Corinthian Colleges, Inc. - Common Stock|S|N|H|100 -COHR|Coherent, Inc. - Common Stock|Q|N|N|100 -COHU|Cohu, Inc. - Common Stock|Q|N|N|100 -COKE|Coca-Cola Bottling Co. Consolidated - Common Stock|Q|N|N|100 -COLB|Columbia Banking System, Inc. - Common Stock|Q|N|N|100 -COLM|Columbia Sportswear Company - Common Stock|Q|N|N|100 -COMM|CommScope Holding Company, Inc. - Common Stock|Q|N|N|100 -COMT|iShares Commodities Select Strategy ETF|G|N|N|100 -CONE|CyrusOne Inc - Common Stock|Q|N|N|100 -CONN|Conn's, Inc. - Common Stock|Q|N|N|100 -COOL|Majesco Entertainment Company - Common Stock|S|N|N|100 -CORE|Core-Mark Holding Company, Inc. - Common Stock|Q|N|N|100 -CORI|Corium International, Inc. - Common Stock|G|N|N|100 -CORT|Corcept Therapeutics Incorporated - Common Stock|S|N|N|100 -COSI|Cosi, Inc. - Common Stock|S|N|N|100 -COST|Costco Wholesale Corporation - Common Stock|Q|N|N|100 -COVS|Covisint Corporation - Common Stock|Q|N|N|100 -COWN|Cowen Group, Inc. - Class A Common Stock|Q|N|N|100 -COWNL|Cowen Group, Inc. - 8.25% Senior Notes due 2021|Q|N|N|100 -CPAH|CounterPath Corporation - Common Stock|S|N|D|100 -CPGI|China Shengda Packaging Group, Inc. - Common Stock|S|N|D|100 -CPHC|Canterbury Park Holding Corporation - Common Stock|G|N|N|100 -CPHD|CEPHEID - Common Stock|Q|N|N|100 -CPHR|Cipher Pharmaceuticals Inc. - Common Shares|G|N|N|100 -CPIX|Cumberland Pharmaceuticals Inc. - Common Stock|Q|N|N|100 -CPLA|Capella Education Company - Common Stock|Q|N|N|100 -CPLP|Capital Product Partners L.P. - common units representing limited partner interests|Q|N|N|100 -CPRT|Copart, Inc. - Common Stock|Q|N|N|100 -CPRX|Catalyst Pharmaceutical Partners, Inc. - Common Stock|S|N|N|100 -CPSH|CPS Technologies Corp. - Common Stock|S|N|N|100 -CPSI|Computer Programs and Systems, Inc. - Common Stock|Q|N|N|100 -CPSS|Consumer Portfolio Services, Inc. - Common Stock|G|N|N|100 -CPST|Capstone Turbine Corporation - Common Stock|G|N|D|100 -CPTA|Capitala Finance Corp. - Common Stock|Q|N|N|100 -CPXX|Celator Pharmaceuticals Inc. - Common Stock|S|N|N|100 -CRAI|CRA International,Inc. - Common Stock|Q|N|N|100 -CRAY|Cray Inc - Common Stock|Q|N|N|100 -CRDC|Cardica, Inc. - Common Stock|G|N|D|100 -CRDS|Crossroads Systems, Inc. - Common Stock|S|N|N|100 -CRDT|WisdomTree Strategic Corporate Bond Fund|G|N|N|100 -CREE|Cree, Inc. - Common Stock|Q|N|N|100 -CREG|China Recycling Energy Corporation - Common Stock|G|N|N|100 -CRESW|Cresud S.A.C.I.F. y A. - Warrants 5/22/2015|Q|N|N|100 -CRESY|Cresud S.A.C.I.F. y A. - American Depositary Shares, each representing ten shares of Common Stock|Q|N|N|100 -CRIS|Curis, Inc. - Common Stock|G|N|N|100 -CRME|Cardiome Pharma Corporation - Ordinary Shares (Canada)|S|N|N|100 -CRMT|America's Car-Mart, Inc. - Common Stock|Q|N|N|100 -CRNT|Ceragon Networks Ltd. - Ordinary Shares|Q|N|N|100 -CROX|Crocs, Inc. - Common Stock|Q|N|N|100 -CRRC|Courier Corporation - Common Stock|Q|N|N|100 -CRRS|Corporate Resource Services, Inc. - Common Stock|S|N|N|100 -CRTN|Cartesian, Inc. - Common Stock|G|N|N|100 -CRTO|Criteo S.A. - American Depositary Shares|Q|N|N|100 -CRUS|Cirrus Logic, Inc. - Common Stock|Q|N|N|100 -CRVL|CorVel Corp. - Common Stock|Q|N|N|100 -CRWN|Crown Media Holdings, Inc. - Class A Common Stock|Q|N|N|100 -CRWS|Crown Crafts, Inc. - Common Stock|S|N|N|100 -CRZO|Carrizo Oil & Gas, Inc. - Common Stock|Q|N|N|100 -CSBK|Clifton Bancorp Inc. - Common Stock|Q|N|N|100 -CSCD|Cascade Microtech, Inc. - Common Stock|G|N|N|100 -CSCO|Cisco Systems, Inc. - Common Stock|Q|N|N|100 -CSF|Compass EMP U.S. Discovery 500 Enhanced Volatility Weighted Fund|G|N|N|100 -CSFL|CenterState Banks, Inc. - Common Stock|Q|N|N|100 -CSGP|CoStar Group, Inc. - Common Stock|Q|N|N|100 -CSGS|CSG Systems International, Inc. - Common Stock|Q|N|N|100 -CSII|Cardiovascular Systems, Inc. - Common Stock|Q|N|N|100 -CSIQ|Canadian Solar Inc. - common shares|Q|N|N|100 -CSOD|Cornerstone OnDemand, Inc. - Common Stock|Q|N|N|100 -CSPI|CSP Inc. - Common Stock|G|N|N|100 -CSQ|Calamos Strategic Total Return Fund - Common Stock|Q|N|N|100 -CSRE|CSR plc - American Depositary Shares|Q|N|N|100 -CSTE|CaesarStone Sdot-Yam Ltd. - Ordinary Shares|Q|N|N|100 -CSUN|China Sunergy Co., Ltd. - American Depositary Shares, each representing 18 ordinary shares|Q|N|H|100 -CSWC|Capital Southwest Corporation - Common Stock|Q|N|N|100 -CTAS|Cintas Corporation - Common Stock|Q|N|N|100 -CTBI|Community Trust Bancorp, Inc. - Common Stock|Q|N|N|100 -CTCM|CTC Media, Inc. - Common Stock|Q|N|N|100 -CTCT|Constant Contact, Inc. - Common Stock|Q|N|N|100 -CTG|Computer Task Group, Incorporated - Common Stock|Q|N|N|100 -CTHR|Charles & Colvard Ltd - Common Stock|Q|N|N|100 -CTIB|CTI Industries Corporation - Common Stock|S|N|N|100 -CTIC|CTI BioPharma Corp. - Common Stock|S|N|N|100 -CTRE|CareTrust REIT, Inc. - Common Stock|Q|N|N|100 -CTRL|Control4 Corporation - Common Stock|Q|N|N|100 -CTRN|Citi Trends, Inc. - Common Stock|Q|N|N|100 -CTRP|Ctrip.com International, Ltd. - American Depositary Shares|Q|N|N|100 -CTRX|Catamaran Corporation - Common Stock|Q|N|N|100 -CTSH|Cognizant Technology Solutions Corporation - Class A Common Stock|Q|N|N|100 -CTSO|Cytosorbents Corporation - Common Stock|S|N|N|100 -CTWS|Connecticut Water Service, Inc. - Common Stock|Q|N|N|100 -CTXS|Citrix Systems, Inc. - Common Stock|Q|N|N|100 -CU|First Trust ISE Global Copper Index Fund|G|N|N|100 -CUBA|The Herzfeld Caribbean Basin Fund, Inc. - Closed End FUnd|S|N|N|100 -CUI|CUI Global, Inc. - Common Stock|S|N|N|100 -CUNB|CU Bancorp (CA) - Common Stock|S|N|N|100 -CUTR|Cutera, Inc. - Common Stock|Q|N|N|100 -CVBF|CVB Financial Corporation - Common Stock|Q|N|N|100 -CVCO|Cavco Industries, Inc. - Common Stock|Q|N|N|100 -CVCY|Central Valley Community Bancorp - Common Stock|S|N|N|100 -CVGI|Commercial Vehicle Group, Inc. - Common Stock|Q|N|N|100 -CVGW|Calavo Growers, Inc. - Common Stock|Q|N|N|100 -CVLT|CommVault Systems, Inc. - Common Stock|Q|N|N|100 -CVLY|Codorus Valley Bancorp, Inc - Common Stock|G|N|N|100 -CVTI|Covenant Transportation Group, Inc. - Class A Common Stock|Q|N|N|100 -CVV|CVD Equipment Corporation - Common Stock|S|N|N|100 -CWAY|Coastway Bancorp, Inc. - Common Stock|S|N|N|100 -CWBC|Community West Bancshares - Common Stock|G|N|N|100 -CWCO|Consolidated Water Co. Ltd. - Ordinary Shares|Q|N|N|100 -CWST|Casella Waste Systems, Inc. - Class A Common Stock|Q|N|N|100 -CXDC|China XD Plastics Company Limited - Common Stock|G|N|N|100 -CY|Cypress Semiconductor Corporation - Common Stock|Q|N|N|100 -CYAN|Cyanotech Corporation - Common Stock|S|N|N|100 -CYBE|CyberOptics Corporation - Common Stock|G|N|N|100 -CYBR|CyberArk Software Ltd. - Ordinary Shares|Q|N|N|100 -CYBX|Cyberonics, Inc. - Common Stock|Q|N|N|100 -CYCC|Cyclacel Pharmaceuticals, Inc. - Common Stock|G|N|N|100 -CYCCP|Cyclacel Pharmaceuticals, Inc. - 6% Convertible Preferred Stock|S|N|N|100 -CYHHZ|Community Health Systems, Inc. - Series A Contingent Value Rights|G|N|N|100 -CYNO|Cynosure, Inc. - Class A Common Stock|Q|N|N|100 -CYOU|Changyou.com Limited - American Depositary Shares, each representing two Class A ordinary shares|Q|N|N|100 -CYRN|CYREN Ltd. - Ordinary Shares|S|N|N|100 -CYTK|Cytokinetics, Incorporated - Common Stock|S|N|N|100 -CYTR|CytRx Corporation - Common Stock|S|N|N|100 -CYTX|Cytori Therapeutics Inc - Common Stock|G|N|D|100 -CZFC|Citizens First Corporation - Common Stock|G|N|N|100 -CZNC|Citizens & Northern Corp - Common Stock|S|N|N|100 -CZR|Caesars Entertainment Corporation - Common Stock|Q|N|N|100 -CZWI|Citizens Community Bancorp, Inc. - Common Stock|G|N|N|100 -DAEG|Daegis Inc - Common Stock|S|N|D|100 -DAIO|Data I/O Corporation - Common Stock|S|N|N|100 -DAKT|Daktronics, Inc. - Common Stock|Q|N|N|100 -DARA|DARA Biosciences, Inc. - Common Stock|S|N|D|100 -DATE|Jiayuan.com International Ltd. - American Depositary Shares|Q|N|N|100 -DAVE|Famous Dave's of America, Inc. - Common Stock|Q|N|D|100 -DAX|Recon Capital DAX Germany ETF|G|N|N|100 -DBVT|DBV Technologies S.A. - American Depositary Shares|Q|N|N|100 -DCIX|Diana Containerships Inc. - Common Shares|Q|N|N|100 -DCOM|Dime Community Bancshares, Inc. - Common Stock|Q|N|N|100 -DCTH|Delcath Systems, Inc. - Common Stock|S|N|N|100 -DENN|Denny's Corporation - Common Stock|S|N|N|100 -DEPO|Depomed, Inc. - Common Stock|Q|N|N|100 -DERM|Dermira, Inc. - Common Stock|Q|N|N|100 -DEST|Destination Maternity Corporation - Common Stock|Q|N|N|100 -DFRG|Del Frisco's Restaurant Group, Inc. - Common Stock|Q|N|N|100 -DFVL|Barclays PLC - iPath US Treasury 5 Year Bull ETN|G|N|N|100 -DFVS|Barclays PLC - iPath US Treasury 5-year Bear ETN|G|N|N|100 -DGAS|Delta Natural Gas Company, Inc. - Common Stock|Q|N|N|100 -DGICA|Donegal Group, Inc. - Class A Common Stock|Q|N|N|100 -DGICB|Donegal Group, Inc. - Class B Common Stock|Q|N|N|100 -DGII|Digi International Inc. - Common Stock|Q|N|N|100 -DGLD|Credit Suisse AG - VelocityShares 3x Inverse Gold ETN|G|N|N|100 -DGLY|Digital Ally, Inc. - Common Stock|S|N|N|100 -DGRE|WisdomTree Emerging Markets Dividend Growth Fund|G|N|N|100 -DGRS|WisdomTree U.S. SmallCap Dividend Growth Fund|G|N|N|100 -DGRW|WisdomTree U.S. Dividend Growth Fund|G|N|N|100 -DHIL|Diamond Hill Investment Group, Inc. - Class A Common Stock|Q|N|N|100 -DHRM|Dehaier Medical Systems Limited - Common Stock|S|N|N|100 -DIOD|Diodes Incorporated - Common Stock|Q|N|N|100 -DISCA|Discovery Communications, Inc. - Series A Common Stock|Q|N|N|100 -DISCB|Discovery Communications, Inc. - Series B Common Stock|Q|N|N|100 -DISCK|Discovery Communications, Inc. - Series C Common Stock|Q|N|N|100 -DISH|DISH Network Corporation - Class A Common Stock|Q|N|N|100 -DJCO|Daily Journal Corp. (S.C.) - Common Stock|S|N|E|100 -DLBL|Barclays PLC - iPath US Treasury Long Bond Bull ETN|G|N|N|100 -DLBS|Barclays PLC - iPath US Treasury Long Bond Bear ETN|G|N|N|100 -DLHC|DLH Holdings Corp. - Common Stock|S|N|N|100 -DLTR|Dollar Tree, Inc. - Common Stock|Q|N|N|100 -DMLP|Dorchester Minerals, L.P. - Common Units Representing Limited Partnership Interests|Q|N|N|100 -DMND|Diamond Foods, Inc. - Common Stock|Q|N|N|100 -DMRC|Digimarc Corporation - Common Stock|Q|N|N|100 -DNBF|DNB Financial Corp - Common Stock|S|N|N|100 -DNKN|Dunkin' Brands Group, Inc. - Common Stock|Q|N|N|100 -DORM|Dorman Products, Inc. - Common Stock|Q|N|N|100 -DOVR|Dover Saddlery, Inc. - Common Stock|S|N|N|100 -DOX|Amdocs Limited - Ordinary Shares|Q|N|N|100 -DPRX|Dipexium Pharmaceuticals, Inc. - Common Stock|S|N|N|100 -DRAD|Digirad Corporation - Common Stock|G|N|N|100 -DRAM|Dataram Corporation - Common Stock|S|N|N|100 -DRIV|Digital River, Inc. - Common Stock|Q|N|N|100 -DRNA|Dicerna Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -DRRX|DURECT Corporation - Common Stock|G|N|D|100 -DRWI|DragonWave Inc - Common Shares|Q|N|N|100 -DRWIW|DragonWave Inc - Warrants|Q|N|N|100 -DRYS|DryShips Inc. - Common Stock|Q|N|N|100 -DSCI|Derma Sciences, Inc. - Common Stock|S|N|N|100 -DSCO|Discovery Laboratories, Inc. - Common Stock|S|N|N|100 -DSGX|The Descartes Systems Group Inc. - Common Stock|Q|N|N|100 -DSKX|DS Healthcare Group, Inc. - Common Stock|S|N|D|100 -DSKY|iDreamSky Technology Limited - American Depositary Shares|Q|N|N|100 -DSLV|Credit Suisse AG - VelocityShares 3x Inverse Silver ETN|G|N|N|100 -DSPG|DSP Group, Inc. - Common Stock|Q|N|N|100 -DSWL|Deswell Industries, Inc. - Common Shares|G|N|N|100 -DTLK|Datalink Corporation - Common Stock|Q|N|N|100 -DTSI|DTS, Inc. - Common Stock|Q|N|N|100 -DTUL|Barclays PLC - iPath US Treasury 2 Yr Bull ETN|G|N|N|100 -DTUS|Barclays PLC - iPath US Treasury 2-year Bear ETN|G|N|N|100 -DTV|DIRECTV - Common Stock|Q|N|N|100 -DTYL|Barclays PLC - iPath US Treasury 10 Year Bull ETN|G|N|N|100 -DTYS|Barclays PLC - iPath US Treasury 10-year Bear ETN|G|N|N|100 -DVAX|Dynavax Technologies Corporation - Common Stock|S|N|N|100 -DVCR|Diversicare Healthcare Services Inc. - Common Stock|S|N|N|100 -DWA|Dreamworks Animation SKG, Inc. - Class A Common Stock|Q|N|N|100 -DWAT|Arrow DWA Tactical ETF|G|N|N|100 -DWCH|Datawatch Corporation - Common Stock|S|N|N|100 -DWSN|Dawson Geophysical Company - Common Stock|Q|N|N|100 -DXCM|DexCom, Inc. - Common Stock|Q|N|N|100 -DXGE|WisdomTree Germany Hedged Equity Fund|G|N|N|100 -DXJS|WisdomTree Japan Hedged SmallCap Equity Fund|G|N|N|100 -DXKW|WisdomTree Korea Hedged Equity Fund|G|N|N|100 -DXLG|Destination XL Group, Inc. - Common Stock|Q|N|N|100 -DXM|Dex Media, Inc. - Common Stock|Q|N|N|100 -DXPE|DXP Enterprises, Inc. - Common Stock|Q|N|N|100 -DXPS|WisdomTree United Kingdom Hedged Equity Fund|G|N|N|100 -DXYN|The Dixie Group, Inc. - Common Stock|G|N|N|100 -DYAX|Dyax Corp. - Common Stock|G|N|N|100 -DYNT|Dynatronics Corporation - Common Stock|S|N|D|100 -DYSL|Dynasil Corporation of America - Common Stock|S|N|N|100 -EA|Electronic Arts Inc. - Common Stock|Q|N|N|100 -EAC|Erickson Incorporated - Common Stock|G|N|N|100 -EARS|Auris Medical Holding AG - Common Shares|G|N|N|100 -EBAY|eBay Inc. - Common Stock|Q|N|N|100 -EBIO|Eleven Biotherapeutics, Inc. - Common Stock|G|N|N|100 -EBIX|Ebix, Inc. - Common Stock|Q|N|N|100 -EBMT|Eagle Bancorp Montana, Inc. - Common Stock|G|N|N|100 -EBSB|Meridian Bancorp, Inc. - Common Stock|Q|N|N|100 -EBTC|Enterprise Bancorp Inc - Common Stock|Q|N|N|100 -ECHO|Echo Global Logistics, Inc. - Common Stock|Q|N|N|100 -ECOL|US Ecology, Inc. - Common Stock|Q|N|N|100 -ECPG|Encore Capital Group Inc - Common Stock|Q|N|N|100 -ECTE|Echo Therapeutics, Inc. - Common Stock|S|N|N|100 -ECYT|Endocyte, Inc. - Common Stock|Q|N|N|100 -EDAP|EDAP TMS S.A. - American Depositary Shares, each representing One Ordinary Share|G|N|N|100 -EDGW|Edgewater Technology, Inc. - Common Stock|G|N|N|100 -EDS|Exceed Company Ltd. - Common Stock|Q|N|N|100 -EDUC|Educational Development Corporation - Common Stock|G|N|N|100 -EEFT|Euronet Worldwide, Inc. - Common Stock|Q|N|N|100 -EEI|Ecology and Environment, Inc. - Class A Common Stock|G|N|N|100 -EEMA|iShares MSCI Emerging Markets Asia Index Fund|G|N|N|100 -EEME|iShares MSCI Emerging Markets EMEA Index Fund|G|N|N|100 -EEML|iShares MSCI Emerging Markets Latin America Index Fund|G|N|N|100 -EFII|Electronics for Imaging, Inc. - Common Stock|Q|N|N|100 -EFOI|Energy Focus, Inc. - Common Stock|S|N|N|100 -EFSC|Enterprise Financial Services Corporation - Common Stock|Q|N|N|100 -EFUT|eFuture Information Technology Inc. - Ordinary Shares|S|N|N|100 -EGAN|eGain Corporation - Common Stock|S|N|N|100 -EGBN|Eagle Bancorp, Inc. - Common Stock|S|N|N|100 -EGHT|8x8 Inc - Common Stock|Q|N|N|100 -EGLE|Eagle Bulk Shipping Inc. - Common Stock|Q|N|N|100 -EGLT|Egalet Corporation - Common Stock|G|N|N|100 -EGOV|NIC Inc. - Common Stock|Q|N|N|100 -EGRW|iShares MSCI Emerging Markets Growth Index Fund|G|N|N|100 -EGRX|Eagle Pharmaceuticals, Inc. - Common Stock|G|N|N|100 -EGT|Entertainment Gaming Asia Incorporated - Common Stock|S|N|D|100 -EHTH|eHealth, Inc. - Common Stock|Q|N|N|100 -EIGI|Endurance International Group Holdings, Inc. - Common Stock|Q|N|N|100 -ELGX|Endologix, Inc. - Common Stock|Q|N|N|100 -ELNK|EarthLink Holdings Corp. - Common Stock|Q|N|N|100 -ELON|Echelon Corporation - Common Stock|Q|N|N|100 -ELOS|Syneron Medical Ltd. - Ordinary Shares|Q|N|N|100 -ELRC|Electro Rent Corporation - Common Stock|Q|N|N|100 -ELSE|Electro-Sensors, Inc. - Common Stock|S|N|N|100 -ELTK|Eltek Ltd. - Ordinary Shares|S|N|N|100 -EMCB|WisdomTree Emerging Markets Corporate Bond Fund|G|N|N|100 -EMCF|Emclaire Financial Corp - Common Stock|S|N|N|100 -EMCG|WisdomTree Emerging Markets Consumer Growth Fund|G|N|N|100 -EMCI|EMC Insurance Group Inc. - Common Stock|Q|N|N|100 -EMDI|iShares MSCI Emerging Markets Consumer Discrectionary Sector Index Fund|G|N|N|100 -EMEY|iShares MSCI Emerging Markets Energy Sector Capped Index Fund|G|N|N|100 -EMIF|iShares S&P Emerging Markets Infrastructure Index Fund|G|N|N|100 -EMITF|Elbit Imaging Ltd. - Ordinary Shares|Q|N|N|100 -EMKR|EMCORE Corporation - Common Stock|G|N|N|100 -EML|Eastern Company (The) - Common Stock|G|N|N|100 -EMMS|Emmis Communications Corporation - Class A Common Stock|Q|N|N|100 -EMMSP|Emmis Communications Corporation - 6.25% Series A Cumulative Convertible Preferred Stock|Q|N|N|100 -ENDP|Endo International plc - Ordinary Shares|Q|N|N|100 -ENFC|Entegra Financial Corp. - Common Stock|G|N|N|100 -ENG|ENGlobal Corporation - Common Stock|S|N|N|100 -ENOC|EnerNOC, Inc. - Common Stock|Q|N|N|100 -ENPH|Enphase Energy, Inc. - Common Stock|G|N|N|100 -ENSG|The Ensign Group, Inc. - Common Stock|Q|N|N|100 -ENT|Global Eagle Entertainment Inc. - Common Stock|S|N|N|100 -ENTA|Enanta Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -ENTG|Entegris, Inc. - Common Stock|Q|N|N|100 -ENTR|Entropic Communications, Inc. - Common Stock|Q|N|N|100 -ENVI|Envivio, Inc. - Common Stock|Q|N|N|100 -ENZN|Enzon Pharmaceuticals, Inc. - Common Stock|S|N|N|100 -ENZY|Enzymotec Ltd. - Ordinary Shares|Q|N|N|100 -EOPN|E2open, Inc. - Common Stock|G|N|N|100 -EPAX|Ambassadors Group, Inc. - Common Stock|Q|N|N|100 -EPAY|Bottomline Technologies, Inc. - Common Stock|Q|N|N|100 -EPIQ|EPIQ Systems, Inc. - Common Stock|Q|N|N|100 -EPRS|EPIRUS Biopharmaceuticals, Inc. - Common Stock|S|N|N|100 -EPZM|Epizyme, Inc. - Common Stock|Q|N|N|100 -EQIX|Equinix, Inc. - Common Stock|Q|N|N|100 -ERI|Eldorado Resorts, Inc. - Common Stock|Q|N|N|100 -ERIC|Ericsson - ADS each representing 1 underlying Class B share|Q|N|N|100 -ERIE|Erie Indemnity Company - Class A Common Stock|Q|N|N|100 -ERII|Energy Recovery, Inc. - Common Stock|Q|N|N|100 -EROC|Eagle Rock Energy Partners, L.P. - Common Units Representing Limited Partner Interests|Q|N|N|100 -ERS|Empire Resources, Inc. - Common Stock|S|N|N|100 -ERW|Janus Equal Risk Weighted Large Cap ETF|G|N|N|100 -ESBF|ESB Financial Corporation - Common Stock|Q|N|N|100 -ESBK|Elmira Savings Bank NY (The) - Common Stock|S|N|N|100 -ESCA|Escalade, Incorporated - Common Stock|G|N|N|100 -ESCR|Escalera Resources Co. - Common Stock|Q|N|N|100 -ESCRP|Escalera Resources Co. - Series A Cumulative Preferred Stock|Q|N|N|100 -ESEA|Euroseas Ltd. - Common Stock|Q|N|D|100 -ESGR|Enstar Group Limited - Ordinary Shares|Q|N|N|100 -ESIO|Electro Scientific Industries, Inc. - Common Stock|Q|N|N|100 -ESLT|Elbit Systems Ltd. - Ordinary Shares|Q|N|N|100 -ESMC|Escalon Medical Corp. - Common Stock|S|N|N|100 -ESPR|Esperion Therapeutics, Inc. - Common Stock|G|N|N|100 -ESRX|Express Scripts Holding Company - Common Stock|Q|N|N|100 -ESSA|ESSA Bancorp, Inc. - common stock|Q|N|N|100 -ESSX|Essex Rental Corporation - Common Stock|S|N|N|100 -ESXB|Community Bankers Trust Corporation. - Common Stock|S|N|N|100 -ETFC|E*TRADE Financial Corporation - Common Stock|Q|N|N|100 -ETRM|EnteroMedics Inc. - Common Stock|S|N|N|100 -EUFN|iShares MSCI Europe Financials Sector Index Fund|G|N|N|100 -EVAL|iShares MSCI Emerging Markets Value Index Fund|G|N|N|100 -EVAR|Lombard Medical, Inc. - Ordinary Shares|G|N|N|100 -EVBS|Eastern Virginia Bankshares, Inc. - Common Stock|Q|N|N|100 -EVEP|EV Energy Partners, L.P. - common units representing limited partnership interest|Q|N|N|100 -EVK|Ever-Glory International Group, Inc. - Common Stock|G|N|N|100 -EVLV|EVINE Live Inc. - Common Stock|Q|N|N|100 -EVOK|Evoke Pharma, Inc. - Common Stock|S|N|N|100 -EVOL|Evolving Systems, Inc. - Common Stock|S|N|N|100 -EVRY|EveryWare Global, Inc. - Common Stock|G|N|D|100 -EWBC|East West Bancorp, Inc. - Common Stock|Q|N|N|100 -EXA|Exa Corporation - Common Stock|G|N|N|100 -EXAC|Exactech, Inc. - Common Stock|Q|N|N|100 -EXAS|Exact Sciences Corporation - Common Stock|S|N|N|100 -EXEL|Exelixis, Inc. - Common Stock|Q|N|N|100 -EXFO|EXFO Inc - Subordinate Voting Shares|Q|N|N|100 -EXLP|Exterran Partners, L.P. - Common Units representing Limited Partner Interests|Q|N|N|100 -EXLS|ExlService Holdings, Inc. - Common Stock|Q|N|N|100 -EXPD|Expeditors International of Washington, Inc. - Common Stock|Q|N|N|100 -EXPE|Expedia, Inc. - Common Stock|Q|N|N|100 -EXPO|Exponent, Inc. - Common Stock|Q|N|N|100 -EXTR|Extreme Networks, Inc. - Common Stock|Q|N|N|100 -EXXI|Energy XXI Ltd. - Common Stock|Q|N|N|100 -EYEG|Eyegate Pharmaceuticals, Inc. - Common Stock|S|N|N|100 -EYES|Second Sight Medical Products, Inc. - Common Stock|S|N|N|100 -EZCH|EZchip Semiconductor Limited - Ordinary Shares|Q|N|N|100 -EZPW|EZCORP, Inc. - Class A Non-Voting Common Stock|Q|N|N|100 -FALC|FalconStor Software, Inc. - Common Stock|G|N|N|100 -FANG|Diamondback Energy, Inc. - Commmon Stock|Q|N|N|100 -FARM|Farmer Brothers Company - Common Stock|Q|N|N|100 -FARO|FARO Technologies, Inc. - Common Stock|Q|N|N|100 -FAST|Fastenal Company - Common Stock|Q|N|N|100 -FATE|Fate Therapeutics, Inc. - Common Stock|G|N|N|100 -FB|Facebook, Inc. - Class A Common Stock|Q|N|N|100 -FBIZ|First Business Financial Services, Inc. - Common Stock|Q|N|N|100 -FBMS|The First Bancshares, Inc. - Common Stock|G|N|N|100 -FBNC|First Bancorp - Common Stock|Q|N|N|100 -FBNK|First Connecticut Bancorp, Inc. - Common Stock|Q|N|N|100 -FBRC|FBR & Co - Common Stock|Q|N|N|100 -FBSS|Fauquier Bankshares, Inc. - Common Stock|S|N|N|100 -FCAP|First Capital, Inc. - Common Stock|S|N|N|100 -FCBC|First Community Bancshares, Inc. - Common Stock|Q|N|N|100 -FCCO|First Community Corporation - Common Stock|S|N|N|100 -FCCY|1st Constitution Bancorp (NJ) - Common Stock|G|N|N|100 -FCEL|FuelCell Energy, Inc. - Common Stock|G|N|N|100 -FCFS|First Cash Financial Services, Inc. - Common Stock|Q|N|N|100 -FCHI|iShares FTSE China (HK Listed) Index Fund|G|N|N|100 -FCLF|First Clover Leaf Financial Corp. - Common Stock|S|N|N|100 -FCNCA|First Citizens BancShares, Inc. - Class A Common Stock|Q|N|N|100 -FCS|Fairchild Semiconductor International, Inc. - Common Stock|Q|N|N|100 -FCSC|Fibrocell Science Inc - Common Stock|S|N|N|100 -FCTY|1st Century Bancshares, Inc - Common Stock|S|N|N|100 -FCVA|First Capital Bancorp, Inc. (VA) - Common Stock|S|N|N|100 -FCZA|First Citizens Banc Corp. - Common Stock|S|N|N|100 -FCZAP|First Citizens Banc Corp. - Depositary Shares Each Representing a 1/40th Interest in a 6.50% Noncumulative Redeemable Convertible Perpetual Preferred Share, Series B|S|N|N|100 -FDEF|First Defiance Financial Corp. - Common Stock|Q|N|N|100 -FDIV|First Trust Strategic Income ETF|G|N|N|100 -FDML|Federal-Mogul Holdings Corporation - Class A Common Stock|Q|N|N|100 -FDUS|Fidus Investment Corporation - Common Stock|Q|N|N|100 -FEIC|FEI Company - Common Stock|Q|N|N|100 -FEIM|Frequency Electronics, Inc. - Common Stock|G|N|N|100 -FELE|Franklin Electric Co., Inc. - Common Stock|Q|N|N|100 -FEMB|First Trust Emerging Markets Local Currency Bond ETF|G|N|N|100 -FES|Forbes Energy Services Ltd - Ordinary shares (Bermuda)|G|N|N|100 -FEUZ|First Trust Eurozone AlphaDEX ETF|G|N|N|100 -FEYE|FireEye, Inc. - Common Stock|Q|N|N|100 -FFBC|First Financial Bancorp. - Common Stock|Q|N|N|100 -FFBCW|First Financial Bancorp. - Warrant 12/23/2018|Q|N|N|100 -FFHL|Fuwei Films (Holdings) Co., Ltd. - ORDINARY SHARES|G|N|D|100 -FFIC|Flushing Financial Corporation - Common Stock|Q|N|N|100 -FFIN|First Financial Bankshares, Inc. - Common Stock|Q|N|N|100 -FFIV|F5 Networks, Inc. - Common Stock|Q|N|N|100 -FFKT|Farmers Capital Bank Corporation - Common Stock|Q|N|N|100 -FFNM|First Federal of Northern Michigan Bancorp, Inc. - Common Stock|S|N|N|100 -FFNW|First Financial Northwest, Inc. - Common Stock|Q|N|N|100 -FFWM|First Foundation Inc. - Common Stock|G|N|N|100 -FGEN|FibroGen, Inc - Common Stock|Q|N|N|100 -FHCO|Female Health Company (The) - Common Stock|S|N|N|100 -FIBK|First Interstate BancSystem, Inc. - Class A Common Stock|Q|N|N|100 -FINL|The Finish Line, Inc. - Class A Common Stock|Q|N|N|100 -FISH|Marlin Midstream Partners, LP - Common Units representing Limited Partner Interests.|G|N|N|100 -FISI|Financial Institutions, Inc. - Common Stock|Q|N|N|100 -FISV|Fiserv, Inc. - Common Stock|Q|N|N|100 -FITB|Fifth Third Bancorp - Common Stock|Q|N|N|100 -FITBI|Fifth Third Bancorp - Depositary Share repstg 1/1000th Ownership Interest Perp Pfd Series I|Q|N|N|100 -FIVE|Five Below, Inc. - Common Stock|Q|N|N|100 -FIVN|Five9, Inc. - Common Stock|G|N|N|100 -FIZZ|National Beverage Corp. - Common Stock|Q|N|N|100 -FLAT|Barclays PLC - iPath US Treasury Flattener ETN|G|N|N|100 -FLDM|Fluidigm Corporation - Common Stock|Q|N|N|100 -FLEX|Flextronics International Ltd. - Ordinary Shares|Q|N|N|100 -FLIC|The First of Long Island Corporation - Common Stock|S|N|N|100 -FLIR|FLIR Systems, Inc. - Common Stock|Q|N|N|100 -FLL|Full House Resorts, Inc. - Common Stock|S|N|N|100 -FLML|Flamel Technologies S.A. - American Depositary Shares each representing one Ordinary Share|G|N|N|100 -FLWS|1-800 FLOWERS.COM, Inc. - Class A Common Stock|Q|N|N|100 -FLXN|Flexion Therapeutics, Inc. - Common Stock|G|N|N|100 -FLXS|Flexsteel Industries, Inc. - Common Stock|Q|N|N|100 -FMB|First Trust Managed Municipal ETF|G|N|N|100 -FMBH|First Mid-Illinois Bancshares, Inc. - Common Stock|G|N|N|100 -FMBI|First Midwest Bancorp, Inc. - Common Stock|Q|N|N|100 -FMER|FirstMerit Corporation - Common Stock|Q|N|N|100 -FMI|Foundation Medicine, Inc. - Common Stock|Q|N|N|100 -FMNB|Farmers National Banc Corp. - Common Stock|S|N|N|100 -FNBC|First NBC Bank Holding Company - Common Stock|Q|N|N|100 -FNFG|First Niagara Financial Group Inc. - Common Stock|Q|N|N|100 -FNGN|Financial Engines, Inc. - Common Stock|Q|N|N|100 -FNHC|Federated National Holding Company - Common Stock|G|N|N|100 -FNJN|Finjan Holdings, Inc. - Common Stock|S|N|N|100 -FNLC|First Bancorp, Inc (ME) - Common Stock|Q|N|N|100 -FNRG|ForceField Energy Inc. - Common Stock|S|N|N|100 -FNSR|Finisar Corporation - Common Stock|Q|N|N|100 -FOLD|Amicus Therapeutics, Inc. - Common Stock|G|N|N|100 -FOMX|Foamix Pharmaceuticals Ltd. - Ordinary Shares|G|N|N|100 -FONE|First Trust NASDAQ CEA Smartphone Index Fund|G|N|N|100 -FONR|Fonar Corporation - Common Stock|S|N|N|100 -FORD|Forward Industries, Inc. - Common Stock|S|N|N|100 -FORM|FormFactor, Inc. - Common Stock|Q|N|N|100 -FORR|Forrester Research, Inc. - Common Stock|Q|N|N|100 -FORTY|Formula Systems (1985) Ltd. - ADS represents 1 ordinary shares|Q|N|N|100 -FOSL|Fossil Group, Inc. - Common Stock|Q|N|N|100 -FOX|Twenty-First Century Fox, Inc. - Class B Common Stock|Q|N|N|100 -FOXA|Twenty-First Century Fox, Inc. - Class A Common Stock|Q|N|N|100 -FOXF|Fox Factory Holding Corp. - Common Stock|Q|N|N|100 -FPRX|Five Prime Therapeutics, Inc. - Common Stock|Q|N|N|100 -FPXI|First Trust International IPO ETF|G|N|N|100 -FRAN|Francesca's Holdings Corporation - Common Stock|Q|N|N|100 -FRBA|First Bank - Common Stock|G|N|N|100 -FRBK|Republic First Bancorp, Inc. - Common Stock|G|N|N|100 -FRED|Fred's, Inc. - Common Stock|Q|N|N|100 -FREE|FreeSeas Inc. - Common Stock|S|N|D|100 -FRGI|Fiesta Restaurant Group, Inc. - Common Stock|Q|N|N|100 -FRME|First Merchants Corporation - Common Stock|Q|N|N|100 -FRP|FairPoint Communications, Inc. - Common Stock|S|N|N|100 -FRPH|FRP Holdings, Inc. - Common Stock|Q|N|N|100 -FRPHV|FRP Holdings, Inc. - Common Stock Ex-Distribution When Issued|Q|N|N|100 -FRPT|Freshpet, Inc. - Common Stock|G|N|N|100 -FRSH|Papa Murphy's Holdings, Inc. - Common Stock|Q|N|N|100 -FSAM|Fifth Street Asset Management Inc. - Class A Common Stock|Q|N|N|100 -FSBK|First South Bancorp Inc - Common Stock|Q|N|N|100 -FSBW|FS Bancorp, Inc. - Common Stock|S|N|N|100 -FSC|Fifth Street Finance Corp. - Common Stock|Q|N|N|100 -FSCFL|Fifth Street Finance Corp. - 6.125% senior notes due 2028|Q|N|N|100 -FSFG|First Savings Financial Group, Inc. - Common Stock|S|N|N|100 -FSFR|Fifth Street Senior Floating Rate Corp. - Common Stock|Q|N|N|100 -FSGI|First Security Group, Inc. - Common Stock|S|N|N|100 -FSLR|First Solar, Inc. - Common Stock|Q|N|N|100 -FSNN|Fusion Telecommunications International, Inc. - Common Stock|S|N|N|100 -FSRV|FirstService Corporation - Subordinate Voting Shares|Q|N|N|100 -FSTR|L.B. Foster Company - Common Stock|Q|N|N|100 -FSYS|Fuel Systems Solutions, Inc. - Common Stock|Q|N|N|100 -FTCS|First Trust Capital Strength ETF|G|N|N|100 -FTD|FTD Companies, Inc. - Common Stock|Q|N|N|100 -FTEK|Fuel Tech, Inc. - Common Stock|Q|N|N|100 -FTGC|First Trust Global Tactical Commodity Strategy Fund|G|N|N|100 -FTHI|First Trust High Income ETF|G|N|N|100 -FTLB|First Trust Low Beta Income ETF|G|N|N|100 -FTNT|Fortinet, Inc. - Common Stock|Q|N|N|100 -FTR|Frontier Communications Corporation - Common Stock|Q|N|N|100 -FTSL|First Trust Senior Loan Fund ETF|G|N|N|100 -FTSM|First Trust Enhanced Short Maturity ETF|G|N|N|100 -FUEL|Rocket Fuel Inc. - Common Stock|Q|N|N|100 -FULL|Full Circle Capital Corporation - Common Stock|G|N|N|100 -FULLL|Full Circle Capital Corporation - 8.25% Notes due 2020|G|N|N|100 -FULT|Fulton Financial Corporation - Common Stock|Q|N|N|100 -FUNC|First United Corporation - Common Stock|Q|N|N|100 -FUND|Royce Focus Trust, Inc. - Closed End Fund|Q|N|N|100 -FV|First Trust Dorsey Wright Focus 5 ETF|G|N|N|100 -FWM|Fairway Group Holdings Corp. - Class A Common Stock|G|N|N|100 -FWP|Forward Pharma A/S - American Depositary Shares|Q|N|N|100 -FWRD|Forward Air Corporation - Common Stock|Q|N|N|100 -FXCB|Fox Chase Bancorp, Inc. - Common Stock|Q|N|N|100 -FXEN|FX Energy, Inc. - Common Stock|Q|N|N|100 -FXENP|FX Energy, Inc. - Series B Cumulative Convertible Preferred Stock|Q|N|N|100 -GABC|German American Bancorp, Inc. - Common Stock|Q|N|N|100 -GAI|Global-Tech Advanced Innovations Inc. - Common Stock|G|N|N|100 -GAIA|Gaiam, Inc. - Class A Common Stock|G|N|N|100 -GAIN|Gladstone Investment Corporation - Business Development Company|Q|N|N|100 -GAINO|Gladstone Investment Corporation - 6.75% Series B Cumulative Term Preferred Stock|Q|N|N|100 -GAINP|Gladstone Investment Corporation - 7.125% Series A Term Preferred Stock|Q|N|N|100 -GALE|Galena Biopharma, Inc. - Common Stock|S|N|N|100 -GALT|Galectin Therapeutics Inc. - Common Stock|S|N|N|100 -GALTU|Galectin Therapeutics Inc. - Units|S|N|N|100 -GALTW|Galectin Therapeutics Inc. - Warrants|S|N|N|100 -GAME|Shanda Games Limited - American Depositary Shares representing 2 Class A Ordinary Shares|Q|N|N|100 -GARS|Garrison Capital Inc. - Common Stock|Q|N|N|100 -GASS|StealthGas, Inc. - common stock|Q|N|N|100 -GBCI|Glacier Bancorp, Inc. - Common Stock|Q|N|N|100 -GBDC|Golub Capital BDC, Inc. - Common Stock|Q|N|N|100 -GBIM|GlobeImmune, Inc. - Common Stock|S|N|N|100 -GBLI|Global Indemnity plc - Class A Common Shares|Q|N|N|100 -GBNK|Guaranty Bancorp - Common Stock|Q|N|N|100 -GBSN|Great Basin Scientific, Inc. - Common Stock|S|N|N|100 -GCBC|Greene County Bancorp, Inc. - Common Stock|S|N|N|100 -GCVRZ|Sanofi - Contingent Value Right (Expiring 12/31/2020)|G|N|N|100 -GDEF|Global Defense & National Security Systems, Inc. - Common Stock|S|N|D|100 -GENC|Gencor Industries Inc. - Common Stock|G|N|N|100 -GENE|Genetic Technologies Ltd - American Depositary Shares representing 30 ordinary shares|S|N|D|100 -GEOS|Geospace Technologies Corporation - Common Stock|Q|N|N|100 -GERN|Geron Corporation - Common Stock|Q|N|N|100 -GEVA|Synageva BioPharma Corp. - Common Stock|Q|N|N|100 -GEVO|Gevo, Inc. - Common Stock|S|N|D|100 -GFED|Guaranty Federal Bancshares, Inc. - Common Stock|G|N|N|100 -GFN|General Finance Corporation - Common Stock|G|N|N|100 -GFNCP|General Finance Corporation - Cumulative Redeemable Perpetual Preferred Series C|G|N|N|100 -GFNSL|General Finance Corporation - Senior Notes due 2021|G|N|N|100 -GGAC|Garnero Group Acquisition Company - Ordinary Shares|S|N|N|100 -GGACR|Garnero Group Acquisition Company - Rights expiring 6/25/2016|S|N|N|100 -GGACU|Garnero Group Acquisition Company - Units|S|N|N|100 -GGACW|Garnero Group Acquisition Company - Warrant expiring 6/24/2019|S|N|N|100 -GGAL|Grupo Financiero Galicia S.A. - American Depositary Shares, Class B Shares underlying|S|N|N|100 -GHDX|Genomic Health, Inc. - Common Stock|Q|N|N|100 -GIFI|Gulf Island Fabrication, Inc. - Common Stock|Q|N|N|100 -GIGA|Giga-tronics Incorporated - Common Stock|S|N|D|100 -GIGM|GigaMedia Limited - Ordinary Shares|Q|N|D|100 -GIII|G-III Apparel Group, LTD. - Common Stock|Q|N|N|100 -GILD|Gilead Sciences, Inc. - Common Stock|Q|N|N|100 -GILT|Gilat Satellite Networks Ltd. - Ordinary Shares|Q|N|N|100 -GK|G&K Services, Inc. - Class A Common Stock|Q|N|N|100 -GKNT|Geeknet, Inc. - Common Stock|G|N|N|100 -GLAD|Gladstone Capital Corporation - Business Development Company|Q|N|N|100 -GLADO|Gladstone Capital Corporation - Term Preferred Shares, 6.75% Series 2021|Q|N|N|100 -GLBS|Globus Maritime Limited - Common Stock|G|N|N|100 -GLBZ|Glen Burnie Bancorp - Common Stock|S|N|N|100 -GLDC|Golden Enterprises, Inc. - Common Stock|G|N|N|100 -GLDD|Great Lakes Dredge & Dock Corporation - Common Stock|Q|N|N|100 -GLDI|Credit Suisse AG - Credit Suisse Gold Shares Covered Call Exchange Traded Notes|G|N|N|100 -GLMD|Galmed Pharmaceuticals Ltd. - Ordinary Shares|S|N|N|100 -GLNG|Golar LNG Limited - Common Shares|Q|N|N|100 -GLPI|Gaming and Leisure Properties, Inc. - Common Stock|Q|N|N|100 -GLRE|Greenlight Reinsurance, Ltd. - Class A Ordinary Shares|Q|N|N|100 -GLRI|Glori Energy Inc - Common Stock|S|N|N|100 -GLUU|Glu Mobile Inc. - Common Stock|Q|N|N|100 -GLYC|GlycoMimetics, Inc. - Common Stock|G|N|N|100 -GMAN|Gordmans Stores, Inc. - Common Stock|Q|N|N|100 -GMCR|Keurig Green Mountain, Inc. - Common Stock|Q|N|N|100 -GMLP|Golar LNG Partners LP - Common Units Representing Limited Partnership|Q|N|N|100 -GNBC|Green Bancorp, Inc. - Common Stock|Q|N|N|100 -GNCA|Genocea Biosciences, Inc. - Common Stock|G|N|N|100 -GNCMA|General Communication, Inc. - Class A Common Stock|Q|N|N|100 -GNMA|iShares Core GNMA Bond ETF|G|N|N|100 -GNMK|GenMark Diagnostics, Inc. - Common Stock|G|N|N|100 -GNTX|Gentex Corporation - Common Stock|Q|N|N|100 -GNVC|GenVec, Inc. - Common Stock|S|N|N|100 -GOGO|Gogo Inc. - Common Stock|Q|N|N|100 -GOLD|Randgold Resources Limited - American Depositary Shares each represented by one Ordinary Share|Q|N|N|100 -GOMO|Sungy Mobile Limited - American Depositary Shares|G|N|N|100 -GOOD|Gladstone Commercial Corporation - Real Estate Investment Trust|Q|N|N|100 -GOODN|Gladstone Commercial Corporation - 7.125% Series C Cumulative Term Preferred Stock|Q|N|N|100 -GOODO|Gladstone Commercial Corporation - 7.50% Series B Cumulative Redeemable Preferred Stock|Q|N|N|100 -GOODP|Gladstone Commercial Corporation - 7.75% Series A Cumulative Redeemable Preferred Stock|Q|N|N|100 -GOOG|Google Inc. - Class C Capital Stock|Q|N|N|100 -GOOGL|Google Inc. - Class A Common Stock|Q|N|N|100 -GPIC|Gaming Partners International Corporation - Common Stock|G|N|N|100 -GPOR|Gulfport Energy Corporation - Common Stock|Q|N|N|100 -GPRE|Green Plains, Inc. - Common Stock|Q|N|N|100 -GPRO|GoPro, Inc. - Class A Common Stock|Q|N|N|100 -GRBK|Green Brick Partners, Inc. - Common Stock|S|N|N|100 -GRFS|Grifols, S.A. - American Depositary Shares|Q|N|N|100 -GRID|First Trust NASDAQ Clean Edge Smart Grid Infrastructure Index Fund|G|N|N|100 -GRIF|Griffin Land & Nurseries, Inc. - Common Stock|G|N|N|100 -GRMN|Garmin Ltd. - Common Stock|Q|N|N|100 -GROW|U.S. Global Investors, Inc. - Class A Common Stock|S|N|N|100 -GRPN|Groupon, Inc. - Class A Common Stock|Q|N|N|100 -GRVY|GRAVITY Co., Ltd. - American depositary shares, each representing one-fourth of a share of common stock|S|N|D|100 -GSBC|Great Southern Bancorp, Inc. - Common Stock|Q|N|N|100 -GSIG|GSI Group, Inc. - Common Stock|Q|N|N|100 -GSIT|GSI Technology, Inc. - Common Stock|Q|N|N|100 -GSM|Globe Specialty Metals Inc. - Common Stock|Q|N|N|100 -GSOL|Global Sources Ltd. - Common Stock|Q|N|N|100 -GSVC|GSV Capital Corp - Common Stock|S|N|N|100 -GT|The Goodyear Tire & Rubber Company - Common Stock|Q|N|N|100 -GTIM|Good Times Restaurants Inc. - Common Stock|S|N|N|100 -GTIV|Gentiva Health Services, Inc. - Common Stock|Q|N|N|100 -GTLS|Chart Industries, Inc. - Common Stock|Q|N|N|100 -GTWN|Georgetown Bancorp, Inc. - Common Stock|S|N|N|100 -GTXI|GTx, Inc. - Common Stock|G|N|D|100 -GUID|Guidance Software, Inc. - Common Stock|G|N|N|100 -GULF|WisdomTree Middle East Dividend Fund|G|N|N|100 -GULTU|Gulf Coast Ultra Deep Royalty Trust - Royalty Trust Unit|S|N|N|100 -GURE|Gulf Resources, Inc. - Common Stock|Q|N|N|100 -GWGH|GWG Holdings, Inc - Common Stock|S|N|N|100 -GWPH|GW Pharmaceuticals Plc - American Depositary Shares|G|N|N|100 -GYRO|Gyrodyne Company of America, Inc. - Common Stock|S|N|N|100 -HA|Hawaiian Holdings, Inc. - Common Stock|Q|N|N|100 -HABT|The Habit Restaurants, Inc. - Class A Common Stock|G|N|N|100 -HAFC|Hanmi Financial Corporation - Common Stock|Q|N|N|100 -HAIN|The Hain Celestial Group, Inc. - Common Stock|Q|N|N|100 -HALL|Hallmark Financial Services, Inc. - Common Stock|G|N|N|100 -HALO|Halozyme Therapeutics, Inc. - Common Stock|Q|N|N|100 -HART|Harvard Apparatus Regenerative Technology, Inc. - Common Stock|S|N|N|100 -HAS|Hasbro, Inc. - Common Stock|Q|N|N|100 -HAWK|Blackhawk Network Holdings, Inc. - Class A Common Stock|Q|N|N|100 -HAWKB|Blackhawk Network Holdings, Inc. - Class B Common Stock|Q|N|N|100 -HAYN|Haynes International, Inc. - Common Stock|Q|N|N|100 -HBAN|Huntington Bancshares Incorporated - Common Stock|Q|N|N|100 -HBANP|Huntington Bancshares Incorporated - Non Cumulative Perp Conv Pfd Ser A|Q|N|N|10 -HBCP|Home Bancorp, Inc. - Common Stock|Q|N|N|100 -HBHC|Hancock Holding Company - Common Stock|Q|N|N|100 -HBIO|Harvard Bioscience, Inc. - Common Stock|G|N|N|100 -HBK|Hamilton Bancorp, Inc. - Common Stock|S|N|N|100 -HBMD|Howard Bancorp, Inc. - Common Stock|S|N|N|100 -HBNC|Horizon Bancorp (IN) - Common Stock|Q|N|N|100 -HBNK|Hampden Bancorp, Inc. - common stock|G|N|N|100 -HBOS|Heritage Financial Group - Common Stock|Q|N|N|100 -HBP|Huttig Building Products, Inc. - Common Stock|S|N|N|100 -HCAC|Hennessy Capital Acquisition Corp. - Common Stock|S|N|D|100 -HCACU|Hennessy Capital Acquisition Corp. - Unit|S|N|N|100 -HCACW|Hennessy Capital Acquisition Corp. - Warrant|S|N|N|100 -HCAP|Harvest Capital Credit Corporation - Common Stock|G|N|N|100 -HCAPL|Harvest Capital Credit Corporation - 7.00% Notes due 2020|G|N|N|100 -HCBK|Hudson City Bancorp, Inc. - Common Stock|Q|N|N|100 -HCCI|Heritage-Crystal Clean, Inc. - Common Stock|Q|N|N|100 -HCKT|The Hackett Group, Inc. - Common Stock|Q|N|N|100 -HCOM|Hawaiian Telcom Holdco, Inc. - Common Stock|Q|N|N|100 -HCSG|Healthcare Services Group, Inc. - Common Stock|Q|N|N|100 -HDNG|Hardinge, Inc. - Common Stock|Q|N|N|100 -HDP|Hortonworks, Inc. - Common Stock|Q|N|N|100 -HDRA|Hydra Industries Acquisition Corp. - Common Stock|S|N|N|100 -HDRAR|Hydra Industries Acquisition Corp. - Rights|S|N|N|100 -HDRAU|Hydra Industries Acquisition Corp. - Units|S|N|N|100 -HDRAW|Hydra Industries Acquisition Corp. - Warrants|S|N|N|100 -HDS|HD Supply Holdings, Inc. - Common Stock|Q|N|N|100 -HDSN|Hudson Technologies, Inc. - Common Stock|S|N|N|100 -HEAR|Turtle Beach Corporation - Common Stock|G|N|N|100 -HEES|H&E Equipment Services, Inc. - Common Stock|Q|N|N|100 -HELE|Helen of Troy Limited - Common Stock|Q|N|N|100 -HEOP|Heritage Oaks Bancorp - Common Stock|S|N|N|100 -HERO|Hercules Offshore, Inc. - Common Stock|Q|N|N|100 -HFBC|HopFed Bancorp, Inc. - Common Stock|G|N|N|100 -HFBL|Home Federal Bancorp, Inc. of Louisiana - Common Stock|S|N|N|100 -HFFC|HF Financial Corp. - Common Stock|G|N|N|100 -HFWA|Heritage Financial Corporation - Common Stock|Q|N|N|100 -HGSH|China HGS Real Estate, Inc. - Common Stock|S|N|N|100 -HIBB|Hibbett Sports, Inc. - Common Stock|Q|N|N|100 -HIFS|Hingham Institution for Savings - Common Stock|G|N|N|100 -HIHO|Highway Holdings Limited - Common Stock|S|N|N|100 -HIIQ|Health Insurance Innovations, Inc. - Class A Common Stock|G|N|N|100 -HILL|Dot Hill Systems Corporation - Common Stock|G|N|N|100 -HIMX|Himax Technologies, Inc. - American depositary shares, each of which represents two ordinary shares.|Q|N|N|100 -HKTV|Hong Kong Television Network Limited - American Depositary Shares, each representing 20 Ordinary Shares|Q|N|N|100 -HLIT|Harmonic Inc. - Common Stock|Q|N|N|100 -HLSS|Home Loan Servicing Solutions, Ltd. - Ordinary Shares|Q|N|N|100 -HMHC|Houghton Mifflin Harcourt Company - Common Stock|Q|N|N|100 -HMIN|Homeinns Hotel Group - American Depositary Shares, each representing two ordinary shares|Q|N|N|100 -HMNF|HMN Financial, Inc. - Common Stock|G|N|N|100 -HMNY|Helios and Matheson Analytics Inc - Common Stock|S|N|N|100 -HMPR|Hampton Roads Bankshares Inc - Common Stock|Q|N|N|100 -HMST|HomeStreet, Inc. - Common Stock|Q|N|N|100 -HMSY|HMS Holdings Corp - Common Stock|Q|N|N|100 -HMTV|Hemisphere Media Group, Inc. - Class A Common Stock|G|N|N|100 -HNH|Handy & Harman Ltd. - Common Stock|S|N|N|100 -HNNA|Hennessy Advisors, Inc. - Common Stock|S|N|N|100 -HNRG|Hallador Energy Company - Common Stock|S|N|N|100 -HNSN|Hansen Medical, Inc. - Common Stock|G|N|D|100 -HOFT|Hooker Furniture Corporation - Common Stock|Q|N|N|100 -HOLI|Hollysys Automation Technologies, Ltd. - Common Stock|Q|N|N|100 -HOLX|Hologic, Inc. - Common Stock|Q|N|N|100 -HOMB|Home BancShares, Inc. - common stock|Q|N|N|100 -HOTR|Chanticleer Holdings, Inc. - Common Stock|S|N|N|100 -HOTRW|Chanticleer Holdings, Inc. - Warrants|S|N|N|100 -HOVNP|Hovnanian Enterprises Inc - Depositary Share representing 1/1000th of 7.625% Series A Preferred Stock|G|N|N|100 -HPJ|Highpower International Inc - Common Stock|G|N|N|100 -HPTX|Hyperion Therapeutics, Inc. - Common Stock|Q|N|N|100 -HQY|HealthEquity, Inc. - Common Stock|Q|N|N|100 -HRTX|Heron Therapeutics, Inc. - Common Stock|S|N|N|100 -HRZN|Horizon Technology Finance Corporation - Common Stock|Q|N|N|100 -HSGX|Histogenics Corporation - Common Stock|G|N|N|100 -HSIC|Henry Schein, Inc. - Common Stock|Q|N|N|100 -HSII|Heidrick & Struggles International, Inc. - Common Stock|Q|N|N|100 -HSKA|Heska Corporation - Common Stock|S|N|N|100 -HSNI|HSN, Inc. - Common Stock|Q|N|N|100 -HSOL|Hanwha SolarOne Co., Ltd. - American Depository Shares, each representing five ordinary shares|Q|N|N|100 -HSON|Hudson Global, Inc. - Common Stock|Q|N|N|100 -HSTM|HealthStream, Inc. - Common Stock|Q|N|N|100 -HTBI|HomeTrust Bancshares, Inc. - Common Stock|Q|N|N|100 -HTBK|Heritage Commerce Corp - Common Stock|Q|N|N|100 -HTBX|Heat Biologics, Inc. - Common Stock|S|N|N|100 -HTCH|Hutchinson Technology Incorporated - Common Stock|Q|N|N|100 -HTHT|China Lodging Group, Limited - American Depositary Shares, each representing four Ordinary Shares|Q|N|N|100 -HTLD|Heartland Express, Inc. - Common Stock|Q|N|N|100 -HTLF|Heartland Financial USA, Inc. - Common Stock|Q|N|N|100 -HTWO|HF2 Financial Management Inc. - Class A Common Stock|S|N|D|100 -HTWR|Heartware International, Inc. - Common Stock|Q|N|N|100 -HUBG|Hub Group, Inc. - Class A Common Stock|Q|N|N|100 -HURC|Hurco Companies, Inc. - Common Stock|Q|N|N|100 -HURN|Huron Consulting Group Inc. - Common Stock|Q|N|N|100 -HWAY|Healthways, Inc. - Common Stock|Q|N|N|100 -HWBK|Hawthorn Bancshares, Inc. - Common Stock|Q|N|N|100 -HWCC|Houston Wire & Cable Company - Common Stock|Q|N|N|100 -HWKN|Hawkins, Inc. - Common Stock|Q|N|N|100 -HYGS|Hydrogenics Corporation - Common Shares|G|N|N|100 -HYLS|First Trust High Yield Long/Short ETF|G|N|N|100 -HYND|WisdomTree BofA Merrill Lynch High Yield Bond Negative Duration Fund|G|N|N|100 -HYZD|WisdomTree BofA Merrill Lynch High Yield Bond Zero Duration Fund|G|N|N|100 -HZNP|Horizon Pharma plc - common stock|Q|N|N|100 -IACI|IAC/InterActiveCorp - Common Stock|Q|N|N|100 -IART|Integra LifeSciences Holdings Corporation - Common Stock|Q|N|N|100 -IBB|iShares Nasdaq Biotechnology Index Fund|G|N|N|100 -IBCA|Intervest Bancshares Corp. - Common Stock|Q|N|N|100 -IBCP|Independent Bank Corporation - Common Stock|Q|N|N|100 -IBKC|IBERIABANK Corporation - Common Stock|Q|N|N|100 -IBKR|Interactive Brokers Group, Inc. - Common Stock|Q|N|N|100 -IBOC|International Bancshares Corporation - Common Stock|Q|N|N|100 -IBTX|Independent Bank Group, Inc - Common Stock|Q|N|N|100 -ICAD|icad inc. - Common Stock|S|N|N|100 -ICBK|County Bancorp, Inc. - Common Stock|G|N|N|100 -ICCC|ImmuCell Corporation - Common Stock|S|N|N|100 -ICEL|Cellular Dynamics International, Inc. - Common Stock|G|N|N|100 -ICFI|ICF International, Inc. - Common Stock|Q|N|N|100 -ICLD|InterCloud Systems, Inc - Common Stock|S|N|N|100 -ICLDW|InterCloud Systems, Inc - Warrant|S|N|N|100 -ICLN|iShares S&P Global Clean Energy Index Fund|G|N|N|100 -ICLR|ICON plc - Ordinary Shares|Q|N|N|100 -ICON|Iconix Brand Group, Inc. - Common Stock|Q|N|N|100 -ICPT|Intercept Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -ICUI|ICU Medical, Inc. - Common Stock|Q|N|N|100 -IDCC|InterDigital, Inc. - Common Stock|Q|N|N|100 -IDRA|Idera Pharmaceuticals, Inc. - Common Stock|S|N|N|100 -IDSA|Industrial Services of America, Inc. - Common Stock|S|N|N|100 -IDSY|I.D. Systems, Inc. - Common Stock|G|N|N|100 -IDTI|Integrated Device Technology, Inc. - Common Stock|Q|N|N|100 -IDXX|IDEXX Laboratories, Inc. - Common Stock|Q|N|N|100 -IEP|Icahn Enterprises L.P. - Depositary units|Q|N|N|100 -IESC|Integrated Electrical Services, Inc. - Common Stock|G|N|N|100 -IEUS|iShares MSCI Europe Small-Cap ETF|G|N|N|100 -IFAS|iShares FTSE EPRA/NAREIT Asia Index Fund|G|N|N|100 -IFEU|iShares FTSE EPRA/NAREIT Europe Index Fund|G|N|N|100 -IFGL|iShares FTSE EPRA/NAREIT Global Real Estate ex-U.S. Index Fund|G|N|N|100 -IFNA|iShares FTSE EPRA/NAREIT North America Index Fund|G|N|N|100 -IFON|InfoSonics Corp - Common Stock|S|N|N|100 -IFV|First Trust Dorsey Wright International Focus 5 ETF|G|N|N|100 -IGLD|Internet Gold Golden Lines Ltd. - Ordinary Shares|Q|N|N|100 -IGOV|iShares S&P/Citigroup International Treasury Bond Fund|G|N|N|100 -IGTE|iGATE Corporation - Common Stock|Q|N|N|100 -III|Information Services Group, Inc. - Common Stock|G|N|N|100 -IIIN|Insteel Industries, Inc. - Common Stock|Q|N|N|100 -IIJI|Internet Initiative Japan, Inc. - ADS represents common stock|Q|N|N|100 -IILG|Interval Leisure Group, Inc. - Common Stock|Q|N|N|100 -IIN|IntriCon Corporation - Common Stock|G|N|N|100 -IIVI|II-VI Incorporated - Common Stock|Q|N|N|100 -IKAN|Ikanos Communications, Inc. - Common Stock|S|N|D|100 -IKGH|Iao Kun Group Holding Company Limited - Ordinary Shares (Cayman Islands)|G|N|N|100 -IKNX|Ikonics Corporation - Common Stock|S|N|N|100 -ILMN|Illumina, Inc. - Common Stock|Q|N|N|100 -IMDZ|Immune Design Corp. - Common Stock|G|N|N|100 -IMGN|ImmunoGen, Inc. - Common Stock|Q|N|N|100 -IMI|Intermolecular, Inc. - Common Stock|Q|N|N|100 -IMKTA|Ingles Markets, Incorporated - Class A Common Stock|Q|N|N|100 -IMMR|Immersion Corporation - Common Stock|Q|N|N|100 -IMMU|Immunomedics, Inc. - Common Stock|G|N|N|100 -IMMY|Imprimis Pharmaceuticals, Inc. - Common Stock|S|N|N|100 -IMNP|Immune Pharmaceuticals Inc. - Common Stock|S|N|N|100 -IMOS|ChipMOS TECHNOLOGIES (Bermuda) LTD. - Common Shares|S|N|N|100 -IMRS|Imris Inc - Common Shares|Q|N|N|100 -INAP|Internap Corporation - Common Stock|Q|N|N|100 -INBK|First Internet Bancorp - Common Stock|S|N|N|100 -INCR|INC Research Holdings, Inc. - Class A Common Stock|Q|N|N|100 -INCY|Incyte Corporation - Common Stock|Q|N|N|100 -INDB|Independent Bank Corp. - Common Stock|Q|N|N|100 -INDY|iShares S&P India Nifty 50 Index Fund|G|N|N|100 -INFA|Informatica Corporation - Common Stock|Q|N|N|100 -INFI|Infinity Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -INFN|Infinera Corporation - Common Stock|Q|N|N|100 -INGN|Inogen, Inc - Common Stock|Q|N|N|100 -ININ|Interactive Intelligence Group, Inc. - Common Stock|Q|N|N|100 -INNL|Innocoll AG - American Depositary Share|G|N|N|100 -INO|Inovio Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -INOD|Innodata Inc. - Common Stock|G|N|N|100 -INPH|Interphase Corporation - Common Stock|S|N|N|100 -INSM|Insmed, Inc. - Common Stock|Q|N|N|100 -INSY|Insys Therapeutics, Inc. - Common Stock|G|N|N|100 -INTC|Intel Corporation - Common Stock|Q|N|N|100 -INTG|The Intergroup Corporation - Common Stock|S|N|N|100 -INTL|INTL FCStone Inc. - Common Stock|Q|N|N|100 -INTLL|INTL FCStone Inc. - 8.5% Senior Notes Due 2020|Q|N|N|100 -INTU|Intuit Inc. - Common Stock|Q|N|N|100 -INTX|Intersections, Inc. - Common Stock|G|N|N|100 -INVE|Identiv, Inc. - Common Stock|S|N|N|100 -INVT|Inventergy Global, Inc. - Common Stock|S|N|D|100 -INWK|InnerWorkings, Inc. - Common Stock|Q|N|N|100 -IOSP|Innospec Inc. - Common Stock|Q|N|N|100 -IPAR|Inter Parfums, Inc. - Common Stock|Q|N|N|100 -IPAS|iPass Inc. - Common Stock|Q|N|N|100 -IPCC|Infinity Property and Casualty Corporation - Common Stock|Q|N|N|100 -IPCI|Intellipharmaceutics International Inc. - Common Stock|S|N|N|100 -IPCM|IPC Healthcare, Inc. - Common Stock|Q|N|N|100 -IPDN|Professional Diversity Network, Inc. - Common Stock|S|N|N|100 -IPGP|IPG Photonics Corporation - Common Stock|Q|N|N|100 -IPHS|Innophos Holdings, Inc. - Common Stock|Q|N|N|100 -IPKW|PowerShares International BuyBack Achievers Portfolio|G|N|N|100 -IPWR|Ideal Power Inc. - Common Stock|S|N|N|100 -IPXL|Impax Laboratories, Inc. - Common Stock|Q|N|N|100 -IQNT|Inteliquent, Inc. - Common Stock|Q|N|N|100 -IRBT|iRobot Corporation - Common Stock|Q|N|N|100 -IRDM|Iridium Communications Inc - Common Stock|Q|N|N|100 -IRDMB|Iridium Communications Inc - 6.75% Series B Cumulative Perpetual Convertible Preferred Stock|Q|N|N|100 -IRDMZ|Iridium Communications Inc - Warrants 02/14/2015|Q|N|N|100 -IRG|Ignite Restaurant Group, Inc. - Common Stock|Q|N|N|100 -IRIX|IRIDEX Corporation - Common Stock|G|N|N|100 -IRMD|iRadimed Corporation - Common Stock|S|N|N|100 -IROQ|IF Bancorp, Inc. - Common Stock|S|N|N|100 -IRWD|Ironwood Pharmaceuticals, Inc. - Class A Common Stock|Q|N|N|100 -ISBC|Investors Bancorp, Inc. - Common Stock|Q|N|N|100 -ISCA|International Speedway Corporation - Class A Common Stock|Q|N|N|100 -ISHG|iShares S&P/Citigroup 1-3 Year International Treasury Bond Fund|G|N|N|100 -ISIG|Insignia Systems, Inc. - Common Stock|S|N|N|100 -ISIL|Intersil Corporation - Class A Common Stock|Q|N|N|100 -ISIS|Isis Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -ISLE|Isle of Capri Casinos, Inc. - Common Stock|Q|N|N|100 -ISM|SLM Corporation - Medium Term Notes, Series A, CPI-Linked Notes due January 16, 2018|G|N|N|100 -ISNS|Image Sensing Systems, Inc. - Common Stock|S|N|N|100 -ISRG|Intuitive Surgical, Inc. - Common Stock|Q|N|N|100 -ISRL|Isramco, Inc. - Common Stock|S|N|N|100 -ISSC|Innovative Solutions and Support, Inc. - Common Stock|Q|N|N|100 -ISSI|Integrated Silicon Solution, Inc. - Common Stock|Q|N|N|100 -ISTR|Investar Holding Corporation - Common Stock|G|N|N|100 -ITCI|Intra-Cellular Therapies Inc. - Common Stock|Q|N|N|100 -ITIC|Investors Title Company - Common Stock|Q|N|N|100 -ITRI|Itron, Inc. - Common Stock|Q|N|N|100 -ITRN|Ituran Location and Control Ltd. - Ordinary Shares|Q|N|N|100 -IVAC|Intevac, Inc. - Common Stock|Q|N|N|100 -IVAN|Ivanhoe Energy, Inc. - Common Shares|S|N|D|100 -IXYS|IXYS Corporation - Common Stock|Q|N|N|100 -JACK|Jack In The Box Inc. - Common Stock|Q|N|N|100 -JACQ|Collabrium Japan Acquisition Corporation - Ordinary Shares|S|N|H|100 -JACQU|Collabrium Japan Acquisition Corporation - Units|S|N|H|100 -JACQW|Collabrium Japan Acquisition Corporation - Warrant|S|N|H|100 -JAKK|JAKKS Pacific, Inc. - Common Stock|Q|N|N|100 -JASN|Jason Industries, Inc. - Common Stock|S|N|N|100 -JASNW|Jason Industries, Inc. - Warrant|S|N|N|100 -JASO|JA Solar Holdings, Co., Ltd. - American depositary shares, each representing five ordinary shares|Q|N|N|100 -JAXB|Jacksonville Bancorp, Inc. - Common Stock (Voting)|S|N|N|100 -JAZZ|Jazz Pharmaceuticals plc - Ordinary Shares|Q|N|N|100 -JBHT|J.B. Hunt Transport Services, Inc. - Common Stock|Q|N|N|100 -JBLU|JetBlue Airways Corporation - Common Stock|Q|N|N|100 -JBSS|John B. Sanfilippo & Son, Inc. - Common Stock|Q|N|N|100 -JCOM|j2 Global, Inc. - Common Stock|Q|N|N|100 -JCS|Communications Systems, Inc. - Common Stock|G|N|N|100 -JCTCF|Jewett-Cameron Trading Company - Common Shares|S|N|N|100 -JD|JD.com, Inc. - American Depositary Shares|Q|N|N|100 -JDSU|JDS Uniphase Corporation - Common Stock|Q|N|N|100 -JGBB|WisdomTree Japan Interest Rate Strategy Fund|G|N|N|100 -JIVE|Jive Software, Inc. - Common Stock|Q|N|N|100 -JJSF|J & J Snack Foods Corp. - Common Stock|Q|N|N|100 -JKHY|Jack Henry & Associates, Inc. - Common Stock|Q|N|N|100 -JMBA|Jamba, Inc. - Common Stock|G|N|N|100 -JOBS|51job, Inc. - American Depositary Shares, each representing two common shares|Q|N|N|100 -JOEZ|Joe's Jeans Inc. - Common Stock|S|N|D|100 -JOUT|Johnson Outdoors Inc. - Class A Common Stock|Q|N|N|100 -JRJC|China Finance Online Co. Limited - American Depositary Shares representing 5 ordinary shares|Q|N|N|100 -JRVR|James River Group Holdings, Ltd. - Common Shares|Q|N|N|100 -JSM|SLM Corporation - 6% Senior Notes due December 15, 2043|G|N|N|100 -JST|Jinpan International Limited - Common Stock|Q|N|N|100 -JTPY|JetPay Corporation - Common Stock|S|N|N|100 -JUNO|Juno Therapeutics, Inc. - Common Stock|Q|N|N|100 -JVA|Coffee Holding Co., Inc. - Common Stock|S|N|N|100 -JXSB|Jacksonville Bancorp Inc. - Common Stock|S|N|N|100 -JYNT|The Joint Corp. - Common Stock|S|N|N|100 -KALU|Kaiser Aluminum Corporation - Common Stock|Q|N|N|100 -KANG|iKang Healthcare Group, Inc. - American Depositary Shares|Q|N|N|100 -KBAL|Kimball International, Inc. - Class B Common Stock|Q|N|N|100 -KBIO|KaloBios Pharmaceuticals, Inc. - Common Stock|G|N|N|100 -KBSF|KBS Fashion Group Limited - Common Stock|S|N|N|100 -KCAP|KCAP Financial, Inc. - common stock|Q|N|N|100 -KCLI|Kansas City Life Insurance Company - Common Stock|S|N|N|100 -KE|Kimball Electronics, Inc. - Common Stock|Q|N|N|100 -KELYA|Kelly Services, Inc. - Class A Common Stock|Q|N|N|100 -KELYB|Kelly Services, Inc. - Class B Common Stock|Q|N|N|100 -KEQU|Kewaunee Scientific Corporation - Common Stock|G|N|N|100 -KERX|Keryx Biopharmaceuticals, Inc. - Common Stock|S|N|N|100 -KEYW|The KEYW Holding Corporation - Common Stock|Q|N|N|100 -KFFB|Kentucky First Federal Bancorp - Common Stock|G|N|N|100 -KFRC|Kforce, Inc. - Common Stock|Q|N|N|100 -KFX|Kofax Limited - Common Shares|Q|N|N|100 -KGJI|Kingold Jewelry Inc. - Common Stock|S|N|N|100 -KIN|Kindred Biosciences, Inc. - Common Stock|S|N|N|100 -KINS|Kingstone Companies, Inc - Common Stock|S|N|N|100 -KIRK|Kirkland's, Inc. - Common Stock|Q|N|N|100 -KITE|Kite Pharma, Inc. - Common Stock|Q|N|N|100 -KLAC|KLA-Tencor Corporation - Common Stock|Q|N|N|100 -KLIC|Kulicke and Soffa Industries, Inc. - Common Stock|Q|N|N|100 -KLXI|KLX Inc. - Common Stock|Q|N|N|100 -KMDA|Kamada Ltd. - Ordinary Shares|Q|N|N|100 -KNDI|Kandi Technologies Group, Inc. - Common Stock|Q|N|N|100 -KONA|Kona Grill, Inc. - Common Stock|G|N|N|100 -KONE|Kingtone Wirelessinfo Solution Holding Ltd - American Depositary Shares|S|N|N|100 -KOOL|Cesca Therapeutics Inc. - Common Stock|S|N|N|100 -KOPN|Kopin Corporation - Common Stock|Q|N|N|100 -KOSS|Koss Corporation - Common Stock|S|N|N|100 -KPTI|Karyopharm Therapeutics Inc. - Common Stock|Q|N|N|100 -KRFT|Kraft Foods Group, Inc. - Common Stock|Q|N|N|100 -KRNY|Kearny Financial - Common Stock|Q|N|N|100 -KTCC|Key Tronic Corporation - Common Stock|G|N|N|100 -KTEC|Key Technology, Inc. - Common Stock|G|N|N|100 -KTOS|Kratos Defense & Security Solutions, Inc. - Common Stock|Q|N|N|100 -KTWO|K2M Group Holdings, Inc. - Common Stock|Q|N|N|100 -KUTV|Ku6 Media Co., Ltd. - American Depositary Shares, each representing 100 ordinary shares|G|N|N|100 -KVHI|KVH Industries, Inc. - Common Stock|Q|N|N|100 -KWEB|KraneShares CSI China Internet ETF|G|N|N|100 -KYTH|Kythera Biopharmaceuticals, Inc. - Common Stock|Q|N|N|100 -KZ|KongZhong Corporation - American Depositary Shares, each representing 40 ordinary shares|Q|N|N|100 -LABC|Louisiana Bancorp, Inc. - Common Stock|G|N|N|100 -LABL|Multi-Color Corporation - Common Stock|Q|N|N|100 -LACO|Lakes Entertainment, Inc. - Common Stock|G|N|N|100 -LAKE|Lakeland Industries, Inc. - Common Stock|G|N|N|100 -LALT|PowerShares Actively Managed Exchange-Traded Fund Trust - PowerShares Multi-Strategy Alternative Portfolio|G|N|N|100 -LAMR|Lamar Advertising Company - Class A Common Stock|Q|N|N|100 -LANC|Lancaster Colony Corporation - Common Stock|Q|N|N|100 -LAND|Gladstone Land Corporation - Common Stock|G|N|N|100 -LARK|Landmark Bancorp Inc. - Common Stock|G|N|N|100 -LAWS|Lawson Products, Inc. - Common Stock|Q|N|N|100 -LAYN|Layne Christensen Company - Common Stock|Q|N|N|100 -LBAI|Lakeland Bancorp, Inc. - Common Stock|Q|N|N|100 -LBIX|Leading Brands Inc - Common Shares|S|N|N|100 -LBRDA|Liberty Broadband Corporation - Class A Common Stock|Q|N|N|100 -LBRDK|Liberty Broadband Corporation - Class C Common Stock|Q|N|N|100 -LBTYA|Liberty Global plc - Class A Ordinary Shares|Q|N|N|100 -LBTYB|Liberty Global plc - Class B Ordinary Shares|Q|N|N|100 -LBTYK|Liberty Global plc - Class C Ordinary Shares|Q|N|N|100 -LCNB|LCNB Corporation - Common Stock|S|N|N|100 -LCUT|Lifetime Brands, Inc. - Common Stock|Q|N|N|100 -LDRH|LDR Holding Corporation - Common Stock|Q|N|N|100 -LDRI|PowerShares LadderRite 0-5 Year Corporate Bond Portfolio|G|N|N|100 -LE|Lands' End, Inc. - Common Stock|S|N|N|100 -LECO|Lincoln Electric Holdings, Inc. - Common Shares|Q|N|N|100 -LEDS|SemiLEDS Corporation - Common Stock|Q|N|D|100 -LEVY|Levy Acquisition Corp. - Common Stock|S|N|N|100 -LEVYU|Levy Acquisition Corp. - Unit|S|N|N|100 -LEVYW|Levy Acquisition Corp. - Warrants|S|N|N|100 -LFUS|Littelfuse, Inc. - Common Stock|Q|N|N|100 -LFVN|Lifevantage Corporation - Common Stock|S|N|N|100 -LGCY|Legacy Reserves LP - Units Representing Limited Partner Interests|Q|N|N|100 -LGCYO|Legacy Reserves LP - 8.00% Series B Fixed-to-Floating Rate Cumulative Redeemable Perpetual Preferred Units|Q|N|N|100 -LGCYP|Legacy Reserves LP - 8% Series A Fixed-to-Floating Rate Cumulative Redeemable Perpetual Preferred Units|Q|N|N|100 -LGIH|LGI Homes, Inc. - Common Stock|Q|N|N|100 -LGND|Ligand Pharmaceuticals Incorporated - Common Stock|G|N|N|100 -LHCG|LHC Group - common stock|Q|N|N|100 -LIME|Lime Energy Co. - Common Stock|S|N|N|100 -LINC|Lincoln Educational Services Corporation - Common Stock|Q|N|N|100 -LINE|Linn Energy, LLC - Common Units representing limited liability company interests|Q|N|N|100 -LION|Fidelity Southern Corporation - Common Stock|Q|N|N|100 -LIOX|Lionbridge Technologies, Inc. - Common Stock|Q|N|N|100 -LIQD|Liquid Holdings Group, Inc. - Common Stock|G|N|N|100 -LIVE|LiveDeal, Inc. - Common Stock|S|N|N|100 -LJPC|La Jolla Pharmaceutical Company - Common Stock|S|N|N|100 -LKFN|Lakeland Financial Corporation - Common Stock|Q|N|N|100 -LKQ|LKQ Corporation - Common Stock|Q|N|N|100 -LLEX|Lilis Energy, Inc. - Common Stock|G|N|H|100 -LLNW|Limelight Networks, Inc. - Common Stock|Q|N|N|100 -LLTC|Linear Technology Corporation - Common Stock|Q|N|N|100 -LMAT|LeMaitre Vascular, Inc. - Common Stock|G|N|N|100 -LMBS|First Trust Low Duration Mortgage Opportunities ETF|G|N|N|100 -LMCA|Liberty Media Corporation - Series A Common Stock|Q|N|N|100 -LMCB|Liberty Media Corporation - Series B Common Stock|Q|N|N|100 -LMCK|Liberty Media Corporation - Series C Common Stock|Q|N|N|100 -LMIA|LMI Aerospace, Inc. - Common Stock|Q|N|N|100 -LMNR|Limoneira Co - Common Stock|Q|N|N|100 -LMNS|Lumenis Ltd. - Class B Ordinary Shares|Q|N|N|100 -LMNX|Luminex Corporation - Common Stock|Q|N|N|100 -LMOS|Lumos Networks Corp. - Common Stock|Q|N|N|100 -LMRK|Landmark Infrastructure Partners LP - Common Units|G|N|N|100 -LNBB|LNB Bancorp, Inc. - Common Stock|G|N|N|100 -LNCE|Snyder's-Lance, Inc. - Common Stock|Q|N|N|100 -LNCO|Linn Co, LLC - Common Shares|Q|N|N|100 -LNDC|Landec Corporation - Common Stock|Q|N|N|100 -LOAN|Manhattan Bridge Capital, Inc - Common Stock|S|N|N|100 -LOCM|Local Corporation - Common Stock|S|N|N|100 -LOCO|El Pollo Loco Holdings, Inc. - Common Stock|Q|N|N|100 -LOGI|Logitech International S.A. - Registered Shares|Q|N|N|100 -LOGM|LogMein, Inc. - Common Stock|Q|N|N|100 -LOJN|LoJack Corporation - Common Stock|Q|N|N|100 -LONG|eLong, Inc. - American Depositary Shares representing 2 Ordinary Shares|Q|N|N|100 -LOOK|LookSmart, Ltd. - Common Stock|S|N|N|100 -LOPE|Grand Canyon Education, Inc. - Common Stock|Q|N|N|100 -LORL|Loral Space and Communications, Inc. - Common Stock|Q|N|N|100 -LOXO|Loxo Oncology, Inc. - Common Stock|G|N|N|100 -LPCN|Lipocine Inc. - Common Stock|S|N|N|100 -LPHI|Life Partners Holdings Inc - Common Stock|Q|N|N|100 -LPLA|LPL Financial Holdings Inc. - Common Stock|Q|N|N|100 -LPNT|LifePoint Hospitals, Inc. - Common Stock|Q|N|N|100 -LPSB|LaPorte Bancorp, Inc. - Common Stock|S|N|N|100 -LPSN|LivePerson, Inc. - Common Stock|Q|N|N|100 -LPTH|LightPath Technologies, Inc. - Class A Common Stock|S|N|N|100 -LPTN|Lpath, Inc. - Class A Common Stock|S|N|N|100 -LQDT|Liquidity Services, Inc. - Common Stock|Q|N|N|100 -LRAD|LRAD Corporation - Common Stock|S|N|N|100 -LRCX|Lam Research Corporation - Common Stock|Q|N|N|100 -LSBK|Lake Shore Bancorp, Inc. - Common Stock|G|N|N|100 -LSCC|Lattice Semiconductor Corporation - Common Stock|Q|N|N|100 -LSTR|Landstar System, Inc. - Common Stock|Q|N|N|100 -LTBR|Lightbridge Corporation - Common Stock|S|N|N|100 -LTRE|Learning Tree International, Inc. - Common Stock|G|N|N|100 -LTRPA|Liberty TripAdvisor Holdings, Inc. - Series A Common Stock|Q|N|N|100 -LTRPB|Liberty TripAdvisor Holdings, Inc. - Series B Common Stock|Q|N|N|100 -LTRX|Lantronix, Inc. - Common Stock|S|N|N|100 -LTXB|LegacyTexas Financial Group, Inc. - Common Stock|Q|N|N|100 -LULU|lululemon athletica inc. - Common Stock|Q|N|N|100 -LUNA|Luna Innovations Incorporated - Common Stock|S|N|N|100 -LVNTA|Liberty Interactive Corporation - Series A Liberty Ventures Common Stock|Q|N|N|100 -LVNTB|Liberty Interactive Corporation - Series B Liberty Ventures Common Stock|Q|N|N|100 -LWAY|Lifeway Foods, Inc. - Common Stock|G|N|N|100 -LXRX|Lexicon Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -LYTS|LSI Industries Inc. - Common Stock|Q|N|N|100 -MACK|Merrimack Pharmaceuticals, Inc. - Common Stock|G|N|N|100 -MAG|Magnetek, Inc. - Common Stock|G|N|N|100 -MAGS|Magal Security Systems Ltd. - Ordinary Shares|G|N|N|100 -MAMS|MAM Software Group, Inc. - Common Stock|S|N|N|100 -MANH|Manhattan Associates, Inc. - Common Stock|Q|N|N|100 -MANT|ManTech International Corporation - Class A Common Stock|Q|N|N|100 -MAR|Marriott International - Class A Common Stock|Q|N|N|100 -MARA|Marathon Patent Group, Inc. - Common Stock|S|N|N|100 -MARK|Remark Media, Inc. - Common Stock|S|N|N|100 -MARPS|Marine Petroleum Trust - Units of Beneficial Interest|S|N|N|100 -MASI|Masimo Corporation - Common Stock|Q|N|N|100 -MAT|Mattel, Inc. - Common Stock|Q|N|N|100 -MATR|Mattersight Corporation - Common Stock|G|N|N|100 -MATW|Matthews International Corporation - Class A Common Stock|Q|N|N|100 -MAYS|J. W. Mays, Inc. - Common Stock|S|N|N|100 -MBCN|Middlefield Banc Corp. - Common Stock|S|N|N|100 -MBFI|MB Financial Inc. - Common Stock|Q|N|N|100 -MBFIP|MB Financial Inc. - Perpetual Non-Cumulative Preferred Stock, Series A|Q|N|N|100 -MBII|Marrone Bio Innovations, Inc. - Common Stock|G|N|E|100 -MBLX|Metabolix, Inc. - Common Stock|S|N|D|100 -MBRG|Middleburg Financial Corporation - Common Stock|S|N|N|100 -MBSD|FlexShares Disciplined Duration MBS Index Fund|G|N|N|100 -MBTF|M B T Financial Corp - Common Stock|Q|N|N|100 -MBUU|Malibu Boats, Inc. - Common Stock|G|N|N|100 -MBVT|Merchants Bancshares, Inc. - Common Stock|Q|N|N|100 -MBWM|Mercantile Bank Corporation - Common Stock|Q|N|N|100 -MCBC|Macatawa Bank Corporation - Common Stock|Q|N|N|100 -MCBK|Madison County Financial, Inc. - Common Stock|S|N|N|100 -MCEP|Mid-Con Energy Partners, LP - Common Units|Q|N|N|100 -MCGC|MCG Capital Corporation - Closed End Fund|Q|N|N|100 -MCHP|Microchip Technology Incorporated - Common Stock|Q|N|N|100 -MCHX|Marchex, Inc. - Class B Common Stock|Q|N|N|100 -MCOX|Mecox Lane Limited - American Depositary Shares|Q|N|N|100 -MCRI|Monarch Casino & Resort, Inc. - Common Stock|Q|N|N|100 -MCRL|Micrel, Incorporated - Common Stock|Q|N|N|100 -MCUR|Macrocure Ltd. - Ordinary Shares|G|N|N|100 -MDAS|MedAssets, Inc. - Common Stock|Q|N|N|100 -MDCA|MDC Partners Inc. - Class A Subordinate Voting Shares|Q|N|N|100 -MDCO|The Medicines Company - Common Stock|Q|N|N|100 -MDIV|First Trust Exchange-Traded Fund VI Multi-Asset Diversified Income Index Fund|G|N|N|100 -MDLZ|Mondelez International, Inc. - Class A Common Stock|Q|N|N|100 -MDM|Mountain Province Diamonds Inc. - Common Stock|Q|N|N|100 -MDRX|Allscripts Healthcare Solutions, Inc. - common stock|Q|N|N|100 -MDSO|Medidata Solutions, Inc. - Common Stock|Q|N|N|100 -MDSY|ModSys International Ltd. - Ordinary Shares|G|N|N|100 -MDVN|Medivation, Inc. - Common Stock|Q|N|N|100 -MDVXU|Medovex Corp. - Units|S|N|N|100 -MDWD|MediWound Ltd. - Ordinary Shares|G|N|N|100 -MDXG|MiMedx Group, Inc - Common Stock|S|N|N|100 -MEET|MeetMe, Inc. - Common Stock|S|N|N|100 -MEIL|Methes Energies International Ltd - Common Stock|S|N|N|100 -MEILW|Methes Energies International Ltd - Class A Warrants|S|N|N|100 -MEILZ|Methes Energies International Ltd - Class B Warrants|S|N|N|100 -MEIP|MEI Pharma, Inc. - Common Stock|S|N|N|100 -MELA|MELA Sciences, Inc - Common Stock|S|N|N|100 -MELI|MercadoLibre, Inc. - Common Stock|Q|N|N|100 -MELR|Melrose Bancorp, Inc. - Common Stock|S|N|N|100 -MEMP|Memorial Production Partners LP - Common Units|Q|N|N|100 -MENT|Mentor Graphics Corporation - Common Stock|Q|N|N|100 -MEOH|Methanex Corporation - Common Stock|Q|N|N|100 -MERC|Mercer International Inc. - Common Stock|Q|N|N|100 -MERU|Meru Networks, Inc. - Common Stock|G|N|N|100 -METR|Metro Bancorp, Inc - Common Stock|Q|N|N|100 -MFI|MicroFinancial Incorporated - Common Stock|G|N|N|100 -MFLX|Multi-Fineline Electronix, Inc. - Common Stock|Q|N|N|100 -MFNC|Mackinac Financial Corporation - Common Stock|S|N|N|100 -MFRI|MFRI, Inc. - Common Stock|G|N|N|100 -MFRM|Mattress Firm Holding Corp. - Common Stock|Q|N|N|100 -MFSF|MutualFirst Financial Inc. - Common Stock|G|N|N|100 -MGCD|MGC Diagnostics Corporation - Common Stock|S|N|N|100 -MGEE|MGE Energy Inc. - Common Stock|Q|N|N|100 -MGI|Moneygram International, Inc. - Common Stock|Q|N|N|100 -MGIC|Magic Software Enterprises Ltd. - Ordinary Shares|Q|N|N|100 -MGLN|Magellan Health, Inc. - Common Stock|Q|N|N|100 -MGNX|MacroGenics, Inc. - Common Stock|Q|N|N|100 -MGPI|MGP Ingredients, Inc. - Common Stock|Q|N|N|100 -MGRC|McGrath RentCorp - Common Stock|Q|N|N|100 -MGYR|Magyar Bancorp, Inc. - Common Stock|G|N|N|100 -MHGC|Morgans Hotel Group Co. - Common Stock|G|N|N|100 -MHLD|Maiden Holdings, Ltd. - Common Stock|Q|N|N|100 -MHLDO|Maiden Holdings, Ltd. - 7.25% Mandatory Convertible Preference Shares, Series B|Q|N|N|100 -MICT|Micronet Enertec Technologies, Inc. - Common Stock|S|N|N|100 -MICTW|Micronet Enertec Technologies, Inc. - Warrant|S|N|N|100 -MIDD|The Middleby Corporation - Common Stock|Q|N|N|100 -MIFI|Novatel Wireless, Inc. - Common Stock|Q|N|N|100 -MIK|The Michaels Companies, Inc. - Common Stock|Q|N|N|100 -MIND|Mitcham Industries, Inc. - Common Stock|Q|N|N|100 -MINI|Mobile Mini, Inc. - Common Stock|Q|N|N|100 -MITK|Mitek Systems, Inc. - Common Stock|S|N|N|100 -MITL|Mitel Networks Corporation - Common Shares|Q|N|N|100 -MKSI|MKS Instruments, Inc. - Common Stock|Q|N|N|100 -MKTO|Marketo, Inc. - Common Stock|Q|N|N|100 -MKTX|MarketAxess Holdings, Inc. - Common Stock|Q|N|N|100 -MLAB|Mesa Laboratories, Inc. - Common Stock|Q|N|N|100 -MLHR|Herman Miller, Inc. - Common Stock|Q|N|N|100 -MLNK|ModusLink Global Solutions, Inc - Common Stock|Q|N|N|100 -MLNX|Mellanox Technologies, Ltd. - Ordinary Shares|Q|N|N|100 -MLVF|Malvern Bancorp, Inc. - Common Stock|G|N|N|100 -MMAC|MMA Capital Management, LLC - Common Stock|S|N|N|100 -MMLP|Martin Midstream Partners L.P. - Common Units Representing Limited Partnership Interests|Q|N|N|100 -MMSI|Merit Medical Systems, Inc. - Common Stock|Q|N|N|100 -MMYT|MakeMyTrip Limited - Ordinary Shares|Q|N|N|100 -MNDO|MIND C.T.I. Ltd. - Ordinary Shares|G|N|N|100 -MNGA|MagneGas Corporation - Common Stcok|S|N|D|100 -MNKD|MannKind Corporation - Common Stock|G|N|N|100 -MNOV|MediciNova, Inc. - Common Stock|G|N|N|100 -MNRK|Monarch Financial Holdings, Inc. - Common Stock|S|N|N|100 -MNRO|Monro Muffler Brake, Inc. - Common Stock|Q|N|N|100 -MNST|Monster Beverage Corporation - Common Stock|Q|N|N|100 -MNTA|Momenta Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -MNTX|Manitex International, Inc. - common stock|S|N|N|100 -MOBI|Sky-mobi Limited - American Depositary Shares|G|N|N|100 -MOBL|MobileIron, Inc. - Common Stock|Q|N|N|100 -MOCO|MOCON, Inc. - Common Stock|G|N|N|100 -MOFG|MidWestOne Financial Group, Inc. - Common Stock|Q|N|N|100 -MOKO|MOKO Social Media Ltd. - American Depositary Shares|G|N|N|100 -MOLG|MOL Global, Inc. - American Depositary Shares|Q|N|N|100 -MOMO|Momo Inc. - American Depositary Shares|Q|N|N|100 -MORN|Morningstar, Inc. - Common Stock|Q|N|N|100 -MOSY|MoSys, Inc. - Common Stock|Q|N|N|100 -MPAA|Motorcar Parts of America, Inc. - Common Stock|Q|N|N|100 -MPB|Mid Penn Bancorp - Common Stock|G|N|N|100 -MPEL|Melco Crown Entertainment Limited - American depositary shares each representing three ordinary shares|Q|N|N|100 -MPET|Magellan Petroleum Corporation - Common Stock|S|N|N|100 -MPWR|Monolithic Power Systems, Inc. - Common Stock|Q|N|N|100 -MRCC|Monroe Capital Corporation - Common Stock|Q|N|N|100 -MRCY|Mercury Systems Inc - Common Stock|Q|N|N|100 -MRD|Memorial Resource Development Corp. - Common Stock|Q|N|N|100 -MRGE|Merge Healthcare Incorporated. - Common Stock|Q|N|N|100 -MRKT|Markit Ltd. - Common Shares|Q|N|N|100 -MRLN|Marlin Business Services Corp. - Common Stock|Q|N|N|100 -MRNS|Marinus Pharmaceuticals, Inc. - Common Stock|G|N|N|100 -MRTN|Marten Transport, Ltd. - Common Stock|Q|N|N|100 -MRTX|Mirati Therapeutics, Inc. - Common Stock|S|N|N|100 -MRVC|MRV Communications, Inc. - Common Stock|S|N|N|100 -MRVL|Marvell Technology Group Ltd. - Common Stock|Q|N|N|100 -MSBF|MSB Financial Corp. - common stock|G|N|N|100 -MSCC|Microsemi Corporation - Common Stock|Q|N|N|100 -MSEX|Middlesex Water Company - Common Stock|Q|N|N|100 -MSFG|MainSource Financial Group, Inc. - Common Stock|Q|N|N|100 -MSFT|Microsoft Corporation - Common Stock|Q|N|N|100 -MSG|The Madison Square Garden Company - Class A Common Stock|Q|N|N|100 -MSLI|Merus Labs International Inc. - Common Stock|S|N|N|100 -MSON|MISONIX, Inc. - Common Stock|G|N|N|100 -MSTR|MicroStrategy Incorporated - Class A Common Stock|Q|N|N|100 -MTBC|Medical Transcription Billing, Corp. - Common Stock|S|N|N|100 -MTEX|Mannatech, Incorporated - Common Stock|Q|N|N|100 -MTGE|American Capital Mortgage Investment Corp. - Common Stock|Q|N|N|100 -MTGEP|American Capital Mortgage Investment Corp. - 8.125% Series A Cumulative Redeemable Preferred Stock|Q|N|N|100 -MTLS|Materialise NV - American Depositary Shares|Q|N|N|100 -MTRX|Matrix Service Company - Common Stock|Q|N|N|100 -MTSC|MTS Systems Corporation - Common Stock|Q|N|N|100 -MTSI|M/A-COM Technology Solutions Holdings, Inc. - Common Stock|Q|N|N|100 -MTSL|MER Telemanagement Solutions Ltd. - Ordinary Shares|S|N|N|100 -MTSN|Mattson Technology, Inc. - Common Stock|Q|N|N|100 -MU|Micron Technology, Inc. - Common Stock|Q|N|N|100 -MULT|AdvisorShares Sunrise Global Multi-Strategy ETF|G|N|N|100 -MVIS|Microvision, Inc. - Common Stock|G|N|N|100 -MWIV|MWI Veterinary Supply, Inc. - common stock|Q|N|N|100 -MXIM|Maxim Integrated Products, Inc. - Common Stock|Q|N|N|100 -MXWL|Maxwell Technologies, Inc. - Common Stock|Q|N|N|100 -MYGN|Myriad Genetics, Inc. - Common Stock|Q|N|N|100 -MYL|Mylan Inc. - Common Stock|Q|N|N|100 -MYOS|MYOS Corporation - Common Stock|S|N|N|100 -MYRG|MYR Group, Inc. - Common Stock|Q|N|N|100 -MZOR|Mazor Robotics Ltd. - American Depositary Shares|G|N|N|100 -NAII|Natural Alternatives International, Inc. - Common Stock|G|N|N|100 -NAME|Rightside Group, Ltd. - Common Stock|Q|N|N|100 -NANO|Nanometrics Incorporated - Common Stock|Q|N|N|100 -NATH|Nathan's Famous, Inc. - Common Stock|Q|N|N|100 -NATI|National Instruments Corporation - Common Stock|Q|N|N|100 -NATL|National Interstate Corporation - Common Stock|Q|N|N|100 -NATR|Nature's Sunshine Products, Inc. - Common Stock|S|N|N|100 -NAUH|National American University Holdings, Inc. - Common Stock|G|N|N|100 -NAVG|The Navigators Group, Inc. - Common Stock|Q|N|N|100 -NAVI|Navient Corporation - Common Stock|Q|N|N|100 -NBBC|NewBridge Bancorp - Common Stock|Q|N|N|100 -NBIX|Neurocrine Biosciences, Inc. - Common Stock|Q|N|N|100 -NBN|Northeast Bancorp - Common Stock|G|N|N|100 -NBS|Neostem, Inc. - Common Stock|S|N|N|100 -NBTB|NBT Bancorp Inc. - Common Stock|Q|N|N|100 -NBTF|NB&T FINANCIAL GROUP INC - Common Stock|S|N|N|100 -NCIT|NCI, Inc. - Class A Common Stock|Q|N|N|100 -NCLH|Norwegian Cruise Line Holdings Ltd. - Ordinary Shares|Q|N|N|100 -NCMI|National CineMedia, Inc. - Common Stock|Q|N|N|100 -NCTY|The9 Limited - American Depository Shares representing one ordinary share|Q|N|N|100 -NDAQ|The NASDAQ OMX Group, Inc. - Common Stock|Q|N|N|100 -NDLS|Noodles & Company - Common Stock|Q|N|N|100 -NDRM|NeuroDerm Ltd. - Ordinary Shares|G|N|N|100 -NDSN|Nordson Corporation - Common Stock|Q|N|N|100 -NECB|Northeast Community Bancorp, Inc. - Common Stock|G|N|N|100 -NEO|NeoGenomics, Inc. - Common Stock|S|N|N|100 -NEOG|Neogen Corporation - Common Stock|Q|N|N|100 -NEON|Neonode Inc. - Common Stock|S|N|N|100 -NEOT|Neothetics, Inc. - Common Stock|G|N|N|100 -NEPT|Neptune Technologies & Bioresources Inc - Ordinary Shares|S|N|N|100 -NERV|Minerva Neurosciences, Inc - Common Stock|G|N|N|100 -NETE|Net Element, Inc. - Common Stock|S|N|N|100 -NEWP|Newport Corporation - Common Stock|Q|N|N|100 -NEWS|NewStar Financial, Inc. - Common Stock|Q|N|N|100 -NEWT|Newtek Business Services Corp. - Common Stock|S|N|N|100 -NFBK|Northfield Bancorp, Inc. - Common Stock|Q|N|N|100 -NFEC|NF Energy Saving Corporation - Common Stock|S|N|N|100 -NFLX|Netflix, Inc. - Common Stock|Q|N|N|100 -NGHC|National General Holdings Corp - Common Stock|G|N|N|100 -NGHCP|National General Holdings Corp - 7.50% Non-Cumulative Preferred Stock, Series A|G|N|N|100 -NHTB|New Hampshire Thrift Bancshares, Inc. - Common Stock|G|N|N|100 -NICE|NICE-Systems Limited - American Depositary Shares each representing one Ordinary Share|Q|N|N|100 -NICK|Nicholas Financial, Inc. - Common Stock|Q|N|N|100 -NILE|Blue Nile, Inc. - Common Stock|Q|N|N|100 -NKSH|National Bankshares, Inc. - Common Stock|S|N|N|100 -NKTR|Nektar Therapeutics - Common Stock|Q|N|N|100 -NLNK|NewLink Genetics Corporation - Common Stock|G|N|N|100 -NLST|Netlist, Inc. - Common Stock|G|N|D|100 -NMIH|NMI Holdings Inc - Common Stock|G|N|N|100 -NMRX|Numerex Corp. - Class A Common Stock|Q|N|N|100 -NNBR|NN, Inc. - Common Stock|Q|N|N|100 -NPBC|National Penn Bancshares, Inc. - Common Stock|Q|N|N|100 -NPSP|NPS Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -NRCIA|National Research Corporation - Class A Common Stock|Q|N|N|100 -NRCIB|National Research Corporation - Common Stock|Q|N|N|100 -NRIM|Northrim BanCorp Inc - Common Stock|Q|N|N|100 -NRX|NephroGenex, Inc. - Common Stock|S|N|N|100 -NSEC|National Security Group, Inc. - Common Stock|G|N|N|100 -NSIT|Insight Enterprises, Inc. - Common Stock|Q|N|N|100 -NSPH|Nanosphere, Inc. - Common Stock|S|N|D|100 -NSSC|NAPCO Security Technologies, Inc. - Common Stock|Q|N|N|100 -NSTG|NanoString Technologies, Inc. - Common Stock|G|N|N|100 -NSYS|Nortech Systems Incorporated - Common Stock|S|N|N|100 -NTAP|NetApp, Inc. - Common Stock|Q|N|N|100 -NTCT|NetScout Systems, Inc. - Common Stock|Q|N|N|100 -NTES|NetEase, Inc. - American Depositary Shares, each representing 25 ordinary shares|Q|N|N|100 -NTGR|NETGEAR, Inc. - Common Stock|Q|N|N|100 -NTIC|Northern Technologies International Corporation - Common Stock|G|N|N|100 -NTK|Nortek Inc. - Common Stock|Q|N|N|100 -NTLS|NTELOS Holdings Corp. - Common Stock|Q|N|N|100 -NTRI|NutriSystem Inc - Common Stock|Q|N|N|100 -NTRS|Northern Trust Corporation - Common Stock|Q|N|N|100 -NTRSP|Northern Trust Corporation - Depository Shares|Q|N|N|100 -NTWK|NetSol Technologies Inc. - Common Stock|S|N|N|100 -NUAN|Nuance Communications, Inc. - Common Stock|Q|N|N|100 -NURO|NeuroMetrix, Inc. - Common Stock|S|N|N|100 -NUTR|Nutraceutical International Corporation - Common Stock|Q|N|N|100 -NUVA|NuVasive, Inc. - Common Stock|Q|N|N|100 -NVAX|Novavax, Inc. - Common Stock|Q|N|N|100 -NVCN|Neovasc Inc. - Common Shares|S|N|N|100 -NVDA|NVIDIA Corporation - Common Stock|Q|N|N|100 -NVDQ|Novadaq Technologies Inc - Common Shares|G|N|N|100 -NVEC|NVE Corporation - Common Stock|S|N|N|100 -NVEE|NV5 Holdings, Inc. - Common Stock|S|N|N|100 -NVEEW|NV5 Holdings, Inc. - Warrant|S|N|N|100 -NVFY|Nova Lifestyle, Inc - Common Stock|G|N|N|100 -NVGN|Novogen Limited - American Depositary Shares each representing twenty five Ordinary Shares|S|N|D|100 -NVMI|Nova Measuring Instruments Ltd. - Ordinary Shares|Q|N|N|100 -NVSL|Naugatuck Valley Financial Corporation - Common Stock|G|N|N|100 -NWBI|Northwest Bancshares, Inc. - Common Stock|Q|N|N|100 -NWBO|Northwest Biotherapeutics, Inc. - Common Stock|S|N|N|100 -NWBOW|Northwest Biotherapeutics, Inc. - Warrant|S|N|N|100 -NWFL|Norwood Financial Corp. - Common Stock|G|N|N|100 -NWLI|National Western Life Insurance Company - Class A Common Stock|Q|N|N|100 -NWPX|Northwest Pipe Company - Common Stock|Q|N|N|100 -NWS|News Corporation - Class B Common Stock|Q|N|N|100 -NWSA|News Corporation - Class A Common Stock|Q|N|N|100 -NXPI|NXP Semiconductors N.V. - Common Stock|Q|N|N|100 -NXST|Nexstar Broadcasting Group, Inc. - Class A Common Stock|Q|N|N|100 -NXTD|NXT-ID Inc. - Common Stock|S|N|N|100 -NXTDW|NXT-ID Inc. - Warrant|S|N|N|100 -NXTM|NxStage Medical, Inc. - Common Stock|Q|N|N|100 -NYMT|New York Mortgage Trust, Inc. - Common Stock|Q|N|N|100 -NYMTP|New York Mortgage Trust, Inc. - 7.75% Series B Cumulative Redeemable Preferred Stock|S|N|N|100 -NYMX|Nymox Pharmaceutical Corporation - Common Stock|S|N|D|100 -NYNY|Empire Resorts, Inc. - Common Stock|G|N|N|100 -OBAS|Optibase Ltd. - Ordinary Shares|G|N|N|100 -OBCI|Ocean Bio-Chem, Inc. - Common Stock|S|N|N|100 -OCC|Optical Cable Corporation - Common Stock|G|N|N|100 -OCFC|OceanFirst Financial Corp. - Common Stock|Q|N|N|100 -OCLR|Oclaro, Inc. - Common Stock|Q|N|N|100 -OCLS|Oculus Innovative Sciences, Inc. - Common Stock|S|N|N|100 -OCLSW|Oculus Innovative Sciences, Inc. - Warrants|S|N|N|100 -OCRX|Ocera Therapeutics, Inc. - Common Stock|G|N|N|100 -OCUL|Ocular Therapeutix, Inc. - Common Stock|G|N|N|100 -ODFL|Old Dominion Freight Line, Inc. - Common Stock|Q|N|N|100 -ODP|Office Depot, Inc. - Common Stock|Q|N|N|100 -OFED|Oconee Federal Financial Corp. - Common Stock|S|N|N|100 -OFIX|Orthofix International N.V. - Common Stock|Q|N|E|100 -OFLX|Omega Flex, Inc. - Common Stock|G|N|N|100 -OFS|OFS Capital Corporation - Common Stock|Q|N|N|100 -OGXI|OncoGenex Pharmaceuticals Inc. - Common Shares|S|N|N|100 -OHAI|OHA Investment Corporation - Closed End Fund|Q|N|N|100 -OHGI|One Horizon Group, Inc. - Common Stock|S|N|N|100 -OHRP|Ohr Pharmaceuticals, Inc. - Common Stock|S|N|N|100 -OIIM|O2Micro International Limited - Ordinary Shares each 50 shares of which are represented by an American Depositary Share|Q|N|N|100 -OKSB|Southwest Bancorp, Inc. - Common Stock|Q|N|N|100 -OLBK|Old Line Bancshares, Inc. - Common Stock|S|N|N|100 -OLED|Universal Display Corporation - Common Stock|Q|N|N|100 -OMAB|Grupo Aeroportuario del Centro Norte S.A.B. de C.V. - American Depositary Shares each representing 8 Series B shares|Q|N|N|100 -OMCL|Omnicell, Inc. - Common Stock|Q|N|N|100 -OMED|OncoMed Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -OMER|Omeros Corporation - Common Stock|G|N|N|100 -OMEX|Odyssey Marine Exploration, Inc. - Common Stock|S|N|N|100 -ONB|Old National Bancorp - Common Stock|Q|N|N|100 -ONCY|Oncolytics Biotech, Inc. - Common Shares|S|N|D|100 -ONEQ|Fidelity Nasdaq Composite Index Tracking Stock|G|N|N|100 -ONFC|Oneida Financial Corp. - Common Stock|G|N|N|100 -ONNN|ON Semiconductor Corporation - Common Stock|Q|N|N|100 -ONTX|Onconova Therapeutics, Inc. - Common Stock|Q|N|N|100 -ONTY|Oncothyreon Inc. - Common Shares|Q|N|N|100 -ONVI|Onvia, Inc. - Common Stock|S|N|N|100 -OPB|Opus Bank - Common Stock|Q|N|N|100 -OPHC|OptimumBank Holdings, Inc. - Common Stock|S|N|N|100 -OPHT|Ophthotech Corporation - Common Stock|Q|N|N|100 -OPOF|Old Point Financial Corporation - Common Stock|S|N|N|100 -OPTT|Ocean Power Technologies, Inc. - Common Stock|G|N|D|100 -OPXA|Opexa Therapeutics, Inc. - Common Stock|S|N|D|100 -ORBC|ORBCOMM Inc. - Common Stock|Q|N|N|100 -ORBK|Orbotech Ltd. - Ordinary Shares|Q|N|N|100 -OREX|Orexigen Therapeutics, Inc. - Common Stock|Q|N|N|100 -ORIG|Ocean Rig UDW Inc. - Common Stock|Q|N|N|100 -ORIT|Oritani Financial Corp. - Common Stock|Q|N|N|100 -ORLY|O'Reilly Automotive, Inc. - Common Stock|Q|N|N|100 -ORMP|Oramed Pharmaceuticals Inc. - Common Stock|S|N|N|100 -ORPN|Bio Blast Pharma Ltd. - Ordinary Shares|G|N|N|100 -ORRF|Orrstown Financial Services Inc - Common Stock|S|N|N|100 -OSBC|Old Second Bancorp, Inc. - Common Stock|Q|N|N|100 -OSBCP|Old Second Bancorp, Inc. - 7.80% Cumulative Trust Preferred Securities|Q|N|N|100 -OSHC|Ocean Shore Holding Co. - Common Stock|G|N|N|100 -OSIR|Osiris Therapeutics, Inc. - Common Stock|G|N|N|100 -OSIS|OSI Systems, Inc. - Common Stock|Q|N|N|100 -OSM|SLM Corporation - Medium Term Notes, Series A, CPI-Linked Notes due March 15, 2017|G|N|N|100 -OSN|Ossen Innovation Co., Ltd. - American Depositary Shares|S|N|D|100 -OSTK|Overstock.com, Inc. - Common Stock|G|N|N|100 -OSUR|OraSure Technologies, Inc. - Common Stock|Q|N|N|100 -OTEL|Otelco Inc. - Common Stock|S|N|N|100 -OTEX|Open Text Corporation - Common Shares|Q|N|N|100 -OTIC|Otonomy, Inc. - Common Stock|Q|N|N|100 -OTIV|On Track Innovations Ltd - Ordinary Shares|G|N|N|100 -OTTR|Otter Tail Corporation - Common Stock|Q|N|N|100 -OUTR|Outerwall Inc. - Common Stock|Q|N|N|100 -OVAS|OvaScience Inc. - Common Stock|G|N|N|100 -OVBC|Ohio Valley Banc Corp. - Common Stock|G|N|N|100 -OVLY|Oak Valley Bancorp (CA) - Common Stock|S|N|N|100 -OVTI|OmniVision Technologies, Inc. - Common Stock|Q|N|N|100 -OXBR|Oxbridge Re Holdings Limited - Ordinary Shares|S|N|N|100 -OXBRW|Oxbridge Re Holdings Limited - Warrant|S|N|N|100 -OXFD|Oxford Immunotec Global PLC - Ordinary Shares|G|N|N|100 -OXGN|OXiGENE, Inc. - Common Stock|S|N|N|100 -OXLC|Oxford Lane Capital Corp. - Common Stock|Q|N|N|100 -OXLCN|Oxford Lane Capital Corp. - 8.125% Series 2024 Term Preferred Stock|Q|N|N|100 -OXLCO|Oxford Lane Capital Corp. - Term Preferred Shares, 7.50% Series 2023|Q|N|N|100 -OXLCP|Oxford Lane Capital Corp. - Term Preferred Shares, 8.50% Series 2017|Q|N|N|100 -OZRK|Bank of the Ozarks - Common Stock|Q|N|N|100 -PAAS|Pan American Silver Corp. - Common Stock|Q|N|N|100 -PACB|Pacific Biosciences of California, Inc. - Common Stock|Q|N|N|100 -PACW|PacWest Bancorp - Common Stock|Q|N|N|100 -PAGG|PowerShares Global Agriculture Portfolio|G|N|N|100 -PAHC|Phibro Animal Health Corporation - Class A Common Stock|G|N|N|100 -PANL|Pangaea Logistics Solutions Ltd. - Common Stock|S|N|N|100 -PARN|Parnell Pharmaceuticals Holdings Ltd - Ordinary Shares|G|N|N|100 -PATIV|New Patriot Transportation Holding, Inc. - Common Stock When Issued|Q|N|N|100 -PATK|Patrick Industries, Inc. - Common Stock|Q|N|N|100 -PAYX|Paychex, Inc. - Common Stock|Q|N|N|100 -PBCP|Polonia Bancorp, Inc. - Common Stock|S|N|N|100 -PBCT|People's United Financial, Inc. - Common Stock|Q|N|N|100 -PBHC|Pathfinder Bancorp, Inc. - Common Stock|S|N|N|100 -PBIB|Porter Bancorp, Inc. - Common Stock|S|N|D|100 -PBIP|Prudential Bancorp, Inc. - Common Stock|G|N|N|100 -PBMD|Prima BioMed Ltd - American Depositary Shares|G|N|D|100 -PBPB|Potbelly Corporation - Common Stock|Q|N|N|100 -PBSK|Poage Bankshares, Inc. - Common Stock|S|N|N|100 -PCAR|PACCAR Inc. - Common Stock|Q|N|N|100 -PCBK|Pacific Continental Corporation (Ore) - Common Stock|Q|N|N|100 -PCCC|PC Connection, Inc. - Common Stock|Q|N|N|100 -PCH|Potlatch Corporation - Common Stock|Q|N|N|100 -PCLN|The Priceline Group Inc. - Common Stock|Q|N|N|100 -PCMI|PCM, Inc. - Common Stock|G|N|N|100 -PCO|Pendrell Corporation - Class A Common Stock|Q|N|N|100 -PCOM|Points International, Ltd. - Common Shares|S|N|N|100 -PCRX|Pacira Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -PCTI|PC-Tel, Inc. - Common Stock|Q|N|N|100 -PCTY|Paylocity Holding Corporation - Common Stock|Q|N|N|100 -PCYC|Pharmacyclics, Inc. - Common Stock|Q|N|N|100 -PCYG|Park City Group, Inc. - Common Stock|S|N|N|100 -PCYO|Pure Cycle Corporation - Common Stock|S|N|N|100 -PDBC|PowerShares DB Optimum Yield Diversified Commodity Strategy Portfolio|G|N|N|100 -PDCE|PDC Energy, Inc. - Common Stock|Q|N|N|100 -PDCO|Patterson Companies, Inc. - Common Stock|Q|N|N|100 -PDEX|Pro-Dex, Inc. - Common Stock|S|N|N|100 -PDFS|PDF Solutions, Inc. - Common Stock|Q|N|N|100 -PDII|PDI, Inc. - Common Stock|G|N|N|100 -PDLI|PDL BioPharma, Inc. - Common Stock|Q|N|N|100 -PEBK|Peoples Bancorp of North Carolina, Inc. - Common Stock|G|N|N|100 -PEBO|Peoples Bancorp Inc. - Common Stock|Q|N|N|100 -PEGA|Pegasystems Inc. - Common Stock|Q|N|N|100 -PEGI|Pattern Energy Group Inc. - Class A Common Stock|Q|N|N|100 -PEIX|Pacific Ethanol, Inc. - Common Stock|S|N|N|100 -PENN|Penn National Gaming, Inc. - Common Stock|Q|N|N|100 -PENX|Penford Corporation - Common Stock|G|N|N|100 -PEOP|Peoples Federal Bancshares, Inc. - Common Stock|S|N|N|100 -PERF|Perfumania Holdings, Inc - Common Stock|S|N|N|100 -PERI|Perion Network Ltd - ordinary shares|Q|N|N|100 -PERY|Perry Ellis International Inc. - Common Stock|Q|N|N|100 -PESI|Perma-Fix Environmental Services, Inc. - Common Stock|S|N|N|100 -PETM|PetSmart, Inc - Common Stock|Q|N|N|100 -PETS|PetMed Express, Inc. - Common Stock|Q|N|N|100 -PETX|Aratana Therapeutics, Inc. - Common Stock|G|N|N|100 -PFBC|Preferred Bank - Common Stock|Q|N|N|100 -PFBI|Premier Financial Bancorp, Inc. - Common Stock|G|N|N|100 -PFBX|Peoples Financial Corporation - Common Stock|S|N|N|100 -PFIE|Profire Energy, Inc. - Common Stock|S|N|N|100 -PFIN|P & F Industries, Inc. - Class A Common Stock|G|N|N|100 -PFIS|Peoples Financial Services Corp. - Common Stock|Q|N|N|100 -PFLT|PennantPark Floating Rate Capital Ltd. - Common Stock|Q|N|N|100 -PFMT|Performant Financial Corporation - Common Stock|Q|N|N|100 -PFPT|Proofpoint, Inc. - Common Stock|G|N|N|100 -PFSW|PFSweb, Inc. - Common Stock|S|N|N|100 -PGC|Peapack-Gladstone Financial Corporation - Common Stock|Q|N|N|100 -PGNX|Progenics Pharmaceuticals Inc. - Common Stock|Q|N|N|100 -PGTI|PGT, Inc. - Common Stock|G|N|N|100 -PHII|PHI, Inc. - Voting Common Stock|Q|N|N|100 -PHIIK|PHI, Inc. - Non-Voting Common Stock|Q|N|N|100 -PHMD|PhotoMedex, Inc. - Common Stock|Q|N|N|100 -PICO|PICO Holdings Inc. - Common Stock|Q|N|N|100 -PIH|1347 Property Insurance Holdings, Inc. - Common Stock|S|N|N|100 -PINC|Premier, Inc. - Class A Common Stock|Q|N|N|100 -PKBK|Parke Bancorp, Inc. - Common Stock|S|N|N|100 -PKOH|Park-Ohio Holdings Corp. - Common Stock|Q|N|N|100 -PKT|Procera Networks, Inc. - Common Stock|Q|N|N|100 -PLAB|Photronics, Inc. - Common Stock|Q|N|N|100 -PLAY|Dave & Buster's Entertainment, Inc. - Common Stock|Q|N|N|100 -PLBC|Plumas Bancorp - Common Stock|S|N|N|100 -PLCE|Children's Place, Inc. (The) - Common Stock|Q|N|N|100 -PLCM|Polycom, Inc. - Common Stock|Q|N|N|100 -PLKI|Popeyes Louisiana Kitchen, Inc. - Common Stock|Q|N|N|100 -PLMT|Palmetto Bancshares, Inc. (SC) - Common Stock|S|N|N|100 -PLNR|Planar Systems, Inc. - Common Stock|G|N|N|100 -PLPC|Preformed Line Products Company - Common Stock|Q|N|N|100 -PLPM|Planet Payment, Inc. - Common Stock|S|N|D|100 -PLTM|First Trust ISE Global Platinum Index Fund|G|N|N|100 -PLUG|Plug Power, Inc. - Common Stock|S|N|N|100 -PLUS|ePlus inc. - Common Stock|Q|N|N|100 -PLXS|Plexus Corp. - Common Stock|Q|N|N|100 -PMBC|Pacific Mercantile Bancorp - Common Stock|Q|N|N|100 -PMCS|PMC - Sierra, Inc. - Common Stock|Q|N|N|100 -PMD|Psychemedics Corporation - Common Stock|S|N|N|100 -PME|Pingtan Marine Enterprise Ltd. - Ordinary Shares|S|N|N|100 -PMFG|PMFG, Inc. - Common Stock|Q|N|N|100 -PNBK|Patriot National Bancorp Inc. - Common Stock|G|N|N|100 -PNFP|Pinnacle Financial Partners, Inc. - Common Stock|Q|N|N|100 -PNNT|PennantPark Investment Corporation - common stock|Q|N|N|100 -PNQI|PowerShares Nasdaq Internet Portfolio|G|N|N|100 -PNRA|Panera Bread Company - Class A Common Stock|Q|N|N|100 -PNRG|PrimeEnergy Corporation - Common Stock|S|N|N|100 -PNTR|Pointer Telocation Ltd. - Ordinary Shares|S|N|N|100 -PODD|Insulet Corporation - Common Stock|Q|N|N|100 -POOL|Pool Corporation - Common Stock|Q|N|N|100 -POPE|Pope Resources - Limited Partnership|S|N|N|100 -POWI|Power Integrations, Inc. - Common Stock|Q|N|N|100 -POWL|Powell Industries, Inc. - Common Stock|Q|N|N|100 -POZN|Pozen, Inc. - Common Stock|Q|N|N|100 -PPBI|Pacific Premier Bancorp Inc - Common Stock|Q|N|N|100 -PPC|Pilgrim's Pride Corporation - Common Stock|Q|N|N|100 -PPHM|Peregrine Pharmaceuticals Inc. - Common Stock|S|N|N|100 -PPHMP|Peregrine Pharmaceuticals Inc. - 10.50% Series E Convertible Preferred Stock|S|N|N|100 -PPSI|Pioneer Power Solutions, Inc. - Common Stock|S|N|N|100 -PRAA|PRA Group, Inc. - Common Stock|Q|N|N|100 -PRAH|PRA Health Sciences, Inc. - Common Stock|Q|N|N|100 -PRAN|Prana Biotechnology Ltd - American Depositary Shares each representing ten Ordinary Shares|S|N|N|100 -PRCP|Perceptron, Inc. - Common Stock|G|N|N|100 -PRFT|Perficient, Inc. - Common Stock|Q|N|N|100 -PRFZ|PowerShares FTSE RAFI US 1500 Small-Mid Portfolio|G|N|N|100 -PRGN|Paragon Shipping Inc. - Common Stock|G|N|N|100 -PRGNL|Paragon Shipping Inc. - 8.375% Senior Notes due 2021|G|N|N|100 -PRGS|Progress Software Corporation - Common Stock|Q|N|N|100 -PRGX|PRGX Global, Inc. - Common Stock|Q|N|N|100 -PRIM|Primoris Services Corporation - Common Stock|Q|N|N|100 -PRKR|ParkerVision, Inc. - Common Stock|S|N|N|100 -PRLS|Peerless Systems Corporation - Common Stock|S|N|N|100 -PRMW|Primo Water Corporation - Common Stock|G|N|N|100 -PROV|Provident Financial Holdings, Inc. - Common Stock|Q|N|N|100 -PRPH|ProPhase Labs, Inc. - Common Stock|G|N|N|100 -PRQR|ProQR Therapeutics N.V. - Ordinary Shares|G|N|N|100 -PRSC|The Providence Service Corporation - Common Stock|Q|N|N|100 -PRSS|CafePress Inc. - Common Stock|Q|N|N|100 -PRTA|Prothena Corporation plc - Ordinary Shares|Q|N|N|100 -PRTK|Paratek Pharmaceuticals, Inc. - Common Stock|G|N|N|100 -PRTO|Proteon Therapeutics, Inc. - Common Stock|G|N|N|100 -PRTS|U.S. Auto Parts Network, Inc. - Common Stock|Q|N|N|100 -PRXI|Premier Exhibitions, Inc. - Common Stock|S|N|D|100 -PRXL|PAREXEL International Corporation - Common Stock|Q|N|N|100 -PSAU|PowerShares Global Gold & Precious Metals Portfolio|G|N|N|100 -PSBH|PSB Holdings, Inc. - Common Stock|S|N|N|100 -PSCC|PowerShares S&P SmallCap Consumer Staples Portfolio|G|N|N|100 -PSCD|PowerShares S&P SmallCap Consumer Discretionary Portfolio|G|N|N|100 -PSCE|PowerShares S&P SmallCap Energy Portfolio|G|N|N|100 -PSCF|PowerShares S&P SmallCap Financials Portfolio|G|N|N|100 -PSCH|PowerShares S&P SmallCap Health Care Portfolio|G|N|N|100 -PSCI|PowerShares S&P SmallCap Industrials Portfolio|G|N|N|100 -PSCM|PowerShares S&P SmallCap Materials Portfolio|G|N|N|100 -PSCT|PowerShares S&P SmallCap Information Technology Portfolio|G|N|N|100 -PSCU|PowerShares S&P SmallCap Utilities Portfolio|G|N|N|100 -PSDV|pSivida Corp. - Common Stock|G|N|N|100 -PSEC|Prospect Capital Corporation - Common Stock|Q|N|N|100 -PSEM|Pericom Semiconductor Corporation - Common Stock|Q|N|N|100 -PSIX|Power Solutions International, Inc. - Common Stock|S|N|N|100 -PSMT|PriceSmart, Inc. - Common Stock|Q|N|N|100 -PSTB|Park Sterling Corporation - Common Stock|Q|N|N|100 -PSTI|Pluristem Therapeutics, Inc. - Common Stock|S|N|N|100 -PSTR|PostRock Energy Corporation - Common Stock|G|N|D|100 -PSUN|Pacific Sunwear of California, Inc. - Common Stock|Q|N|N|100 -PTBI|PlasmaTech Biopharmaceuticals, Inc. - Common Stock|S|N|N|100 -PTBIW|PlasmaTech Biopharmaceuticals, Inc. - Warrant|S|N|N|100 -PTC|PTC Inc. - Common Stock|Q|N|N|100 -PTCT|PTC Therapeutics, Inc. - Common Stock|Q|N|N|100 -PTEN|Patterson-UTI Energy, Inc. - Common Stock|Q|N|N|100 -PTIE|Pain Therapeutics - Common Stock|Q|N|N|100 -PTLA|Portola Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -PTNR|Partner Communications Company Ltd. - American Depositary Shares, each representing one ordinary share|Q|N|N|100 -PTNT|Internet Patents Corporation - Common Stock|S|N|N|100 -PTRY|The Pantry, Inc. - Common Stock|Q|N|N|100 -PTSI|P.A.M. Transportation Services, Inc. - Common Stock|G|N|N|100 -PTX|Pernix Therapeutics Holdings, Inc. - Common Stock|G|N|N|100 -PULB|Pulaski Financial Corp. - Common Stock|Q|N|N|100 -PVTB|PrivateBancorp, Inc. - Common Stock|Q|N|N|100 -PVTBP|PrivateBancorp, Inc. - PrivateBancorp Capital Trust IV - 10% Trust Preferred|Q|N|N|100 -PWOD|Penns Woods Bancorp, Inc. - Common Stock|Q|N|N|100 -PWRD|Perfect World Co., Ltd. - American Depositary Shares, each representing five Class B ordinary shares|Q|N|N|100 -PWX|Providence and Worcester Railroad Company - Common Stock|G|N|N|100 -PXLW|Pixelworks, Inc. - Common Stock|G|N|N|100 -PZZA|Papa John'S International, Inc. - Common Stock|Q|N|N|100 -QABA|First Trust NASDAQ ABA Community Bank Index Fund|G|N|N|100 -QADA|QAD Inc. - Class A Common Stock|Q|N|N|100 -QADB|QAD Inc. - Common Stock|Q|N|N|100 -QAT|iShares MSCI Qatar Capped ETF|G|N|N|100 -QBAK|Qualstar Corporation - Common Stock|S|N|N|100 -QCCO|QC Holdings, Inc. - Common Stock|G|N|N|100 -QCLN|First Trust NASDAQ Clean Edge Green Energy Index Fund|G|N|N|100 -QCOM|QUALCOMM Incorporated - Common Stock|Q|N|N|100 -QCRH|QCR Holdings, Inc. - Common Stock|G|N|N|100 -QDEL|Quidel Corporation - Common Stock|Q|N|N|100 -QGEN|Qiagen N.V. - Common Shares|Q|N|N|100 -QINC|First Trust RBA Quality Income ETF|G|N|N|100 -QIWI|QIWI plc - American Depositary Shares|Q|N|N|100 -QKLS|QKL Stores, Inc. - Common Stock|S|N|N|100 -QLGC|QLogic Corporation - Common Stock|Q|N|N|100 -QLIK|Qlik Technologies Inc. - Common Stock|Q|N|N|100 -QLTI|QLT Inc. - Common Shares|Q|N|N|100 -QLTY|Quality Distribution, Inc. - Common Stock|G|N|N|100 -QLYS|Qualys, Inc. - Common Stock|Q|N|N|100 -QNST|QuinStreet, Inc. - Common Stock|Q|N|N|100 -QPACU|Quinpario Acquisition Corp. 2 - Unit|S|N|N|100 -QQEW|First Trust NASDAQ-100 Equal Weighted Index Fund|G|N|N|100 -QQQ|PowerShares QQQ Trust, Series 1|G|N|N|100 -QQQC|Global X NASDAQ China Technology ETF|G|N|N|100 -QQQX|Nuveen NASDAQ 100 Dynamic Overwrite Fund - Shares of Beneficial Interest|Q|N|N|100 -QQXT|First Trust NASDAQ-100 Ex-Technology Sector Index Fund|G|N|N|100 -QRHC|Quest Resource Holding Corporation. - Common Stock|S|N|N|100 -QRVO|Qorvo, Inc. - Common Stock|Q|N|N|100 -QSII|Quality Systems, Inc. - Common Stock|Q|N|N|100 -QTEC|First Trust NASDAQ-100- Technology Index Fund|G|N|N|100 -QTNT|Quotient Limited - Ordinary Shares|G|N|N|100 -QTNTW|Quotient Limited - Warrant|G|N|N|100 -QTWW|Quantum Fuel Systems Technologies Worldwide, Inc. - Common Stock|S|N|N|100 -QUIK|QuickLogic Corporation - Common Stock|G|N|N|100 -QUMU|Qumu Corporation - Common Stock|Q|N|N|100 -QUNR|Qunar Cayman Islands Limited - American Depositary Shares|G|N|N|100 -QURE|uniQure N.V. - Ordinary Shares|Q|N|N|100 -QVCA|Liberty Interactive Corporation - Series A Liberty Interactive Common Stock|Q|N|N|100 -QVCB|Liberty Interactive Corporation - Series B Liberty Interactive common stock|Q|N|N|100 -QYLD|Recon Capital NASDAQ-100 Covered Call ETF|G|N|N|100 -RADA|Rada Electronics Industries Limited - Ordinary Shares|S|N|N|100 -RAIL|Freightcar America, Inc. - Common Stock|Q|N|N|100 -RAND|Rand Capital Corporation - Common Stock ($0.10 Par Value)|S|N|N|100 -RARE|Ultragenyx Pharmaceutical Inc. - Common Stock|Q|N|N|100 -RAVE|Rave Restaurant Group, Inc. - Common Stock|S|N|N|100 -RAVN|Raven Industries, Inc. - Common Stock|Q|N|N|100 -RBCAA|Republic Bancorp, Inc. - Class A Common Stock|Q|N|N|100 -RBCN|Rubicon Technology, Inc. - Common Stock|Q|N|N|100 -RBPAA|Royal Bancshares of Pennsylvania, Inc. - Class A Common Stock|G|N|N|100 -RCII|Rent-A-Center Inc. - Common Stock|Q|N|N|100 -RCKY|Rocky Brands, Inc. - Common Stock|Q|N|N|100 -RCMT|RCM Technologies, Inc. - Common Stock|G|N|N|100 -RCON|Recon Technology, Ltd. - Ordinary Shares|S|N|N|100 -RCPI|Rock Creek Pharmaceuticals, Inc. - Common Stock|S|N|D|100 -RCPT|Receptos, Inc. - Common Stock|Q|N|N|100 -RDCM|Radcom Ltd. - Ordinary Shares|S|N|N|100 -RDEN|Elizabeth Arden, Inc. - Common Stock|Q|N|N|100 -RDHL|Redhill Biopharma Ltd. - American Depositary Shares|S|N|N|100 -RDI|Reading International Inc - Class A Non-voting Common Stock|S|N|N|100 -RDIB|Reading International Inc - Class B Voting Common Stock|S|N|N|100 -RDNT|RadNet, Inc. - Common Stock|G|N|N|100 -RDUS|Radius Health, Inc. - Common Stock|G|N|N|100 -RDVY|First Trust NASDAQ Rising Dividend Achievers ETF|G|N|N|100 -RDWR|Radware Ltd. - Ordinary Shares|Q|N|N|100 -RECN|Resources Connection, Inc. - Common Stock|Q|N|N|100 -REDF|Rediff.com India Limited - American Depositary Shares, each represented by one-half of one equity share|G|N|N|100 -REFR|Research Frontiers Incorporated - Common Stock|S|N|N|100 -REGI|Renewable Energy Group, Inc. - Common Stock|Q|N|N|100 -REGN|Regeneron Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -REIS|Reis, Inc - Common Stock|Q|N|N|100 -RELL|Richardson Electronics, Ltd. - Common Stock|Q|N|N|100 -RELV|Reliv' International, Inc. - Common Stock|Q|N|N|100 -REMY|Remy International, Inc. - Common Stock|Q|N|N|100 -RENT|Rentrak Corporation - Common Stock|Q|N|N|100 -REPH|Recro Pharma, Inc. - Common Stock|S|N|N|100 -RESN|Resonant Inc. - Common Stock|S|N|N|100 -REXI|Resource America, Inc. - Class A Common Stock|Q|N|N|100 -REXX|Rex Energy Corporation - Common Stock|Q|N|N|100 -RFIL|RF Industries, Ltd. - Common Stock|G|N|N|100 -RGCO|RGC Resources Inc. - Common Stock|G|N|N|100 -RGDO|Regado BioSciences, Inc. - Common Stock|S|N|D|100 -RGDX|Response Genetics, Inc. - Common Stock|S|N|D|100 -RGEN|Repligen Corporation - Common Stock|Q|N|N|100 -RGLD|Royal Gold, Inc. - Common Stock|Q|N|N|100 -RGLS|Regulus Therapeutics Inc. - Common Stock|G|N|N|100 -RGSE|Real Goods Solar, Inc. - Class A Common Stock|S|N|D|100 -RIBT|RiceBran Technologies - Common Stock|S|N|N|100 -RIBTW|RiceBran Technologies - Warrant|S|N|N|100 -RICK|RCI Hospitality Holdings, Inc. - Common Stock|G|N|N|100 -RIGL|Rigel Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -RITT|RIT Technologies Ltd. - ordinary shares|S|N|N|100 -RITTW|RIT Technologies Ltd. - Warrants|S|N|N|100 -RIVR|River Valley Bancorp. - Common Stock|S|N|N|100 -RJET|Republic Airways Holdings, Inc. - Common Stock|Q|N|N|100 -RLJE|RLJ Entertainment, Inc. - Common Stock|S|N|N|100 -RLOC|ReachLocal, Inc. - Common Stock|Q|N|N|100 -RLOG|Rand Logistics, Inc. - Common Stock|S|N|N|100 -RLYP|Relypsa, Inc. - Common Stock|Q|N|N|100 -RMBS|Rambus, Inc. - Common Stock|Q|N|N|100 -RMCF|Rocky Mountain Chocolate Factory, Inc. - Common Stock|G|N|N|100 -RMGN|RMG Networks Holding Corporation - Common Stock|G|N|N|100 -RMTI|Rockwell Medical, Inc. - Common Stock|G|N|N|100 -RNA|Prosensa Holding N.V. - Ordinary Shares|Q|N|N|100 -RNET|RigNet, Inc. - Common Stock|Q|N|N|100 -RNST|Renasant Corporation - Common Stock|Q|N|N|100 -RNWK|RealNetworks, Inc. - Common Stock|Q|N|N|100 -ROBO|Robo-Stox Global Robotics and Automation Index ETF|G|N|N|100 -ROCK|Gibraltar Industries, Inc. - Common Stock|Q|N|N|100 -ROIA|Radio One, Inc. - Class A Common Stock|S|N|N|100 -ROIAK|Radio One, Inc. - Class D Common Stock|S|N|N|100 -ROIC|Retail Opportunity Investments Corp. - Common Stock|Q|N|N|100 -ROIQ|ROI Acquisition Corp. II - Common Stock|S|N|D|100 -ROIQU|ROI Acquisition Corp. II - Units|S|N|D|100 -ROIQW|ROI Acquisition Corp. II - Warrants|S|N|D|100 -ROKA|Roka Bioscience, Inc. - Common Stock|G|N|N|100 -ROLL|RBC Bearings Incorporated - Common Stock|Q|N|N|100 -ROSE|Rosetta Resources Inc. - Common Stock|Q|N|N|100 -ROSG|Rosetta Genomics Ltd. - ordinary shares|S|N|N|100 -ROST|Ross Stores, Inc. - Common Stock|Q|N|N|100 -ROVI|Rovi Corporation - Common Stock|Q|N|N|100 -ROYL|Royale Energy, Inc. - Common Stock|S|N|N|100 -RP|RealPage, Inc. - Common Stock|Q|N|N|100 -RPRX|Repros Therapeutics Inc. - Common Stock|S|N|N|100 -RPRXW|Repros Therapeutics Inc. - Series A Warrant|S|N|N|100 -RPRXZ|Repros Therapeutics Inc. - Series B warrant|S|N|N|100 -RPTP|Raptor Pharmaceutical Corp. - Common Stock|G|N|N|100 -RPXC|RPX Corporation - Common Stock|Q|N|N|100 -RRD|R.R. Donnelley & Sons Company - Common Stock|Q|N|N|100 -RRGB|Red Robin Gourmet Burgers, Inc. - Common Stock|Q|N|N|100 -RRST|RRSat Global Communications Network Ltd. - Ordinary Shares|Q|N|N|100 -RSTI|Rofin-Sinar Technologies, Inc. - Common Stock|Q|N|N|100 -RSYS|RadiSys Corporation - Common Stock|Q|N|N|100 -RTGN|Ruthigen, Inc. - Common Stock|S|N|N|100 -RTIX|RTI Surgical, Inc. - Common Stock|Q|N|N|100 -RTK|Rentech, Inc. - Common Stock|S|N|N|100 -RTRX|Retrophin, Inc. - Common Stock|G|N|D|100 -RUSHA|Rush Enterprises, Inc. - Class A Common Stock|Q|N|N|100 -RUSHB|Rush Enterprises, Inc. - Class B Common Stock|Q|N|N|100 -RUTH|Ruth's Hospitality Group, Inc. - Common Stock|Q|N|N|100 -RVBD|Riverbed Technology, Inc. - Common Stock|Q|N|N|100 -RVLT|Revolution Lighting Technologies, Inc. - Class A Common Stock|S|N|N|100 -RVNC|Revance Therapeutics, Inc. - Common Stock|G|N|N|100 -RVSB|Riverview Bancorp Inc - Common Stock|Q|N|N|100 -RWLK|ReWalk Robotics Ltd - Ordinary Shares|G|N|N|100 -RXDX|Ignyta, Inc. - Common Stock|S|N|N|100 -RXII|RXi Pharmaceuticals Corporation - Common Stock|S|N|N|100 -RYAAY|Ryanair Holdings plc - American Depositary Shares, each representing five Ordinary Shares|Q|N|N|100 -SAAS|inContact, Inc. - Common Stock|S|N|N|100 -SABR|Sabre Corporation - Common Stock|Q|N|N|100 -SAEX|SAExploration Holdings, Inc. - Common Stock|G|N|N|100 -SAFM|Sanderson Farms, Inc. - Common Stock|Q|N|N|100 -SAFT|Safety Insurance Group, Inc. - Common Stock|Q|N|N|100 -SAGE|Sage Therapeutics, Inc. - Common Stock|G|N|N|100 -SAIA|Saia, Inc. - Common Stock|Q|N|N|100 -SAJA|Sajan, Inc. - Common Stock|S|N|N|100 -SAL|Salisbury Bancorp, Inc. - Common Stock|S|N|N|100 -SALE|RetailMeNot, Inc. - Series 1 Common Stock|Q|N|N|100 -SALM|Salem Communications Corporation - Class A Common Stock|G|N|N|100 -SAMG|Silvercrest Asset Management Group Inc. - Common Stock|G|N|N|100 -SANM|Sanmina Corporation - Common Stock|Q|N|N|100 -SANW|S&W Seed Company - Common Stock|S|N|N|100 -SANWZ|S&W Seed Company - Warrants Class B 04/23/2015|S|N|N|100 -SAPE|Sapient Corporation - Common Stock|Q|N|N|100 -SASR|Sandy Spring Bancorp, Inc. - Common Stock|Q|N|N|100 -SATS|EchoStar Corporation - common stock|Q|N|N|100 -SAVE|Spirit Airlines, Inc. - Common Stock|Q|N|N|100 -SBAC|SBA Communications Corporation - Common Stock|Q|N|N|100 -SBBX|Sussex Bancorp - Common Stock|G|N|N|100 -SBCF|Seacoast Banking Corporation of Florida - Common Stock|Q|N|N|100 -SBCP|Sunshine Bancorp, Inc. - Common Stock|S|N|N|100 -SBFG|SB Financial Group, Inc. - Common Stock|S|N|N|100 -SBFGP|SB Financial Group, Inc. - Depositary Shares each representing a 1/100th interest in a 6.50% Noncumulative convertible perpetual preferred share, Series A|S|N|N|100 -SBGI|Sinclair Broadcast Group, Inc. - Class A Common Stock|Q|N|N|100 -SBLK|Star Bulk Carriers Corp. - Common Stock|Q|N|N|100 -SBLKL|Star Bulk Carriers Corp. - 8.00% Senior Notes Due 2019|Q|N|N|100 -SBNY|Signature Bank - Common Stock|Q|N|N|100 -SBNYW|Signature Bank - Warrants 12/12/2018|Q|N|N|100 -SBRA|Sabra Healthcare REIT, Inc. - Common Stock|Q|N|N|100 -SBRAP|Sabra Healthcare REIT, Inc. - 7.125% Preferred Series A (United States)|Q|N|N|100 -SBSA|Spanish Broadcasting System, Inc. - Class A Common Stock|G|N|D|100 -SBSI|Southside Bancshares, Inc. - Common Stock|Q|N|N|100 -SBUX|Starbucks Corporation - Common Stock|Q|N|N|100 -SCAI|Surgical Care Affiliates, Inc. - Common Stock|Q|N|N|100 -SCHL|Scholastic Corporation - Common Stock|Q|N|N|100 -SCHN|Schnitzer Steel Industries, Inc. - Class A Common Stock|Q|N|N|100 -SCLN|SciClone Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -SCMP|Sucampo Pharmaceuticals, Inc. - Class A Common Stock|G|N|N|100 -SCOK|SinoCoking Coal and Coke Chemical Industries, Inc - Common Stock|S|N|N|100 -SCON|Superconductor Technologies Inc. - Common Stock|S|N|N|100 -SCOR|comScore, Inc. - Common Stock|Q|N|N|100 -SCSC|ScanSource, Inc. - Common Stock|Q|N|N|100 -SCSS|Select Comfort Corporation - Common Stock|Q|N|N|100 -SCTY|SolarCity Corporation - Common Stock|Q|N|N|100 -SCVL|Shoe Carnival, Inc. - Common Stock|Q|N|N|100 -SCYX|SCYNEXIS, Inc. - Common Stock|G|N|N|100 -SEAC|SeaChange International, Inc. - Common Stock|Q|N|N|100 -SEED|Origin Agritech Limited - Common Stock|Q|N|N|100 -SEIC|SEI Investments Company - Common Stock|Q|N|N|100 -SEMI|SunEdison Semiconductor Limited - Ordinary Shares|Q|N|N|100 -SENEA|Seneca Foods Corp. - Class A Common Stock|Q|N|N|100 -SENEB|Seneca Foods Corp. - Class B Common Stock|Q|N|N|100 -SEV|Sevcon, Inc. - Common Stock|S|N|N|100 -SFBC|Sound Financial Bancorp, Inc. - Common Stock|S|N|N|100 -SFBS|ServisFirst Bancshares, Inc. - Common Stock|Q|N|N|100 -SFLY|Shutterfly, Inc. - Common Stock|Q|N|N|100 -SFM|Sprouts Farmers Market, Inc. - Common Stock|Q|N|N|100 -SFNC|Simmons First National Corporation - Common Stock|Q|N|N|100 -SFST|Southern First Bancshares, Inc. - Common Stock|G|N|N|100 -SFXE|SFX Entertainment, Inc. - Common Stock|Q|N|N|100 -SGBK|Stonegate Bank - Common Stock|Q|N|N|100 -SGC|Superior Uniform Group, Inc. - Common Stock|G|N|N|100 -SGEN|Seattle Genetics, Inc. - Common Stock|Q|N|N|100 -SGI|Silicon Graphics International Corp - Common Stock|Q|N|N|100 -SGMA|SigmaTron International, Inc. - Common Stock|S|N|N|100 -SGMO|Sangamo BioSciences, Inc. - Common Stock|Q|N|N|100 -SGMS|Scientific Games Corp - Class A Common Stock|Q|N|N|100 -SGNL|Signal Genetics, Inc. - Common Stock|S|N|N|100 -SGNT|Sagent Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -SGOC|SGOCO Group, Ltd - Ordinary Shares (Cayman Islands)|S|N|N|100 -SGRP|SPAR Group, Inc. - Common Stock|S|N|N|100 -SGYP|Synergy Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -SGYPU|Synergy Pharmaceuticals, Inc. - Unit|S|N|N|100 -SGYPW|Synergy Pharmaceuticals, Inc. - Warrants|S|N|N|100 -SHBI|Shore Bancshares Inc - Common Stock|Q|N|N|100 -SHEN|Shenandoah Telecommunications Co - Common Stock|Q|N|N|100 -SHIP|Seanergy Maritime Holdings Corp - Common Stock|S|N|N|100 -SHLD|Sears Holdings Corporation - Common Stock|Q|N|N|100 -SHLDW|Sears Holdings Corporation - Warrant|Q|N|N|100 -SHLM|A. Schulman, Inc. - Common Stock|Q|N|N|100 -SHLO|Shiloh Industries, Inc. - Common Stock|Q|N|N|100 -SHOO|Steven Madden, Ltd. - Common Stock|Q|N|N|100 -SHOR|ShoreTel, Inc. - Common Stock|Q|N|N|100 -SHOS|Sears Hometown and Outlet Stores, Inc. - Common Stock|S|N|N|100 -SHPG|Shire plc - American Depositary Shares, each representing three Ordinary Shares|Q|N|N|100 -SIAL|Sigma-Aldrich Corporation - Common Stock|Q|N|N|100 -SIBC|State Investors Bancorp, Inc. - Common Stock|S|N|N|100 -SIEB|Siebert Financial Corp. - Common Stock|S|N|N|100 -SIEN|Sientra, Inc. - Common Stock|Q|N|N|100 -SIFI|SI Financial Group, Inc. - Common Stock|G|N|N|100 -SIFY|Sify Technologies Limited - American Depository Shares, each represented by one Equity Share|Q|N|N|100 -SIGA|SIGA Technologies Inc. - Common Stock|G|N|Q|100 -SIGI|Selective Insurance Group, Inc. - Common Stock|Q|N|N|100 -SIGM|Sigma Designs, Inc. - Common Stock|Q|N|N|100 -SILC|Silicom Ltd - Ordinary Shares|Q|N|N|100 -SIMG|Silicon Image, Inc. - Common Stock|Q|N|N|100 -SIMO|Silicon Motion Technology Corporation - American Depositary Shares, each representing four ordinary shares|Q|N|N|100 -SINA|Sina Corporation - Ordinary Shares|Q|N|N|100 -SINO|Sino-Global Shipping America, Ltd. - Common Stock|S|N|N|100 -SIRI|Sirius XM Holdings Inc. - Common Stock|Q|N|N|100 -SIRO|Sirona Dental Systems, Inc. - Common Stock|Q|N|N|100 -SIVB|SVB Financial Group - Common Stock|Q|N|N|100 -SIVBO|SVB Financial Group - 7% Cumulative Trust Preferred Securities - SVB Capital II|Q|N|N|100 -SIXD|6D Global Technologies, Inc. - Common Stock|S|N|N|100 -SKBI|Skystar Bio-Pharmaceutical Company - Common Stock|S|N|N|100 -SKIS|Peak Resorts, Inc. - Common Stock|G|N|N|100 -SKOR|FlexShares Credit-Scored US Corporate Bond Index Fund|G|N|N|100 -SKUL|Skullcandy, Inc. - Common Stock|Q|N|N|100 -SKYS|Sky Solar Holdings, Ltd. - American Depositary Shares|S|N|N|100 -SKYW|SkyWest, Inc. - Common Stock|Q|N|N|100 -SKYY|First Trust ISE Cloud Computing Index Fund|G|N|N|100 -SLAB|Silicon Laboratories, Inc. - Common Stock|Q|N|N|100 -SLCT|Select Bancorp, Inc. - Common Stock|G|N|N|100 -SLGN|Silgan Holdings Inc. - Common Stock|Q|N|N|100 -SLM|SLM Corporation - Common Stock|Q|N|N|100 -SLMAP|SLM Corporation - 6.97% Cumulative Redeemable Preferred Stock, Series A|Q|N|N|100 -SLMBP|SLM Corporation - Floating Rate Non-Cumulative Preferred Stock, Series B|Q|N|N|100 -SLP|Simulations Plus, Inc. - Common Stock|S|N|N|100 -SLRC|Solar Capital Ltd. - Common Stock|Q|N|N|100 -SLTC|Selectica, Inc. - Common Stock|S|N|N|100 -SLVO|Credit Suisse AG - Credit Suisse Silver Shares Covered Call Exchange Traded Notes|G|N|N|100 -SLXP|Salix Pharmaceuticals, Ltd. - Common Stock|Q|N|N|100 -SMAC|Sino Mercury Acquisition Corp. - Common Stock|S|N|N|100 -SMACR|Sino Mercury Acquisition Corp. - Right|S|N|N|100 -SMACU|Sino Mercury Acquisition Corp. - Unit|S|N|N|100 -SMBC|Southern Missouri Bancorp, Inc. - Common Stock|G|N|N|100 -SMCI|Super Micro Computer, Inc. - Common Stock|Q|N|N|100 -SMED|Sharps Compliance Corp - Common Stock|S|N|N|100 -SMIT|Schmitt Industries, Inc. - Common Stock|S|N|N|100 -SMLR|Semler Scientific, Inc. - Common Stock|S|N|N|100 -SMMF|Summit Financial Group, Inc. - Common Stock|S|N|N|100 -SMPL|Simplicity Bancorp Inc. - Common Stock|Q|N|N|100 -SMRT|Stein Mart, Inc. - Common Stock|Q|N|N|100 -SMSI|Smith Micro Software, Inc. - Common Stock|Q|N|N|100 -SMT|SMART Technologies Inc. - Common Shares|Q|N|N|100 -SMTC|Semtech Corporation - Common Stock|Q|N|N|100 -SMTP|SMTP, Inc. - Common Stock|S|N|N|100 -SMTX|SMTC Corporation - Common Stock|G|N|N|100 -SNAK|Inventure Foods, Inc. - Common Stock|Q|N|N|100 -SNBC|Sun Bancorp, Inc. - Common Stock|Q|N|N|100 -SNC|State National Companies, Inc. - Common Stock|Q|N|N|100 -SNCR|Synchronoss Technologies, Inc. - Common Stock|Q|N|N|100 -SNDK|SanDisk Corporation - Common Stock|Q|N|N|100 -SNFCA|Security National Financial Corporation - Class A Common Stock|G|N|N|100 -SNHY|Sun Hydraulics Corporation - Common Stock|Q|N|N|100 -SNMX|Senomyx, Inc. - Common Stock|G|N|N|100 -SNPS|Synopsys, Inc. - Common Stock|Q|N|N|100 -SNSS|Sunesis Pharmaceuticals, Inc. - Common Stock|S|N|N|100 -SNTA|Synta Pharmaceuticals Corp. - Common Stock|G|N|N|100 -SOCB|Southcoast Financial Corporation - Common Stock|G|N|N|100 -SOCL|Global X Social Media Index ETF|G|N|N|100 -SODA|SodaStream International Ltd. - Ordinary Shares|Q|N|N|100 -SOFO|Sonic Foundry, Inc. - Common Stock|S|N|N|100 -SOHO|Sotherly Hotels Inc. - Common Stock|G|N|N|100 -SOHOL|Sotherly Hotels LP - 8.00% Senior Unsecured Notes Due 2018|G|N|N|100 -SOHOM|Sotherly Hotels LP - 7.00% Senior Notes|G|N|N|100 -SOHU|Sohu.com Inc. - Common Stock|Q|N|N|100 -SONA|Southern National Bancorp of Virginia, Inc. - Common Stock|G|N|N|100 -SONC|Sonic Corp. - Common Stock|Q|N|N|100 -SONS|Sonus Networks, Inc. - Common Stock|Q|N|N|100 -SORL|SORL Auto Parts, Inc. - Common Stock|G|N|N|100 -SOXX|iShares PHLX SOX Semiconductor Sector Index Fund|G|N|N|100 -SP|SP Plus Corporation - Common Stock|Q|N|N|100 -SPAN|Span-America Medical Systems, Inc. - Common Stock|G|N|N|100 -SPAR|Spartan Motors, Inc. - Common Stock|Q|N|N|100 -SPCB|SuperCom, Ltd. - Ordinary Shares|S|N|N|100 -SPDC|Speed Commerce, Inc. - Common Stock|G|N|N|100 -SPEX|Spherix Incorporated - Common Stock|S|N|N|100 -SPHS|Sophiris Bio, Inc. - Common Shares|G|N|N|100 -SPIL|Siliconware Precision Industries Company, Ltd. - ADS represents common shares|Q|N|N|100 -SPKE|Spark Energy, Inc. - Class A Common Stock|Q|N|N|100 -SPLK|Splunk Inc. - Common Stock|Q|N|N|100 -SPLS|Staples, Inc. - Common Stock|Q|N|N|100 -SPNC|The Spectranetics Corporation - Common Stock|Q|N|N|100 -SPNS|Sapiens International Corporation N.V. - Common Shares|S|N|N|100 -SPOK|Spok Holdings, Inc. - Common Stock|Q|N|N|100 -SPPI|Spectrum Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -SPPR|Supertel Hospitality, Inc. - Common Stock|G|N|N|100 -SPPRO|Supertel Hospitality, Inc. - Series B Cumulative Preferred Stock|G|N|N|100 -SPPRP|Supertel Hospitality, Inc. - Series A Convertible Preferred Stock|G|N|N|100 -SPRO|SmartPros Ltd. - Common Stock|S|N|N|100 -SPRT|support.com, Inc. - Common Stock|Q|N|N|100 -SPSC|SPS Commerce, Inc. - Common Stock|Q|N|N|100 -SPTN|SpartanNash Company - Common Stock|Q|N|N|100 -SPU|SkyPeople Fruit Juice, Inc. - Common Stock|G|N|N|100 -SPWH|Sportsman's Warehouse Holdings, Inc. - Common Stock|Q|N|N|100 -SPWR|SunPower Corporation - Common Stock|Q|N|N|100 -SQBG|Sequential Brands Group, Inc. - Common Stock|S|N|N|100 -SQBK|Square 1 Financial, Inc. - Class A Common Stock|Q|N|N|100 -SQI|SciQuest, Inc. - Common Stock|Q|N|N|100 -SQNM|Sequenom, Inc. - Common Stock|Q|N|N|100 -SQQQ|ProShares UltraPro Short QQQ|G|N|N|100 -SRCE|1st Source Corporation - Common Stock|Q|N|N|100 -SRCL|Stericycle, Inc. - Common Stock|Q|N|N|100 -SRDX|SurModics, Inc. - Common Stock|Q|N|N|100 -SREV|ServiceSource International, Inc. - Common Stock|Q|N|N|100 -SRNE|Sorrento Therapeutics, Inc. - Common Stock|S|N|N|100 -SRPT|Sarepta Therapeutics, Inc. - Common Stock|Q|N|N|100 -SRSC|Sears Canada Inc. - Common Shares|Q|N|N|100 -SSB|South State Corporation - Common Stock|Q|N|N|100 -SSBI|Summit State Bank - Common Stock|G|N|N|100 -SSFN|Stewardship Financial Corp - Common Stock|S|N|N|100 -SSH|Sunshine Heart Inc - Common Stock|S|N|N|100 -SSNC|SS&C Technologies Holdings, Inc. - Common Stock|Q|N|N|100 -SSRG|Symmetry Surgical Inc. - Common Stock|G|N|N|100 -SSRI|Silver Standard Resources Inc. - Common Stock|Q|N|N|100 -SSYS|Stratasys, Ltd. - Common Stock|Q|N|N|100 -STAA|STAAR Surgical Company - Common Stock|G|N|N|100 -STB|Student Transportation Inc - Common shares|Q|N|N|100 -STBA|S&T Bancorp, Inc. - Common Stock|Q|N|N|100 -STBZ|State Bank Financial Corporation. - Common Stock|S|N|N|100 -STCK|Stock Building Supply Holdings, Inc. - Common Stock|Q|N|N|100 -STEM|StemCells, Inc. - Common Stock|S|N|N|100 -STFC|State Auto Financial Corporation - Common Stock|Q|N|N|100 -STKL|SunOpta, Inc. - Common Stock|Q|N|N|100 -STLD|Steel Dynamics, Inc. - Common Stock|Q|N|N|100 -STLY|Stanley Furniture Company, Inc. - Common Stock|Q|N|N|100 -STML|Stemline Therapeutics, Inc. - Common Stock|S|N|N|100 -STMP|Stamps.com Inc. - Common Stock|Q|N|N|100 -STNR|Steiner Leisure Limited - Common Shares|Q|N|N|100 -STPP|Barclays PLC - iPath US Treasury Steepener ETN|G|N|N|100 -STRA|Strayer Education, Inc. - Common Stock|Q|N|N|100 -STRL|Sterling Construction Company Inc - Common Stock|Q|N|N|100 -STRM|Streamline Health Solutions, Inc. - Common Stock|S|N|N|100 -STRN|Sutron Corporation - Common Stock|S|N|N|100 -STRS|Stratus Properties, Inc. - Common Stock|Q|N|N|100 -STRT|Strattec Security Corporation - Common Stock|G|N|N|100 -STRZA|Starz - Series A Common Stock|Q|N|N|100 -STRZB|Starz - Series B Common Stock|Q|N|N|100 -STX|Seagate Technology. - Common Stock|Q|N|N|100 -STXS|Stereotaxis, Inc. - Common Stock|S|N|N|100 -SUBK|Suffolk Bancorp - Common Stock|Q|N|N|100 -SUMR|Summer Infant, Inc. - Common Stock|S|N|N|100 -SUNS|Solar Senior Capital Ltd. - Common Stock|Q|N|N|100 -SUPN|Supernus Pharmaceuticals, Inc. - Common Stock|G|N|N|100 -SURG|Synergetics USA, Inc. - Common Stock|S|N|N|100 -SUSQ|Susquehanna Bancshares, Inc. - Common Stock|Q|N|N|100 -SUTR|Sutor Technology Group Limited - Common Stock|S|N|D|100 -SVA|Sinovac Biotech, Ltd. - Ordinary Shares (Antigua/Barbudo)|Q|N|N|100 -SVBI|Severn Bancorp Inc - Common Stock|S|N|N|100 -SVVC|Firsthand Technology Value Fund, Inc. - Common Stock|Q|N|N|100 -SWHC|Smith & Wesson Holding Corporation - Common Stock|Q|N|N|100 -SWIR|Sierra Wireless, Inc. - Common Stock|Q|N|N|100 -SWKS|Skyworks Solutions, Inc. - Common Stock|Q|N|N|100 -SWSH|Swisher Hygiene, Inc. - Common Stock|S|N|N|100 -SYBT|Stock Yards Bancorp, Inc. - Common Stock|Q|N|N|100 -SYKE|Sykes Enterprises, Incorporated - Common Stock|Q|N|N|100 -SYMC|Symantec Corporation - Common Stock|Q|N|N|100 -SYMX|Synthesis Energy Systems, Inc. - Common Stock|G|N|N|100 -SYNA|Synaptics Incorporated - Common Stock|Q|N|N|100 -SYNC|Synacor, Inc. - Common Stock|G|N|N|100 -SYNL|Synalloy Corporation - Common Stock|G|N|N|100 -SYNT|Syntel, Inc. - Common Stock|Q|N|N|100 -SYPR|Sypris Solutions, Inc. - Common Stock|G|N|N|100 -SYRX|Sysorex Global Holding Corp. - Common Stock|S|N|N|100 -SYUT|Synutra International, Inc. - Common Stock|Q|N|N|100 -SZMK|Sizmek Inc. - Common Stock|Q|N|N|100 -SZYM|Solazyme, Inc. - Common Stock|Q|N|N|100 -TACT|TransAct Technologies Incorporated - Common Stock|G|N|N|100 -TAIT|Taitron Components Incorporated - Class A Common Stock|S|N|N|100 -TAPR|Barclays PLC - Barclays Inverse US Treasury Composite ETN|G|N|N|100 -TASR|TASER International, Inc. - Common Stock|Q|N|N|100 -TAST|Carrols Restaurant Group, Inc. - Common Stock|Q|N|N|100 -TATT|TAT Technologies Ltd. - Ordinary Shares|G|N|N|100 -TAX|Liberty Tax, Inc. - Class A Common Stock|Q|N|N|100 -TAXI|Medallion Financial Corp. - Common Stock|Q|N|N|100 -TAYD|Taylor Devices, Inc. - Common Stock|S|N|N|100 -TBBK|The Bancorp, Inc. - Common Stock|Q|N|N|100 -TBIO|Transgenomic, Inc. - Common Stock|S|N|N|100 -TBK|Triumph Bancorp, Inc. - Common Stock|Q|N|N|100 -TBNK|Territorial Bancorp Inc. - Common Stock|Q|N|N|100 -TBPH|Theravance Biopharma, Inc. - Ordinary Shares|G|N|N|100 -TCBI|Texas Capital Bancshares, Inc. - Common Stock|Q|N|N|100 -TCBIL|Texas Capital Bancshares, Inc. - 6.50% Subordinated Notes due 2042|Q|N|N|100 -TCBIP|Texas Capital Bancshares, Inc. - Non Cumulative Preferred Perpetual Stock Series A|Q|N|N|100 -TCBIW|Texas Capital Bancshares, Inc. - Warrants 01/16/2019|Q|N|N|100 -TCBK|TriCo Bancshares - Common Stock|Q|N|N|100 -TCCO|Technical Communications Corporation - Common Stock|S|N|N|100 -TCFC|The Community Financial Corporation - Common Stock|S|N|N|100 -TCPC|TCP Capital Corp. - Common Stock|Q|N|N|100 -TCRD|THL Credit, Inc. - Common Stock|Q|N|N|100 -TCX|Tucows Inc. - Common Stock|S|N|N|100 -TDIV|First Trust Exchange-Traded Fund VI First Trust NASDAQ Technology Dividend Index Fund|G|N|N|100 -TEAR|TearLab Corporation - Common Stock|S|N|N|100 -TECD|Tech Data Corporation - Common Stock|Q|N|N|100 -TECH|Bio-Techne Corp - Common Stock|Q|N|N|100 -TECU|Tecumseh Products Company - Common Stock|Q|N|N|100 -TEDU|Tarena International, Inc. - American Depositary Shares|Q|N|N|100 -TENX|Tenax Therapeutics, Inc. - Common Stock|S|N|N|100 -TERP|TerraForm Power, Inc. - Class A Common Stock|Q|N|N|100 -TESO|Tesco Corporation - Common Stock|Q|N|N|100 -TESS|TESSCO Technologies Incorporated - Common Stock|Q|N|N|100 -TFM|The Fresh Market, Inc. - Common Stock|Q|N|N|100 -TFSC|1347 Capital Corp. - Common Stock|S|N|N|100 -TFSCR|1347 Capital Corp. - Right|S|N|N|100 -TFSCU|1347 Capital Corp. - Unit|S|N|N|100 -TFSCW|1347 Capital Corp. - Warrant|S|N|N|100 -TFSL|TFS Financial Corporation - Common Stock|Q|N|N|100 -TGA|Transglobe Energy Corp - Ordinary Shares|Q|N|N|100 -TGE|TGC Industries, Inc. - Common Stock|Q|N|N|100 -TGEN|Tecogen Inc. - Common Stock|S|N|N|100 -TGLS|Tecnoglass Inc. - Ordinary Shares|S|N|N|100 -TGTX|TG Therapeutics, Inc. - Common Stock|S|N|N|100 -THFF|First Financial Corporation Indiana - Common Stock|Q|N|N|100 -THLD|Threshold Pharmaceuticals, Inc. - Common Stock|S|N|N|100 -THOR|Thoratec Corporation - Common Stock|Q|N|N|100 -THRM|Gentherm Inc - Common Stock|Q|N|N|100 -THRX|Theravance, Inc. - Common Stock|Q|N|N|100 -THST|Truett-Hurst, Inc. - Class A Common Stock|S|N|N|100 -THTI|THT Heat Transfer Technology, Inc. - Common Stock|S|N|N|100 -TICC|TICC Capital Corp. - Closed End Fund|Q|N|N|100 -TIGR|TigerLogic Corporation - Common Stock|S|N|D|100 -TILE|Interface, Inc. - Common Stock|Q|N|N|100 -TINY|Harris & Harris Group, Inc. - Common Stock|G|N|N|100 -TIPT|Tiptree Financial Inc. - Class A Common Stock|S|N|N|100 -TISA|Top Image Systems, Ltd. - Ordinary Shares|S|N|N|100 -TITN|Titan Machinery Inc. - Common Stock|Q|N|N|100 -TIVO|TiVo Inc. - Common Stock|Q|N|N|100 -TKAI|Tokai Pharmaceuticals, Inc. - Common Stock|G|N|N|100 -TKMR|Tekmira Pharmaceuticals Corp - Common Stock|S|N|N|100 -TLF|Tandy Leather Factory, Inc. - Common Stock|G|N|N|100 -TLMR|Talmer Bancorp, Inc. - Class A Common Stock|S|N|N|100 -TLOG|TetraLogic Pharmaceuticals Corporation - Common Stock|G|N|N|100 -TNAV|Telenav, Inc. - Common Stock|Q|N|N|100 -TNDM|Tandem Diabetes Care, Inc. - Common Stock|G|N|N|100 -TNGO|Tangoe, Inc. - Common Stock|Q|N|N|100 -TNXP|Tonix Pharmaceuticals Holding Corp. - Common Stock|G|N|N|100 -TOPS|TOP Ships Inc. - Common Stock|Q|N|N|100 -TORM|TOR Minerals International Inc - Common Stock|S|N|N|100 -TOUR|Tuniu Corporation - American Depositary Shares|G|N|N|100 -TOWN|Towne Bank - Common Stock|Q|N|N|100 -TQQQ|ProShares UltraPro QQQ|G|N|N|100 -TRAK|Dealertrack Technologies, Inc. - Common Stock|Q|N|N|100 -TRCB|Two River Bancorp - Common Stock|S|N|N|100 -TRCH|Torchlight Energy Resources, Inc. - Common Stock|S|N|N|100 -TREE|LendingTree, Inc. - Common Stock|Q|N|N|100 -TRGT|Targacept, Inc. - Common Stock|Q|N|N|100 -TRIB|Trinity Biotech plc - American Depositary Shares each representing 4 A Ordinary Shares|Q|N|N|100 -TRIL|Trillium Therapeutics Inc. - Common Shares|S|N|N|100 -TRIP|TripAdvisor, Inc. - Common Stock|Q|N|N|100 -TRIV|TriVascular Technologies, Inc. - Common Stock|Q|N|N|100 -TRMB|Trimble Navigation Limited - Common Stock|Q|N|N|100 -TRMK|Trustmark Corporation - Common Stock|Q|N|N|100 -TRNS|Transcat, Inc. - Common Stock|G|N|N|100 -TRNX|Tornier N.V. - Ordinary Shares|Q|N|N|100 -TROV|TrovaGene, Inc. - Common Stock|S|N|N|100 -TROVU|TrovaGene, Inc. - Unit|S|N|N|100 -TROVW|TrovaGene, Inc. - Warrant|S|N|N|100 -TROW|T. Rowe Price Group, Inc. - Common Stock|Q|N|N|100 -TRS|TriMas Corporation - Common Stock|Q|N|N|100 -TRST|TrustCo Bank Corp NY - Common Stock|Q|N|N|100 -TRTL|Terrapin 3 Acquisition Corporation - Class A Common Stock|S|N|N|100 -TRTLU|Terrapin 3 Acquisition Corporation - Units|S|N|N|100 -TRTLW|Terrapin 3 Acquisition Corporation - Warrants|S|N|N|100 -TRUE|TrueCar, Inc. - Common Stock|Q|N|N|100 -TRVN|Trevena, Inc. - Common Stock|Q|N|N|100 -TSBK|Timberland Bancorp, Inc. - Common Stock|G|N|N|100 -TSC|TriState Capital Holdings, Inc. - Common Stock|Q|N|N|100 -TSCO|Tractor Supply Company - Common Stock|Q|N|N|100 -TSEM|Tower Semiconductor Ltd. - Ordinary Shares|Q|N|N|100 -TSLA|Tesla Motors, Inc. - Common Stock|Q|N|N|100 -TSRA|Tessera Technologies, Inc. - Common Stock|Q|N|N|100 -TSRE|Trade Street Residential, Inc. - Common Stock|G|N|N|100 -TSRI|TSR, Inc. - Common Stock|S|N|N|100 -TSRO|TESARO, Inc. - Common Stock|Q|N|N|100 -TST|TheStreet, Inc. - Common Stock|G|N|N|100 -TSYS|TeleCommunication Systems, Inc. - Class A Common Stock|Q|N|N|100 -TTEC|TeleTech Holdings, Inc. - Common Stock|Q|N|N|100 -TTEK|Tetra Tech, Inc. - Common Stock|Q|N|N|100 -TTGT|TechTarget, Inc. - Common Stock|G|N|N|100 -TTHI|Transition Therapeutics, Inc. - Ordinary Shares (Canada)|G|N|N|100 -TTMI|TTM Technologies, Inc. - Common Stock|Q|N|N|100 -TTOO|T2 Biosystems, Inc. - Common Stock|G|N|N|100 -TTPH|Tetraphase Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 -TTS|Tile Shop Hldgs, Inc. - Common Stock|Q|N|N|100 -TTWO|Take-Two Interactive Software, Inc. - Common Stock|Q|N|N|100 -TUBE|TubeMogul, Inc. - Common Stock|Q|N|N|100 -TUES|Tuesday Morning Corp. - Common Stock|Q|N|N|100 -TUSA|First Trust Total US Market AlphaDEX ETF|G|N|N|100 -TVIX|Credit Suisse AG - VelocityShares Daily 2x VIX Short Term ETN|G|N|N|100 -TVIZ|Credit Suisse AG - VelocityShares Daily 2x VIX Medium Term ETN|G|N|N|100 -TWER|Towerstream Corporation - Common Stock|S|N|N|100 -TWIN|Twin Disc, Incorporated - Common Stock|Q|N|N|100 -TWMC|Trans World Entertainment Corp. - Common Stock|G|N|N|100 -TWOU|2U, Inc. - Common Stock|Q|N|N|100 -TXN|Texas Instruments Incorporated - Common Stock|Q|N|N|100 -TXRH|Texas Roadhouse, Inc. - Common Stock|Q|N|N|100 -TYPE|Monotype Imaging Holdings Inc. - Common Stock|Q|N|N|100 -TZOO|Travelzoo Inc. - Common Stock|Q|N|N|100 -UACL|Universal Truckload Services, Inc. - Common Stock|Q|N|N|100 -UAE|iShares MSCI UAE Capped ETF|G|N|N|100 -UBCP|United Bancorp, Inc. - Common Stock|S|N|N|100 -UBFO|United Security Bancshares - Common Stock|Q|N|N|100 -UBIC|UBIC, Inc. - American Depositary Shares|Q|N|N|100 -UBNK|United Financial Bancorp, Inc. - Common Stock|Q|N|N|100 -UBNT|Ubiquiti Networks, Inc. - Common Stock|Q|N|N|100 -UBOH|United Bancshares, Inc. - Common Stock|G|N|N|100 -UBSH|Union Bankshares Corporation - Common Stock|Q|N|N|100 -UBSI|United Bankshares, Inc. - Common Stock|Q|N|N|100 -UCBA|United Community Bancorp - Common Stock|G|N|N|100 -UCBI|United Community Banks, Inc. - Common Stock|Q|N|N|100 -UCFC|United Community Financial Corp. - Common Stock|Q|N|N|100 -UCTT|Ultra Clean Holdings, Inc. - Common Stock|Q|N|N|100 -UDF|United Development Funding IV - Common Shares of Beneficial Interest|Q|N|N|100 -UEIC|Universal Electronics Inc. - Common Stock|Q|N|N|100 -UEPS|Net 1 UEPS Technologies, Inc. - Common Stock|Q|N|N|100 -UFCS|United Fire Group, Inc - Common Stock|Q|N|N|100 -UFPI|Universal Forest Products, Inc. - Common Stock|Q|N|N|100 -UFPT|UFP Technologies, Inc. - Common Stock|S|N|N|100 -UG|United-Guardian, Inc. - Common Stock|G|N|N|100 -UGLD|Credit Suisse AG - VelocityShares 3x Long Gold ETN|G|N|N|100 -UHAL|Amerco - Common Stock|Q|N|N|100 -UIHC|United Insurance Holdings Corp. - Common Stock|S|N|N|100 -ULBI|Ultralife Corporation - Common Stock|G|N|N|100 -ULTA|Ulta Salon, Cosmetics & Fragrance, Inc. - Common Stock|Q|N|N|100 -ULTI|The Ultimate Software Group, Inc. - Common Stock|Q|N|N|100 -ULTR|Ultrapetrol (Bahamas) Limited - common stock|Q|N|N|100 -UMBF|UMB Financial Corporation - Common Stock|Q|N|N|100 -UMPQ|Umpqua Holdings Corporation - Common Stock|Q|N|N|100 -UNAM|Unico American Corporation - Common Stock|G|N|N|100 -UNB|Union Bankshares, Inc. - Common Stock|G|N|N|100 -UNFI|United Natural Foods, Inc. - Common Stock|Q|N|N|100 -UNIS|Unilife Corporation - Common Stock|G|N|N|100 -UNTD|United Online, Inc. - Common Stock|Q|N|N|100 -UNTY|Unity Bancorp, Inc. - Common Stock|G|N|N|100 -UNXL|Uni-Pixel, Inc. - Common Stock|S|N|N|100 -UPI|Uroplasty, Inc. - Common Stock|S|N|N|100 -UPIP|Unwired Planet, Inc. - Common Stock|Q|N|N|100 -UPLD|Upland Software, Inc. - Common Stock|G|N|N|100 -URBN|Urban Outfitters, Inc. - Common Stock|Q|N|N|100 -URRE|Uranium Resources, Inc. - Common Stock|S|N|N|100 -USAK|USA Truck, Inc. - Common Stock|Q|N|N|100 -USAP|Universal Stainless & Alloy Products, Inc. - Common Stock|Q|N|N|100 -USAT|USA Technologies, Inc. - Common Stock|G|N|N|100 -USATP|USA Technologies, Inc. - Preferred Stock|G|N|N|100 -USBI|United Security Bancshares, Inc. - Common Stock|S|N|N|100 -USCR|U S Concrete, Inc. - Common Stock|S|N|N|100 -USEG|U.S. Energy Corp. - Common Stock|S|N|N|100 -USLM|United States Lime & Minerals, Inc. - Common Stock|Q|N|N|100 -USLV|Credit Suisse AG - VelocityShares 3x Long Silver ETN|G|N|N|100 -USMD|USMD Holdings, Inc. - Common Stock|S|N|N|100 -USTR|United Stationers Inc. - Common Stock|Q|N|N|100 -UTEK|Ultratech, Inc. - Common Stock|Q|N|N|100 -UTHR|United Therapeutics Corporation - Common Stock|Q|N|N|100 -UTIW|UTi Worldwide Inc. - Ordinary Shares|Q|N|N|100 -UTMD|Utah Medical Products, Inc. - Common Stock|Q|N|N|100 -UTSI|UTStarcom Holdings Corp - Ordinary Shares|Q|N|N|100 -UVSP|Univest Corporation of Pennsylvania - Common Stock|Q|N|N|100 -VA|Virgin America Inc. - Common Stock|Q|N|N|100 -VALU|Value Line, Inc. - Common Stock|G|N|N|100 -VALX|Validea Market Legends ETF|G|N|N|100 -VASC|Vascular Solutions, Inc. - Common Stock|Q|N|N|100 -VBFC|Village Bank and Trust Financial Corp. - Common Stock|S|N|D|100 -VBIV|VBI Vaccines Inc. - Common Stock|S|N|N|100 -VBLT|Vascular Biogenics Ltd. - Ordinary Shares|G|N|N|100 -VBND|Vident Core U.S. Bond Strategy Fund|G|N|N|100 -VBTX|Veritex Holdings, Inc. - Common Stock|G|N|N|100 -VCEL|Vericel Corporation - Common Stock|S|N|N|100 -VCIT|Vanguard Intermediate-Term Corporate Bond ETF|G|N|N|100 -VCLT|Vanguard Long-Term Corporate Bond ETF|G|N|N|100 -VCSH|Vanguard Short-Term Corporate Bond ETF|G|N|N|100 -VCYT|Veracyte, Inc. - Common Stock|G|N|N|100 -VDSI|VASCO Data Security International, Inc. - Common Stock|S|N|N|100 -VECO|Veeco Instruments Inc. - Common Stock|Q|N|N|100 -VGGL|Viggle Inc. - Common Stock|S|N|N|100 -VGIT|Vanguard Intermediate -Term Government Bond ETF|G|N|N|100 -VGLT|Vanguard Long-Term Government Bond ETF|G|N|N|100 -VGSH|Vanguard Short-Term Government ETF|G|N|N|100 -VIA|Viacom Inc. - Class A Common Stock|Q|N|N|100 -VIAB|Viacom Inc. - Class B Common Stock|Q|N|N|100 -VIAS|Viasystems Group, Inc. - Common Stock|G|N|N|100 -VICL|Vical Incorporated - Common Stock|Q|N|N|100 -VICR|Vicor Corporation - Common Stock|Q|N|N|100 -VIDE|Video Display Corporation - Common Stock|G|N|D|100 -VIDI|Vident International Equity Fund|G|N|N|100 -VIEW|Viewtran Group, Inc. - Common Stock|Q|N|E|100 -VIIX|Credit Suisse AG - VelocityShares VIX Short Term ETN|G|N|N|100 -VIIZ|Credit Suisse AG - VelocityShares VIX Medium Term ETN|G|N|N|100 -VIMC|Vimicro International Corporation - American depositary shares, each representing four ordinary shares|G|N|N|100 -VIP|VimpelCom Ltd. - American Depositary Shares|Q|N|N|100 -VIRC|Virco Manufacturing Corporation - Common Stock|G|N|N|100 -VISN|VisionChina Media, Inc. - American Depositary Shares, each representing one Common Share|Q|N|N|100 -VIVO|Meridian Bioscience Inc. - Common Stock|Q|N|N|100 -VLCCF|Knightsbridge Shipping Limited - Common Stock|Q|N|N|100 -VLGEA|Village Super Market, Inc. - Class A Common Stock|Q|N|N|100 -VLTC|Voltari Corporation - Common Stock|S|N|D|100 -VLYWW|Valley National Bancorp - Warrants 07/01/2015|S|N|N|100 -VMBS|Vanguard Mortgage-Backed Securities ETF|G|N|N|100 -VNDA|Vanda Pharmaceuticals Inc. - Common Stock|G|N|N|100 -VNET|21Vianet Group, Inc. - American Depositary Shares|Q|N|N|100 -VNOM|Viper Energy Partners LP - Common Unit|Q|N|N|100 -VNQI|Vanguard Global ex-U.S. Real Estate ETF|G|N|N|100 -VNR|Vanguard Natural Resources LLC - Common Units|Q|N|N|100 -VNRAP|Vanguard Natural Resources LLC - 7.875% Series A Cumulative Redeemable Perpetual Preferred Unit|Q|N|N|100 -VNRBP|Vanguard Natural Resources LLC - 7.625% Series B Cumulative Redeemable Perpetual Preferred Unit|Q|N|N|100 -VNRCP|Vanguard Natural Resources LLC - 7.75% Series C Cumulative Redeemable Perpetual Preferred Unit|Q|N|N|100 -VOD|Vodafone Group Plc - American Depositary Shares each representing ten Ordinary Shares|Q|N|N|100 -VOLC|Volcano Corporation - Common Stock|Q|N|N|100 -VONE|Vanguard Russell 1000 ETF|G|N|N|100 -VONG|Vanguard Russell 1000 Growth ETF|G|N|N|100 -VONV|Vanguard Russell 1000 Value ETF|G|N|N|100 -VOXX|VOXX International Corporation - Class A Common Stock|Q|N|N|100 -VPCO|Vapor Corp. - Common Stock|S|N|N|100 -VRA|Vera Bradley, Inc. - Common Stock|Q|N|N|100 -VRML|Vermillion, Inc. - Common Stock|S|N|N|100 -VRNG|Vringo, Inc. - Common Stock|S|N|D|100 -VRNGW|Vringo, Inc. - Warrants|S|N|N|100 -VRNS|Varonis Systems, Inc. - Common Stock|Q|N|N|100 -VRNT|Verint Systems Inc. - Common Stock|Q|N|N|100 -VRSK|Verisk Analytics, Inc. - Class A Common Stock|Q|N|N|100 -VRSN|VeriSign, Inc. - Common Stock|Q|N|N|100 -VRTA|Vestin Realty Mortgage I, Inc. - Common Stock|G|N|N|100 -VRTB|Vestin Realty Mortgage II, Inc. - Common Stock|Q|N|N|100 -VRTS|Virtus Investment Partners, Inc. - Common Stock|Q|N|N|100 -VRTU|Virtusa Corporation - common stock|Q|N|N|100 -VRTX|Vertex Pharmaceuticals Incorporated - Common Stock|Q|N|N|100 -VSAR|Versartis, Inc. - Common Stock|Q|N|N|100 -VSAT|ViaSat, Inc. - Common Stock|Q|N|N|100 -VSCI|Vision-Sciences, Inc. - Common Stock|S|N|N|100 -VSCP|VirtualScopics, Inc. - Common Stock|S|N|N|100 -VSEC|VSE Corporation - Common Stock|Q|N|N|100 -VSTM|Verastem, Inc. - Common Stock|G|N|N|100 -VTAE|Vitae Pharmaceuticals, Inc. - Common Stock|G|N|N|100 -VTHR|Vanguard Russell 3000 ETF|G|N|N|100 -VTIP|Vanguard Short-Term Inflation-Protected Securities Index Fund|G|N|N|100 -VTL|Vital Therapies, Inc. - Common Stock|Q|N|N|100 -VTNR|Vertex Energy, Inc - Common Stock|S|N|N|100 -VTSS|Vitesse Semiconductor Corporation - Common Stock|G|N|N|100 -VTWG|Vanguard Russell 2000 Growth ETF|G|N|N|100 -VTWO|Vanguard Russell 2000 ETF|G|N|N|100 -VTWV|Vanguard Russell 2000 Value ETF|G|N|N|100 -VUSE|Vident Core US Equity ETF|G|N|N|100 -VVUS|VIVUS, Inc. - Common Stock|Q|N|N|100 -VWOB|Vanguard Emerging Markets Government Bond ETF|G|N|N|100 -VWR|VWR Corporation - Common Stock|Q|N|N|100 -VXUS|Vanguard Total International Stock ETF|G|N|N|100 -VYFC|Valley Financial Corporation - Common Stock|S|N|N|100 -WABC|Westamerica Bancorporation - Common Stock|Q|N|N|100 -WAFD|Washington Federal, Inc. - Common Stock|Q|N|N|100 -WAFDW|Washington Federal, Inc. - Warrants 11/14/2018|Q|N|N|100 -WASH|Washington Trust Bancorp, Inc. - Common Stock|Q|N|N|100 -WATT|Energous Corporation - Common Stock|S|N|N|100 -WAVX|Wave Systems Corp. - Class A Common Stock|S|N|N|100 -WAYN|Wayne Savings Bancshares Inc. - Common Stock|G|N|N|100 -WB|Weibo Corporation - American Depositary Share|Q|N|N|100 -WBA|Walgreens Boots Alliance, Inc. - Common Stock|Q|N|N|100 -WBB|Westbury Bancorp, Inc. - Common Stock|S|N|N|100 -WBKC|Wolverine Bancorp, Inc. - Common Stock|S|N|N|100 -WBMD|WebMD Health Corp - Common Stock|Q|N|N|100 -WDC|Western Digital Corporation - Common Stock|Q|N|N|100 -WDFC|WD-40 Company - Common Stock|Q|N|N|100 -WEBK|Wellesley Bancorp, Inc. - Common Stock|S|N|N|100 -WEN|Wendy's Company (The) - Common Stock|Q|N|N|100 -WERN|Werner Enterprises, Inc. - Common Stock|Q|N|N|100 -WETF|WisdomTree Investments, Inc. - Common Stock|Q|N|N|100 -WEYS|Weyco Group, Inc. - Common Stock|Q|N|N|100 -WFBI|WashingtonFirst Bankshares Inc - Common Stock|S|N|N|100 -WFD|Westfield Financial, Inc. - Common Stock|Q|N|N|100 -WFM|Whole Foods Market, Inc. - Common Stock|Q|N|N|100 -WGBS|WaferGen Bio-systems, Inc. - Common Stock|S|N|N|100 -WHF|WhiteHorse Finance, Inc. - Common Stock|Q|N|N|100 -WHFBL|WhiteHorse Finance, Inc. - 6.50% Senior Notes due 2020|Q|N|N|100 -WHLM|Wilhelmina International, Inc. - Common Stock|S|N|N|100 -WHLR|Wheeler Real Estate Investment Trust, Inc. - Common Stock|S|N|N|100 -WHLRP|Wheeler Real Estate Investment Trust, Inc. - Preferred Stock|S|N|N|100 -WHLRW|Wheeler Real Estate Investment Trust, Inc. - Warrants|S|N|N|100 -WIBC|Wilshire Bancorp, Inc. - Common Stock|Q|N|N|100 -WIFI|Boingo Wireless, Inc. - Common Stock|Q|N|N|100 -WILC|G. Willi-Food International, Ltd. - Ordinary Shares|S|N|N|100 -WILN|Wi-LAN Inc - Common Shares|Q|N|N|100 -WIN|Windstream Holdings, Inc. - Common Stock|Q|N|N|100 -WINA|Winmark Corporation - Common Stock|G|N|N|100 -WIRE|Encore Wire Corporation - Common Stock|Q|N|N|100 -WIX|Wix.com Ltd. - Ordinary Shares|Q|N|N|100 -WLB|Westmoreland Coal Company - Common Stock|G|N|N|100 -WLBPZ|Westmoreland Coal Company - Depositary Shares, rep. 1/4 of a share of Ser. A Preferred Stock|G|N|N|100 -WLDN|Willdan Group, Inc. - Common Stock|G|N|N|100 -WLFC|Willis Lease Finance Corporation - Common Stock|G|N|N|100 -WLRH|WL Ross Holding Corp. - Common Stock|S|N|N|100 -WLRHU|WL Ross Holding Corp. - Unit|S|N|N|100 -WLRHW|WL Ross Holding Corp. - Warrant|S|N|N|100 -WMAR|West Marine, Inc. - Common Stock|Q|N|N|100 -WMGI|Wright Medical Group, Inc. - Common Stock|Q|N|N|100 -WMGIZ|Wright Medical Group, Inc. - Contingent Value Right|G|N|N|100 -WOOD|iShares S&P Global Timber & Forestry Index Fund|G|N|N|100 -WOOF|VCA Inc. - Common Stock|Q|N|N|100 -WPCS|WPCS International Incorporated - Common Stock|S|N|D|100 -WPPGY|WPP plc - American Depositary Shares each representing five Ordinary Shares|Q|N|N|100 -WPRT|Westport Innovations Inc - Ordinary Shares|Q|N|N|100 -WRES|Warren Resources, Inc. - Common Stock|Q|N|N|100 -WRLD|World Acceptance Corporation - Common Stock|Q|N|N|100 -WSBC|WesBanco, Inc. - Common Stock|Q|N|N|100 -WSBF|Waterstone Financial, Inc. - Common Stock|Q|N|N|100 -WSCI|WSI Industries Inc. - Common Stock|S|N|N|100 -WSFS|WSFS Financial Corporation - Common Stock|Q|N|N|100 -WSFSL|WSFS Financial Corporation - 6.25% Senior Notes Due 2019|Q|N|N|100 -WSTC|West Corporation - Common Stock|Q|N|N|100 -WSTG|Wayside Technology Group, Inc. - Common Stock|G|N|N|100 -WSTL|Westell Technologies, Inc. - Class A Common Stock|Q|N|N|100 -WTBA|West Bancorporation - Common Stock|Q|N|N|100 -WTFC|Wintrust Financial Corporation - Common Stock|Q|N|N|100 -WTFCW|Wintrust Financial Corporation - Warrants|Q|N|N|100 -WTSL|The Wet Seal, Inc. - Class A Common Stock|Q|N|D|100 -WVFC|WVS Financial Corp. - Common Stock|G|N|N|100 -WVVI|Willamette Valley Vineyards, Inc. - Common Stock|S|N|N|100 -WWD|Woodward, Inc. - Common Stock|Q|N|N|100 -WWWW|Web.com Group, Inc. - Common Stock|Q|N|N|100 -WYNN|Wynn Resorts, Limited - Common Stock|Q|N|N|100 -XBKS|Xenith Bankshares, Inc. - Common Stock|S|N|N|100 -XCRA|Xcerra Corporation - Common Stock|Q|N|N|100 -XENE|Xenon Pharmaceuticals Inc. - Common Shares|G|N|N|100 -XENT|Intersect ENT, Inc. - Common Stock|G|N|N|100 -XGTI|XG Technology, Inc - Common Stock|S|N|N|100 -XGTIW|XG Technology, Inc - Warrants|S|N|N|100 -XIV|Credit Suisse AG - VelocityShares Daily Inverse VIX Short Term ETN|G|N|N|100 -XLNX|Xilinx, Inc. - Common Stock|Q|N|N|100 -XLRN|Acceleron Pharma Inc. - Common Stock|G|N|N|100 -XNCR|Xencor, Inc. - Common Stock|G|N|N|100 -XNET|Xunlei Limited - American Depositary Receipts|Q|N|N|100 -XNPT|XenoPort, Inc. - Common Stock|Q|N|N|100 -XOMA|XOMA Corporation - Common Stock|G|N|N|100 -XONE|The ExOne Company - Common Stock|Q|N|N|100 -XOOM|Xoom Corporation - Common Stock|Q|N|N|100 -XPLR|Xplore Technologies Corp - Common Stock|S|N|N|100 -XRAY|DENTSPLY International Inc. - Common Stock|Q|N|N|100 -XTLB|XTL Biopharmaceuticals Ltd. - American Depositary Shares|S|N|N|100 -XXIA|Ixia - Common Stock|Q|N|N|100 -YDIV|First Trust International Multi-Asset Diversified Income Index Fund|G|N|N|100 -YDLE|Yodlee, Inc. - Common Stock|Q|N|N|100 -YHOO|Yahoo! Inc. - Common Stock|Q|N|N|100 -YNDX|Yandex N.V. - Class A Ordinary Shares|Q|N|N|100 -YOD|You On Demand Holdings, Inc. - Common Stock|S|N|N|100 -YORW|The York Water Company - Common Stock|Q|N|N|100 -YPRO|AdvisorShares YieldPro ETF|G|N|N|100 -YRCW|YRC Worldwide, Inc. - Common Stock|Q|N|N|100 -YY|YY Inc. - American Depositary Shares|Q|N|N|100 -Z|Zillow, Inc. - Class A Common Stock|Q|N|N|100 -ZAGG|ZAGG Inc - Common Stock|Q|N|N|100 -ZAZA|ZaZa Energy Corporation - Common Stock|S|N|N|100 -ZBRA|Zebra Technologies Corporation - Class A Common Stock|Q|N|N|100 -ZEUS|Olympic Steel, Inc. - Common Stock|Q|N|N|100 -ZFGN|Zafgen, Inc. - Common Stock|Q|N|N|100 -ZGNX|Zogenix, Inc. - Common Stock|G|N|N|100 -ZHNE|Zhone Technologies, Inc. - Common Stock|S|N|N|100 -ZINC|Horsehead Holding Corp. - Common Stock|Q|N|N|100 -ZION|Zions Bancorporation - Common Stock|Q|N|N|100 -ZIONW|Zions Bancorporation - Warrants 05/21/2020|Q|N|N|100 -ZIONZ|Zions Bancorporation - Warrants|Q|N|N|100 -ZIOP|ZIOPHARM Oncology Inc - Common Stock|S|N|N|100 -ZIV|Credit Suisse AG - VelocityShares Daily Inverse VIX Medium Term ETN|G|N|N|100 -ZIXI|Zix Corporation - Common Stock|Q|N|N|100 -ZJZZT|NASDAQ TEST STOCK|Q|Y|N|100 -ZLTQ|ZELTIQ Aesthetics, Inc. - Common Stock|Q|N|N|100 -ZN|Zion Oil & Gas Inc - Common Stock|G|N|N|100 -ZNGA|Zynga Inc. - Class A Common Stock|Q|N|N|100 -ZSAN|Zosano Pharma Corporation - Common Stock|G|N|N|100 -ZSPH|ZS Pharma, Inc. - Common Stock|G|N|N|100 -ZU|zulily, inc. - Class A Common Stock|Q|N|N|100 -ZUMZ|Zumiez Inc. - Common Stock|Q|N|N|100 -ZVZZT|NASDAQ TEST STOCK|G|Y|N|100 -ZWZZT|NASDAQ TEST STOCK|S|Y|N|100 -ZXYZ.A|Nasdaq Symbology Test Common Stock|Q|Y|N|100 +AAIT|iShares MSCI All Country Asia Information Technology Index Fund|G|N|N|100 +AAL|American Airlines Group, Inc. - Common Stock|Q|N|N|100 +AAME|Atlantic American Corporation - Common Stock|G|N|N|100 +AAOI|Applied Optoelectronics, Inc. - Common Stock|G|N|N|100 +AAON|AAON, Inc. - Common Stock|Q|N|N|100 +AAPL|Apple Inc. - Common Stock|Q|N|N|100 +AAVL|Avalanche Biotechnologies, Inc. - Common Stock|G|N|N|100 +AAWW|Atlas Air Worldwide Holdings - Common Stock|Q|N|N|100 +AAXJ|iShares MSCI All Country Asia ex Japan Index Fund|G|N|N|100 +ABAC|Aoxin Tianli Group, Inc. - Common Shares|S|N|N|100 +ABAX|ABAXIS, Inc. - Common Stock|Q|N|N|100 +ABCB|Ameris Bancorp - Common Stock|Q|N|N|100 +ABCD|Cambium Learning Group, Inc. - Common Stock|S|N|N|100 +ABCO|The Advisory Board Company - Common Stock|Q|N|N|100 +ABCW|Anchor BanCorp Wisconsin Inc. - Common Stock|Q|N|N|100 +ABDC|Alcentra Capital Corp. - Common Stock|Q|N|N|100 +ABGB|Abengoa, S.A. - American Depositary Shares|Q|N|N|100 +ABIO|ARCA biopharma, Inc. - Common Stock|S|N|N|100 +ABMD|ABIOMED, Inc. - Common Stock|Q|N|N|100 +ABTL|Autobytel Inc. - Common Stock|S|N|N|100 +ABY|Abengoa Yield plc - Ordinary Shares|Q|N|N|100 +ACAD|ACADIA Pharmaceuticals Inc. - Common Stock|Q|N|N|100 +ACAS|American Capital, Ltd. - Common Stock|Q|N|N|100 +ACAT|Arctic Cat Inc. - Common Stock|Q|N|N|100 +ACET|Aceto Corporation - Common Stock|Q|N|N|100 +ACFC|Atlantic Coast Financial Corporation - Common Stock|G|N|N|100 +ACFN|Acorn Energy, Inc. - Common Stock|G|N|D|100 +ACGL|Arch Capital Group Ltd. - Common Stock|Q|N|N|100 +ACHC|Acadia Healthcare Company, Inc. - Common Stock|Q|N|N|100 +ACHN|Achillion Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +ACIW|ACI Worldwide, Inc. - Common Stock|Q|N|N|100 +ACLS|Axcelis Technologies, Inc. - Common Stock|Q|N|N|100 +ACNB|ACNB Corporation - Common Stock|S|N|N|100 +ACOR|Acorda Therapeutics, Inc. - Common Stock|Q|N|N|100 +ACPW|Active Power, Inc. - Common Stock|S|N|N|100 +ACRX|AcelRx Pharmaceuticals, Inc. - Common Stock|G|N|N|100 +ACSF|American Capital Senior Floating, Ltd. - Common Stock|Q|N|N|100 +ACST|Acasti Pharma, Inc. - Class A Common Stock|S|N|D|100 +ACTA|Actua Corporation - Common Stock|Q|N|N|100 +ACTG|Acacia Research Corporation - Common Stock|Q|N|N|100 +ACTS|Actions Semiconductor Co., Ltd. - American Depositary Shares, each representing Six Ordinary Shares|Q|N|N|100 +ACUR|Acura Pharmaceuticals, Inc. - Common Stock|S|N|D|100 +ACWI|iShares MSCI ACWI Index Fund|G|N|N|100 +ACWX|iShares MSCI ACWI ex US Index Fund|G|N|N|100 +ACXM|Acxiom Corporation - Common Stock|Q|N|N|100 +ADAT|Authentidate Holding Corp. - Common Stock|S|N|N|100 +ADBE|Adobe Systems Incorporated - Common Stock|Q|N|N|100 +ADEP|Adept Technology, Inc. - Common Stock|S|N|N|100 +ADES|Advanced Emissions Solutions, Inc. - Common Stock|S|N|H|100 +ADHD|Alcobra Ltd. - Ordinary Shares|G|N|N|100 +ADI|Analog Devices, Inc. - Common Stock|Q|N|N|100 +ADMA|ADMA Biologics Inc - Common Stock|S|N|N|100 +ADMP|Adamis Pharmaceuticals Corporation - Common Stock|S|N|N|100 +ADMS|Adamas Pharmaceuticals, Inc. - Common Stock|G|N|N|100 +ADNC|Audience, Inc. - Common Stock|Q|N|N|100 +ADP|Automatic Data Processing, Inc. - Common Stock|Q|N|N|100 +ADRA|BLDRS Asia 50 ADR Index Fund|G|N|N|100 +ADRD|BLDRS Developed Markets 100 ADR Index Fund|G|N|N|100 +ADRE|BLDRS Emerging Markets 50 ADR Index Fund|G|N|N|100 +ADRU|BLDRS Europe 100 ADR Index Fund|G|N|N|100 +ADSK|Autodesk, Inc. - Common Stock|Q|N|N|100 +ADTN|ADTRAN, Inc. - Common Stock|Q|N|N|100 +ADUS|Addus HomeCare Corporation - Common Stock|Q|N|N|100 +ADVS|Advent Software, Inc. - Common Stock|Q|N|N|100 +ADXS|Advaxis, Inc. - Common Stock|S|N|N|100 +ADXSW|Advaxis, Inc. - Warrants|S|N|N|100 +AEGN|Aegion Corp - Class A Common Stock|Q|N|N|100 +AEGR|Aegerion Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +AEHR|Aehr Test Systems - Common Stock|S|N|N|100 +AEIS|Advanced Energy Industries, Inc. - Common Stock|Q|N|N|100 +AEPI|AEP Industries Inc. - Common Stock|Q|N|N|100 +AERI|Aerie Pharmaceuticals, Inc. - Common Stock|G|N|N|100 +AETI|American Electric Technologies, Inc. - Common Stock|S|N|N|100 +AEY|ADDvantage Technologies Group, Inc. - Common Stock|G|N|N|100 +AEZS|AEterna Zentaris Inc. - Common Stock|S|N|D|100 +AFAM|Almost Family Inc - Common Stock|Q|N|N|100 +AFCB|Athens Bancshares Corporation - Common Stock|S|N|N|100 +AFFX|Affymetrix, Inc. - Common Stock|Q|N|N|100 +AFH|Atlas Financial Holdings, Inc. - Ordinary Shares|S|N|N|100 +AFMD|Affimed N.V. - Common Stock|G|N|N|100 +AFOP|Alliance Fiber Optic Products, Inc. - Common Stock|G|N|N|100 +AFSI|AmTrust Financial Services, Inc. - Common Stock|Q|N|N|100 +AGEN|Agenus Inc. - Common Stock|S|N|N|100 +AGII|Argo Group International Holdings, Ltd. - Common Stock|Q|N|N|100 +AGIIL|Argo Group International Holdings, Ltd. - 6.5% Senior Notes Due 2042|Q|N|N|100 +AGIO|Agios Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +AGNC|American Capital Agency Corp. - Common Stock|Q|N|N|100 +AGNCB|American Capital Agency Corp. - Depositary Shares representing 1/1000th Series B Preferred Stock|Q|N|N|100 +AGNCP|American Capital Agency Corp. - Cumulative Preferred Series A|Q|N|N|100 +AGND|WisdomTree Barclays U.S. Aggregate Bond Negative Duration Fund|G|N|N|100 +AGRX|Agile Therapeutics, Inc. - Common Stock|G|N|N|100 +AGTC|Applied Genetic Technologies Corporation - Common Stock|G|N|N|100 +AGYS|Agilysys, Inc. - Common Stock|Q|N|N|100 +AGZD|WisdomTree Barclays U.S. Aggregate Bond Zero Duration Fund|G|N|N|100 +AHGP|Alliance Holdings GP, L.P. - Common Units Representing Limited Partner Interests|Q|N|N|100 +AHPI|Allied Healthcare Products, Inc. - Common Stock|G|N|N|100 +AIMC|Altra Industrial Motion Corp. - Common Stock|Q|N|N|100 +AINV|Apollo Investment Corporation - Closed End Fund|Q|N|N|100 +AIQ|Alliance HealthCare Services, Inc. - Common Stock|G|N|N|100 +AIRM|Air Methods Corporation - Common Stock|Q|N|N|100 +AIRR|First Trust RBA American Industrial Renaissance ETF|G|N|N|100 +AIRT|Air T, Inc. - Common Stock|S|N|N|100 +AIXG|Aixtron SE - American Depositary Shares, each representing one Ordinary Share|Q|N|N|100 +AKAM|Akamai Technologies, Inc. - Common Stock|Q|N|N|100 +AKAO|Achaogen, Inc. - Common Stock|G|N|N|100 +AKBA|Akebia Therapeutics, Inc. - Common Stock|G|N|N|100 +AKER|Akers Biosciences Inc - Common Stock|S|N|N|100 +AKRX|Akorn, Inc. - Common Stock|Q|N|N|100 +ALCO|Alico, Inc. - Common Stock|Q|N|N|100 +ALDR|Alder BioPharmaceuticals, Inc. - Common Stock|G|N|N|100 +ALDX|Aldeyra Therapeutics, Inc. - Common Stock|S|N|N|100 +ALGN|Align Technology, Inc. - Common Stock|Q|N|N|100 +ALGT|Allegiant Travel Company - Common Stock|Q|N|N|100 +ALIM|Alimera Sciences, Inc. - Common Stock|G|N|N|100 +ALKS|Alkermes plc - Ordinary Shares|Q|N|N|100 +ALLB|Alliance Bancorp, Inc. of Pennsylvania - Common Stock|G|N|N|100 +ALLT|Allot Communications Ltd. - Ordinary Shares|Q|N|N|100 +ALNY|Alnylam Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +ALOG|Analogic Corporation - Common Stock|Q|N|N|100 +ALOT|Astro-Med, Inc. - Common Stock|G|N|N|100 +ALQA|Alliqua BioMedical, Inc. - Common Stock|S|N|N|100 +ALSK|Alaska Communications Systems Group, Inc. - Common Stock|Q|N|N|100 +ALTR|Altera Corporation - Common Stock|Q|N|N|100 +ALXA|Alexza Pharmaceuticals, Inc. - Common Stock|G|N|D|100 +ALXN|Alexion Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +AMAG|AMAG Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +AMAT|Applied Materials, Inc. - Common Stock|Q|N|N|100 +AMBA|Ambarella, Inc. - Ordinary Shares|Q|N|N|100 +AMBC|Ambac Financial Group, Inc. - Common Stock|Q|N|N|100 +AMBCW|Ambac Financial Group, Inc. - Warrants|Q|N|N|100 +AMCC|Applied Micro Circuits Corporation - Common Stock|Q|N|N|100 +AMCF|Andatee China Marine Fuel Services Corporation - Common Stock|S|N|N|100 +AMCN|AirMedia Group Inc - American Depositary Shares, each representing two ordinary shares|Q|N|N|100 +AMCX|AMC Networks Inc. - Class A Common Stock|Q|N|N|100 +AMD|Advanced Micro Devices, Inc. - Common Stock|S|N|N|100 +AMDA|Amedica Corporation - Common Stock|S|N|N|100 +AMED|Amedisys Inc - Common Stock|Q|N|N|100 +AMGN|Amgen Inc. - Common Stock|Q|N|N|100 +AMIC|American Independence Corp. - Common Stock|G|N|N|100 +AMKR|Amkor Technology, Inc. - Common Stock|Q|N|N|100 +AMNB|American National Bankshares, Inc. - Common Stock|Q|N|N|100 +AMOT|Allied Motion Technologies, Inc. - Common Stock|G|N|N|100 +AMOV|America Movil, S.A.B. de C.V. - American Depositary Shares, each representing 20 A Shares|Q|N|N|100 +AMPH|Amphastar Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +AMRB|American River Bankshares - Common Stock|Q|N|N|100 +AMRI|Albany Molecular Research, Inc. - Common Stock|Q|N|N|100 +AMRK|A-Mark Precious Metals, Inc. - Common Stock|Q|N|N|100 +AMRN|Amarin Corporation plc - American Depositary Shares, each representing one Ordinary Share|G|N|N|100 +AMRS|Amyris, Inc. - Common Stock|Q|N|N|100 +AMSC|American Superconductor Corporation - Common Stock|Q|N|D|100 +AMSF|AMERISAFE, Inc. - Common Stock|Q|N|N|100 +AMSG|Amsurg Corp. - Common Stock|Q|N|N|100 +AMSGP|Amsurg Corp. - 5.250% Mandatory Convertible Preferred Stock, Series A-1|Q|N|N|100 +AMSWA|American Software, Inc. - Class A Common Stock|Q|N|N|100 +AMTX|Aemetis, Inc - Common Stock|G|N|N|100 +AMWD|American Woodmark Corporation - Common Stock|Q|N|N|100 +AMZN|Amazon.com, Inc. - Common Stock|Q|N|N|100 +ANAC|Anacor Pharmaceuticals, Inc. - Common Stock|G|N|N|100 +ANAD|ANADIGICS, Inc. - Common Stock|Q|N|D|100 +ANAT|American National Insurance Company - Common Stock|Q|N|D|100 +ANCB|Anchor Bancorp - Common Stock|G|N|N|100 +ANCI|American Caresource Holdings Inc - Common Stock|S|N|D|100 +ANCX|Access National Corporation - Common Stock|G|N|N|100 +ANDE|The Andersons, Inc. - Common Stock|Q|N|N|100 +ANGI|Angie's List, Inc. - Common Stock|Q|N|N|100 +ANGO|AngioDynamics, Inc. - Common Stock|Q|N|N|100 +ANIK|Anika Therapeutics Inc. - Common Stock|Q|N|N|100 +ANIP|ANI Pharmaceuticals, Inc. - Common Stock|G|N|N|100 +ANSS|ANSYS, Inc. - Common Stock|Q|N|N|100 +ANTH|Anthera Pharmaceuticals, Inc. - Common Stock|G|N|D|100 +ANY|Sphere 3D Corp - Common Shares|G|N|N|100 +AOSL|Alpha and Omega Semiconductor Limited - Common Shares|Q|N|N|100 +APAGF|Apco Oil and Gas International Inc. - Ordinary Shares|S|N|N|100 +APDN|Applied DNA Sciences Inc - Common Stock|S|N|N|100 +APDNW|Applied DNA Sciences Inc - Warrant|S|N|N|100 +APEI|American Public Education, Inc. - Common Stock|Q|N|N|100 +APOG|Apogee Enterprises, Inc. - Common Stock|Q|N|N|100 +APOL|Apollo Education Group, Inc. - Class A Common Stock|Q|N|N|100 +APPS|Digital Turbine, Inc. - Common Stock|S|N|N|100 +APPY|Venaxis, Inc. - Common Stock|S|N|N|100 +APRI|Apricus Biosciences, Inc - Common Stock|S|N|N|100 +APSA|Alto Palermo S.A. - American Depository Shares, each representing forty shares of Common Stock|Q|N|N|100 +APTO|Aptose Biosciences, Inc. - Common Shares|S|N|N|100 +APWC|Asia Pacific Wire & Cable Corporation Limited - Common shares, Par value .01 per share|G|N|N|100 +AQXP|Aquinox Pharmaceuticals, Inc. - Common Stock|G|N|N|100 +ARAY|Accuray Incorporated - Common Stock|Q|N|N|100 +ARCB|ArcBest Corporation - Common Stock|Q|N|N|100 +ARCC|Ares Capital Corporation - Closed End Fund|Q|N|N|100 +ARCI|Appliance Recycling Centers of America, Inc. - Common Stock|S|N|N|100 +ARCP|American Realty Capital Properties, Inc. - Common Stock|Q|N|E|100 +ARCPP|American Realty Capital Properties, Inc. - 6.70% Series F Cumulative Redeemable Preferred Stock|Q|N|E|100 +ARCW|ARC Group Worldwide, Inc. - Common Stock|S|N|N|100 +ARDM|Aradigm Corporation - Common Stock|S|N|N|100 +ARDX|Ardelyx, Inc. - Common Stock|G|N|N|100 +AREX|Approach Resources Inc. - Common Stock|Q|N|N|100 +ARGS|Argos Therapeutics, Inc. - Common Stock|G|N|N|100 +ARIA|ARIAD Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +ARII|American Railcar Industries, Inc. - Common Stock|Q|N|N|100 +ARIS|ARI Network Services, Inc. - Common Stock|S|N|N|100 +ARKR|Ark Restaurants Corp. - Common Stock|G|N|N|100 +ARLP|Alliance Resource Partners, L.P. - Common Units Representing Limited Partnership Interests|Q|N|N|100 +ARMH|ARM Holdings plc - American Depositary Shares each representing 3 Ordinary Shares|Q|N|N|100 +ARNA|Arena Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +AROW|Arrow Financial Corporation - Common Stock|Q|N|N|100 +ARQL|ArQule, Inc. - Common Stock|G|N|N|100 +ARRS|ARRIS Group, Inc. - Common Stock|Q|N|N|100 +ARRY|Array BioPharma Inc. - Common Stock|G|N|N|100 +ARTNA|Artesian Resources Corporation - Class A Non-Voting Common Stock|Q|N|N|100 +ARTW|Art's-Way Manufacturing Co., Inc. - Common Stock|S|N|N|100 +ARTX|Arotech Corporation - Common Stock|G|N|N|100 +ARUN|Aruba Networks, Inc. - Common Stock|Q|N|N|100 +ARWR|Arrowhead Research Corporation - Common Stock|Q|N|N|100 +ASBB|ASB Bancorp, Inc. - Common Stock|G|N|N|100 +ASBI|Ameriana Bancorp - Common Stock|S|N|N|100 +ASCMA|Ascent Capital Group, Inc. - Series A Common Stock|Q|N|N|100 +ASEI|American Science and Engineering, Inc. - Common Stock|Q|N|N|100 +ASFI|Asta Funding, Inc. - Common Stock|Q|N|H|100 +ASMB|Assembly Biosciences, Inc. - Common Stock|S|N|N|100 +ASMI|ASM International N.V. - Common Shares|Q|N|N|100 +ASML|ASML Holding N.V. - ADS represents 1 ordinary share|Q|N|N|100 +ASNA|Ascena Retail Group, Inc. - Common Stock|Q|N|N|100 +ASPS|Altisource Portfolio Solutions S.A. - Common Stock|Q|N|N|100 +ASPX|Auspex Pharmaceuticals, Inc. - Common Stock|G|N|N|100 +ASRV|AmeriServ Financial Inc. - Common Stock|G|N|N|100 +ASRVP|AmeriServ Financial Inc. - AmeriServ Financial Trust I - 8.45% Beneficial Unsecured Securities, Series A|G|N|N|100 +ASTC|Astrotech Corporation - Common Stock|S|N|N|100 +ASTE|Astec Industries, Inc. - Common Stock|Q|N|N|100 +ASTI|Ascent Solar Technologies, Inc. - Common Stock|S|N|N|100 +ASUR|Asure Software Inc - Common Stock|S|N|N|100 +ASYS|Amtech Systems, Inc. - Common Stock|Q|N|N|100 +ATAI|ATA Inc. - American Depositary Shares, each representing two common shares|G|N|N|100 +ATAX|America First Multifamily Investors, L.P. - Beneficial Unit Certificates (BUCs) representing Limited Partnership Interests|Q|N|N|100 +ATEA|Astea International, Inc. - Common Stock|S|N|D|100 +ATEC|Alphatec Holdings, Inc. - Common Stock|Q|N|N|100 +ATHN|athenahealth, Inc. - Common Stock|Q|N|N|100 +ATHX|Athersys, Inc. - Common Stock|S|N|N|100 +ATLC|Atlanticus Holdings Corporation - Common Stock|Q|N|N|100 +ATLO|Ames National Corporation - Common Stock|S|N|N|100 +ATML|Atmel Corporation - Common Stock|Q|N|N|100 +ATNI|Atlantic Tele-Network, Inc. - Common Stock|Q|N|N|100 +ATNY|API Technologies Corp. - Common Stock|S|N|N|100 +ATOS|Atossa Genetics Inc. - Common Stock|S|N|N|100 +ATRA|Atara Biotherapeutics, Inc. - Common Stock|Q|N|N|100 +ATRC|AtriCure, Inc. - Common Stock|G|N|N|100 +ATRI|ATRION Corporation - Common Stock|Q|N|N|100 +ATRM|ATRM Holdings, Inc. - Common Stock|S|N|E|100 +ATRO|Astronics Corporation - Common Stock|Q|N|N|100 +ATRS|Antares Pharma, Inc. - Common Stock|S|N|N|100 +ATSG|Air Transport Services Group, Inc - Common Stock|Q|N|N|100 +ATTU|Attunity Ltd. - Ordinary Shares|S|N|N|100 +ATVI|Activision Blizzard, Inc - Common Stock|Q|N|N|100 +AUBN|Auburn National Bancorporation, Inc. - Common Stock|G|N|N|100 +AUDC|AudioCodes Ltd. - Ordinary Shares|Q|N|N|100 +AUMA|AR Capital Acquisition Corp. - Common Stock|S|N|N|100 +AUMAU|AR Capital Acquisition Corp. - Units|S|N|N|100 +AUMAW|AR Capital Acquisition Corp. - Warrants|S|N|N|100 +AUPH|Aurinia Pharmaceuticals Inc - Common Shares|G|N|N|100 +AUXL|Auxilium Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +AVAV|AeroVironment, Inc. - Common Stock|Q|N|N|100 +AVEO|AVEO Pharmaceuticals, Inc. - Common Stock|Q|N|D|100 +AVGO|Avago Technologies Limited - Ordinary Shares|Q|N|N|100 +AVHI|A V Homes, Inc. - Common Stock|Q|N|N|100 +AVID|Avid Technology, Inc. - Common Stock|Q|N|N|100 +AVNW|Aviat Networks, Inc. - Common Stock|Q|N|N|100 +AWAY|HomeAway, Inc. - Common Stock|Q|N|N|100 +AWRE|Aware, Inc. - Common Stock|G|N|N|100 +AXAS|Abraxas Petroleum Corporation - Common Stock|S|N|N|100 +AXDX|Accelerate Diagnostics, Inc. - Common Stock|S|N|N|100 +AXGN|AxoGen, Inc. - Common Stock|S|N|N|100 +AXJS|iShares MSCI All Country Asia ex Japan Small Cap Index Fund|G|N|N|100 +AXPW|Axion Power International, Inc. - Common Stock|S|N|N|100 +AXPWW|Axion Power International, Inc. - Series A Warrants|S|N|N|100 +AXTI|AXT Inc - Common Stock|Q|N|N|100 +AZPN|Aspen Technology, Inc. - Common Stock|Q|N|N|100 +BABY|Natus Medical Incorporated - Common Stock|Q|N|N|100 +BAGR|Diversified Restaurant Holdings, Inc. - Common Stock|S|N|N|100 +BAMM|Books-A-Million, Inc. - Common Stock|Q|N|N|100 +BANF|BancFirst Corporation - Common Stock|Q|N|N|100 +BANFP|BancFirst Corporation - 7.2% Cumulative Trust Preferred Securities|Q|N|N|100 +BANR|Banner Corporation - Common Stock|Q|N|N|100 +BANX|StoneCastle Financial Corp - Common Stock|Q|N|N|100 +BASI|Bioanalytical Systems, Inc. - Common Stock|S|N|N|100 +BBBY|Bed Bath & Beyond Inc. - Common Stock|Q|N|N|100 +BBC|BioShares Biotechnology Clinical Trials Fund|G|N|N|100 +BBCN|BBCN Bancorp, Inc. - Common Stock|Q|N|N|100 +BBEP|BreitBurn Energy Partners, L.P. - Common Units Representing Limited Partnership|Q|N|N|100 +BBEPP|BreitBurn Energy Partners, L.P. - 8.25% Series A Cumulative Redeemable Perpetual Preferred Units|Q|N|N|100 +BBGI|Beasley Broadcast Group, Inc. - Class A Common Stock|G|N|N|100 +BBLU|Blue Earth, Inc. - Common Stock|S|N|N|100 +BBNK|Bridge Capital Holdings - Common Stock|Q|N|N|100 +BBOX|Black Box Corporation - Common Stock|Q|N|N|100 +BBP|BioShares Biotechnology Products Fund|G|N|N|100 +BBRG|Bravo Brio Restaurant Group, Inc. - Common Stock|Q|N|N|100 +BBRY|BlackBerry Limited - Common Stock|Q|N|N|100 +BBSI|Barrett Business Services, Inc. - Common Stock|Q|N|N|100 +BCBP|BCB Bancorp, Inc. (NJ) - Common Stock|G|N|N|100 +BCLI|Brainstorm Cell Therapeutics Inc. - Common Stock|S|N|N|100 +BCOM|B Communications Ltd. - Ordinary Shares|Q|N|N|100 +BCOR|Blucora, Inc. - Common Stock|Q|N|N|100 +BCOV|Brightcove Inc. - Common Stock|Q|N|N|100 +BCPC|Balchem Corporation - Common Stock|Q|N|N|100 +BCRX|BioCryst Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +BDBD|Boulder Brands, Inc. - Common Stock|Q|N|N|100 +BDCV|BDCA Venture, Inc. - Common Stock|S|N|N|100 +BDE|Black Diamond, Inc. - Common Stock|Q|N|D|100 +BDGE|Bridge Bancorp, Inc. - Common Stock|Q|N|N|100 +BDMS|Birner Dental Management Services, Inc. - Common Stock|S|N|N|100 +BDSI|BioDelivery Sciences International, Inc. - Common Stock|S|N|N|100 +BEAT|BioTelemetry, Inc. - Common Stock|Q|N|N|100 +BEAV|B/E Aerospace, Inc. - Common Stock|Q|N|N|100 +BEBE|bebe stores, inc. - Common Stock|Q|N|N|100 +BECN|Beacon Roofing Supply, Inc. - Common Stock|Q|N|N|100 +BELFA|Bel Fuse Inc. - Class A Common Stock|Q|N|N|100 +BELFB|Bel Fuse Inc. - Class B Common Stock|Q|N|N|100 +BFIN|BankFinancial Corporation - Common Stock|Q|N|N|100 +BGCP|BGC Partners, Inc. - Class A Common Stock|Q|N|N|100 +BGFV|Big 5 Sporting Goods Corporation - Common Stock|Q|N|N|100 +BGMD|BG Medicine, Inc. - Common Stock|S|N|D|100 +BHBK|Blue Hills Bancorp, Inc. - Common Stock|Q|N|N|100 +BIB|ProShares Ultra Nasdaq Biotechnology|G|N|N|100 +BICK|First Trust BICK Index Fund|G|N|N|100 +BIDU|Baidu, Inc. - American Depositary Shares, each representing one tenth Class A ordinary share|Q|N|N|100 +BIIB|Biogen Idec Inc. - Common Stock|Q|N|N|100 +BIND|BIND Therapeutics, Inc. - Common Stock|Q|N|N|100 +BIOC|Biocept, Inc. - Common Stock|S|N|N|100 +BIOD|Biodel Inc. - Common Stock|S|N|N|100 +BIOL|Biolase, Inc. - Common Stock|S|N|N|100 +BIOS|BioScrip, Inc. - Common Stock|Q|N|N|100 +BIS|ProShares UltraShort Nasdaq Biotechnology|G|N|N|100 +BJRI|BJ's Restaurants, Inc. - Common Stock|Q|N|N|100 +BKCC|BlackRock Kelso Capital Corporation - Common Stock|Q|N|N|100 +BKEP|Blueknight Energy Partners L.P., L.L.C. - Common Units representing Limited Partner Interests|G|N|N|100 +BKEPP|Blueknight Energy Partners L.P., L.L.C. - Series A Preferred Units|G|N|N|100 +BKMU|Bank Mutual Corporation - Common Stock|Q|N|N|100 +BKSC|Bank of South Carolina Corp. - Common Stock|S|N|N|100 +BKYF|The Bank of Kentucky Financial Corp. - Common Stock|Q|N|N|100 +BLCM|Bellicum Pharmaceuticals, Inc. - Common Stock|G|N|N|100 +BLDP|Ballard Power Systems, Inc. - Common Shares|G|N|N|100 +BLDR|Builders FirstSource, Inc. - Common Stock|Q|N|N|100 +BLFS|BioLife Solutions, Inc. - Common Stock|S|N|N|100 +BLIN|Bridgeline Digital, Inc. - Common Stock|S|N|D|100 +BLKB|Blackbaud, Inc. - Common Stock|Q|N|N|100 +BLMN|Bloomin' Brands, Inc. - Common Stock|Q|N|N|100 +BLMT|BSB Bancorp, Inc. - Common Stock|S|N|N|100 +BLRX|BioLineRx Ltd. - American Depositary Shares|S|N|N|100 +BLUE|bluebird bio, Inc. - Common Stock|Q|N|N|100 +BLVD|Boulevard Acquisition Corp. - Common Stock|S|N|N|100 +BLVDU|Boulevard Acquisition Corp. - Units|S|N|N|100 +BLVDW|Boulevard Acquisition Corp. - Warrants|S|N|N|100 +BMRC|Bank of Marin Bancorp - Common Stock|S|N|N|100 +BMRN|BioMarin Pharmaceutical Inc. - Common Stock|Q|N|N|100 +BMTC|Bryn Mawr Bank Corporation - Common Stock|Q|N|N|100 +BNCL|Beneficial Bancorp, Inc. - Common Stock|Q|N|N|100 +BNCN|BNC Bancorp - Common Stock|S|N|N|100 +BNDX|Vanguard Total International Bond ETF|G|N|N|100 +BNFT|Benefitfocus, Inc. - Common Stock|G|N|N|100 +BNSO|Bonso Electronics International, Inc. - Common Stock|S|N|N|100 +BOBE|Bob Evans Farms, Inc. - Common Stock|Q|N|N|100 +BOCH|Bank of Commerce Holdings (CA) - Common Stock|G|N|N|100 +BOFI|BofI Holding, Inc. - Common Stock|Q|N|N|100 +BOKF|BOK Financial Corporation - Common Stock|Q|N|N|100 +BONA|Bona Film Group Limited - American Depositary Shares|Q|N|N|100 +BONT|The Bon-Ton Stores, Inc. - Common Stock|Q|N|N|100 +BOOM|Dynamic Materials Corporation - Common Stock|Q|N|N|100 +BOSC|B.O.S. Better Online Solutions - Ordinary Shares|S|N|N|100 +BOTA|Biota Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +BOTJ|Bank of the James Financial Group, Inc. - Common Stock|S|N|N|100 +BPFH|Boston Private Financial Holdings, Inc. - Common Stock|Q|N|N|100 +BPFHP|Boston Private Financial Holdings, Inc. - Depositary Shares representing 1/40th Interest in a Share of 6.95% Non-Cumulative Perpetual Preferred Stock, Series D|Q|N|N|100 +BPFHW|Boston Private Financial Holdings, Inc. - Warrants to purchase 1 share of common stock @ $8.00/share|Q|N|N|100 +BPOP|Popular, Inc. - Common Stock|Q|N|N|100 +BPOPM|Popular, Inc. - Popular Capital Trust II - 6.125% Cumulative Monthly Income Trust Preferred Securities|Q|N|N|100 +BPOPN|Popular, Inc. - Popular Capital Trust I -6.70% Cumulative Monthly Income Trust Preferred Securities|Q|N|N|100 +BPTH|Bio-Path Holdings, Inc. - Common Stock|S|N|N|100 +BRCD|Brocade Communications Systems, Inc. - Common Stock|Q|N|N|100 +BRCM|Broadcom Corporation - Class A Common Stock|Q|N|N|100 +BRDR|Borderfree, Inc. - Common Stock|Q|N|N|100 +BREW|Craft Brew Alliance, Inc. - Common Stock|Q|N|N|100 +BRID|Bridgford Foods Corporation - Common Stock|G|N|N|100 +BRKL|Brookline Bancorp, Inc. - Common Stock|Q|N|N|100 +BRKR|Bruker Corporation - Common Stock|Q|N|N|100 +BRKS|Brooks Automation, Inc. - Common Stock|Q|N|N|100 +BRLI|Bio-Reference Laboratories, Inc. - Common Stock|Q|N|D|100 +BSDM|BSD Medical Corporation - Common Stock|S|N|D|100 +BSET|Bassett Furniture Industries, Incorporated - Common Stock|Q|N|N|100 +BSF|Bear State Financial, Inc. - Common Stock|G|N|N|100 +BSFT|BroadSoft, Inc. - Common Stock|Q|N|N|100 +BSPM|Biostar Pharmaceuticals, Inc. - Common Stock|S|N|N|100 +BSQR|BSQUARE Corporation - Common Stock|G|N|N|100 +BSRR|Sierra Bancorp - Common Stock|Q|N|N|100 +BSTC|BioSpecifics Technologies Corp - Common Stock|G|N|D|100 +BTUI|BTU International, Inc. - Common Stock|G|N|N|100 +BUR|Burcon NutraScience Corp - Ordinary Shares|G|N|N|100 +BUSE|First Busey Corporation - Common Stock|Q|N|N|100 +BV|Bazaarvoice, Inc. - Common Stock|Q|N|N|100 +BVA|Cordia Bancorp Inc. - Common Stock|S|N|N|100 +BVSN|BroadVision, Inc. - Common Stock|G|N|N|100 +BWEN|Broadwind Energy, Inc. - Common Stock|S|N|N|100 +BWFG|Bankwell Financial Group, Inc. - Common Stock|G|N|N|100 +BWINA|Baldwin & Lyons, Inc. - Class A (voting) Common Stock|G|N|N|100 +BWINB|Baldwin & Lyons, Inc. - Class B (nonvoting) Common Stock|G|N|N|100 +BWLD|Buffalo Wild Wings, Inc. - Common Stock|Q|N|N|100 +BYBK|Bay Bancorp, Inc. - Common Stock|S|N|N|100 +BYFC|Broadway Financial Corporation - Common Stock|S|N|N|100 +BYLK|Baylake Corp - Common Stock|S|N|N|100 +CA|CA Inc. - Common Stock|Q|N|N|100 +CAAS|China Automotive Systems, Inc. - Common Stock|S|N|N|100 +CAC|Camden National Corporation - Common Stock|Q|N|N|100 +CACB|Cascade Bancorp - Common Stock|S|N|N|100 +CACC|Credit Acceptance Corporation - Common Stock|Q|N|N|100 +CACG|Chart Acquisition Corp. - Common Stock|S|N|D|100 +CACGU|Chart Acquisition Corp. - Units|S|N|D|100 +CACGW|Chart Acquisition Corp. - Warrants|S|N|D|100 +CACH|Cache, Inc. - Common Stock|Q|N|D|100 +CACQ|Caesars Acquisition Company - Class A Common Stock|Q|N|N|100 +CADC|China Advanced Construction Materials Group, Inc. - Common Stock|S|N|N|100 +CADT|DT Asia Investments Limited - Ordinary Shares|S|N|N|100 +CADTR|DT Asia Investments Limited - Right|S|N|N|100 +CADTU|DT Asia Investments Limited - Unit|S|N|N|100 +CADTW|DT Asia Investments Limited - Warrant|S|N|N|100 +CAKE|The Cheesecake Factory Incorporated - Common Stock|Q|N|N|100 +CALA|Calithera Biosciences, Inc. - Common Stock|Q|N|N|100 +CALD|Callidus Software, Inc. - Common Stock|G|N|N|100 +CALI|China Auto Logistics Inc. - Common Stock|G|N|D|100 +CALL|magicJack VocalTec Ltd - Ordinary Shares|G|N|N|100 +CALM|Cal-Maine Foods, Inc. - Common Stock|Q|N|N|100 +CAMB|Cambridge Capital Acquisition Corporation - Common Stock|S|N|D|100 +CAMBU|Cambridge Capital Acquisition Corporation - Unit|S|N|D|100 +CAMBW|Cambridge Capital Acquisition Corporation - Warrant|S|N|D|100 +CAMP|CalAmp Corp. - Common Stock|Q|N|N|100 +CAMT|Camtek Ltd. - Ordinary Shares|G|N|N|100 +CAPN|Capnia, Inc. - Common Stock|S|N|N|100 +CAPNW|Capnia, Inc. - Series A Warrant|S|N|N|100 +CAR|Avis Budget Group, Inc. - Common Stock|Q|N|N|100 +CARA|Cara Therapeutics, Inc. - Common Stock|G|N|N|100 +CARB|Carbonite, Inc. - Common Stock|G|N|N|100 +CARO|Carolina Financial Corporation - Common Stock|S|N|N|100 +CART|Carolina Trust Bank - Common Stock|S|N|N|100 +CARV|Carver Bancorp, Inc. - Common Stock|S|N|N|100 +CARZ|First Trust NASDAQ Global Auto Index Fund|G|N|N|100 +CASH|Meta Financial Group, Inc. - Common Stock|Q|N|N|100 +CASI|CASI Pharmaceuticals, Inc. - Common Stock|S|N|N|100 +CASM|CAS Medical Systems, Inc. - Common Stock|S|N|N|100 +CASS|Cass Information Systems, Inc - Common Stock|Q|N|N|100 +CASY|Caseys General Stores, Inc. - Common Stock|Q|N|N|100 +CATM|Cardtronics, Inc. - Common Stock|Q|N|N|100 +CATY|Cathay General Bancorp - Common Stock|Q|N|N|100 +CATYW|Cathay General Bancorp - Warrant|Q|N|N|100 +CAVM|Cavium, Inc. - Common Stock|Q|N|N|100 +CBAK|China BAK Battery, Inc. - Common Stock|G|N|N|100 +CBAN|Colony Bankcorp, Inc. - Common Stock|G|N|N|100 +CBAY|CymaBay Therapeutics Inc. - Common Stock|S|N|N|100 +CBDE|CBD Energy Limited - Ordinary Shares|S|N|K|100 +CBF|Capital Bank Financial Corp. - Class A Common Stock|Q|N|N|100 +CBFV|CB Financial Services, Inc. - Common Stock|G|N|N|100 +CBIN|Community Bank Shares of Indiana, Inc. - Common Stock|S|N|N|100 +CBLI|Cleveland BioLabs, Inc. - Common Stock|S|N|D|100 +CBMG|Cellular Biomedicine Group, Inc. - Common Stock|S|N|N|100 +CBMX|CombiMatrix Corporation - Common Stock|S|N|N|100 +CBNJ|Cape Bancorp, Inc. - Common Stock|Q|N|N|100 +CBNK|Chicopee Bancorp, Inc. - Common Stock|G|N|N|100 +CBOE|CBOE Holdings, Inc. - Common Stock|Q|N|N|100 +CBPO|China Biologic Products, Inc. - Common Stock|Q|N|N|100 +CBRL|Cracker Barrel Old Country Store, Inc. - Common Stock|Q|N|N|100 +CBRX|Columbia Laboratories, Inc. - Common Stock|S|N|N|100 +CBSH|Commerce Bancshares, Inc. - Common Stock|Q|N|N|100 +CBSHP|Commerce Bancshares, Inc. - Depositary Shares, each representing a 1/1000th interest of 6.00% Series B Non-Cumulative Perpetual Preferred Stock|Q|N|N|100 +CBSTZ|Cubist Pharmaceuticals, Inc. - Contingent Value Right|Q|N|N|100 +CCBG|Capital City Bank Group - Common Stock|Q|N|N|100 +CCCL|China Ceramics Co., Ltd. - Common Stock|G|N|D|100 +CCCR|China Commercial Credit, Inc. - Common Stock|S|N|E|100 +CCIH|ChinaCache International Holdings Ltd. - American Depositary Shares|Q|N|N|100 +CCLP|CSI Compressco LP - common units|Q|N|N|100 +CCMP|Cabot Microelectronics Corporation - Common Stock|Q|N|N|100 +CCNE|CNB Financial Corporation - Common Stock|Q|N|N|100 +CCOI|Cogent Communications Holdings, Inc. - Common Stock|Q|N|N|100 +CCRN|Cross Country Healthcare, Inc. - Common Stock|Q|N|N|100 +CCUR|Concurrent Computer Corporation - Common Stock|G|N|N|100 +CCXI|ChemoCentryx, Inc. - Common Stock|Q|N|N|100 +CDC|Compass EMP U S EQ Income 100 Enhanced Volatility Weighted Fund|G|N|N|100 +CDK|CDK Global, Inc. - Common Stock|Q|N|N|100 +CDNA|CareDx, Inc. - Common Stock|G|N|N|100 +CDNS|Cadence Design Systems, Inc. - Common Stock|Q|N|N|100 +CDTI|Clean Diesel Technologies, Inc. - Common Stock|S|N|N|100 +CDW|CDW Corporation - Common Stock|Q|N|N|100 +CDXS|Codexis, Inc. - Common Stock|Q|N|N|100 +CDZI|Cadiz, Inc. - Common Stock|G|N|N|100 +CECE|CECO Environmental Corp. - Common Stock|Q|N|N|100 +CECO|Career Education Corporation - Common Stock|Q|N|N|100 +CELG|Celgene Corporation - Common Stock|Q|N|N|100 +CELGZ|Celgene Corporation - Contingent Value Right|G|N|N|100 +CEMI|Chembio Diagnostics, Inc. - Common Stock|S|N|N|100 +CEMP|Cempra, Inc. - Common Stock|Q|N|N|100 +CENT|Central Garden & Pet Company - Common Stock|Q|N|N|100 +CENTA|Central Garden & Pet Company - Class A Common Stock Nonvoting|Q|N|N|100 +CENX|Century Aluminum Company - Common Stock|Q|N|N|100 +CERE|Ceres, Inc. - Common Stock|S|N|D|100 +CERN|Cerner Corporation - Common Stock|Q|N|N|100 +CERS|Cerus Corporation - Common Stock|G|N|N|100 +CERU|Cerulean Pharma Inc. - Common Stock|G|N|N|100 +CETV|Central European Media Enterprises Ltd. - Class A Common Stock|Q|N|N|100 +CEVA|CEVA, Inc. - Common Stock|Q|N|N|100 +CFA|Compass EMP US 500 Volatility Weighted Index ETF|G|N|N|100 +CFBK|Central Federal Corporation - Common Stock|S|N|N|100 +CFFI|C&F Financial Corporation - Common Stock|Q|N|N|100 +CFFN|Capitol Federal Financial, Inc. - Common Stock|Q|N|N|100 +CFGE|Calamos Focus Growth ETF|G|N|N|100 +CFNB|California First National Bancorp - Common Stock|G|N|N|100 +CFNL|Cardinal Financial Corporation - Common Stock|Q|N|N|100 +CFO|Compass EMP US 500 Enhanced Volatility Weighted Index ETF|G|N|N|100 +CFRX|ContraFect Corporation - Common Stock|S|N|N|100 +CFRXW|ContraFect Corporation - Warrant|S|N|N|100 +CFRXZ|ContraFect Corporation - Warrant|S|N|N|100 +CG|The Carlyle Group L.P. - Common Units|Q|N|N|100 +CGEN|Compugen Ltd. - Ordinary Shares|G|N|N|100 +CGIX|Cancer Genetics, Inc. - Common Stock|S|N|N|100 +CGNX|Cognex Corporation - Common Stock|Q|N|N|100 +CGO|Calamos Global Total Return Fund - Common Stock|Q|N|N|100 +CHCI|Comstock Holding Companies, Inc. - Class A Common Stock|S|N|N|100 +CHCO|City Holding Company - Common Stock|Q|N|N|100 +CHDN|Churchill Downs, Incorporated - Common Stock|Q|N|N|100 +CHEF|The Chefs' Warehouse, Inc. - Common Stock|Q|N|N|100 +CHEV|Cheviot Financial Corp - Common Stock|S|N|N|100 +CHFC|Chemical Financial Corporation - Common Stock|Q|N|N|100 +CHFN|Charter Financial Corp. - Common Stock|S|N|N|100 +CHI|Calamos Convertible Opportunities and Income Fund - Common Stock|Q|N|N|100 +CHKE|Cherokee Inc. - Common Stock|Q|N|N|100 +CHKP|Check Point Software Technologies Ltd. - Ordinary Shares|Q|N|N|100 +CHLN|China Housing & Land Development, Inc. - Common Stock|S|N|D|100 +CHMG|Chemung Financial Corp - Common Stock|Q|N|N|100 +CHNR|China Natural Resources, Inc. - Common Stock|S|N|N|100 +CHOP|China Gerui Advanced Materials Group Limited - Ordinary Shares|Q|N|N|100 +CHRS|Coherus BioSciences, Inc. - Common Stock|G|N|N|100 +CHRW|C.H. Robinson Worldwide, Inc. - Common Stock|Q|N|N|100 +CHSCL|CHS Inc - Class B Cumulative Redeemable Preferred Stock, Series 4|Q|N|N|100 +CHSCM|CHS Inc - Class B Reset Rate Cumulative Redeemable Preferred Stock, Series 3|Q|N|N|100 +CHSCN|CHS Inc - Preferred Class B Series 2 Reset Rate|Q|N|N|100 +CHSCO|CHS Inc - Class B Cumulative Redeemable Preferred Stock|Q|N|N|100 +CHSCP|CHS Inc - 8% Cumulative Redeemable Preferred Stock|Q|N|N|100 +CHTR|Charter Communications, Inc. - Class A Common Stock|Q|N|N|100 +CHUY|Chuy's Holdings, Inc. - Common Stock|Q|N|N|100 +CHW|Calamos Global Dynamic Income Fund - Common Stock|Q|N|N|100 +CHXF|WisdomTree China Dividend Ex-Financials Fund|G|N|N|100 +CHY|Calamos Convertible and High Income Fund - Common Stock|Q|N|N|100 +CHYR|ChyronHego Corporation - Common Stock|G|N|N|100 +CIDM|Cinedigm Corp - Class A Common Stock|G|N|N|100 +CIFC|CIFC Corp. - Common Stock|S|N|N|100 +CIMT|Cimatron, Limited - Ordinary Shares|S|N|N|100 +CINF|Cincinnati Financial Corporation - Common Stock|Q|N|N|100 +CISAW|CIS Acquisition Ltd. - Warrant|S|N|D|100 +CISG|CNinsure Inc. - American depositary shares, each representing 20 ordinary shares|Q|N|N|100 +CIZ|Compass EMP Developed 500 Enhanced Volatility Weighted Index ETF|G|N|N|100 +CIZN|Citizens Holding Company - Common Stock|G|N|N|100 +CJJD|China Jo-Jo Drugstores, Inc. - Common Stock|S|N|N|100 +CKEC|Carmike Cinemas, Inc. - Common Stock|Q|N|N|100 +CKSW|ClickSoftware Technologies Ltd. - Ordinary Shares|Q|N|N|100 +CLAC|Capitol Acquisition Corp. II - Common Stock|S|N|D|100 +CLACU|Capitol Acquisition Corp. II - Unit|S|N|D|100 +CLACW|Capitol Acquisition Corp. II - Warrant|S|N|D|100 +CLBH|Carolina Bank Holdings Inc. - Common Stock|G|N|N|100 +CLCT|Collectors Universe, Inc. - Common Stock|G|N|N|100 +CLDN|Celladon Corporation - Common Stock|G|N|N|100 +CLDX|Celldex Therapeutics, Inc. - Common Stock|Q|N|N|100 +CLFD|Clearfield, Inc. - Common Stock|G|N|N|100 +CLIR|ClearSign Combustion Corporation - Common Stock|S|N|N|100 +CLMS|Calamos Asset Management, Inc. - Class A Common Stock|Q|N|N|100 +CLMT|Calumet Specialty Products Partners, L.P. - Common units representing limited partner interests|Q|N|N|100 +CLNE|Clean Energy Fuels Corp. - Common Stock|Q|N|N|100 +CLNT|Cleantech Solutions International, Inc. - Common Stock|S|N|N|100 +CLRB|Cellectar Biosciences, Inc. - Common Stock|S|N|N|100 +CLRBW|Cellectar Biosciences, Inc. - Warrants|S|N|N|100 +CLRO|ClearOne, Inc. - Common Stock|S|N|N|100 +CLRX|CollabRx, Inc. - Common Stock|S|N|D|100 +CLSN|Celsion Corporation - Common Stock|S|N|N|100 +CLTX|Celsus Therapeutics Plc - American Depositary Shares|S|N|N|100 +CLUB|Town Sports International Holdings, Inc. - Common Stock|G|N|N|100 +CLVS|Clovis Oncology, Inc. - Common Stock|Q|N|N|100 +CLWT|Euro Tech Holdings Company Limited - Ordinary Shares|S|N|N|100 +CMCO|Columbus McKinnon Corporation - Common Stock|Q|N|N|100 +CMCSA|Comcast Corporation - Class A Common Stock|Q|N|N|100 +CMCSK|Comcast Corporation - Class A Special Common Stock|Q|N|N|100 +CMCT|CIM Commercial Trust Corporation - Common Stock|G|N|N|100 +CME|CME Group Inc. - Class A Common Stock|Q|N|N|100 +CMFN|CM Finance Inc - Common Stock|Q|N|N|100 +CMGE|China Mobile Games and Entertainment Group Limited - American Depositary Shares|G|N|N|100 +CMLS|Cumulus Media Inc. - Common Stock|Q|N|N|100 +CMPR|Cimpress N.V - Ordinary Shares (The Netherlands)|Q|N|N|100 +CMRX|Chimerix, Inc. - Common Stock|G|N|N|100 +CMSB|CMS Bancorp, Inc. - common stock|S|N|N|100 +CMTL|Comtech Telecommunications Corp. - Common Stock|Q|N|N|100 +CNAT|Conatus Pharmaceuticals Inc. - Common Stock|G|N|N|100 +CNBKA|Century Bancorp, Inc. - Class A Common Stock|Q|N|N|100 +CNCE|Concert Pharmaceuticals, Inc. - Common Stock|G|N|N|100 +CNDO|Coronado Biosciences, Inc. - Common Stock|S|N|N|100 +CNET|ChinaNet Online Holdings, Inc. - Common Stock|S|N|N|100 +CNIT|China Information Technology, Inc. - Ordinary Shares|Q|N|N|100 +CNLM|CB Pharma Acquisition Corp. - Ordinary Shares|S|N|N|100 +CNLMR|CB Pharma Acquisition Corp. - Rights|S|N|N|100 +CNLMU|CB Pharma Acquisition Corp. - Units|S|N|N|100 +CNLMW|CB Pharma Acquisition Corp. - Warrants|S|N|N|100 +CNMD|CONMED Corporation - Common Stock|Q|N|N|100 +CNOB|ConnectOne Bancorp, Inc. - Common Stock|Q|N|N|100 +CNSI|Comverse Inc. - Common Stock|G|N|N|100 +CNSL|Consolidated Communications Holdings, Inc. - Common Stock|Q|N|N|100 +CNTF|China TechFaith Wireless Communication Technology Limited - American Depositary Shares, each representing 15 ordinary shares|Q|N|N|100 +CNTY|Century Casinos, Inc. - Common Stock|S|N|N|100 +CNV|Cnova N.V. - Ordinary Shares|Q|N|N|100 +CNXR|Connecture, Inc. - Common Stock|G|N|N|100 +CNYD|China Yida Holding, Co. - Common Stock|S|N|N|100 +COB|CommunityOne Bancorp - Common Stock|S|N|N|100 +COBK|Colonial Financial Services, Inc. - Common Stock|G|N|N|100 +COBZ|CoBiz Financial Inc. - Common Stock|Q|N|N|100 +COCO|Corinthian Colleges, Inc. - Common Stock|S|N|H|100 +COHR|Coherent, Inc. - Common Stock|Q|N|N|100 +COHU|Cohu, Inc. - Common Stock|Q|N|N|100 +COKE|Coca-Cola Bottling Co. Consolidated - Common Stock|Q|N|N|100 +COLB|Columbia Banking System, Inc. - Common Stock|Q|N|N|100 +COLM|Columbia Sportswear Company - Common Stock|Q|N|N|100 +COMM|CommScope Holding Company, Inc. - Common Stock|Q|N|N|100 +COMT|iShares Commodities Select Strategy ETF|G|N|N|100 +CONE|CyrusOne Inc - Common Stock|Q|N|N|100 +CONN|Conn's, Inc. - Common Stock|Q|N|N|100 +COOL|Majesco Entertainment Company - Common Stock|S|N|N|100 +CORE|Core-Mark Holding Company, Inc. - Common Stock|Q|N|N|100 +CORI|Corium International, Inc. - Common Stock|G|N|N|100 +CORT|Corcept Therapeutics Incorporated - Common Stock|S|N|N|100 +COSI|Cosi, Inc. - Common Stock|S|N|N|100 +COST|Costco Wholesale Corporation - Common Stock|Q|N|N|100 +COVS|Covisint Corporation - Common Stock|Q|N|N|100 +COWN|Cowen Group, Inc. - Class A Common Stock|Q|N|N|100 +COWNL|Cowen Group, Inc. - 8.25% Senior Notes due 2021|Q|N|N|100 +CPAH|CounterPath Corporation - Common Stock|S|N|D|100 +CPGI|China Shengda Packaging Group, Inc. - Common Stock|S|N|D|100 +CPHC|Canterbury Park Holding Corporation - Common Stock|G|N|N|100 +CPHD|CEPHEID - Common Stock|Q|N|N|100 +CPHR|Cipher Pharmaceuticals Inc. - Common Shares|G|N|N|100 +CPIX|Cumberland Pharmaceuticals Inc. - Common Stock|Q|N|N|100 +CPLA|Capella Education Company - Common Stock|Q|N|N|100 +CPLP|Capital Product Partners L.P. - common units representing limited partner interests|Q|N|N|100 +CPRT|Copart, Inc. - Common Stock|Q|N|N|100 +CPRX|Catalyst Pharmaceutical Partners, Inc. - Common Stock|S|N|N|100 +CPSH|CPS Technologies Corp. - Common Stock|S|N|N|100 +CPSI|Computer Programs and Systems, Inc. - Common Stock|Q|N|N|100 +CPSS|Consumer Portfolio Services, Inc. - Common Stock|G|N|N|100 +CPST|Capstone Turbine Corporation - Common Stock|G|N|D|100 +CPTA|Capitala Finance Corp. - Common Stock|Q|N|N|100 +CPXX|Celator Pharmaceuticals Inc. - Common Stock|S|N|N|100 +CRAI|CRA International,Inc. - Common Stock|Q|N|N|100 +CRAY|Cray Inc - Common Stock|Q|N|N|100 +CRDC|Cardica, Inc. - Common Stock|G|N|D|100 +CRDS|Crossroads Systems, Inc. - Common Stock|S|N|N|100 +CRDT|WisdomTree Strategic Corporate Bond Fund|G|N|N|100 +CREE|Cree, Inc. - Common Stock|Q|N|N|100 +CREG|China Recycling Energy Corporation - Common Stock|G|N|N|100 +CRESW|Cresud S.A.C.I.F. y A. - Warrants 5/22/2015|Q|N|N|100 +CRESY|Cresud S.A.C.I.F. y A. - American Depositary Shares, each representing ten shares of Common Stock|Q|N|N|100 +CRIS|Curis, Inc. - Common Stock|G|N|N|100 +CRME|Cardiome Pharma Corporation - Ordinary Shares (Canada)|S|N|N|100 +CRMT|America's Car-Mart, Inc. - Common Stock|Q|N|N|100 +CRNT|Ceragon Networks Ltd. - Ordinary Shares|Q|N|N|100 +CROX|Crocs, Inc. - Common Stock|Q|N|N|100 +CRRC|Courier Corporation - Common Stock|Q|N|N|100 +CRRS|Corporate Resource Services, Inc. - Common Stock|S|N|N|100 +CRTN|Cartesian, Inc. - Common Stock|G|N|N|100 +CRTO|Criteo S.A. - American Depositary Shares|Q|N|N|100 +CRUS|Cirrus Logic, Inc. - Common Stock|Q|N|N|100 +CRVL|CorVel Corp. - Common Stock|Q|N|N|100 +CRWN|Crown Media Holdings, Inc. - Class A Common Stock|Q|N|N|100 +CRWS|Crown Crafts, Inc. - Common Stock|S|N|N|100 +CRZO|Carrizo Oil & Gas, Inc. - Common Stock|Q|N|N|100 +CSBK|Clifton Bancorp Inc. - Common Stock|Q|N|N|100 +CSCD|Cascade Microtech, Inc. - Common Stock|G|N|N|100 +CSCO|Cisco Systems, Inc. - Common Stock|Q|N|N|100 +CSF|Compass EMP U.S. Discovery 500 Enhanced Volatility Weighted Fund|G|N|N|100 +CSFL|CenterState Banks, Inc. - Common Stock|Q|N|N|100 +CSGP|CoStar Group, Inc. - Common Stock|Q|N|N|100 +CSGS|CSG Systems International, Inc. - Common Stock|Q|N|N|100 +CSII|Cardiovascular Systems, Inc. - Common Stock|Q|N|N|100 +CSIQ|Canadian Solar Inc. - common shares|Q|N|N|100 +CSOD|Cornerstone OnDemand, Inc. - Common Stock|Q|N|N|100 +CSPI|CSP Inc. - Common Stock|G|N|N|100 +CSQ|Calamos Strategic Total Return Fund - Common Stock|Q|N|N|100 +CSRE|CSR plc - American Depositary Shares|Q|N|N|100 +CSTE|CaesarStone Sdot-Yam Ltd. - Ordinary Shares|Q|N|N|100 +CSUN|China Sunergy Co., Ltd. - American Depositary Shares, each representing 18 ordinary shares|Q|N|H|100 +CSWC|Capital Southwest Corporation - Common Stock|Q|N|N|100 +CTAS|Cintas Corporation - Common Stock|Q|N|N|100 +CTBI|Community Trust Bancorp, Inc. - Common Stock|Q|N|N|100 +CTCM|CTC Media, Inc. - Common Stock|Q|N|N|100 +CTCT|Constant Contact, Inc. - Common Stock|Q|N|N|100 +CTG|Computer Task Group, Incorporated - Common Stock|Q|N|N|100 +CTHR|Charles & Colvard Ltd - Common Stock|Q|N|N|100 +CTIB|CTI Industries Corporation - Common Stock|S|N|N|100 +CTIC|CTI BioPharma Corp. - Common Stock|S|N|N|100 +CTRE|CareTrust REIT, Inc. - Common Stock|Q|N|N|100 +CTRL|Control4 Corporation - Common Stock|Q|N|N|100 +CTRN|Citi Trends, Inc. - Common Stock|Q|N|N|100 +CTRP|Ctrip.com International, Ltd. - American Depositary Shares|Q|N|N|100 +CTRX|Catamaran Corporation - Common Stock|Q|N|N|100 +CTSH|Cognizant Technology Solutions Corporation - Class A Common Stock|Q|N|N|100 +CTSO|Cytosorbents Corporation - Common Stock|S|N|N|100 +CTWS|Connecticut Water Service, Inc. - Common Stock|Q|N|N|100 +CTXS|Citrix Systems, Inc. - Common Stock|Q|N|N|100 +CU|First Trust ISE Global Copper Index Fund|G|N|N|100 +CUBA|The Herzfeld Caribbean Basin Fund, Inc. - Closed End FUnd|S|N|N|100 +CUI|CUI Global, Inc. - Common Stock|S|N|N|100 +CUNB|CU Bancorp (CA) - Common Stock|S|N|N|100 +CUTR|Cutera, Inc. - Common Stock|Q|N|N|100 +CVBF|CVB Financial Corporation - Common Stock|Q|N|N|100 +CVCO|Cavco Industries, Inc. - Common Stock|Q|N|N|100 +CVCY|Central Valley Community Bancorp - Common Stock|S|N|N|100 +CVGI|Commercial Vehicle Group, Inc. - Common Stock|Q|N|N|100 +CVGW|Calavo Growers, Inc. - Common Stock|Q|N|N|100 +CVLT|CommVault Systems, Inc. - Common Stock|Q|N|N|100 +CVLY|Codorus Valley Bancorp, Inc - Common Stock|G|N|N|100 +CVTI|Covenant Transportation Group, Inc. - Class A Common Stock|Q|N|N|100 +CVV|CVD Equipment Corporation - Common Stock|S|N|N|100 +CWAY|Coastway Bancorp, Inc. - Common Stock|S|N|N|100 +CWBC|Community West Bancshares - Common Stock|G|N|N|100 +CWCO|Consolidated Water Co. Ltd. - Ordinary Shares|Q|N|N|100 +CWST|Casella Waste Systems, Inc. - Class A Common Stock|Q|N|N|100 +CXDC|China XD Plastics Company Limited - Common Stock|G|N|N|100 +CY|Cypress Semiconductor Corporation - Common Stock|Q|N|N|100 +CYAN|Cyanotech Corporation - Common Stock|S|N|N|100 +CYBE|CyberOptics Corporation - Common Stock|G|N|N|100 +CYBR|CyberArk Software Ltd. - Ordinary Shares|Q|N|N|100 +CYBX|Cyberonics, Inc. - Common Stock|Q|N|N|100 +CYCC|Cyclacel Pharmaceuticals, Inc. - Common Stock|G|N|N|100 +CYCCP|Cyclacel Pharmaceuticals, Inc. - 6% Convertible Preferred Stock|S|N|N|100 +CYHHZ|Community Health Systems, Inc. - Series A Contingent Value Rights|G|N|N|100 +CYNO|Cynosure, Inc. - Class A Common Stock|Q|N|N|100 +CYOU|Changyou.com Limited - American Depositary Shares, each representing two Class A ordinary shares|Q|N|N|100 +CYRN|CYREN Ltd. - Ordinary Shares|S|N|N|100 +CYTK|Cytokinetics, Incorporated - Common Stock|S|N|N|100 +CYTR|CytRx Corporation - Common Stock|S|N|N|100 +CYTX|Cytori Therapeutics Inc - Common Stock|G|N|D|100 +CZFC|Citizens First Corporation - Common Stock|G|N|N|100 +CZNC|Citizens & Northern Corp - Common Stock|S|N|N|100 +CZR|Caesars Entertainment Corporation - Common Stock|Q|N|N|100 +CZWI|Citizens Community Bancorp, Inc. - Common Stock|G|N|N|100 +DAEG|Daegis Inc - Common Stock|S|N|D|100 +DAIO|Data I/O Corporation - Common Stock|S|N|N|100 +DAKT|Daktronics, Inc. - Common Stock|Q|N|N|100 +DARA|DARA Biosciences, Inc. - Common Stock|S|N|D|100 +DATE|Jiayuan.com International Ltd. - American Depositary Shares|Q|N|N|100 +DAVE|Famous Dave's of America, Inc. - Common Stock|Q|N|D|100 +DAX|Recon Capital DAX Germany ETF|G|N|N|100 +DBVT|DBV Technologies S.A. - American Depositary Shares|Q|N|N|100 +DCIX|Diana Containerships Inc. - Common Shares|Q|N|N|100 +DCOM|Dime Community Bancshares, Inc. - Common Stock|Q|N|N|100 +DCTH|Delcath Systems, Inc. - Common Stock|S|N|N|100 +DENN|Denny's Corporation - Common Stock|S|N|N|100 +DEPO|Depomed, Inc. - Common Stock|Q|N|N|100 +DERM|Dermira, Inc. - Common Stock|Q|N|N|100 +DEST|Destination Maternity Corporation - Common Stock|Q|N|N|100 +DFRG|Del Frisco's Restaurant Group, Inc. - Common Stock|Q|N|N|100 +DFVL|Barclays PLC - iPath US Treasury 5 Year Bull ETN|G|N|N|100 +DFVS|Barclays PLC - iPath US Treasury 5-year Bear ETN|G|N|N|100 +DGAS|Delta Natural Gas Company, Inc. - Common Stock|Q|N|N|100 +DGICA|Donegal Group, Inc. - Class A Common Stock|Q|N|N|100 +DGICB|Donegal Group, Inc. - Class B Common Stock|Q|N|N|100 +DGII|Digi International Inc. - Common Stock|Q|N|N|100 +DGLD|Credit Suisse AG - VelocityShares 3x Inverse Gold ETN|G|N|N|100 +DGLY|Digital Ally, Inc. - Common Stock|S|N|N|100 +DGRE|WisdomTree Emerging Markets Dividend Growth Fund|G|N|N|100 +DGRS|WisdomTree U.S. SmallCap Dividend Growth Fund|G|N|N|100 +DGRW|WisdomTree U.S. Dividend Growth Fund|G|N|N|100 +DHIL|Diamond Hill Investment Group, Inc. - Class A Common Stock|Q|N|N|100 +DHRM|Dehaier Medical Systems Limited - Common Stock|S|N|N|100 +DIOD|Diodes Incorporated - Common Stock|Q|N|N|100 +DISCA|Discovery Communications, Inc. - Series A Common Stock|Q|N|N|100 +DISCB|Discovery Communications, Inc. - Series B Common Stock|Q|N|N|100 +DISCK|Discovery Communications, Inc. - Series C Common Stock|Q|N|N|100 +DISH|DISH Network Corporation - Class A Common Stock|Q|N|N|100 +DJCO|Daily Journal Corp. (S.C.) - Common Stock|S|N|E|100 +DLBL|Barclays PLC - iPath US Treasury Long Bond Bull ETN|G|N|N|100 +DLBS|Barclays PLC - iPath US Treasury Long Bond Bear ETN|G|N|N|100 +DLHC|DLH Holdings Corp. - Common Stock|S|N|N|100 +DLTR|Dollar Tree, Inc. - Common Stock|Q|N|N|100 +DMLP|Dorchester Minerals, L.P. - Common Units Representing Limited Partnership Interests|Q|N|N|100 +DMND|Diamond Foods, Inc. - Common Stock|Q|N|N|100 +DMRC|Digimarc Corporation - Common Stock|Q|N|N|100 +DNBF|DNB Financial Corp - Common Stock|S|N|N|100 +DNKN|Dunkin' Brands Group, Inc. - Common Stock|Q|N|N|100 +DORM|Dorman Products, Inc. - Common Stock|Q|N|N|100 +DOVR|Dover Saddlery, Inc. - Common Stock|S|N|N|100 +DOX|Amdocs Limited - Ordinary Shares|Q|N|N|100 +DPRX|Dipexium Pharmaceuticals, Inc. - Common Stock|S|N|N|100 +DRAD|Digirad Corporation - Common Stock|G|N|N|100 +DRAM|Dataram Corporation - Common Stock|S|N|N|100 +DRIV|Digital River, Inc. - Common Stock|Q|N|N|100 +DRNA|Dicerna Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +DRRX|DURECT Corporation - Common Stock|G|N|D|100 +DRWI|DragonWave Inc - Common Shares|Q|N|N|100 +DRWIW|DragonWave Inc - Warrants|Q|N|N|100 +DRYS|DryShips Inc. - Common Stock|Q|N|N|100 +DSCI|Derma Sciences, Inc. - Common Stock|S|N|N|100 +DSCO|Discovery Laboratories, Inc. - Common Stock|S|N|N|100 +DSGX|The Descartes Systems Group Inc. - Common Stock|Q|N|N|100 +DSKX|DS Healthcare Group, Inc. - Common Stock|S|N|D|100 +DSKY|iDreamSky Technology Limited - American Depositary Shares|Q|N|N|100 +DSLV|Credit Suisse AG - VelocityShares 3x Inverse Silver ETN|G|N|N|100 +DSPG|DSP Group, Inc. - Common Stock|Q|N|N|100 +DSWL|Deswell Industries, Inc. - Common Shares|G|N|N|100 +DTLK|Datalink Corporation - Common Stock|Q|N|N|100 +DTSI|DTS, Inc. - Common Stock|Q|N|N|100 +DTUL|Barclays PLC - iPath US Treasury 2 Yr Bull ETN|G|N|N|100 +DTUS|Barclays PLC - iPath US Treasury 2-year Bear ETN|G|N|N|100 +DTV|DIRECTV - Common Stock|Q|N|N|100 +DTYL|Barclays PLC - iPath US Treasury 10 Year Bull ETN|G|N|N|100 +DTYS|Barclays PLC - iPath US Treasury 10-year Bear ETN|G|N|N|100 +DVAX|Dynavax Technologies Corporation - Common Stock|S|N|N|100 +DVCR|Diversicare Healthcare Services Inc. - Common Stock|S|N|N|100 +DWA|Dreamworks Animation SKG, Inc. - Class A Common Stock|Q|N|N|100 +DWAT|Arrow DWA Tactical ETF|G|N|N|100 +DWCH|Datawatch Corporation - Common Stock|S|N|N|100 +DWSN|Dawson Geophysical Company - Common Stock|Q|N|N|100 +DXCM|DexCom, Inc. - Common Stock|Q|N|N|100 +DXGE|WisdomTree Germany Hedged Equity Fund|G|N|N|100 +DXJS|WisdomTree Japan Hedged SmallCap Equity Fund|G|N|N|100 +DXKW|WisdomTree Korea Hedged Equity Fund|G|N|N|100 +DXLG|Destination XL Group, Inc. - Common Stock|Q|N|N|100 +DXM|Dex Media, Inc. - Common Stock|Q|N|N|100 +DXPE|DXP Enterprises, Inc. - Common Stock|Q|N|N|100 +DXPS|WisdomTree United Kingdom Hedged Equity Fund|G|N|N|100 +DXYN|The Dixie Group, Inc. - Common Stock|G|N|N|100 +DYAX|Dyax Corp. - Common Stock|G|N|N|100 +DYNT|Dynatronics Corporation - Common Stock|S|N|D|100 +DYSL|Dynasil Corporation of America - Common Stock|S|N|N|100 +EA|Electronic Arts Inc. - Common Stock|Q|N|N|100 +EAC|Erickson Incorporated - Common Stock|G|N|N|100 +EARS|Auris Medical Holding AG - Common Shares|G|N|N|100 +EBAY|eBay Inc. - Common Stock|Q|N|N|100 +EBIO|Eleven Biotherapeutics, Inc. - Common Stock|G|N|N|100 +EBIX|Ebix, Inc. - Common Stock|Q|N|N|100 +EBMT|Eagle Bancorp Montana, Inc. - Common Stock|G|N|N|100 +EBSB|Meridian Bancorp, Inc. - Common Stock|Q|N|N|100 +EBTC|Enterprise Bancorp Inc - Common Stock|Q|N|N|100 +ECHO|Echo Global Logistics, Inc. - Common Stock|Q|N|N|100 +ECOL|US Ecology, Inc. - Common Stock|Q|N|N|100 +ECPG|Encore Capital Group Inc - Common Stock|Q|N|N|100 +ECTE|Echo Therapeutics, Inc. - Common Stock|S|N|N|100 +ECYT|Endocyte, Inc. - Common Stock|Q|N|N|100 +EDAP|EDAP TMS S.A. - American Depositary Shares, each representing One Ordinary Share|G|N|N|100 +EDGW|Edgewater Technology, Inc. - Common Stock|G|N|N|100 +EDS|Exceed Company Ltd. - Common Stock|Q|N|N|100 +EDUC|Educational Development Corporation - Common Stock|G|N|N|100 +EEFT|Euronet Worldwide, Inc. - Common Stock|Q|N|N|100 +EEI|Ecology and Environment, Inc. - Class A Common Stock|G|N|N|100 +EEMA|iShares MSCI Emerging Markets Asia Index Fund|G|N|N|100 +EEME|iShares MSCI Emerging Markets EMEA Index Fund|G|N|N|100 +EEML|iShares MSCI Emerging Markets Latin America Index Fund|G|N|N|100 +EFII|Electronics for Imaging, Inc. - Common Stock|Q|N|N|100 +EFOI|Energy Focus, Inc. - Common Stock|S|N|N|100 +EFSC|Enterprise Financial Services Corporation - Common Stock|Q|N|N|100 +EFUT|eFuture Information Technology Inc. - Ordinary Shares|S|N|N|100 +EGAN|eGain Corporation - Common Stock|S|N|N|100 +EGBN|Eagle Bancorp, Inc. - Common Stock|S|N|N|100 +EGHT|8x8 Inc - Common Stock|Q|N|N|100 +EGLE|Eagle Bulk Shipping Inc. - Common Stock|Q|N|N|100 +EGLT|Egalet Corporation - Common Stock|G|N|N|100 +EGOV|NIC Inc. - Common Stock|Q|N|N|100 +EGRW|iShares MSCI Emerging Markets Growth Index Fund|G|N|N|100 +EGRX|Eagle Pharmaceuticals, Inc. - Common Stock|G|N|N|100 +EGT|Entertainment Gaming Asia Incorporated - Common Stock|S|N|D|100 +EHTH|eHealth, Inc. - Common Stock|Q|N|N|100 +EIGI|Endurance International Group Holdings, Inc. - Common Stock|Q|N|N|100 +ELGX|Endologix, Inc. - Common Stock|Q|N|N|100 +ELNK|EarthLink Holdings Corp. - Common Stock|Q|N|N|100 +ELON|Echelon Corporation - Common Stock|Q|N|N|100 +ELOS|Syneron Medical Ltd. - Ordinary Shares|Q|N|N|100 +ELRC|Electro Rent Corporation - Common Stock|Q|N|N|100 +ELSE|Electro-Sensors, Inc. - Common Stock|S|N|N|100 +ELTK|Eltek Ltd. - Ordinary Shares|S|N|N|100 +EMCB|WisdomTree Emerging Markets Corporate Bond Fund|G|N|N|100 +EMCF|Emclaire Financial Corp - Common Stock|S|N|N|100 +EMCG|WisdomTree Emerging Markets Consumer Growth Fund|G|N|N|100 +EMCI|EMC Insurance Group Inc. - Common Stock|Q|N|N|100 +EMDI|iShares MSCI Emerging Markets Consumer Discrectionary Sector Index Fund|G|N|N|100 +EMEY|iShares MSCI Emerging Markets Energy Sector Capped Index Fund|G|N|N|100 +EMIF|iShares S&P Emerging Markets Infrastructure Index Fund|G|N|N|100 +EMITF|Elbit Imaging Ltd. - Ordinary Shares|Q|N|N|100 +EMKR|EMCORE Corporation - Common Stock|G|N|N|100 +EML|Eastern Company (The) - Common Stock|G|N|N|100 +EMMS|Emmis Communications Corporation - Class A Common Stock|Q|N|N|100 +EMMSP|Emmis Communications Corporation - 6.25% Series A Cumulative Convertible Preferred Stock|Q|N|N|100 +ENDP|Endo International plc - Ordinary Shares|Q|N|N|100 +ENFC|Entegra Financial Corp. - Common Stock|G|N|N|100 +ENG|ENGlobal Corporation - Common Stock|S|N|N|100 +ENOC|EnerNOC, Inc. - Common Stock|Q|N|N|100 +ENPH|Enphase Energy, Inc. - Common Stock|G|N|N|100 +ENSG|The Ensign Group, Inc. - Common Stock|Q|N|N|100 +ENT|Global Eagle Entertainment Inc. - Common Stock|S|N|N|100 +ENTA|Enanta Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +ENTG|Entegris, Inc. - Common Stock|Q|N|N|100 +ENTR|Entropic Communications, Inc. - Common Stock|Q|N|N|100 +ENVI|Envivio, Inc. - Common Stock|Q|N|N|100 +ENZN|Enzon Pharmaceuticals, Inc. - Common Stock|S|N|N|100 +ENZY|Enzymotec Ltd. - Ordinary Shares|Q|N|N|100 +EOPN|E2open, Inc. - Common Stock|G|N|N|100 +EPAX|Ambassadors Group, Inc. - Common Stock|Q|N|N|100 +EPAY|Bottomline Technologies, Inc. - Common Stock|Q|N|N|100 +EPIQ|EPIQ Systems, Inc. - Common Stock|Q|N|N|100 +EPRS|EPIRUS Biopharmaceuticals, Inc. - Common Stock|S|N|N|100 +EPZM|Epizyme, Inc. - Common Stock|Q|N|N|100 +EQIX|Equinix, Inc. - Common Stock|Q|N|N|100 +ERI|Eldorado Resorts, Inc. - Common Stock|Q|N|N|100 +ERIC|Ericsson - ADS each representing 1 underlying Class B share|Q|N|N|100 +ERIE|Erie Indemnity Company - Class A Common Stock|Q|N|N|100 +ERII|Energy Recovery, Inc. - Common Stock|Q|N|N|100 +EROC|Eagle Rock Energy Partners, L.P. - Common Units Representing Limited Partner Interests|Q|N|N|100 +ERS|Empire Resources, Inc. - Common Stock|S|N|N|100 +ERW|Janus Equal Risk Weighted Large Cap ETF|G|N|N|100 +ESBF|ESB Financial Corporation - Common Stock|Q|N|N|100 +ESBK|Elmira Savings Bank NY (The) - Common Stock|S|N|N|100 +ESCA|Escalade, Incorporated - Common Stock|G|N|N|100 +ESCR|Escalera Resources Co. - Common Stock|Q|N|N|100 +ESCRP|Escalera Resources Co. - Series A Cumulative Preferred Stock|Q|N|N|100 +ESEA|Euroseas Ltd. - Common Stock|Q|N|D|100 +ESGR|Enstar Group Limited - Ordinary Shares|Q|N|N|100 +ESIO|Electro Scientific Industries, Inc. - Common Stock|Q|N|N|100 +ESLT|Elbit Systems Ltd. - Ordinary Shares|Q|N|N|100 +ESMC|Escalon Medical Corp. - Common Stock|S|N|N|100 +ESPR|Esperion Therapeutics, Inc. - Common Stock|G|N|N|100 +ESRX|Express Scripts Holding Company - Common Stock|Q|N|N|100 +ESSA|ESSA Bancorp, Inc. - common stock|Q|N|N|100 +ESSX|Essex Rental Corporation - Common Stock|S|N|N|100 +ESXB|Community Bankers Trust Corporation. - Common Stock|S|N|N|100 +ETFC|E*TRADE Financial Corporation - Common Stock|Q|N|N|100 +ETRM|EnteroMedics Inc. - Common Stock|S|N|N|100 +EUFN|iShares MSCI Europe Financials Sector Index Fund|G|N|N|100 +EVAL|iShares MSCI Emerging Markets Value Index Fund|G|N|N|100 +EVAR|Lombard Medical, Inc. - Ordinary Shares|G|N|N|100 +EVBS|Eastern Virginia Bankshares, Inc. - Common Stock|Q|N|N|100 +EVEP|EV Energy Partners, L.P. - common units representing limited partnership interest|Q|N|N|100 +EVK|Ever-Glory International Group, Inc. - Common Stock|G|N|N|100 +EVLV|EVINE Live Inc. - Common Stock|Q|N|N|100 +EVOK|Evoke Pharma, Inc. - Common Stock|S|N|N|100 +EVOL|Evolving Systems, Inc. - Common Stock|S|N|N|100 +EVRY|EveryWare Global, Inc. - Common Stock|G|N|D|100 +EWBC|East West Bancorp, Inc. - Common Stock|Q|N|N|100 +EXA|Exa Corporation - Common Stock|G|N|N|100 +EXAC|Exactech, Inc. - Common Stock|Q|N|N|100 +EXAS|Exact Sciences Corporation - Common Stock|S|N|N|100 +EXEL|Exelixis, Inc. - Common Stock|Q|N|N|100 +EXFO|EXFO Inc - Subordinate Voting Shares|Q|N|N|100 +EXLP|Exterran Partners, L.P. - Common Units representing Limited Partner Interests|Q|N|N|100 +EXLS|ExlService Holdings, Inc. - Common Stock|Q|N|N|100 +EXPD|Expeditors International of Washington, Inc. - Common Stock|Q|N|N|100 +EXPE|Expedia, Inc. - Common Stock|Q|N|N|100 +EXPO|Exponent, Inc. - Common Stock|Q|N|N|100 +EXTR|Extreme Networks, Inc. - Common Stock|Q|N|N|100 +EXXI|Energy XXI Ltd. - Common Stock|Q|N|N|100 +EYEG|Eyegate Pharmaceuticals, Inc. - Common Stock|S|N|N|100 +EYES|Second Sight Medical Products, Inc. - Common Stock|S|N|N|100 +EZCH|EZchip Semiconductor Limited - Ordinary Shares|Q|N|N|100 +EZPW|EZCORP, Inc. - Class A Non-Voting Common Stock|Q|N|N|100 +FALC|FalconStor Software, Inc. - Common Stock|G|N|N|100 +FANG|Diamondback Energy, Inc. - Commmon Stock|Q|N|N|100 +FARM|Farmer Brothers Company - Common Stock|Q|N|N|100 +FARO|FARO Technologies, Inc. - Common Stock|Q|N|N|100 +FAST|Fastenal Company - Common Stock|Q|N|N|100 +FATE|Fate Therapeutics, Inc. - Common Stock|G|N|N|100 +FB|Facebook, Inc. - Class A Common Stock|Q|N|N|100 +FBIZ|First Business Financial Services, Inc. - Common Stock|Q|N|N|100 +FBMS|The First Bancshares, Inc. - Common Stock|G|N|N|100 +FBNC|First Bancorp - Common Stock|Q|N|N|100 +FBNK|First Connecticut Bancorp, Inc. - Common Stock|Q|N|N|100 +FBRC|FBR & Co - Common Stock|Q|N|N|100 +FBSS|Fauquier Bankshares, Inc. - Common Stock|S|N|N|100 +FCAP|First Capital, Inc. - Common Stock|S|N|N|100 +FCBC|First Community Bancshares, Inc. - Common Stock|Q|N|N|100 +FCCO|First Community Corporation - Common Stock|S|N|N|100 +FCCY|1st Constitution Bancorp (NJ) - Common Stock|G|N|N|100 +FCEL|FuelCell Energy, Inc. - Common Stock|G|N|N|100 +FCFS|First Cash Financial Services, Inc. - Common Stock|Q|N|N|100 +FCHI|iShares FTSE China (HK Listed) Index Fund|G|N|N|100 +FCLF|First Clover Leaf Financial Corp. - Common Stock|S|N|N|100 +FCNCA|First Citizens BancShares, Inc. - Class A Common Stock|Q|N|N|100 +FCS|Fairchild Semiconductor International, Inc. - Common Stock|Q|N|N|100 +FCSC|Fibrocell Science Inc - Common Stock|S|N|N|100 +FCTY|1st Century Bancshares, Inc - Common Stock|S|N|N|100 +FCVA|First Capital Bancorp, Inc. (VA) - Common Stock|S|N|N|100 +FCZA|First Citizens Banc Corp. - Common Stock|S|N|N|100 +FCZAP|First Citizens Banc Corp. - Depositary Shares Each Representing a 1/40th Interest in a 6.50% Noncumulative Redeemable Convertible Perpetual Preferred Share, Series B|S|N|N|100 +FDEF|First Defiance Financial Corp. - Common Stock|Q|N|N|100 +FDIV|First Trust Strategic Income ETF|G|N|N|100 +FDML|Federal-Mogul Holdings Corporation - Class A Common Stock|Q|N|N|100 +FDUS|Fidus Investment Corporation - Common Stock|Q|N|N|100 +FEIC|FEI Company - Common Stock|Q|N|N|100 +FEIM|Frequency Electronics, Inc. - Common Stock|G|N|N|100 +FELE|Franklin Electric Co., Inc. - Common Stock|Q|N|N|100 +FEMB|First Trust Emerging Markets Local Currency Bond ETF|G|N|N|100 +FES|Forbes Energy Services Ltd - Ordinary shares (Bermuda)|G|N|N|100 +FEUZ|First Trust Eurozone AlphaDEX ETF|G|N|N|100 +FEYE|FireEye, Inc. - Common Stock|Q|N|N|100 +FFBC|First Financial Bancorp. - Common Stock|Q|N|N|100 +FFBCW|First Financial Bancorp. - Warrant 12/23/2018|Q|N|N|100 +FFHL|Fuwei Films (Holdings) Co., Ltd. - ORDINARY SHARES|G|N|D|100 +FFIC|Flushing Financial Corporation - Common Stock|Q|N|N|100 +FFIN|First Financial Bankshares, Inc. - Common Stock|Q|N|N|100 +FFIV|F5 Networks, Inc. - Common Stock|Q|N|N|100 +FFKT|Farmers Capital Bank Corporation - Common Stock|Q|N|N|100 +FFNM|First Federal of Northern Michigan Bancorp, Inc. - Common Stock|S|N|N|100 +FFNW|First Financial Northwest, Inc. - Common Stock|Q|N|N|100 +FFWM|First Foundation Inc. - Common Stock|G|N|N|100 +FGEN|FibroGen, Inc - Common Stock|Q|N|N|100 +FHCO|Female Health Company (The) - Common Stock|S|N|N|100 +FIBK|First Interstate BancSystem, Inc. - Class A Common Stock|Q|N|N|100 +FINL|The Finish Line, Inc. - Class A Common Stock|Q|N|N|100 +FISH|Marlin Midstream Partners, LP - Common Units representing Limited Partner Interests.|G|N|N|100 +FISI|Financial Institutions, Inc. - Common Stock|Q|N|N|100 +FISV|Fiserv, Inc. - Common Stock|Q|N|N|100 +FITB|Fifth Third Bancorp - Common Stock|Q|N|N|100 +FITBI|Fifth Third Bancorp - Depositary Share repstg 1/1000th Ownership Interest Perp Pfd Series I|Q|N|N|100 +FIVE|Five Below, Inc. - Common Stock|Q|N|N|100 +FIVN|Five9, Inc. - Common Stock|G|N|N|100 +FIZZ|National Beverage Corp. - Common Stock|Q|N|N|100 +FLAT|Barclays PLC - iPath US Treasury Flattener ETN|G|N|N|100 +FLDM|Fluidigm Corporation - Common Stock|Q|N|N|100 +FLEX|Flextronics International Ltd. - Ordinary Shares|Q|N|N|100 +FLIC|The First of Long Island Corporation - Common Stock|S|N|N|100 +FLIR|FLIR Systems, Inc. - Common Stock|Q|N|N|100 +FLL|Full House Resorts, Inc. - Common Stock|S|N|N|100 +FLML|Flamel Technologies S.A. - American Depositary Shares each representing one Ordinary Share|G|N|N|100 +FLWS|1-800 FLOWERS.COM, Inc. - Class A Common Stock|Q|N|N|100 +FLXN|Flexion Therapeutics, Inc. - Common Stock|G|N|N|100 +FLXS|Flexsteel Industries, Inc. - Common Stock|Q|N|N|100 +FMB|First Trust Managed Municipal ETF|G|N|N|100 +FMBH|First Mid-Illinois Bancshares, Inc. - Common Stock|G|N|N|100 +FMBI|First Midwest Bancorp, Inc. - Common Stock|Q|N|N|100 +FMER|FirstMerit Corporation - Common Stock|Q|N|N|100 +FMI|Foundation Medicine, Inc. - Common Stock|Q|N|N|100 +FMNB|Farmers National Banc Corp. - Common Stock|S|N|N|100 +FNBC|First NBC Bank Holding Company - Common Stock|Q|N|N|100 +FNFG|First Niagara Financial Group Inc. - Common Stock|Q|N|N|100 +FNGN|Financial Engines, Inc. - Common Stock|Q|N|N|100 +FNHC|Federated National Holding Company - Common Stock|G|N|N|100 +FNJN|Finjan Holdings, Inc. - Common Stock|S|N|N|100 +FNLC|First Bancorp, Inc (ME) - Common Stock|Q|N|N|100 +FNRG|ForceField Energy Inc. - Common Stock|S|N|N|100 +FNSR|Finisar Corporation - Common Stock|Q|N|N|100 +FOLD|Amicus Therapeutics, Inc. - Common Stock|G|N|N|100 +FOMX|Foamix Pharmaceuticals Ltd. - Ordinary Shares|G|N|N|100 +FONE|First Trust NASDAQ CEA Smartphone Index Fund|G|N|N|100 +FONR|Fonar Corporation - Common Stock|S|N|N|100 +FORD|Forward Industries, Inc. - Common Stock|S|N|N|100 +FORM|FormFactor, Inc. - Common Stock|Q|N|N|100 +FORR|Forrester Research, Inc. - Common Stock|Q|N|N|100 +FORTY|Formula Systems (1985) Ltd. - ADS represents 1 ordinary shares|Q|N|N|100 +FOSL|Fossil Group, Inc. - Common Stock|Q|N|N|100 +FOX|Twenty-First Century Fox, Inc. - Class B Common Stock|Q|N|N|100 +FOXA|Twenty-First Century Fox, Inc. - Class A Common Stock|Q|N|N|100 +FOXF|Fox Factory Holding Corp. - Common Stock|Q|N|N|100 +FPRX|Five Prime Therapeutics, Inc. - Common Stock|Q|N|N|100 +FPXI|First Trust International IPO ETF|G|N|N|100 +FRAN|Francesca's Holdings Corporation - Common Stock|Q|N|N|100 +FRBA|First Bank - Common Stock|G|N|N|100 +FRBK|Republic First Bancorp, Inc. - Common Stock|G|N|N|100 +FRED|Fred's, Inc. - Common Stock|Q|N|N|100 +FREE|FreeSeas Inc. - Common Stock|S|N|D|100 +FRGI|Fiesta Restaurant Group, Inc. - Common Stock|Q|N|N|100 +FRME|First Merchants Corporation - Common Stock|Q|N|N|100 +FRP|FairPoint Communications, Inc. - Common Stock|S|N|N|100 +FRPH|FRP Holdings, Inc. - Common Stock|Q|N|N|100 +FRPHV|FRP Holdings, Inc. - Common Stock Ex-Distribution When Issued|Q|N|N|100 +FRPT|Freshpet, Inc. - Common Stock|G|N|N|100 +FRSH|Papa Murphy's Holdings, Inc. - Common Stock|Q|N|N|100 +FSAM|Fifth Street Asset Management Inc. - Class A Common Stock|Q|N|N|100 +FSBK|First South Bancorp Inc - Common Stock|Q|N|N|100 +FSBW|FS Bancorp, Inc. - Common Stock|S|N|N|100 +FSC|Fifth Street Finance Corp. - Common Stock|Q|N|N|100 +FSCFL|Fifth Street Finance Corp. - 6.125% senior notes due 2028|Q|N|N|100 +FSFG|First Savings Financial Group, Inc. - Common Stock|S|N|N|100 +FSFR|Fifth Street Senior Floating Rate Corp. - Common Stock|Q|N|N|100 +FSGI|First Security Group, Inc. - Common Stock|S|N|N|100 +FSLR|First Solar, Inc. - Common Stock|Q|N|N|100 +FSNN|Fusion Telecommunications International, Inc. - Common Stock|S|N|N|100 +FSRV|FirstService Corporation - Subordinate Voting Shares|Q|N|N|100 +FSTR|L.B. Foster Company - Common Stock|Q|N|N|100 +FSYS|Fuel Systems Solutions, Inc. - Common Stock|Q|N|N|100 +FTCS|First Trust Capital Strength ETF|G|N|N|100 +FTD|FTD Companies, Inc. - Common Stock|Q|N|N|100 +FTEK|Fuel Tech, Inc. - Common Stock|Q|N|N|100 +FTGC|First Trust Global Tactical Commodity Strategy Fund|G|N|N|100 +FTHI|First Trust High Income ETF|G|N|N|100 +FTLB|First Trust Low Beta Income ETF|G|N|N|100 +FTNT|Fortinet, Inc. - Common Stock|Q|N|N|100 +FTR|Frontier Communications Corporation - Common Stock|Q|N|N|100 +FTSL|First Trust Senior Loan Fund ETF|G|N|N|100 +FTSM|First Trust Enhanced Short Maturity ETF|G|N|N|100 +FUEL|Rocket Fuel Inc. - Common Stock|Q|N|N|100 +FULL|Full Circle Capital Corporation - Common Stock|G|N|N|100 +FULLL|Full Circle Capital Corporation - 8.25% Notes due 2020|G|N|N|100 +FULT|Fulton Financial Corporation - Common Stock|Q|N|N|100 +FUNC|First United Corporation - Common Stock|Q|N|N|100 +FUND|Royce Focus Trust, Inc. - Closed End Fund|Q|N|N|100 +FV|First Trust Dorsey Wright Focus 5 ETF|G|N|N|100 +FWM|Fairway Group Holdings Corp. - Class A Common Stock|G|N|N|100 +FWP|Forward Pharma A/S - American Depositary Shares|Q|N|N|100 +FWRD|Forward Air Corporation - Common Stock|Q|N|N|100 +FXCB|Fox Chase Bancorp, Inc. - Common Stock|Q|N|N|100 +FXEN|FX Energy, Inc. - Common Stock|Q|N|N|100 +FXENP|FX Energy, Inc. - Series B Cumulative Convertible Preferred Stock|Q|N|N|100 +GABC|German American Bancorp, Inc. - Common Stock|Q|N|N|100 +GAI|Global-Tech Advanced Innovations Inc. - Common Stock|G|N|N|100 +GAIA|Gaiam, Inc. - Class A Common Stock|G|N|N|100 +GAIN|Gladstone Investment Corporation - Business Development Company|Q|N|N|100 +GAINO|Gladstone Investment Corporation - 6.75% Series B Cumulative Term Preferred Stock|Q|N|N|100 +GAINP|Gladstone Investment Corporation - 7.125% Series A Term Preferred Stock|Q|N|N|100 +GALE|Galena Biopharma, Inc. - Common Stock|S|N|N|100 +GALT|Galectin Therapeutics Inc. - Common Stock|S|N|N|100 +GALTU|Galectin Therapeutics Inc. - Units|S|N|N|100 +GALTW|Galectin Therapeutics Inc. - Warrants|S|N|N|100 +GAME|Shanda Games Limited - American Depositary Shares representing 2 Class A Ordinary Shares|Q|N|N|100 +GARS|Garrison Capital Inc. - Common Stock|Q|N|N|100 +GASS|StealthGas, Inc. - common stock|Q|N|N|100 +GBCI|Glacier Bancorp, Inc. - Common Stock|Q|N|N|100 +GBDC|Golub Capital BDC, Inc. - Common Stock|Q|N|N|100 +GBIM|GlobeImmune, Inc. - Common Stock|S|N|N|100 +GBLI|Global Indemnity plc - Class A Common Shares|Q|N|N|100 +GBNK|Guaranty Bancorp - Common Stock|Q|N|N|100 +GBSN|Great Basin Scientific, Inc. - Common Stock|S|N|N|100 +GCBC|Greene County Bancorp, Inc. - Common Stock|S|N|N|100 +GCVRZ|Sanofi - Contingent Value Right (Expiring 12/31/2020)|G|N|N|100 +GDEF|Global Defense & National Security Systems, Inc. - Common Stock|S|N|D|100 +GENC|Gencor Industries Inc. - Common Stock|G|N|N|100 +GENE|Genetic Technologies Ltd - American Depositary Shares representing 30 ordinary shares|S|N|D|100 +GEOS|Geospace Technologies Corporation - Common Stock|Q|N|N|100 +GERN|Geron Corporation - Common Stock|Q|N|N|100 +GEVA|Synageva BioPharma Corp. - Common Stock|Q|N|N|100 +GEVO|Gevo, Inc. - Common Stock|S|N|D|100 +GFED|Guaranty Federal Bancshares, Inc. - Common Stock|G|N|N|100 +GFN|General Finance Corporation - Common Stock|G|N|N|100 +GFNCP|General Finance Corporation - Cumulative Redeemable Perpetual Preferred Series C|G|N|N|100 +GFNSL|General Finance Corporation - Senior Notes due 2021|G|N|N|100 +GGAC|Garnero Group Acquisition Company - Ordinary Shares|S|N|N|100 +GGACR|Garnero Group Acquisition Company - Rights expiring 6/25/2016|S|N|N|100 +GGACU|Garnero Group Acquisition Company - Units|S|N|N|100 +GGACW|Garnero Group Acquisition Company - Warrant expiring 6/24/2019|S|N|N|100 +GGAL|Grupo Financiero Galicia S.A. - American Depositary Shares, Class B Shares underlying|S|N|N|100 +GHDX|Genomic Health, Inc. - Common Stock|Q|N|N|100 +GIFI|Gulf Island Fabrication, Inc. - Common Stock|Q|N|N|100 +GIGA|Giga-tronics Incorporated - Common Stock|S|N|D|100 +GIGM|GigaMedia Limited - Ordinary Shares|Q|N|D|100 +GIII|G-III Apparel Group, LTD. - Common Stock|Q|N|N|100 +GILD|Gilead Sciences, Inc. - Common Stock|Q|N|N|100 +GILT|Gilat Satellite Networks Ltd. - Ordinary Shares|Q|N|N|100 +GK|G&K Services, Inc. - Class A Common Stock|Q|N|N|100 +GKNT|Geeknet, Inc. - Common Stock|G|N|N|100 +GLAD|Gladstone Capital Corporation - Business Development Company|Q|N|N|100 +GLADO|Gladstone Capital Corporation - Term Preferred Shares, 6.75% Series 2021|Q|N|N|100 +GLBS|Globus Maritime Limited - Common Stock|G|N|N|100 +GLBZ|Glen Burnie Bancorp - Common Stock|S|N|N|100 +GLDC|Golden Enterprises, Inc. - Common Stock|G|N|N|100 +GLDD|Great Lakes Dredge & Dock Corporation - Common Stock|Q|N|N|100 +GLDI|Credit Suisse AG - Credit Suisse Gold Shares Covered Call Exchange Traded Notes|G|N|N|100 +GLMD|Galmed Pharmaceuticals Ltd. - Ordinary Shares|S|N|N|100 +GLNG|Golar LNG Limited - Common Shares|Q|N|N|100 +GLPI|Gaming and Leisure Properties, Inc. - Common Stock|Q|N|N|100 +GLRE|Greenlight Reinsurance, Ltd. - Class A Ordinary Shares|Q|N|N|100 +GLRI|Glori Energy Inc - Common Stock|S|N|N|100 +GLUU|Glu Mobile Inc. - Common Stock|Q|N|N|100 +GLYC|GlycoMimetics, Inc. - Common Stock|G|N|N|100 +GMAN|Gordmans Stores, Inc. - Common Stock|Q|N|N|100 +GMCR|Keurig Green Mountain, Inc. - Common Stock|Q|N|N|100 +GMLP|Golar LNG Partners LP - Common Units Representing Limited Partnership|Q|N|N|100 +GNBC|Green Bancorp, Inc. - Common Stock|Q|N|N|100 +GNCA|Genocea Biosciences, Inc. - Common Stock|G|N|N|100 +GNCMA|General Communication, Inc. - Class A Common Stock|Q|N|N|100 +GNMA|iShares Core GNMA Bond ETF|G|N|N|100 +GNMK|GenMark Diagnostics, Inc. - Common Stock|G|N|N|100 +GNTX|Gentex Corporation - Common Stock|Q|N|N|100 +GNVC|GenVec, Inc. - Common Stock|S|N|N|100 +GOGO|Gogo Inc. - Common Stock|Q|N|N|100 +GOLD|Randgold Resources Limited - American Depositary Shares each represented by one Ordinary Share|Q|N|N|100 +GOMO|Sungy Mobile Limited - American Depositary Shares|G|N|N|100 +GOOD|Gladstone Commercial Corporation - Real Estate Investment Trust|Q|N|N|100 +GOODN|Gladstone Commercial Corporation - 7.125% Series C Cumulative Term Preferred Stock|Q|N|N|100 +GOODO|Gladstone Commercial Corporation - 7.50% Series B Cumulative Redeemable Preferred Stock|Q|N|N|100 +GOODP|Gladstone Commercial Corporation - 7.75% Series A Cumulative Redeemable Preferred Stock|Q|N|N|100 +GOOG|Google Inc. - Class C Capital Stock|Q|N|N|100 +GOOGL|Google Inc. - Class A Common Stock|Q|N|N|100 +GPIC|Gaming Partners International Corporation - Common Stock|G|N|N|100 +GPOR|Gulfport Energy Corporation - Common Stock|Q|N|N|100 +GPRE|Green Plains, Inc. - Common Stock|Q|N|N|100 +GPRO|GoPro, Inc. - Class A Common Stock|Q|N|N|100 +GRBK|Green Brick Partners, Inc. - Common Stock|S|N|N|100 +GRFS|Grifols, S.A. - American Depositary Shares|Q|N|N|100 +GRID|First Trust NASDAQ Clean Edge Smart Grid Infrastructure Index Fund|G|N|N|100 +GRIF|Griffin Land & Nurseries, Inc. - Common Stock|G|N|N|100 +GRMN|Garmin Ltd. - Common Stock|Q|N|N|100 +GROW|U.S. Global Investors, Inc. - Class A Common Stock|S|N|N|100 +GRPN|Groupon, Inc. - Class A Common Stock|Q|N|N|100 +GRVY|GRAVITY Co., Ltd. - American depositary shares, each representing one-fourth of a share of common stock|S|N|D|100 +GSBC|Great Southern Bancorp, Inc. - Common Stock|Q|N|N|100 +GSIG|GSI Group, Inc. - Common Stock|Q|N|N|100 +GSIT|GSI Technology, Inc. - Common Stock|Q|N|N|100 +GSM|Globe Specialty Metals Inc. - Common Stock|Q|N|N|100 +GSOL|Global Sources Ltd. - Common Stock|Q|N|N|100 +GSVC|GSV Capital Corp - Common Stock|S|N|N|100 +GT|The Goodyear Tire & Rubber Company - Common Stock|Q|N|N|100 +GTIM|Good Times Restaurants Inc. - Common Stock|S|N|N|100 +GTIV|Gentiva Health Services, Inc. - Common Stock|Q|N|N|100 +GTLS|Chart Industries, Inc. - Common Stock|Q|N|N|100 +GTWN|Georgetown Bancorp, Inc. - Common Stock|S|N|N|100 +GTXI|GTx, Inc. - Common Stock|G|N|D|100 +GUID|Guidance Software, Inc. - Common Stock|G|N|N|100 +GULF|WisdomTree Middle East Dividend Fund|G|N|N|100 +GULTU|Gulf Coast Ultra Deep Royalty Trust - Royalty Trust Unit|S|N|N|100 +GURE|Gulf Resources, Inc. - Common Stock|Q|N|N|100 +GWGH|GWG Holdings, Inc - Common Stock|S|N|N|100 +GWPH|GW Pharmaceuticals Plc - American Depositary Shares|G|N|N|100 +GYRO|Gyrodyne Company of America, Inc. - Common Stock|S|N|N|100 +HA|Hawaiian Holdings, Inc. - Common Stock|Q|N|N|100 +HABT|The Habit Restaurants, Inc. - Class A Common Stock|G|N|N|100 +HAFC|Hanmi Financial Corporation - Common Stock|Q|N|N|100 +HAIN|The Hain Celestial Group, Inc. - Common Stock|Q|N|N|100 +HALL|Hallmark Financial Services, Inc. - Common Stock|G|N|N|100 +HALO|Halozyme Therapeutics, Inc. - Common Stock|Q|N|N|100 +HART|Harvard Apparatus Regenerative Technology, Inc. - Common Stock|S|N|N|100 +HAS|Hasbro, Inc. - Common Stock|Q|N|N|100 +HAWK|Blackhawk Network Holdings, Inc. - Class A Common Stock|Q|N|N|100 +HAWKB|Blackhawk Network Holdings, Inc. - Class B Common Stock|Q|N|N|100 +HAYN|Haynes International, Inc. - Common Stock|Q|N|N|100 +HBAN|Huntington Bancshares Incorporated - Common Stock|Q|N|N|100 +HBANP|Huntington Bancshares Incorporated - Non Cumulative Perp Conv Pfd Ser A|Q|N|N|10 +HBCP|Home Bancorp, Inc. - Common Stock|Q|N|N|100 +HBHC|Hancock Holding Company - Common Stock|Q|N|N|100 +HBIO|Harvard Bioscience, Inc. - Common Stock|G|N|N|100 +HBK|Hamilton Bancorp, Inc. - Common Stock|S|N|N|100 +HBMD|Howard Bancorp, Inc. - Common Stock|S|N|N|100 +HBNC|Horizon Bancorp (IN) - Common Stock|Q|N|N|100 +HBNK|Hampden Bancorp, Inc. - common stock|G|N|N|100 +HBOS|Heritage Financial Group - Common Stock|Q|N|N|100 +HBP|Huttig Building Products, Inc. - Common Stock|S|N|N|100 +HCAC|Hennessy Capital Acquisition Corp. - Common Stock|S|N|D|100 +HCACU|Hennessy Capital Acquisition Corp. - Unit|S|N|N|100 +HCACW|Hennessy Capital Acquisition Corp. - Warrant|S|N|N|100 +HCAP|Harvest Capital Credit Corporation - Common Stock|G|N|N|100 +HCAPL|Harvest Capital Credit Corporation - 7.00% Notes due 2020|G|N|N|100 +HCBK|Hudson City Bancorp, Inc. - Common Stock|Q|N|N|100 +HCCI|Heritage-Crystal Clean, Inc. - Common Stock|Q|N|N|100 +HCKT|The Hackett Group, Inc. - Common Stock|Q|N|N|100 +HCOM|Hawaiian Telcom Holdco, Inc. - Common Stock|Q|N|N|100 +HCSG|Healthcare Services Group, Inc. - Common Stock|Q|N|N|100 +HDNG|Hardinge, Inc. - Common Stock|Q|N|N|100 +HDP|Hortonworks, Inc. - Common Stock|Q|N|N|100 +HDRA|Hydra Industries Acquisition Corp. - Common Stock|S|N|N|100 +HDRAR|Hydra Industries Acquisition Corp. - Rights|S|N|N|100 +HDRAU|Hydra Industries Acquisition Corp. - Units|S|N|N|100 +HDRAW|Hydra Industries Acquisition Corp. - Warrants|S|N|N|100 +HDS|HD Supply Holdings, Inc. - Common Stock|Q|N|N|100 +HDSN|Hudson Technologies, Inc. - Common Stock|S|N|N|100 +HEAR|Turtle Beach Corporation - Common Stock|G|N|N|100 +HEES|H&E Equipment Services, Inc. - Common Stock|Q|N|N|100 +HELE|Helen of Troy Limited - Common Stock|Q|N|N|100 +HEOP|Heritage Oaks Bancorp - Common Stock|S|N|N|100 +HERO|Hercules Offshore, Inc. - Common Stock|Q|N|N|100 +HFBC|HopFed Bancorp, Inc. - Common Stock|G|N|N|100 +HFBL|Home Federal Bancorp, Inc. of Louisiana - Common Stock|S|N|N|100 +HFFC|HF Financial Corp. - Common Stock|G|N|N|100 +HFWA|Heritage Financial Corporation - Common Stock|Q|N|N|100 +HGSH|China HGS Real Estate, Inc. - Common Stock|S|N|N|100 +HIBB|Hibbett Sports, Inc. - Common Stock|Q|N|N|100 +HIFS|Hingham Institution for Savings - Common Stock|G|N|N|100 +HIHO|Highway Holdings Limited - Common Stock|S|N|N|100 +HIIQ|Health Insurance Innovations, Inc. - Class A Common Stock|G|N|N|100 +HILL|Dot Hill Systems Corporation - Common Stock|G|N|N|100 +HIMX|Himax Technologies, Inc. - American depositary shares, each of which represents two ordinary shares.|Q|N|N|100 +HKTV|Hong Kong Television Network Limited - American Depositary Shares, each representing 20 Ordinary Shares|Q|N|N|100 +HLIT|Harmonic Inc. - Common Stock|Q|N|N|100 +HLSS|Home Loan Servicing Solutions, Ltd. - Ordinary Shares|Q|N|N|100 +HMHC|Houghton Mifflin Harcourt Company - Common Stock|Q|N|N|100 +HMIN|Homeinns Hotel Group - American Depositary Shares, each representing two ordinary shares|Q|N|N|100 +HMNF|HMN Financial, Inc. - Common Stock|G|N|N|100 +HMNY|Helios and Matheson Analytics Inc - Common Stock|S|N|N|100 +HMPR|Hampton Roads Bankshares Inc - Common Stock|Q|N|N|100 +HMST|HomeStreet, Inc. - Common Stock|Q|N|N|100 +HMSY|HMS Holdings Corp - Common Stock|Q|N|N|100 +HMTV|Hemisphere Media Group, Inc. - Class A Common Stock|G|N|N|100 +HNH|Handy & Harman Ltd. - Common Stock|S|N|N|100 +HNNA|Hennessy Advisors, Inc. - Common Stock|S|N|N|100 +HNRG|Hallador Energy Company - Common Stock|S|N|N|100 +HNSN|Hansen Medical, Inc. - Common Stock|G|N|D|100 +HOFT|Hooker Furniture Corporation - Common Stock|Q|N|N|100 +HOLI|Hollysys Automation Technologies, Ltd. - Common Stock|Q|N|N|100 +HOLX|Hologic, Inc. - Common Stock|Q|N|N|100 +HOMB|Home BancShares, Inc. - common stock|Q|N|N|100 +HOTR|Chanticleer Holdings, Inc. - Common Stock|S|N|N|100 +HOTRW|Chanticleer Holdings, Inc. - Warrants|S|N|N|100 +HOVNP|Hovnanian Enterprises Inc - Depositary Share representing 1/1000th of 7.625% Series A Preferred Stock|G|N|N|100 +HPJ|Highpower International Inc - Common Stock|G|N|N|100 +HPTX|Hyperion Therapeutics, Inc. - Common Stock|Q|N|N|100 +HQY|HealthEquity, Inc. - Common Stock|Q|N|N|100 +HRTX|Heron Therapeutics, Inc. - Common Stock|S|N|N|100 +HRZN|Horizon Technology Finance Corporation - Common Stock|Q|N|N|100 +HSGX|Histogenics Corporation - Common Stock|G|N|N|100 +HSIC|Henry Schein, Inc. - Common Stock|Q|N|N|100 +HSII|Heidrick & Struggles International, Inc. - Common Stock|Q|N|N|100 +HSKA|Heska Corporation - Common Stock|S|N|N|100 +HSNI|HSN, Inc. - Common Stock|Q|N|N|100 +HSOL|Hanwha SolarOne Co., Ltd. - American Depository Shares, each representing five ordinary shares|Q|N|N|100 +HSON|Hudson Global, Inc. - Common Stock|Q|N|N|100 +HSTM|HealthStream, Inc. - Common Stock|Q|N|N|100 +HTBI|HomeTrust Bancshares, Inc. - Common Stock|Q|N|N|100 +HTBK|Heritage Commerce Corp - Common Stock|Q|N|N|100 +HTBX|Heat Biologics, Inc. - Common Stock|S|N|N|100 +HTCH|Hutchinson Technology Incorporated - Common Stock|Q|N|N|100 +HTHT|China Lodging Group, Limited - American Depositary Shares, each representing four Ordinary Shares|Q|N|N|100 +HTLD|Heartland Express, Inc. - Common Stock|Q|N|N|100 +HTLF|Heartland Financial USA, Inc. - Common Stock|Q|N|N|100 +HTWO|HF2 Financial Management Inc. - Class A Common Stock|S|N|D|100 +HTWR|Heartware International, Inc. - Common Stock|Q|N|N|100 +HUBG|Hub Group, Inc. - Class A Common Stock|Q|N|N|100 +HURC|Hurco Companies, Inc. - Common Stock|Q|N|N|100 +HURN|Huron Consulting Group Inc. - Common Stock|Q|N|N|100 +HWAY|Healthways, Inc. - Common Stock|Q|N|N|100 +HWBK|Hawthorn Bancshares, Inc. - Common Stock|Q|N|N|100 +HWCC|Houston Wire & Cable Company - Common Stock|Q|N|N|100 +HWKN|Hawkins, Inc. - Common Stock|Q|N|N|100 +HYGS|Hydrogenics Corporation - Common Shares|G|N|N|100 +HYLS|First Trust High Yield Long/Short ETF|G|N|N|100 +HYND|WisdomTree BofA Merrill Lynch High Yield Bond Negative Duration Fund|G|N|N|100 +HYZD|WisdomTree BofA Merrill Lynch High Yield Bond Zero Duration Fund|G|N|N|100 +HZNP|Horizon Pharma plc - common stock|Q|N|N|100 +IACI|IAC/InterActiveCorp - Common Stock|Q|N|N|100 +IART|Integra LifeSciences Holdings Corporation - Common Stock|Q|N|N|100 +IBB|iShares Nasdaq Biotechnology Index Fund|G|N|N|100 +IBCA|Intervest Bancshares Corp. - Common Stock|Q|N|N|100 +IBCP|Independent Bank Corporation - Common Stock|Q|N|N|100 +IBKC|IBERIABANK Corporation - Common Stock|Q|N|N|100 +IBKR|Interactive Brokers Group, Inc. - Common Stock|Q|N|N|100 +IBOC|International Bancshares Corporation - Common Stock|Q|N|N|100 +IBTX|Independent Bank Group, Inc - Common Stock|Q|N|N|100 +ICAD|icad inc. - Common Stock|S|N|N|100 +ICBK|County Bancorp, Inc. - Common Stock|G|N|N|100 +ICCC|ImmuCell Corporation - Common Stock|S|N|N|100 +ICEL|Cellular Dynamics International, Inc. - Common Stock|G|N|N|100 +ICFI|ICF International, Inc. - Common Stock|Q|N|N|100 +ICLD|InterCloud Systems, Inc - Common Stock|S|N|N|100 +ICLDW|InterCloud Systems, Inc - Warrant|S|N|N|100 +ICLN|iShares S&P Global Clean Energy Index Fund|G|N|N|100 +ICLR|ICON plc - Ordinary Shares|Q|N|N|100 +ICON|Iconix Brand Group, Inc. - Common Stock|Q|N|N|100 +ICPT|Intercept Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +ICUI|ICU Medical, Inc. - Common Stock|Q|N|N|100 +IDCC|InterDigital, Inc. - Common Stock|Q|N|N|100 +IDRA|Idera Pharmaceuticals, Inc. - Common Stock|S|N|N|100 +IDSA|Industrial Services of America, Inc. - Common Stock|S|N|N|100 +IDSY|I.D. Systems, Inc. - Common Stock|G|N|N|100 +IDTI|Integrated Device Technology, Inc. - Common Stock|Q|N|N|100 +IDXX|IDEXX Laboratories, Inc. - Common Stock|Q|N|N|100 +IEP|Icahn Enterprises L.P. - Depositary units|Q|N|N|100 +IESC|Integrated Electrical Services, Inc. - Common Stock|G|N|N|100 +IEUS|iShares MSCI Europe Small-Cap ETF|G|N|N|100 +IFAS|iShares FTSE EPRA/NAREIT Asia Index Fund|G|N|N|100 +IFEU|iShares FTSE EPRA/NAREIT Europe Index Fund|G|N|N|100 +IFGL|iShares FTSE EPRA/NAREIT Global Real Estate ex-U.S. Index Fund|G|N|N|100 +IFNA|iShares FTSE EPRA/NAREIT North America Index Fund|G|N|N|100 +IFON|InfoSonics Corp - Common Stock|S|N|N|100 +IFV|First Trust Dorsey Wright International Focus 5 ETF|G|N|N|100 +IGLD|Internet Gold Golden Lines Ltd. - Ordinary Shares|Q|N|N|100 +IGOV|iShares S&P/Citigroup International Treasury Bond Fund|G|N|N|100 +IGTE|iGATE Corporation - Common Stock|Q|N|N|100 +III|Information Services Group, Inc. - Common Stock|G|N|N|100 +IIIN|Insteel Industries, Inc. - Common Stock|Q|N|N|100 +IIJI|Internet Initiative Japan, Inc. - ADS represents common stock|Q|N|N|100 +IILG|Interval Leisure Group, Inc. - Common Stock|Q|N|N|100 +IIN|IntriCon Corporation - Common Stock|G|N|N|100 +IIVI|II-VI Incorporated - Common Stock|Q|N|N|100 +IKAN|Ikanos Communications, Inc. - Common Stock|S|N|D|100 +IKGH|Iao Kun Group Holding Company Limited - Ordinary Shares (Cayman Islands)|G|N|N|100 +IKNX|Ikonics Corporation - Common Stock|S|N|N|100 +ILMN|Illumina, Inc. - Common Stock|Q|N|N|100 +IMDZ|Immune Design Corp. - Common Stock|G|N|N|100 +IMGN|ImmunoGen, Inc. - Common Stock|Q|N|N|100 +IMI|Intermolecular, Inc. - Common Stock|Q|N|N|100 +IMKTA|Ingles Markets, Incorporated - Class A Common Stock|Q|N|N|100 +IMMR|Immersion Corporation - Common Stock|Q|N|N|100 +IMMU|Immunomedics, Inc. - Common Stock|G|N|N|100 +IMMY|Imprimis Pharmaceuticals, Inc. - Common Stock|S|N|N|100 +IMNP|Immune Pharmaceuticals Inc. - Common Stock|S|N|N|100 +IMOS|ChipMOS TECHNOLOGIES (Bermuda) LTD. - Common Shares|S|N|N|100 +IMRS|Imris Inc - Common Shares|Q|N|N|100 +INAP|Internap Corporation - Common Stock|Q|N|N|100 +INBK|First Internet Bancorp - Common Stock|S|N|N|100 +INCR|INC Research Holdings, Inc. - Class A Common Stock|Q|N|N|100 +INCY|Incyte Corporation - Common Stock|Q|N|N|100 +INDB|Independent Bank Corp. - Common Stock|Q|N|N|100 +INDY|iShares S&P India Nifty 50 Index Fund|G|N|N|100 +INFA|Informatica Corporation - Common Stock|Q|N|N|100 +INFI|Infinity Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +INFN|Infinera Corporation - Common Stock|Q|N|N|100 +INGN|Inogen, Inc - Common Stock|Q|N|N|100 +ININ|Interactive Intelligence Group, Inc. - Common Stock|Q|N|N|100 +INNL|Innocoll AG - American Depositary Share|G|N|N|100 +INO|Inovio Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +INOD|Innodata Inc. - Common Stock|G|N|N|100 +INPH|Interphase Corporation - Common Stock|S|N|N|100 +INSM|Insmed, Inc. - Common Stock|Q|N|N|100 +INSY|Insys Therapeutics, Inc. - Common Stock|G|N|N|100 +INTC|Intel Corporation - Common Stock|Q|N|N|100 +INTG|The Intergroup Corporation - Common Stock|S|N|N|100 +INTL|INTL FCStone Inc. - Common Stock|Q|N|N|100 +INTLL|INTL FCStone Inc. - 8.5% Senior Notes Due 2020|Q|N|N|100 +INTU|Intuit Inc. - Common Stock|Q|N|N|100 +INTX|Intersections, Inc. - Common Stock|G|N|N|100 +INVE|Identiv, Inc. - Common Stock|S|N|N|100 +INVT|Inventergy Global, Inc. - Common Stock|S|N|D|100 +INWK|InnerWorkings, Inc. - Common Stock|Q|N|N|100 +IOSP|Innospec Inc. - Common Stock|Q|N|N|100 +IPAR|Inter Parfums, Inc. - Common Stock|Q|N|N|100 +IPAS|iPass Inc. - Common Stock|Q|N|N|100 +IPCC|Infinity Property and Casualty Corporation - Common Stock|Q|N|N|100 +IPCI|Intellipharmaceutics International Inc. - Common Stock|S|N|N|100 +IPCM|IPC Healthcare, Inc. - Common Stock|Q|N|N|100 +IPDN|Professional Diversity Network, Inc. - Common Stock|S|N|N|100 +IPGP|IPG Photonics Corporation - Common Stock|Q|N|N|100 +IPHS|Innophos Holdings, Inc. - Common Stock|Q|N|N|100 +IPKW|PowerShares International BuyBack Achievers Portfolio|G|N|N|100 +IPWR|Ideal Power Inc. - Common Stock|S|N|N|100 +IPXL|Impax Laboratories, Inc. - Common Stock|Q|N|N|100 +IQNT|Inteliquent, Inc. - Common Stock|Q|N|N|100 +IRBT|iRobot Corporation - Common Stock|Q|N|N|100 +IRDM|Iridium Communications Inc - Common Stock|Q|N|N|100 +IRDMB|Iridium Communications Inc - 6.75% Series B Cumulative Perpetual Convertible Preferred Stock|Q|N|N|100 +IRDMZ|Iridium Communications Inc - Warrants 02/14/2015|Q|N|N|100 +IRG|Ignite Restaurant Group, Inc. - Common Stock|Q|N|N|100 +IRIX|IRIDEX Corporation - Common Stock|G|N|N|100 +IRMD|iRadimed Corporation - Common Stock|S|N|N|100 +IROQ|IF Bancorp, Inc. - Common Stock|S|N|N|100 +IRWD|Ironwood Pharmaceuticals, Inc. - Class A Common Stock|Q|N|N|100 +ISBC|Investors Bancorp, Inc. - Common Stock|Q|N|N|100 +ISCA|International Speedway Corporation - Class A Common Stock|Q|N|N|100 +ISHG|iShares S&P/Citigroup 1-3 Year International Treasury Bond Fund|G|N|N|100 +ISIG|Insignia Systems, Inc. - Common Stock|S|N|N|100 +ISIL|Intersil Corporation - Class A Common Stock|Q|N|N|100 +ISIS|Isis Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +ISLE|Isle of Capri Casinos, Inc. - Common Stock|Q|N|N|100 +ISM|SLM Corporation - Medium Term Notes, Series A, CPI-Linked Notes due January 16, 2018|G|N|N|100 +ISNS|Image Sensing Systems, Inc. - Common Stock|S|N|N|100 +ISRG|Intuitive Surgical, Inc. - Common Stock|Q|N|N|100 +ISRL|Isramco, Inc. - Common Stock|S|N|N|100 +ISSC|Innovative Solutions and Support, Inc. - Common Stock|Q|N|N|100 +ISSI|Integrated Silicon Solution, Inc. - Common Stock|Q|N|N|100 +ISTR|Investar Holding Corporation - Common Stock|G|N|N|100 +ITCI|Intra-Cellular Therapies Inc. - Common Stock|Q|N|N|100 +ITIC|Investors Title Company - Common Stock|Q|N|N|100 +ITRI|Itron, Inc. - Common Stock|Q|N|N|100 +ITRN|Ituran Location and Control Ltd. - Ordinary Shares|Q|N|N|100 +IVAC|Intevac, Inc. - Common Stock|Q|N|N|100 +IVAN|Ivanhoe Energy, Inc. - Common Shares|S|N|D|100 +IXYS|IXYS Corporation - Common Stock|Q|N|N|100 +JACK|Jack In The Box Inc. - Common Stock|Q|N|N|100 +JACQ|Collabrium Japan Acquisition Corporation - Ordinary Shares|S|N|H|100 +JACQU|Collabrium Japan Acquisition Corporation - Units|S|N|H|100 +JACQW|Collabrium Japan Acquisition Corporation - Warrant|S|N|H|100 +JAKK|JAKKS Pacific, Inc. - Common Stock|Q|N|N|100 +JASN|Jason Industries, Inc. - Common Stock|S|N|N|100 +JASNW|Jason Industries, Inc. - Warrant|S|N|N|100 +JASO|JA Solar Holdings, Co., Ltd. - American depositary shares, each representing five ordinary shares|Q|N|N|100 +JAXB|Jacksonville Bancorp, Inc. - Common Stock (Voting)|S|N|N|100 +JAZZ|Jazz Pharmaceuticals plc - Ordinary Shares|Q|N|N|100 +JBHT|J.B. Hunt Transport Services, Inc. - Common Stock|Q|N|N|100 +JBLU|JetBlue Airways Corporation - Common Stock|Q|N|N|100 +JBSS|John B. Sanfilippo & Son, Inc. - Common Stock|Q|N|N|100 +JCOM|j2 Global, Inc. - Common Stock|Q|N|N|100 +JCS|Communications Systems, Inc. - Common Stock|G|N|N|100 +JCTCF|Jewett-Cameron Trading Company - Common Shares|S|N|N|100 +JD|JD.com, Inc. - American Depositary Shares|Q|N|N|100 +JDSU|JDS Uniphase Corporation - Common Stock|Q|N|N|100 +JGBB|WisdomTree Japan Interest Rate Strategy Fund|G|N|N|100 +JIVE|Jive Software, Inc. - Common Stock|Q|N|N|100 +JJSF|J & J Snack Foods Corp. - Common Stock|Q|N|N|100 +JKHY|Jack Henry & Associates, Inc. - Common Stock|Q|N|N|100 +JMBA|Jamba, Inc. - Common Stock|G|N|N|100 +JOBS|51job, Inc. - American Depositary Shares, each representing two common shares|Q|N|N|100 +JOEZ|Joe's Jeans Inc. - Common Stock|S|N|D|100 +JOUT|Johnson Outdoors Inc. - Class A Common Stock|Q|N|N|100 +JRJC|China Finance Online Co. Limited - American Depositary Shares representing 5 ordinary shares|Q|N|N|100 +JRVR|James River Group Holdings, Ltd. - Common Shares|Q|N|N|100 +JSM|SLM Corporation - 6% Senior Notes due December 15, 2043|G|N|N|100 +JST|Jinpan International Limited - Common Stock|Q|N|N|100 +JTPY|JetPay Corporation - Common Stock|S|N|N|100 +JUNO|Juno Therapeutics, Inc. - Common Stock|Q|N|N|100 +JVA|Coffee Holding Co., Inc. - Common Stock|S|N|N|100 +JXSB|Jacksonville Bancorp Inc. - Common Stock|S|N|N|100 +JYNT|The Joint Corp. - Common Stock|S|N|N|100 +KALU|Kaiser Aluminum Corporation - Common Stock|Q|N|N|100 +KANG|iKang Healthcare Group, Inc. - American Depositary Shares|Q|N|N|100 +KBAL|Kimball International, Inc. - Class B Common Stock|Q|N|N|100 +KBIO|KaloBios Pharmaceuticals, Inc. - Common Stock|G|N|N|100 +KBSF|KBS Fashion Group Limited - Common Stock|S|N|N|100 +KCAP|KCAP Financial, Inc. - common stock|Q|N|N|100 +KCLI|Kansas City Life Insurance Company - Common Stock|S|N|N|100 +KE|Kimball Electronics, Inc. - Common Stock|Q|N|N|100 +KELYA|Kelly Services, Inc. - Class A Common Stock|Q|N|N|100 +KELYB|Kelly Services, Inc. - Class B Common Stock|Q|N|N|100 +KEQU|Kewaunee Scientific Corporation - Common Stock|G|N|N|100 +KERX|Keryx Biopharmaceuticals, Inc. - Common Stock|S|N|N|100 +KEYW|The KEYW Holding Corporation - Common Stock|Q|N|N|100 +KFFB|Kentucky First Federal Bancorp - Common Stock|G|N|N|100 +KFRC|Kforce, Inc. - Common Stock|Q|N|N|100 +KFX|Kofax Limited - Common Shares|Q|N|N|100 +KGJI|Kingold Jewelry Inc. - Common Stock|S|N|N|100 +KIN|Kindred Biosciences, Inc. - Common Stock|S|N|N|100 +KINS|Kingstone Companies, Inc - Common Stock|S|N|N|100 +KIRK|Kirkland's, Inc. - Common Stock|Q|N|N|100 +KITE|Kite Pharma, Inc. - Common Stock|Q|N|N|100 +KLAC|KLA-Tencor Corporation - Common Stock|Q|N|N|100 +KLIC|Kulicke and Soffa Industries, Inc. - Common Stock|Q|N|N|100 +KLXI|KLX Inc. - Common Stock|Q|N|N|100 +KMDA|Kamada Ltd. - Ordinary Shares|Q|N|N|100 +KNDI|Kandi Technologies Group, Inc. - Common Stock|Q|N|N|100 +KONA|Kona Grill, Inc. - Common Stock|G|N|N|100 +KONE|Kingtone Wirelessinfo Solution Holding Ltd - American Depositary Shares|S|N|N|100 +KOOL|Cesca Therapeutics Inc. - Common Stock|S|N|N|100 +KOPN|Kopin Corporation - Common Stock|Q|N|N|100 +KOSS|Koss Corporation - Common Stock|S|N|N|100 +KPTI|Karyopharm Therapeutics Inc. - Common Stock|Q|N|N|100 +KRFT|Kraft Foods Group, Inc. - Common Stock|Q|N|N|100 +KRNY|Kearny Financial - Common Stock|Q|N|N|100 +KTCC|Key Tronic Corporation - Common Stock|G|N|N|100 +KTEC|Key Technology, Inc. - Common Stock|G|N|N|100 +KTOS|Kratos Defense & Security Solutions, Inc. - Common Stock|Q|N|N|100 +KTWO|K2M Group Holdings, Inc. - Common Stock|Q|N|N|100 +KUTV|Ku6 Media Co., Ltd. - American Depositary Shares, each representing 100 ordinary shares|G|N|N|100 +KVHI|KVH Industries, Inc. - Common Stock|Q|N|N|100 +KWEB|KraneShares CSI China Internet ETF|G|N|N|100 +KYTH|Kythera Biopharmaceuticals, Inc. - Common Stock|Q|N|N|100 +KZ|KongZhong Corporation - American Depositary Shares, each representing 40 ordinary shares|Q|N|N|100 +LABC|Louisiana Bancorp, Inc. - Common Stock|G|N|N|100 +LABL|Multi-Color Corporation - Common Stock|Q|N|N|100 +LACO|Lakes Entertainment, Inc. - Common Stock|G|N|N|100 +LAKE|Lakeland Industries, Inc. - Common Stock|G|N|N|100 +LALT|PowerShares Actively Managed Exchange-Traded Fund Trust - PowerShares Multi-Strategy Alternative Portfolio|G|N|N|100 +LAMR|Lamar Advertising Company - Class A Common Stock|Q|N|N|100 +LANC|Lancaster Colony Corporation - Common Stock|Q|N|N|100 +LAND|Gladstone Land Corporation - Common Stock|G|N|N|100 +LARK|Landmark Bancorp Inc. - Common Stock|G|N|N|100 +LAWS|Lawson Products, Inc. - Common Stock|Q|N|N|100 +LAYN|Layne Christensen Company - Common Stock|Q|N|N|100 +LBAI|Lakeland Bancorp, Inc. - Common Stock|Q|N|N|100 +LBIX|Leading Brands Inc - Common Shares|S|N|N|100 +LBRDA|Liberty Broadband Corporation - Class A Common Stock|Q|N|N|100 +LBRDK|Liberty Broadband Corporation - Class C Common Stock|Q|N|N|100 +LBTYA|Liberty Global plc - Class A Ordinary Shares|Q|N|N|100 +LBTYB|Liberty Global plc - Class B Ordinary Shares|Q|N|N|100 +LBTYK|Liberty Global plc - Class C Ordinary Shares|Q|N|N|100 +LCNB|LCNB Corporation - Common Stock|S|N|N|100 +LCUT|Lifetime Brands, Inc. - Common Stock|Q|N|N|100 +LDRH|LDR Holding Corporation - Common Stock|Q|N|N|100 +LDRI|PowerShares LadderRite 0-5 Year Corporate Bond Portfolio|G|N|N|100 +LE|Lands' End, Inc. - Common Stock|S|N|N|100 +LECO|Lincoln Electric Holdings, Inc. - Common Shares|Q|N|N|100 +LEDS|SemiLEDS Corporation - Common Stock|Q|N|D|100 +LEVY|Levy Acquisition Corp. - Common Stock|S|N|N|100 +LEVYU|Levy Acquisition Corp. - Unit|S|N|N|100 +LEVYW|Levy Acquisition Corp. - Warrants|S|N|N|100 +LFUS|Littelfuse, Inc. - Common Stock|Q|N|N|100 +LFVN|Lifevantage Corporation - Common Stock|S|N|N|100 +LGCY|Legacy Reserves LP - Units Representing Limited Partner Interests|Q|N|N|100 +LGCYO|Legacy Reserves LP - 8.00% Series B Fixed-to-Floating Rate Cumulative Redeemable Perpetual Preferred Units|Q|N|N|100 +LGCYP|Legacy Reserves LP - 8% Series A Fixed-to-Floating Rate Cumulative Redeemable Perpetual Preferred Units|Q|N|N|100 +LGIH|LGI Homes, Inc. - Common Stock|Q|N|N|100 +LGND|Ligand Pharmaceuticals Incorporated - Common Stock|G|N|N|100 +LHCG|LHC Group - common stock|Q|N|N|100 +LIME|Lime Energy Co. - Common Stock|S|N|N|100 +LINC|Lincoln Educational Services Corporation - Common Stock|Q|N|N|100 +LINE|Linn Energy, LLC - Common Units representing limited liability company interests|Q|N|N|100 +LION|Fidelity Southern Corporation - Common Stock|Q|N|N|100 +LIOX|Lionbridge Technologies, Inc. - Common Stock|Q|N|N|100 +LIQD|Liquid Holdings Group, Inc. - Common Stock|G|N|N|100 +LIVE|LiveDeal, Inc. - Common Stock|S|N|N|100 +LJPC|La Jolla Pharmaceutical Company - Common Stock|S|N|N|100 +LKFN|Lakeland Financial Corporation - Common Stock|Q|N|N|100 +LKQ|LKQ Corporation - Common Stock|Q|N|N|100 +LLEX|Lilis Energy, Inc. - Common Stock|G|N|H|100 +LLNW|Limelight Networks, Inc. - Common Stock|Q|N|N|100 +LLTC|Linear Technology Corporation - Common Stock|Q|N|N|100 +LMAT|LeMaitre Vascular, Inc. - Common Stock|G|N|N|100 +LMBS|First Trust Low Duration Mortgage Opportunities ETF|G|N|N|100 +LMCA|Liberty Media Corporation - Series A Common Stock|Q|N|N|100 +LMCB|Liberty Media Corporation - Series B Common Stock|Q|N|N|100 +LMCK|Liberty Media Corporation - Series C Common Stock|Q|N|N|100 +LMIA|LMI Aerospace, Inc. - Common Stock|Q|N|N|100 +LMNR|Limoneira Co - Common Stock|Q|N|N|100 +LMNS|Lumenis Ltd. - Class B Ordinary Shares|Q|N|N|100 +LMNX|Luminex Corporation - Common Stock|Q|N|N|100 +LMOS|Lumos Networks Corp. - Common Stock|Q|N|N|100 +LMRK|Landmark Infrastructure Partners LP - Common Units|G|N|N|100 +LNBB|LNB Bancorp, Inc. - Common Stock|G|N|N|100 +LNCE|Snyder's-Lance, Inc. - Common Stock|Q|N|N|100 +LNCO|Linn Co, LLC - Common Shares|Q|N|N|100 +LNDC|Landec Corporation - Common Stock|Q|N|N|100 +LOAN|Manhattan Bridge Capital, Inc - Common Stock|S|N|N|100 +LOCM|Local Corporation - Common Stock|S|N|N|100 +LOCO|El Pollo Loco Holdings, Inc. - Common Stock|Q|N|N|100 +LOGI|Logitech International S.A. - Registered Shares|Q|N|N|100 +LOGM|LogMein, Inc. - Common Stock|Q|N|N|100 +LOJN|LoJack Corporation - Common Stock|Q|N|N|100 +LONG|eLong, Inc. - American Depositary Shares representing 2 Ordinary Shares|Q|N|N|100 +LOOK|LookSmart, Ltd. - Common Stock|S|N|N|100 +LOPE|Grand Canyon Education, Inc. - Common Stock|Q|N|N|100 +LORL|Loral Space and Communications, Inc. - Common Stock|Q|N|N|100 +LOXO|Loxo Oncology, Inc. - Common Stock|G|N|N|100 +LPCN|Lipocine Inc. - Common Stock|S|N|N|100 +LPHI|Life Partners Holdings Inc - Common Stock|Q|N|N|100 +LPLA|LPL Financial Holdings Inc. - Common Stock|Q|N|N|100 +LPNT|LifePoint Hospitals, Inc. - Common Stock|Q|N|N|100 +LPSB|LaPorte Bancorp, Inc. - Common Stock|S|N|N|100 +LPSN|LivePerson, Inc. - Common Stock|Q|N|N|100 +LPTH|LightPath Technologies, Inc. - Class A Common Stock|S|N|N|100 +LPTN|Lpath, Inc. - Class A Common Stock|S|N|N|100 +LQDT|Liquidity Services, Inc. - Common Stock|Q|N|N|100 +LRAD|LRAD Corporation - Common Stock|S|N|N|100 +LRCX|Lam Research Corporation - Common Stock|Q|N|N|100 +LSBK|Lake Shore Bancorp, Inc. - Common Stock|G|N|N|100 +LSCC|Lattice Semiconductor Corporation - Common Stock|Q|N|N|100 +LSTR|Landstar System, Inc. - Common Stock|Q|N|N|100 +LTBR|Lightbridge Corporation - Common Stock|S|N|N|100 +LTRE|Learning Tree International, Inc. - Common Stock|G|N|N|100 +LTRPA|Liberty TripAdvisor Holdings, Inc. - Series A Common Stock|Q|N|N|100 +LTRPB|Liberty TripAdvisor Holdings, Inc. - Series B Common Stock|Q|N|N|100 +LTRX|Lantronix, Inc. - Common Stock|S|N|N|100 +LTXB|LegacyTexas Financial Group, Inc. - Common Stock|Q|N|N|100 +LULU|lululemon athletica inc. - Common Stock|Q|N|N|100 +LUNA|Luna Innovations Incorporated - Common Stock|S|N|N|100 +LVNTA|Liberty Interactive Corporation - Series A Liberty Ventures Common Stock|Q|N|N|100 +LVNTB|Liberty Interactive Corporation - Series B Liberty Ventures Common Stock|Q|N|N|100 +LWAY|Lifeway Foods, Inc. - Common Stock|G|N|N|100 +LXRX|Lexicon Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +LYTS|LSI Industries Inc. - Common Stock|Q|N|N|100 +MACK|Merrimack Pharmaceuticals, Inc. - Common Stock|G|N|N|100 +MAG|Magnetek, Inc. - Common Stock|G|N|N|100 +MAGS|Magal Security Systems Ltd. - Ordinary Shares|G|N|N|100 +MAMS|MAM Software Group, Inc. - Common Stock|S|N|N|100 +MANH|Manhattan Associates, Inc. - Common Stock|Q|N|N|100 +MANT|ManTech International Corporation - Class A Common Stock|Q|N|N|100 +MAR|Marriott International - Class A Common Stock|Q|N|N|100 +MARA|Marathon Patent Group, Inc. - Common Stock|S|N|N|100 +MARK|Remark Media, Inc. - Common Stock|S|N|N|100 +MARPS|Marine Petroleum Trust - Units of Beneficial Interest|S|N|N|100 +MASI|Masimo Corporation - Common Stock|Q|N|N|100 +MAT|Mattel, Inc. - Common Stock|Q|N|N|100 +MATR|Mattersight Corporation - Common Stock|G|N|N|100 +MATW|Matthews International Corporation - Class A Common Stock|Q|N|N|100 +MAYS|J. W. Mays, Inc. - Common Stock|S|N|N|100 +MBCN|Middlefield Banc Corp. - Common Stock|S|N|N|100 +MBFI|MB Financial Inc. - Common Stock|Q|N|N|100 +MBFIP|MB Financial Inc. - Perpetual Non-Cumulative Preferred Stock, Series A|Q|N|N|100 +MBII|Marrone Bio Innovations, Inc. - Common Stock|G|N|E|100 +MBLX|Metabolix, Inc. - Common Stock|S|N|D|100 +MBRG|Middleburg Financial Corporation - Common Stock|S|N|N|100 +MBSD|FlexShares Disciplined Duration MBS Index Fund|G|N|N|100 +MBTF|M B T Financial Corp - Common Stock|Q|N|N|100 +MBUU|Malibu Boats, Inc. - Common Stock|G|N|N|100 +MBVT|Merchants Bancshares, Inc. - Common Stock|Q|N|N|100 +MBWM|Mercantile Bank Corporation - Common Stock|Q|N|N|100 +MCBC|Macatawa Bank Corporation - Common Stock|Q|N|N|100 +MCBK|Madison County Financial, Inc. - Common Stock|S|N|N|100 +MCEP|Mid-Con Energy Partners, LP - Common Units|Q|N|N|100 +MCGC|MCG Capital Corporation - Closed End Fund|Q|N|N|100 +MCHP|Microchip Technology Incorporated - Common Stock|Q|N|N|100 +MCHX|Marchex, Inc. - Class B Common Stock|Q|N|N|100 +MCOX|Mecox Lane Limited - American Depositary Shares|Q|N|N|100 +MCRI|Monarch Casino & Resort, Inc. - Common Stock|Q|N|N|100 +MCRL|Micrel, Incorporated - Common Stock|Q|N|N|100 +MCUR|Macrocure Ltd. - Ordinary Shares|G|N|N|100 +MDAS|MedAssets, Inc. - Common Stock|Q|N|N|100 +MDCA|MDC Partners Inc. - Class A Subordinate Voting Shares|Q|N|N|100 +MDCO|The Medicines Company - Common Stock|Q|N|N|100 +MDIV|First Trust Exchange-Traded Fund VI Multi-Asset Diversified Income Index Fund|G|N|N|100 +MDLZ|Mondelez International, Inc. - Class A Common Stock|Q|N|N|100 +MDM|Mountain Province Diamonds Inc. - Common Stock|Q|N|N|100 +MDRX|Allscripts Healthcare Solutions, Inc. - common stock|Q|N|N|100 +MDSO|Medidata Solutions, Inc. - Common Stock|Q|N|N|100 +MDSY|ModSys International Ltd. - Ordinary Shares|G|N|N|100 +MDVN|Medivation, Inc. - Common Stock|Q|N|N|100 +MDVXU|Medovex Corp. - Units|S|N|N|100 +MDWD|MediWound Ltd. - Ordinary Shares|G|N|N|100 +MDXG|MiMedx Group, Inc - Common Stock|S|N|N|100 +MEET|MeetMe, Inc. - Common Stock|S|N|N|100 +MEIL|Methes Energies International Ltd - Common Stock|S|N|N|100 +MEILW|Methes Energies International Ltd - Class A Warrants|S|N|N|100 +MEILZ|Methes Energies International Ltd - Class B Warrants|S|N|N|100 +MEIP|MEI Pharma, Inc. - Common Stock|S|N|N|100 +MELA|MELA Sciences, Inc - Common Stock|S|N|N|100 +MELI|MercadoLibre, Inc. - Common Stock|Q|N|N|100 +MELR|Melrose Bancorp, Inc. - Common Stock|S|N|N|100 +MEMP|Memorial Production Partners LP - Common Units|Q|N|N|100 +MENT|Mentor Graphics Corporation - Common Stock|Q|N|N|100 +MEOH|Methanex Corporation - Common Stock|Q|N|N|100 +MERC|Mercer International Inc. - Common Stock|Q|N|N|100 +MERU|Meru Networks, Inc. - Common Stock|G|N|N|100 +METR|Metro Bancorp, Inc - Common Stock|Q|N|N|100 +MFI|MicroFinancial Incorporated - Common Stock|G|N|N|100 +MFLX|Multi-Fineline Electronix, Inc. - Common Stock|Q|N|N|100 +MFNC|Mackinac Financial Corporation - Common Stock|S|N|N|100 +MFRI|MFRI, Inc. - Common Stock|G|N|N|100 +MFRM|Mattress Firm Holding Corp. - Common Stock|Q|N|N|100 +MFSF|MutualFirst Financial Inc. - Common Stock|G|N|N|100 +MGCD|MGC Diagnostics Corporation - Common Stock|S|N|N|100 +MGEE|MGE Energy Inc. - Common Stock|Q|N|N|100 +MGI|Moneygram International, Inc. - Common Stock|Q|N|N|100 +MGIC|Magic Software Enterprises Ltd. - Ordinary Shares|Q|N|N|100 +MGLN|Magellan Health, Inc. - Common Stock|Q|N|N|100 +MGNX|MacroGenics, Inc. - Common Stock|Q|N|N|100 +MGPI|MGP Ingredients, Inc. - Common Stock|Q|N|N|100 +MGRC|McGrath RentCorp - Common Stock|Q|N|N|100 +MGYR|Magyar Bancorp, Inc. - Common Stock|G|N|N|100 +MHGC|Morgans Hotel Group Co. - Common Stock|G|N|N|100 +MHLD|Maiden Holdings, Ltd. - Common Stock|Q|N|N|100 +MHLDO|Maiden Holdings, Ltd. - 7.25% Mandatory Convertible Preference Shares, Series B|Q|N|N|100 +MICT|Micronet Enertec Technologies, Inc. - Common Stock|S|N|N|100 +MICTW|Micronet Enertec Technologies, Inc. - Warrant|S|N|N|100 +MIDD|The Middleby Corporation - Common Stock|Q|N|N|100 +MIFI|Novatel Wireless, Inc. - Common Stock|Q|N|N|100 +MIK|The Michaels Companies, Inc. - Common Stock|Q|N|N|100 +MIND|Mitcham Industries, Inc. - Common Stock|Q|N|N|100 +MINI|Mobile Mini, Inc. - Common Stock|Q|N|N|100 +MITK|Mitek Systems, Inc. - Common Stock|S|N|N|100 +MITL|Mitel Networks Corporation - Common Shares|Q|N|N|100 +MKSI|MKS Instruments, Inc. - Common Stock|Q|N|N|100 +MKTO|Marketo, Inc. - Common Stock|Q|N|N|100 +MKTX|MarketAxess Holdings, Inc. - Common Stock|Q|N|N|100 +MLAB|Mesa Laboratories, Inc. - Common Stock|Q|N|N|100 +MLHR|Herman Miller, Inc. - Common Stock|Q|N|N|100 +MLNK|ModusLink Global Solutions, Inc - Common Stock|Q|N|N|100 +MLNX|Mellanox Technologies, Ltd. - Ordinary Shares|Q|N|N|100 +MLVF|Malvern Bancorp, Inc. - Common Stock|G|N|N|100 +MMAC|MMA Capital Management, LLC - Common Stock|S|N|N|100 +MMLP|Martin Midstream Partners L.P. - Common Units Representing Limited Partnership Interests|Q|N|N|100 +MMSI|Merit Medical Systems, Inc. - Common Stock|Q|N|N|100 +MMYT|MakeMyTrip Limited - Ordinary Shares|Q|N|N|100 +MNDO|MIND C.T.I. Ltd. - Ordinary Shares|G|N|N|100 +MNGA|MagneGas Corporation - Common Stcok|S|N|D|100 +MNKD|MannKind Corporation - Common Stock|G|N|N|100 +MNOV|MediciNova, Inc. - Common Stock|G|N|N|100 +MNRK|Monarch Financial Holdings, Inc. - Common Stock|S|N|N|100 +MNRO|Monro Muffler Brake, Inc. - Common Stock|Q|N|N|100 +MNST|Monster Beverage Corporation - Common Stock|Q|N|N|100 +MNTA|Momenta Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +MNTX|Manitex International, Inc. - common stock|S|N|N|100 +MOBI|Sky-mobi Limited - American Depositary Shares|G|N|N|100 +MOBL|MobileIron, Inc. - Common Stock|Q|N|N|100 +MOCO|MOCON, Inc. - Common Stock|G|N|N|100 +MOFG|MidWestOne Financial Group, Inc. - Common Stock|Q|N|N|100 +MOKO|MOKO Social Media Ltd. - American Depositary Shares|G|N|N|100 +MOLG|MOL Global, Inc. - American Depositary Shares|Q|N|N|100 +MOMO|Momo Inc. - American Depositary Shares|Q|N|N|100 +MORN|Morningstar, Inc. - Common Stock|Q|N|N|100 +MOSY|MoSys, Inc. - Common Stock|Q|N|N|100 +MPAA|Motorcar Parts of America, Inc. - Common Stock|Q|N|N|100 +MPB|Mid Penn Bancorp - Common Stock|G|N|N|100 +MPEL|Melco Crown Entertainment Limited - American depositary shares each representing three ordinary shares|Q|N|N|100 +MPET|Magellan Petroleum Corporation - Common Stock|S|N|N|100 +MPWR|Monolithic Power Systems, Inc. - Common Stock|Q|N|N|100 +MRCC|Monroe Capital Corporation - Common Stock|Q|N|N|100 +MRCY|Mercury Systems Inc - Common Stock|Q|N|N|100 +MRD|Memorial Resource Development Corp. - Common Stock|Q|N|N|100 +MRGE|Merge Healthcare Incorporated. - Common Stock|Q|N|N|100 +MRKT|Markit Ltd. - Common Shares|Q|N|N|100 +MRLN|Marlin Business Services Corp. - Common Stock|Q|N|N|100 +MRNS|Marinus Pharmaceuticals, Inc. - Common Stock|G|N|N|100 +MRTN|Marten Transport, Ltd. - Common Stock|Q|N|N|100 +MRTX|Mirati Therapeutics, Inc. - Common Stock|S|N|N|100 +MRVC|MRV Communications, Inc. - Common Stock|S|N|N|100 +MRVL|Marvell Technology Group Ltd. - Common Stock|Q|N|N|100 +MSBF|MSB Financial Corp. - common stock|G|N|N|100 +MSCC|Microsemi Corporation - Common Stock|Q|N|N|100 +MSEX|Middlesex Water Company - Common Stock|Q|N|N|100 +MSFG|MainSource Financial Group, Inc. - Common Stock|Q|N|N|100 +MSFT|Microsoft Corporation - Common Stock|Q|N|N|100 +MSG|The Madison Square Garden Company - Class A Common Stock|Q|N|N|100 +MSLI|Merus Labs International Inc. - Common Stock|S|N|N|100 +MSON|MISONIX, Inc. - Common Stock|G|N|N|100 +MSTR|MicroStrategy Incorporated - Class A Common Stock|Q|N|N|100 +MTBC|Medical Transcription Billing, Corp. - Common Stock|S|N|N|100 +MTEX|Mannatech, Incorporated - Common Stock|Q|N|N|100 +MTGE|American Capital Mortgage Investment Corp. - Common Stock|Q|N|N|100 +MTGEP|American Capital Mortgage Investment Corp. - 8.125% Series A Cumulative Redeemable Preferred Stock|Q|N|N|100 +MTLS|Materialise NV - American Depositary Shares|Q|N|N|100 +MTRX|Matrix Service Company - Common Stock|Q|N|N|100 +MTSC|MTS Systems Corporation - Common Stock|Q|N|N|100 +MTSI|M/A-COM Technology Solutions Holdings, Inc. - Common Stock|Q|N|N|100 +MTSL|MER Telemanagement Solutions Ltd. - Ordinary Shares|S|N|N|100 +MTSN|Mattson Technology, Inc. - Common Stock|Q|N|N|100 +MU|Micron Technology, Inc. - Common Stock|Q|N|N|100 +MULT|AdvisorShares Sunrise Global Multi-Strategy ETF|G|N|N|100 +MVIS|Microvision, Inc. - Common Stock|G|N|N|100 +MWIV|MWI Veterinary Supply, Inc. - common stock|Q|N|N|100 +MXIM|Maxim Integrated Products, Inc. - Common Stock|Q|N|N|100 +MXWL|Maxwell Technologies, Inc. - Common Stock|Q|N|N|100 +MYGN|Myriad Genetics, Inc. - Common Stock|Q|N|N|100 +MYL|Mylan Inc. - Common Stock|Q|N|N|100 +MYOS|MYOS Corporation - Common Stock|S|N|N|100 +MYRG|MYR Group, Inc. - Common Stock|Q|N|N|100 +MZOR|Mazor Robotics Ltd. - American Depositary Shares|G|N|N|100 +NAII|Natural Alternatives International, Inc. - Common Stock|G|N|N|100 +NAME|Rightside Group, Ltd. - Common Stock|Q|N|N|100 +NANO|Nanometrics Incorporated - Common Stock|Q|N|N|100 +NATH|Nathan's Famous, Inc. - Common Stock|Q|N|N|100 +NATI|National Instruments Corporation - Common Stock|Q|N|N|100 +NATL|National Interstate Corporation - Common Stock|Q|N|N|100 +NATR|Nature's Sunshine Products, Inc. - Common Stock|S|N|N|100 +NAUH|National American University Holdings, Inc. - Common Stock|G|N|N|100 +NAVG|The Navigators Group, Inc. - Common Stock|Q|N|N|100 +NAVI|Navient Corporation - Common Stock|Q|N|N|100 +NBBC|NewBridge Bancorp - Common Stock|Q|N|N|100 +NBIX|Neurocrine Biosciences, Inc. - Common Stock|Q|N|N|100 +NBN|Northeast Bancorp - Common Stock|G|N|N|100 +NBS|Neostem, Inc. - Common Stock|S|N|N|100 +NBTB|NBT Bancorp Inc. - Common Stock|Q|N|N|100 +NBTF|NB&T FINANCIAL GROUP INC - Common Stock|S|N|N|100 +NCIT|NCI, Inc. - Class A Common Stock|Q|N|N|100 +NCLH|Norwegian Cruise Line Holdings Ltd. - Ordinary Shares|Q|N|N|100 +NCMI|National CineMedia, Inc. - Common Stock|Q|N|N|100 +NCTY|The9 Limited - American Depository Shares representing one ordinary share|Q|N|N|100 +NDAQ|The NASDAQ OMX Group, Inc. - Common Stock|Q|N|N|100 +NDLS|Noodles & Company - Common Stock|Q|N|N|100 +NDRM|NeuroDerm Ltd. - Ordinary Shares|G|N|N|100 +NDSN|Nordson Corporation - Common Stock|Q|N|N|100 +NECB|Northeast Community Bancorp, Inc. - Common Stock|G|N|N|100 +NEO|NeoGenomics, Inc. - Common Stock|S|N|N|100 +NEOG|Neogen Corporation - Common Stock|Q|N|N|100 +NEON|Neonode Inc. - Common Stock|S|N|N|100 +NEOT|Neothetics, Inc. - Common Stock|G|N|N|100 +NEPT|Neptune Technologies & Bioresources Inc - Ordinary Shares|S|N|N|100 +NERV|Minerva Neurosciences, Inc - Common Stock|G|N|N|100 +NETE|Net Element, Inc. - Common Stock|S|N|N|100 +NEWP|Newport Corporation - Common Stock|Q|N|N|100 +NEWS|NewStar Financial, Inc. - Common Stock|Q|N|N|100 +NEWT|Newtek Business Services Corp. - Common Stock|S|N|N|100 +NFBK|Northfield Bancorp, Inc. - Common Stock|Q|N|N|100 +NFEC|NF Energy Saving Corporation - Common Stock|S|N|N|100 +NFLX|Netflix, Inc. - Common Stock|Q|N|N|100 +NGHC|National General Holdings Corp - Common Stock|G|N|N|100 +NGHCP|National General Holdings Corp - 7.50% Non-Cumulative Preferred Stock, Series A|G|N|N|100 +NHTB|New Hampshire Thrift Bancshares, Inc. - Common Stock|G|N|N|100 +NICE|NICE-Systems Limited - American Depositary Shares each representing one Ordinary Share|Q|N|N|100 +NICK|Nicholas Financial, Inc. - Common Stock|Q|N|N|100 +NILE|Blue Nile, Inc. - Common Stock|Q|N|N|100 +NKSH|National Bankshares, Inc. - Common Stock|S|N|N|100 +NKTR|Nektar Therapeutics - Common Stock|Q|N|N|100 +NLNK|NewLink Genetics Corporation - Common Stock|G|N|N|100 +NLST|Netlist, Inc. - Common Stock|G|N|D|100 +NMIH|NMI Holdings Inc - Common Stock|G|N|N|100 +NMRX|Numerex Corp. - Class A Common Stock|Q|N|N|100 +NNBR|NN, Inc. - Common Stock|Q|N|N|100 +NPBC|National Penn Bancshares, Inc. - Common Stock|Q|N|N|100 +NPSP|NPS Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +NRCIA|National Research Corporation - Class A Common Stock|Q|N|N|100 +NRCIB|National Research Corporation - Common Stock|Q|N|N|100 +NRIM|Northrim BanCorp Inc - Common Stock|Q|N|N|100 +NRX|NephroGenex, Inc. - Common Stock|S|N|N|100 +NSEC|National Security Group, Inc. - Common Stock|G|N|N|100 +NSIT|Insight Enterprises, Inc. - Common Stock|Q|N|N|100 +NSPH|Nanosphere, Inc. - Common Stock|S|N|D|100 +NSSC|NAPCO Security Technologies, Inc. - Common Stock|Q|N|N|100 +NSTG|NanoString Technologies, Inc. - Common Stock|G|N|N|100 +NSYS|Nortech Systems Incorporated - Common Stock|S|N|N|100 +NTAP|NetApp, Inc. - Common Stock|Q|N|N|100 +NTCT|NetScout Systems, Inc. - Common Stock|Q|N|N|100 +NTES|NetEase, Inc. - American Depositary Shares, each representing 25 ordinary shares|Q|N|N|100 +NTGR|NETGEAR, Inc. - Common Stock|Q|N|N|100 +NTIC|Northern Technologies International Corporation - Common Stock|G|N|N|100 +NTK|Nortek Inc. - Common Stock|Q|N|N|100 +NTLS|NTELOS Holdings Corp. - Common Stock|Q|N|N|100 +NTRI|NutriSystem Inc - Common Stock|Q|N|N|100 +NTRS|Northern Trust Corporation - Common Stock|Q|N|N|100 +NTRSP|Northern Trust Corporation - Depository Shares|Q|N|N|100 +NTWK|NetSol Technologies Inc. - Common Stock|S|N|N|100 +NUAN|Nuance Communications, Inc. - Common Stock|Q|N|N|100 +NURO|NeuroMetrix, Inc. - Common Stock|S|N|N|100 +NUTR|Nutraceutical International Corporation - Common Stock|Q|N|N|100 +NUVA|NuVasive, Inc. - Common Stock|Q|N|N|100 +NVAX|Novavax, Inc. - Common Stock|Q|N|N|100 +NVCN|Neovasc Inc. - Common Shares|S|N|N|100 +NVDA|NVIDIA Corporation - Common Stock|Q|N|N|100 +NVDQ|Novadaq Technologies Inc - Common Shares|G|N|N|100 +NVEC|NVE Corporation - Common Stock|S|N|N|100 +NVEE|NV5 Holdings, Inc. - Common Stock|S|N|N|100 +NVEEW|NV5 Holdings, Inc. - Warrant|S|N|N|100 +NVFY|Nova Lifestyle, Inc - Common Stock|G|N|N|100 +NVGN|Novogen Limited - American Depositary Shares each representing twenty five Ordinary Shares|S|N|D|100 +NVMI|Nova Measuring Instruments Ltd. - Ordinary Shares|Q|N|N|100 +NVSL|Naugatuck Valley Financial Corporation - Common Stock|G|N|N|100 +NWBI|Northwest Bancshares, Inc. - Common Stock|Q|N|N|100 +NWBO|Northwest Biotherapeutics, Inc. - Common Stock|S|N|N|100 +NWBOW|Northwest Biotherapeutics, Inc. - Warrant|S|N|N|100 +NWFL|Norwood Financial Corp. - Common Stock|G|N|N|100 +NWLI|National Western Life Insurance Company - Class A Common Stock|Q|N|N|100 +NWPX|Northwest Pipe Company - Common Stock|Q|N|N|100 +NWS|News Corporation - Class B Common Stock|Q|N|N|100 +NWSA|News Corporation - Class A Common Stock|Q|N|N|100 +NXPI|NXP Semiconductors N.V. - Common Stock|Q|N|N|100 +NXST|Nexstar Broadcasting Group, Inc. - Class A Common Stock|Q|N|N|100 +NXTD|NXT-ID Inc. - Common Stock|S|N|N|100 +NXTDW|NXT-ID Inc. - Warrant|S|N|N|100 +NXTM|NxStage Medical, Inc. - Common Stock|Q|N|N|100 +NYMT|New York Mortgage Trust, Inc. - Common Stock|Q|N|N|100 +NYMTP|New York Mortgage Trust, Inc. - 7.75% Series B Cumulative Redeemable Preferred Stock|S|N|N|100 +NYMX|Nymox Pharmaceutical Corporation - Common Stock|S|N|D|100 +NYNY|Empire Resorts, Inc. - Common Stock|G|N|N|100 +OBAS|Optibase Ltd. - Ordinary Shares|G|N|N|100 +OBCI|Ocean Bio-Chem, Inc. - Common Stock|S|N|N|100 +OCC|Optical Cable Corporation - Common Stock|G|N|N|100 +OCFC|OceanFirst Financial Corp. - Common Stock|Q|N|N|100 +OCLR|Oclaro, Inc. - Common Stock|Q|N|N|100 +OCLS|Oculus Innovative Sciences, Inc. - Common Stock|S|N|N|100 +OCLSW|Oculus Innovative Sciences, Inc. - Warrants|S|N|N|100 +OCRX|Ocera Therapeutics, Inc. - Common Stock|G|N|N|100 +OCUL|Ocular Therapeutix, Inc. - Common Stock|G|N|N|100 +ODFL|Old Dominion Freight Line, Inc. - Common Stock|Q|N|N|100 +ODP|Office Depot, Inc. - Common Stock|Q|N|N|100 +OFED|Oconee Federal Financial Corp. - Common Stock|S|N|N|100 +OFIX|Orthofix International N.V. - Common Stock|Q|N|E|100 +OFLX|Omega Flex, Inc. - Common Stock|G|N|N|100 +OFS|OFS Capital Corporation - Common Stock|Q|N|N|100 +OGXI|OncoGenex Pharmaceuticals Inc. - Common Shares|S|N|N|100 +OHAI|OHA Investment Corporation - Closed End Fund|Q|N|N|100 +OHGI|One Horizon Group, Inc. - Common Stock|S|N|N|100 +OHRP|Ohr Pharmaceuticals, Inc. - Common Stock|S|N|N|100 +OIIM|O2Micro International Limited - Ordinary Shares each 50 shares of which are represented by an American Depositary Share|Q|N|N|100 +OKSB|Southwest Bancorp, Inc. - Common Stock|Q|N|N|100 +OLBK|Old Line Bancshares, Inc. - Common Stock|S|N|N|100 +OLED|Universal Display Corporation - Common Stock|Q|N|N|100 +OMAB|Grupo Aeroportuario del Centro Norte S.A.B. de C.V. - American Depositary Shares each representing 8 Series B shares|Q|N|N|100 +OMCL|Omnicell, Inc. - Common Stock|Q|N|N|100 +OMED|OncoMed Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +OMER|Omeros Corporation - Common Stock|G|N|N|100 +OMEX|Odyssey Marine Exploration, Inc. - Common Stock|S|N|N|100 +ONB|Old National Bancorp - Common Stock|Q|N|N|100 +ONCY|Oncolytics Biotech, Inc. - Common Shares|S|N|D|100 +ONEQ|Fidelity Nasdaq Composite Index Tracking Stock|G|N|N|100 +ONFC|Oneida Financial Corp. - Common Stock|G|N|N|100 +ONNN|ON Semiconductor Corporation - Common Stock|Q|N|N|100 +ONTX|Onconova Therapeutics, Inc. - Common Stock|Q|N|N|100 +ONTY|Oncothyreon Inc. - Common Shares|Q|N|N|100 +ONVI|Onvia, Inc. - Common Stock|S|N|N|100 +OPB|Opus Bank - Common Stock|Q|N|N|100 +OPHC|OptimumBank Holdings, Inc. - Common Stock|S|N|N|100 +OPHT|Ophthotech Corporation - Common Stock|Q|N|N|100 +OPOF|Old Point Financial Corporation - Common Stock|S|N|N|100 +OPTT|Ocean Power Technologies, Inc. - Common Stock|G|N|D|100 +OPXA|Opexa Therapeutics, Inc. - Common Stock|S|N|D|100 +ORBC|ORBCOMM Inc. - Common Stock|Q|N|N|100 +ORBK|Orbotech Ltd. - Ordinary Shares|Q|N|N|100 +OREX|Orexigen Therapeutics, Inc. - Common Stock|Q|N|N|100 +ORIG|Ocean Rig UDW Inc. - Common Stock|Q|N|N|100 +ORIT|Oritani Financial Corp. - Common Stock|Q|N|N|100 +ORLY|O'Reilly Automotive, Inc. - Common Stock|Q|N|N|100 +ORMP|Oramed Pharmaceuticals Inc. - Common Stock|S|N|N|100 +ORPN|Bio Blast Pharma Ltd. - Ordinary Shares|G|N|N|100 +ORRF|Orrstown Financial Services Inc - Common Stock|S|N|N|100 +OSBC|Old Second Bancorp, Inc. - Common Stock|Q|N|N|100 +OSBCP|Old Second Bancorp, Inc. - 7.80% Cumulative Trust Preferred Securities|Q|N|N|100 +OSHC|Ocean Shore Holding Co. - Common Stock|G|N|N|100 +OSIR|Osiris Therapeutics, Inc. - Common Stock|G|N|N|100 +OSIS|OSI Systems, Inc. - Common Stock|Q|N|N|100 +OSM|SLM Corporation - Medium Term Notes, Series A, CPI-Linked Notes due March 15, 2017|G|N|N|100 +OSN|Ossen Innovation Co., Ltd. - American Depositary Shares|S|N|D|100 +OSTK|Overstock.com, Inc. - Common Stock|G|N|N|100 +OSUR|OraSure Technologies, Inc. - Common Stock|Q|N|N|100 +OTEL|Otelco Inc. - Common Stock|S|N|N|100 +OTEX|Open Text Corporation - Common Shares|Q|N|N|100 +OTIC|Otonomy, Inc. - Common Stock|Q|N|N|100 +OTIV|On Track Innovations Ltd - Ordinary Shares|G|N|N|100 +OTTR|Otter Tail Corporation - Common Stock|Q|N|N|100 +OUTR|Outerwall Inc. - Common Stock|Q|N|N|100 +OVAS|OvaScience Inc. - Common Stock|G|N|N|100 +OVBC|Ohio Valley Banc Corp. - Common Stock|G|N|N|100 +OVLY|Oak Valley Bancorp (CA) - Common Stock|S|N|N|100 +OVTI|OmniVision Technologies, Inc. - Common Stock|Q|N|N|100 +OXBR|Oxbridge Re Holdings Limited - Ordinary Shares|S|N|N|100 +OXBRW|Oxbridge Re Holdings Limited - Warrant|S|N|N|100 +OXFD|Oxford Immunotec Global PLC - Ordinary Shares|G|N|N|100 +OXGN|OXiGENE, Inc. - Common Stock|S|N|N|100 +OXLC|Oxford Lane Capital Corp. - Common Stock|Q|N|N|100 +OXLCN|Oxford Lane Capital Corp. - 8.125% Series 2024 Term Preferred Stock|Q|N|N|100 +OXLCO|Oxford Lane Capital Corp. - Term Preferred Shares, 7.50% Series 2023|Q|N|N|100 +OXLCP|Oxford Lane Capital Corp. - Term Preferred Shares, 8.50% Series 2017|Q|N|N|100 +OZRK|Bank of the Ozarks - Common Stock|Q|N|N|100 +PAAS|Pan American Silver Corp. - Common Stock|Q|N|N|100 +PACB|Pacific Biosciences of California, Inc. - Common Stock|Q|N|N|100 +PACW|PacWest Bancorp - Common Stock|Q|N|N|100 +PAGG|PowerShares Global Agriculture Portfolio|G|N|N|100 +PAHC|Phibro Animal Health Corporation - Class A Common Stock|G|N|N|100 +PANL|Pangaea Logistics Solutions Ltd. - Common Stock|S|N|N|100 +PARN|Parnell Pharmaceuticals Holdings Ltd - Ordinary Shares|G|N|N|100 +PATIV|New Patriot Transportation Holding, Inc. - Common Stock When Issued|Q|N|N|100 +PATK|Patrick Industries, Inc. - Common Stock|Q|N|N|100 +PAYX|Paychex, Inc. - Common Stock|Q|N|N|100 +PBCP|Polonia Bancorp, Inc. - Common Stock|S|N|N|100 +PBCT|People's United Financial, Inc. - Common Stock|Q|N|N|100 +PBHC|Pathfinder Bancorp, Inc. - Common Stock|S|N|N|100 +PBIB|Porter Bancorp, Inc. - Common Stock|S|N|D|100 +PBIP|Prudential Bancorp, Inc. - Common Stock|G|N|N|100 +PBMD|Prima BioMed Ltd - American Depositary Shares|G|N|D|100 +PBPB|Potbelly Corporation - Common Stock|Q|N|N|100 +PBSK|Poage Bankshares, Inc. - Common Stock|S|N|N|100 +PCAR|PACCAR Inc. - Common Stock|Q|N|N|100 +PCBK|Pacific Continental Corporation (Ore) - Common Stock|Q|N|N|100 +PCCC|PC Connection, Inc. - Common Stock|Q|N|N|100 +PCH|Potlatch Corporation - Common Stock|Q|N|N|100 +PCLN|The Priceline Group Inc. - Common Stock|Q|N|N|100 +PCMI|PCM, Inc. - Common Stock|G|N|N|100 +PCO|Pendrell Corporation - Class A Common Stock|Q|N|N|100 +PCOM|Points International, Ltd. - Common Shares|S|N|N|100 +PCRX|Pacira Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +PCTI|PC-Tel, Inc. - Common Stock|Q|N|N|100 +PCTY|Paylocity Holding Corporation - Common Stock|Q|N|N|100 +PCYC|Pharmacyclics, Inc. - Common Stock|Q|N|N|100 +PCYG|Park City Group, Inc. - Common Stock|S|N|N|100 +PCYO|Pure Cycle Corporation - Common Stock|S|N|N|100 +PDBC|PowerShares DB Optimum Yield Diversified Commodity Strategy Portfolio|G|N|N|100 +PDCE|PDC Energy, Inc. - Common Stock|Q|N|N|100 +PDCO|Patterson Companies, Inc. - Common Stock|Q|N|N|100 +PDEX|Pro-Dex, Inc. - Common Stock|S|N|N|100 +PDFS|PDF Solutions, Inc. - Common Stock|Q|N|N|100 +PDII|PDI, Inc. - Common Stock|G|N|N|100 +PDLI|PDL BioPharma, Inc. - Common Stock|Q|N|N|100 +PEBK|Peoples Bancorp of North Carolina, Inc. - Common Stock|G|N|N|100 +PEBO|Peoples Bancorp Inc. - Common Stock|Q|N|N|100 +PEGA|Pegasystems Inc. - Common Stock|Q|N|N|100 +PEGI|Pattern Energy Group Inc. - Class A Common Stock|Q|N|N|100 +PEIX|Pacific Ethanol, Inc. - Common Stock|S|N|N|100 +PENN|Penn National Gaming, Inc. - Common Stock|Q|N|N|100 +PENX|Penford Corporation - Common Stock|G|N|N|100 +PEOP|Peoples Federal Bancshares, Inc. - Common Stock|S|N|N|100 +PERF|Perfumania Holdings, Inc - Common Stock|S|N|N|100 +PERI|Perion Network Ltd - ordinary shares|Q|N|N|100 +PERY|Perry Ellis International Inc. - Common Stock|Q|N|N|100 +PESI|Perma-Fix Environmental Services, Inc. - Common Stock|S|N|N|100 +PETM|PetSmart, Inc - Common Stock|Q|N|N|100 +PETS|PetMed Express, Inc. - Common Stock|Q|N|N|100 +PETX|Aratana Therapeutics, Inc. - Common Stock|G|N|N|100 +PFBC|Preferred Bank - Common Stock|Q|N|N|100 +PFBI|Premier Financial Bancorp, Inc. - Common Stock|G|N|N|100 +PFBX|Peoples Financial Corporation - Common Stock|S|N|N|100 +PFIE|Profire Energy, Inc. - Common Stock|S|N|N|100 +PFIN|P & F Industries, Inc. - Class A Common Stock|G|N|N|100 +PFIS|Peoples Financial Services Corp. - Common Stock|Q|N|N|100 +PFLT|PennantPark Floating Rate Capital Ltd. - Common Stock|Q|N|N|100 +PFMT|Performant Financial Corporation - Common Stock|Q|N|N|100 +PFPT|Proofpoint, Inc. - Common Stock|G|N|N|100 +PFSW|PFSweb, Inc. - Common Stock|S|N|N|100 +PGC|Peapack-Gladstone Financial Corporation - Common Stock|Q|N|N|100 +PGNX|Progenics Pharmaceuticals Inc. - Common Stock|Q|N|N|100 +PGTI|PGT, Inc. - Common Stock|G|N|N|100 +PHII|PHI, Inc. - Voting Common Stock|Q|N|N|100 +PHIIK|PHI, Inc. - Non-Voting Common Stock|Q|N|N|100 +PHMD|PhotoMedex, Inc. - Common Stock|Q|N|N|100 +PICO|PICO Holdings Inc. - Common Stock|Q|N|N|100 +PIH|1347 Property Insurance Holdings, Inc. - Common Stock|S|N|N|100 +PINC|Premier, Inc. - Class A Common Stock|Q|N|N|100 +PKBK|Parke Bancorp, Inc. - Common Stock|S|N|N|100 +PKOH|Park-Ohio Holdings Corp. - Common Stock|Q|N|N|100 +PKT|Procera Networks, Inc. - Common Stock|Q|N|N|100 +PLAB|Photronics, Inc. - Common Stock|Q|N|N|100 +PLAY|Dave & Buster's Entertainment, Inc. - Common Stock|Q|N|N|100 +PLBC|Plumas Bancorp - Common Stock|S|N|N|100 +PLCE|Children's Place, Inc. (The) - Common Stock|Q|N|N|100 +PLCM|Polycom, Inc. - Common Stock|Q|N|N|100 +PLKI|Popeyes Louisiana Kitchen, Inc. - Common Stock|Q|N|N|100 +PLMT|Palmetto Bancshares, Inc. (SC) - Common Stock|S|N|N|100 +PLNR|Planar Systems, Inc. - Common Stock|G|N|N|100 +PLPC|Preformed Line Products Company - Common Stock|Q|N|N|100 +PLPM|Planet Payment, Inc. - Common Stock|S|N|D|100 +PLTM|First Trust ISE Global Platinum Index Fund|G|N|N|100 +PLUG|Plug Power, Inc. - Common Stock|S|N|N|100 +PLUS|ePlus inc. - Common Stock|Q|N|N|100 +PLXS|Plexus Corp. - Common Stock|Q|N|N|100 +PMBC|Pacific Mercantile Bancorp - Common Stock|Q|N|N|100 +PMCS|PMC - Sierra, Inc. - Common Stock|Q|N|N|100 +PMD|Psychemedics Corporation - Common Stock|S|N|N|100 +PME|Pingtan Marine Enterprise Ltd. - Ordinary Shares|S|N|N|100 +PMFG|PMFG, Inc. - Common Stock|Q|N|N|100 +PNBK|Patriot National Bancorp Inc. - Common Stock|G|N|N|100 +PNFP|Pinnacle Financial Partners, Inc. - Common Stock|Q|N|N|100 +PNNT|PennantPark Investment Corporation - common stock|Q|N|N|100 +PNQI|PowerShares Nasdaq Internet Portfolio|G|N|N|100 +PNRA|Panera Bread Company - Class A Common Stock|Q|N|N|100 +PNRG|PrimeEnergy Corporation - Common Stock|S|N|N|100 +PNTR|Pointer Telocation Ltd. - Ordinary Shares|S|N|N|100 +PODD|Insulet Corporation - Common Stock|Q|N|N|100 +POOL|Pool Corporation - Common Stock|Q|N|N|100 +POPE|Pope Resources - Limited Partnership|S|N|N|100 +POWI|Power Integrations, Inc. - Common Stock|Q|N|N|100 +POWL|Powell Industries, Inc. - Common Stock|Q|N|N|100 +POZN|Pozen, Inc. - Common Stock|Q|N|N|100 +PPBI|Pacific Premier Bancorp Inc - Common Stock|Q|N|N|100 +PPC|Pilgrim's Pride Corporation - Common Stock|Q|N|N|100 +PPHM|Peregrine Pharmaceuticals Inc. - Common Stock|S|N|N|100 +PPHMP|Peregrine Pharmaceuticals Inc. - 10.50% Series E Convertible Preferred Stock|S|N|N|100 +PPSI|Pioneer Power Solutions, Inc. - Common Stock|S|N|N|100 +PRAA|PRA Group, Inc. - Common Stock|Q|N|N|100 +PRAH|PRA Health Sciences, Inc. - Common Stock|Q|N|N|100 +PRAN|Prana Biotechnology Ltd - American Depositary Shares each representing ten Ordinary Shares|S|N|N|100 +PRCP|Perceptron, Inc. - Common Stock|G|N|N|100 +PRFT|Perficient, Inc. - Common Stock|Q|N|N|100 +PRFZ|PowerShares FTSE RAFI US 1500 Small-Mid Portfolio|G|N|N|100 +PRGN|Paragon Shipping Inc. - Common Stock|G|N|N|100 +PRGNL|Paragon Shipping Inc. - 8.375% Senior Notes due 2021|G|N|N|100 +PRGS|Progress Software Corporation - Common Stock|Q|N|N|100 +PRGX|PRGX Global, Inc. - Common Stock|Q|N|N|100 +PRIM|Primoris Services Corporation - Common Stock|Q|N|N|100 +PRKR|ParkerVision, Inc. - Common Stock|S|N|N|100 +PRLS|Peerless Systems Corporation - Common Stock|S|N|N|100 +PRMW|Primo Water Corporation - Common Stock|G|N|N|100 +PROV|Provident Financial Holdings, Inc. - Common Stock|Q|N|N|100 +PRPH|ProPhase Labs, Inc. - Common Stock|G|N|N|100 +PRQR|ProQR Therapeutics N.V. - Ordinary Shares|G|N|N|100 +PRSC|The Providence Service Corporation - Common Stock|Q|N|N|100 +PRSS|CafePress Inc. - Common Stock|Q|N|N|100 +PRTA|Prothena Corporation plc - Ordinary Shares|Q|N|N|100 +PRTK|Paratek Pharmaceuticals, Inc. - Common Stock|G|N|N|100 +PRTO|Proteon Therapeutics, Inc. - Common Stock|G|N|N|100 +PRTS|U.S. Auto Parts Network, Inc. - Common Stock|Q|N|N|100 +PRXI|Premier Exhibitions, Inc. - Common Stock|S|N|D|100 +PRXL|PAREXEL International Corporation - Common Stock|Q|N|N|100 +PSAU|PowerShares Global Gold & Precious Metals Portfolio|G|N|N|100 +PSBH|PSB Holdings, Inc. - Common Stock|S|N|N|100 +PSCC|PowerShares S&P SmallCap Consumer Staples Portfolio|G|N|N|100 +PSCD|PowerShares S&P SmallCap Consumer Discretionary Portfolio|G|N|N|100 +PSCE|PowerShares S&P SmallCap Energy Portfolio|G|N|N|100 +PSCF|PowerShares S&P SmallCap Financials Portfolio|G|N|N|100 +PSCH|PowerShares S&P SmallCap Health Care Portfolio|G|N|N|100 +PSCI|PowerShares S&P SmallCap Industrials Portfolio|G|N|N|100 +PSCM|PowerShares S&P SmallCap Materials Portfolio|G|N|N|100 +PSCT|PowerShares S&P SmallCap Information Technology Portfolio|G|N|N|100 +PSCU|PowerShares S&P SmallCap Utilities Portfolio|G|N|N|100 +PSDV|pSivida Corp. - Common Stock|G|N|N|100 +PSEC|Prospect Capital Corporation - Common Stock|Q|N|N|100 +PSEM|Pericom Semiconductor Corporation - Common Stock|Q|N|N|100 +PSIX|Power Solutions International, Inc. - Common Stock|S|N|N|100 +PSMT|PriceSmart, Inc. - Common Stock|Q|N|N|100 +PSTB|Park Sterling Corporation - Common Stock|Q|N|N|100 +PSTI|Pluristem Therapeutics, Inc. - Common Stock|S|N|N|100 +PSTR|PostRock Energy Corporation - Common Stock|G|N|D|100 +PSUN|Pacific Sunwear of California, Inc. - Common Stock|Q|N|N|100 +PTBI|PlasmaTech Biopharmaceuticals, Inc. - Common Stock|S|N|N|100 +PTBIW|PlasmaTech Biopharmaceuticals, Inc. - Warrant|S|N|N|100 +PTC|PTC Inc. - Common Stock|Q|N|N|100 +PTCT|PTC Therapeutics, Inc. - Common Stock|Q|N|N|100 +PTEN|Patterson-UTI Energy, Inc. - Common Stock|Q|N|N|100 +PTIE|Pain Therapeutics - Common Stock|Q|N|N|100 +PTLA|Portola Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +PTNR|Partner Communications Company Ltd. - American Depositary Shares, each representing one ordinary share|Q|N|N|100 +PTNT|Internet Patents Corporation - Common Stock|S|N|N|100 +PTRY|The Pantry, Inc. - Common Stock|Q|N|N|100 +PTSI|P.A.M. Transportation Services, Inc. - Common Stock|G|N|N|100 +PTX|Pernix Therapeutics Holdings, Inc. - Common Stock|G|N|N|100 +PULB|Pulaski Financial Corp. - Common Stock|Q|N|N|100 +PVTB|PrivateBancorp, Inc. - Common Stock|Q|N|N|100 +PVTBP|PrivateBancorp, Inc. - PrivateBancorp Capital Trust IV - 10% Trust Preferred|Q|N|N|100 +PWOD|Penns Woods Bancorp, Inc. - Common Stock|Q|N|N|100 +PWRD|Perfect World Co., Ltd. - American Depositary Shares, each representing five Class B ordinary shares|Q|N|N|100 +PWX|Providence and Worcester Railroad Company - Common Stock|G|N|N|100 +PXLW|Pixelworks, Inc. - Common Stock|G|N|N|100 +PZZA|Papa John'S International, Inc. - Common Stock|Q|N|N|100 +QABA|First Trust NASDAQ ABA Community Bank Index Fund|G|N|N|100 +QADA|QAD Inc. - Class A Common Stock|Q|N|N|100 +QADB|QAD Inc. - Common Stock|Q|N|N|100 +QAT|iShares MSCI Qatar Capped ETF|G|N|N|100 +QBAK|Qualstar Corporation - Common Stock|S|N|N|100 +QCCO|QC Holdings, Inc. - Common Stock|G|N|N|100 +QCLN|First Trust NASDAQ Clean Edge Green Energy Index Fund|G|N|N|100 +QCOM|QUALCOMM Incorporated - Common Stock|Q|N|N|100 +QCRH|QCR Holdings, Inc. - Common Stock|G|N|N|100 +QDEL|Quidel Corporation - Common Stock|Q|N|N|100 +QGEN|Qiagen N.V. - Common Shares|Q|N|N|100 +QINC|First Trust RBA Quality Income ETF|G|N|N|100 +QIWI|QIWI plc - American Depositary Shares|Q|N|N|100 +QKLS|QKL Stores, Inc. - Common Stock|S|N|N|100 +QLGC|QLogic Corporation - Common Stock|Q|N|N|100 +QLIK|Qlik Technologies Inc. - Common Stock|Q|N|N|100 +QLTI|QLT Inc. - Common Shares|Q|N|N|100 +QLTY|Quality Distribution, Inc. - Common Stock|G|N|N|100 +QLYS|Qualys, Inc. - Common Stock|Q|N|N|100 +QNST|QuinStreet, Inc. - Common Stock|Q|N|N|100 +QPACU|Quinpario Acquisition Corp. 2 - Unit|S|N|N|100 +QQEW|First Trust NASDAQ-100 Equal Weighted Index Fund|G|N|N|100 +QQQ|PowerShares QQQ Trust, Series 1|G|N|N|100 +QQQC|Global X NASDAQ China Technology ETF|G|N|N|100 +QQQX|Nuveen NASDAQ 100 Dynamic Overwrite Fund - Shares of Beneficial Interest|Q|N|N|100 +QQXT|First Trust NASDAQ-100 Ex-Technology Sector Index Fund|G|N|N|100 +QRHC|Quest Resource Holding Corporation. - Common Stock|S|N|N|100 +QRVO|Qorvo, Inc. - Common Stock|Q|N|N|100 +QSII|Quality Systems, Inc. - Common Stock|Q|N|N|100 +QTEC|First Trust NASDAQ-100- Technology Index Fund|G|N|N|100 +QTNT|Quotient Limited - Ordinary Shares|G|N|N|100 +QTNTW|Quotient Limited - Warrant|G|N|N|100 +QTWW|Quantum Fuel Systems Technologies Worldwide, Inc. - Common Stock|S|N|N|100 +QUIK|QuickLogic Corporation - Common Stock|G|N|N|100 +QUMU|Qumu Corporation - Common Stock|Q|N|N|100 +QUNR|Qunar Cayman Islands Limited - American Depositary Shares|G|N|N|100 +QURE|uniQure N.V. - Ordinary Shares|Q|N|N|100 +QVCA|Liberty Interactive Corporation - Series A Liberty Interactive Common Stock|Q|N|N|100 +QVCB|Liberty Interactive Corporation - Series B Liberty Interactive common stock|Q|N|N|100 +QYLD|Recon Capital NASDAQ-100 Covered Call ETF|G|N|N|100 +RADA|Rada Electronics Industries Limited - Ordinary Shares|S|N|N|100 +RAIL|Freightcar America, Inc. - Common Stock|Q|N|N|100 +RAND|Rand Capital Corporation - Common Stock ($0.10 Par Value)|S|N|N|100 +RARE|Ultragenyx Pharmaceutical Inc. - Common Stock|Q|N|N|100 +RAVE|Rave Restaurant Group, Inc. - Common Stock|S|N|N|100 +RAVN|Raven Industries, Inc. - Common Stock|Q|N|N|100 +RBCAA|Republic Bancorp, Inc. - Class A Common Stock|Q|N|N|100 +RBCN|Rubicon Technology, Inc. - Common Stock|Q|N|N|100 +RBPAA|Royal Bancshares of Pennsylvania, Inc. - Class A Common Stock|G|N|N|100 +RCII|Rent-A-Center Inc. - Common Stock|Q|N|N|100 +RCKY|Rocky Brands, Inc. - Common Stock|Q|N|N|100 +RCMT|RCM Technologies, Inc. - Common Stock|G|N|N|100 +RCON|Recon Technology, Ltd. - Ordinary Shares|S|N|N|100 +RCPI|Rock Creek Pharmaceuticals, Inc. - Common Stock|S|N|D|100 +RCPT|Receptos, Inc. - Common Stock|Q|N|N|100 +RDCM|Radcom Ltd. - Ordinary Shares|S|N|N|100 +RDEN|Elizabeth Arden, Inc. - Common Stock|Q|N|N|100 +RDHL|Redhill Biopharma Ltd. - American Depositary Shares|S|N|N|100 +RDI|Reading International Inc - Class A Non-voting Common Stock|S|N|N|100 +RDIB|Reading International Inc - Class B Voting Common Stock|S|N|N|100 +RDNT|RadNet, Inc. - Common Stock|G|N|N|100 +RDUS|Radius Health, Inc. - Common Stock|G|N|N|100 +RDVY|First Trust NASDAQ Rising Dividend Achievers ETF|G|N|N|100 +RDWR|Radware Ltd. - Ordinary Shares|Q|N|N|100 +RECN|Resources Connection, Inc. - Common Stock|Q|N|N|100 +REDF|Rediff.com India Limited - American Depositary Shares, each represented by one-half of one equity share|G|N|N|100 +REFR|Research Frontiers Incorporated - Common Stock|S|N|N|100 +REGI|Renewable Energy Group, Inc. - Common Stock|Q|N|N|100 +REGN|Regeneron Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +REIS|Reis, Inc - Common Stock|Q|N|N|100 +RELL|Richardson Electronics, Ltd. - Common Stock|Q|N|N|100 +RELV|Reliv' International, Inc. - Common Stock|Q|N|N|100 +REMY|Remy International, Inc. - Common Stock|Q|N|N|100 +RENT|Rentrak Corporation - Common Stock|Q|N|N|100 +REPH|Recro Pharma, Inc. - Common Stock|S|N|N|100 +RESN|Resonant Inc. - Common Stock|S|N|N|100 +REXI|Resource America, Inc. - Class A Common Stock|Q|N|N|100 +REXX|Rex Energy Corporation - Common Stock|Q|N|N|100 +RFIL|RF Industries, Ltd. - Common Stock|G|N|N|100 +RGCO|RGC Resources Inc. - Common Stock|G|N|N|100 +RGDO|Regado BioSciences, Inc. - Common Stock|S|N|D|100 +RGDX|Response Genetics, Inc. - Common Stock|S|N|D|100 +RGEN|Repligen Corporation - Common Stock|Q|N|N|100 +RGLD|Royal Gold, Inc. - Common Stock|Q|N|N|100 +RGLS|Regulus Therapeutics Inc. - Common Stock|G|N|N|100 +RGSE|Real Goods Solar, Inc. - Class A Common Stock|S|N|D|100 +RIBT|RiceBran Technologies - Common Stock|S|N|N|100 +RIBTW|RiceBran Technologies - Warrant|S|N|N|100 +RICK|RCI Hospitality Holdings, Inc. - Common Stock|G|N|N|100 +RIGL|Rigel Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +RITT|RIT Technologies Ltd. - ordinary shares|S|N|N|100 +RITTW|RIT Technologies Ltd. - Warrants|S|N|N|100 +RIVR|River Valley Bancorp. - Common Stock|S|N|N|100 +RJET|Republic Airways Holdings, Inc. - Common Stock|Q|N|N|100 +RLJE|RLJ Entertainment, Inc. - Common Stock|S|N|N|100 +RLOC|ReachLocal, Inc. - Common Stock|Q|N|N|100 +RLOG|Rand Logistics, Inc. - Common Stock|S|N|N|100 +RLYP|Relypsa, Inc. - Common Stock|Q|N|N|100 +RMBS|Rambus, Inc. - Common Stock|Q|N|N|100 +RMCF|Rocky Mountain Chocolate Factory, Inc. - Common Stock|G|N|N|100 +RMGN|RMG Networks Holding Corporation - Common Stock|G|N|N|100 +RMTI|Rockwell Medical, Inc. - Common Stock|G|N|N|100 +RNA|Prosensa Holding N.V. - Ordinary Shares|Q|N|N|100 +RNET|RigNet, Inc. - Common Stock|Q|N|N|100 +RNST|Renasant Corporation - Common Stock|Q|N|N|100 +RNWK|RealNetworks, Inc. - Common Stock|Q|N|N|100 +ROBO|Robo-Stox Global Robotics and Automation Index ETF|G|N|N|100 +ROCK|Gibraltar Industries, Inc. - Common Stock|Q|N|N|100 +ROIA|Radio One, Inc. - Class A Common Stock|S|N|N|100 +ROIAK|Radio One, Inc. - Class D Common Stock|S|N|N|100 +ROIC|Retail Opportunity Investments Corp. - Common Stock|Q|N|N|100 +ROIQ|ROI Acquisition Corp. II - Common Stock|S|N|D|100 +ROIQU|ROI Acquisition Corp. II - Units|S|N|D|100 +ROIQW|ROI Acquisition Corp. II - Warrants|S|N|D|100 +ROKA|Roka Bioscience, Inc. - Common Stock|G|N|N|100 +ROLL|RBC Bearings Incorporated - Common Stock|Q|N|N|100 +ROSE|Rosetta Resources Inc. - Common Stock|Q|N|N|100 +ROSG|Rosetta Genomics Ltd. - ordinary shares|S|N|N|100 +ROST|Ross Stores, Inc. - Common Stock|Q|N|N|100 +ROVI|Rovi Corporation - Common Stock|Q|N|N|100 +ROYL|Royale Energy, Inc. - Common Stock|S|N|N|100 +RP|RealPage, Inc. - Common Stock|Q|N|N|100 +RPRX|Repros Therapeutics Inc. - Common Stock|S|N|N|100 +RPRXW|Repros Therapeutics Inc. - Series A Warrant|S|N|N|100 +RPRXZ|Repros Therapeutics Inc. - Series B warrant|S|N|N|100 +RPTP|Raptor Pharmaceutical Corp. - Common Stock|G|N|N|100 +RPXC|RPX Corporation - Common Stock|Q|N|N|100 +RRD|R.R. Donnelley & Sons Company - Common Stock|Q|N|N|100 +RRGB|Red Robin Gourmet Burgers, Inc. - Common Stock|Q|N|N|100 +RRST|RRSat Global Communications Network Ltd. - Ordinary Shares|Q|N|N|100 +RSTI|Rofin-Sinar Technologies, Inc. - Common Stock|Q|N|N|100 +RSYS|RadiSys Corporation - Common Stock|Q|N|N|100 +RTGN|Ruthigen, Inc. - Common Stock|S|N|N|100 +RTIX|RTI Surgical, Inc. - Common Stock|Q|N|N|100 +RTK|Rentech, Inc. - Common Stock|S|N|N|100 +RTRX|Retrophin, Inc. - Common Stock|G|N|D|100 +RUSHA|Rush Enterprises, Inc. - Class A Common Stock|Q|N|N|100 +RUSHB|Rush Enterprises, Inc. - Class B Common Stock|Q|N|N|100 +RUTH|Ruth's Hospitality Group, Inc. - Common Stock|Q|N|N|100 +RVBD|Riverbed Technology, Inc. - Common Stock|Q|N|N|100 +RVLT|Revolution Lighting Technologies, Inc. - Class A Common Stock|S|N|N|100 +RVNC|Revance Therapeutics, Inc. - Common Stock|G|N|N|100 +RVSB|Riverview Bancorp Inc - Common Stock|Q|N|N|100 +RWLK|ReWalk Robotics Ltd - Ordinary Shares|G|N|N|100 +RXDX|Ignyta, Inc. - Common Stock|S|N|N|100 +RXII|RXi Pharmaceuticals Corporation - Common Stock|S|N|N|100 +RYAAY|Ryanair Holdings plc - American Depositary Shares, each representing five Ordinary Shares|Q|N|N|100 +SAAS|inContact, Inc. - Common Stock|S|N|N|100 +SABR|Sabre Corporation - Common Stock|Q|N|N|100 +SAEX|SAExploration Holdings, Inc. - Common Stock|G|N|N|100 +SAFM|Sanderson Farms, Inc. - Common Stock|Q|N|N|100 +SAFT|Safety Insurance Group, Inc. - Common Stock|Q|N|N|100 +SAGE|Sage Therapeutics, Inc. - Common Stock|G|N|N|100 +SAIA|Saia, Inc. - Common Stock|Q|N|N|100 +SAJA|Sajan, Inc. - Common Stock|S|N|N|100 +SAL|Salisbury Bancorp, Inc. - Common Stock|S|N|N|100 +SALE|RetailMeNot, Inc. - Series 1 Common Stock|Q|N|N|100 +SALM|Salem Communications Corporation - Class A Common Stock|G|N|N|100 +SAMG|Silvercrest Asset Management Group Inc. - Common Stock|G|N|N|100 +SANM|Sanmina Corporation - Common Stock|Q|N|N|100 +SANW|S&W Seed Company - Common Stock|S|N|N|100 +SANWZ|S&W Seed Company - Warrants Class B 04/23/2015|S|N|N|100 +SAPE|Sapient Corporation - Common Stock|Q|N|N|100 +SASR|Sandy Spring Bancorp, Inc. - Common Stock|Q|N|N|100 +SATS|EchoStar Corporation - common stock|Q|N|N|100 +SAVE|Spirit Airlines, Inc. - Common Stock|Q|N|N|100 +SBAC|SBA Communications Corporation - Common Stock|Q|N|N|100 +SBBX|Sussex Bancorp - Common Stock|G|N|N|100 +SBCF|Seacoast Banking Corporation of Florida - Common Stock|Q|N|N|100 +SBCP|Sunshine Bancorp, Inc. - Common Stock|S|N|N|100 +SBFG|SB Financial Group, Inc. - Common Stock|S|N|N|100 +SBFGP|SB Financial Group, Inc. - Depositary Shares each representing a 1/100th interest in a 6.50% Noncumulative convertible perpetual preferred share, Series A|S|N|N|100 +SBGI|Sinclair Broadcast Group, Inc. - Class A Common Stock|Q|N|N|100 +SBLK|Star Bulk Carriers Corp. - Common Stock|Q|N|N|100 +SBLKL|Star Bulk Carriers Corp. - 8.00% Senior Notes Due 2019|Q|N|N|100 +SBNY|Signature Bank - Common Stock|Q|N|N|100 +SBNYW|Signature Bank - Warrants 12/12/2018|Q|N|N|100 +SBRA|Sabra Healthcare REIT, Inc. - Common Stock|Q|N|N|100 +SBRAP|Sabra Healthcare REIT, Inc. - 7.125% Preferred Series A (United States)|Q|N|N|100 +SBSA|Spanish Broadcasting System, Inc. - Class A Common Stock|G|N|D|100 +SBSI|Southside Bancshares, Inc. - Common Stock|Q|N|N|100 +SBUX|Starbucks Corporation - Common Stock|Q|N|N|100 +SCAI|Surgical Care Affiliates, Inc. - Common Stock|Q|N|N|100 +SCHL|Scholastic Corporation - Common Stock|Q|N|N|100 +SCHN|Schnitzer Steel Industries, Inc. - Class A Common Stock|Q|N|N|100 +SCLN|SciClone Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +SCMP|Sucampo Pharmaceuticals, Inc. - Class A Common Stock|G|N|N|100 +SCOK|SinoCoking Coal and Coke Chemical Industries, Inc - Common Stock|S|N|N|100 +SCON|Superconductor Technologies Inc. - Common Stock|S|N|N|100 +SCOR|comScore, Inc. - Common Stock|Q|N|N|100 +SCSC|ScanSource, Inc. - Common Stock|Q|N|N|100 +SCSS|Select Comfort Corporation - Common Stock|Q|N|N|100 +SCTY|SolarCity Corporation - Common Stock|Q|N|N|100 +SCVL|Shoe Carnival, Inc. - Common Stock|Q|N|N|100 +SCYX|SCYNEXIS, Inc. - Common Stock|G|N|N|100 +SEAC|SeaChange International, Inc. - Common Stock|Q|N|N|100 +SEED|Origin Agritech Limited - Common Stock|Q|N|N|100 +SEIC|SEI Investments Company - Common Stock|Q|N|N|100 +SEMI|SunEdison Semiconductor Limited - Ordinary Shares|Q|N|N|100 +SENEA|Seneca Foods Corp. - Class A Common Stock|Q|N|N|100 +SENEB|Seneca Foods Corp. - Class B Common Stock|Q|N|N|100 +SEV|Sevcon, Inc. - Common Stock|S|N|N|100 +SFBC|Sound Financial Bancorp, Inc. - Common Stock|S|N|N|100 +SFBS|ServisFirst Bancshares, Inc. - Common Stock|Q|N|N|100 +SFLY|Shutterfly, Inc. - Common Stock|Q|N|N|100 +SFM|Sprouts Farmers Market, Inc. - Common Stock|Q|N|N|100 +SFNC|Simmons First National Corporation - Common Stock|Q|N|N|100 +SFST|Southern First Bancshares, Inc. - Common Stock|G|N|N|100 +SFXE|SFX Entertainment, Inc. - Common Stock|Q|N|N|100 +SGBK|Stonegate Bank - Common Stock|Q|N|N|100 +SGC|Superior Uniform Group, Inc. - Common Stock|G|N|N|100 +SGEN|Seattle Genetics, Inc. - Common Stock|Q|N|N|100 +SGI|Silicon Graphics International Corp - Common Stock|Q|N|N|100 +SGMA|SigmaTron International, Inc. - Common Stock|S|N|N|100 +SGMO|Sangamo BioSciences, Inc. - Common Stock|Q|N|N|100 +SGMS|Scientific Games Corp - Class A Common Stock|Q|N|N|100 +SGNL|Signal Genetics, Inc. - Common Stock|S|N|N|100 +SGNT|Sagent Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +SGOC|SGOCO Group, Ltd - Ordinary Shares (Cayman Islands)|S|N|N|100 +SGRP|SPAR Group, Inc. - Common Stock|S|N|N|100 +SGYP|Synergy Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +SGYPU|Synergy Pharmaceuticals, Inc. - Unit|S|N|N|100 +SGYPW|Synergy Pharmaceuticals, Inc. - Warrants|S|N|N|100 +SHBI|Shore Bancshares Inc - Common Stock|Q|N|N|100 +SHEN|Shenandoah Telecommunications Co - Common Stock|Q|N|N|100 +SHIP|Seanergy Maritime Holdings Corp - Common Stock|S|N|N|100 +SHLD|Sears Holdings Corporation - Common Stock|Q|N|N|100 +SHLDW|Sears Holdings Corporation - Warrant|Q|N|N|100 +SHLM|A. Schulman, Inc. - Common Stock|Q|N|N|100 +SHLO|Shiloh Industries, Inc. - Common Stock|Q|N|N|100 +SHOO|Steven Madden, Ltd. - Common Stock|Q|N|N|100 +SHOR|ShoreTel, Inc. - Common Stock|Q|N|N|100 +SHOS|Sears Hometown and Outlet Stores, Inc. - Common Stock|S|N|N|100 +SHPG|Shire plc - American Depositary Shares, each representing three Ordinary Shares|Q|N|N|100 +SIAL|Sigma-Aldrich Corporation - Common Stock|Q|N|N|100 +SIBC|State Investors Bancorp, Inc. - Common Stock|S|N|N|100 +SIEB|Siebert Financial Corp. - Common Stock|S|N|N|100 +SIEN|Sientra, Inc. - Common Stock|Q|N|N|100 +SIFI|SI Financial Group, Inc. - Common Stock|G|N|N|100 +SIFY|Sify Technologies Limited - American Depository Shares, each represented by one Equity Share|Q|N|N|100 +SIGA|SIGA Technologies Inc. - Common Stock|G|N|Q|100 +SIGI|Selective Insurance Group, Inc. - Common Stock|Q|N|N|100 +SIGM|Sigma Designs, Inc. - Common Stock|Q|N|N|100 +SILC|Silicom Ltd - Ordinary Shares|Q|N|N|100 +SIMG|Silicon Image, Inc. - Common Stock|Q|N|N|100 +SIMO|Silicon Motion Technology Corporation - American Depositary Shares, each representing four ordinary shares|Q|N|N|100 +SINA|Sina Corporation - Ordinary Shares|Q|N|N|100 +SINO|Sino-Global Shipping America, Ltd. - Common Stock|S|N|N|100 +SIRI|Sirius XM Holdings Inc. - Common Stock|Q|N|N|100 +SIRO|Sirona Dental Systems, Inc. - Common Stock|Q|N|N|100 +SIVB|SVB Financial Group - Common Stock|Q|N|N|100 +SIVBO|SVB Financial Group - 7% Cumulative Trust Preferred Securities - SVB Capital II|Q|N|N|100 +SIXD|6D Global Technologies, Inc. - Common Stock|S|N|N|100 +SKBI|Skystar Bio-Pharmaceutical Company - Common Stock|S|N|N|100 +SKIS|Peak Resorts, Inc. - Common Stock|G|N|N|100 +SKOR|FlexShares Credit-Scored US Corporate Bond Index Fund|G|N|N|100 +SKUL|Skullcandy, Inc. - Common Stock|Q|N|N|100 +SKYS|Sky Solar Holdings, Ltd. - American Depositary Shares|S|N|N|100 +SKYW|SkyWest, Inc. - Common Stock|Q|N|N|100 +SKYY|First Trust ISE Cloud Computing Index Fund|G|N|N|100 +SLAB|Silicon Laboratories, Inc. - Common Stock|Q|N|N|100 +SLCT|Select Bancorp, Inc. - Common Stock|G|N|N|100 +SLGN|Silgan Holdings Inc. - Common Stock|Q|N|N|100 +SLM|SLM Corporation - Common Stock|Q|N|N|100 +SLMAP|SLM Corporation - 6.97% Cumulative Redeemable Preferred Stock, Series A|Q|N|N|100 +SLMBP|SLM Corporation - Floating Rate Non-Cumulative Preferred Stock, Series B|Q|N|N|100 +SLP|Simulations Plus, Inc. - Common Stock|S|N|N|100 +SLRC|Solar Capital Ltd. - Common Stock|Q|N|N|100 +SLTC|Selectica, Inc. - Common Stock|S|N|N|100 +SLVO|Credit Suisse AG - Credit Suisse Silver Shares Covered Call Exchange Traded Notes|G|N|N|100 +SLXP|Salix Pharmaceuticals, Ltd. - Common Stock|Q|N|N|100 +SMAC|Sino Mercury Acquisition Corp. - Common Stock|S|N|N|100 +SMACR|Sino Mercury Acquisition Corp. - Right|S|N|N|100 +SMACU|Sino Mercury Acquisition Corp. - Unit|S|N|N|100 +SMBC|Southern Missouri Bancorp, Inc. - Common Stock|G|N|N|100 +SMCI|Super Micro Computer, Inc. - Common Stock|Q|N|N|100 +SMED|Sharps Compliance Corp - Common Stock|S|N|N|100 +SMIT|Schmitt Industries, Inc. - Common Stock|S|N|N|100 +SMLR|Semler Scientific, Inc. - Common Stock|S|N|N|100 +SMMF|Summit Financial Group, Inc. - Common Stock|S|N|N|100 +SMPL|Simplicity Bancorp Inc. - Common Stock|Q|N|N|100 +SMRT|Stein Mart, Inc. - Common Stock|Q|N|N|100 +SMSI|Smith Micro Software, Inc. - Common Stock|Q|N|N|100 +SMT|SMART Technologies Inc. - Common Shares|Q|N|N|100 +SMTC|Semtech Corporation - Common Stock|Q|N|N|100 +SMTP|SMTP, Inc. - Common Stock|S|N|N|100 +SMTX|SMTC Corporation - Common Stock|G|N|N|100 +SNAK|Inventure Foods, Inc. - Common Stock|Q|N|N|100 +SNBC|Sun Bancorp, Inc. - Common Stock|Q|N|N|100 +SNC|State National Companies, Inc. - Common Stock|Q|N|N|100 +SNCR|Synchronoss Technologies, Inc. - Common Stock|Q|N|N|100 +SNDK|SanDisk Corporation - Common Stock|Q|N|N|100 +SNFCA|Security National Financial Corporation - Class A Common Stock|G|N|N|100 +SNHY|Sun Hydraulics Corporation - Common Stock|Q|N|N|100 +SNMX|Senomyx, Inc. - Common Stock|G|N|N|100 +SNPS|Synopsys, Inc. - Common Stock|Q|N|N|100 +SNSS|Sunesis Pharmaceuticals, Inc. - Common Stock|S|N|N|100 +SNTA|Synta Pharmaceuticals Corp. - Common Stock|G|N|N|100 +SOCB|Southcoast Financial Corporation - Common Stock|G|N|N|100 +SOCL|Global X Social Media Index ETF|G|N|N|100 +SODA|SodaStream International Ltd. - Ordinary Shares|Q|N|N|100 +SOFO|Sonic Foundry, Inc. - Common Stock|S|N|N|100 +SOHO|Sotherly Hotels Inc. - Common Stock|G|N|N|100 +SOHOL|Sotherly Hotels LP - 8.00% Senior Unsecured Notes Due 2018|G|N|N|100 +SOHOM|Sotherly Hotels LP - 7.00% Senior Notes|G|N|N|100 +SOHU|Sohu.com Inc. - Common Stock|Q|N|N|100 +SONA|Southern National Bancorp of Virginia, Inc. - Common Stock|G|N|N|100 +SONC|Sonic Corp. - Common Stock|Q|N|N|100 +SONS|Sonus Networks, Inc. - Common Stock|Q|N|N|100 +SORL|SORL Auto Parts, Inc. - Common Stock|G|N|N|100 +SOXX|iShares PHLX SOX Semiconductor Sector Index Fund|G|N|N|100 +SP|SP Plus Corporation - Common Stock|Q|N|N|100 +SPAN|Span-America Medical Systems, Inc. - Common Stock|G|N|N|100 +SPAR|Spartan Motors, Inc. - Common Stock|Q|N|N|100 +SPCB|SuperCom, Ltd. - Ordinary Shares|S|N|N|100 +SPDC|Speed Commerce, Inc. - Common Stock|G|N|N|100 +SPEX|Spherix Incorporated - Common Stock|S|N|N|100 +SPHS|Sophiris Bio, Inc. - Common Shares|G|N|N|100 +SPIL|Siliconware Precision Industries Company, Ltd. - ADS represents common shares|Q|N|N|100 +SPKE|Spark Energy, Inc. - Class A Common Stock|Q|N|N|100 +SPLK|Splunk Inc. - Common Stock|Q|N|N|100 +SPLS|Staples, Inc. - Common Stock|Q|N|N|100 +SPNC|The Spectranetics Corporation - Common Stock|Q|N|N|100 +SPNS|Sapiens International Corporation N.V. - Common Shares|S|N|N|100 +SPOK|Spok Holdings, Inc. - Common Stock|Q|N|N|100 +SPPI|Spectrum Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +SPPR|Supertel Hospitality, Inc. - Common Stock|G|N|N|100 +SPPRO|Supertel Hospitality, Inc. - Series B Cumulative Preferred Stock|G|N|N|100 +SPPRP|Supertel Hospitality, Inc. - Series A Convertible Preferred Stock|G|N|N|100 +SPRO|SmartPros Ltd. - Common Stock|S|N|N|100 +SPRT|support.com, Inc. - Common Stock|Q|N|N|100 +SPSC|SPS Commerce, Inc. - Common Stock|Q|N|N|100 +SPTN|SpartanNash Company - Common Stock|Q|N|N|100 +SPU|SkyPeople Fruit Juice, Inc. - Common Stock|G|N|N|100 +SPWH|Sportsman's Warehouse Holdings, Inc. - Common Stock|Q|N|N|100 +SPWR|SunPower Corporation - Common Stock|Q|N|N|100 +SQBG|Sequential Brands Group, Inc. - Common Stock|S|N|N|100 +SQBK|Square 1 Financial, Inc. - Class A Common Stock|Q|N|N|100 +SQI|SciQuest, Inc. - Common Stock|Q|N|N|100 +SQNM|Sequenom, Inc. - Common Stock|Q|N|N|100 +SQQQ|ProShares UltraPro Short QQQ|G|N|N|100 +SRCE|1st Source Corporation - Common Stock|Q|N|N|100 +SRCL|Stericycle, Inc. - Common Stock|Q|N|N|100 +SRDX|SurModics, Inc. - Common Stock|Q|N|N|100 +SREV|ServiceSource International, Inc. - Common Stock|Q|N|N|100 +SRNE|Sorrento Therapeutics, Inc. - Common Stock|S|N|N|100 +SRPT|Sarepta Therapeutics, Inc. - Common Stock|Q|N|N|100 +SRSC|Sears Canada Inc. - Common Shares|Q|N|N|100 +SSB|South State Corporation - Common Stock|Q|N|N|100 +SSBI|Summit State Bank - Common Stock|G|N|N|100 +SSFN|Stewardship Financial Corp - Common Stock|S|N|N|100 +SSH|Sunshine Heart Inc - Common Stock|S|N|N|100 +SSNC|SS&C Technologies Holdings, Inc. - Common Stock|Q|N|N|100 +SSRG|Symmetry Surgical Inc. - Common Stock|G|N|N|100 +SSRI|Silver Standard Resources Inc. - Common Stock|Q|N|N|100 +SSYS|Stratasys, Ltd. - Common Stock|Q|N|N|100 +STAA|STAAR Surgical Company - Common Stock|G|N|N|100 +STB|Student Transportation Inc - Common shares|Q|N|N|100 +STBA|S&T Bancorp, Inc. - Common Stock|Q|N|N|100 +STBZ|State Bank Financial Corporation. - Common Stock|S|N|N|100 +STCK|Stock Building Supply Holdings, Inc. - Common Stock|Q|N|N|100 +STEM|StemCells, Inc. - Common Stock|S|N|N|100 +STFC|State Auto Financial Corporation - Common Stock|Q|N|N|100 +STKL|SunOpta, Inc. - Common Stock|Q|N|N|100 +STLD|Steel Dynamics, Inc. - Common Stock|Q|N|N|100 +STLY|Stanley Furniture Company, Inc. - Common Stock|Q|N|N|100 +STML|Stemline Therapeutics, Inc. - Common Stock|S|N|N|100 +STMP|Stamps.com Inc. - Common Stock|Q|N|N|100 +STNR|Steiner Leisure Limited - Common Shares|Q|N|N|100 +STPP|Barclays PLC - iPath US Treasury Steepener ETN|G|N|N|100 +STRA|Strayer Education, Inc. - Common Stock|Q|N|N|100 +STRL|Sterling Construction Company Inc - Common Stock|Q|N|N|100 +STRM|Streamline Health Solutions, Inc. - Common Stock|S|N|N|100 +STRN|Sutron Corporation - Common Stock|S|N|N|100 +STRS|Stratus Properties, Inc. - Common Stock|Q|N|N|100 +STRT|Strattec Security Corporation - Common Stock|G|N|N|100 +STRZA|Starz - Series A Common Stock|Q|N|N|100 +STRZB|Starz - Series B Common Stock|Q|N|N|100 +STX|Seagate Technology. - Common Stock|Q|N|N|100 +STXS|Stereotaxis, Inc. - Common Stock|S|N|N|100 +SUBK|Suffolk Bancorp - Common Stock|Q|N|N|100 +SUMR|Summer Infant, Inc. - Common Stock|S|N|N|100 +SUNS|Solar Senior Capital Ltd. - Common Stock|Q|N|N|100 +SUPN|Supernus Pharmaceuticals, Inc. - Common Stock|G|N|N|100 +SURG|Synergetics USA, Inc. - Common Stock|S|N|N|100 +SUSQ|Susquehanna Bancshares, Inc. - Common Stock|Q|N|N|100 +SUTR|Sutor Technology Group Limited - Common Stock|S|N|D|100 +SVA|Sinovac Biotech, Ltd. - Ordinary Shares (Antigua/Barbudo)|Q|N|N|100 +SVBI|Severn Bancorp Inc - Common Stock|S|N|N|100 +SVVC|Firsthand Technology Value Fund, Inc. - Common Stock|Q|N|N|100 +SWHC|Smith & Wesson Holding Corporation - Common Stock|Q|N|N|100 +SWIR|Sierra Wireless, Inc. - Common Stock|Q|N|N|100 +SWKS|Skyworks Solutions, Inc. - Common Stock|Q|N|N|100 +SWSH|Swisher Hygiene, Inc. - Common Stock|S|N|N|100 +SYBT|Stock Yards Bancorp, Inc. - Common Stock|Q|N|N|100 +SYKE|Sykes Enterprises, Incorporated - Common Stock|Q|N|N|100 +SYMC|Symantec Corporation - Common Stock|Q|N|N|100 +SYMX|Synthesis Energy Systems, Inc. - Common Stock|G|N|N|100 +SYNA|Synaptics Incorporated - Common Stock|Q|N|N|100 +SYNC|Synacor, Inc. - Common Stock|G|N|N|100 +SYNL|Synalloy Corporation - Common Stock|G|N|N|100 +SYNT|Syntel, Inc. - Common Stock|Q|N|N|100 +SYPR|Sypris Solutions, Inc. - Common Stock|G|N|N|100 +SYRX|Sysorex Global Holding Corp. - Common Stock|S|N|N|100 +SYUT|Synutra International, Inc. - Common Stock|Q|N|N|100 +SZMK|Sizmek Inc. - Common Stock|Q|N|N|100 +SZYM|Solazyme, Inc. - Common Stock|Q|N|N|100 +TACT|TransAct Technologies Incorporated - Common Stock|G|N|N|100 +TAIT|Taitron Components Incorporated - Class A Common Stock|S|N|N|100 +TAPR|Barclays PLC - Barclays Inverse US Treasury Composite ETN|G|N|N|100 +TASR|TASER International, Inc. - Common Stock|Q|N|N|100 +TAST|Carrols Restaurant Group, Inc. - Common Stock|Q|N|N|100 +TATT|TAT Technologies Ltd. - Ordinary Shares|G|N|N|100 +TAX|Liberty Tax, Inc. - Class A Common Stock|Q|N|N|100 +TAXI|Medallion Financial Corp. - Common Stock|Q|N|N|100 +TAYD|Taylor Devices, Inc. - Common Stock|S|N|N|100 +TBBK|The Bancorp, Inc. - Common Stock|Q|N|N|100 +TBIO|Transgenomic, Inc. - Common Stock|S|N|N|100 +TBK|Triumph Bancorp, Inc. - Common Stock|Q|N|N|100 +TBNK|Territorial Bancorp Inc. - Common Stock|Q|N|N|100 +TBPH|Theravance Biopharma, Inc. - Ordinary Shares|G|N|N|100 +TCBI|Texas Capital Bancshares, Inc. - Common Stock|Q|N|N|100 +TCBIL|Texas Capital Bancshares, Inc. - 6.50% Subordinated Notes due 2042|Q|N|N|100 +TCBIP|Texas Capital Bancshares, Inc. - Non Cumulative Preferred Perpetual Stock Series A|Q|N|N|100 +TCBIW|Texas Capital Bancshares, Inc. - Warrants 01/16/2019|Q|N|N|100 +TCBK|TriCo Bancshares - Common Stock|Q|N|N|100 +TCCO|Technical Communications Corporation - Common Stock|S|N|N|100 +TCFC|The Community Financial Corporation - Common Stock|S|N|N|100 +TCPC|TCP Capital Corp. - Common Stock|Q|N|N|100 +TCRD|THL Credit, Inc. - Common Stock|Q|N|N|100 +TCX|Tucows Inc. - Common Stock|S|N|N|100 +TDIV|First Trust Exchange-Traded Fund VI First Trust NASDAQ Technology Dividend Index Fund|G|N|N|100 +TEAR|TearLab Corporation - Common Stock|S|N|N|100 +TECD|Tech Data Corporation - Common Stock|Q|N|N|100 +TECH|Bio-Techne Corp - Common Stock|Q|N|N|100 +TECU|Tecumseh Products Company - Common Stock|Q|N|N|100 +TEDU|Tarena International, Inc. - American Depositary Shares|Q|N|N|100 +TENX|Tenax Therapeutics, Inc. - Common Stock|S|N|N|100 +TERP|TerraForm Power, Inc. - Class A Common Stock|Q|N|N|100 +TESO|Tesco Corporation - Common Stock|Q|N|N|100 +TESS|TESSCO Technologies Incorporated - Common Stock|Q|N|N|100 +TFM|The Fresh Market, Inc. - Common Stock|Q|N|N|100 +TFSC|1347 Capital Corp. - Common Stock|S|N|N|100 +TFSCR|1347 Capital Corp. - Right|S|N|N|100 +TFSCU|1347 Capital Corp. - Unit|S|N|N|100 +TFSCW|1347 Capital Corp. - Warrant|S|N|N|100 +TFSL|TFS Financial Corporation - Common Stock|Q|N|N|100 +TGA|Transglobe Energy Corp - Ordinary Shares|Q|N|N|100 +TGE|TGC Industries, Inc. - Common Stock|Q|N|N|100 +TGEN|Tecogen Inc. - Common Stock|S|N|N|100 +TGLS|Tecnoglass Inc. - Ordinary Shares|S|N|N|100 +TGTX|TG Therapeutics, Inc. - Common Stock|S|N|N|100 +THFF|First Financial Corporation Indiana - Common Stock|Q|N|N|100 +THLD|Threshold Pharmaceuticals, Inc. - Common Stock|S|N|N|100 +THOR|Thoratec Corporation - Common Stock|Q|N|N|100 +THRM|Gentherm Inc - Common Stock|Q|N|N|100 +THRX|Theravance, Inc. - Common Stock|Q|N|N|100 +THST|Truett-Hurst, Inc. - Class A Common Stock|S|N|N|100 +THTI|THT Heat Transfer Technology, Inc. - Common Stock|S|N|N|100 +TICC|TICC Capital Corp. - Closed End Fund|Q|N|N|100 +TIGR|TigerLogic Corporation - Common Stock|S|N|D|100 +TILE|Interface, Inc. - Common Stock|Q|N|N|100 +TINY|Harris & Harris Group, Inc. - Common Stock|G|N|N|100 +TIPT|Tiptree Financial Inc. - Class A Common Stock|S|N|N|100 +TISA|Top Image Systems, Ltd. - Ordinary Shares|S|N|N|100 +TITN|Titan Machinery Inc. - Common Stock|Q|N|N|100 +TIVO|TiVo Inc. - Common Stock|Q|N|N|100 +TKAI|Tokai Pharmaceuticals, Inc. - Common Stock|G|N|N|100 +TKMR|Tekmira Pharmaceuticals Corp - Common Stock|S|N|N|100 +TLF|Tandy Leather Factory, Inc. - Common Stock|G|N|N|100 +TLMR|Talmer Bancorp, Inc. - Class A Common Stock|S|N|N|100 +TLOG|TetraLogic Pharmaceuticals Corporation - Common Stock|G|N|N|100 +TNAV|Telenav, Inc. - Common Stock|Q|N|N|100 +TNDM|Tandem Diabetes Care, Inc. - Common Stock|G|N|N|100 +TNGO|Tangoe, Inc. - Common Stock|Q|N|N|100 +TNXP|Tonix Pharmaceuticals Holding Corp. - Common Stock|G|N|N|100 +TOPS|TOP Ships Inc. - Common Stock|Q|N|N|100 +TORM|TOR Minerals International Inc - Common Stock|S|N|N|100 +TOUR|Tuniu Corporation - American Depositary Shares|G|N|N|100 +TOWN|Towne Bank - Common Stock|Q|N|N|100 +TQQQ|ProShares UltraPro QQQ|G|N|N|100 +TRAK|Dealertrack Technologies, Inc. - Common Stock|Q|N|N|100 +TRCB|Two River Bancorp - Common Stock|S|N|N|100 +TRCH|Torchlight Energy Resources, Inc. - Common Stock|S|N|N|100 +TREE|LendingTree, Inc. - Common Stock|Q|N|N|100 +TRGT|Targacept, Inc. - Common Stock|Q|N|N|100 +TRIB|Trinity Biotech plc - American Depositary Shares each representing 4 A Ordinary Shares|Q|N|N|100 +TRIL|Trillium Therapeutics Inc. - Common Shares|S|N|N|100 +TRIP|TripAdvisor, Inc. - Common Stock|Q|N|N|100 +TRIV|TriVascular Technologies, Inc. - Common Stock|Q|N|N|100 +TRMB|Trimble Navigation Limited - Common Stock|Q|N|N|100 +TRMK|Trustmark Corporation - Common Stock|Q|N|N|100 +TRNS|Transcat, Inc. - Common Stock|G|N|N|100 +TRNX|Tornier N.V. - Ordinary Shares|Q|N|N|100 +TROV|TrovaGene, Inc. - Common Stock|S|N|N|100 +TROVU|TrovaGene, Inc. - Unit|S|N|N|100 +TROVW|TrovaGene, Inc. - Warrant|S|N|N|100 +TROW|T. Rowe Price Group, Inc. - Common Stock|Q|N|N|100 +TRS|TriMas Corporation - Common Stock|Q|N|N|100 +TRST|TrustCo Bank Corp NY - Common Stock|Q|N|N|100 +TRTL|Terrapin 3 Acquisition Corporation - Class A Common Stock|S|N|N|100 +TRTLU|Terrapin 3 Acquisition Corporation - Units|S|N|N|100 +TRTLW|Terrapin 3 Acquisition Corporation - Warrants|S|N|N|100 +TRUE|TrueCar, Inc. - Common Stock|Q|N|N|100 +TRVN|Trevena, Inc. - Common Stock|Q|N|N|100 +TSBK|Timberland Bancorp, Inc. - Common Stock|G|N|N|100 +TSC|TriState Capital Holdings, Inc. - Common Stock|Q|N|N|100 +TSCO|Tractor Supply Company - Common Stock|Q|N|N|100 +TSEM|Tower Semiconductor Ltd. - Ordinary Shares|Q|N|N|100 +TSLA|Tesla Motors, Inc. - Common Stock|Q|N|N|100 +TSRA|Tessera Technologies, Inc. - Common Stock|Q|N|N|100 +TSRE|Trade Street Residential, Inc. - Common Stock|G|N|N|100 +TSRI|TSR, Inc. - Common Stock|S|N|N|100 +TSRO|TESARO, Inc. - Common Stock|Q|N|N|100 +TST|TheStreet, Inc. - Common Stock|G|N|N|100 +TSYS|TeleCommunication Systems, Inc. - Class A Common Stock|Q|N|N|100 +TTEC|TeleTech Holdings, Inc. - Common Stock|Q|N|N|100 +TTEK|Tetra Tech, Inc. - Common Stock|Q|N|N|100 +TTGT|TechTarget, Inc. - Common Stock|G|N|N|100 +TTHI|Transition Therapeutics, Inc. - Ordinary Shares (Canada)|G|N|N|100 +TTMI|TTM Technologies, Inc. - Common Stock|Q|N|N|100 +TTOO|T2 Biosystems, Inc. - Common Stock|G|N|N|100 +TTPH|Tetraphase Pharmaceuticals, Inc. - Common Stock|Q|N|N|100 +TTS|Tile Shop Hldgs, Inc. - Common Stock|Q|N|N|100 +TTWO|Take-Two Interactive Software, Inc. - Common Stock|Q|N|N|100 +TUBE|TubeMogul, Inc. - Common Stock|Q|N|N|100 +TUES|Tuesday Morning Corp. - Common Stock|Q|N|N|100 +TUSA|First Trust Total US Market AlphaDEX ETF|G|N|N|100 +TVIX|Credit Suisse AG - VelocityShares Daily 2x VIX Short Term ETN|G|N|N|100 +TVIZ|Credit Suisse AG - VelocityShares Daily 2x VIX Medium Term ETN|G|N|N|100 +TWER|Towerstream Corporation - Common Stock|S|N|N|100 +TWIN|Twin Disc, Incorporated - Common Stock|Q|N|N|100 +TWMC|Trans World Entertainment Corp. - Common Stock|G|N|N|100 +TWOU|2U, Inc. - Common Stock|Q|N|N|100 +TXN|Texas Instruments Incorporated - Common Stock|Q|N|N|100 +TXRH|Texas Roadhouse, Inc. - Common Stock|Q|N|N|100 +TYPE|Monotype Imaging Holdings Inc. - Common Stock|Q|N|N|100 +TZOO|Travelzoo Inc. - Common Stock|Q|N|N|100 +UACL|Universal Truckload Services, Inc. - Common Stock|Q|N|N|100 +UAE|iShares MSCI UAE Capped ETF|G|N|N|100 +UBCP|United Bancorp, Inc. - Common Stock|S|N|N|100 +UBFO|United Security Bancshares - Common Stock|Q|N|N|100 +UBIC|UBIC, Inc. - American Depositary Shares|Q|N|N|100 +UBNK|United Financial Bancorp, Inc. - Common Stock|Q|N|N|100 +UBNT|Ubiquiti Networks, Inc. - Common Stock|Q|N|N|100 +UBOH|United Bancshares, Inc. - Common Stock|G|N|N|100 +UBSH|Union Bankshares Corporation - Common Stock|Q|N|N|100 +UBSI|United Bankshares, Inc. - Common Stock|Q|N|N|100 +UCBA|United Community Bancorp - Common Stock|G|N|N|100 +UCBI|United Community Banks, Inc. - Common Stock|Q|N|N|100 +UCFC|United Community Financial Corp. - Common Stock|Q|N|N|100 +UCTT|Ultra Clean Holdings, Inc. - Common Stock|Q|N|N|100 +UDF|United Development Funding IV - Common Shares of Beneficial Interest|Q|N|N|100 +UEIC|Universal Electronics Inc. - Common Stock|Q|N|N|100 +UEPS|Net 1 UEPS Technologies, Inc. - Common Stock|Q|N|N|100 +UFCS|United Fire Group, Inc - Common Stock|Q|N|N|100 +UFPI|Universal Forest Products, Inc. - Common Stock|Q|N|N|100 +UFPT|UFP Technologies, Inc. - Common Stock|S|N|N|100 +UG|United-Guardian, Inc. - Common Stock|G|N|N|100 +UGLD|Credit Suisse AG - VelocityShares 3x Long Gold ETN|G|N|N|100 +UHAL|Amerco - Common Stock|Q|N|N|100 +UIHC|United Insurance Holdings Corp. - Common Stock|S|N|N|100 +ULBI|Ultralife Corporation - Common Stock|G|N|N|100 +ULTA|Ulta Salon, Cosmetics & Fragrance, Inc. - Common Stock|Q|N|N|100 +ULTI|The Ultimate Software Group, Inc. - Common Stock|Q|N|N|100 +ULTR|Ultrapetrol (Bahamas) Limited - common stock|Q|N|N|100 +UMBF|UMB Financial Corporation - Common Stock|Q|N|N|100 +UMPQ|Umpqua Holdings Corporation - Common Stock|Q|N|N|100 +UNAM|Unico American Corporation - Common Stock|G|N|N|100 +UNB|Union Bankshares, Inc. - Common Stock|G|N|N|100 +UNFI|United Natural Foods, Inc. - Common Stock|Q|N|N|100 +UNIS|Unilife Corporation - Common Stock|G|N|N|100 +UNTD|United Online, Inc. - Common Stock|Q|N|N|100 +UNTY|Unity Bancorp, Inc. - Common Stock|G|N|N|100 +UNXL|Uni-Pixel, Inc. - Common Stock|S|N|N|100 +UPI|Uroplasty, Inc. - Common Stock|S|N|N|100 +UPIP|Unwired Planet, Inc. - Common Stock|Q|N|N|100 +UPLD|Upland Software, Inc. - Common Stock|G|N|N|100 +URBN|Urban Outfitters, Inc. - Common Stock|Q|N|N|100 +URRE|Uranium Resources, Inc. - Common Stock|S|N|N|100 +USAK|USA Truck, Inc. - Common Stock|Q|N|N|100 +USAP|Universal Stainless & Alloy Products, Inc. - Common Stock|Q|N|N|100 +USAT|USA Technologies, Inc. - Common Stock|G|N|N|100 +USATP|USA Technologies, Inc. - Preferred Stock|G|N|N|100 +USBI|United Security Bancshares, Inc. - Common Stock|S|N|N|100 +USCR|U S Concrete, Inc. - Common Stock|S|N|N|100 +USEG|U.S. Energy Corp. - Common Stock|S|N|N|100 +USLM|United States Lime & Minerals, Inc. - Common Stock|Q|N|N|100 +USLV|Credit Suisse AG - VelocityShares 3x Long Silver ETN|G|N|N|100 +USMD|USMD Holdings, Inc. - Common Stock|S|N|N|100 +USTR|United Stationers Inc. - Common Stock|Q|N|N|100 +UTEK|Ultratech, Inc. - Common Stock|Q|N|N|100 +UTHR|United Therapeutics Corporation - Common Stock|Q|N|N|100 +UTIW|UTi Worldwide Inc. - Ordinary Shares|Q|N|N|100 +UTMD|Utah Medical Products, Inc. - Common Stock|Q|N|N|100 +UTSI|UTStarcom Holdings Corp - Ordinary Shares|Q|N|N|100 +UVSP|Univest Corporation of Pennsylvania - Common Stock|Q|N|N|100 +VA|Virgin America Inc. - Common Stock|Q|N|N|100 +VALU|Value Line, Inc. - Common Stock|G|N|N|100 +VALX|Validea Market Legends ETF|G|N|N|100 +VASC|Vascular Solutions, Inc. - Common Stock|Q|N|N|100 +VBFC|Village Bank and Trust Financial Corp. - Common Stock|S|N|D|100 +VBIV|VBI Vaccines Inc. - Common Stock|S|N|N|100 +VBLT|Vascular Biogenics Ltd. - Ordinary Shares|G|N|N|100 +VBND|Vident Core U.S. Bond Strategy Fund|G|N|N|100 +VBTX|Veritex Holdings, Inc. - Common Stock|G|N|N|100 +VCEL|Vericel Corporation - Common Stock|S|N|N|100 +VCIT|Vanguard Intermediate-Term Corporate Bond ETF|G|N|N|100 +VCLT|Vanguard Long-Term Corporate Bond ETF|G|N|N|100 +VCSH|Vanguard Short-Term Corporate Bond ETF|G|N|N|100 +VCYT|Veracyte, Inc. - Common Stock|G|N|N|100 +VDSI|VASCO Data Security International, Inc. - Common Stock|S|N|N|100 +VECO|Veeco Instruments Inc. - Common Stock|Q|N|N|100 +VGGL|Viggle Inc. - Common Stock|S|N|N|100 +VGIT|Vanguard Intermediate -Term Government Bond ETF|G|N|N|100 +VGLT|Vanguard Long-Term Government Bond ETF|G|N|N|100 +VGSH|Vanguard Short-Term Government ETF|G|N|N|100 +VIA|Viacom Inc. - Class A Common Stock|Q|N|N|100 +VIAB|Viacom Inc. - Class B Common Stock|Q|N|N|100 +VIAS|Viasystems Group, Inc. - Common Stock|G|N|N|100 +VICL|Vical Incorporated - Common Stock|Q|N|N|100 +VICR|Vicor Corporation - Common Stock|Q|N|N|100 +VIDE|Video Display Corporation - Common Stock|G|N|D|100 +VIDI|Vident International Equity Fund|G|N|N|100 +VIEW|Viewtran Group, Inc. - Common Stock|Q|N|E|100 +VIIX|Credit Suisse AG - VelocityShares VIX Short Term ETN|G|N|N|100 +VIIZ|Credit Suisse AG - VelocityShares VIX Medium Term ETN|G|N|N|100 +VIMC|Vimicro International Corporation - American depositary shares, each representing four ordinary shares|G|N|N|100 +VIP|VimpelCom Ltd. - American Depositary Shares|Q|N|N|100 +VIRC|Virco Manufacturing Corporation - Common Stock|G|N|N|100 +VISN|VisionChina Media, Inc. - American Depositary Shares, each representing one Common Share|Q|N|N|100 +VIVO|Meridian Bioscience Inc. - Common Stock|Q|N|N|100 +VLCCF|Knightsbridge Shipping Limited - Common Stock|Q|N|N|100 +VLGEA|Village Super Market, Inc. - Class A Common Stock|Q|N|N|100 +VLTC|Voltari Corporation - Common Stock|S|N|D|100 +VLYWW|Valley National Bancorp - Warrants 07/01/2015|S|N|N|100 +VMBS|Vanguard Mortgage-Backed Securities ETF|G|N|N|100 +VNDA|Vanda Pharmaceuticals Inc. - Common Stock|G|N|N|100 +VNET|21Vianet Group, Inc. - American Depositary Shares|Q|N|N|100 +VNOM|Viper Energy Partners LP - Common Unit|Q|N|N|100 +VNQI|Vanguard Global ex-U.S. Real Estate ETF|G|N|N|100 +VNR|Vanguard Natural Resources LLC - Common Units|Q|N|N|100 +VNRAP|Vanguard Natural Resources LLC - 7.875% Series A Cumulative Redeemable Perpetual Preferred Unit|Q|N|N|100 +VNRBP|Vanguard Natural Resources LLC - 7.625% Series B Cumulative Redeemable Perpetual Preferred Unit|Q|N|N|100 +VNRCP|Vanguard Natural Resources LLC - 7.75% Series C Cumulative Redeemable Perpetual Preferred Unit|Q|N|N|100 +VOD|Vodafone Group Plc - American Depositary Shares each representing ten Ordinary Shares|Q|N|N|100 +VOLC|Volcano Corporation - Common Stock|Q|N|N|100 +VONE|Vanguard Russell 1000 ETF|G|N|N|100 +VONG|Vanguard Russell 1000 Growth ETF|G|N|N|100 +VONV|Vanguard Russell 1000 Value ETF|G|N|N|100 +VOXX|VOXX International Corporation - Class A Common Stock|Q|N|N|100 +VPCO|Vapor Corp. - Common Stock|S|N|N|100 +VRA|Vera Bradley, Inc. - Common Stock|Q|N|N|100 +VRML|Vermillion, Inc. - Common Stock|S|N|N|100 +VRNG|Vringo, Inc. - Common Stock|S|N|D|100 +VRNGW|Vringo, Inc. - Warrants|S|N|N|100 +VRNS|Varonis Systems, Inc. - Common Stock|Q|N|N|100 +VRNT|Verint Systems Inc. - Common Stock|Q|N|N|100 +VRSK|Verisk Analytics, Inc. - Class A Common Stock|Q|N|N|100 +VRSN|VeriSign, Inc. - Common Stock|Q|N|N|100 +VRTA|Vestin Realty Mortgage I, Inc. - Common Stock|G|N|N|100 +VRTB|Vestin Realty Mortgage II, Inc. - Common Stock|Q|N|N|100 +VRTS|Virtus Investment Partners, Inc. - Common Stock|Q|N|N|100 +VRTU|Virtusa Corporation - common stock|Q|N|N|100 +VRTX|Vertex Pharmaceuticals Incorporated - Common Stock|Q|N|N|100 +VSAR|Versartis, Inc. - Common Stock|Q|N|N|100 +VSAT|ViaSat, Inc. - Common Stock|Q|N|N|100 +VSCI|Vision-Sciences, Inc. - Common Stock|S|N|N|100 +VSCP|VirtualScopics, Inc. - Common Stock|S|N|N|100 +VSEC|VSE Corporation - Common Stock|Q|N|N|100 +VSTM|Verastem, Inc. - Common Stock|G|N|N|100 +VTAE|Vitae Pharmaceuticals, Inc. - Common Stock|G|N|N|100 +VTHR|Vanguard Russell 3000 ETF|G|N|N|100 +VTIP|Vanguard Short-Term Inflation-Protected Securities Index Fund|G|N|N|100 +VTL|Vital Therapies, Inc. - Common Stock|Q|N|N|100 +VTNR|Vertex Energy, Inc - Common Stock|S|N|N|100 +VTSS|Vitesse Semiconductor Corporation - Common Stock|G|N|N|100 +VTWG|Vanguard Russell 2000 Growth ETF|G|N|N|100 +VTWO|Vanguard Russell 2000 ETF|G|N|N|100 +VTWV|Vanguard Russell 2000 Value ETF|G|N|N|100 +VUSE|Vident Core US Equity ETF|G|N|N|100 +VVUS|VIVUS, Inc. - Common Stock|Q|N|N|100 +VWOB|Vanguard Emerging Markets Government Bond ETF|G|N|N|100 +VWR|VWR Corporation - Common Stock|Q|N|N|100 +VXUS|Vanguard Total International Stock ETF|G|N|N|100 +VYFC|Valley Financial Corporation - Common Stock|S|N|N|100 +WABC|Westamerica Bancorporation - Common Stock|Q|N|N|100 +WAFD|Washington Federal, Inc. - Common Stock|Q|N|N|100 +WAFDW|Washington Federal, Inc. - Warrants 11/14/2018|Q|N|N|100 +WASH|Washington Trust Bancorp, Inc. - Common Stock|Q|N|N|100 +WATT|Energous Corporation - Common Stock|S|N|N|100 +WAVX|Wave Systems Corp. - Class A Common Stock|S|N|N|100 +WAYN|Wayne Savings Bancshares Inc. - Common Stock|G|N|N|100 +WB|Weibo Corporation - American Depositary Share|Q|N|N|100 +WBA|Walgreens Boots Alliance, Inc. - Common Stock|Q|N|N|100 +WBB|Westbury Bancorp, Inc. - Common Stock|S|N|N|100 +WBKC|Wolverine Bancorp, Inc. - Common Stock|S|N|N|100 +WBMD|WebMD Health Corp - Common Stock|Q|N|N|100 +WDC|Western Digital Corporation - Common Stock|Q|N|N|100 +WDFC|WD-40 Company - Common Stock|Q|N|N|100 +WEBK|Wellesley Bancorp, Inc. - Common Stock|S|N|N|100 +WEN|Wendy's Company (The) - Common Stock|Q|N|N|100 +WERN|Werner Enterprises, Inc. - Common Stock|Q|N|N|100 +WETF|WisdomTree Investments, Inc. - Common Stock|Q|N|N|100 +WEYS|Weyco Group, Inc. - Common Stock|Q|N|N|100 +WFBI|WashingtonFirst Bankshares Inc - Common Stock|S|N|N|100 +WFD|Westfield Financial, Inc. - Common Stock|Q|N|N|100 +WFM|Whole Foods Market, Inc. - Common Stock|Q|N|N|100 +WGBS|WaferGen Bio-systems, Inc. - Common Stock|S|N|N|100 +WHF|WhiteHorse Finance, Inc. - Common Stock|Q|N|N|100 +WHFBL|WhiteHorse Finance, Inc. - 6.50% Senior Notes due 2020|Q|N|N|100 +WHLM|Wilhelmina International, Inc. - Common Stock|S|N|N|100 +WHLR|Wheeler Real Estate Investment Trust, Inc. - Common Stock|S|N|N|100 +WHLRP|Wheeler Real Estate Investment Trust, Inc. - Preferred Stock|S|N|N|100 +WHLRW|Wheeler Real Estate Investment Trust, Inc. - Warrants|S|N|N|100 +WIBC|Wilshire Bancorp, Inc. - Common Stock|Q|N|N|100 +WIFI|Boingo Wireless, Inc. - Common Stock|Q|N|N|100 +WILC|G. Willi-Food International, Ltd. - Ordinary Shares|S|N|N|100 +WILN|Wi-LAN Inc - Common Shares|Q|N|N|100 +WIN|Windstream Holdings, Inc. - Common Stock|Q|N|N|100 +WINA|Winmark Corporation - Common Stock|G|N|N|100 +WIRE|Encore Wire Corporation - Common Stock|Q|N|N|100 +WIX|Wix.com Ltd. - Ordinary Shares|Q|N|N|100 +WLB|Westmoreland Coal Company - Common Stock|G|N|N|100 +WLBPZ|Westmoreland Coal Company - Depositary Shares, rep. 1/4 of a share of Ser. A Preferred Stock|G|N|N|100 +WLDN|Willdan Group, Inc. - Common Stock|G|N|N|100 +WLFC|Willis Lease Finance Corporation - Common Stock|G|N|N|100 +WLRH|WL Ross Holding Corp. - Common Stock|S|N|N|100 +WLRHU|WL Ross Holding Corp. - Unit|S|N|N|100 +WLRHW|WL Ross Holding Corp. - Warrant|S|N|N|100 +WMAR|West Marine, Inc. - Common Stock|Q|N|N|100 +WMGI|Wright Medical Group, Inc. - Common Stock|Q|N|N|100 +WMGIZ|Wright Medical Group, Inc. - Contingent Value Right|G|N|N|100 +WOOD|iShares S&P Global Timber & Forestry Index Fund|G|N|N|100 +WOOF|VCA Inc. - Common Stock|Q|N|N|100 +WPCS|WPCS International Incorporated - Common Stock|S|N|D|100 +WPPGY|WPP plc - American Depositary Shares each representing five Ordinary Shares|Q|N|N|100 +WPRT|Westport Innovations Inc - Ordinary Shares|Q|N|N|100 +WRES|Warren Resources, Inc. - Common Stock|Q|N|N|100 +WRLD|World Acceptance Corporation - Common Stock|Q|N|N|100 +WSBC|WesBanco, Inc. - Common Stock|Q|N|N|100 +WSBF|Waterstone Financial, Inc. - Common Stock|Q|N|N|100 +WSCI|WSI Industries Inc. - Common Stock|S|N|N|100 +WSFS|WSFS Financial Corporation - Common Stock|Q|N|N|100 +WSFSL|WSFS Financial Corporation - 6.25% Senior Notes Due 2019|Q|N|N|100 +WSTC|West Corporation - Common Stock|Q|N|N|100 +WSTG|Wayside Technology Group, Inc. - Common Stock|G|N|N|100 +WSTL|Westell Technologies, Inc. - Class A Common Stock|Q|N|N|100 +WTBA|West Bancorporation - Common Stock|Q|N|N|100 +WTFC|Wintrust Financial Corporation - Common Stock|Q|N|N|100 +WTFCW|Wintrust Financial Corporation - Warrants|Q|N|N|100 +WTSL|The Wet Seal, Inc. - Class A Common Stock|Q|N|D|100 +WVFC|WVS Financial Corp. - Common Stock|G|N|N|100 +WVVI|Willamette Valley Vineyards, Inc. - Common Stock|S|N|N|100 +WWD|Woodward, Inc. - Common Stock|Q|N|N|100 +WWWW|Web.com Group, Inc. - Common Stock|Q|N|N|100 +WYNN|Wynn Resorts, Limited - Common Stock|Q|N|N|100 +XBKS|Xenith Bankshares, Inc. - Common Stock|S|N|N|100 +XCRA|Xcerra Corporation - Common Stock|Q|N|N|100 +XENE|Xenon Pharmaceuticals Inc. - Common Shares|G|N|N|100 +XENT|Intersect ENT, Inc. - Common Stock|G|N|N|100 +XGTI|XG Technology, Inc - Common Stock|S|N|N|100 +XGTIW|XG Technology, Inc - Warrants|S|N|N|100 +XIV|Credit Suisse AG - VelocityShares Daily Inverse VIX Short Term ETN|G|N|N|100 +XLNX|Xilinx, Inc. - Common Stock|Q|N|N|100 +XLRN|Acceleron Pharma Inc. - Common Stock|G|N|N|100 +XNCR|Xencor, Inc. - Common Stock|G|N|N|100 +XNET|Xunlei Limited - American Depositary Receipts|Q|N|N|100 +XNPT|XenoPort, Inc. - Common Stock|Q|N|N|100 +XOMA|XOMA Corporation - Common Stock|G|N|N|100 +XONE|The ExOne Company - Common Stock|Q|N|N|100 +XOOM|Xoom Corporation - Common Stock|Q|N|N|100 +XPLR|Xplore Technologies Corp - Common Stock|S|N|N|100 +XRAY|DENTSPLY International Inc. - Common Stock|Q|N|N|100 +XTLB|XTL Biopharmaceuticals Ltd. - American Depositary Shares|S|N|N|100 +XXIA|Ixia - Common Stock|Q|N|N|100 +YDIV|First Trust International Multi-Asset Diversified Income Index Fund|G|N|N|100 +YDLE|Yodlee, Inc. - Common Stock|Q|N|N|100 +YHOO|Yahoo! Inc. - Common Stock|Q|N|N|100 +YNDX|Yandex N.V. - Class A Ordinary Shares|Q|N|N|100 +YOD|You On Demand Holdings, Inc. - Common Stock|S|N|N|100 +YORW|The York Water Company - Common Stock|Q|N|N|100 +YPRO|AdvisorShares YieldPro ETF|G|N|N|100 +YRCW|YRC Worldwide, Inc. - Common Stock|Q|N|N|100 +YY|YY Inc. - American Depositary Shares|Q|N|N|100 +Z|Zillow, Inc. - Class A Common Stock|Q|N|N|100 +ZAGG|ZAGG Inc - Common Stock|Q|N|N|100 +ZAZA|ZaZa Energy Corporation - Common Stock|S|N|N|100 +ZBRA|Zebra Technologies Corporation - Class A Common Stock|Q|N|N|100 +ZEUS|Olympic Steel, Inc. - Common Stock|Q|N|N|100 +ZFGN|Zafgen, Inc. - Common Stock|Q|N|N|100 +ZGNX|Zogenix, Inc. - Common Stock|G|N|N|100 +ZHNE|Zhone Technologies, Inc. - Common Stock|S|N|N|100 +ZINC|Horsehead Holding Corp. - Common Stock|Q|N|N|100 +ZION|Zions Bancorporation - Common Stock|Q|N|N|100 +ZIONW|Zions Bancorporation - Warrants 05/21/2020|Q|N|N|100 +ZIONZ|Zions Bancorporation - Warrants|Q|N|N|100 +ZIOP|ZIOPHARM Oncology Inc - Common Stock|S|N|N|100 +ZIV|Credit Suisse AG - VelocityShares Daily Inverse VIX Medium Term ETN|G|N|N|100 +ZIXI|Zix Corporation - Common Stock|Q|N|N|100 +ZJZZT|NASDAQ TEST STOCK|Q|Y|N|100 +ZLTQ|ZELTIQ Aesthetics, Inc. - Common Stock|Q|N|N|100 +ZN|Zion Oil & Gas Inc - Common Stock|G|N|N|100 +ZNGA|Zynga Inc. - Class A Common Stock|Q|N|N|100 +ZSAN|Zosano Pharma Corporation - Common Stock|G|N|N|100 +ZSPH|ZS Pharma, Inc. - Common Stock|G|N|N|100 +ZU|zulily, inc. - Class A Common Stock|Q|N|N|100 +ZUMZ|Zumiez Inc. - Common Stock|Q|N|N|100 +ZVZZT|NASDAQ TEST STOCK|G|Y|N|100 +ZWZZT|NASDAQ TEST STOCK|S|Y|N|100 +ZXYZ.A|Nasdaq Symbology Test Common Stock|Q|Y|N|100 ZXZZT|NASDAQ TEST STOCK|G|Y|N|100 \ No newline at end of file diff --git a/dg-core/src/main/resources/otherlisted.txt b/dg-core/src/main/resources/otherlisted.txt index 289a9cd7..86c666cb 100644 --- a/dg-core/src/main/resources/otherlisted.txt +++ b/dg-core/src/main/resources/otherlisted.txt @@ -1,5207 +1,5207 @@ -A|Agilent Technologies, Inc. Common Stock|N|A|N|100|N|A -AA|Alcoa Inc. Common Stock|N|AA|N|100|N|AA -AA$|Alcoa Inc. $3.75 Preferred Stock|A|AAp|N|100|N|AA- -AA$B|Alcoa Inc. Depository Shares Representing 1/10th Preferred Convertilble Class B Series 1|N|AApB|N|100|N|AA-B -AAC|AAC Holdings, Inc. Common Stock|N|AAC|N|100|N|AAC -AADR|WCM BNY Mellon Focused Growth ADR ETF|P|AADR|Y|100|N|AADR -AAMC|Altisource Asset Management Corp Com|A|AAMC|N|100|N|AAMC -AAN|Aaron's, Inc. Common Stock|N|AAN|N|100|N|AAN -AAP|Advance Auto Parts Inc Advance Auto Parts Inc W/I|N|AAP|N|100|N|AAP -AAT|American Assets Trust, Inc. Common Stock|N|AAT|N|100|N|AAT -AAU|Almaden Minerals, Ltd. Ordinary Shares (Canada)|A|AAU|N|100|N|AAU -AAV|Advantage Oil & Gas Ltd Ordinary Shares|N|AAV|N|100|N|AAV -AB|Allianceberstein Holding L.P. Units|N|AB|N|100|N|AB -ABB|ABB Ltd Common Stock|N|ABB|N|100|N|ABB -ABBV|AbbVie Inc. Common Stock|N|ABBV|N|100|N|ABBV -ABC|AmerisourceBergen Corporation (Holding Co) Common Stock|N|ABC|N|100|N|ABC -ABEV|Ambev S.A. American Depositary Shares (Each representing 1 Common Share)|N|ABEV|N|100|N|ABEV -ABG|Asbury Automotive Group Inc Common Stock|N|ABG|N|100|N|ABG -ABM|ABM Industries Incorporated Common Stock|N|ABM|N|100|N|ABM -ABR|Arbor Realty Trust Common Stock|N|ABR|N|100|N|ABR -ABR$A|Arbor Realty Trust Preferred Series A|N|ABRpA|N|100|N|ABR-A -ABR$B|Arbor Realty Trust Cumulative Redeemable Preferred Series B|N|ABRpB|N|100|N|ABR-B -ABR$C|Arbor Realty Trust Cumulative Redeemable Preferred Series C|N|ABRpC|N|100|N|ABR-C -ABRN|Arbor Realty Trust 7.375% Senior Notes due 2021|N|ABRN|N|100|N|ABRN -ABT|Abbott Laboratories Common Stock|N|ABT|N|100|N|ABT -ABX|Barrick Gold Corporation Common Stock|N|ABX|N|100|N|ABX -ACC|American Campus Communities Inc Common Stock|N|ACC|N|100|N|ACC -ACCO|Acco Brands Corporation Common Stock|N|ACCO|N|100|N|ACCO -ACE|Ace Limited Common Stock|N|ACE|N|100|N|ACE -ACG|Alliancebernstein Income Fund|N|ACG|N|100|N|ACG -ACH|Aluminum Corporation of China Limited American Depositary Shares|N|ACH|N|100|N|ACH -ACI|Arch Coal, Inc. Common Stock|N|ACI|N|100|N|ACI -ACIM|SPDR MSCI ACWI IMI ETF|P|ACIM|Y|100|N|ACIM -ACM|AECOM Common Stock|N|ACM|N|100|N|ACM -ACMP|Access Midstream Partners, L.P. Common Units Representing Limited Partner Interests|N|ACMP|N|100|N|ACMP -ACN|Accenture plc. Class A Ordinary Shares (Ireland)|N|ACN|N|100|N|ACN -ACP|Avenue Income Credit Strategies Fund Common Shares|N|ACP|N|100|N|ACP -ACRE|Ares Commercial Real Estate Corporation Common Stock|N|ACRE|N|100|N|ACRE -ACT|Actavis plc Ordinary Shares|N|ACT|N|100|N|ACT -ACU|Acme United Corporation. Common Stock|A|ACU|N|100|N|ACU -ACW|Accuride Corporation Common Stock|N|ACW|N|100|N|ACW -ACWV|iShares MSCI All Country World Minimum Volatility Index Fund|P|ACWV|Y|100|N|ACWV -ACY|AeroCentury Corp. Common Stock|A|ACY|N|100|N|ACY -ADC|Agree Realty Corporation Common Stock|N|ADC|N|100|N|ADC -ADGE|American DG Energy Inc. Common Stock|A|ADGE|N|100|N|ADGE -ADK|Adcare Health Systems Inc Common Stock (GA)|A|ADK|N|100|N|ADK -ADK$A|Adcare Health Systems Inc 10.875% Series A Cumulative Redeemable Preferred Stock, no par value per share (GA)|A|ADKpA|N|100|N|ADK-A -ADM|Archer-Daniels-Midland Company Common Stock|N|ADM|N|100|N|ADM -ADPT|Adeptus Health Inc. Common Stock|N|ADPT|N|100|N|ADPT -ADS|Alliance Data Systems Corporation Common Stock|N|ADS|N|100|N|ADS -ADT|ADT Corporation Common Stock|N|ADT|N|100|N|ADT -ADX|Adams Express Company (The)|N|ADX|N|100|N|ADX -ADZ|DB Agriculture Short ETN DB Agriculture Short ETN|P|ADZ|N|100|N|ADZ -AE|Adams Resources & Energy, Inc. Common Stock|A|AE|N|100|N|AE -AEB|AEGON N.V. Perp. Cap. Secs. Floating Rate (Netherlands)|N|AEB|N|100|N|AEB -AEC|Associated Estates Realty Corporation Common Stock|N|AEC|N|100|N|AEC -AED|AEGON N.V. Perp. Cap. Securities (Netherlands)|N|AED|N|100|N|AED -AEE|Ameren Corporation Common Stock|N|AEE|N|100|N|AEE -AEG|AEGON N.V. Common Stock|N|AEG|N|100|N|AEG -AEH|AEGON N.V. Perp. Cap Secs.|N|AEH|N|100|N|AEH -AEK|Aegon NV 8.00% Non-Cumulative Subordinated Notes due 2042|N|AEK|N|100|N|AEK -AEL|American Equity Investment Life Holding Company Common Stock|N|AEL|N|100|N|AEL -AEM|Agnico Eagle Mines Limited Common Stock|N|AEM|N|100|N|AEM -AEO|American Eagle Outfitters, Inc. Common Stock|N|AEO|N|100|N|AEO -AEP|American Electric Power Company, Inc. Common Stock|N|AEP|N|100|N|AEP -AER|Aercap Holdings N.V. Ordinary Shares|N|AER|N|100|N|AER -AES|The AES Corporation Common Stock|N|AES|N|100|N|AES -AES$C|AES Corporation (The) Class C Preferred Stock|N|AESpC|N|100|N|AES-C -AET|Aetna Inc. Common Stock|N|AET|N|100|N|AET -AF|Astoria Financial Corporation Common Stock|N|AF|N|100|N|AF -AF$C|Astoria Financial Corporation Depositary Shs Repstg 1/40th Int Perp Pfd Ser C 6.5%|N|AFpC|N|100|N|AF-C -AFA|American Financial Group, Inc. 5.75% Senior Notes due 2042|N|AFA|N|100|N|AFA -AFB|AllianceBernstein National Municipal Income Fund Inc|N|AFB|N|100|N|AFB -AFC|Allied Capital Corporation Allied Capital Corporation 6.875% Notes due April 15, 2047|N|AFC|N|100|N|AFC -AFG|American Financial Group, Inc. Common Stock|N|AFG|N|100|N|AFG -AFGE|American Financial Group, Inc. 6.25% Subordinated Debentures due 2054|N|AFGE|N|100|N|AFGE -AFK|Market Vectors-Africa Index ETF|P|AFK|Y|100|N|AFK -AFL|AFLAC Incorporated Common Stock|N|AFL|N|100|N|AFL -AFM|Affiliated Managers Group, Inc. 5.250% Senior Notes due 2022|N|AFM|N|100|N|AFM -AFQ|American Financial Group, Inc. 7% Senior Notes due 2050|N|AFQ|N|100|N|AFQ -AFSD|Aflac Incorporated 5.50% Subordinated Debentures due September 15, 2052|N|AFSD|N|100|N|AFSD -AFSI$A|AmTrust Financial Services, Inc. Preferred Series A|N|AFSIpA|N|100|N|AFSI-A -AFSI$B|AmTrust Financial Services, Inc. Depository Shares Representing 1/40th Preferred Series B|N|AFSIpB|N|100|N|AFSI-B -AFSI$C|AmTrust Financial Services, Inc. Depository Shares Representing 1/40th Preferred Series C|N|AFSIpC|N|100|N|AFSI-C -AFT|Apollo Senior Floating Rate Fund Inc. Common Stock|N|AFT|N|100|N|AFT -AFW|American Financial Group, Inc. 6 3/8% Senior Notes due 2042|N|AFW|N|100|N|AFW -AG|First Majestic Silver Corp. Ordinary Shares (Canada)|N|AG|N|100|N|AG -AGA|DB Agriculture Short ETN DB Agriculture Double Short ETN|P|AGA|N|100|N|AGA -AGC|Advent Claymore Convertible Securities and Income Fund Common Shares of Beneficial Interest|N|AGC|N|100|N|AGC -AGCO|AGCO Corporation Common Stock|N|AGCO|N|100|N|AGCO -AGD|Alpine Global Dynamic Dividend Fund Shares of Beneficial Interest|N|AGD|N|100|N|AGD -AGF|DB Agriculture Long ETN DB Agriculture Long ETN|P|AGF|N|100|N|AGF -AGG|iShares Core U.S. Aggregate Bond ETF|P|AGG|Y|100|N|AGG -AGI|Alamos Gold Inc Ordinary Shares|N|AGI|N|100|N|AGI -AGLS|Accuvest Global Long Short ETF|P|AGLS|Y|100|N|AGLS -AGM|Federal Agricultural Mortgage Corporation Common Stock|N|AGM|N|100|N|AGM -AGM$A|Federal Agricultural Mortgage Corporation 5.875% Non-CUmulative Preferred Stock, Series A|N|AGMpA|N|100|N|AGM-A -AGM$B|Federal Agricultural Mortgage Corporation Non Cumulative Preferred Stock Series B|N|AGMpB|N|100|N|AGM-B -AGM$C|Federal Agricultural Mortgage Corporation Preferred Series C Fixed to Fltg|N|AGMpC|N|100|N|AGM-C -AGM.A|Federal Agricultural Mortgage Corporation Common Stock|N|AGM/A|N|100|N|AGM.A -AGN|Allergan, Inc. Common Stock|N|AGN|N|100|N|AGN -AGO|Assured Guaranty Ltd. Common Stock|N|AGO|N|100|N|AGO -AGO$B|Assured Guaranty Ltd.|N|AGOpB|N|100|N|AGO-B -AGO$E|Assured Guaranty Ltd.|N|AGOpE|N|100|N|AGO-E -AGO$F|Assured Guaranty Ltd.|N|AGOpF|N|100|N|AGO-F -AGOL|ETFS Asian Gold Trust|P|AGOL|Y|100|N|AGOL -AGQ|ProShares Ultra Silver|P|AGQ|Y|100|N|AGQ -AGRO|Adecoagro S.A. Common Shares|N|AGRO|N|100|N|AGRO -AGU|Agrium Inc. Common Stock|N|AGU|N|100|N|AGU -AGX|Argan, Inc. Common Stock|N|AGX|N|100|N|AGX -AGZ|iShares Agency Bond ETF|P|AGZ|Y|100|N|AGZ -AHC|A.H. Belo Corporation Common Stock|N|AHC|N|100|N|AHC -AHH|Armada Hoffler Properties, Inc. Common Stock|N|AHH|N|100|N|AHH -AHL|Aspen Insurance Holdings Limited Ordinary Shares|N|AHL|N|100|N|AHL -AHL$A|Aspen Insurance Holdings Limited Perp Pfd Shares (Bermuda)|N|AHLpA|N|100|N|AHL-A -AHL$B|Aspen Insurance Holdings Limited Perp Pref Shs (Bermuda)|N|AHLpB|N|100|N|AHL-B -AHL$C|Aspen Insurance Holdings Limited 5.95% Fixed-to-Floating Rate Perpetual Non-Cumulative Preference Shares|N|AHLpC|N|100|N|AHL-C -AHP|Ashford Hospitality Prime, Inc. Common Stock|N|AHP|N|100|N|AHP -AHS|AMN Healthcare Services Inc AMN Healthcare Services Inc|N|AHS|N|100|N|AHS -AHT|Ashford Hospitality Trust Inc Common Stock|N|AHT|N|100|N|AHT -AHT$A|Ashford Hospitality Trust Inc 8.55% Cum Preferred Series A|N|AHTpA|N|100|N|AHT-A -AHT$D|Ashford Hospitality Trust Inc 8.45% Series D Cumulative Preferred Stock|N|AHTpD|N|100|N|AHT-D -AHT$E|Ashford Hospitality Trust Inc 9.00% Series E Cumulative Preferred Stock|N|AHTpE|N|100|N|AHT-E -AI|Arlington Asset Investment Corp Class A (new)|N|AI|N|100|N|AI -AIA|iShares Asia 50 ETF|P|AIA|Y|100|N|AIA -AIB|Apollo Investment Corporation 6.625% Senior Notes due 2042|N|AIB|N|100|N|AIB -AIF|Apollo Tactical Income Fund Inc. Common Stock|N|AIF|N|100|N|AIF -AIG|American International Group, Inc. New Common Stock|N|AIG|N|100|N|AIG -AIG.W|American International Group, Inc. Warrant expiring January 19, 2021|N|AIG/WS|N|100|N|AIG+ -AIN|Albany International Corporation Common Stock|N|AIN|N|100|N|AIN -AINC|Ashford Inc. Common Stock|A|AINC|N|100|N|AINC -AIR|AAR Corp. Common Stock|N|AIR|N|100|N|AIR -AIRI|Air Industries Group Common Stock|A|AIRI|N|100|N|AIRI -AIT|Applied Industrial Technologies, Inc. Common Stock|N|AIT|N|100|N|AIT -AIV|Apartment Investment and Management Company Common Stock|N|AIV|N|100|N|AIV -AIV$A|Apartment Investment and Management Company Preferred Series Class A|N|AIVpA|N|100|N|AIV-A -AIV$Z|Apartment Investment and Management Company Class Z Cumulative Preferred Stock|N|AIVpZ|N|100|N|AIV-Z -AIW|Arlington Asset Investment Corp 6.625% Notes due 2023|N|AIW|N|100|N|AIW -AIY|Apollo Investment Corporation 6.875% Senior Notes due 2043|N|AIY|N|100|N|AIY -AIZ|Assurant, Inc. Common Stock|N|AIZ|N|100|N|AIZ -AJG|Arthur J. Gallagher & Co. Common Stock|N|AJG|N|100|N|AJG -AKG|Asanko Gold Inc.|A|AKG|N|100|N|AKG -AKO.A|Embotelladora Andina S.A. Common Stock|N|AKO/A|N|100|N|AKO.A -AKO.B|Embotelladora Andina S.A. Common Stock|N|AKO/B|N|100|N|AKO.B -AKP|Alliance California Municipal Income Fund Inc|N|AKP|N|100|N|AKP -AKR|Acadia Realty Trust Common Stock|N|AKR|N|100|N|AKR -AKS|AK Steel Holding Corporation Common Stock|N|AKS|N|100|N|AKS -AL|Air Lease Corporation Class A Common Stock|N|AL|N|100|N|AL -ALB|Albemarle Corporation Common Stock|N|ALB|N|100|N|ALB -ALD|WisdomTree Asia Local Debt Fund ETF|P|ALD|Y|100|N|ALD -ALDW|Alon USA Partners, LP Common Units representing Limited Partner Interests|N|ALDW|N|100|N|ALDW -ALE|Allete, Inc.|N|ALE|N|100|N|ALE -ALEX|Alexander & Baldwin, Inc. Common Stock|N|ALEX|N|100|N|ALEX -ALFA|AlphaClone Alternative Alpha ETF|P|ALFA|Y|100|N|ALFA -ALG|Alamo Group, Inc. Common Stock|N|ALG|N|100|N|ALG -ALJ|Alon USA Energy, Inc. common stick|N|ALJ|N|100|N|ALJ -ALK|Alaska Air Group, Inc. Common Stock|N|ALK|N|100|N|ALK -ALL|Allstate Corporation (The) Common Stock|N|ALL|N|100|N|ALL -ALL$A|Allstate Corporation (The) Dep Shs Repstg 1/1000th Perp Pfd Ser A|N|ALLpA|N|100|N|ALL-A -ALL$B|Allstate Corporation (The) 5.100% Fixed-to-Floating Rate Subordinated Debentures due 2053|N|ALLpB|N|100|N|ALL-B -ALL$C|Allstate Corporation (The) Dep Shs Repstg 1/1000th Int Shs Pfd Stk Ser C|N|ALLpC|N|100|N|ALL-C -ALL$D|The Allstate Corporation Leopards Each Representing A 1/1000th Interest In A Share Of Fixed Rate Noncumulative Perpetual Preferred Stock Series D|N|ALLpD|N|100|N|ALL-D -ALL$E|Allstate Corporation Depositary Shares Representing 1/1000th Perpetual Preferred Series E|N|ALLpE|N|100|N|ALL-E -ALL$F|Allstate Corporation (The) Leopards Dep Shares Representing 1/1000th Perp Pfd|N|ALLpF|N|100|N|ALL-F -ALLE|Allegion plc Ordinary Shares|N|ALLE|N|100|N|ALLE -ALLY|Ally Financial Inc. Common Stock|N|ALLY|N|100|N|ALLY -ALLY$A|GMAC Capital Trust I Fixed Rate Floating Rate Trust Preferred Securities, Series 2|N|ALLYpA|N|100|N|ALLY-A -ALLY$B|Ally Financial Inc Fixed Rate Floating Rate Perpetual Preferred Stock, Series A|N|ALLYpB|N|100|N|ALLY-B -ALN|American Lorain Corporation Common Stock|A|ALN|N|100|N|ALN -ALP$N|Alabama Power Company Preferred Stock|N|ALPpN|N|100|N|ALP-N -ALP$O|Alabama Power Company Preferred Stock|N|ALPpO|N|100|N|ALP-O -ALP$P|Alabama Power Company 5.30% Cl A Pfd Stk|N|ALPpP|N|100|N|ALP-P -ALR|Alere Inc. Common Stock|N|ALR|N|100|N|ALR -ALR$B|Alere Inc. Inverness Medical Innovations, Inc. Series B Convertible Perpetual Preferred Stock|N|ALRpB|N|10|N|ALR-B -ALSN|Allison Transmission Holdings, Inc. Common Stock|N|ALSN|N|100|N|ALSN -ALTL|RBS US Large Cap Alternator Exchange Traded Note|P|ALTL|N|100|N|ALTL -ALTS|ProShares Morningstar Alternatives Solution ETF|P|ALTS|Y|100|N|ALTS -ALTV|Alteva|A|ALTV|N|100|N|ALTV -ALU|Alcatel-Lucent Common Stock|N|ALU|N|100|N|ALU -ALV|Autoliv, Inc. Common Stock|N|ALV|N|100|N|ALV -ALX|Alexander's, Inc. Common Stock|N|ALX|N|100|N|ALX -AM|Antero Midstream Partners LP Common Units representing limited partner interests|N|AM|N|100|N|AM -AMBR|Amber Road, Inc. Common Stock|N|AMBR|N|100|N|AMBR -AMC|AMC Entertainment Holdings, Inc. Class A Common Stock|N|AMC|N|100|N|AMC -AMCO|Armco Metals Holdings, Inc. Common Stock|A|AMCO|N|100|N|AMCO -AME|AMETEK, Inc.|N|AME|N|100|N|AME -AMFW|AMEC Foster Wheeler plc American Depositary Shares|N|AMFW|N|100|N|AMFW -AMG|Affiliated Managers Group, Inc. Common Stock|N|AMG|N|100|N|AMG -AMH|American Homes 4 Rent Common Shares of Beneficial Interest|N|AMH|N|100|N|AMH -AMH$A|American Homes 4 Rent Participating Preferred Shares Series A|N|AMHpA|N|100|N|AMH-A -AMH$B|American Homes 4 Rent 5% Series B Participating Preferred Shares of Beneficial Interest|N|AMHpB|N|100|N|AMH-B -AMH$C|American Homes 4 Rent Participating Pfd Ser C|N|AMHpC|N|100|N|AMH-C -AMID|American Midstream Partners, LP Common Units representing Limited Partner Interests|N|AMID|N|100|N|AMID -AMJ|JPMorgan Chase Capital XVI JP Morgan Alerian MLP ETN|P|AMJ|N|100|N|AMJ -AMLP|Alerian MLP ETF|P|AMLP|Y|100|N|AMLP -AMP|Ameriprise Financial, Inc. Common Stock|N|AMP|N|100|N|AMP -AMPE|Ampio Pharmaceuticals, Inc.|A|AMPE|N|100|N|AMPE -AMPS|iShares Utilities Bond ETF|P|AMPS|Y|100|N|AMPS -AMRC|Ameresco, Inc. Class A Common Stock|N|AMRC|N|100|N|AMRC -AMRE|AmREIT, Inc. Common stock|N|AMRE|N|100|N|AMRE -AMS|American Shared Hospital Services Common Stock|A|AMS|N|100|N|AMS -AMT|American Tower Corporation (REIT) Common Stock|N|AMT|N|100|N|AMT -AMT$A|American Tower Corporation (REIT) Pfd Conv Ser A|N|AMTpA|N|100|N|AMT-A -AMTD|TD Ameritrade Holding Corporation Common Stock|N|AMTD|N|100|N|AMTD -AMTG|Apollo Residential Mortgage, Inc. Common Stock|N|AMTG|N|100|N|AMTG -AMTG$A|Apollo Residential Mortgage, Inc. Pfd Shs Series A (US)|N|AMTGpA|N|100|N|AMTG-A -AMU|ETRACS Alerian MLP Index ETN|P|AMU|N|100|N|AMU -AMX|America Movil, S.A.B. de C.V. American Depository Receipt Series L|N|AMX|N|100|N|AMX -AMZA|InfraCap MLP ETF|P|AMZA|Y|100|N|AMZA -AMZG|American Eagle Energy Corporation. Common Stock|A|AMZG|N|100|N|AMZG -AN|AutoNation, Inc. Common Stock|N|AN|N|100|N|AN -AND|Global X FTSE Andean 40 ETF|P|AND|Y|100|N|AND -ANET|Arista Networks, Inc. Common Stock|N|ANET|N|100|N|ANET -ANF|Abercrombie & Fitch Company Common Stock|N|ANF|N|100|N|ANF -ANFI|Amira Nature Foods Ltd Ordinary Shares|N|ANFI|N|100|N|ANFI -ANGL|Market Vectors Fallen Angel High Yield Bond|P|ANGL|Y|100|N|ANGL -ANH|Anworth Mortgage Asset Corporation Common Stock|N|ANH|N|100|N|ANH -ANH$A|Anworth Mortgage Asset Corporation Series A Preferred Stock|N|ANHpA|N|100|N|ANH-A -ANH$B|Anworth Mortgage Asset Corporation Preferred Stock Series B 6.25%|N|ANHpB|N|100|N|ANH-B -ANN|ANN INC. Common Stock|N|ANN|N|100|N|ANN -ANR|Alpha Natural Resources, inc. comm stock|N|ANR|N|100|N|ANR -ANTM|Anthem, Inc. Common Stock|N|ANTM|N|100|N|ANTM -ANV|Allied Nevada Gold Corp.|A|ANV|N|100|N|ANV -ANW|Aegean Marine Petroleum Network Inc. Common Stock|N|ANW|N|100|N|ANW -AOA|iShares Aggressive Allocation ETF|P|AOA|Y|100|N|AOA -AOD|Alpine Total Dynamic Dividend Fund Common Stock|N|AOD|N|100|N|AOD -AOI|Alliance One International, Inc. Common Stock|N|AOI|N|100|N|AOI -AOK|iShares Conservative Allocation ETF|P|AOK|Y|100|N|AOK -AOL|AOL Inc. AOL Inc. Common Stock|N|AOL|N|100|N|AOL -AOM|iShares Moderate Allocation ETF|P|AOM|Y|100|N|AOM -AON|Aon plc Class A Ordinary Shares (UK)|N|AON|N|100|N|AON -AOR|iShares Growth Allocation ETF|P|AOR|Y|100|N|AOR -AOS|A.O. Smith Corporation Common Stock|N|AOS|N|100|N|AOS -AP|Ampco-Pittsburgh Corporation Common Stock|N|AP|N|100|N|AP -APA|Apache Corporation Common Stock|N|APA|N|100|N|APA -APAM|Artisan Partners Asset Management Inc. Class A Common Stock|N|APAM|N|100|N|APAM -APB|Asia Pacific Fund, Inc. (The)|N|APB|N|100|N|APB -APC|Anadarko Petroleum Corporation Common Stock|N|APC|N|100|N|APC -APD|Air Products and Chemicals, Inc. Common Stock|N|APD|N|100|N|APD -APF|Morgan Stanley Asia-Pacific Fund, Inc.|N|APF|N|100|N|APF -APH|Amphenol Corporation Common Stock|N|APH|N|100|N|APH -API|Advanced Photonix, Inc. Class A Common Stock|A|API|N|100|N|API -APL|Atlas Pipeline Partners, L.P. Common Units, No Par Value|N|APL|N|100|N|APL -APL$E|Atlas Pipeline Partners, L.P. Cumulative Redeemable Perpetual Preferred Units Class E|N|APLpE|N|100|N|APL-E -APO|Apollo Global Management, LLC Class A Common Shares Representing Class A Limitied Liability Company Interests|N|APO|N|100|N|APO -APP|American Apparel Inc Common Stock|A|APP|N|100|N|APP -APT|Alpha Pro Tech, Ltd. Common Stock|A|APT|N|100|N|APT -APTS|Preferred Apartment Communities, Inc. Common Stock|A|APTS|N|100|N|APTS -APU|AmeriGas Partners, L.P. Common Stock|N|APU|N|100|N|APU -AQQ|American Spectrum Realty, Inc. Common Stock|A|AQQ|N|100|N|AQQ -AR|Antero Resources Corporation Common Stock|N|AR|N|100|N|AR -ARC|ARC Document Solutions, Inc. Common Stock|N|ARC|N|100|N|ARC -ARCO|Arcos Dorados Holdings Inc. Class A Shares|N|ARCO|N|100|N|ARCO -ARCX|Arc Logistic Partners LP Common Units representing limited partner interest|N|ARCX|N|100|N|ARCX -ARDC|Ares Dynamic Credit Allocation Fund, Inc. Common Shares|N|ARDC|N|100|N|ARDC -ARE|Alexandria Real Estate Equities, Inc. Common Stock|N|ARE|N|100|N|ARE -ARE$E|Alexandria Real Estate Equities, Inc. Pfd Ser E|N|AREpE|N|100|N|ARE-E -ARES|Ares Management L.P. Common Units representing Limited Partner Interests|N|ARES|N|100|N|ARES -ARG|Airgas, Inc. Common Stock|N|ARG|N|100|N|ARG -ARGT|Global X MSCI Argentina ETF|P|ARGT|Y|100|N|ARGT -ARH$C|Arch Capital Group Ltd. 6.75% PFD sh S C|N|ARHpC|N|100|N|ARH-C -ARI|Apollo Commercial Real Estate Finance, Inc|N|ARI|N|100|N|ARI -ARI$A|Apollo Commercial Real Estate Finance Cumulative Redeemable Perpetual Preferred Stock Series A|N|ARIpA|N|100|N|ARI-A -ARKG|ARK Genomic Revolution Multi-Sector ETF|P|ARKG|Y|100|N|ARKG -ARKK|ARK Innovation ETF|P|ARKK|Y|100|N|ARKK -ARKQ|ARK Industrial Innovation ETF|P|ARKQ|Y|100|N|ARKQ -ARKW|ARK Web x.0 ETF|P|ARKW|Y|100|N|ARKW -ARL|American Realty Investors, Inc. Common Stock|N|ARL|N|100|N|ARL -ARMF|Ares Multi-Strategy Credit Fund, Inc. Common Stock|N|ARMF|N|100|N|ARMF -ARMK|Aramark Common Stock|N|ARMK|N|100|N|ARMK -ARN|Ares Capital Corporation 7.00% Senior Notes due 2022|N|ARN|N|100|N|ARN -ARO|Aeropostale Inc Common Stock|N|ARO|N|100|N|ARO -ARP|Atlas Resource Partners, L.P. Common Units representing Limited Partner Interests|N|ARP|N|100|N|ARP -ARP$D|Atlas Resource Partners, L.P. CUM RED PERP PDF UNIT CL D %|N|ARPpD|N|100|N|ARP-D -ARPI|American Residential Properties, Inc. Common Stock|N|ARPI|N|100|N|ARPI -ARR|ARMOUR Residential REIT, Inc.|N|ARR|N|100|N|ARR -ARR$A|Armour Residential REIT INC Preferred Series A|N|ARRpA|N|100|N|ARR-A -ARR$B|ARMOUR Residential REIT, Inc. Preferred Series B|N|ARRpB|N|100|N|ARR-B -ARU|Ares Capital Corporation 5.875% Senior Notes due 2022|N|ARU|N|100|N|ARU -ARW|Arrow Electronics, Inc. Common Stock|N|ARW|N|100|N|ARW -ARY|Ares Capital Corporation 7.75% Senior Notes due 2040|N|ARY|N|100|N|ARY -ASA|ASA Gold and Precious Metals Limited|N|ASA|N|100|N|ASA -ASB|Associated Banc-Corp Common Stock|N|ASB|N|100|N|ASB -ASB$B|Associated Banc-Corp Depositary Sh Repstg 1/40th Int Sh Perpetual Pfd Stk Ser B|N|ASBpB|N|100|N|ASB-B -ASB.W|Associated Banc-Corp Warrants|A|ASB/WS|N|100|N|ASB+ -ASC|Ardmore Shipping Corporation Common Stock|N|ASC|N|100|N|ASC -ASEA|Global X Southeast Asia ETF|P|ASEA|Y|100|N|ASEA -ASG|Liberty All-Star Growth Fund, Inc.|N|ASG|N|100|N|ASG -ASGN|On Assignment, Inc. Common Stock|N|ASGN|N|100|N|ASGN -ASH|Ashland Inc. (NEW) Common Stock|N|ASH|N|100|N|ASH -ASHR|Deutsche X-Trackers Harvest CSI 300 China A-Shares ETF|P|ASHR|Y|100|N|ASHR -ASHS|Deutsche X-trackers Harvest CSI 500 China A-Shares Small Cap ETF|P|ASHS|Y|100|N|ASHS -ASM|Avino Silver & Gold Mines Ltd. Common Shares (Canada)|A|ASM|N|100|N|ASM -ASPN|Aspen Aerogels, Inc. Common Stock|N|ASPN|N|100|N|ASPN -ASR|Grupo Aeroportuario del Sureste, S.A. de C.V. Common Stock|N|ASR|N|100|N|ASR -AST|Asterias Biotherapeutics, Inc. Common Series A|A|AST|N|100|N|AST -ASX|Advanced Semiconductor Engineering, Inc. Common Stock|N|ASX|N|100|N|ASX -AT|Atlantic Power Corporation Ordinary Shares (Canada)|N|AT|N|100|N|AT -ATE|Advantest Corporation (Kabushiki Kaisha Advantest) ADS American Depositary Shares|N|ATE|N|100|N|ATE -ATEN|A10 Networks, Inc. Common Stock|N|ATEN|N|100|N|ATEN -ATHM|Autohome Inc. American Depositary Shares, each representing one class A ordinary share.|N|ATHM|N|100|N|ATHM -ATI|Allegheny Technologies Incorporated Common Stock|N|ATI|N|100|N|ATI -ATK|Alliant Techsystems Inc. Common Stock|N|ATK|N|100|N|ATK -ATL|Atlatsa Resources Corporation|A|ATL|N|100|N|ATL -ATLS|Atlas Energy, L.P. Common Units|N|ATLS|N|100|N|ATLS -ATMP|Barclays ETN Plus Select MLP|P|ATMP|N|100|N|ATMP -ATNM|Actinium Pharmaceuticals, Inc. (Delaware) Common Stock|A|ATNM|N|100|N|ATNM -ATO|Atmos Energy Corporation Common Stock|N|ATO|N|100|N|ATO -ATR|AptarGroup, Inc. Common Stock|N|ATR|N|100|N|ATR -ATTO|Atento S.A. Ordinary Shares|N|ATTO|N|100|N|ATTO -ATU|Actuant Corporation Common Stock|N|ATU|N|100|N|ATU -ATV|Acorn International, Inc. ADS|N|ATV|N|100|N|ATV -ATW|Atwood Oceanics, Inc. Common Stock|N|ATW|N|100|N|ATW -AU|AngloGold Ashanti Limited Common Stock|N|AU|N|100|N|AU -AUMN|Golden Minerals Company Common Stock|A|AUMN|N|100|N|AUMN -AUNZ|WisdomTree Australia New Zealand Debt Fund|P|AUNZ|Y|100|N|AUNZ -AUO|AU Optronics Corp American Depositary Shares|N|AUO|N|100|N|AUO -AUQ|AuRico Gold Inc. Ordinary Shares|N|AUQ|N|100|N|AUQ -AUSE|WisdomTree Australia Dividend Index|P|AUSE|Y|100|N|AUSE -AUY|Yamana Gold Inc. Ordinary Shares (Canada)|N|AUY|N|100|N|AUY -AV|Aviva plc Unsponsored ADR (UK)|N|AV|N|100|N|AV -AVA|Avista Corporation Common Stock|N|AVA|N|100|N|AVA -AVAL|Grupo Aval Acciones y Valores S.A. ADR (Each representing 20 preferred shares)|N|AVAL|N|100|N|AVAL -AVB|AvalonBay Communities, Inc. Common Stock|N|AVB|N|100|N|AVB -AVD|American Vanguard Corporation Common Stock ($0.10 Par Value)|N|AVD|N|100|N|AVD -AVG|AVG Technologies N.V. Ordinary Shares|N|AVG|N|100|N|AVG -AVH|Avianca Holdings S.A. American Depositary Shares (Each representing 8 preferred Shares)|N|AVH|N|100|N|AVH -AVIV|Aviv REIT, Inc. Common Stock|N|AVIV|N|100|N|AVIV -AVK|Advent Claymore Convertible Securities and Income Fund|N|AVK|N|100|N|AVK -AVL|Avalon Rare Metals, Inc. Ordinary Shares (Canada)|A|AVL|N|100|N|AVL -AVOL|Avolon Holdings Limited Common Shares|N|AVOL|N|100|N|AVOL -AVP|Avon Products, Inc. Common Stock|N|AVP|N|100|N|AVP -AVT|Avnet, Inc. Common Stock|N|AVT|N|100|N|AVT -AVV|Aviva plc Subordinated Capital Securities due 2041|N|AVV|N|100|N|AVV -AVX|AVX Corporation Common Stock|N|AVX|N|100|N|AVX -AVY|Avery Dennison Corporation Common Stock|N|AVY|N|100|N|AVY -AWF|Alliancebernstein Global High Income Fund|N|AWF|N|100|N|AWF -AWH|Allied World Assurance Company Holdings, AG (Switzerland)|N|AWH|N|100|N|AWH -AWI|Armstrong World Industries Inc Common Stock|N|AWI|N|100|N|AWI -AWK|American Water Works Company, Inc. Common Stock|N|AWK|N|100|N|AWK -AWP|Alpine Global Premier Properties Fund Alpine Global Premier Properties Fund Common Shares of Beneficial Interest|N|AWP|N|100|N|AWP -AWR|American States Water Company Common Stock|N|AWR|N|100|N|AWR -AWX|Avalon Holdings Corporation Common Stock|A|AWX|N|100|N|AWX -AXE|Anixter International Inc. Common Stock|N|AXE|N|100|N|AXE -AXJL|WisdomTree Asia Pacific ex-Japan Total Dividend Fund|P|AXJL|Y|100|N|AXJL -AXJV|iShares MSCI Asia ex Japan Minimum Volatility ETF|P|AXJV|Y|100|N|AXJV -AXL|American Axle & Manufacturing Holdings, Inc. Common Stock|N|AXL|N|100|N|AXL -AXLL|Axiall Corporation Common Stock|N|AXLL|N|100|N|AXLL -AXN|Aoxing Pharmaceutical Company, Inc. New Common Stock|A|AXN|N|100|N|AXN -AXP|American Express Company Common Stock|N|AXP|N|100|N|AXP -AXR|AMREP Corporation Common Stock|N|AXR|N|100|N|AXR -AXS|Axis Capital Holdings Limited Common Stock|N|AXS|N|100|N|AXS -AXS$C|Axis Capital Holdings Limited Preferred Series C (Bermuda)|N|AXSpC|N|100|N|AXS-C -AXS$D|Axis Capital Holdings Limited Preferred Series D (Bermuda)|N|AXSpD|N|100|N|AXS-D -AXTA|Axalta Coating Systems Ltd. Common Shares|N|AXTA|N|100|N|AXTA -AXU|Alexco Resource Corp Common Shares (Canada)|A|AXU|N|100|N|AXU -AXX|Alderon Iron Ore Corp. Ordinary Shares (Canada)|A|AXX|N|100|N|AXX -AYI|Acuity Brands Inc (Holding Company)|N|AYI|N|100|N|AYI -AYN|Alliance New York Municipal Income Fund Inc|N|AYN|N|100|N|AYN -AYR|Aircastle Limited Common Stock|N|AYR|N|100|N|AYR -AYT|iPath GEMS Asia 8 ETN|P|AYT|N|100|N|AYT -AZIA|Global X Central Asia & Mongolia Index ETF|P|AZIA|Y|100|N|AZIA -AZN|Astrazeneca PLC Common Stock|N|AZN|N|100|N|AZN -AZO|AutoZone, Inc. Common Stock|N|AZO|N|100|N|AZO -AZZ|AZZ Incorporated Common Stock|N|AZZ|N|100|N|AZZ -B|Barnes Group, Inc. Common Stock|N|B|N|100|N|B -BA|Boeing Company (The) Common Stock|N|BA|N|100|N|BA -BAA|BANRO CORPORATION Ordinary Shares|A|BAA|N|100|N|BAA -BAB|PowerShares Build America Bond Portfolio|P|BAB|Y|100|N|BAB -BABA|Alibaba Group Holding Limited American Depositary Shares each representing one Ordinary share|N|BABA|N|100|N|BABA -BABS|SPDR Nuveen Barclays Build America Bond ETF|P|BABS|Y|100|N|BABS -BAC|Bank of America Corporation Common Stock|N|BAC|N|100|N|BAC -BAC$D|Bank of America Corporation Depositary Shares Rpstg 1/1000th Interest in Sh of Non Cum Pfd Stk Ser D|N|BACpD|N|100|N|BAC-D -BAC$E|Bank of America Corporation Depositary Sh repstg 1/1000th Perp Pfd Ser E|N|BACpE|N|100|N|BAC-E -BAC$I|Bank Amer Corp Dep Sh Repstg 1/1000th Pfd Ser I|N|BACpI|N|100|N|BAC-I -BAC$L|Bank of America Corporation Non Cumulative Perpetual Conv Pfd Ser L|N|BACpL|N|10|N|BAC-L -BAC$W|Bank of America Corporation Depository Shares Representing 1/1000th Preferred Series W|N|BACpW|N|100|N|BAC-W -BAC$Z|Bank of America Corporation BAC Capital Trust VIII 6% Capital Securities|N|BACpZ|N|100|N|BAC-Z -BAC.A|Bank of America Corporation Class A Warrant expiring January 16, 2019|N|BAC/WS/A|N|100|N|BAC+A -BAC.B|Bank of America Corporation Class B Warrants expiring 10/28/2018|N|BAC/WS/B|N|100|N|BAC+B -BAF|BlackRock Municipal Income Investment Quality Trust|N|BAF|N|100|N|BAF -BAH|Booz Allen Hamilton Holding Corporation Common Stock|N|BAH|N|100|N|BAH -BAK|Braskem SA ADR|N|BAK|N|100|N|BAK -BAL|iPath Bloomberg Cotton Subindex Total Return SM Index ETN|P|BAL|N|100|N|BAL -BALT|Baltic Trading Limited Common Stock|N|BALT|N|100|N|BALT -BAM|Brookfield Asset Management Inc. Common Stock|N|BAM|N|100|N|BAM -BANC|Banc of California, Inc. Common Stock|N|BANC|N|100|N|BANC -BANC$C|Banc of California, Inc. Depositary Shares|N|BANCpC|N|100|N|BANC-C -BAP|Credicorp Ltd. Common Stock|N|BAP|N|100|N|BAP -BAR|Direxion Daily Gold Bull 3X Shares|P|BAR|Y|100|N|BAR -BARL|Morgan Stanley S&P 500 Crude Oil Linked ETNs due July 1, 2031|P|BARL|N|100|N|BARL -BAS|Basic Energy Services, Inc. Common Stock|N|BAS|N|100|N|BAS -BAX|Baxter International Inc. Common Stock|N|BAX|N|100|N|BAX -BBD|Banco Bradesco Sa American Depositary Shares|N|BBD|N|100|N|BBD -BBDO|Banco Bradesco Sa American Depositary Shares (each representing one Common Share)|N|BBDO|N|100|N|BBDO -BBF|BlackRock Municipal Income Investment Trust|N|BBF|N|100|N|BBF -BBG|Bill Barrett Corporation Common Stock|N|BBG|N|100|N|BBG -BBH|Market Vectors Biotech ETF|P|BBH|Y|100|N|BBH -BBK|Blackrock Municipal Bond Trust|N|BBK|N|100|N|BBK -BBL|BHP Billiton plc Sponsored ADR|N|BBL|N|100|N|BBL -BBN|BlackRock Build America Bond Trust Common Shares of Beneficial Interest|N|BBN|N|100|N|BBN -BBRC|EGShares Beyond BRICs ETF|P|BBRC|Y|100|N|BBRC -BBT|BB&T Corporation Common Stock|N|BBT|N|100|N|BBT -BBT$D|BB&T Corporation Depositary Shares Representing 1/1000th Perpetual Preferred Series D|N|BBTpD|N|100|N|BBT-D -BBT$E|BB&T Corporation Depositary Shares Representing 1/1000th Perpetual Preferred Series E|N|BBTpE|N|100|N|BBT-E -BBT$F|BB&T Corporation Depositary Shares Representing 1/1000th Interest Series F Perpetual Preferred|N|BBTpF|N|100|N|BBT-F -BBT$G|BB&T Corporation Depositary Shares Representing 1/1000th Perpetual Preferred Series G|N|BBTpG|N|100|N|BBT-G -BBVA|Banco Bilbao Vizcaya Argentaria S.A. Common Stock|N|BBVA|N|100|N|BBVA -BBW|Build-A-Bear Workshop, Inc. Common Stock|N|BBW|N|100|N|BBW -BBX|BBX Capital Corporation Common Stock|N|BBX|N|100|N|BBX -BBY|Best Buy Co., Inc. Common Stock|N|BBY|N|100|N|BBY -BC|Brunswick Corporation Common Stock|N|BC|N|100|N|BC -BCA|Corpbanca Sponsored Reg S GDR representing Common (Chile)|N|BCA|N|100|N|BCA -BCC|Boise Cascade, L.L.C. Common Stock|N|BCC|N|100|N|BCC -BCE|BCE, Inc. Common Stock|N|BCE|N|100|N|BCE -BCEI|Bonanza Creek Energy, Inc. Common Stock|N|BCEI|N|100|N|BCEI -BCH|Banco De Chile Banco De Chile ADS|N|BCH|N|100|N|BCH -BCHP|EGShares Blue Chip ETF|P|BCHP|Y|100|N|BCHP -BCM|iPath Pure Beta Broad Commodity ETN|P|BCM|N|100|N|BCM -BCO|Brinks Company (The) Common Stock|N|BCO|N|100|N|BCO -BCR|C.R. Bard, Inc. Common Stock|N|BCR|N|100|N|BCR -BCRH|Blue Capital Reinsurance Holdings Ltd. Common Shares|N|BCRH|N|100|N|BCRH -BCS|Barclays PLC Common Stock|N|BCS|N|100|N|BCS -BCS$|Barclays Bank PLC ADR Ser 2 repstg Pref Shs Ser 2 (United Kingdom)|N|BCSp|N|100|N|BCS- -BCS$A|Barclays PLC ADS|N|BCSpA|N|100|N|BCS-A -BCS$C|Barclays PLC American Depositary Shares Series 4|N|BCSpC|N|100|N|BCS-C -BCS$D|Barclays PLC American Depositary Shares (Each representing Non-Cumulative Callable Dollar Preference Shares, Series 5|N|BCSpD|N|100|N|BCS-D -BCV|Bancroft Fund, Ltd.|A|BCV|N|100|N|BCV -BCX|BlackRock Resources Common Shares of Beneficial Interest|N|BCX|N|100|N|BCX -BDC|Belden Inc Common Stock|N|BDC|N|100|N|BDC -BDCL|2xLeveraged Long Exchange Traded Access Securities (E-TRACS) Linked to the Wells Fargo Business Development Company Index due May 24, 2041|P|BDCL|N|100|N|BDCL -BDCS|UBS AG Exchange Traded Access Securities (E TRACS) Linked to the Wells Fargo Business Development Company Index due April 26, 2041|P|BDCS|N|100|N|BDCS -BDD|PowerShares DB Base Metals Double Long ETN|P|BDD|N|100|N|BDD -BDG|PowerShares DB Base Metals Long ETN|P|BDG|N|100|N|BDG -BDJ|Blackrock Enhanced Equity Dividend Trust|N|BDJ|N|100|N|BDJ -BDL|Flanigan's Enterprises, Inc. Common Stock|A|BDL|N|100|N|BDL -BDN|Brandywine Realty Trust Common Stock|N|BDN|N|100|N|BDN -BDN$E|Brandywine Realty Tr Pfd Shs Ben Int Ser E|N|BDNpE|N|100|N|BDN-E -BDR|Blonder Tongue Laboratories, Inc. Common Stock|A|BDR|N|100|N|BDR -BDX|Becton, Dickinson and Company Common Stock|N|BDX|N|100|N|BDX -BEE|Strategic Hotels & Resorts Inc Common Stock|N|BEE|N|100|N|BEE -BEL|Belmond Ltd. Class A Common Stock|N|BEL|N|100|N|BEL -BEN|Franklin Resources, Inc. Common Stock|N|BEN|N|100|N|BEN -BEP|Brookfield Renewable Energy Partners LP Partnership Units (Bermuda)|N|BEP|N|100|N|BEP -BERY|Berry Plastics Group, Inc. Common Stock|N|BERY|N|100|N|BERY -BF.A|Brown Forman Inc Class A Common Stock|N|BF/A|N|100|N|BF.A -BF.B|Brown Forman Inc Class B Common Stock|N|BF/B|N|100|N|BF.B -BFAM|Bright Horizons Family Solutions Inc. Common Stock|N|BFAM|N|100|N|BFAM -BFK|BlackRock Municipal Income Trust|N|BFK|N|100|N|BFK -BFO|Blackrock Florida Municipal 2020 Term Trust|N|BFO|N|100|N|BFO -BFOR|Barron's 400|P|BFOR|Y|100|N|BFOR -BFR|BBVA Banco Frances S.A. Common Stock|N|BFR|N|100|N|BFR -BFS|Saul Centers, Inc. Common Stock|N|BFS|N|100|N|BFS -BFS$C|Saul Centers, Inc. Depositary Shares, each representing 1/100th of a share of 6.875% Series C Cumulative Redeemable Preferred Stock, $0.01 par value|N|BFSpC|N|100|N|BFS-C -BFY|BlackRock New York Municipal Income Trust II|A|BFY|N|100|N|BFY -BFZ|BlackRock California Municipal Income Trust|N|BFZ|N|100|N|BFZ -BG|Bunge Limited Bunge Limited|N|BG|N|100|N|BG -BGB|Blackstone / GSO Strategic Credit Fund Common Shares|N|BGB|N|100|N|BGB -BGC|General Cable Corporation Common Stock|N|BGC|N|100|N|BGC -BGCA|BGC Partners, Inc. 8.125% Senior Notes due 2042|N|BGCA|N|100|N|BGCA -BGE$B|Bge Cap Trust II 6.20% Trust Preferred Securities|N|BGEpB|N|100|N|BGE-B -BGG|Briggs & Stratton Corporation Common Stock|N|BGG|N|100|N|BGG -BGH|Babson Capital Global Short Duration High Yield Fund Common Shares of Beneficial Interests|N|BGH|N|100|N|BGH -BGI|Birks Group Inc. Common Stock|A|BGI|N|100|N|BGI -BGR|BlackRock Energy and Resources Trust|N|BGR|N|100|N|BGR -BGS|B&G Foods, Inc. B&G Foods, Inc. Common Stock|N|BGS|N|100|N|BGS -BGSF|BG Staffing Inc Common Stock|A|BGSF|N|100|N|BGSF -BGT|BlackRock Floating Rate Income Trust|N|BGT|N|100|N|BGT -BGX|Blackstone GSO Long Short Credit Income Fund Common Shares|N|BGX|N|100|N|BGX -BGY|BLACKROCK INTERNATIONAL, LTD. Blackrock International Real Estate Fund, Inc.|N|BGY|N|100|N|BGY -BH|Biglari Holdings Inc.|N|BH|N|10|N|BH -BHB|Bar Harbor Bankshares, Inc. Common Stock|A|BHB|N|100|N|BHB -BHE|Benchmark Electronics, Inc. Common Stock|N|BHE|N|100|N|BHE -BHI|Baker Hughes Incorporated Common Stock|N|BHI|N|100|N|BHI -BHK|Blackrock Core Bond Trust Blackrock Core Bond Trust|N|BHK|N|100|N|BHK -BHL|Blackrock Defined Opportunity Credit Trust Blackrock Defined Opportunity Credit Trust|N|BHL|N|100|N|BHL -BHLB|Berkshire Hills Bancorp, Inc. Common Stock|N|BHLB|N|100|N|BHLB -BHP|BHP Billiton Limited Common Stock|N|BHP|N|100|N|BHP -BHV|BlackRock Virginia Municipal Bond Trust|A|BHV|N|100|N|BHV -BID|Sotheby's Common Stock|N|BID|N|100|N|BID -BIE|BlackRock Municipal Bond Investment Trust|N|BIE|N|100|N|BIE -BIF|Boulder Growth & Income Fund, Inc.|N|BIF|N|100|N|BIF -BIG|Big Lots, Inc. Common Stock|N|BIG|N|100|N|BIG -BIK|SPDR S&P BRIC 40|P|BIK|Y|100|N|BIK -BIL|SPDR Barclays 1-3 Month T-Bill ETF|P|BIL|Y|100|N|BIL -BIN|Progressive Waste Solutions Ltd. Common Shares|N|BIN|N|100|N|BIN -BIO|Bio-Rad Laboratories, Inc. Class A Common Stock|N|BIO|N|100|N|BIO -BIO.B|Bio-Rad Laboratories, Inc. Class B Common Stock|N|BIO/B|N|100|N|BIO.B -BIOA|BioAmber Inc. Common Stock|N|BIOA|N|100|N|BIOA -BIOA.W|BioAmber Inc. Warrant, expiring May 9, 2017|N|BIOA/WS|N|100|N|BIOA+ -BIP|Brookfield Infrastructure Partners LP Limited Partnership Units|N|BIP|N|100|N|BIP -BIR$A|Berkshire Income Realty, Inc. 9% Series A Preferred Stock|A|BIRpA|N|100|N|BIR-A -BIT|BlackRock Multi-Sector Income Trust Common Shares of Beneficial Interest|N|BIT|N|100|N|BIT -BITA|Bitauto Holdings Limited American Depositary Shares (each representing one ordinary share)|N|BITA|N|100|N|BITA -BIV|Vanguard Intermediate-Term Bond ETF|P|BIV|Y|100|N|BIV -BIZD|Market Vectors BDC Income ETF|P|BIZD|Y|100|N|BIZD -BJK|Market Vectors Gaming ETF|P|BJK|Y|100|N|BJK -BJZ|Blackrock California Municipal 2018 Term Trust Blackrock California Municipal 2018 Term Trust|N|BJZ|N|100|N|BJZ -BK|Bank of New York Mellon Corporation (The) Common Stock|N|BK|N|100|N|BK -BK$C|Bank Of New York Mellon Corporation (The) Dep Shs Repstg 1/4000th Perp Pfd Ser C|N|BKpC|N|100|N|BK-C -BKD|Brookdale Senior Living Inc. Common Stock|N|BKD|N|100|N|BKD -BKE|Buckle, Inc. (The) Common Stock|N|BKE|N|100|N|BKE -BKF|iShares MSCI BRIC Index Fund|P|BKF|Y|100|N|BKF -BKH|Black Hills Corporation Common Stock|N|BKH|N|100|N|BKH -BKJ|Bancorp of New Jersey, Inc Common Stock|A|BKJ|N|100|N|BKJ -BKK|Blackrock Municipal 2020 Term Trust|N|BKK|N|100|N|BKK -BKLN|PowerShares Exchange-Traded Fund Trust ETF|P|BKLN|Y|100|N|BKLN -BKN|BlackRock Investment Quality Municipal Trust Inc. (The)|N|BKN|N|100|N|BKN -BKS|Barnes & Noble, Inc. Common Stock|N|BKS|N|100|N|BKS -BKT|BlackRock Income Trust Inc. (The)|N|BKT|N|100|N|BKT -BKU|BankUnited, Inc. Common Stock|N|BKU|N|100|N|BKU -BLE|BlackRock Municipal Income Trust II|A|BLE|N|100|N|BLE -BLH|Blackrock New York Municipal 2018 Term Trust|N|BLH|N|100|N|BLH -BLJ|Blackrock New Jersey Municipal Bond Trust|A|BLJ|N|100|N|BLJ -BLK|BlackRock, Inc. Common Stock|N|BLK|N|100|N|BLK -BLL|Ball Corporation Common Stock|N|BLL|N|100|N|BLL -BLNG|iPath Pure Beta Precious Metal ETN|P|BLNG|N|100|N|BLNG -BLOX|Infoblox Inc. Common Stock|N|BLOX|N|100|N|BLOX -BLT|Blount International, Inc. Common Stock|N|BLT|N|100|N|BLT -BLV|Vanguard Long-Term Bond ETF|P|BLV|Y|100|N|BLV -BLW|Blackrock Limited Duration Income Trust|N|BLW|N|100|N|BLW -BLX|Banco Latinoamericano de Comercio Exterior, S.A.|N|BLX|N|100|N|BLX -BMA|Banco Macro S.A. ADR (representing Ten Class B Common Shares)|N|BMA|N|100|N|BMA -BME|Blackrock Health Sciences Trust|N|BME|N|100|N|BME -BMI|Badger Meter, Inc. Common Stock|N|BMI|N|100|N|BMI -BML$G|Bank of America Corporation Bank of America Corporation Depositary Shares (Each representing a 1/1200th interest in a share of Floating Rate Non-Cumulative Preferred Stock , Series 1)|N|BMLpG|N|100|N|BML-G -BML$H|Bank of America Corporation Bank of America Corporation Depositary Shares (Each representing a 1/1200th interest in a Share of Floating Rate Non-Cumulative Preferred Stock, Series 2)|N|BMLpH|N|100|N|BML-H -BML$I|Bank of America Corporation Bank of America Corporation Depositary Shares (Each representing a 1/1200th interest in a Share of 6.375% Non-Cumulative Preferred Stock, Series 3)|N|BMLpI|N|100|N|BML-I -BML$J|Bank of America Corporation Bank of America Corporation Depositary Shares (Each representing a 1/1200th interest in a Share of Floating Rate Non-Cumulative Preferred Stock, Series 4)|N|BMLpJ|N|100|N|BML-J -BML$L|Bank of America Corporation Bank of America Corporation Depositary Shares (Each representing a 1/1200th Interest in a Share of Floating Rate Non-Cumulative Preferred Stock, Series 5)|N|BMLpL|N|100|N|BML-L -BMO|Bank Of Montreal Common Stock|N|BMO|N|100|N|BMO -BMR|Biomed Realty Trust Common Stock|N|BMR|N|100|N|BMR -BMS|Bemis Company, Inc. Common Stock|N|BMS|N|100|N|BMS -BMY|Bristol-Myers Squibb Company Common Stock|N|BMY|N|100|N|BMY -BND|Vanguard Total Bond Market ETF|P|BND|Y|100|N|BND -BNJ|BlackRock New Jersey Municipal Income Trust|N|BNJ|N|100|N|BNJ -BNK|C1 Financial, Inc. Common Stock|N|BNK|N|100|N|BNK -BNO|United States Brent Oil Fund, LP ETV|P|BNO|Y|100|N|BNO -BNS|Bank Nova Scotia Halifax Pfd 3 Ordinary Shares|N|BNS|N|100|N|BNS -BNY|BlackRock New York Municipal Income Trust|N|BNY|N|100|N|BNY -BOCA|Banc of California, Inc. Senior Note due 4/15/2020|N|BOCA|N|100|N|BOCA -BOE|Blackrock Global Blackrock Global Opportunities Equity Trust Common Shares of Beneficial Interest|N|BOE|N|100|N|BOE -BOH|Bank of Hawaii Corporation Common Stock|N|BOH|N|100|N|BOH -BOI|Brookfield Mortgage Opportunity Income Fund Inc. Common Stock|N|BOI|N|100|N|BOI -BOIL|ProShares Ultra Bloomberg Natural Gas|P|BOIL|Y|100|N|BOIL -BOM|PowerShares DB Base Metals Double Short ETN|P|BOM|N|100|N|BOM -BOND|PIMCO Total Return Active Exchange-Traded Fund|P|BOND|Y|100|N|BOND -BONE|Bacterin International Holdings, Inc. Common Stock|A|BONE|N|100|N|BONE -BOOT|Boot Barn Holdings, Inc. Common Stock|N|BOOT|N|100|N|BOOT -BORN|China New Borun Corporation American Depositary Shares|N|BORN|N|100|N|BORN -BOS|PowerShares DB Base Metals Short ETN|P|BOS|N|100|N|BOS -BOX|Box, Inc. Class A Common Stock|N|BOX|N|100|N|BOX -BOXC|Brookfield Canada Office Properties|N|BOXC|N|100|N|BOXC -BP|BP p.l.c. Common Stock|N|BP|N|100|N|BP -BPI|Bridgepoint Education, Inc.|N|BPI|N|100|N|BPI -BPK|Blackrock Municipal 2018 Term Trust Blackrock Municipal 2018 Term Trust|N|BPK|N|100|N|BPK -BPL|Buckeye Partners L.P. Common Stock|N|BPL|N|100|N|BPL -BPS|BlackRock Pennsylvania Strategic Municipal Trust (The) Common Shares of Beneficial Interest|A|BPS|N|100|N|BPS -BPT|BP Prudhoe Bay Royalty Trust Common Stock|N|BPT|N|100|N|BPT -BPY|Brookfield Property Partners L.P. Limited Partnership Units|N|BPY|N|100|N|BPY -BPZ|BPZ Resources, Inc Common Stock|N|BPZ|N|100|N|BPZ -BQH|Blackrock New York Municipal Bond Trust Common Shares of Beneficial Interest|N|BQH|N|100|N|BQH -BR|Broadridge Financial Solutions, Inc.Common Stock|N|BR|N|100|N|BR -BRAF|Global X Brazil Financials ETF|P|BRAF|Y|100|N|BRAF -BRAQ|Global X Brazil Consumer ETF|P|BRAQ|Y|100|N|BRAQ -BRAZ|Global X Brazil Mid Cap ETF|P|BRAZ|Y|100|N|BRAZ -BRC|Brady Corporation Common Stock|N|BRC|N|100|N|BRC -BRF|Market Vectors Brazil Small-Cap ETF|P|BRF|Y|100|N|BRF -BRFS|BRF S.A.|N|BRFS|N|100|N|BRFS -BRG|Bluerock Residential Growth REIT, Inc. Class A Common Stock|A|BRG|N|100|N|BRG -BRK.A|Berkshire Hathaway Inc. Common Stock|N|BRK/A|N|1|N|BRK.A -BRK.B|Berkshire Hathaway Inc. New Common Stock|N|BRK/B|N|100|N|BRK.B -BRN|Barnwell Industries, Inc. Common Stock|A|BRN|N|100|N|BRN -BRO|Brown & Brown, Inc. Common Stock|N|BRO|N|100|N|BRO -BRP|Brookfield Residential Properties Inc. Common Stock|N|BRP|N|100|N|BRP -BRS|Bristow Group Inc. Common Stock|N|BRS|N|100|N|BRS -BRSS|Global Brass and Copper Holdings, Inc. Common Stock|N|BRSS|N|100|N|BRSS -BRT|BRT Realty Trust Common Stock|N|BRT|N|100|N|BRT -BRX|Brixmor Property Group Inc. Common Stock|N|BRX|N|100|N|BRX -BRXX|EGShares Brazil Infrastructure ETF|P|BRXX|Y|100|N|BRXX -BRZU|Direxion Daily Brazil Bull 3X Shares|P|BRZU|Y|100|N|BRZU -BSAC|Banco Santander - Chile ADS|N|BSAC|N|100|N|BSAC -BSBR|Banco Santander Brasil SA American Depositary Shares, each representing one unit|N|BSBR|N|100|N|BSBR -BSCF|Guggenheim BulletShares 2015 Corporate Bond ETF|P|BSCF|Y|100|N|BSCF -BSCG|Guggenheim BulletShares 2016 Corporate Bond ETF|P|BSCG|Y|100|N|BSCG -BSCH|Guggenheim BulletShares 2017 Corporate Bond ETF|P|BSCH|Y|100|N|BSCH -BSCI|Guggenheim BulletShares 2018 Corporate Bond ETF|P|BSCI|Y|100|N|BSCI -BSCJ|Guggenheim BulletShares 2019 Corporate Bond ETF|P|BSCJ|Y|100|N|BSCJ -BSCK|Guggenheim BulletShares 2020 Corporate Bond ETF|P|BSCK|Y|100|N|BSCK -BSCL|Guggenheim BulletShares 2021 Corporate Bond ETF|P|BSCL|Y|100|N|BSCL -BSCM|Guggenheim BulletShares 2022 Corporate Bond ETF|P|BSCM|Y|100|N|BSCM -BSCN|Guggenheim BulletShares 2023 Corporate Bond ETF|P|BSCN|Y|100|N|BSCN -BSCO|Guggenheim BulletShares 2024 Corporate Bond ETF|P|BSCO|Y|100|N|BSCO -BSD|BlackRock Strategic Municipal Trust Inc. (The) Common Stock|N|BSD|N|100|N|BSD -BSE|Blackrock New York Municipal Income Quality Trust Common Shares of Beneficial Interest|N|BSE|N|100|N|BSE -BSI|Alon Blue Square Israel Ltd.|N|BSI|N|100|N|BSI -BSJF|Guggenheim BulletShares 2015 High Yield Corporate Bond|P|BSJF|Y|100|N|BSJF -BSJG|Guggenheim BulletShares 2016 High Yield Corporate Bond ETF|P|BSJG|Y|100|N|BSJG -BSJH|Guggenheim BulletShares 2017 High Yield Corporate Bond ETF|P|BSJH|Y|100|N|BSJH -BSJI|Guggenheim BulletShares 2018 High Yield Corporate Bond ETF|P|BSJI|Y|100|N|BSJI -BSJJ|Guggenheim BulletShares 2019 High Yield Corporate Bond ETF|P|BSJJ|Y|100|N|BSJJ -BSJK|Guggenheim BulletShares 2020 High Yield Corporate Bond ETF|P|BSJK|Y|100|N|BSJK -BSJL|Guggenheim BulletShares 2021 High Yield Corporate Bond ETF|P|BSJL|Y|100|N|BSJL -BSJM|Guggenheim BulletShares 2022 High Yield Corporate Bond ETF|P|BSJM|Y|100|N|BSJM -BSL|Blackstone GSO Senior Floating Rate Term Fund Common Shares of Beneficial Interest|N|BSL|N|100|N|BSL -BSMX|Grupo Financiero Santander Mexico S.A. B. de C.V. American Depositary Shares, each representing five Series B shares|N|BSMX|N|100|N|BSMX -BST|BlackRock Science and Technology Trust Common Shares of Beneficial Interest|N|BST|N|100|N|BST -BSV|Vanguard Short-Term Bond ETF|P|BSV|Y|100|N|BSV -BSX|Boston Scientific Corporation Common Stock|N|BSX|N|100|N|BSX -BT|BT Group plc Common Stock|N|BT|N|100|N|BT -BTA|BlackRock Long-Term Municipal Advantage Trust BlackRock Long-Term Municipal Advantage Trust Common Shares of Beneficial Interest|N|BTA|N|100|N|BTA -BTAL|QuantShares U.S. Market Neutral Anti Beta Fund ETF|P|BTAL|Y|100|N|BTAL -BTE|Baytex Energy Corp|N|BTE|N|100|N|BTE -BTF|Boulder Total Return Fund, Inc. Common Stock|N|BTF|N|100|N|BTF -BTG|B2Gold Corp Common shares (Canada)|A|BTG|N|100|N|BTG -BTH|Blyth, Inc. New Common Stock|N|BTH|N|100|N|BTH -BTI|British American Tobacco Industries, p.l.c. Common Stock ADR|A|BTI|N|100|N|BTI -BTN|Ballantyne Strong, Inc. Common Stock|A|BTN|N|100|N|BTN -BTO|John Hancock Financial Opportunities Fund Common Stock|N|BTO|N|100|N|BTO -BTT|BlackRock Municipal Target Term Trust Inc. (The) Common Shares of Beneficial Interest|N|BTT|N|100|N|BTT -BTU|Peabody Energy Corporation Common Stock|N|BTU|N|100|N|BTU -BTX|BioTime, Inc. Common Stock|A|BTX|N|100|N|BTX -BTX.W|BioTime, Inc. Warrant (Expiring 10/1/2018)|A|BTX/WS|N|100|N|BTX+ -BTZ|BlackRock Credit Allocation Income Trust|N|BTZ|N|100|N|BTZ -BUD|Anheuser-Busch Inbev SA Sponsored ADR (Belgium)|N|BUD|N|100|N|BUD -BUI|BlackRock Utility and Infrastructure Trust Common Shares of Beneficial Interest|N|BUI|N|100|N|BUI -BUNL|PowerShares DB German Bund Futures ETN|P|BUNL|N|100|N|BUNL -BUNT|PowerShares DB 3X German Bund Futures ETN|P|BUNT|N|100|N|BUNT -BURL|Burlington Stores, Inc. Common Stock|N|BURL|N|100|N|BURL -BVN|Buenaventura Mining Company Inc.|N|BVN|N|100|N|BVN -BVX|Bovie Medical Corporation Common Stock|A|BVX|N|100|N|BVX -BWA|BorgWarner Inc. Common Stock|N|BWA|N|100|N|BWA -BWC|Babcock Common Stock|N|BWC|N|100|N|BWC -BWG|Legg Mason BW Global Income Opportunities Fund Inc. Common Stock|N|BWG|N|100|N|BWG -BWL.A|Bowl America, Inc. Class A Common Stock|A|BWL/A|N|100|N|BWL.A -BWP|Boardwalk Pipeline Partners LP Common Units|N|BWP|N|100|N|BWP -BWS|Brown Shoe Company, Inc. Common Stock|N|BWS|N|100|N|BWS -BWV|iPath Goldman Sachs Barclays Bank PLC iPath Exchange Traded Notes Linked to the CBOE S&P 500 BuyWrite Index Structured Product|P|BWV|N|100|N|BWV -BWX|SPDR Barclays Intl Treasury Bd|P|BWX|Y|100|N|BWX -BWZ|SPDR Barclays Short Term International Treasury Bond ETF|P|BWZ|Y|100|N|BWZ -BX|The Blackstone Group L.P. Common Units Representing Limited Partnership Interests|N|BX|N|100|N|BX -BXC|Bluelinx Holdings Inc. Common Stock|N|BXC|N|100|N|BXC -BXE|Bellatrix Exploration Ltd Ordinary Shares (Canada)|N|BXE|N|100|N|BXE -BXMT|Blackstone Mortgage Trust, Inc. Common Stock|N|BXMT|N|100|N|BXMT -BXMX|Nuveen S&P 500 Buy-Write Income Fund Common Shares of Beneficial Interest|N|BXMX|N|100|N|BXMX -BXP|Boston Properties, Inc. Common Stock|N|BXP|N|100|N|BXP -BXP$B|Boston Properties, Inc. Depositary Shares, each representing 1/100th of a share of the Issuer's 5.25% Sockeries B Cumulative Redeemable Preferred St|N|BXPpB|N|100|N|BXP-B -BXS|BancorpSouth, Inc. Common Stock|N|BXS|N|100|N|BXS -BYD|Boyd Gaming Corporation Common Stock|N|BYD|N|100|N|BYD -BYLD|iShares Yield Optimized Bond ETF|P|BYLD|Y|100|N|BYLD -BYM|Blackrock Municipal Income Quality Trust Common Shares of Beneficial Interest|N|BYM|N|100|N|BYM -BZC|Breeze-Eastern Corporation Common Stock|A|BZC|N|100|N|BZC -BZF|WisdomTree Brazilian Real Strategy Fund|P|BZF|Y|100|N|BZF -BZH|Beazer Homes USA, Inc. Common Stock|N|BZH|N|100|N|BZH -BZM|BlackRock Maryland Municipal Bond Trust Common shares of beneficial interest|A|BZM|N|100|N|BZM -BZQ|ProShares UltraShort MSCI Brazil Capped|P|BZQ|Y|100|N|BZQ -BZT|Beazer Homes USA, Inc. Tangible Equity Unit|N|BZT|N|100|N|BZT -C|Citigroup, Inc. Common Stock|N|C|N|100|N|C -C$C|Citigroup Inc. Depositary Shares representing 1/1000 Series C Noncumulative Preferred Stock (United States)|N|CpC|N|100|N|C-C -C$J|Citigroup Inc. Dep Shs Repstg 1/1000 Pfd Ser J Fixed/Fltg|N|CpJ|N|100|N|C-J -C$K|Citigroup Inc. Dep Shs Repstg 1/1000th Pfd Ser K|N|CpK|N|100|N|C-K -C$L|Citigroup Inc. Depositary Share representing 1/1000 interest in a share of noncumulative series L|N|CpL|N|100|N|C-L -C$N|Citigroup Capital VIII 7.875% Fixed rate Floating Rate trust Preferred Securities (TruPS)|N|CpN|N|100|N|C-N -C$P|Citigroup Inc. Dep Shs Repstg 1/1000th Pfd Ser AA|N|CpP|N|100|N|C-P -C.A|Citigroup Inc. Warrants Class A expiring January 4, 2019|N|C/WS/A|N|100|N|C+A -C.B|Citigroup Inc. Class B Warant expiring October 28, 2018|N|C/WS/B|N|100|N|C+B -CAB|Cabela's Inc Class A Common Stock|N|CAB|N|100|N|CAB -CACI|CACI International, Inc. Class A Common Stock|N|CACI|N|100|N|CACI -CAE|CAE Inc. Ordinary Shares|N|CAE|N|100|N|CAE -CAF|Morgan Stanley China A Share Fund Inc. Common Stock|N|CAF|N|100|N|CAF -CAFE|iPath Pure Beta Coffee ETN|P|CAFE|N|100|N|CAFE -CAG|ConAgra Foods, Inc. Common Stock|N|CAG|N|100|N|CAG -CAH|Cardinal Health, Inc. Common Stock|N|CAH|N|100|N|CAH -CAJ|Canon, Inc. American Depositary Shares|N|CAJ|N|100|N|CAJ -CAK|CAMAC Energy Inc.|A|CAK|N|100|N|CAK -CALX|Calix, Inc Common Stock|N|CALX|N|100|N|CALX -CAM|Cameron International Corporation Common Stock|N|CAM|N|100|N|CAM -CANE|Teucrium Sugar Fund ETV|P|CANE|Y|100|N|CANE -CANF|Can-Fite Biopharma Ltd Sponsored ADR (Israel)|A|CANF|N|100|N|CANF -CAP|Cai International, Inc. Common Stock|N|CAP|N|100|N|CAP -CAPE|Barclays ETN Schiller CAPE|P|CAPE|N|100|N|CAPE -CAPL|CrossAmerica Partners LP Common Units representing limited partner interests|N|CAPL|N|100|N|CAPL -CAS|Castle (A.M.) & Co. Common Stock|N|CAS|N|100|N|CAS -CAT|Caterpillar, Inc. Common Stock|N|CAT|N|100|N|CAT -CATO|Cato Corporation (The) Class A Common Stock|N|CATO|N|100|N|CATO -CAW|CCA Industries, Inc. Common Stock|A|CAW|N|100|N|CAW -CB|Chubb Corporation (The) Common Stock|N|CB|N|100|N|CB -CBA|ClearBridge American Energy MLP Fund Inc. Common Stock|N|CBA|N|100|N|CBA -CBB|Cincinnati Bell Inc. Common Stock|N|CBB|N|100|N|CBB -CBB$B|Cincinnati Bell Inc. Preferred Stock|N|CBBpB|N|100|N|CBB-B -CBD|Companhia Brasileira de Distribuicao ADS|N|CBD|N|100|N|CBD -CBG|CBRE Group Inc Common Stock Class A|N|CBG|N|100|N|CBG -CBI|Chicago Bridge & Iron Company N.V. Common Stock|N|CBI|N|100|N|CBI -CBK|Christopher & Banks Corporation Common Stock|N|CBK|N|100|N|CBK -CBL|CBL & Associates Properties, Inc. Common Stock|N|CBL|N|100|N|CBL -CBL$D|CBL & Associates Properties, Inc. Dep Shares Repstg 1/10th Preferred Series D|N|CBLpD|N|100|N|CBL-D -CBL$E|CBL & Associates Properties, Inc. Depositary Shs Repstg 1/10 6.625% Ser E Cum Redeemable (Pfd Stk)|N|CBLpE|N|100|N|CBL-E -CBM|Cambrex Corporation Common Stock|N|CBM|N|100|N|CBM -CBND|SPDR Barclays Issuer Scored Corporate Bond ETF|P|CBND|Y|100|N|CBND -CBO|CBO (Listing Market - NYSE - Networks A/E) Common Stock|N|CBO|N|100|Y|CBO -CBON|Market Vectors ChinaAMC China Bond ETF|P|CBON|Y|100|N|CBON -CBPX|Continental Building Products, Inc. Common Stock|N|CBPX|N|100|N|CBPX -CBR|Ciber, Inc. Common Stock|N|CBR|N|100|N|CBR -CBS|CBS Corporation Class B Common Stock|N|CBS|N|100|N|CBS -CBS.A|CBS Corporation CBS Corporation Class A Common Stock|N|CBS/A|N|100|N|CBS.A -CBT|Cabot Corporation Common Stock|N|CBT|N|100|N|CBT -CBU|Community Bank System, Inc. Common Stock|N|CBU|N|100|N|CBU -CBX|CBX (Listing Market NYSE Networks AE) Common Stock|N|CBX|N|100|Y|CBX -CBZ|CBIZ, Inc. Common Stock|N|CBZ|N|100|N|CBZ -CCA|MFS California Municipal Fund Common Shares of Beneficial Interest|A|CCA|N|100|N|CCA -CCC|Calgon Carbon Corporation Common Stock|N|CCC|N|100|N|CCC -CCE|Coca-Cola Enterprises, Inc. Common Stock|N|CCE|N|100|N|CCE -CCF|Chase Corporation Common Stock|A|CCF|N|100|N|CCF -CCG|Campus Crest Communities, Inc. Common Stock|N|CCG|N|100|N|CCG -CCG$A|Campus Crest Communities, Inc. 8.00% Series A Cumulative Redeemable Preferred Stock|N|CCGpA|N|100|N|CCG-A -CCI|Crown Castle International Corp. (REIT) Common Stock|N|CCI|N|100|N|CCI -CCI$A|Crown Castle International Corp. (REIT) Mandatory Conv Pfd Stk Series A|N|CCIpA|N|100|N|CCI-A -CCJ|Cameco Corporation Common Stock|N|CCJ|N|100|N|CCJ -CCK|Crown Holdings, Inc.|N|CCK|N|100|N|CCK -CCL|Carnival Corporation Common Stock|N|CCL|N|100|N|CCL -CCM|Concord Medical Services Holdings Limited ADS (Each represents three ordinary shares)|N|CCM|N|100|N|CCM -CCO|Clear Channel Outdoor Holdings, Inc. Clear Channel Outdoor Holdings, Inc. Class A Common Stock|N|CCO|N|100|N|CCO -CCS|Century Communities, Inc. Common Stock|N|CCS|N|100|N|CCS -CCSC|Country Style Cooking Restaurant Chain Co., Ltd American Depositary Shares, each representing four ordinary shares|N|CCSC|N|100|N|CCSC -CCU|Compania Cervecerias Unidas, S.A. Common Stock|N|CCU|N|100|N|CCU -CCV|Comcast Corporation 5.00% Notes due 2061|N|CCV|N|100|N|CCV -CCX|WisdomTree Commodity Currency Strategy Fund|P|CCX|Y|100|N|CCX -CCXE|WisdomTree Commodity Country Equity Index|P|CCXE|Y|100|N|CCXE -CCZ|Comcast Holdings ZONES|N|CCZ|N|100|N|CCZ -CDE|Coeur Mining, Inc. Common Stock|N|CDE|N|100|N|CDE -CDE.W|Coeur Mining, Inc. Warrant expiring April 16, 2017|N|CDE/WS|N|100|N|CDE+ -CDI|CDI Corporation Common Stock|N|CDI|N|100|N|CDI -CDR|Cedar Realty Trust, Inc. Common Stock|N|CDR|N|100|N|CDR -CDR$B|Cedar Realty Trust, Inc. 7.25% Series B Cumulative Redeemable Preferred Stock|N|CDRpB|N|100|N|CDR-B -CE|Celanese Corporation Celanese Corporation Series A Common Stock|N|CE|N|100|N|CE -CEA|China Eastern Airlines Corporation Ltd. Common Stock|N|CEA|N|100|N|CEA -CEB|Corporate Executive Board Company (The) Common Stock|N|CEB|N|100|N|CEB -CEE|Central Europe, Russia and Turkey Fund, Inc. (The) Common Stock|N|CEE|N|100|N|CEE -CEF|Central Fund of Canada Limited Common Stock|A|CEF|N|100|N|CEF -CEFL|ETRACS Monthly Pay 2X Leveraged Closed-End Fund ETN|P|CEFL|N|100|N|CEFL -CEL|Cellcom Israel, Ltd. Ordinary Shares|N|CEL|N|100|N|CEL -CELP|Cypress Energy Partners, L.P. Common Units representing limited partner interests|N|CELP|N|100|N|CELP -CEM|ClearBridge Energy MLP Fund Inc. Common Stock|N|CEM|N|100|N|CEM -CEMB|iShares Emerging Markets Corporate Bond ETF|Z|CEMB|Y|100|N|CEMB -CEN|Center Coast MLP & Infrastructure Fund Common Shares of Beneficial Interest|N|CEN|N|100|N|CEN -CEO|CNOOC Limited Common Stock|N|CEO|N|100|N|CEO -CEQP|Crestwood Equity Partners LP|N|CEQP|N|100|N|CEQP -CET|Central Securities Corporation Common Stock|A|CET|N|100|N|CET -CEV|Eaton Vance California Municipal Income Trust Shares of Beneficial Interest|A|CEV|N|100|N|CEV -CEW|WisdomTree Emerging Currency Strategy Fund|P|CEW|Y|100|N|CEW -CF|CF Industries Holdings, Inc. Common Stock|N|CF|N|100|N|CF -CFC$A|Countrywide Capital IV (New) 6.75% Trust Pfd Securities|N|CFCpA|N|100|N|CFC-A -CFC$B|Countrywide Capital V (New) 7.00% Capital Securities|N|CFCpB|N|100|N|CFC-B -CFD|Nuveen Diversified Commodity Fund Common Units of Beneficial Interest|A|CFD|N|100|N|CFD -CFG|Citizens Financial Group, Inc. Common Stock|N|CFG|N|100|N|CFG -CFI|Culp, Inc. Common Stock|N|CFI|N|100|N|CFI -CFN|CareFusion Corporation Common Stock|N|CFN|N|100|N|CFN -CFP|Cornerstone Progressive Return Fund Common Shares of beneficial interest|A|CFP|N|100|N|CFP -CFR|Cullen/Frost Bankers, Inc. Common Stock|N|CFR|N|100|N|CFR -CFR$A|Cullen/Frost Bankers, Inc. Perpetual Preferred Series A|N|CFRpA|N|100|N|CFR-A -CFX|Colfax Corporation Common Stock|N|CFX|N|100|N|CFX -CGA|China Green Agriculture, Inc. Common Stock|N|CGA|N|100|N|CGA -CGG|CGG|N|CGG|N|100|N|CGG -CGI|Celadon Group, Inc. Common Stock|N|CGI|N|100|N|CGI -CGW|Guggenheim S&P Global Water|P|CGW|Y|100|N|CGW -CH|Aberdeen Chile Fund, Inc. (The) Common Stock|A|CH|N|100|N|CH -CHA|China Telecom Corp Ltd ADS|N|CHA|N|100|N|CHA -CHD|Church & Dwight Company, Inc. Common Stock|N|CHD|N|100|N|CHD -CHE|Chemed Corp|N|CHE|N|100|N|CHE -CHEP|QuantShares U.S. Market Neutral Value Fund ETF|P|CHEP|Y|100|N|CHEP -CHGG|Chegg, Inc. Common Stock|N|CHGG|N|100|N|CHGG -CHH|Choice Hotels International, Inc. Common Stock|N|CHH|N|100|N|CHH -CHIE|Global X China Energy ETF|P|CHIE|Y|100|N|CHIE -CHII|Global X China Industrials ETF|P|CHII|Y|100|N|CHII -CHIM|Global X China Materials ETF|P|CHIM|Y|100|N|CHIM -CHIQ|Global X China Consumer ETF|P|CHIQ|Y|100|N|CHIQ -CHIX|Global X China Financials ETF|P|CHIX|Y|100|N|CHIX -CHK|Chesapeake Energy Corporation Common Stock|N|CHK|N|100|N|CHK -CHK$D|Chesapeake Energy Corporation Convertible Preferred|N|CHKpD|N|100|N|CHK-D -CHKR|Chesapeake Granite Wash Trust Common Units representing beneficial interests in the Trust|N|CHKR|N|100|N|CHKR -CHL|China Mobile Limited Common Stock|N|CHL|N|100|N|CHL -CHMI|Cherry Hill Mortgage Investment Corporation Common Stock|N|CHMI|N|100|N|CHMI -CHMT|Chemtura Corp. Common Stock|N|CHMT|N|100|N|CHMT -CHN|China Fund, Inc. (The) Common Stock|N|CHN|N|100|N|CHN -CHNA|PowerShares China A-Share Portfolio|P|CHNA|Y|100|N|CHNA -CHNB|Global X GF China Bond ETF|P|CHNB|Y|100|N|CHNB -CHOC|iPath Pure Beta Cocoa ETN|P|CHOC|N|100|N|CHOC -CHS|Chico's FAS, Inc. Common Stock|N|CHS|N|100|N|CHS -CHSP|Chesapeake Lodging Trust Common Shares of Beneficial Interest|N|CHSP|N|100|N|CHSP -CHSP$A|Chesapeake Lodging Trust 7.75% Series A Cumulative Redeemable Preferred Shares|N|CHSPpA|N|100|N|CHSP-A -CHT|Chunghwa Telecom Co., Ltd.|N|CHT|N|100|N|CHT -CHU|China Unicom (Hong Kong) Ltd Common Stock|N|CHU|N|100|N|CHU -CI|Cigna Corporation Common Stock|N|CI|N|100|N|CI -CIA|Citizens, Inc. Class A Common Stock ($1.00 Par)|N|CIA|N|100|N|CIA -CIB|BanColombia S.A. Common Stock|N|CIB|N|100|N|CIB -CIE|Cobalt International Energy, Inc. COBALT INTERNATIONAL ENERGY, INC.|N|CIE|N|100|N|CIE -CIEN|Ciena Corporation Common Stock|N|CIEN|N|100|N|CIEN -CIF|MFS Intermediate High Income Fund Common Stock|N|CIF|N|100|N|CIF -CIG|Comp En De Mn Cemig ADS American Depositary Shares|N|CIG|N|100|N|CIG -CIG.C|Comp En De Mn Cemig ADS American Depositary Receipts|N|CIG/C|N|100|N|CIG.C -CII|Blackrock Capital and Income Fund, Inc.|N|CII|N|100|N|CII -CIK|Credit Suisse Asset Management Income Fund, Inc. Common Stock|A|CIK|N|100|N|CIK -CIM|Chimera Investment Corporation Common Stock|N|CIM|N|100|N|CIM -CIO|City Office REIT, Inc. Common Stock|N|CIO|N|100|N|CIO -CIR|CIRCOR International, Inc. Common Stock|N|CIR|N|100|N|CIR -CIT|CIT Group Inc (DEL) Common Stock|N|CIT|N|100|N|CIT -CIU|iShares Intermediate Credit Bond ETF|P|CIU|Y|100|N|CIU -CIVI|Civitas Solutions, Inc. Common Stock|N|CIVI|N|100|N|CIVI -CIX|CompX International Inc. Common Stock|A|CIX|N|100|N|CIX -CJES|C&J Energy Services, Inc. Common Stock|N|CJES|N|100|N|CJES -CKH|SEACOR Holdings Inc. Common Stock|N|CKH|N|100|N|CKH -CKP|Checkpoint Systms, Inc. Common Stock|N|CKP|N|100|N|CKP -CKX|CKX Lands, Inc. Common Stock|A|CKX|N|100|N|CKX -CL|Colgate-Palmolive Company Common Stock|N|CL|N|100|N|CL -CLA|Capitala Finance Corp. 7.125% Notes due 2021|N|CLA|N|100|N|CLA -CLB|Core Laboratories N.V. Common Stock|N|CLB|N|100|N|CLB -CLC|CLARCOR Inc. Common Stock|N|CLC|N|100|N|CLC -CLD|Cloud Peak Energy Inc Common Stock|N|CLD|N|100|N|CLD -CLDT|Chatham Lodging Trust (REIT) Common Shares of Beneficial Interest|N|CLDT|N|100|N|CLDT -CLF|Cliffs Natural Resources Inc Common Stock|N|CLF|N|100|N|CLF -CLGX|CoreLogic, Inc. Common Stock|N|CLGX|N|100|N|CLGX -CLH|Clean Harbors, Inc. Common Stock|N|CLH|N|100|N|CLH -CLI|Mack-Cali Realty Corporation Common Stock|N|CLI|N|100|N|CLI -CLM|Cornerstone Strategic Value Fund, Inc. New Common Stock|A|CLM|N|100|N|CLM -CLNY|Colony Financial, Inc Common Stock|N|CLNY|N|100|N|CLNY -CLNY$A|Colony Finl Inc Cum Red Perp Pfd Ser A %|N|CLNYpA|N|100|N|CLNY-A -CLNY$B|Colony Financial, Inc Perp Pfd Ser B %|N|CLNYpB|N|100|N|CLNY-B -CLR|Continental Resources, Inc. Common Stock|N|CLR|N|100|N|CLR -CLS|Celestica, Inc. Common Stock|N|CLS|N|100|N|CLS -CLV|Cliffs Natural Resources Inc. Depositary Shares Representing 1/40th Preferred Convertible Series A|N|CLV|N|100|N|CLV -CLW|Clearwater Paper Corporation Common Stock|N|CLW|N|100|N|CLW -CLX|Clorox Company (The) Common Stock|N|CLX|N|100|N|CLX -CLY|iShares 10 Year Credit Bond ETF|P|CLY|Y|100|N|CLY -CM|Canadian Imperial Bank of Commerce Common Stock|N|CM|N|100|N|CM -CMA|Comerica Incorporated Common Stock|N|CMA|N|100|N|CMA -CMA.W|Comerica Incorporated Warrant expiring November 14, 2018|N|CMA/WS|N|100|N|CMA+ -CMBS|iShares CMBS Bond ETF|P|CMBS|Y|100|N|CMBS -CMC|Commercial Metals Company Common Stock|N|CMC|N|100|N|CMC -CMCM|Cheetah Mobile Inc. American Depositary Shares, each representing 10 Class Ordinary Shares|N|CMCM|N|100|N|CMCM -CMD|ProShares UltraShort Bloomberg Commodity|P|CMD|Y|100|N|CMD -CMDT|iShares Commodity Optimized Trust|P|CMDT|Y|100|N|CMDT -CMF|iShares California AMT-Free Muni Bond ETF|P|CMF|Y|100|N|CMF -CMG|Chipotle Mexican Grill, Inc. Common Stock|N|CMG|N|100|N|CMG -CMI|Cummins Inc. Common Stock|N|CMI|N|100|N|CMI -CMK|MFS Intermarket Income Trust I Common Stock|N|CMK|N|100|N|CMK -CMLP|Crestwood Midstream Partners LP|N|CMLP|N|100|N|CMLP -CMN|Cantel Medical Corp. Common Stock|N|CMN|N|100|N|CMN -CMO|Capstead Mortgage Corporation Common Stock|N|CMO|N|100|N|CMO -CMO$E|Capstead Mortgage Corporation Pfd Ser E|N|CMOpE|N|100|N|CMO-E -CMP|Compass Minerals Intl Inc Common Stock|N|CMP|N|100|N|CMP -CMRE|Costamare Inc. Common Stock $0.0001 par value|N|CMRE|N|100|N|CMRE -CMRE$B|Costamare Inc. Perpetual Preferred Stock Series B (Marshall Islands)|N|CMREpB|N|100|N|CMRE-B -CMRE$C|Costamare Inc. Perpetual Preferred Series C (Marshall Islands)|N|CMREpC|N|100|N|CMRE-C -CMS|CMS Energy Corporation Common Stock|N|CMS|N|100|N|CMS -CMS$B|CMS Energy Corporation Preferred Stock|N|CMSpB|N|10|N|CMS-B -CMT|Core Molding Technologies Inc Common Stock|A|CMT|N|100|N|CMT -CMU|MFS Municipal Income Trust Common Stock|N|CMU|N|100|N|CMU -CN|Deutsche X-trackers Harvest MSCI All China ETF|P|CN|Y|100|N|CN -CNA|CNA Financial Corporation Common Stock|N|CNA|N|100|N|CNA -CNC|Centene Corporation Common Stock|N|CNC|N|100|N|CNC -CNCO|Cencosud S.A. American Depositary Shares (Each representing three Common Shares)|N|CNCO|N|100|N|CNCO -CNDA|IQ Canada Small Cap ETF|P|CNDA|Y|100|N|CNDA -CNHI|CNH Industrial N.V. Common Shares|N|CNHI|N|100|N|CNHI -CNI|Canadian National Railway Company Common Stock|N|CNI|N|100|N|CNI -CNK|Cinemark Holdings Inc Cinemark Holdings, Inc. Common Stock|N|CNK|N|100|N|CNK -CNL|Cleco Corporation Common Stock|N|CNL|N|100|N|CNL -CNNX|Cone Midstream Partners LP Common Units representing limited partner interests|N|CNNX|N|100|N|CNNX -CNO|CNO Financial Group, Inc. Common Stock|N|CNO|N|100|N|CNO -CNP|CenterPoint Energy, Inc (Holding Co) Common Stock|N|CNP|N|100|N|CNP -CNQ|Canadian Natural Resources Limited Common Stock|N|CNQ|N|100|N|CNQ -CNR|China Metro-Rural Holdings Limited|A|CNR|N|100|N|CNR -CNS|Cohn & Steers Inc Common Stock|N|CNS|N|100|N|CNS -CNW|Con-Way, Inc. Common Stock|N|CNW|N|100|N|CNW -CNX|CONSOL Energy Inc. Common Stock|N|CNX|N|100|N|CNX -CNXT|Market Vectors ChinaAMC SME-ChNext ETF|P|CNXT|Y|100|N|CNXT -CNY|Market Vectors Chinese Renminbi/USD ETN|P|CNY|N|100|N|CNY -CO|China Cord Blood Corporation Common Stock|N|CO|N|100|N|CO -COBO|ProShares USD Covered Bond|P|COBO|Y|100|N|COBO -CODE|Spansion Inc Common Stock Class A New|N|CODE|N|100|N|CODE -CODI|Compass Diversified Holdings Shares of Beneficial Interest|N|CODI|N|100|N|CODI -COF|Capital One Financial Corporation Common Stock|N|COF|N|100|N|COF -COF$C|Capital One Financial Corp Depository Shares Representing 1/40th Int Perp Pfd Ser C%|N|COFpC|N|100|N|COF-C -COF$D|Capital One Financial Corp Depository Shares Representing 1/40th Interest Perpetual Preferred Series D|N|COFpD|N|100|N|COF-D -COF$P|Capital One Financial Corp Pfd Ser B|N|COFpP|N|100|N|COF-P -COF.W|Capital One Financial Corporation Warrants expiring November 14, 2018|N|COF/WS|N|100|N|COF+ -COG|Cabot Oil & Gas Corporation Common Stock|N|COG|N|100|N|COG -COH|Coach, Inc. Common Stock|N|COH|N|100|N|COH -COL|Rockwell Collins, Inc. Common Stock|N|COL|N|100|N|COL -COO|Cooper Companies, Inc. (The) Common Stock|N|COO|N|100|N|COO -COP|ConocoPhillips Common Stock|N|COP|N|100|N|COP -COPX|Global X Copper Miners ETF|P|COPX|Y|100|N|COPX -COR|CoreSite Realty Corporation Common Stock|N|COR|N|100|N|COR -COR$A|CoreSite Realty Corporation Pfd Ser A|N|CORpA|N|100|N|COR-A -CORN|Teucrium Corn Fund ETV|P|CORN|Y|100|N|CORN -CORP|Pimco Investment Grade Corporate Bond Index Exchange-Traded Fund|P|CORP|Y|100|N|CORP -CORR|CorEnergy Infrastructure Trust, Inc. Common Stock|N|CORR|N|100|N|CORR -COT|Cott Corporation Common Stock|N|COT|N|100|N|COT -COTY|Coty Inc. Class A Common Stock|N|COTY|N|100|N|COTY -COUP|Coupons.com Incorporated Common Stock|N|COUP|N|100|N|COUP -COV|Covidien plc. Ordinary Shares (Ireland)|N|COV|N|100|N|COV -COVR|Cover-All Technologies Inc. Common Stock|A|COVR|N|100|N|COVR -COW|iPath Bloomberg Livestock Total Return Sub-Index ETN|P|COW|N|100|N|COW -CP|Canadian Pacific Railway Limited Common Stock|N|CP|N|100|N|CP -CPA|Copa Holdings, S.A. Copa Holdings, S.A. Class A Common Stock|N|CPA|N|100|N|CPA -CPAC|Cementos Pacasmayo S.A.A. American Depositary Shares, each representing five Common Shares|N|CPAC|N|100|N|CPAC -CPB|Campbell Soup Company Common Stock|N|CPB|N|100|N|CPB -CPE|Callon Petroleum Company Common Stock|N|CPE|N|100|N|CPE -CPE$A|Callon Petroleum Company Preferred Shares Series A 10%|N|CPEpA|N|100|N|CPE-A -CPER|United States Copper Index Fund ETV|P|CPER|Y|100|N|CPER -CPF|Central Pacific Financial Corp New|N|CPF|N|100|N|CPF -CPG|Crescent Point Energy Corporation Ordinary Shares (Canada)|N|CPG|N|100|N|CPG -CPHI|China Pharma Holdings, Inc. Common Stock|A|CPHI|N|100|N|CPHI -CPI|IQ Real Return ETF|P|CPI|Y|100|N|CPI -CPK|Chesapeake Utilities Corporation Common Stock|N|CPK|N|100|N|CPK -CPL|CPFL Energia S.A. CPFL Energia S.A. American Depositary Shares|N|CPL|N|100|N|CPL -CPN|Calpine Corporation Common Stock|N|CPN|N|100|N|CPN -CPS|Cooper-Standard Holdings Inc. Common Stock|N|CPS|N|100|N|CPS -CPT|Camden Property Trust Common Stock|N|CPT|N|100|N|CPT -CQH|Cheniere Energy Partners LP Holdings, LLC Common Shares|A|CQH|N|100|N|CQH -CQP|Cheniere Energy Partners, LP Cheniere Energy Partners, LP Common Units|A|CQP|N|100|N|CQP -CQQQ|Guggenheim China Technology ETF|P|CQQQ|Y|100|N|CQQQ -CR|Crane Company Common Stock|N|CR|N|100|N|CR -CRBN|iShares MSCI ACWI Low Carbon Target ETF|P|CRBN|Y|100|N|CRBN -CRBQ|Global Commodity Equity ETF|P|CRBQ|Y|100|N|CRBQ -CRC|California Resources Corporation Common Stock|N|CRC|N|100|N|CRC -CRCM|Care.com, Inc. Common Stock|N|CRCM|N|100|N|CRCM -CRD.A|Crawford & Company Common Stock|N|CRD/A|N|100|N|CRD.A -CRD.B|Crawford & Company Common Stock|N|CRD/B|N|100|N|CRD.B -CRED|iShares Core U.S. Credit Bond ETF|P|CRED|Y|100|N|CRED -CRF|Cornerstone Total Return Fund, Inc. (The) Common Stock|A|CRF|N|100|N|CRF -CRH|CRH PLC American Depositary Shares|N|CRH|N|100|N|CRH -CRI|Carter's, Inc. Common Stock|N|CRI|N|100|N|CRI -CRK|Comstock Resources, Inc. Common Stock|N|CRK|N|100|N|CRK -CRL|Charles River Laboratories International, Inc. Common Stock|N|CRL|N|100|N|CRL -CRM|Salesforce.com Inc Common Stock|N|CRM|N|100|N|CRM -CRMD|CorMedix Inc Common Stock|A|CRMD|N|100|N|CRMD -CRMD.W|CorMedix Inc Warrant (expiring 3/24/2015)|A|CRMD/WS|N|100|N|CRMD+ -CROC|ProShares UltraShort Australian Dollar|P|CROC|Y|100|N|CROC -CROP|IQ Global Agribusiness Small Cap ETF|P|CROP|Y|100|N|CROP -CRR|Carbo Ceramics, Inc. Common Stock|N|CRR|N|100|N|CRR -CRS|Carpenter Technology Corporation Common Stock|N|CRS|N|100|N|CRS -CRT|Cross Timbers Royalty Trust Common Stock|N|CRT|N|100|N|CRT -CRV|Coast Distribution System, Inc. (The) Common Stock|A|CRV|N|100|N|CRV -CRVP|Crystal Rock Holdings, Inc. Class A Common Stock|A|CRVP|N|100|N|CRVP -CRY|CryoLife, Inc. Common Stock|N|CRY|N|100|N|CRY -CS|Credit Suisse Group American Depositary Shares|N|CS|N|100|N|CS -CSC|Computer Sciences Corporation Common Stock|N|CSC|N|100|N|CSC -CSCB|Credit Suisse Commodity Benchmark ETN|P|CSCB|N|100|N|CSCB -CSCR|Credit Suisse ommodity Rotation ETN|P|CSCR|N|100|N|CSCR -CSD|Guggenheim Spin-Off ETF|P|CSD|Y|100|N|CSD -CSG|Chambers Street Properties Common Shares of Beneficial Interest|N|CSG|N|100|N|CSG -CSH|Cash America International, Inc. Common Stock|N|CSH|N|100|N|CSH -CSI|Cutwater Select Income Fund|N|CSI|N|100|N|CSI -CSJ|iShares 1-3 Year Credit Bond ETF|P|CSJ|Y|100|N|CSJ -CSL|Carlisle Companies Incorporated Common Stock|N|CSL|N|100|N|CSL -CSLS|Credit Suisse Long Short Liquid Index ETN|P|CSLS|N|100|N|CSLS -CSLT|Castlight Health, Inc. Class B Common Stock|N|CSLT|N|100|N|CSLT -CSM|ProShares Large Cap Core Plus|P|CSM|Y|100|N|CSM -CSMA|Credit Suisse AG ETN due October 6, 2020 linked to Credit Suisse Merger Arbitrage Liquid Index|P|CSMA|N|100|N|CSMA -CSMB|Credit Suisse Exchange Trade Notes due March 13, 2031 linked on a Leveraged Basis to the Credit Suisse Merger Arbitrage Liquid Index|P|CSMB|N|100|N|CSMB -CSMN|Market Neutral Global Equity ETN Linked to the HS Market Neutral Index Powered by HOLT due September 15, 2031|P|CSMN|N|100|N|CSMN -CSS|CSS Industries, Inc. Common Stock|N|CSS|N|100|N|CSS -CST|CST Brands, Inc. Common Stock|N|CST|N|100|N|CST -CSTM|Constellium N.V. Ordinary Shares|N|CSTM|N|100|N|CSTM -CSU|Capital Senior Living Corporation Common Stock|N|CSU|N|100|N|CSU -CSV|Carriage Services, Inc. Common Stock|N|CSV|N|100|N|CSV -CSX|CSX Corporation Common Stock|N|CSX|N|100|N|CSX -CTB|Cooper Tire & Rubber Company Common Stock|N|CTB|N|100|N|CTB -CTF|Nuveen Long/Short Commodity Total Return Fund Common Units of Beneficial Interest|A|CTF|N|100|N|CTF -CTL|CenturyLink, Inc. Common Stock|N|CTL|N|100|N|CTL -CTLT|Catalent, Inc. Common Stock|N|CTLT|N|100|N|CTLT -CTNN|iPath Pure Beta Cotton ETN|P|CTNN|N|100|N|CTNN -CTO|Consolidated-Tomoka Land Co. Common Stock ($1.00 Par Value)|A|CTO|N|100|N|CTO -CTP|CTPartners Executive Search Inc. Common Stock|A|CTP|N|100|N|CTP -CTQ|Qwest Corporation 7.375% Notes due 2051|N|CTQ|N|100|N|CTQ -CTR|ClearBridge Energy MLP Total Return Fund Inc. Common Stock|N|CTR|N|100|N|CTR -CTS|CTS Corporation Common Stock|N|CTS|N|100|N|CTS -CTT|CatchMark Timber Trust, Inc. Class A Common Stock|N|CTT|N|100|N|CTT -CTU|Qwest Corporation 7.00% Notes due 2025|N|CTU|N|100|N|CTU -CTV|Qwest Corporation 6.875% Notes due 2054|N|CTV|N|100|N|CTV -CTW|Qwest Corporation 7.50% Notes due 2051|N|CTW|N|100|N|CTW -CTX|Qwest Corporation 7.00% Notes due 2052|N|CTX|N|100|N|CTX -CTY|Qwest Corporation 6.125% Notes due 2053|N|CTY|N|100|N|CTY -CUB|Cubic Corporation Common Stock|N|CUB|N|100|N|CUB -CUBE|CubeSmart Common Shares|N|CUBE|N|100|N|CUBE -CUBE$A|CubeSmart 7.75% Series A Cumulative Redeemable Preferred Shares of Beneficial Interest|N|CUBEpA|N|100|N|CUBE-A -CUBI|Customers Bancorp, Inc Common Stock|N|CUBI|N|100|N|CUBI -CUBS|Customers Bancorp, Inc 6.375% Senior Notes due 2018|N|CUBS|N|100|N|CUBS -CUDA|Barracuda Networks, Inc. Common Stock|N|CUDA|N|100|N|CUDA -CUK|Carnival Plc ADS ADS|N|CUK|N|100|N|CUK -CUO|Continental Materials Corporation Common Stock|A|CUO|N|100|N|CUO -CUPM|iPath Pure Beta Copper ETN|P|CUPM|N|100|N|CUPM -CUR|Neuralstem, Inc. Common Stock|A|CUR|N|100|N|CUR -CURE|Direxion Daily Healthcare Bull 3X Shares|P|CURE|Y|100|N|CURE -CUT|Guggenheim Timber ETF|P|CUT|Y|100|N|CUT -CUZ|Cousins Properties Incorporated Common Stock|N|CUZ|N|100|N|CUZ -CVA|Covanta Holding Corporation Common Stock|N|CVA|N|100|N|CVA -CVB|Lehman ABS Corporation 7.75% Corp Backed Tr Ctfs, Kinder Morgan Debenture-Backed series 2002-6|N|CVB|N|100|N|CVB -CVC|Cablevision Systems Corporation Class A Common Stock|N|CVC|N|100|N|CVC -CVD|Covance Inc. Common Stock|N|CVD|N|100|N|CVD -CVE|Cenovus Energy Inc Common Stock|N|CVE|N|100|N|CVE -CVEO|Civeo Corporation Common Stock|N|CVEO|N|100|N|CVEO -CVG|Convergys Corporation Common Stock|N|CVG|N|100|N|CVG -CVI|CVR Energy Inc. Common Stock|N|CVI|N|100|N|CVI -CVM|Cel-Sci Corporation Common Stock ($0.001 Par Value)|A|CVM|N|100|N|CVM -CVM.W|Cel-Sci Corporation Warrants Exp 10/11/2018|A|CVM/WS|N|100|N|CVM+ -CVO|Cenveo Inc|N|CVO|N|100|N|CVO -CVOL|C Tracks Exchange Traded Notes Based on the Performance of the Citi Volatility Index Total Return Fund|P|CVOL|N|100|N|CVOL -CVR|Chicago Rivet & Machine Co. Common Stock|A|CVR|N|100|N|CVR -CVRR|CVR Refining, LP Common Units Representing Limited Partner Interests|N|CVRR|N|100|N|CVRR -CVS|CVS Health Corporation Common Stock|N|CVS|N|100|N|CVS -CVSL|CVSL Inc. Common Stock|A|CVSL|N|100|N|CVSL -CVT|CVENT, INC. Common Stock|N|CVT|N|100|N|CVT -CVU|CPI Aerostructures, Inc. Common Stock|A|CVU|N|100|N|CVU -CVX|Chevron Corporation Common Stock|N|CVX|N|100|N|CVX -CVY|Guggenheim Multi-Asset Income ETF|P|CVY|Y|100|N|CVY -CW|Curtiss-Wright Corporation Common Stock|N|CW|N|100|N|CW -CWB|SPDR Barclays Convertible Securities ETF|P|CWB|Y|100|N|CWB -CWEI|Clayton Williams Energy, Inc. Common Stock|N|CWEI|N|100|N|CWEI -CWI|SPDR MSCI ACWI ex-US ETF|P|CWI|Y|100|N|CWI -CWT|California Water Service Group Common Stock|N|CWT|N|100|N|CWT -CX|Cemex, S.A.B. de C.V. Sponsored ADR|N|CX|N|100|N|CX -CXA|SPDR Nuveen Barclays California Municipal Bond ETF|P|CXA|Y|100|N|CXA -CXE|MFS High Income Municipal Trust Common Stock|N|CXE|N|100|N|CXE -CXH|MFS Investment Grade Municipal Trust Common Stock|N|CXH|N|100|N|CXH -CXO|Concho Resources Inc. Common Stock|N|CXO|N|100|N|CXO -CXP|Columbia Property Trust, Inc. Common Stock|N|CXP|N|100|N|CXP -CXW|Corrections Corporation of America Common Stock|N|CXW|N|100|N|CXW -CYB|WisdomTree Chinese Yuan Strategy Fund|P|CYB|Y|100|N|CYB -CYD|China Yuchai International Limited Common Stock|N|CYD|N|100|N|CYD -CYH|Community Health Systems, Inc. Common Stock|N|CYH|N|100|N|CYH -CYN|City National Corporation Common Stock|N|CYN|N|100|N|CYN -CYN$C|City National Corporation Depositary Shares Representing 1/40th Perpetual Preferred Series Series C|N|CYNpC|N|100|N|CYN-C -CYN$D|City National Corporation Depositary Shares Representing 1/40th Preferred Series D Fixed/Floating|N|CYNpD|N|100|N|CYN-D -CYNI|Cyan, Inc. Common Stock|N|CYNI|N|100|N|CYNI -CYS|CYS Investments, Inc. Common Stock|N|CYS|N|100|N|CYS -CYS$A|CYS Investments Inc Cumulative Redeemable Preferred Series A|N|CYSpA|N|100|N|CYS-A -CYS$B|CYS Investments, Inc. Preferred Series B|N|CYSpB|N|100|N|CYS-B -CYT|Cytec Industries Inc. Common Stock|N|CYT|N|100|N|CYT -CZA|Guggenheim Mid-Cap Core ETF|P|CZA|Y|100|N|CZA -CZZ|Cosan Limited Class A Common Stock|N|CZZ|N|100|N|CZZ -D|Dominion Resources, Inc. Common Stock|N|D|N|100|N|D -DAC|Danaos Corporation Common Stock|N|DAC|N|100|N|DAC -DAG|DB Agriculture Double Long ETN DB Agriculture Double Long ETN|P|DAG|N|100|N|DAG -DAKP|Dakota Plains Holdings, Inc. Common Stock|A|DAKP|N|100|N|DAKP -DAL|Delta Air Lines, Inc. Common Stock|N|DAL|N|100|N|DAL -DAN|Dana Holding Corporation Common Stock When-Issued|N|DAN|N|100|N|DAN -DANG|E-Commerce China Dangdang Inc. American Depositary Shares, each representing five Class A common shares|N|DANG|N|100|N|DANG -DAR|Darling Ingredients Inc. Common Stock|N|DAR|N|100|N|DAR -DATA|Tableau Software, Inc. Class A Common Stock|N|DATA|N|100|N|DATA -DB|Deutsche Bank AG Common Stock|N|DB|N|100|N|DB -DBA|PowerShares DB Agriculture Fund|P|DBA|Y|100|N|DBA -DBAP|Deutsche X-Trackers MSCI AC Asia Pacific ex Japan Hedged Equity ETF|P|DBAP|Y|100|N|DBAP -DBAW|Deutsche X-trackers MSCI All World ex US Hedged Equity ETF|P|DBAW|Y|100|N|DBAW -DBB|PowerShares DB Base Metals Fund|P|DBB|Y|100|N|DBB -DBBR|Deutsche X-trackers MSCI Brazil Hedged Equity Fund|P|DBBR|Y|100|N|DBBR -DBC|PowerShares DB Commodity Index Trac|P|DBC|Y|100|N|DBC -DBD|Diebold, Incorporated Common Stock|N|DBD|N|100|N|DBD -DBE|PowerShares DB Energy Fund|P|DBE|Y|100|N|DBE -DBEF|Deutsche X-trackers MSCI EAFE Hedged Equity ETF|P|DBEF|Y|100|N|DBEF -DBEM|Deutsche X-trackers MSCI Emerging Markets Hedged Equity ETF|P|DBEM|Y|100|N|DBEM -DBEU|Deutsche X-Trackers MSCI Europe Hedged Equity ETF|P|DBEU|Y|100|N|DBEU -DBEZ|Deutsche X-trackers MSCI EMU Hedged Equity ETF|P|DBEZ|Y|100|N|DBEZ -DBGR|Deutsche X-trackers MSCI Germany Hedged Equity ETF|P|DBGR|Y|100|N|DBGR -DBIZ|AdvisorShares Pring Turner Business Cycle ETF|P|DBIZ|Y|100|N|DBIZ -DBJP|Deutsche X-trackers MSCI Japan Hedged Equity ETF|P|DBJP|Y|100|N|DBJP -DBKO|Deutsche X-trackers MSCI South Korea Hedged Equity ETF|P|DBKO|Y|100|N|DBKO -DBL|DoubleLine Opportunistic Credit Fund Common Shares of Beneficial Interest|N|DBL|N|100|N|DBL -DBMX|Deutsche X-trackers MSCI Mexico Hedged Equity ETF|P|DBMX|Y|100|N|DBMX -DBO|PowerShares DB Oil Fund|P|DBO|Y|100|N|DBO -DBP|PowerShares DB Precious Metals Fund|P|DBP|Y|100|N|DBP -DBS|PowerShares DB Silver Fund|P|DBS|Y|100|N|DBS -DBU|WisdomTree Global ex-US Utility IndexInternational Utilities Sector Fund|P|DBU|Y|100|N|DBU -DBUK|Deutsche X-Trackers MSCI United Kingdom Hedged Equity ETF|P|DBUK|Y|100|N|DBUK -DBV|PowerShares DB G10 Currency Harvest|P|DBV|Y|100|N|DBV -DCA|Virtus Total Return Fund|N|DCA|N|100|N|DCA -DCI|Donaldson Company, Inc. Common Stock|N|DCI|N|100|N|DCI -DCM|NTT DOCOMO, Inc American Depositary Shares|N|DCM|N|100|N|DCM -DCNG|iPath Seasonal Natural Gas ETN|P|DCNG|N|100|N|DCNG -DCO|Ducommun Incorporated Common Stock|N|DCO|N|100|N|DCO -DCT|DCT Industrial Trust Inc Common Stock|N|DCT|N|100|N|DCT -DCUA|Dominion Resources, Inc. Corporate Unit 2013 Series A|N|DCUA|N|100|N|DCUA -DCUB|Dominion Resources, Inc. Corporate Unit 2013 Series B|N|DCUB|N|100|N|DCUB -DCUC|Dominion Resources, Inc. VA New 2014 Series A Corp Unit|N|DCUC|N|100|N|DCUC -DD|E.I. du Pont de Nemours and Company Common Stock|N|DD|N|100|N|DD -DD$A|E.I. du Pont de Nemours and Company Preferred Stock|N|DDpA|N|100|N|DD-A -DD$B|E.I. du Pont de Nemours and Company Preferred Stock|N|DDpB|N|100|N|DD-B -DDC|Dominion Diamond Corporation Common Stock|N|DDC|N|100|N|DDC -DDD|3D Systems Corporation Common Stock|N|DDD|N|100|N|DDD -DDE|Dover Downs Gaming & Entertainment Inc Common Stock|N|DDE|N|100|N|DDE -DDF|Delaware Investments Dividend & Income Fund, Inc. Common Stock|N|DDF|N|100|N|DDF -DDG|ProShares Short Oil & Gas|P|DDG|Y|100|N|DDG -DDM|ProShares Ultra Dow30|P|DDM|Y|100|N|DDM -DDP|DB Commodity DB Commodity Short ETN|P|DDP|N|100|N|DDP -DDR|DDR Corp. Common Stock|N|DDR|N|100|N|DDR -DDR$J|DDR Corporation Dep Shs Repstg 1/20th Pfd Cl J|N|DDRpJ|N|100|N|DDR-J -DDR$K|DDR Corp. DEPOSITARY SH REPSTG 1/20TH PDF CL K % (United States)|N|DDRpK|N|100|N|DDR-K -DDS|Dillard's, Inc. Common Stock|N|DDS|N|100|N|DDS -DDT|Dillard's Capital Trust I|N|DDT|N|100|N|DDT -DE|Deere & Company Common Stock|N|DE|N|100|N|DE -DECK|Deckers Outdoor Corporation Common Stock|N|DECK|N|100|N|DECK -DEE|DB Commodity DB Commodity Double Short ETN|P|DEE|N|100|N|DEE -DEF|Guggenheim Defensive Equity ETF|P|DEF|Y|100|N|DEF -DEFL|PowerShares DB US Deflation ETN|P|DEFL|N|100|N|DEFL -DEG|Etablissements Delhaize Freres et Cie "Le Lion" S.A. Common Stock|N|DEG|N|100|N|DEG -DEI|Douglas Emmett, Inc. Common Stock|N|DEI|N|100|N|DEI -DEJ|Dejour Energy Inc. Ltd Ordinary Shares (Canada) New|A|DEJ|N|100|N|DEJ -DEL|Deltic Timber Corporation Common Stock|N|DEL|N|100|N|DEL -DEM|WisdomTree Emerging Markets High-Yielding Fund|P|DEM|Y|100|N|DEM -DEO|Diageo plc Common Stock|N|DEO|N|100|N|DEO -DES|WisdomTree Trust SmallCap Dividend Fund|P|DES|Y|100|N|DES -DEW|WisdomTree Europe High-Yielding Equity Fund|P|DEW|Y|100|N|DEW -DEX|Delaware Enhanced Global Dividend Common Shares of Beneficial Interest|N|DEX|N|100|N|DEX -DF|Dean Foods Company Common Stock|N|DF|N|100|N|DF -DFE|WisdomTree Europe SmallCap Dividend Fund|P|DFE|Y|100|N|DFE -DFF|Bank of America Corporation MITTS Linked to the Dow Jones Industrial Average|P|DFF|N|100|N|DFF -DFJ|WisdomTree Japan SmallCap Fund|P|DFJ|Y|100|N|DFJ -DFP|Flaherty & Crumrine Dynamic Preferred and Income Fund Inc. Common Stock|N|DFP|N|100|N|DFP -DFS|Discover Financial Services Common Stock|N|DFS|N|100|N|DFS -DFS$B|Discover Financial Services Dep Shs|N|DFSpB|N|100|N|DFS-B -DFT|Dupont Fabros Technology, Inc. Common Stock|N|DFT|N|100|N|DFT -DFT$A|DuPont Fabros Technology Inc CUMULATIVE RED PERP PFD SER A|N|DFTpA|N|100|N|DFT-A -DFT$B|Dupont Fabros Technology, Inc. 7.625% Series B Cumulative Redeemable Perpetual Preferred Stock|N|DFTpB|N|100|N|DFT-B -DG|Dollar General Corporation Common Stock|N|DG|N|100|N|DG -DGAZ|VelocityShares 3X Inverse Natural Gas ETN linked to the S&P GSCI Natural Gas INdex Excess Return|P|DGAZ|N|100|N|DGAZ -DGI|DigitalGlobe, Inc Common Stock|N|DGI|N|100|N|DGI -DGL|PowerShares DB Gold Fund|P|DGL|Y|100|N|DGL -DGP|Deutsche Bank AG PowerShares DB Gold Double Long ETN|P|DGP|N|100|N|DGP -DGRO|iShares Core Dividend Growth ETF|P|DGRO|Y|100|N|DGRO -DGS|WisdomTree Emerging Market SmallCap Fund|P|DGS|Y|100|N|DGS -DGSE|DGSE Companies, Inc. Common Stock|A|DGSE|N|100|N|DGSE -DGT|SPDR Global Dow ETF (based on The Global Dow)|P|DGT|Y|100|N|DGT -DGX|Quest Diagnostics Incorporated Common Stock|N|DGX|N|100|N|DGX -DGZ|Deutsche Bank AG DB Gold Short ETN|P|DGZ|N|100|N|DGZ -DHF|Dreyfus High Yield Strategies Fund Common Stock|N|DHF|N|100|N|DHF -DHG|Deutsche High Income Opportunities Fund, Inc New Common Stock|N|DHG|N|100|N|DHG -DHI|D.R. Horton, Inc. Common Stock|N|DHI|N|100|N|DHI -DHR|Danaher Corporation Common Stock|N|DHR|N|100|N|DHR -DHS|WisdomTree High-Yielding Equity Fund|P|DHS|Y|100|N|DHS -DHT|DHT Holdings, Inc.|N|DHT|N|100|N|DHT -DHX|Dice Holdings, Inc. Common Stock|N|DHX|N|100|N|DHX -DHY|Credit Suisse High Yield Bond Fund Common Stock|A|DHY|N|100|N|DHY -DI|PIMCO Diversified Income Active Exchange-Traded Fund|P|DI|Y|100|N|DI -DIA|SPDR Dow Jones Industrial Average ETF|P|DIA|Y|100|N|DIA -DIAX|Nuveen Dow 30SM Dynamic Overwrite Fund Common Shares of Beneficial Interest|N|DIAX|N|100|N|DIAX -DIG|ProShares Ultra Oil & Gas|P|DIG|Y|100|N|DIG -DIM|WisdomTree International MidCap Dividend Fund|P|DIM|Y|100|N|DIM -DIN|DineEquity, Inc Common Stock|N|DIN|N|100|N|DIN -DIRT|iPath Pure Beta Agriculture ETN|P|DIRT|N|100|N|DIRT -DIS|Walt Disney Company (The) Common Stock|N|DIS|N|100|N|DIS -DIT|AMCON Distributing Company Common Stock|A|DIT|N|100|N|DIT -DIV|Global X Super Dividend ETF|P|DIV|Y|100|N|DIV -DIVA|QuantShares Hedged Dividend Income Fund|P|DIVA|Y|100|N|DIVA -DIVC|Citigroup Inc. C-Tracks ETN Miller/Howard Strategic Dividend Reinvestors Due 9/16/2014|P|DIVC|N|100|N|DIVC -DIVI|AdvisorShares Athena High Dividend ETF|P|DIVI|Y|100|N|DIVI -DIVY|Realty Shares DIVS ETF|P|DIVY|Y|100|N|DIVY -DJCI|E-TRACS Linked to the Bloomberg Commodity Index Total Return due October 31, 2039|P|DJCI|N|100|N|DJCI -DJP|iPath Bloomberg Commodity Index Total Return ETN|P|DJP|N|100|N|DJP -DK|Delek US Holdings, Inc. Common Stock|N|DK|N|100|N|DK -DKL|Delek Logistics Partners, L.P. Common Units representing Limited Partner Interests|N|DKL|N|100|N|DKL -DKS|Dick's Sporting Goods Inc Common Stock|N|DKS|N|100|N|DKS -DKT|Deutsch Bk Contingent Cap Tr V Tr Pfd Secs|N|DKT|N|100|N|DKT -DL|China Distance Education Holdings Limited American Depositary Shares|N|DL|N|100|N|DL -DLA|Delta Apparel, Inc. Common Stock|A|DLA|N|100|N|DLA -DLB|Dolby Laboratories Common Stock|N|DLB|N|100|N|DLB -DLN|WisdomTree LargeCap Dividend Fund|P|DLN|Y|100|N|DLN -DLNG|Dynagas LNG Partners LP Common Units|N|DLNG|N|100|N|DLNG -DLPH|Delphi Automotive plc Ordinary Shares|N|DLPH|N|100|N|DLPH -DLR|Digital Realty Trust, Inc. Common Stock|N|DLR|N|100|N|DLR -DLR$E|Digital Realty Trust, Inc. Redeemable Pfd Ser E|N|DLRpE|N|100|N|DLR-E -DLR$F|Digital Realty Trust, Inc. Preferred Series F|N|DLRpF|N|100|N|DLR-F -DLR$G|Digital Realty Trust, Inc. Preferred Series G|N|DLRpG|N|100|N|DLR-G -DLR$H|Digital Realty Trust, Inc. Redeemable Preferred Stock Series H|N|DLRpH|N|100|N|DLR-H -DLS|WisdomTree International SmallCap Fund|P|DLS|Y|100|N|DLS -DLX|Deluxe Corporation Common Stock|N|DLX|N|100|N|DLX -DM|Dominion Midstream Partners, LP Common Units representing Limited Partner Interests|N|DM|N|100|N|DM -DMB|Dreyfus Municipal Bond Infrastructure Fund, Inc. Common Stock|N|DMB|N|100|N|DMB -DMD|Demand Media Inc. Common Stock|N|DMD|N|100|N|DMD -DMF|Dreyfus Municipal Income, Inc. Common Stock|A|DMF|N|100|N|DMF -DMO|Western Asset Mortgage Defined Opportunity Fund Inc Common Stock|N|DMO|N|100|N|DMO -DNB|Dun & Bradstreet Corporation (The) Common Stock|N|DNB|N|100|N|DNB -DNI|Dividend and Income Fund Common Stock|N|DNI|N|100|N|DNI -DNL|WisdomTree Global ex-U.S. Growth Fund|P|DNL|Y|100|N|DNL -DNN|Denison Mines Corp Ordinary Shares (Canada)|A|DNN|N|100|N|DNN -DNO|United States Short Oil Fund|P|DNO|Y|100|N|DNO -DNOW|NOW Inc. Common Stock|N|DNOW|N|100|N|DNOW -DNP|DNP Select Income Fund, Inc. Common Stock|N|DNP|N|100|N|DNP -DNR|Denbury Resources Inc. Common Stock|N|DNR|N|100|N|DNR -DNY|The Denali Fund Inc|N|DNY|N|100|N|DNY -DO|Diamond Offshore Drilling, Inc. Common Stock|N|DO|N|100|N|DO -DOC|Physicians Realty Trust Common Shares of Beneficial Interest|N|DOC|N|100|N|DOC -DOD|Deutsche Bank AG ELEMENTS Dogs of the Dow Total Return Index Note ELEMENTS Dogs of the Dow Linked to the Dow Jones High Yield Select 10 Total Return Index due November 14, 2022|P|DOD|N|100|N|DOD -DOG|ProShares Short Dow30|P|DOG|Y|100|N|DOG -DOL|WisdomTree International LargeCap Dividend Fund|P|DOL|Y|100|N|DOL -DOM|Dominion Resources Black Warrior Trust Common Stock|N|DOM|N|100|N|DOM -DON|WisdomTree MidCap Dividend Fund|P|DON|Y|100|N|DON -DOO|WisdomTree International Dividend Top 100 Fund|P|DOO|Y|100|N|DOO -DOOR|Masonite International Corporation Ordinary Shares (Canada)|N|DOOR|N|100|N|DOOR -DOV|Dover Corporation Common Stock|N|DOV|N|100|N|DOV -DOW|Dow Chemical Company (The) Common Stock|N|DOW|N|100|N|DOW -DPG|Duff & Phelps Global Utility Income Fund Inc. Common Stock|N|DPG|N|100|N|DPG -DPK|Direxion Developed Markets Bear 3x Shares|P|DPK|Y|100|N|DPK -DPLO|Diplomat Pharmacy, Inc. Common Stock|N|DPLO|N|100|N|DPLO -DPM|DCP Midstream Partners, LP DCP Midstream Partnership, LP Common Units|N|DPM|N|100|N|DPM -DPS|Dr Pepper Snapple Group, Inc Dr Pepper Snapple Group, Inc Common Stock|N|DPS|N|100|N|DPS -DPU|DB Commodity DB Commodity Long ETN|P|DPU|N|100|N|DPU -DPW|Digital Power Corporation Common Stock|A|DPW|N|100|N|DPW -DPZ|Domino's Pizza Inc Common Stock|N|DPZ|N|100|N|DPZ -DQ|DAQO New Energy Corp. American Depositary Shares, each representing five ordinary shares|N|DQ|N|100|N|DQ -DRA|Diversified Real Asset Income Fund Common Shares of Beneficial Interest|N|DRA|N|100|N|DRA -DRC|Dresser-Rand Group Inc. Common Stock|N|DRC|N|100|N|DRC -DRD|DRDGOLD Limited American Depositary Shares|N|DRD|N|100|N|DRD -DRE|Duke Realty Corporation Common Stock|N|DRE|N|100|N|DRE -DRGS|RBS Global Big Pharma Exchange Traded Note|P|DRGS|N|100|N|DRGS -DRH|Diamondrock Hospitality Company Common Stock|N|DRH|N|100|N|DRH -DRI|Darden Restaurants, Inc. Common Stock|N|DRI|N|100|N|DRI -DRII|Diamond Resorts International, Inc. Common Stock|N|DRII|N|100|N|DRII -DRL|Doral Financial Corporation NEW Common Stock|N|DRL|N|100|N|DRL -DRN|Dexion Daily Real Estate Bull 3x Shares|P|DRN|Y|100|N|DRN -DRQ|Dril-Quip, Inc. Common Stock|N|DRQ|N|100|N|DRQ -DRR|Market Vectors Double Short Euro ETN|P|DRR|N|100|N|DRR -DRV|Drexion Daily Real Estate Bear 3x Shares|P|DRV|Y|100|N|DRV -DRW|WisdomTree Global ex-US Real Estate Index|P|DRW|Y|100|N|DRW -DSE|Duff & Phelps Select Energy MLP Fund Inc. Common Stock|N|DSE|N|100|N|DSE -DSI|iShares KLD 400 Social Index Fund|P|DSI|Y|100|N|DSI -DSL|DoubleLine Income Solutions Fund Common Shares of Beneficial Interests|N|DSL|N|100|N|DSL -DSM|Dreyfus Strategic Municipal Bond Fund, Inc. Common Stock|N|DSM|N|100|N|DSM -DSS|Document Security Systems, Inc. Common Stock|A|DSS|N|100|N|DSS -DST|DST Systems, Inc. Common Stock|N|DST|N|100|N|DST -DSU|Blackrock Debt Strategies Fund, Inc. Common Stock|N|DSU|N|100|N|DSU -DSUM|PowerShares Chinese Yuan Dim Sum Bond Portfolio|P|DSUM|Y|100|N|DSUM -DSW|DSW Inc. Common Stock|N|DSW|N|100|N|DSW -DSX|Diana Shipping inc. common stock|N|DSX|N|100|N|DSX -DSX$B|Diana Shipping Inc. Perpetual Preferred Shares Series B (Marshall Islands)|N|DSXpB|N|100|N|DSX-B -DTD|WisdomTree Total Dividend Fund|P|DTD|Y|100|N|DTD -DTE|DTE Energy Company Common Stock|N|DTE|N|100|N|DTE -DTF|DTF Tax-Free Income, Inc. Common Stock|N|DTF|N|100|N|DTF -DTH|WisdomTree DEFA High-Yielding Equity Fund|P|DTH|Y|100|N|DTH -DTK|Deutsche Bk Contingent Cap Tr III Tr Pfd Secs|N|DTK|N|100|N|DTK -DTLA$|Brookfield DTLA Inc. 7.625% Series A Cumulative Redeemable Preferred Stock|N|DTLAp|N|100|N|DTLA- -DTN|WisdomTree Dividend Ex-Financials Fund|P|DTN|Y|100|N|DTN -DTO|PowerShares DB Crude Oil Double Short ETN|P|DTO|N|100|N|DTO -DTQ|DTE Energy Company 2012 Series C 5.25% Junior Subordinate Debentures due December 1, 2062|N|DTQ|N|100|N|DTQ -DTT|Deutsche Bank Cap Fdg Tr IX Guaranteed Trust Preferred Securities|N|DTT/CL|N|100|N|DTT* -DTZ|DTE Energy Company 2011 Series I 6.50% Junior Subordinate Debentures due 2061|N|DTZ|N|100|N|DTZ -DUA|Deutsche Bank Cap Fdg Tr VIII 6.375% Tr Pfd Secs|N|DUA|N|100|N|DUA -DUC|Duff & Phelps Utility & Corporate Bond Trust, Inc. Common Stock|N|DUC|N|100|N|DUC -DUG|ProShares UltraShort Oil & Gas|P|DUG|Y|100|N|DUG -DUK|Duke Energy Corporation (Holding Company) Common Stock|N|DUK|N|100|N|DUK -DUKH|Duke Energy Corporation 5.125% Junior Subordinated Debentures due 2073|N|DUKH|N|100|N|DUKH -DUST|Direxion Daily Gold Miners Bear 3X Shares|P|DUST|Y|100|N|DUST -DV|DeVry Education Group Inc. Common Stock|N|DV|N|100|N|DV -DVA|DaVita HealthCare Partners Inc. Common Stock|N|DVA|N|100|N|DVA -DVD|Dover Motorsports, Inc. Common Stock|N|DVD|N|100|N|DVD -DVHI|ETRACS Diversified High Income ETN|P|DVHI|N|100|N|DVHI -DVHL|ETRACS 2xLeveraged Diversified High Income ETN|P|DVHL|N|100|N|DVHL -DVN|Devon Energy Corporation Common Stock|N|DVN|N|100|N|DVN -DVP|Deep Value ETF|P|DVP|Y|100|N|DVP -DVY|iShares Select Dividend ETF|P|DVY|Y|100|N|DVY -DVYA|iShares Asia / Pacific Dividend 30 Index Fund Exchange Traded Fund|P|DVYA|Y|100|N|DVYA -DVYE|iShares Emerging Markets Dividend Index Fund Exchange Traded Fund|P|DVYE|Y|100|N|DVYE -DVYL|ETRACS Monthly Pay 2x Leveraged Dow Jones Select Dividend Index ETN|P|DVYL|N|100|N|DVYL -DW|Drew Industries Incorporated Common Stock ($0.01 Par Value)|N|DW|N|100|N|DW -DWAQ|PowerShares DWA NASDAQ Momentum Portfolio|P|DWAQ|Y|100|N|DWAQ -DWAS|PowerShares DWA SmallCap Momentum Portfolio|P|DWAS|Y|100|N|DWAS -DWM|WisdomTree DEFA Fund|P|DWM|Y|100|N|DWM -DWRE|DEMANDWARE, INC. Common Stock|N|DWRE|N|100|N|DWRE -DWTI|VelocityShares 3X Inverse Crude ETN linked to the S&P GSCI Crude Oil Index Excess Return|P|DWTI|N|100|N|DWTI -DWX|SPDR S&P International Dividend ETF|P|DWX|Y|100|N|DWX -DX|Dynex Capital, Inc. Common Stock|N|DX|N|100|N|DX -DX$A|Dynex Capital, Inc. Preferred Stock Series A|N|DXpA|N|100|N|DX-A -DX$B|Dynex Capital, Inc. Preferred Series B|N|DXpB|N|100|N|DX-B -DXB|Deutsche Bk Contingent Cap TR II Tr Pfd Sec|N|DXB|N|100|N|DXB -DXD|ProShares UltraShort Dow30|P|DXD|Y|100|N|DXD -DXJ|WisdomTree Japan Hedged Equity Fund|P|DXJ|Y|100|N|DXJ -DXJC|WisdomTree Japan Hedged Capital Goods Fund|P|DXJC|Y|100|N|DXJC -DXJF|WisdomTree Japan Hedged Financials Fund|P|DXJF|Y|100|N|DXJF -DXJH|WisdomTree Japan Hedged Health Care Fund|P|DXJH|Y|100|N|DXJH -DXJR|WisdomTree Japan Hedged Real Estate Fund|P|DXJR|Y|100|N|DXJR -DXJT|WisdomTree Japan Hedged Tech, Media & Telecom Fund|P|DXJT|Y|100|N|DXJT -DXR|Daxor Corporation Common Stock|A|DXR|N|100|N|DXR -DY|Dycom Industries, Inc. Common Stock|N|DY|N|100|N|DY -DYN|Dynegy Inc. Common Stock|N|DYN|N|100|N|DYN -DYN$A|Dynegy Inc. Mandatory Preferred Convertible Series A%|N|DYNpA|N|100|N|DYN-A -DYN.W|Dynegy Inc. Warrant expiring October 2, 2017|N|DYN/WS|N|100|N|DYN+ -DYY|DB Commodity DB Commodity Double Long ETN|P|DYY|N|100|N|DYY -DZK|Direxion Developed Markets Bull 3x Shares|P|DZK|Y|100|N|DZK -DZZ|Deutsche Bank AG DB Gold Double Short ETN|P|DZZ|N|100|N|DZZ -E|ENI S.p.A. Common Stock|N|E|N|100|N|E -EAA|Entergy Arkansas, Inc. First Mortgage Bonds, 5.75% Series Due November 1, 2040|N|EAA|N|100|N|EAA -EAB|Entergy Arkansas, Inc. First Mortgage Bonds, 4.90% Series Due December 1, 2052|N|EAB|N|100|N|EAB -EAD|Wells Fargo Advantage Income Opportunities Fund Common Shares|A|EAD|N|100|N|EAD -EAE|Entergy Arkansas, Inc. First Mortgage Bonds, 4.75% Series due June 1, 2063|N|EAE|N|100|N|EAE -EARN|Ellington Residential Mortgage REIT Common Shares of Beneficial Interest|N|EARN|N|100|N|EARN -EAT|Brinker International, Inc. Common Stock|N|EAT|N|100|N|EAT -EBF|Ennis, Inc. Common Stock|N|EBF|N|100|N|EBF -EBND|SPDR Barclays Emerging Markets Local Bond ETF|P|EBND|Y|100|N|EBND -EBR|Centrais Elc Braz Pfb B Elbras American Depositary Shares|N|EBR|N|100|N|EBR -EBR.B|Centrais Elc Braz Pfb B Elbras American Depositary Shares|N|EBR/B|N|100|N|EBR.B -EBS|Emergent Biosolutions, Inc. Common Stock|N|EBS|N|100|N|EBS -EC|Ecopetrol S.A. American Depositary Shares|N|EC|N|100|N|EC -ECA|Encana Corporation|N|ECA|N|100|N|ECA -ECC|Eagle Point Credit Company Inc. Common Stock|N|ECC|N|100|N|ECC -ECF|Ellsworth Fund Ltd|A|ECF|N|100|N|ECF -ECH|iShares MSCI Chile Capped Investable Market Index Fund|P|ECH|Y|100|N|ECH -ECL|Ecolab Inc. Common Stock|N|ECL|N|100|N|ECL -ECNS|iShares MSCI China Small-Cap ETF|P|ECNS|Y|100|N|ECNS -ECOM|ChannelAdvisor Corporation Common Stock|N|ECOM|N|100|N|ECOM -ECON|EGShares Emerging Markets Consumer ETF|P|ECON|Y|100|N|ECON -ECR|Eclipse Resources Corporation Common Stock|N|ECR|N|100|N|ECR -ECT|ECA Marcellus Trust I Common Units of Beneficial Interest|N|ECT|N|100|N|ECT -ED|Consolidated Edison, Inc. Common Stock|N|ED|N|100|N|ED -EDC|Direxion Emerging Markets Bull 3X Shares|P|EDC|Y|100|N|EDC -EDD|Morgan Stanley Emerging Markets Domestic Debt Fund, Inc. Morgan Stanley Emerging Markets Domestic Debt Fund, Inc. Common Stock|N|EDD|N|100|N|EDD -EDE|Empire District Electric Company (The) Common Stock|N|EDE|N|100|N|EDE -EDEN|Ishares MSCI Denmark Capped ETF|Z|EDEN|Y|100|N|EDEN -EDF|Stone Harbor Emerging Markets Income Fund Common Shares of Beneficial Interest|N|EDF|N|100|N|EDF -EDI|Stone Harbor Emerging Markets Total Income Fund Common Shares of Beneficial Interests|N|EDI|N|100|N|EDI -EDIV|SPDR S&P Emerging Markets Dividend ETF|P|EDIV|Y|100|N|EDIV -EDN|Empresa Distribuidora Y Comercializadora Norte S.A. (Edenor) Empresa Distribuidora Y Comercializadora Norte S.A. (Edenor) American Depositary Shares|N|EDN|N|100|N|EDN -EDOG|ALPS Emerging Sector Dividend Dogs ETF|P|EDOG|Y|100|N|EDOG -EDR|Education Realty Trust, Inc. Common Stock|N|EDR|N|100|N|EDR -EDU|New Oriental Education & Technology Group, Inc. Sponsored ADR representing 1 Ordinary Share (Cayman Islands)|N|EDU|N|100|N|EDU -EDV|Vanguard Extended Duration Treasury ETF|P|EDV|Y|100|N|EDV -EDZ|Direxion Emerging Markets Bear 3X Shares|P|EDZ|Y|100|N|EDZ -EE|El Paso Electric Company Common Stock|N|EE|N|100|N|EE -EEA|The European Equity Fund, Inc. Common Stock|N|EEA|N|100|N|EEA -EEB|Guggenheim BRIC ETF|P|EEB|Y|100|N|EEB -EEH|Aktiebolaget Svensk Exportkredit (Swed Ex Cred Corp) Elements (SM) Linked to the SPECTRUM Large Cap U.S. Sector Momentum Index developed by BNP Paribas due August 8, 2022, Medium-Term Notes, Series D|P|EEH|N|100|N|EEH -EEHB|PowerShares S&P Emerging Markets High Beta Portfolio Exchange Traded Fund|P|EEHB|Y|100|N|EEHB -EELV|PowerShares S&P Emerging Markets Low Volatility Portfolio|P|EELV|Y|100|N|EELV -EEM|iShares MSCI Emerging Index Fund|P|EEM|Y|100|N|EEM -EEMS|Ishares MSCI Emerging Markets Small Cap Index Fund|P|EEMS|Y|100|N|EEMS -EEMV|iShares MSCI Emerging Markets Minimum Volatility Index Fund|P|EEMV|Y|100|N|EEMV -EEP|Enbridge Energy, L.P. Class A Common Units|N|EEP|N|100|N|EEP -EEQ|Enbridge Energy Management LLC Shares repstg limited liability company interests|N|EEQ|N|100|N|EEQ -EES|WisdomTree SmallCap Earnings Fund|P|EES|Y|100|N|EES -EET|ProShares Ultra MSCI Emerging Markets|P|EET|Y|100|N|EET -EEV|ProShares UltraShort MSCI Emerging Markets|P|EEV|Y|100|N|EEV -EFA|iShares MSCI EAFE ETF|P|EFA|Y|100|N|EFA -EFAD|ProShares Trust ProShares MSCI EAFE Dividend Growers ETF|P|EFAD|Y|100|N|EFAD -EFAV|iShares MSCI EAFE Minimum Volatility ETF|P|EFAV|Y|100|N|EFAV -EFC|Ellington Financial LLC Common Shares representing Limitied Liability Company Interests, no par valu|N|EFC|N|100|N|EFC -EFF|Eaton vance Floating-Rate Income Plus Fund Common Shares of Beneficial Interest|N|EFF|N|100|N|EFF -EFFE|Global X JPMorgan Efficiente Index ETF|P|EFFE|Y|100|N|EFFE -EFG|iShares MSCI EAFE Growth ETF|P|EFG|Y|100|N|EFG -EFM|Entergy Mississippi, Inc. First Mortgage Bonds, 6.20% Series due April 15, 2040|N|EFM|N|100|N|EFM -EFNL|Ishares MSCI Finland Capped ETF|Z|EFNL|Y|100|N|EFNL -EFO|ProShares Ultra MSCI EAFE|P|EFO|Y|100|N|EFO -EFR|Eaton Vance Senior Floating-Rate Fund Common Shares of Beneficial Interest|N|EFR|N|100|N|EFR -EFT|Eaton Vance Floating Rate Income Trust Common Shares of Beneficial Interest|N|EFT|N|100|N|EFT -EFU|ProShares UltraShort MSCI EAFE|P|EFU|Y|100|N|EFU -EFV|iShares MSCI EAFE Value ETF|P|EFV|Y|100|N|EFV -EFX|Equifax, Inc. Common Stock|N|EFX|N|100|N|EFX -EFZ|ProShares Short MSCI EAFE|P|EFZ|Y|100|N|EFZ -EGAS|Gas Natural Inc. Common Stock (OH)|A|EGAS|N|100|N|EGAS -EGF|Blackrock Enhanced Government Fund, Inc. Common Stock|N|EGF|N|100|N|EGF -EGI|Entree Gold Inc Ordinary Shares|A|EGI|N|100|N|EGI -EGL|Engility Holdings, Inc. Common Stock|N|EGL|N|100|N|EGL -EGN|Energen Corporation Common Stock|N|EGN|N|100|N|EGN -EGO|Eldorado Gold Corporation Ordinary Shares|N|EGO|N|100|N|EGO -EGP|EastGroup Properties, Inc. Common Stock|N|EGP|N|100|N|EGP -EGPT|Market Vectors Egypt Index ETF|P|EGPT|Y|100|N|EGPT -EGY|Vaalco Energy Inc Common Stock|N|EGY|N|100|N|EGY -EHI|Western Asset Global High Income Fund Inc Common Stock|N|EHI|N|100|N|EHI -EHIC|eHi Car Services Limited American Depositary Shares|N|EHIC|N|100|N|EHIC -EIA|Eaton Vance California Municipal Bond Fund II Common Shares of Beneficial Interest, $.01 par value|A|EIA|N|100|N|EIA -EIDO|iShares MSCI Indonesia ETF|P|EIDO|Y|100|N|EIDO -EIG|Employers Holdings Inc Common Stock|N|EIG|N|100|N|EIG -EIM|Eaton Vance Municipal Bond Fund Common Shares of Beneficial Interest, $.01 par value|A|EIM|N|100|N|EIM -EIO|Eaton Vance Ohio Municipal Bond Fund Common Shared of Befeficial Interest, $.01 par value|A|EIO|N|100|N|EIO -EIP|Eaton Vance Pennsylvania Municipal Bond Fund Common Shares of Befeficial Interest, $.01 par value|A|EIP|N|100|N|EIP -EIRL|iShares MSCI Ireland Capped ETF|P|EIRL|Y|100|N|EIRL -EIS|iShares MSCI Israel Capped Investable Market Index Fund|P|EIS|Y|100|N|EIS -EIV|Eaton Vance Municipal Bond Fund II Common Shares of Beneficial Interest, $.01 Par Value|A|EIV|N|100|N|EIV -EIX|Edison International Common Stock|N|EIX|N|100|N|EIX -EJ|E-House (China) Holdings Limited American Depositary Share|N|EJ|N|100|N|EJ -EL|Estee Lauder Companies, Inc. (The) Common Stock|N|EL|N|100|N|EL -ELA|Entergy Louisiana, LLC First Mortgage Bonds, 5.875% Series due June 15, 2041|N|ELA|N|100|N|ELA -ELB|Entergy Louisiana, Inc. 6.0% Series Due March 15, 2040|N|ELB|N|100|N|ELB -ELD|WisdomTree Emerging Markets Local Debt Fund|P|ELD|Y|100|N|ELD -ELJ|Entergy Louisiana, Inc. First Mortgage Bonds, 5.25% Series due July 1, 2052|N|ELJ|N|100|N|ELJ -ELLI|Ellie Mae, Inc. Common Stock|N|ELLI|N|100|N|ELLI -ELLO|Ellomay Capital Ltd Ordinary Shares (Israel)|A|ELLO|N|100|N|ELLO -ELMD|Electromed, Inc. Common Stock|A|ELMD|N|100|N|ELMD -ELP|Companhia Paranaense de Energia (COPEL) Common Stock|N|ELP|N|100|N|ELP -ELS|Equity Lifestyle Properties, Inc. Common Stock|N|ELS|N|100|N|ELS -ELS$C|Equity Lifestyle Properties, Inc. Depositary Shares each representing 1/100th of a share of 6.75% Series C Cumulative Redeemable Perpetual Preferred Stock|N|ELSpC|N|100|N|ELS-C -ELU|Entergy Louisiana, Inc. First Mortgage Bonds, 4.70% Series due June 1, 2063|N|ELU|N|100|N|ELU -ELX|Emulex Corporation Common Stock|N|ELX|N|100|N|ELX -ELY|Callaway Golf Company Common Stock|N|ELY|N|100|N|ELY -EMAG|Market Vectors Emerging Markets Aggregate Bond ETF|P|EMAG|Y|100|N|EMAG -EMAN|eMagin Corporation Common Stock|A|EMAN|N|100|N|EMAN -EMB|iShares J,P. Morgan USD Emerging Markets Bond ETF|P|EMB|Y|100|N|EMB -EMBB|SPDR MSCI EM Beyond BRIC ETF|P|EMBB|Y|100|N|EMBB -EMC|EMC Corporation Common Stock|N|EMC|N|100|N|EMC -EMCD|SPDR BofA Merrill Emerging Markets Corporate Bond ETF|P|EMCD|Y|100|N|EMCD -EMCR|EGShares Emerging Markets CORE ETF|P|EMCR|Y|100|N|EMCR -EMD|Western Asset Emerging Markets Income Fund, Inc. Common Stock|N|EMD|N|100|N|EMD -EMDD|EGShares Emerging Markets Domestic Demand ETF|P|EMDD|Y|100|N|EMDD -EME|EMCOR Group, Inc. Common Stock|N|EME|N|100|N|EME -EMES|Emerge Energy Services LP Common Units representing Limited Partner Interests|N|EMES|N|100|N|EMES -EMF|Templeton Emerging Markets Fund Common Stock|N|EMF|N|100|N|EMF -EMFM|Global X Next Emerging & Frontier ETF|P|EMFM|Y|100|N|EMFM -EMFT|SPDR MSCI EM 50 ETF|P|EMFT|Y|100|N|EMFT -EMHY|iShares Emerging Markets High Yield Bond ETF|Z|EMHY|Y|100|N|EMHY -EMHZ|iShares MSCI Emerging Markets Horizon ETF|Z|EMHZ|Y|100|N|EMHZ -EMI|Eaton Vance Michigan Municipal Income Trust Shares of Beneficial Interest|A|EMI|N|100|N|EMI -EMJ|Eaton Vance New Jersey Municipal Bond Fund Common Shres of Beneficial Interest, $.01 par value|A|EMJ|N|100|N|EMJ -EMLB|iPath Long Enhanced MSCI Emerging Markets Index ETN|P|EMLB|N|100|N|EMLB -EMLC|Market Vectors Emerging Markets Local Currency Bond ETF|P|EMLC|Y|100|N|EMLC -EMLP|First Trust North American Energy Infrastructure Fund|P|EMLP|Y|100|N|EMLP -EMN|Eastman Chemical Company Common Stock|N|EMN|N|100|N|EMN -EMO|ClearBridge Energy MLP Opportunity Fund Inc. Common Stock|N|EMO|N|100|N|EMO -EMQ|Entergy Mississippi, Inc. 1st Mtg Bds|N|EMQ|N|100|N|EMQ -EMQQ|Emerging Markets Internet and Ecommerce ETF (The)|P|EMQQ|Y|100|N|EMQQ -EMR|Emerson Electric Company Common Stock|N|EMR|N|100|N|EMR -EMRE|Guggenhein Emerging Market Real Estate ETF|P|EMRE|Y|100|N|EMRE -EMSA|iPath Short Enhanced MSCI Emerging Markets Index ETN|P|EMSA|N|100|N|EMSA -EMSH|ProShares Short Term USD Emerging Markets Bond ETF|Z|EMSH|Y|100|N|EMSH -EMXX|Eurasian Minerals Inc Common Shares (Canada)|A|EMXX|N|100|N|EMXX -EMZ|Entergy Mississippi, Inc. First Mortgage Bonds, 6.0% Series due May 1, 2051|N|EMZ|N|100|N|EMZ -ENB|Enbridge Inc Common Stock|N|ENB|N|100|N|ENB -ENBL|Enable Midstream Partners, LP Common Units representing limited partner interests|N|ENBL|N|100|N|ENBL -ENFR|Alerian Energy Infrastructure ETF|P|ENFR|Y|100|N|ENFR -ENGN|iShares Industrial Bond ETF|P|ENGN|Y|100|N|ENGN -ENH|Endurance Specialty Holdings Ltd Common Stock|N|ENH|N|100|N|ENH -ENH$A|Endurance Specialty Holdings Ltd Preferred Series A|N|ENHpA|N|100|N|ENH-A -ENH$B|Endurance Specialty Holdings Ltd PFD SER B (Bermuda)|N|ENHpB|N|100|N|ENH-B -ENI|Enersis S A Common Stock|N|ENI|N|100|N|ENI -ENJ|Entergy New Orleans, Inc. First Mortgage Bonds, 5.0% Series due December 1, 2052|N|ENJ|N|100|N|ENJ -ENL|Reed Elsevier NV American Depositary Shares|N|ENL|N|100|N|ENL -ENLC|EnLink Midstream, LLC Common Units representing Limited Partner Interests|N|ENLC|N|100|N|ENLC -ENLK|EnLink Midstream Partners, LP Common Units Representing Limited Partnership Interests|N|ENLK|N|100|N|ENLK -ENOR|Ishares MSCI Norway Capped ETF|Z|ENOR|Y|100|N|ENOR -ENR|Energizer Holdings, Inc. Common Stock|N|ENR|N|100|N|ENR -ENRJ|EnerJex Resources, Inc. (NEW) Common Stock|A|ENRJ|N|100|N|ENRJ -ENRJ$|EnerJex Resources, Inc. 10% Series A Cumulative Redeemable Perpetual Preferred Stock|A|ENRJp|N|100|N|ENRJ- -ENS|Enersys Common Stock|N|ENS|N|100|N|ENS -ENSV|Enservco Corporation Common Stock|A|ENSV|N|100|N|ENSV -ENV|Envestnet, Inc Common Stock|N|ENV|N|100|N|ENV -ENVA|Enova International, Inc. Common Stock|N|ENVA|N|100|N|ENVA -ENX|Eaton Vance New York Municipal Bond Fund Common Shares of Beneficial Interest, $.01 par value|A|ENX|N|100|N|ENX -ENY|Guggenheim Canadian Energy Income ETF|P|ENY|Y|100|N|ENY -ENZ|Enzo Biochem, Inc. Common Stock ($0.01 Par Value)|N|ENZ|N|100|N|ENZ -ENZL|iShares MSCI New Zealand Capped ETF|P|ENZL|Y|100|N|ENZL -EOC|Empresa Nacional de Electricidad S.A. Common Stock|N|EOC|N|100|N|EOC -EOD|Wells Fargo Advantage Global Dividend Opportunity Fund|N|EOD|N|100|N|EOD -EOG|EOG Resources, Inc. Common Stock|N|EOG|N|100|N|EOG -EOI|Eaton Vance Enhance Equity Income Fund Eaton Vance Enhanced Equity Income Fund Shares of Beneficial Interest|N|EOI|N|100|N|EOI -EOS|Eaton Vance Enhance Equity Income Fund II Common Stock|N|EOS|N|100|N|EOS -EOT|Eaton Vance Municipal Income Trust EATON VANCE NATIONAL MUNICIPAL OPPORTUNITIES TRUST|N|EOT|N|100|N|EOT -EOX|Emerald Oil, Inc. Common Stock|A|EOX|N|100|N|EOX -EP$C|El Paso Corporation Preferred Stock|N|EPpC|N|100|N|EP-C -EPAM|EPAM Systems, Inc. Common Stock|N|EPAM|N|100|N|EPAM -EPD|Enterprise Products Partners L.P. Common Stock|N|EPD|N|100|N|EPD -EPE|EP Energy Corporation Class A Common Stock|N|EPE|N|100|N|EPE -EPHE|iShares MSCI Philippines ETF|P|EPHE|Y|100|N|EPHE -EPI|WisdomTree India Earnings Fund|P|EPI|Y|100|N|EPI -EPM|Evolution Petroleum Corporation, Inc. Common Stock|A|EPM|N|100|N|EPM -EPM$A|Evolution Petroleum Corporation, Inc. 8.5% Series A Cumulative Pfd Stk|A|EPMpA|N|100|N|EPM-A -EPOL|iShares MSCI Poland Capped ETF|P|EPOL|Y|100|N|EPOL -EPP|iShares MSCI Pacific Ex-Japan Index Fund|P|EPP|Y|100|N|EPP -EPR|EPR Properties Common Stock|N|EPR|N|100|N|EPR -EPR$C|EPR Properties 5.75% Series C Cumulative Convertible Preferred Shares|N|EPRpC|N|100|N|EPR-C -EPR$E|EPR Properties Series E Cumulative Conv Pfd Shs Ser E|N|EPRpE|N|100|N|EPR-E -EPR$F|EPR Properties Pfd Ser F|N|EPRpF|N|100|N|EPR-F -EPRO|AdvisorShares EquityPro ETF|P|EPRO|Y|100|N|EPRO -EPS|WisdomTree Earnings 500 Fund|P|EPS|Y|100|N|EPS -EPU|iShares MSCI All Peru Capped ETF|P|EPU|Y|100|N|EPU -EPV|ProShares UltraShort FTSE Europe ETF|P|EPV|Y|100|N|EPV -EQAL|PowerShares Russell 1000 Equal Weight POrtfolio|P|EQAL|Y|100|N|EQAL -EQC|Equity Commonwealth Common Shares of Beneficial Interest|N|EQC|N|100|N|EQC -EQC$D|Equity Commonwealth 6.50% Pfd Conv Shs Ser D|N|EQCpD|N|100|N|EQC-D -EQC$E|Equity Commonwealth 7.25% Series E Cumulative Redeemable Preferred Shares|N|EQCpE|N|100|N|EQC-E -EQCO|Equity Commonwealth 5.75% Senior Notes due 2042|N|EQCO|N|100|N|EQCO -EQL|ALPS Equal Sector Weight ETF|P|EQL|Y|100|N|EQL -EQLT|Workplace Equality Portfolio ETF|P|EQLT|Y|100|N|EQLT -EQM|EQT Midstream Partners, LP Common Units representing Limited Partner Interests|N|EQM|N|100|N|EQM -EQR|Equity Residential Common Shares of Beneficial Interest|N|EQR|N|100|N|EQR -EQS|Equus Total Return, Inc. Common Stock|N|EQS|N|100|N|EQS -EQT|EQT Corporation Common Stock|N|EQT|N|100|N|EQT -EQY|Equity One, Inc. Common Stock|N|EQY|N|100|N|EQY -ERA|Era Group, Inc. Common Stock|N|ERA|N|100|N|ERA -ERB|ERBA Diagnostics, Inc. Common Stock|A|ERB|N|100|N|ERB -ERC|Wells Fargo Advantage Multi-Sector Income Fund Common Stock, no par value|A|ERC|N|100|N|ERC -ERF|Enerplus Corporation Common Stock|N|ERF|N|100|N|ERF -ERH|Wells Fargo Advantage Utilities and High Income Fund|A|ERH|N|100|N|ERH -ERJ|Embraer S.A. Common Stock|N|ERJ|N|100|N|ERJ -ERO|Barclays PLC iPath EUR/USD Exchange Rate ETN|P|ERO|N|100|N|ERO -EROS|Eros International PLC A Ordinary Shares|N|EROS|N|100|N|EROS -ERUS|iShares MSCI Russia Capped Index Fund|P|ERUS|Y|100|N|ERUS -ERX|Direxion Energy Bull 3X Shares|P|ERX|Y|100|N|ERX -ERY|Direxion Daily Energy Bear 3X Shares|P|ERY|Y|100|N|ERY -ESBA|Empire State Realty OP, L.P. Series ES Operating Partnership Units Representing Limited Partnership Interests|P|ESBA|N|100|N|ESBA -ESD|Western Asset Emerging Markets Debt Fund Inc Common Stock|N|ESD|N|100|N|ESD -ESE|ESCO Technologies Inc. Common Stock|N|ESE|N|100|N|ESE -ESI|ITT Educational Services, Inc. Common Stock|N|ESI|N|100|N|ESI -ESL|Esterline Technologies Corporation Common Stock|N|ESL|N|100|N|ESL -ESNT|Essent Group Ltd. Common Shares|N|ESNT|N|100|N|ESNT -ESP|Espey Mfg. & Electronics Corp. Common Stock|A|ESP|N|100|N|ESP -ESR|iShares MSCI Emerging Markets Eastern Europe Index Fund|P|ESR|Y|100|N|ESR -ESRT|Empire State Realty Trust, Inc. Class A Common Stock|N|ESRT|N|100|N|ESRT -ESS|Essex Property Trust, Inc. Common Stock|N|ESS|N|100|N|ESS -ESS$H|Essex Property Trust, Inc. 7.125% Series H Cumulative Redeemable Preferred Stock|N|ESSpH|N|100|N|ESS-H -ESTE|Earthstone Energy, Inc. Common Stock|A|ESTE|N|100|N|ESTE -ESTX|Euro Stoxx 50 ETF|P|ESTX|Y|100|N|ESTX -ESV|Ensco plc Class A Ordinary Shares|N|ESV|N|100|N|ESV -ETAK|Elephant Talk Communication Corp. Delaware Common Stock|A|ETAK|N|100|N|ETAK -ETB|Eaton Vance Tax-Managed Buy-Write Income Fund Eaton Vance Tax-Managed Buy-Write Income Fund Common Shares of Beneficial Interest|N|ETB|N|100|N|ETB -ETE|Energy Transfer Equity, L.P. Energy Transfer Equity, L.P. Common Units representing Limited Partnership interests|N|ETE|N|100|N|ETE -ETF|Aberdeen Emerging Markets Company Oppotunities Fund, Inc. Common Stock|A|ETF|N|100|N|ETF -ETG|Eaton Vance Tax-Advantaged Global Dividend Income Fund Common Shares of Beneficial Interest|N|ETG|N|100|N|ETG -ETH|Ethan Allen Interiors Inc. Common Stock|N|ETH|N|100|N|ETH -ETJ|Eaton Vance Risk-Managed Diversified Equity Income Fund Common Shares of Beneficial Interest|N|ETJ|N|100|N|ETJ -ETM|Entercom Communications Corporation Common Stock|N|ETM|N|100|N|ETM -ETN|Eaton Corporation, PLC Ordinary Shares|N|ETN|N|100|N|ETN -ETO|Eaton Vance Tax-Advantage Global Dividend Opp Common Stock|N|ETO|N|100|N|ETO -ETP|Energy Transfer Partners, L.P. ENERGY TRANSFER PARNTERS|N|ETP|N|100|N|ETP -ETR|Entergy Corporation Common Stock|N|ETR|N|100|N|ETR -ETV|Eaton Vance Corporation Eaton Vance Tax-Managed Buy-Write Opportunities Fund Common Shares of Beneficial Interest|N|ETV|N|100|N|ETV -ETW|Eaton Vance Corporation Eaton Vance Tax-Managed Global Buy-Write Opportunites Fund Common Shares of Beneficial Interest|N|ETW|N|100|N|ETW -ETX|Eaton Vance Municipal Income 2028 Term Trust Common Shares of Beneficial Interest|N|ETX|N|100|N|ETX -ETY|Eaton Vance Tax-Managed Diversified Equity Income Fund Common Shares of Beneficial Interest,|N|ETY|N|100|N|ETY -EU|WisdomTree Euro Debt Fund|P|EU|Y|100|N|EU -EUDG|WisdomTree Europe Dividend Growth Fu|P|EUDG|Y|100|N|EUDG -EUFX|ProShares Short Euro|P|EUFX|Y|100|N|EUFX -EUM|ProShares Short MSCI Emerging Markets|P|EUM|Y|100|N|EUM -EUMV|iShares MSCI Europe Minimum Volatility ETF|P|EUMV|Y|100|N|EUMV -EUO|ProShares UltraShort Euro|P|EUO|Y|100|N|EUO -EURL|Direxion Daily FTSE Europe Bull 3x Shares|P|EURL|Y|100|N|EURL -EURN|Euronav NV Ordinary Shares|N|EURN|N|100|N|EURN -EUSA|iShares MSCI USA Index Fund|P|EUSA|Y|100|N|EUSA -EV|Eaton Vance Corporation Common Stock|N|EV|N|100|N|EV -EVBN|Evans Bancorp, Inc. Common Stock|A|EVBN|N|100|N|EVBN -EVC|Entravision Communications Corporation Common Stock|N|EVC|N|100|N|EVC -EVDY|Everyday Health, Inc. Common Stock|N|EVDY|N|100|N|EVDY -EVER|EverBank Financial Corp. Common Stock|N|EVER|N|100|N|EVER -EVER$A|EverBank Financial Corp. Depositary Shares Representing 1/1000th Perpetual Preferred Series A|N|EVERpA|N|100|N|EVER-A -EVF|Eaton Vance Senior Income Trust Common Stock|N|EVF|N|100|N|EVF -EVG|Eaton Vance Short Diversified Income Fund Eaton Vance Short Duration Diversified Income Fund Common Shares of Beneficial Interest|N|EVG|N|100|N|EVG -EVGN|Evogene Ltd Ordinary shares (Israel)|N|EVGN|N|100|N|EVGN -EVHC|Envision Healthcare Holdings, Inc. Common Stock|N|EVHC|N|100|N|EVHC -EVI|EnviroStar, Inc. Common Stock|A|EVI|N|100|N|EVI -EVJ|Eaton Vance New Jersey Municipal Income Trust Shares of Beneficial Interest|A|EVJ|N|100|N|EVJ -EVM|Eaton Vance California Municipal Bond Fund Common Shares of Beneficial Interest, $.01 par value|A|EVM|N|100|N|EVM -EVN|Eaton Vance Municipal Income Trust Common Stock|N|EVN|N|100|N|EVN -EVO|Eaton Vance Ohio Municipal Income Trust Shares of Beneficial Interest|A|EVO|N|100|N|EVO -EVP|Eaton Vance Pennsylvania Municipal Income Trust Shares of Beneficial Interest|A|EVP|N|100|N|EVP -EVR|Evercore Partners Inc Class A Common Stock|N|EVR|N|100|N|EVR -EVT|Eaton Vance Tax Advantaged Dividend Income Fund Common Shares of Beneficial Interest|N|EVT|N|100|N|EVT -EVTC|Evertec, Inc. Common Stock|N|EVTC|N|100|N|EVTC -EVV|Eaton Vance Limited Duration Income Fund Common Shares of Beneficial Interest|A|EVV|N|100|N|EVV -EVX|Market Vectors Environment Index ETF Fund|P|EVX|Y|100|N|EVX -EVY|Eaton Vance New York Municipal Income Trust Shares of Beneficial Interest|A|EVY|N|100|N|EVY -EW|Edwards Lifesciences Corporation Common Stock|N|EW|N|100|N|EW -EWA|iShares MSCI Australia Index Fund|P|EWA|Y|100|N|EWA -EWAS|Ishares MSCI Australia Small Cap ETF|Z|EWAS|Y|100|N|EWAS -EWC|iShares MSCI Canada Index Fund|P|EWC|Y|100|N|EWC -EWCS|Ishares MSCI Canada Small Cap ETF|Z|EWCS|Y|100|N|EWCS -EWD|iShares MSCI Sweden Index Fund|P|EWD|Y|100|N|EWD -EWEM|Guggenheim MSCI Emerging Markets Equal Country Weight ETF|P|EWEM|Y|100|N|EWEM -EWG|iShares MSCI Germany Index Fund|P|EWG|Y|100|N|EWG -EWGS|Ishares MSCI Germany Small Cap ETF|Z|EWGS|Y|100|N|EWGS -EWH|iShares MSCI Hong Kong Index Fund|P|EWH|Y|100|N|EWH -EWHS|iShares MSCI Hong Kong Small-Cap ETF|P|EWHS|Y|100|N|EWHS -EWI|iShares MSCI Italy Capped Index Fund|P|EWI|Y|100|N|EWI -EWJ|iShares MSCI Japan Index Fund|P|EWJ|Y|100|N|EWJ -EWK|iShares MSCI Belgium Capped Investable Market Index Fund|P|EWK|Y|100|N|EWK -EWL|iShares MSCI Switzerland Capped Index Fund|P|EWL|Y|100|N|EWL -EWM|iShares MSCI Malaysia Index Fund|P|EWM|Y|100|N|EWM -EWN|iShares MSCI Netherlands Index Fund|P|EWN|Y|100|N|EWN -EWO|iShares MSCI Austria Capped Investable Market Index Fund|P|EWO|Y|100|N|EWO -EWP|iShares MSCI Spain Capped Index Fund|P|EWP|Y|100|N|EWP -EWQ|iShares MSCI France Index Fund|P|EWQ|Y|100|N|EWQ -EWRI|Guggenheim Russell 1000 Equal Weight ETF|P|EWRI|Y|100|N|EWRI -EWRM|Guggenheim Russell MidCap Equal Weight ETF|P|EWRM|Y|100|N|EWRM -EWRS|Guggenheim Russell 2000 Equal Weight ETF|P|EWRS|Y|100|N|EWRS -EWS|iShares MSCI Singapore Index Fund|P|EWS|Y|100|N|EWS -EWSS|iShares MSCI Singapore Small-Cap ETF|P|EWSS|Y|100|N|EWSS -EWT|iShares MSCI Taiwan Index Fund|P|EWT|Y|100|N|EWT -EWU|iShares MSCI United Kingdom ETF|P|EWU|Y|100|N|EWU -EWUS|Ishares MSCI United Kingdom Small Cap ETF|Z|EWUS|Y|100|N|EWUS -EWV|ProShares UltraShort MSCI Japan|P|EWV|Y|100|N|EWV -EWW|iShares MSCI Mexico Capped Investable Market Index Fund|P|EWW|Y|100|N|EWW -EWX|SPDR S&P Emerging Markets Small Cap ETF|P|EWX|Y|100|N|EWX -EWY|iShares MSCI South Korea Capped Index Fund|P|EWY|Y|100|N|EWY -EWZ|iShares MSCI Brazil Capped Index Fund|P|EWZ|Y|100|N|EWZ -EWZS|iShares MSCI Brazil Small-Cap ETF|P|EWZS|Y|100|N|EWZS -EXAM|ExamWorks Group, Inc. Common Stock|N|EXAM|N|100|N|EXAM -EXAR|Exar Corporation Common Stock|N|EXAR|N|100|N|EXAR -EXC|Exelon Corporation Common Stock|N|EXC|N|100|N|EXC -EXCU|Exelon Corp. Conv Unit|N|EXCU|N|100|N|EXCU -EXD|Eaton Vance Tax-Advantaged Bond Common Shares of Beneficial Interest|N|EXD|N|100|N|EXD -EXG|Eaton Vance Tax-Managed Global Diversified Equity Income Fund Eaton Vance Tax-Managed Global Diversified Equity Income Fund Common Shares of Beneficial Interest|N|EXG|N|100|N|EXG -EXH|Exterran Holdings, Inc. Common Stock|N|EXH|N|100|N|EXH -EXI|iShares Global Industrials ETF|P|EXI|Y|100|N|EXI -EXK|Endeavour Silver Corporation Ordinary Shares (Canada)|N|EXK|N|100|N|EXK -EXL|Excel Trust, Inc. Common Stock|N|EXL|N|100|N|EXL -EXL$B|Excel Trust, Inc. 8.125% Series B Cumulative Redeemable Preferred Stock, $0.01 par value|N|EXLpB|N|100|N|EXL-B -EXP|Eagle Materials Inc Common Stock|N|EXP|N|100|N|EXP -EXPR|Express, Inc. Common Stock|N|EXPR|N|100|N|EXPR -EXR|Extra Space Storage Inc Common Stock|N|EXR|N|100|N|EXR -EXT|WisdomTree Total Earnings Fund|P|EXT|Y|100|N|EXT -EZA|iShares MSCI South Africa Index Fund|P|EZA|Y|100|N|EZA -EZJ|ProShares Ultra MSCI Japan|P|EZJ|Y|100|N|EZJ -EZM|WisdomTree MidCap Earnings Fund|P|EZM|Y|100|N|EZM -EZT|Entergy Texas Inc First Mortgage Bonds 5.625% Series due June 1, 2064|N|EZT|N|100|N|EZT -EZU|iShares MSCI EMU Index Fund|P|EZU|Y|100|N|EZU -EZY|WisdomTree Low P/E Fund|P|EZY|Y|100|N|EZY -F|Ford Motor Company Common Stock|N|F|N|100|N|F -FAB|First Trust Multi Cap Value AlphaDEX Fund|P|FAB|Y|100|N|FAB -FAC|First Acceptance Corporation|N|FAC|N|100|N|FAC -FAD|First Trust MuFirst Trust Multi CG AlphaDEX|P|FAD|Y|100|N|FAD -FAF|First American Corporation (New) Common Stock|N|FAF|N|100|N|FAF -FAM|First Trust/Aberdeen Global Opportunity Income Fund First Trust/Aberdeen Global Opportunity Income Fund Common Shares of Beneficial Interest|N|FAM|N|100|N|FAM -FAN|First Trust ISE Global Wind Energy ETF|P|FAN|Y|100|N|FAN -FAS|Direxion Financial Bull 3X Shares|P|FAS|Y|100|N|FAS -FAUS|First Trust Australia AlphaDex fund|P|FAUS|Y|100|N|FAUS -FAV|First Trust Dividend and Income Fund Common Shares of Beneficial Interest|N|FAV|N|100|N|FAV -FAX|Aberdeen Asia-Pacific Income Fund Inc Common Stock|A|FAX|N|100|N|FAX -FAZ|Direxion Financial Bear 3X Shares|P|FAZ|Y|100|N|FAZ -FBC|Flagstar Bancorp, Inc. Common Stock|N|FBC|N|100|N|FBC -FBG|Fisher Enhanced Big Cap Growth|P|FBG|N|100|N|FBG -FBGX|UBS AG FI Enhanced Large Cap Growth ETN|P|FBGX|N|100|N|FBGX -FBHS|Fortune Brands Home & Security, Inc. Common Stock|N|FBHS|N|100|N|FBHS -FBND|Fidelity Total Bond ETF|P|FBND|Y|100|N|FBND -FBP|First BanCorp. New Common Stock|N|FBP|N|100|N|FBP -FBR|Fibria Celulose S.A.|N|FBR|N|100|N|FBR -FBS$A|First Preferred Cap Tr Iv First Preferred Capital Trust IV 8.15% Cum Trust Pfd Sec|N|FBSpA|N|100|N|FBS-A -FBT|First Trust Amex Biotech Index Fund|P|FBT|Y|100|N|FBT -FBZ|First Trust Brazil AlphaDEX Fund|P|FBZ|Y|100|N|FBZ -FC|Franklin Covey Company Common Stock|N|FC|N|100|N|FC -FCA|First Trust China AlphaDEX Fund|P|FCA|Y|100|N|FCA -FCAM|Fiat Chrysler Automobiles N.V. Mandatory Convertible Securities|N|FCAM|N|100|N|FCAM -FCAN|First Trust Canada AlphaDex Fund|P|FCAN|Y|100|N|FCAN -FCAU|Fiat Chrysler Automobiles N.V. Common Shares|N|FCAU|N|100|N|FCAU -FCB|FCB Financial Holdings, Inc. Class A Common Stock|N|FCB|N|100|N|FCB -FCE.A|Forest City Enterprises, Inc. Common Stock|N|FCE/A|N|100|N|FCE.A -FCE.B|Forest City Enterprises, Inc. Common Stock|N|FCE/B|N|100|N|FCE.B -FCF|First Commonwealth Financial Corporation Common Stock|N|FCF|N|100|N|FCF -FCG|First Trust ISE-Revere Natural Gas|P|FCG|Y|100|N|FCG -FCH|FelCor Lodging Trust Incorporated Common Stock|N|FCH|N|100|N|FCH -FCH$A|FelCor Lodging Trust Incorporated Preferred Stock|N|FCHpA|N|100|N|FCH-A -FCH$C|FelCor Lodging Trust Incorporated Dep Shares Representing 1/100 Preferred Series C|N|FCHpC|N|100|N|FCH-C -FCN|FTI Consulting, Inc. Common Stock|N|FCN|N|100|N|FCN -FCO|Aberdeen Global Income Fund, Inc. Common Stock|A|FCO|N|100|N|FCO -FCOM|Fidelity MSCI Telecommunication Services Index ETF|P|FCOM|Y|100|N|FCOM -FCOR|Fidelity Corporate Bond ETF|P|FCOR|Y|100|N|FCOR -FCT|First Trust Senior Floating Rate Income Fund II Common Shares of Beneficial Interest|N|FCT|N|100|N|FCT -FCX|Freeport-McMoRan, Inc. Common Stock|N|FCX|N|100|N|FCX -FDD|First Trust Dow Jones STOXX Select Dividend 30 Index Fund|P|FDD|Y|100|N|FDD -FDI|Fort Dearborn Income Securities, Inc. Common Stock|N|FDI|N|100|N|FDI -FDIS|Fidelity MSCI Consumer Discretionary Index ETF|P|FDIS|Y|100|N|FDIS -FDL|First Trust Morningstar ETF|P|FDL|Y|100|N|FDL -FDM|First Trust DJ Select MicroCap ETF|P|FDM|Y|100|N|FDM -FDN|First Trust DJ Internet Index Fund|P|FDN|Y|100|N|FDN -FDO|Family Dollar Stores, Inc. Common Stock|N|FDO|N|100|N|FDO -FDP|Fresh Del Monte Produce, Inc. Common Stock|N|FDP|N|100|N|FDP -FDS|FactSet Research Systems Inc. Common Stock|N|FDS|N|100|N|FDS -FDT|First Trust Developed Markets ex-US AlphaDEX Fund|P|FDT|Y|100|N|FDT -FDTS|First Trust Developed Markets ex US Small Cap AlphaDex Fund|P|FDTS|Y|100|N|FDTS -FDX|FedEx Corporation Common Stock|N|FDX|N|100|N|FDX -FE|FirstEnergy Corporation Common Stock|N|FE|N|100|N|FE -FEEU|Barclays ETN FI Enhanced Europe 50 ETN|P|FEEU|N|100|N|FEEU -FEI|First Trust MLP and Energy Income Fund Common Shares of Beneficial Interest|N|FEI|N|100|N|FEI -FELP|Foresight Energy LP Common Units representing Limited Partner Interests|N|FELP|N|100|N|FELP -FEM|First Trust Emerging Markets AlphaDEX Fund|P|FEM|Y|100|N|FEM -FEMS|First Trust Developed Markets Small Cap AlphaDex Fund|P|FEMS|Y|100|N|FEMS -FEN|First Trust Energy Income and Growth Fund|A|FEN|N|100|N|FEN -FENG|Phoenix New Media Limited American Depositary Shares, each representing 8 Class A ordinary shares.|N|FENG|N|100|N|FENG -FENY|Fidelity MSCI Energy Index ETF|P|FENY|Y|100|N|FENY -FEO|First Trust/Aberdeen Emerging Opportunity Fund Common Shares of Beneficial Interest|N|FEO|N|100|N|FEO -FEP|First Trust Europe AlphaDEX Fund|P|FEP|Y|100|N|FEP -FET|Forum Energy Technologies, Inc. Common Stock|N|FET|N|100|N|FET -FEU|SPDR DJ STOXX 50 Etf|P|FEU|Y|100|N|FEU -FEX|First Trust Large Cap Core AlphaDEX|P|FEX|Y|100|N|FEX -FEZ|SPDR DJ Euro STOXX 50 Etf|P|FEZ|Y|100|N|FEZ -FF|FutureFuel Corp. Common shares|N|FF|N|100|N|FF -FFA|First Trust Enhanced Equity Income Fund|N|FFA|N|100|N|FFA -FFC|Flaherty & Crumrine Preferred Securities Income Fund Incorporated|N|FFC|N|100|N|FFC -FFG|FBL Financial Group, Inc. Common Stock|N|FFG|N|100|N|FFG -FFR|First Trust FTSE EPRA/NAREIT Global Real Estate Index Fund|P|FFR|Y|100|N|FFR -FGB|First Trust Specialty Finance and Financial Opportunities Fund|N|FGB|N|100|N|FGB -FGD|First Trust DJ Global Select Dividend|P|FGD|Y|100|N|FGD -FGL|Fidelity & Guaranty Life Common Stock|N|FGL|N|100|N|FGL -FGM|First Trust Germany AlphaDex Fund|P|FGM|Y|100|N|FGM -FGP|Ferrellgas Partners, L.P. Common Stock|N|FGP|N|100|N|FGP -FHK|First Trust Hong Kong AlphaDex|P|FHK|Y|100|N|FHK -FHLC|Fidelity MSCI Health Care Index ETF|P|FHLC|Y|100|N|FHLC -FHN|First Horizon National Corporation Common Stock|N|FHN|N|100|N|FHN -FHN$A|First Horizon National Corporation Depositary Shares|N|FHNpA|N|100|N|FHN-A -FHY|First Trust Strategic High Income Fund II First Trust Strategic High Income Fund II Common Shares of Beneficial Interest|N|FHY|N|100|N|FHY -FI|Frank's International N.V. Common Stock|N|FI|N|100|N|FI -FIA|Falah Russell-IdealRatings U.S. Large Cap ETF|P|FIA|Y|100|N|FIA -FIBG|CS FI Enhanced Big Cap Growth ETN|P|FIBG|N|100|N|FIBG -FICO|Fair Isaac Corproation Common Stock|N|FICO|N|100|N|FICO -FIDU|Fidelity MSCI Industrials Index ETF|P|FIDU|Y|100|N|FIDU -FIEG|FI Enhanced Gloabl High Yield ETN|P|FIEG|N|100|N|FIEG -FIEU|FI Enhanced Europe 50 ETN|P|FIEU|N|100|N|FIEU -FIF|First Trust Energy Infrastructure Fund Common Shares of Beneficial Interest|N|FIF|N|100|N|FIF -FIG|Fortress Investment Group LLC Class A Common Stock|N|FIG|N|100|N|FIG -FIGY|Barclays ETN FI Enhanced Global High Yield ETN|P|FIGY|N|100|N|FIGY -FII|Federated Investors, Inc. Common Stock|N|FII|N|100|N|FII -FILL|iShares MSCI Global Energy Producers Fund|P|FILL|Y|100|N|FILL -FINU|ProShares UltraPro Financials|P|FINU|Y|100|N|FINU -FINZ|ProShares UltraPro Short Financials|P|FINZ|Y|100|N|FINZ -FIS|Fidelity National Information Services, Inc. Common Stock|N|FIS|N|100|N|FIS -FISK|Empire State Realty OP, L.P. Series 250 Operating Partnership Units Representing Limited Partnership Interests|P|FISK|N|100|N|FISK -FIVZ|PIMCO 3-7 Year U.S. Treasury Index Exchange-Traded Fund|P|FIVZ|Y|100|N|FIVZ -FIW|First Trust ISE Water Index Fund|P|FIW|Y|100|N|FIW -FIX|Comfort Systems USA, Inc. Common Stock|N|FIX|N|100|N|FIX -FJP|First Trust Japan AlphaDEX Fund|P|FJP|Y|100|N|FJP -FKO|First Trust South Korea AlphaDEX Fund|P|FKO|Y|100|N|FKO -FKU|First Trust United Kingdom AlphaDex Fund|P|FKU|Y|100|N|FKU -FL|Foot Locker, Inc.|N|FL|N|100|N|FL -FLAG|Forensic Accounting Exchange Traded Concepts|P|FLAG|Y|100|N|FLAG -FLC|Flaherty & Crumrine Total Return Fund Inc Common Stock|N|FLC|N|100|N|FLC -FLGE|Credit Suisse FI Large Cap Growth Enhanced ETN|P|FLGE|N|100|N|FLGE -FLM|First Trust ISE Glb Engnrg And Const Idx|P|FLM|Y|100|N|FLM -FLN|First Trust Latin America AlphaDEX Fund|P|FLN|Y|100|N|FLN -FLO|Flowers Foods, Inc. Common Stock|N|FLO|N|100|N|FLO -FLOT|iShares Floating Rate Bond ETF|P|FLOT|Y|100|N|FLOT -FLR|Fluor Corporation Common Stock|N|FLR|N|100|N|FLR -FLRN|SPDR Barclays Investment Grade Floating Rate ETF|P|FLRN|Y|100|N|FLRN -FLS|Flowserve Corporation Common Stock|N|FLS|N|100|N|FLS -FLT|FleetCor Technologies, Inc. Common Stock|N|FLT|N|100|N|FLT -FLTB|Fidelity Limited Term Bond ETF|P|FLTB|Y|100|N|FLTB -FLTR|Market Vectors Investment Grade Floating Rate ETF|P|FLTR|Y|100|N|FLTR -FLTX|Fleetmatics Group PLC Ordinary Shares|N|FLTX|N|100|N|FLTX -FLY|Fly Leasing Limited|N|FLY|N|100|N|FLY -FM|iShares MSCI Frontier 100 Fund|P|FM|Y|100|N|FM -FMAT|Fidelity MSCI Materials Index ETF|P|FMAT|Y|100|N|FMAT -FMC|FMC Corporation Common Stock|N|FMC|N|100|N|FMC -FMD|First Marblehead Corporation (The) Common Stock|N|FMD|N|100|N|FMD -FMER$A|FirstMerit Corporation Depositary Shares|N|FMERpA|N|100|N|FMER-A -FMF|First Trust Morningstar Managed Futures Strategy Fund|P|FMF|Y|100|N|FMF -FMK|First Trust Mega Cap Alphadex Fund|P|FMK|Y|100|N|FMK -FMLP|ETRACS Wells Fargo MLP Ex-Energy ETN|P|FMLP|N|100|N|FMLP -FMN|Federated Premier Municipal Income Fund Federated Premier Municipal Income Fund|N|FMN|N|100|N|FMN -FMO|Fiduciary/Claymore MLP Opportunity Fund Fiduciary/Claymore MLP Opportunity Fund Common Shares of Beneficial Interest|N|FMO|N|100|N|FMO -FMS|Fresenius Medical Care AG Common Stock|N|FMS|N|100|N|FMS -FMSA|FMSA Holdings Inc. Common Stock|N|FMSA|N|100|N|FMSA -FMX|Fomento Economico Mexicano S.A.B. de C.V. Common Stock|N|FMX|N|100|N|FMX -FMY|First Trust Motgage Income Fund Common Shares of Beneficial Interest|N|FMY|N|100|N|FMY -FN|Fabrinet Ordinary Shares|N|FN|N|100|N|FN -FNB|F.N.B. Corporation Common Stock|N|FNB|N|100|N|FNB -FNB$E|F.N.B. Corporation Depositary Shares, each representing a 1/40th interest in a share of Fixed-to-Floating Rate Non-Cumulative Perpetual Preferred Stock, Series E|N|FNBpE|N|100|N|FNB-E -FNCL|Fidelity MSCI Financials Index ETF|P|FNCL|Y|100|N|FNCL -FNDA|Schwab Fundamental U.S. Small Company Index ETF|P|FNDA|Y|100|N|FNDA -FNDB|Schwab Fundamental U.S. Broad Market Index ETF|P|FNDB|Y|100|N|FNDB -FNDC|Schwab Fundamental International Small Company Index ETF|P|FNDC|Y|100|N|FNDC -FNDE|Schwab Fundamental Emerging Markets Large Company Index ETF|P|FNDE|Y|100|N|FNDE -FNDF|Schwab Fundamental International Large Company Index ETF|P|FNDF|Y|100|N|FNDF -FNDX|Schwab Fundamental U.S. Large Company Index ETF|P|FNDX|Y|100|N|FNDX -FNF|FNF Group of Fidelity National Financial, Inc. Common Stock|N|FNF|N|100|N|FNF -FNFG$B|First Niagara Financial Group Inc. PFD NON CUM SER B FXD/FLTG|N|FNFGpB|N|100|N|FNFG-B -FNFV|FNFV Group of Fidelity National Financial, Inc. Common Stock|N|FNFV|N|100|N|FNFV -FNI|First Trust ISE Chindia|P|FNI|Y|100|N|FNI -FNK|First Trust Mid Cap Value AlphaDEX Fund|P|FNK|Y|100|N|FNK -FNV|Franco-Nevada Corporation|N|FNV|N|100|N|FNV -FNX|First Trust Mid Cap Core AlphaDEX|P|FNX|Y|100|N|FNX -FNY|First Trust Mid Cap Growth AlphaDEX|P|FNY|Y|100|N|FNY -FOE|Ferro Corporation Common Stock|N|FOE|N|100|N|FOE -FOF|Cohen & Steers Closed-End Opportunity Fund, Inc. Common Stock|N|FOF|N|100|N|FOF -FOIL|iPath Pure Beta Aluminum ETN|P|FOIL|N|100|N|FOIL -FOR|Forestar Group Inc Common Stock|N|FOR|N|100|N|FOR -FORX|PIMCO Foreign Currency Strategy Active ETF|P|FORX|Y|100|N|FORX -FPA|First Trust Asia Pacific ex-Japan AlphaDEX Fund|P|FPA|Y|100|N|FPA -FPE|First Trust Preferred Securities and Income ETF ETF|P|FPE|Y|100|N|FPE -FPF|First Trust Intermediate Duration Preferred & Income Fund Common Shares of Beneficial Interest|N|FPF|N|100|N|FPF -FPI|Farmland Partners Inc. Common Stock|A|FPI|N|100|N|FPI -FPL|First Trust New Opportunities MLP & Energy Fund Common Shares of Beneficial Interest|N|FPL|N|100|N|FPL -FPO|First Potomac Realty Trust Common Shares of Beneficial Interest|N|FPO|N|100|N|FPO -FPO$A|First Potomac Realty Trust CUMULATIVE REDEEMABLE PFD PERPETUAL SER A|N|FPOpA|N|100|N|FPO-A -FPP|FieldPoint Petroleum Corporation Common Stock|A|FPP|N|100|N|FPP -FPP.W|FieldPoint Petroleum Corporation Warrant expiring 2018|A|FPP/WS|N|100|N|FPP+ -FPT|Federated Premier Intermediate Municipal Income Fund Federated Premier Intermediate Municipal Income Fund|N|FPT|N|100|N|FPT -FPX|First Trust IPOX-100 Index Fund|P|FPX|Y|100|N|FPX -FR|First Industrial Realty Trust, Inc. Common Stock|N|FR|N|100|N|FR -FRA|Blackrock Floating Rate Income Strategies Fund Inc Common Stock|N|FRA|N|100|N|FRA -FRAK|Market Vectors Unconventional Oil & Gas ETF|P|FRAK|Y|100|N|FRAK -FRC|FIRST REPUBLIC BANK Common Stock|N|FRC|N|100|N|FRC -FRC$A|First Republicbank Corp DEP SHS REPSTG 1/40TH PERP PFD SER A|N|FRCpA|N|100|N|FRC-A -FRC$B|First Republic Bank Depositary Shares Representing 1/40th Perpetual Preferred Series B|N|FRCpB|N|100|N|FRC-B -FRC$C|FIRST REPUBLIC BANK Dep Shs Repstg 1/40th Perp Pfd Ser C|N|FRCpC|N|100|N|FRC-C -FRC$D|First Republic Bank San Francisco California Depositary Shares Representing 1/40th Perpetual Preferred Series D|N|FRCpD|N|100|N|FRC-D -FRC$E|FIRST REPUBLIC BANK Depositary Shs Repstg 1/40th Perp Pfd Ser E Fixed To Fltg (RATE)|N|FRCpE|N|100|N|FRC-E -FRD|Friedman Industries Inc. Common Stock|A|FRD|N|100|N|FRD -FRI|First Trust S&P REIT Index Fund|P|FRI|Y|100|N|FRI -FRM|Furmanite Corporation Common Stock|N|FRM|N|100|N|FRM -FRN|Guggenheim Frontier Markets ETF|P|FRN|Y|100|N|FRN -FRO|Frontline Ltd. Ordinary Shares|N|FRO|N|100|N|FRO -FRS|Frisch's Restaurants, Inc. Common Stock|A|FRS|N|100|N|FRS -FRT|Federal Realty Investment Trust Common Stock|N|FRT|N|100|N|FRT -FSCE|Fifth Street Finance Corp. 5.875% Senior Notes due 2024|N|FSCE|N|100|N|FSCE -FSD|First Trust High Income Long Short Fund Common Shares of Beneficial Interest|N|FSD|N|100|N|FSD -FSI|Flexible Solutions International Inc. Common Stock|A|FSI|N|100|N|FSI -FSIC|FS Investment Corporation Common Stock|N|FSIC|N|100|N|FSIC -FSL|Freescale Semiconductor, Ltd Common Shares|N|FSL|N|100|N|FSL -FSM|Fortuna Silver Mines Inc Ordinary Shares (Canada)|N|FSM|N|100|N|FSM -FSP|Franklin Street Properties Corp. Common Stock|A|FSP|N|100|N|FSP -FSS|Federal Signal Corporation Common Stock|N|FSS|N|100|N|FSS -FSTA|Fidelity MSCI COnsumer Staples Index ETF|P|FSTA|Y|100|N|FSTA -FSZ|First Trust Switzerland AlphaDex Fund|P|FSZ|Y|100|N|FSZ -FT|Franklin Universal Trust Common Stock|N|FT|N|100|N|FT -FTA|First Trust Large Cap Value AlphaDEX Fund (based onthe Defined Large Cap Value Index symbol DEFILVOI|P|FTA|Y|100|N|FTA -FTC|First Trust Large Cap Growth AlphaDEX Fund (based on the Defined Large CAp Growth Index symbol DEFILGOI)|P|FTC|Y|100|N|FTC -FTEC|Fidelity MSCI Information Technology Index ETF|P|FTEC|Y|100|N|FTEC -FTF|Franklin Limited Duration Income Trust Common Shares of Beneficial Interest|A|FTF|N|100|N|FTF -FTI|FMC Technologies, Inc. Common Stock|N|FTI|N|100|N|FTI -FTK|Flotek Industries, Inc. Common Stock|N|FTK|N|100|N|FTK -FTLS|First Trust Long/Short Equity|P|FTLS|Y|100|N|FTLS -FTSD|Franklin Short Duration U.S. Government ETF|P|FTSD|Y|100|N|FTSD -FTT|Federated Enhanced Treasury Income Fund Common Shares of Beneficial Interest|N|FTT|N|100|N|FTT -FTW|First Trust Taiwan AlphaDex Fund|P|FTW|Y|100|N|FTW -FTY|iShares Real Estate 50 ETF|P|FTY|Y|100|N|FTY -FUD|E-TRACS USB Bloomberg Commodity Index Exchange Traded Notes E-TRACS UBS Bloomberg CMCI Food ETN|P|FUD|N|100|N|FUD -FUE|AB Svensk Ekportkredit (Swedish Export Credit Corporation) ELEMENTS Linked to the MLCX Biofuels Index - Total Return Structured Product|P|FUE|N|100|N|FUE -FUL|H. B. Fuller Company Common Stock|N|FUL|N|100|N|FUL -FUN|Cedar Fair, L.P. Common Stock|N|FUN|N|100|N|FUN -FUR|Winthrop Realty Trust New Common Stock|N|FUR|N|100|N|FUR -FUTS|ProShares Managed Futures Strategy|P|FUTS|Y|100|N|FUTS -FUTY|Fidelity MSCI Utilities Index ETF|P|FUTY|Y|100|N|FUTY -FVD|First Trust VL Dividend|P|FVD|Y|100|N|FVD -FVE|Five Star Quality Care, Inc. Common Stock - $0.01 par value|N|FVE|N|100|N|FVE -FVL|First Trust Value Line 100 Fund|P|FVL|Y|100|N|FVL -FWDB|Madrona Global Bond ETF|P|FWDB|Y|100|N|FWDB -FWDD|Madrona Domestic ETF|P|FWDD|Y|100|N|FWDD -FWDI|Madrona International ETF|P|FWDI|Y|100|N|FWDI -FWV|First West Virginia Bancorp, Inc. Common Stock|A|FWV|N|100|N|FWV -FXA|Guggenheim CurrencyShares Australian Dollar Trust|P|FXA|Y|100|N|FXA -FXB|Guggenheim CurrencyShares British Pound Sterling Trust|P|FXB|Y|100|N|FXB -FXC|Guggenheim CurrencyShares Canadian Dollar Trust|P|FXC|Y|100|N|FXC -FXCH|Guggenheim CurrencyShares Chinese Renminbi Trust|P|FXCH|Y|100|N|FXCH -FXCM|FXCM Inc. Class A Common Stock|N|FXCM|N|100|N|FXCM -FXD|First Trust Cons. Discret. AlphaDEX|P|FXD|Y|100|N|FXD -FXE|Guggenheim CurrencyShares Euro Currency Trust|P|FXE|Y|100|N|FXE -FXF|Guggenheim CurrencyShares Swiss Franc Trust|P|FXF|Y|100|N|FXF -FXG|First Trust Cons. Staples AlphaDEX|P|FXG|Y|100|N|FXG -FXH|First Trust Health Care AlphaDEX|P|FXH|Y|100|N|FXH -FXI|iShares China Large-Cap ETF|P|FXI|Y|100|N|FXI -FXL|First Trust Technology AlphaDEX|P|FXL|Y|100|N|FXL -FXN|First Trust Energy AlphaDEX Fund|P|FXN|Y|100|N|FXN -FXO|First Trust Financials AlphaDEX|P|FXO|Y|100|N|FXO -FXP|ProShares Ultrashort FTSE China 50|P|FXP|Y|100|N|FXP -FXR|First Trust Industrials AlphaDEX|P|FXR|Y|100|N|FXR -FXS|Guggenheim CurrencyShares Swedish Krona Trust|P|FXS|Y|100|N|FXS -FXSG|Guggenheim CurrencyShares Singapore Dollar Trust ETF|P|FXSG|Y|100|N|FXSG -FXU|First Trust Utilities AlphaDEX Fund|P|FXU|Y|100|N|FXU -FXY|Guggenheim CurrencyShares Japanese Yen Trust|P|FXY|Y|100|N|FXY -FXZ|First Trust Materials AlphaDEX Fund|P|FXZ|Y|100|N|FXZ -FYC|First Trust Small Cap Growth AlphaDEX Fund|P|FYC|Y|100|N|FYC -FYLD|Cambria Foreign Shareholder Yield ETF|P|FYLD|Y|100|N|FYLD -FYT|First Trust Small Cap Value AlphaDEX Fund|P|FYT|Y|100|N|FYT -FYX|First Trust Small Cap Core AlphaDEX|P|FYX|Y|100|N|FYX -G|Genpact Limited Common Stock|N|G|N|100|N|G -GAA|Cambria Global Asset Allocation ETF|P|GAA|Y|100|N|GAA -GAB|Gabelli Equity Trust, Inc. (The) Common Stock|N|GAB|N|100|N|GAB -GAB$D|Gabelli Equity Trust, Inc. (The) Preferred Stock Series D|N|GABpD|N|100|N|GAB-D -GAB$G|Gabelli Equity Trust, Inc. (The) Series G Cumulative Preferred Stock|N|GABpG|N|100|N|GAB-G -GAB$H|Gabelli Equity Trust, Inc. (The) Pfd Ser H|N|GABpH|N|100|N|GAB-H -GAF|SPDR S&P Middle East & Africa ETF|P|GAF|Y|100|N|GAF -GAL|SPDR SSgA Global Allocation ETF|P|GAL|Y|100|N|GAL -GAM|General American Investors, Inc. Common Stock|N|GAM|N|100|N|GAM -GAM$B|General American Investors Company, Inc. Cumulative Preferred Stock|N|GAMpB|N|100|N|GAM-B -GAS|AGL Resources, Inc. Common Stock|N|GAS|N|100|N|GAS -GASL|Direxion Daily Natural Gas Related Bull 3X Shares|P|GASL|Y|100|N|GASL -GAZ|iPath Bloomberg Natural Gas Subindeex Total Return ETN|P|GAZ|N|100|N|GAZ -GB|Greatbatch, Inc. Common Stock|N|GB|N|100|N|GB -GBAB|Guggenheim Build America Bonds Managed Duration Trust Common Shares of Beneficial Interest|N|GBAB|N|100|N|GBAB -GBB|iPath Goldman Sachs iPath GBP/USD Exchange Rate ETN|P|GBB|N|100|N|GBB -GBF|iShares Government/Credit Bond ETF|P|GBF|Y|100|N|GBF -GBL|Gamco Investors, Inc. Common Stock|N|GBL|N|100|N|GBL -GBR|New Concept Energy, Inc Common Stock|A|GBR|N|100|N|GBR -GBX|Greenbrier Companies, Inc. (The) Common Stock|N|GBX|N|100|N|GBX -GCA|Global Cash Access Holdings, Inc. Common Stock|N|GCA|N|100|N|GCA -GCAP|GAIN Capital Holdings, Inc. Common Stock|N|GCAP|N|100|N|GCAP -GCC|GreenHaven Continuous Commodity Index Fund|P|GCC|Y|100|N|GCC -GCE|Clarymore CEF GS Connect ETN|P|GCE|N|100|N|GCE -GCH|Aberdeen Greater China Fund, Inc. Common Stock|N|GCH|N|100|N|GCH -GCI|Gannett Co., Inc. Common Stock|N|GCI|N|100|N|GCI -GCO|Genesco Inc. Common Stock|N|GCO|N|100|N|GCO -GCV|Gabelli Convertible and Income Securities Fund, Inc. (The) Common Stock|N|GCV|N|100|N|GCV -GCV$B|Gabelli Convertible and Income Securities Fund, Inc. (The) Series B 6.00% Cumulative Preferred Stock|N|GCVpB|N|100|N|GCV-B -GD|General Dynamics Corporation Common Stock|N|GD|N|100|N|GD -GDAY|ProShares Ultra Australian Dollar|P|GDAY|Y|100|N|GDAY -GDF|Western Asset Global Partners Income Fund, Inc. Common Stock|N|GDF|N|100|N|GDF -GDL|GDL Fund, The Common Shares of Beneficial Interest|N|GDL|N|100|N|GDL -GDL$B|The GDL Fund Series B Cumulative Puttable and Callable Preferred Shares|N|GDLpB|N|100|N|GDL-B -GDO|Western Asset Global Corporate Defined Opportunity Fund Inc. Western Asset Global Corporate Defined Opportunity Fund Inc.|N|GDO|N|100|N|GDO -GDOT|Green Dot Corporation Class A Common Stock, $0.001 par value|N|GDOT|N|100|N|GDOT -GDP|Goodrich Petroleum Corporation Common Stock|N|GDP|N|100|N|GDP -GDP$C|Goodrich Petroleum Corporation Depositary Shares Representing 1/1000th Preferred Series C|N|GDPpC|N|100|N|GDP-C -GDP$D|Goodrich Petroleum Corporation Depositary Shares Representing 1/1000th Preferred Series D|N|GDPpD|N|100|N|GDP-D -GDV|Gabelli Dividend & Income Trust Common Shares of Beneficial Interest|N|GDV|N|100|N|GDV -GDV$A|Gabelli Dividend & Income Tr Preferred Series A|N|GDVpA|N|100|N|GDV-A -GDV$D|Gabelli Dividend Pfd Series D|N|GDVpD|N|100|N|GDV-D -GDX|Market Vectors Gold Miners ETF|P|GDX|Y|100|N|GDX -GDXJ|Market Vectors Junior Gold Miners ETF|P|GDXJ|Y|100|N|GDXJ -GE|General Electric Company Common Stock|N|GE|N|100|N|GE -GEB|General Electric Company 4.875% Notes due October 15, 2052|N|GEB|N|100|N|GEB -GEF|Greif Inc. Class A Common Stock|N|GEF|N|100|N|GEF -GEF.B|Greif, Inc. Corporation Class B Common Stock|N|GEF/B|N|100|N|GEF.B -GEH|General Electric Capital Corporation 4.876% Notes due January 29, 2053|N|GEH|N|100|N|GEH -GEK|General Electric Capital Corporation 4.70% Notes due May 16, 2053|N|GEK|N|100|N|GEK -GEL|Genesis Energy, L.P. Common Units|N|GEL|N|100|N|GEL -GEO|Geo Group Inc (The) REIT|N|GEO|N|100|N|GEO -GEQ|Guggenheim Equal Weight Enhanced Equity Income Fund Common Shares of Beneficial Interest|N|GEQ|N|100|N|GEQ -GER|Goldman Sachs MLP Energy Renaissance Fund|N|GER|N|100|N|GER -GES|Guess?, Inc. Common Stock|N|GES|N|100|N|GES -GEUR|AdvisorShares Gartman Gold/Euro ETF|P|GEUR|Y|100|N|GEUR -GEX|Market Vectors Global Alternative Energy ETF|P|GEX|Y|100|N|GEX -GF|New Germany Fund, Inc. (The) Common Stock|N|GF|N|100|N|GF -GFA|Gafisa SA Gafisa S.A. American Depositary Shares|N|GFA|N|100|N|GFA -GFF|Griffon Corporation Common Stock|N|GFF|N|100|N|GFF -GFI|Gold Fields Limited American Depositary Shares|N|GFI|N|100|N|GFI -GFIG|GFI Group Inc. Common Stock|N|GFIG|N|100|N|GFIG -GFY|Western Asset Variable Rate Strategic Fund Inc. Common Stock|N|GFY|N|100|N|GFY -GG|Goldcorp Inc. Common Stock|N|GG|N|100|N|GG -GGB|Gerdau S.A. Common Stock|N|GGB|N|100|N|GGB -GGBP|AdvisorShares Gartman Gold/Pound ETF|P|GGBP|Y|100|N|GGBP -GGE|Guggenheim Enhanced Equity Strategy Fund|N|GGE|N|100|N|GGE -GGG|Graco Inc. Common Stock|N|GGG|N|100|N|GGG -GGM|Guggenheim Credit Allocation Fund Common Shares of Beneficial Interest|N|GGM|N|100|N|GGM -GGN|GAMCO Global Gold, Natural Resources & Income Trust|A|GGN|N|100|N|GGN -GGN$B|GAMCO Global Gold, Natural Reources & Income Trust 5.00% Series B Cumulative 25.00 Liquidation Preference|A|GGNpB|N|100|N|GGN-B -GGOV|ProShares German Sovereign Sub Soverign ETF|P|GGOV|Y|100|N|GGOV -GGP|General Growth Properties, Inc. Common Stock|N|GGP|N|100|N|GGP -GGP$A|General Growth Properties, Inc. Preferred Series A|N|GGPpA|N|100|N|GGP-A -GGT|Gabelli Multi-Media Trust, Inc. (The) Common Stock|N|GGT|N|100|N|GGT -GGT$B|Gabelli Multi-Media Trust, Inc. (The) Preferred Series B|N|GGTpB|N|100|N|GGT-B -GGZ|Gabelli Global Small and Mid Cap Value Trust (The) Common Shares of Beneficial Interest|N|GGZ|N|100|N|GGZ -GHC|Graham Holdings Company Common Stock|N|GHC|N|100|N|GHC -GHI|Global High Income Fund, Inc. Common Stock|N|GHI|N|100|N|GHI -GHL|Greenhill & Co., Inc. Common Stock|N|GHL|N|100|N|GHL -GHM|Graham Corporation Common Stock|N|GHM|N|100|N|GHM -GHY|Prudential Global Short Duration High Yield Fund, Inc. Common Stock|N|GHY|N|100|N|GHY -GHYG|iShares Global High Yield Corporate Bond ETF|Z|GHYG|Y|100|N|GHYG -GIB|CGI Group, Inc. Common Stock|N|GIB|N|100|N|GIB -GIG|GigOptix, Inc. Common Stock|A|GIG|N|100|N|GIG -GII|SPDR S&P Global Infrastructure ETF|P|GII|Y|100|N|GII -GIL|Gildan Activewear, Inc. Class A Sub. Vot. Common Stock|N|GIL|N|100|N|GIL -GIM|Templeton Global Income Fund, Inc. Common Stock|N|GIM|N|100|N|GIM -GIMO|Gigamon Inc. Common Stock|N|GIMO|N|100|N|GIMO -GIS|General Mills, Inc. Common Stock|N|GIS|N|100|N|GIS -GIVE|AdvisorShares Global Echo|P|GIVE|Y|100|N|GIVE -GJH|Synthetic Fixed-Income Securities Inc 6.375% (STRATS) Cl A-1|N|GJH|N|100|N|GJH -GJO|Synthetic Fixed-Income Securities, Inc. Synthetic Fixed-Income Securities, Inc. on behalf of STRATS(SM) Trust for Wal-Mart Stores, Inc. Securities, Series 2004-5|N|GJO|N|100|N|GJO -GJP|Synthetic Fixed-Income Securities, Inc. Synthetic Fixed-Income Securities, Inc. on behalf of STRATS (SM) Trust for Dominion Resources, Inc. Securities, Series 2005-6, Floating Rate Structured Repackaged Asset-Backed Trust Securities (STRATS) Certificates|N|GJP|N|100|N|GJP -GJR|Synthetic Fixed-Income Securities, Inc. STRATS Trust for Procter&Gamble Securities, Series 2006-1|N|GJR|N|100|N|GJR -GJS|Goldman Sachs Group Securities STRATS Trust for Goldman Sachs Group Securities, Series 2006-2|N|GJS|N|100|N|GJS -GJT|Synthetic Fixed-Income Securities, Inc. Synthetic Fixed-Income Securities, Inc. Floating Rate Structured Repackaged Asset-Backed Trust Securities Certificates, Series 2006-3|N|GJT|N|100|N|GJT -GJV|Synthetic Fixed-Income Securities Inc 7.00% Fixed Rate Structured Repackaged Asset-Backed Trust Securities (STRATS)|N|GJV|N|100|N|GJV -GLD|SPDR Gold Trust|P|GLD|Y|100|N|GLD -GLDE|AdvisorShares International Gold ETF|P|GLDE|Y|100|N|GLDE -GLDX|Global X Gold Explorers ETF|P|GLDX|Y|100|N|GLDX -GLF|GulfMark Offshore, Inc. New Common Stock|N|GLF|N|100|N|GLF -GLL|ProShares UltraShort Gold|P|GLL|Y|100|N|GLL -GLO|Clough Global Opportunities Fund Common Stock|A|GLO|N|100|N|GLO -GLOB|Globant S.A. Common Shares|N|GLOB|N|100|N|GLOB -GLOG|GasLog Ltd. Common Shares|N|GLOG|N|100|N|GLOG -GLOP|GasLog Partners LP Common Units representing limited partnership interests|N|GLOP|N|100|N|GLOP -GLOW|Glowpoint, Inc. Common Stock|A|GLOW|N|100|N|GLOW -GLP|Global Partners LP Global Partners LP Common Units representing Limited Partner Interests|N|GLP|N|100|N|GLP -GLPW|Global Power Equipment Group Inc Common Stock|N|GLPW|N|100|N|GLPW -GLQ|Clough Global Equity Fund Clough Global Equity Fund Common Shares of Beneficial Interest|A|GLQ|N|100|N|GLQ -GLT|Glatfelter Common Stock|N|GLT|N|100|N|GLT -GLTR|ETFS Physical Precious Metal Basket Shares ETF|P|GLTR|Y|100|N|GLTR -GLU|Gabelli Global Utility Common Shares of Beneficial Ownership|A|GLU|N|100|N|GLU -GLU$A|The Gabelli Global Utility and Income Trust Series A Cumulative Puttable and Callable Preferred Shares|A|GLUpA|N|100|N|GLU-A -GLV|Clough Global Allocation Fund Common Shares of beneficial interest|A|GLV|N|100|N|GLV -GLW|Corning Incorporated Common Stock|N|GLW|N|100|N|GLW -GM|General Motors Company Common Stock|N|GM|N|100|N|GM -GM.A|General Motors Company Warrant (Expires 07/10/2016)|N|GM/WS/A|N|100|N|GM+A -GM.B|General Motors Company Warrant (Expires 07/10/2019)|N|GM/WS/B|N|100|N|GM+B -GM.C|General Motors Company Warrants (expiring December 31, 2015)|N|GM/WS/C|N|100|N|GM+C -GME|Gamestop Corporation Common Stock|N|GME|N|100|N|GME -GMED|Globus Medical, Inc. Class A Common Stock|N|GMED|N|100|N|GMED -GMF|SPDR S&P Emerging Asia Pacific ETF|P|GMF|Y|100|N|GMF -GMFS|SPDR S&P Small Cap Emerging Asia Pacific ETF|P|GMFS|Y|100|N|GMFS -GMK|GRUMA, S.A.B de C.V. Common Stock|N|GMK|N|100|N|GMK -GML|SPDR S&P Emerging Latin America ETF|P|GML|Y|100|N|GML -GMM|SPDR S&P Emerging Markets ETF|P|GMM|Y|100|N|GMM -GMMB|Columbia Intermediate Municipal Bond Fund|P|GMMB|Y|100|N|GMMB -GMO|General Moly, Inc. Common Stock|A|GMO|N|100|N|GMO -GMOM|Cambria Global Momentum ETF|P|GMOM|Y|100|N|GMOM -GMT|GATX Corporation Common Stock|N|GMT|N|100|N|GMT -GMTB|Columbia Core Bond ETF|P|GMTB|Y|100|N|GMTB -GMZ|Goldman Sachs MLP Income Opportunities Fund|N|GMZ|N|100|N|GMZ -GNAT|WisdomTree Global Natural Resources International Index|P|GNAT|Y|100|N|GNAT -GNC|GNC Holdings, Inc. Class A Common Stock|N|GNC|N|100|N|GNC -GNE|Genie Energy Ltd. Class B Common Stock Stock|N|GNE|N|100|N|GNE -GNE$A|Genie Energy Ltd. Series 2012 - A Preferred Stock, $0.01 par value|N|GNEpA|N|100|N|GNE-A -GNI|Great Northern Iron Ore Properties Common Stock|N|GNI|N|100|N|GNI -GNR|SPDR S&P Global Natural Resources ETF|P|GNR|Y|100|N|GNR -GNRC|Generac Holdlings Inc. Common Stock|N|GNRC|N|100|N|GNRC -GNT|GAMCO Natural Resources, Gold & Income Trust|N|GNT|N|100|N|GNT -GNW|Genworth Financial Inc Common Stock|N|GNW|N|100|N|GNW -GOF|Guggenheim Strategic Opportunities Fund Common Shares of Beneficial Interest|N|GOF|N|100|N|GOF -GOL|Gol Linhas Aereas Inteligentes S.A. Sponsored ADR representing Pfd Shares|N|GOL|N|100|N|GOL -GORO|Gold Resource Corporation Common Stock|A|GORO|N|100|N|GORO -GOV|Government Properties Income Trust Common Shares of Beneficial Interest|N|GOV|N|100|N|GOV -GOVT|iShares Core U.S. Treasury Bond ETF|P|GOVT|Y|100|N|GOVT -GPC|Genuine Parts Company Common Stock|N|GPC|N|100|N|GPC -GPE$A|Georgia Power Company Georgia Power Company 6 1/8% Series Class A Preferred Stock, Non-Cumulative|N|GPEpA|N|100|N|GPE-A -GPI|Group 1 Automotive, Inc. Common Stock|N|GPI|N|100|N|GPI -GPK|Graphic Packaging Holding Company|N|GPK|N|100|N|GPK -GPL|Great Panther Silver Limited Ordinary Shares (Canada)|A|GPL|N|100|N|GPL -GPM|Guggenheim Enhanced Equity Income Fund|N|GPM|N|100|N|GPM -GPN|Global Payments Inc. Common Stock|N|GPN|N|100|N|GPN -GPRK|Geopark Ltd Common Shares|N|GPRK|N|100|N|GPRK -GPS|Gap, Inc. (The) Common Stock|N|GPS|N|100|N|GPS -GPT|Gramercy Property Trust Inc. Common Stock|N|GPT|N|100|N|GPT -GPT$B|Gramercy Property Trust Inc. Preferred Series B|N|GPTpB|N|100|N|GPT-B -GPX|GP Strategies Corporation Common Stock|N|GPX|N|100|N|GPX -GQRE|FlexShares Global Quality Real Estate Index Fund|P|GQRE|Y|100|N|GQRE -GRA|W.R. Grace & Co. Common Stock|N|GRA|N|100|N|GRA -GRAM|Grana y Montero S.A.A. American Depositary Shares, each representing five Common Shares|N|GRAM|N|100|N|GRAM -GRC|Gorman-Rupp Company (The) Common Stock|A|GRC|N|100|N|GRC -GREK|Global X FTSE Greece 20 ETF|P|GREK|Y|100|N|GREK -GRES|IQ ARB Global Resources ETF|P|GRES|Y|100|N|GRES -GRF|Eagle Capital Growth Fund, Inc. Common Stock|A|GRF|N|100|N|GRF -GRH|GreenHunter Resources, Inc. Common stock|A|GRH|N|100|N|GRH -GRH$C|GreenHunter Resources, Inc. 10% Series C Cumulative Preferred Stock|A|GRHpC|N|100|N|GRH-C -GRI|Cohen & Steers Global Realty Majors ETF|P|GRI|Y|100|N|GRI -GRN|iPath Global Carbon ETN|P|GRN|N|100|N|GRN -GRO|Agria Corporation American Depositary Shares|N|GRO|N|100|N|GRO -GRP.U|Granite Real Estate Inc. Stapled Units, each consisting of one unit of Granite Real Estate Trust and one common share of Granite REIT Inc.|N|GRP/U|N|100|N|GRP= -GRR|Asia Tigers Fund, Inc. (The) Common Stock|N|GRR|N|100|N|GRR -GRU|AB Svensk Ekportkredit (Swedish Export Credit Corporation) ELEMENTS Linked to the MLCX Grains Index - Total Return|P|GRU|N|100|N|GRU -GRUB|GrubHub Inc. Common Stock|N|GRUB|N|100|N|GRUB -GRWN|iPath Pure Beta Softs ETN|P|GRWN|N|100|N|GRWN -GRX|The Gabelli Healthcare & Wellness Trust Common Shares of Beneficial Interest|N|GRX|N|100|N|GRX -GRX$A|Gabelli Healthcare PFD SER A|N|GRXpA|N|100|N|GRX-A -GRX$B|Gabelli Healthcare Preferred Series B|N|GRXpB|N|100|N|GRX-B -GS|Goldman Sachs Group, Inc. (The) Common Stock|N|GS|N|100|N|GS -GS$A|Goldman Sachs Group, Inc. (The) Depositary Shares each representing 1/1000th Interest in a Share of Floating Rate Non-Cumulative Preferred Stock Series A|N|GSpA|N|100|N|GS-A -GS$B|Goldman Sachs Group, Inc. (The) Depositary Share repstg 1/1000th Preferred Series B|N|GSpB|N|100|N|GS-B -GS$C|Goldman Sachs Group, Inc. (The) Depositary Share repstg 1/1000th Preferred Series C|N|GSpC|N|100|N|GS-C -GS$D|Goldman Sachs Group, Inc. (The) Dep Shs repstg 1/1000 Pfd Ser D Fltg|N|GSpD|N|100|N|GS-D -GS$I|Goldman Sachs Group, Inc. (The) Perpetual Preferred Series I|N|GSpI|N|100|N|GS-I -GS$J|Goldman Sachs Group Inc Depositary Shs Repstg 1/1000th Pfd Ser J Fixed to Fltg Rate|N|GSpJ|N|100|N|GS-J -GS$K|Goldman Sachs Group, Inc. (The) Dep Shs Repstg 1/1000 Int Sh Fxd/Fltg Non Cum Pfd Stk Ser K|N|GSpK|N|100|N|GS-K -GSAT|Globalstar, Inc. Common Stock|A|GSAT|N|100|N|GSAT -GSB|GlobalSCAPE, Inc. Common Stock|A|GSB|N|100|N|GSB -GSC|Goldman Sachs Connect S&P Enhanced Commodity Total Return Strategy Index|P|GSC|N|100|N|GSC -GSF|Goldman Sachs Group, Inc. (The) 6.125% Notes due 2060|N|GSF|N|100|N|GSF -GSG|iShares GSCI Commodity-Indexed Trust Fund|P|GSG|Y|100|N|GSG -GSH|Guangshen Railway Company Limited Common Stock|N|GSH|N|100|N|GSH -GSI|General Steel Holdings, Inc. Common Stock|N|GSI|N|100|N|GSI -GSJ|Goldman Sachs Group, Inc. (The) 6.50% Notes due 2061|N|GSJ|N|100|N|GSJ -GSK|GlaxoSmithKline PLC Common Stock|N|GSK|N|100|N|GSK -GSL|Global Ship Lease Inc New Class A Common Shares|N|GSL|N|100|N|GSL -GSL$B|Global Ship Lease, Inc. Depository Shares Representing 1/100th Perpetual Preferred Series B% (Marshall Island)|N|GSLpB|N|100|N|GSL-B -GSP|Barclays Bank PLC iPath Exchange Traded Notes due June 12, 2036 Linked to GSCI Total Return Index|P|GSP|N|100|N|GSP -GSS|Golden Star Resources, Ltd Common Stock|A|GSS|N|100|N|GSS -GST|Gastar Exploration Inc Common Stock|A|GST|N|100|N|GST -GST$A|Gastar Exploration 8.625% Series A Cumulative Preferred Stock|A|GSTpA|N|100|N|GST-A -GST$B|Gastar Exploration Inc. Pfd Ser B %|A|GSTpB|N|100|N|GST-B -GSV|Gold Standard Ventures Corporation Common Stock (Canada)|A|GSV|N|100|N|GSV -GSY|Guggenheim Enhanced Short Duration ETF|P|GSY|Y|100|N|GSY -GTAA|AdvisorShares Morgan Creek Global Tactical ETF|P|GTAA|Y|100|N|GTAA -GTE|Gran Tierra Energy Inc. Common Stock|A|GTE|N|100|N|GTE -GTI|GrafTech International Ltd (Holding Co.) Common Stock|N|GTI|N|100|N|GTI -GTIP|iShares Global Inflation Linked Bond ETF|P|GTIP|Y|100|N|GTIP -GTN|Gray Communications Systems, Inc. Common Stock|N|GTN|N|100|N|GTN -GTN.A|Gray Television, Inc. CLass A Common Stock|N|GTN/A|N|100|N|GTN.A -GTS|Triple-S Management Corporation Class B Common Stock|N|GTS|N|100|N|GTS -GTT|GTT Communications, Inc. Common Stock|N|GTT|N|100|N|GTT -GTU|Central Gold Trust Ordinary Shares (Canada)|A|GTU|N|100|N|GTU -GTY|Getty Realty Corporation Common Stock|N|GTY|N|100|N|GTY -GUA|Gulf Power Company Series 2011A 5.75% Senior Notes due June 1, 2051|N|GUA|N|100|N|GUA -GUNR|FlexShares Global Upstream Natural Resources Index Fund ETF|P|GUNR|Y|100|N|GUNR -GUR|SPDR S&P Emerging Europe ETF|P|GUR|Y|100|N|GUR -GURI|Global X Guru International Index ETF|P|GURI|Y|100|N|GURI -GURU|Global X Guru Index ETF|P|GURU|Y|100|N|GURU -GURX|Global X Guru Small Cap Index ETF|P|GURX|Y|100|N|GURX -GUT|Gabelli Utility Trust (The) Common Stock|N|GUT|N|100|N|GUT -GUT$A|Gabelli Utility Trust (The) 5.625% Series A Cumulative Preferred Shares|N|GUTpA|N|100|N|GUT-A -GV|Goldfield Corporation (The) Common Stock|A|GV|N|100|N|GV -GVA|Granite Construction Incorporated Common Stock|N|GVA|N|100|N|GVA -GVAL|Cambria Global Value ETF|P|GVAL|Y|100|N|GVAL -GVI|iShares Intermediate Government/Credit Bond ETF|P|GVI|Y|100|N|GVI -GVP|GSE Systems, Inc. Common Stock|A|GVP|N|100|N|GVP -GVT|Columbia Select Large Cap Value ETF|P|GVT|Y|100|N|GVT -GWB|Great Western Bancorp, Inc. Common Stock|N|GWB|N|100|N|GWB -GWL|SPDR S&P World ex-US ETF|P|GWL|Y|100|N|GWL -GWR|Genesee & Wyoming Inc. Class A Common Stock|N|GWR|N|100|N|GWR -GWRE|Guidewire Software, Inc. Common Stock|N|GWRE|N|100|N|GWRE -GWRU|Genesee & Wyoming, Inc. Tangible Equity Unit|N|GWRU|N|100|N|GWRU -GWW|W.W. Grainger, Inc. Common Stock|N|GWW|N|100|N|GWW -GWX|SPDR S&P International SmallCap ETF|P|GWX|Y|100|N|GWX -GXC|SPDR S&P China ETF|P|GXC|Y|100|N|GXC -GXF|Global X FTSE Nordic Region ETF|P|GXF|Y|100|N|GXF -GXG|Global X MSCI Colombia ETF|P|GXG|Y|100|N|GXG -GXP|Great Plains Energy Incorporated Common Stock|N|GXP|N|100|N|GXP -GXP$A|Great Plains Energy Incorporated Preferred Stock|N|GXPpA|N|10|N|GXP-A -GXP$D|Great Plains Energy Incorporated Preferred Stock|N|GXPpD|N|10|N|GXP-D -GXP$E|Great Plains Energy Incorporated Preferred Stock|N|GXPpE|N|10|N|GXP-E -GY|GenCorp Inc. Common Stock|N|GY|N|100|N|GY -GYB|CABCO Series 2004-101 Trust Goldman Sachs Capital I, Floating Rate Callable Certificates|N|GYB|N|100|N|GYB -GYC|Corporate Asset Backed Corp CABCO Corporate Asset Backed Corporation CABCO Series 2004-102 Trust (SBC Communications, Inc.) Collared Floating Rate Cllable Certificates|N|GYC|N|100|N|GYC -GYEN|AdvisorShares Gartman Gold/Yen ETF|P|GYEN|Y|100|N|GYEN -GYLD|Arrow Dow Jones Global Yield ETF ETF|P|GYLD|Y|100|N|GYLD -GZT|Gazit-Globe Ltd. Ordinary Shares|N|GZT|N|100|N|GZT -H|Hyatt Hotels Corporation Class A Common Stock|N|H|N|100|N|H -HACK|PureFunds ISE Cyber Security ETF|P|HACK|Y|100|N|HACK -HAE|Haemonetics Corporation Common Stock|N|HAE|N|100|N|HAE -HAL|Halliburton Company Common Stock|N|HAL|N|100|N|HAL -HAO|Guggenheim China Small Cap Index ETF|P|HAO|Y|100|N|HAO -HAP|Market Vectors Natural Resources ETF|P|HAP|Y|100|N|HAP -HAR|Harman International Industries, Incorporated Common Stock|N|HAR|N|100|N|HAR -HASI|Hannon Armstrong Sustainable Infrastructure Capital, Inc. Common Stock|N|HASI|N|100|N|HASI -HBI|Hanesbrands Inc. Common Stock|N|HBI|N|100|N|HBI -HBM|Hudbay Minerals Inc Ordinary Shares (Canada)|N|HBM|N|100|N|HBM -HBM.W|HudBay Minerals Inc Warrants Expiring 07/20/2018 (Canada)|N|HBM/WS|N|100|N|HBM+ -HCA|HCA Holdings, Inc. Common Stock|N|HCA|N|100|N|HCA -HCC|HCC Insurance Holdings, Inc. Common Stock|N|HCC|N|100|N|HCC -HCHC|HC2 Holdings, Inc. Common Stock|A|HCHC|N|100|N|HCHC -HCI|HCI Group, Inc. Common Stock|N|HCI|N|100|N|HCI -HCJ|HCI Group, Inc. 8% Senior Notes due 2020|N|HCJ|N|100|N|HCJ -HCLP|Hi-Crush Partners LP Common Units representing limited partner interests|N|HCLP|N|100|N|HCLP -HCN|Health Care REIT, Inc. Common Stock|N|HCN|N|100|N|HCN -HCN$I|Health Care REIT, Inc. PFD PERPETUAL CONV SER I|N|HCNpI|N|100|N|HCN-I -HCN$J|HEALTH CARE REIT INC Preferred Stock 6.5% PFD SERIES J|N|HCNpJ|N|100|N|HCN-J -HCP|HCP, Inc. Common Stock|N|HCP|N|100|N|HCP -HD|Home Depot, Inc. (The) Common Stock|N|HD|N|100|N|HD -HDB|HDFC Bank Limited Common Stock|N|HDB|N|100|N|HDB -HDG|ProShares Hedge Replication ETF|P|HDG|Y|100|N|HDG -HDGE|Ranger Equity Bear Bear ETF|P|HDGE|Y|100|N|HDGE -HDLV|ETRACS Montly Pay 2xLeveraged US High Dividend Low Volatility ETN due September 30, 2044|P|HDLV|N|100|N|HDLV -HDV|iShares Core High Dividend ETF|P|HDV|Y|100|N|HDV -HDY|HyperDynamics Corporation Common Stock|N|HDY|N|100|N|HDY -HE|Hawaiian Electric Industries, Inc. Common Stock|N|HE|N|100|N|HE -HE$U|Hawaiian Electric Industries, Inc. 6.5 % Cum QUIPS|N|HEpU|N|100|N|HE-U -HEB|Hemispherx BioPharma, Inc. Common Stock|A|HEB|N|100|N|HEB -HECO|Huntington EcoLogical Strategy ETF|P|HECO|Y|100|N|HECO -HEDJ|WisdomTree Europe Hedged Equity Fund|P|HEDJ|Y|100|N|HEDJ -HEEM|iShares Currency Hedged MSCI Emerging Markets ETF|P|HEEM|Y|100|N|HEEM -HEFA|iShares Currency Hedged MSCI EAFE ETF|P|HEFA|Y|100|N|HEFA -HEI|Heico Corporation Common Stock|N|HEI|N|100|N|HEI -HEI.A|Heico Corporation Common Stock|N|HEI/A|N|100|N|HEI.A -HELI|CHC Group Ltd. Ordinary Shares|N|HELI|N|100|N|HELI -HEP|Holly Energy Partners, L.P. Common Stock|N|HEP|N|100|N|HEP -HEQ|John Hancock Hedged Equity & Income Fund Common Shares of Beneficial Interest|N|HEQ|N|100|N|HEQ -HES|Hess Corporation Common Stock|N|HES|N|100|N|HES -HEVY|iPath Pure Beta Industrial Metals ETN|P|HEVY|N|100|N|HEVY -HEWG|iShares Currency Hedged MSCI Germany ETF|P|HEWG|Y|100|N|HEWG -HEWJ|iShares Currency Hedged MSCI Japan ETF|P|HEWJ|Y|100|N|HEWJ -HEZU|iShares Trust iShares Currency Hedged MSCI EMU ETF|P|HEZU|Y|100|N|HEZU -HF|HFF, Inc. Common Stock, Class A|N|HF|N|100|N|HF -HFC|HollyFrontier Corporation Common Stock|N|HFC|N|100|N|HFC -HFIN|Horizons S&P Financial Select Sector Covered Call ETF|P|HFIN|Y|100|N|HFIN -HGG|HHGregg, Inc. Common Stock|N|HGG|N|100|N|HGG -HGH|Hartford Financial Services Group, Inc. (The) 7.875% Fixed to Floating Rate Junior Subordinated Debentures due 2042|N|HGH|N|100|N|HGH -HGI|Guggenheim International Multi-Asset Income Index ETF|P|HGI|Y|100|N|HGI -HGR|Hanger, Inc. Common Stock ($0.01 Par Value)|N|HGR|N|100|N|HGR -HGT|Hugoton Royalty Trust Common Stock|N|HGT|N|100|N|HGT -HH|Hooper Holmes, Inc. Common Stock|A|HH|N|100|N|HH -HHC|Howard Hughes Corporation (The) Common Stock|N|HHC|N|100|N|HHC -HHS|Harte-Hanks, Inc. Common Stock|N|HHS|N|100|N|HHS -HHY|Brookfield High Income Fund Inc.|N|HHY|N|100|N|HHY -HI|Hillenbrand Inc Common Stock|N|HI|N|100|N|HI -HIE|Miller/Howard High Income Equity Fund Common Shares of Beneficial Interest|N|HIE|N|100|N|HIE -HIG|Hartford Financial Services Group, Inc. (The) Common Stock|N|HIG|N|100|N|HIG -HIG.W|Hartford Financial Services Group, Inc. (The) Warrants expiring June 26, 2019|N|HIG/WS|N|100|N|HIG+ -HII|Huntington Ingalls Industries, Inc. Common Stock|N|HII|N|100|N|HII -HIL|Hill International, Inc. Common Stock|N|HIL|N|100|N|HIL -HILO|EGShares Low Volatility Emerging Markets Dividend ETF|P|HILO|Y|100|N|HILO -HIO|Western Asset High Income Opportunity Fund, Inc. Common Stock|N|HIO|N|100|N|HIO -HIPS|Master Income ETF|P|HIPS|Y|100|N|HIPS -HIVE|Aerohive Networks, Inc. Common Stock|N|HIVE|N|100|N|HIVE -HIW|Highwoods Properties, Inc. Common Stock|N|HIW|N|100|N|HIW -HIX|Western Asset High Income Fund II Inc. Common Stock|N|HIX|N|100|N|HIX -HJV|MS Structured Asset Corp MS Structured Asset Corp. SATURNS J.C. Penney Company, Inc. Debenture Backed Series 2007-1, 7% Callable Class A Units|N|HJV|N|100|N|HJV -HK|Halcon Resources Corporation Common Stock|N|HK|N|100|N|HK -HKOR|Horizons Korea KOSPI 200 ETF|P|HKOR|Y|100|N|HKOR -HL|Hecla Mining Company Common Stock|N|HL|N|100|N|HL -HL$B|Hecla Mining Company Preferred Stock|N|HLpB|N|100|N|HL-B -HLF|Herbalife Ltd. Common Stock|N|HLF|N|100|N|HLF -HLM$|Hillman Group Capital Trust Preferred Stock|A|HLMp|N|100|N|HLM- -HLS|HealthSouth Corporation Common Stock|N|HLS|N|100|N|HLS -HLT|Hilton Worldwide Holdings Inc. Common Stock|N|HLT|N|100|N|HLT -HLX|Helix Energy Solutions Group, Inc. Common Stock|N|HLX|N|100|N|HLX -HMC|Honda Motor Company, Ltd. Common Stock|N|HMC|N|100|N|HMC -HME|Home Properties, Inc. Common Stock|N|HME|N|100|N|HME -HMG|HMG/Courtland Properties, Inc. Common Stock|A|HMG|N|100|N|HMG -HMLP|Hoegh LNG Partners LP Common Units representing Limited Partner Interests|N|HMLP|N|100|N|HMLP -HMN|Horace Mann Educators Corporation Common Stock|N|HMN|N|100|N|HMN -HMY|Harmony Gold Mining Company Limited|N|HMY|N|100|N|HMY -HNI|HNI Corporation Common Stock|N|HNI|N|100|N|HNI -HNP|Huaneng Power Intl Common Stock|N|HNP|N|100|N|HNP -HNR|Harvest Natural Resources Inc|N|HNR|N|100|N|HNR -HNT|Health Net Inc. Common Stock|N|HNT|N|100|N|HNT -HNW|Pioneer Diversified High Income Trust Pioneer Diversified High Income Trust Common Shares of Beneficial Interest|A|HNW|N|100|N|HNW -HOG|Harley-Davidson, Inc. Common Stock|N|HOG|N|100|N|HOG -HOLD|AdvisorShares Sage Core Reserves ETF|P|HOLD|Y|100|N|HOLD -HON|Honeywell International Inc. Common Stock|N|HON|N|100|N|HON -HOS|Hornbeck Offshore Services Common Stock|N|HOS|N|100|N|HOS -HOT|Starwood Hotels & Resorts Worldwide, Inc. Common Stock|N|HOT|N|100|N|HOT -HOV|Hovnanian Enterprises, Inc. Class A Common Stock|N|HOV|N|100|N|HOV -HP|Helmerich & Payne, Inc. Common Stock|N|HP|N|100|N|HP -HPF|John Hancock Pfd Income Fund II Pfd Income Fund II|N|HPF|N|100|N|HPF -HPI|John Hancock Preferred Income Fund Common Shares of Beneficial Interest|N|HPI|N|100|N|HPI -HPP|Hudson Pacific Properties, Inc. Common Stock|N|HPP|N|100|N|HPP -HPP$B|Hudson Pacific Properties, Inc. 8.375% Series B Cumulative Redeemable Preferred shares|N|HPPpB|N|100|N|HPP-B -HPQ|Hewlett-Packard Company Common Stock|N|HPQ|N|100|N|HPQ -HPS|John Hancock Preferred Income Fund III Preferred Income Fund III|N|HPS|N|100|N|HPS -HPT|Hospitality Properites Trust Common Stock|N|HPT|N|100|N|HPT -HPT$D|Hospitality Properties Trust Preferred Stock|N|HPTpD|N|100|N|HPT-D -HPY|Heartland Payment Systems, Inc. Common Stock|N|HPY|N|100|N|HPY -HQH|Tekla Healthcare Investors Common Stock|N|HQH|N|100|N|HQH -HQL|TeklaLife Sciences Investors Common Stock|N|HQL|N|100|N|HQL -HR|Healthcare Realty Trust Incorporated Common Stock|N|HR|N|100|N|HR -HRB|H&R Block, Inc. Common Stock|N|HRB|N|100|N|HRB -HRC|Hill-Rom Holdings Inc Common Stock|N|HRC|N|100|N|HRC -HRG|Harbinger Group Inc Common Stock|N|HRG|N|100|N|HRG -HRL|Hormel Foods Corporation Common Stock|N|HRL|N|100|N|HRL -HRS|Harris Corporation Common Stock|N|HRS|N|100|N|HRS -HRT|Arrhythmia Research Technology Inc. Common Stock|A|HRT|N|100|N|HRT -HRTG|Heritage Insurance Holdings, Inc. Common Stock|N|HRTG|N|100|N|HRTG -HSBC|HSBC Holdings, plc. Common Stock|N|HSBC|N|100|N|HSBC -HSBC$A|HSBC Holdings, plc. ADR SER A REP 1/40 PFD SER A|N|HSBCpA|N|100|N|HSBC-A -HSC|Harsco Corporation Common Stock|N|HSC|N|100|N|HSC -HSEA|HSBC Holdings, plc. Perpetual Sub Cap Secs|N|HSEA|N|100|N|HSEA -HSEB|HSBC Holdings plc PERP SUB CAP SECS EXCH PREF SHS SER 2 (United Kingdom)|N|HSEB|N|100|N|HSEB -HSFC$B|HSBC Finance Corp Dep. Shares reptsg 1/40 Preferred Series B|N|HSFCpB|N|100|N|HSFC-B -HSP|Hospira Inc|N|HSP|N|100|N|HSP -HSPX|Horizons S&P 500 Covered Call|P|HSPX|Y|100|N|HSPX -HST|Host Hotels & Resorts, Inc. Common Stock|N|HST|N|100|N|HST -HSY|The Hershey Company Common Stock|N|HSY|N|100|N|HSY -HT|Hersha Hospitality Trust Class A Common Shares of Beneficial Interest|N|HT|N|100|N|HT -HT$B|Hersha Hospitality Trust PFD SER B|N|HTpB|N|100|N|HT-B -HT$C|Hersha Hospitality Trust 6.875% Series C Cumulative Redeemable Preferred Shares of Beneficial Interest|N|HTpC|N|100|N|HT-C -HTA|Healthcare Trust of America, Inc. Class A Common Stock|N|HTA|N|100|N|HTA -HTD|John Hancock Tax Advantaged Dividend Income Fund Common Shares of Beneficial Interest|N|HTD|N|100|N|HTD -HTF|Horizon Technology Finance Corporation 7.375% Senior Notes due 2019|N|HTF|N|100|N|HTF -HTGC|Hercules Technology Growth Capital, Inc. Common Stock|N|HTGC|N|100|N|HTGC -HTGX|Hercules Technology Growth Capital, Inc. 6.25% Notes due 2024|N|HTGX|N|100|N|HTGX -HTGY|Hercules Technology Growth Capital, Inc. 7.00% Senior Notes due 2019|N|HTGY|N|100|N|HTGY -HTGZ|Hercules Technology Growth Capital, Inc. 7.00% Note due 2019|N|HTGZ|N|100|N|HTGZ -HTH|Hilltop Holdings Inc.|N|HTH|N|100|N|HTH -HTM|U.S. Geothermal Inc. Common Stock|A|HTM|N|100|N|HTM -HTR|Brookfield Total Return Fund Inc. (The) Common Stock|N|HTR|N|100|N|HTR -HTS|Hatteras Financial Corp Hatteras Financial Corp Common Stock|N|HTS|N|100|N|HTS -HTS$A|Hatteras Financial Corp Cum Redeemable Pfd Ser A|N|HTSpA|N|100|N|HTS-A -HTY|John Hancock Tax-Advantaged Global Shareholder Yield Fund Common Shares of Beneficial Interest|N|HTY|N|100|N|HTY -HTZ|Hertz Global Holdings, Inc Common Stock|N|HTZ|N|100|N|HTZ -HUB.A|Hubbell Inc A Common Stock|N|HUB/A|N|100|N|HUB.A -HUB.B|Hubbell Inc Common Stock Class B|N|HUB/B|N|100|N|HUB.B -HUBS|HubSpot, Inc. Common Stock|N|HUBS|N|100|N|HUBS -HUM|Humana Inc. Common Stock|N|HUM|N|100|N|HUM -HUN|Huntsman Corporation Common Stock|N|HUN|N|100|N|HUN -HUSA|Houston American Energy Corporation Common Stock|A|HUSA|N|100|N|HUSA -HUSE|Huntington US Equity Rotation Strategy ETF|P|HUSE|Y|100|N|HUSE -HUSI$D|HSBC USA, Inc. Preferred Stock|N|HUSIpD|N|100|N|HUSI-D -HUSI$F|HSBC USA, Inc. Preferred Series F Floating Rate|N|HUSIpF|N|100|N|HUSI-F -HUSI$G|HSBC USA, Inc. Dep Shs repstg 1/40 Preferred Series G|N|HUSIpG|N|100|N|HUSI-G -HUSI$H|HSBC USA, Inc. Depositary Sh repstg 1/40th Preferred Series H|N|HUSIpH|N|100|N|HUSI-H -HUSI$Z|HSBC USA, Inc. Preferred Stock|N|HUSIpZ|N|100|N|HUSI-Z -HVB|Hudson Valley Holding Corp. Common Stock|N|HVB|N|100|N|HVB -HVPW|U.S. Equity High Volatility Put Write Index Fund|P|HVPW|Y|100|N|HVPW -HVT|Haverty Furniture Companies, Inc. Common Stock|N|HVT|N|100|N|HVT -HVT.A|Haverty Furniture Companies, Inc. Common Stock|N|HVT/A|N|100|N|HVT.A -HW|Headwaters Incorporated Common Stock|N|HW|N|100|N|HW -HXL|Hexcel Corporation Common Stock|N|HXL|N|100|N|HXL -HY|Hyster-Yale Materials Handling, Inc. Class A Common Stock|N|HY|N|100|N|HY -HYB|New America High Income Fund, Inc. (The) Common Stock|N|HYB|N|100|N|HYB -HYD|Market Vectors High Yield Municipal Index ETF|P|HYD|Y|100|N|HYD -HYEM|Market Vectors Emerging Markets High Yield Bond ETF|P|HYEM|Y|100|N|HYEM -HYF|Managed High Yield Plus Fund, Inc. Common Stock|N|HYF|N|100|N|HYF -HYG|iShares iBoxx $ High Yield Corporate Bond ETF|P|HYG|Y|100|N|HYG -HYGH|iShares Interest Rate Hedged High Yield Bond ETF|P|HYGH|Y|100|N|HYGH -HYH|Halyard Health, Inc. Common Stock|N|HYH|N|100|N|HYH -HYHG|ProShares High Yield Interest Rate Hedged|Z|HYHG|Y|100|N|HYHG -HYI|Western Asset High Yield Defined Opportunity Fund Inc. Common Stock|N|HYI|N|100|N|HYI -HYLD|Peritus High Yield ETF|P|HYLD|Y|100|N|HYLD -HYMB|SPDR Nuveen S&P High Yield Municipal Bond ETF|P|HYMB|Y|100|N|HYMB -HYS|PIMCO 0-5 Year High Yield Corporat Bond Index Exchange-Traded Fund|P|HYS|Y|100|N|HYS -HYT|Blackrock Corporate High Yield Fund, Inc. Common Stock|N|HYT|N|100|N|HYT -HYXU|iShares Global ex USD High Yield Corporate Bond ETF|Z|HYXU|Y|100|N|HYXU -HZO|MarineMax, Inc. Common Stock|N|HZO|N|100|N|HZO -I|Intelsat S.A. Common Shares|N|I|N|100|N|I -I$A|Intelsat S.A. Series A mandatory convefrtible junior non-voting preferred shares|N|IpA|N|100|N|I-A -IAE|Voya Asia Pacific High Dividend Equity Income Fund ING Asia Pacific High Dividend Equity Income Fund Common Shares of Beneficial Interest|N|IAE|N|100|N|IAE -IAF|Aberdeen Australia Equity Fund Inc Common Stock|A|IAF|N|100|N|IAF -IAG|Iamgold Corporation Ordinary Shares|N|IAG|N|100|N|IAG -IAI|iShares U.S. Broker-Dealers ETF|P|IAI|Y|100|N|IAI -IAK|iShares U.S. Insurance ETF|P|IAK|Y|100|N|IAK -IAT|iShares U.S. Regional Banks ETF|P|IAT|Y|100|N|IAT -IAU|ishares Gold Trust|P|IAU|Y|100|N|IAU -IBA|Industrias Bachoco, S.A.B. de C.V. Common Stock|N|IBA|N|100|N|IBA -IBCB|iShares iBonds Mar 2016 Corporate ex-Financials Term ETF|P|IBCB|Y|100|N|IBCB -IBCC|iShares iBonds Mar 2018 Corporate ex-Financials Term ETF|P|IBCC|Y|100|N|IBCC -IBCD|iShares iBonds Mar 2020 Corporate ex-Financials Term ETF|P|IBCD|Y|100|N|IBCD -IBCE|iShares iBonds Mar Bond Corporate ex-Financials Term ETF|P|IBCE|Y|100|N|IBCE -IBDA|iShares iBonds Mar 2016 Corporate ETF|P|IBDA|Y|100|N|IBDA -IBDB|iShares iBonds Mar 2018 Corporate ETF|P|IBDB|Y|100|N|IBDB -IBDC|iShares iBonds Mar 2020 Corporate Term ETF|P|IBDC|Y|100|N|IBDC -IBDD|iShares iBonds Mar 2023 Corporate Term ETF|P|IBDD|Y|100|N|IBDD -IBDF|iShares iBonds Dec 2016 Corporate ETF|P|IBDF|Y|100|N|IBDF -IBDH|iShares iBonds Dec 2018 Corporate Term ETF|P|IBDH|Y|100|N|IBDH -IBDL|iShares iBonds Dec 2020 Corporate ETF|P|IBDL|Y|100|N|IBDL -IBIO|iBio, Inc. Common Stock|A|IBIO|N|100|N|IBIO -IBLN|Direxion iBillionaire Index ETF|P|IBLN|Y|100|N|IBLN -IBM|International Business Machines Corporation Common Stock|N|IBM|N|100|N|IBM -IBMD|iShares iBonds Sep 2015 AMT-Free Muni Bond ETF|P|IBMD|Y|100|N|IBMD -IBME|iShares iBonds Sep 2016 AMT-Free Muni Bond ETF|P|IBME|Y|100|N|IBME -IBMF|iShares iBonds Sep 2017 AMT-Free Muni Bond ETF|P|IBMF|Y|100|N|IBMF -IBMG|iShares iBonds Sep 2018 AMT-Free Bond Term|P|IBMG|Y|100|N|IBMG -IBMH|iShares iBonds Sep 2019 AMT-Free Muni Bond ETF|P|IBMH|Y|100|N|IBMH -IBMI|iShares iBonds Sep 2020 AMT-Free Muni Bond ETF|P|IBMI|Y|100|N|IBMI -IBN|ICICI Bank Limited Common Stock|N|IBN|N|100|N|IBN -IBND|SPDR Barclays International Bond ETF|P|IBND|Y|100|N|IBND -IBO|IBO (Listing Market - NYSE Amex Network B F) Common Stock|A|IBO|N|100|Y|IBO -IBP|Installed Building Products, Inc. Common Stock|N|IBP|N|100|N|IBP -ICA|Empresas Ica Soc Contrladora Common Stock|N|ICA|N|100|N|ICA -ICB|MS Income Securities, Inc. Common Stock|N|ICB|N|100|N|ICB -ICD|Independence Contract Drilling, Inc. Common Stock|N|ICD|N|100|N|ICD -ICE|Intercontinental Exchange Inc. Common Stock|N|ICE|N|100|N|ICE -ICF|iShares Cohen & Steers REIT ETF|P|ICF|Y|100|N|ICF -ICI|iPath iPath Optimized Currency Carry ETN|P|ICI|N|100|N|ICI -ICL|Israel Chemicals Limited Ordinary Shares|N|ICL|N|100|N|ICL -ICN|WisdomTree Indian Rupee Strategy Fund|P|ICN|Y|100|N|ICN -ICOL|iShares MSCI Colombia Capped|P|ICOL|Y|100|N|ICOL -ICSH|iShares Liquidity Income ETF|Z|ICSH|Y|100|N|ICSH -IDA|IDACORP, Inc. Common Stock|N|IDA|N|100|N|IDA -IDE|Voya Infrastructure, Industrials and Materials Fund Common Shares of Beneficial Interest|N|IDE|N|100|N|IDE -IDG|ING GROEP N V PREF CTF 7.3750% Perp Hybrid Cap Secs (Netherlands)|N|IDG|N|100|N|IDG -IDHB|PowerShares S&P International Developed High Beta Portfolio Exchange Traded Fund|P|IDHB|Y|100|N|IDHB -IDHQ|PowerShares S&P International Developed High Quality Portfolio (S&P International Developed High Quality Ranking Index--index symbol SPIDHQR)|P|IDHQ|Y|100|N|IDHQ -IDI|Tiger Media, Inc.|A|IDI|N|100|N|IDI -IDLV|PowerShares S&P International Developed Low Volatility Portfolio|P|IDLV|Y|100|N|IDLV -IDN|Intellicheck Mobilisa, Inc. Common Stock|A|IDN|N|100|N|IDN -IDOG|ALPS International Sector Dividend Dogs ETF|P|IDOG|Y|100|N|IDOG -IDT|IDT Corporation Class B Common Stock|N|IDT|N|100|N|IDT -IDU|iShares U.S. Utilities ETF|P|IDU|Y|100|N|IDU -IDV|iShares International Select Dividend ETF|P|IDV|Y|100|N|IDV -IDX|Market Vectors Indonesia Index ETF|P|IDX|Y|100|N|IDX -IDXJ|Market Vectors Indonesia Small Cap ETF|P|IDXJ|Y|100|N|IDXJ -IEC|IEC Electronics Corp. Common Stock|A|IEC|N|100|N|IEC -IEF|iShares 7-10 Year Treasury Bond ETF|P|IEF|Y|100|N|IEF -IEFA|iShares Core MSCI EAFE ETF|P|IEFA|Y|100|N|IEFA -IEH|Integrys Energy Group 6.00% Junior Subordinated Notes Due 2073|N|IEH|N|100|N|IEH -IEI|iShares 3-7 Year Treasury Bond ETF|P|IEI|Y|100|N|IEI -IEIL|iShares Enhanced International Large-Cap ETF|P|IEIL|Y|100|N|IEIL -IEIS|iShares Enhanced International Small-Cap ETF|P|IEIS|Y|100|N|IEIS -IELG|iShares Enhanced U.S. Large-Cap|P|IELG|Y|100|N|IELG -IEMG|iShares Core MSCI Emerging Markets ETF|P|IEMG|Y|100|N|IEMG -IEO|iShares U.S. Oil & Gas Exploration & Production ETF|P|IEO|Y|100|N|IEO -IESM|iShares Enhanced U.S. Small-Cap|P|IESM|Y|100|N|IESM -IEUR|iShares Core MSCI Europe ETF|P|IEUR|Y|100|N|IEUR -IEV|iShares Europe ETF|P|IEV|Y|100|N|IEV -IEX|IDEX Corporation Common Stock|N|IEX|N|100|N|IEX -IEZ|iShares U.S. Oil Equipment & Services ETF|P|IEZ|Y|100|N|IEZ -IF|Aberdeen Indonesia Fund, Inc. (Common Stock|A|IF|N|100|N|IF -IFF|Internationa Flavors & Fragrances, Inc. Common Stock|N|IFF|N|100|N|IFF -IFMI|Institutional Financial Markets, Inc.|A|IFMI|N|100|N|IFMI -IFN|India Fund, Inc. (The) Common Stock|N|IFN|N|100|N|IFN -IFT|Imperial Holdings, Inc. Common Stock|N|IFT|N|100|N|IFT -IG|IGI, Laboratories Inc. Common Stock|A|IG|N|100|N|IG -IGA|Voya Global Advantage and Premium Opportunity Fund Common Shares of Beneficial Interest|N|IGA|N|100|N|IGA -IGC|India Globalization Capital Inc. Common Stock|A|IGC|N|100|N|IGC -IGC.W|India Globalization Capital Inc. Warrants|A|IGC/WS|N|100|N|IGC+ -IGD|Voya Global Equity Dividend and Premium Opportunity Fund|N|IGD|N|100|N|IGD -IGE|iShares North American Natural Resources ETF|P|IGE|Y|100|N|IGE -IGF|iShares Global Infrastructure ETF|P|IGF|Y|100|N|IGF -IGHG|ProShares Investment Grade-Interest Rate Hedged|Z|IGHG|Y|100|N|IGHG -IGI|Western Asset Investment Grade Defined Opportunity Trust Inc. Common Stock|N|IGI|N|100|N|IGI -IGM|iShares North American Tech ETF|P|IGM|Y|100|N|IGM -IGN|iShares North American Tech-Multimedia Networking ETF|P|IGN|Y|100|N|IGN -IGR|CBRE Clarion Global Real Estate Income Fund Common Stock|N|IGR|N|100|N|IGR -IGS|ProShares Short Investment Grade Corporate|P|IGS|Y|100|N|IGS -IGT|International Game Technology Common Stock|N|IGT|N|100|N|IGT -IGU|ProShares Ultra Investment Grade Corporate ETF|P|IGU|Y|100|N|IGU -IGV|iShares North American Tech-Software ETF|P|IGV|Y|100|N|IGV -IGZ|IGZ (Listing Market NYSE Arca Network B F) Common Stock|P|IGZ|N|100|Y|IGZ -IHC|Independence Holding Company Common Stock|N|IHC|N|100|N|IHC -IHD|Voya Emerging Markets High Income Dividend Equity Fund Common Shares|N|IHD|N|100|N|IHD -IHDG|WisdomTree International Hedged Dividend Growth Fund|P|IHDG|Y|100|N|IHDG -IHE|iShares U.S. Pharmaceutical ETF|P|IHE|Y|100|N|IHE -IHF|iShares U.S. Health Care Providers ETF|P|IHF|Y|100|N|IHF -IHG|Intercontinental Hotels Group American Depositary Shares (Each representing one Ordinary Share)|N|IHG|N|100|N|IHG -IHI|iShares U.S. Medical Devices ETF|P|IHI|Y|100|N|IHI -IHS|IHS Inc. IHS Inc. Class A Common Stock|N|IHS|N|100|N|IHS -IHT|InnSuites Hospitality Trust Shares of Beneficial Interest|A|IHT|N|100|N|IHT -IHY|Market Vectors International High Yield Bond|P|IHY|Y|100|N|IHY -IID|Voya International High Dividend Equity Income Fund Common Shares of Beneficial Interest|N|IID|N|100|N|IID -IIF|Morgan Stanley India Investment Fund, Inc. Common Stock|N|IIF|N|100|N|IIF -IIM|Invesco Value Municipal Income Trust Common Stock|N|IIM|N|100|N|IIM -IJH|iShares Core S&P Mid-Cap ETF|P|IJH|Y|100|N|IJH -IJJ|iShares S&P Mid-Cap 400 Value ETF|P|IJJ|Y|100|N|IJJ -IJK|iShares S&P Mid-Cap 400 Growth ETF|P|IJK|Y|100|N|IJK -IJNK|SPDR Barclays International High Yield Bond ETF|P|IJNK|Y|100|N|IJNK -IJR|iShares Core S&P Small-Cap ETF|P|IJR|Y|100|N|IJR -IJS|iShares S&P SmallCap 600 Value ETF|P|IJS|Y|100|N|IJS -IJT|iShares S&P SmallCap 600 Growth ETF|P|IJT|Y|100|N|IJT -IL|IntraLinks Holdings, Inc. Common Stock $0.001 par value|N|IL|N|100|N|IL -ILB|PIMCO Global Advantage Inflation Linked Bond Active Exchange-Traded Fund|P|ILB|Y|100|N|ILB -ILF|iShares Latin America 40 ETF|P|ILF|Y|100|N|ILF -ILTB|iShares Core Long-Term USD Bond ETF|P|ILTB|Y|100|N|ILTB -IM|Ingram Micro Inc. Common Stock|N|IM|N|100|N|IM -IMAX|Imax Corporation Common Stock|N|IMAX|N|100|N|IMAX -IMH|Impac Mortgage Holdings, Inc. Common Stock New|A|IMH|N|100|N|IMH -IMLP|iPath S&P MLP ETN|P|IMLP|N|100|N|IMLP -IMN|Imation Corporation Common Stock|N|IMN|N|100|N|IMN -IMO|Imperial Oil Limited Common Stock|A|IMO|N|100|N|IMO -IMPR|Imprivata, Inc. Common Stock|N|IMPR|N|100|N|IMPR -IMPV|Imperva, Inc. Common Stock|N|IMPV|N|100|N|IMPV -IMS|IMS Health Holdings, Inc. Common Stock|N|IMS|N|100|N|IMS -IMTM|iShares MSCI International Momentum Factor ETF|P|IMTM|Y|100|N|IMTM -IMUC|ImmunoCellular Therapeutics, Ltd. Common Stock|A|IMUC|N|100|N|IMUC -INB|Cohen & Steers Global Income Builder, Inc. Common Shares of Beneficial Interest|N|INB|N|100|N|INB -INCO|EG Shares India Consumer ETF|P|INCO|Y|100|N|INCO -IND|ING Group, N.V. Perpetual Debt Securities|N|IND|N|100|N|IND -INDA|Ishares MSCI India ETF|Z|INDA|Y|100|N|INDA -INDL|Direxion Daily India Bull 3x Shares|P|INDL|Y|100|N|INDL -INF|Brookfield Global Listed Infrastructure Income Fund Closed End Fund|N|INF|N|100|N|INF -INFL|PowerShares DB US Inflation ETN|P|INFL|N|100|N|INFL -INFU|InfuSystems Holdings, Inc. Common Stock|A|INFU|N|100|N|INFU -INFY|Infosys Limited American Depositary Shares|N|INFY|N|100|N|INFY -ING|ING Group, N.V. Common Stock|N|ING|N|100|N|ING -INGR|Ingredion Incorporated Common Stock|N|INGR|N|100|N|INGR -INKM|SPDR SSgA Income Allocation ETF|P|INKM|Y|100|N|INKM -INN|Summit Hotel Properties, Inc. Common Stock|N|INN|N|100|N|INN -INN$A|Summit Hotel Properties, Inc. 9.25% Series A Cumulative Redeemable Preferred Stock|N|INNpA|N|100|N|INN-A -INN$B|Summit Hotel Properties, Inc. Pfd Ser B|N|INNpB|N|100|N|INN-B -INN$C|Summit Hotel Properties, Inc. 7.125% Series C Cumulative Redeemable Preferred Stock|N|INNpC|N|100|N|INN-C -INP|Barclays Bank Plc iPath ETNs linked to the MSCI India Total Return Index|P|INP|N|100|N|INP -INR|Market Vectors Indian Rupee/USD ETN|P|INR|N|100|N|INR -INS|Intelligent Systems Corporation Common Stock|A|INS|N|100|N|INS -INT|World Fuel Services Corporation Common Stock|N|INT|N|100|N|INT -INTT|inTest Corporation Common Stock|A|INTT|N|100|N|INTT -INUV|Inuvo, Inc New|A|INUV|N|100|N|INUV -INVN|InvenSense, Inc. Common Stock|N|INVN|N|100|N|INVN -INXN|InterXion Holding N.V. Ordinary Shares (0.01 nominal value)|N|INXN|N|100|N|INXN -INXX|EGShares India Infrastructure ETF|P|INXX|Y|100|N|INXX -INY|SPDR Nuveen Barclays New York Municipal Bond ETF|P|INY|Y|100|N|INY -INZ|Ing Groep NV Perpetual Debt Securities|N|INZ|N|100|N|INZ -IO|Ion Geophysical Corporation Common Stock|N|IO|N|100|N|IO -IOC|InterOil Corporation|N|IOC|N|100|N|IOC -IOIL|IQ Global Oil Small Cap ETF|P|IOIL|Y|100|N|IOIL -IOO|iShares Global 100 ETF|P|IOO|Y|100|N|IOO -IOT|Income Opportunity Realty Investors, Inc. Common Stock|A|IOT|N|100|N|IOT -IP|International Paper Company Common Stock|N|IP|N|100|N|IP -IPAC|iShares Core MSCI Pacific ETF|P|IPAC|Y|100|N|IPAC -IPB|Merrill Lynch & Co., Inc. 6.0518% Index Plus Trust Certificates Series 2003-1|A|IPB|N|100|N|IPB -IPD|SPDR S&P International Consumer Discretionary Sector ETF|P|IPD|Y|100|N|IPD -IPE|SPDR Barclays TIPS ETF|P|IPE|Y|100|N|IPE -IPF|SPDR S&P International Financial Sector ETF|P|IPF|Y|100|N|IPF -IPFF|iShares International Preferred Stock ETF|P|IPFF|Y|100|N|IPFF -IPG|Interpublic Group of Companies, Inc. (The) Common Stock|N|IPG|N|100|N|IPG -IPHI|Inphi Corporation Common Stock $0.001 par value|N|IPHI|N|100|N|IPHI -IPI|Intrepid Potash, Inc Common Stock|N|IPI|N|100|N|IPI -IPK|SPDR S&P International Technology Sector ETF|P|IPK|Y|100|N|IPK -IPL$D|Interstate Power & Light Company Perp Prd Ser D|N|IPLpD|N|100|N|IPL-D -IPN|SPDR S&P International Industrial Sector ETF|P|IPN|Y|100|N|IPN -IPO|Renaissance IPO ETF|P|IPO|Y|100|N|IPO -IPOS|Renaissance Capital Greenwich Fund|P|IPOS|Y|100|N|IPOS -IPS|SPDR S&P International Consumer Staples Sector ETF|P|IPS|Y|100|N|IPS -IPU|SPDR S&P International Utilities Sector ETF|P|IPU|Y|100|N|IPU -IPW|SPDR S&P International Energy Sector ETF|P|IPW|Y|100|N|IPW -IQDE|FlexShares International Quality Dividend Defensive Index Fund|P|IQDE|Y|100|N|IQDE -IQDF|FlexShares International Quality Dividend Index Fund|P|IQDF|Y|100|N|IQDF -IQDY|FlexShares International Quality Dividend Dynamic Index Fund|P|IQDY|Y|100|N|IQDY -IQI|Invesco Quality Municipal Income Trust Common Stock|N|IQI|N|100|N|IQI -IQLT|iShares MSCI International Developed Quality Factors ETF|P|IQLT|Y|100|N|IQLT -IR|Ingersoll-Rand plc (Ireland)|N|IR|N|100|N|IR -IRC|Inland Real Estate Corporation Common Stock|N|IRC|N|100|N|IRC -IRC$A|Inland Real Estate Corporation 8.125% Series A Cumulative Redeemable Preferred Stock, $0.01 par value|N|IRCpA|N|100|N|IRC-A -IRC$B|Inland Real Estate Corporation Redeemable Preferred Series B|N|IRCpB|N|100|N|IRC-B -IRE|Governor and Company of the Bank of Ireland (The) Common Stock|N|IRE|N|100|N|IRE -IRET|Investors Real Estate Trust Shares of Beneficial Interest|N|IRET|N|100|N|IRET -IRET$|Investors Real Estate Trust Series A Cumulative Redeemable Preferred Shares of Beneficial Interest|N|IRETp|N|100|N|IRET- -IRET$B|Investors Real Estate Trust 7.95% Series B Cumulative Redeemable Preferred Shares|N|IRETpB|N|100|N|IRET-B -IRL|New Ireland Fund, Inc (The) Common Stock|N|IRL|N|100|N|IRL -IRM|Iron Mountain Incorporated (Delaware)Common Stock REIT|N|IRM|N|100|N|IRM -IRR|Voya Natural Resources Equity Income Fund Common Shares of Beneficial Interest|N|IRR|N|100|N|IRR -IRS|IRSA Inversiones Y Representaciones S.A. Common Stock|N|IRS|N|100|N|IRS -IRT|Independence Realty Trust, Inc. Common Stock|A|IRT|N|100|N|IRT -IRV|SPDR S&P International Materials Sector ETF|P|IRV|Y|100|N|IRV -IRY|SPDR S&P International Health Care Sector ETF|P|IRY|Y|100|N|IRY -ISD|Prudential Short Duration High Yield Fund, Inc. Common Stock|N|ISD|N|100|N|ISD -ISDR|Issuer Direct Corporation Common Stock|A|ISDR|N|100|N|ISDR -ISF|ING Group, N.V. Perp Hybrid Cap Secs (Netherlands)|N|ISF|N|100|N|ISF -ISG|ING Group, N.V. Perpetual Dent Secs 6.125%|N|ISG|N|100|N|ISG -ISH|International Shipholding Corporation Common Stock|N|ISH|N|100|N|ISH -ISH$A|International Shipholding Corporation Cumulative Redeemable Perpetual Preferred Series A|N|ISHpA|N|100|N|ISH-A -ISH$B|International Shipholding Corporation PERP PFD SER B|N|ISHpB|N|100|N|ISH-B -ISL|Aberdeen Israel Fund, Inc. (The) Common Stock|A|ISL|N|100|N|ISL -ISP|ING Groep NV 6.20% Perpetual Debt Securities (Netherlands)|N|ISP|N|100|N|ISP -ISR|IsoRay, Inc. Common Stock|A|ISR|N|100|N|ISR -ISRA|Market Vectors Israel ETF|P|ISRA|Y|100|N|ISRA -IST|SPDR S&P International Telecommunications Sector ETF|P|IST|Y|100|N|IST -ISTB|iShares Core Short-Term USD Bond ETF|P|ISTB|Y|100|N|ISTB -IT|Gartner, Inc. Common Stock|N|IT|N|100|N|IT -ITA|iShares U.S. Aerospace & Defense ETF|P|ITA|Y|100|N|ITA -ITB|iShares U.S. Home Construction ETF|P|ITB|Y|100|N|ITB -ITC|ITC Holdings Corp. Common Stock|N|ITC|N|100|N|ITC -ITE|SPDR Barclays Intermediate Term Treasury ETF|P|ITE|Y|100|N|ITE -ITF|iShares Japn Large-Cap ETF|P|ITF|Y|100|N|ITF -ITG|Investment Technology Group, Inc. Common Stock|N|ITG|N|100|N|ITG -ITI|Iteris, Inc. Common Stock|A|ITI|N|100|N|ITI -ITIP|iShares International Inflation-Linked Bond ETF|P|ITIP|Y|100|N|ITIP -ITLT|PowerShares DB 3X Italian Treasury Bond Futures ETN|P|ITLT|N|100|N|ITLT -ITLY|PowerShares DB Italian Treasury Bond Futures ETN|P|ITLY|N|100|N|ITLY -ITM|Market Vectors Intermediate Municipal Index ETF|P|ITM|Y|100|N|ITM -ITOT|iShares Core S&P Total U.S. Stock Market ETF|P|ITOT|Y|100|N|ITOT -ITR|SPDR Barclays Intermediate Term Corporate Bond ETF (based on Barclays Capital Intermediate U.S. Corporate Index symbol LD06TRUU|P|ITR|Y|100|N|ITR -ITT|ITT Corporation Common Stock New|N|ITT|N|100|N|ITT -ITUB|Itau Unibanco Banco Holding SA American Depositary Shares (Each repstg 500 Preferred shares)|N|ITUB|N|100|N|ITUB -ITW|Illinois Tool Works Inc. Common Stock|N|ITW|N|100|N|ITW -IUSB|iShares Core Total USD Bond Market ETF|P|IUSB|Y|100|N|IUSB -IUSG|iShares Core U.S. Growth ETF|P|IUSG|Y|100|N|IUSG -IUSV|iShares Core U.S. Vaue ETF|P|IUSV|Y|100|N|IUSV -IVAL|ValueShares International Quantitative Value ETF|Z|IVAL|Y|100|N|IVAL -IVC|Invacare Corporation Common Stock|N|IVC|N|100|N|IVC -IVE|iShares S&P 500 Value ETF|P|IVE|Y|100|N|IVE -IVH|Ivy High Income Opportunities Fund Common Shares of Beneficial Interest|N|IVH|N|100|N|IVH -IVOG|Vanguard S&P Mid-Cap 400 Growth ETF|P|IVOG|Y|100|N|IVOG -IVOO|Vanguard S&P Mid-Cap 400 ETF|P|IVOO|Y|100|N|IVOO -IVOP|iPath Inverse S&P 500 VIX Short Term Futures|P|IVOP|N|100|N|IVOP -IVOV|Vanguard S&P Mid-Cap 400 Value ETF|P|IVOV|Y|100|N|IVOV -IVR|INVESCO MORTGAGE CAPITAL INC Common Stock|N|IVR|N|100|N|IVR -IVR$A|Invesco Mortgage Capital Inc. Pfd Ser A|N|IVRpA|N|100|N|IVR-A -IVR$B|Invesco Mortgage Capital Inc. Preferred Series B Cum Fxd to Fltg|N|IVRpB|N|100|N|IVR-B -IVV|iShares Core S&P 500 ETF|P|IVV|Y|100|N|IVV -IVW|iShares S&P 500 Growth ETF|P|IVW|Y|100|N|IVW -IVZ|Invesco Plc New Common Stock|N|IVZ|N|100|N|IVZ -IWB|iShares Russell 1000 ETF|P|IWB|Y|100|N|IWB -IWC|iShares Microcap ETF|P|IWC|Y|100|N|IWC -IWD|iShares Russell 1000 Value ETF|P|IWD|Y|100|N|IWD -IWF|iShares Russell 1000 Growth ETF|P|IWF|Y|100|N|IWF -IWL|iShares Russell Top 200 ETF|P|IWL|Y|100|N|IWL -IWM|iShares Russell 2000 ETF|P|IWM|Y|100|N|IWM -IWN|iShares Russell 2000 Value ETF|P|IWN|Y|100|N|IWN -IWO|iShares Russell 2000 Growth ETF|P|IWO|Y|100|N|IWO -IWP|iShares Russell Midcap Growth ETF|P|IWP|Y|100|N|IWP -IWR|iShares Russell Mid-Cap ETF|P|IWR|Y|100|N|IWR -IWS|iShares Russell Mid-cap Value ETF|P|IWS|Y|100|N|IWS -IWV|iShares Russell 3000 ETF|P|IWV|Y|100|N|IWV -IWX|iShares Russell Top 200 Value ETF|P|IWX|Y|100|N|IWX -IWY|iShares Russell Top 200 Growth ETF|P|IWY|Y|100|N|IWY -IX|Orix Corp Ads Common Stock|N|IX|N|100|N|IX -IXC|iShares Global Energy ETF|P|IXC|Y|100|N|IXC -IXG|iShares Global Financial ETF|P|IXG|Y|100|N|IXG -IXJ|iShares Global Healthcare ETF|P|IXJ|Y|100|N|IXJ -IXN|iShares Global Tech ETF|P|IXN|Y|100|N|IXN -IXP|iShares Global Telecom ETF|P|IXP|Y|100|N|IXP -IXUS|iShares Core MSCI Total International Stock ETF|P|IXUS|Y|100|N|IXUS -IYC|iShares U.S. Consumer Services ETF|P|IYC|Y|100|N|IYC -IYE|iShares U.S. Energy ETF|P|IYE|Y|100|N|IYE -IYF|iShares U.S. Financial ETF|P|IYF|Y|100|N|IYF -IYG|iShares U.S. Financial Services ETF|P|IYG|Y|100|N|IYG -IYH|iShares U.S. Healthcare ETF|P|IYH|Y|100|N|IYH -IYJ|iShares U.S. Industrials ETF|P|IYJ|Y|100|N|IYJ -IYK|iShares U.S. Consumer Goods ETF|P|IYK|Y|100|N|IYK -IYLD|iShares Morningstar Multi-Asset Income ETF|Z|IYLD|Y|100|N|IYLD -IYM|iShares U.S. Basic Materials ETF|P|IYM|Y|100|N|IYM -IYR|iShares U.S. Real Estate ETF|P|IYR|Y|100|N|IYR -IYT|iShares Transportation AverageETF|P|IYT|Y|100|N|IYT -IYW|iShares U.S. Technology ETF|P|IYW|Y|100|N|IYW -IYY|iShares Dow Jones U.S. ETF|P|IYY|Y|100|N|IYY -IYZ|iShares U.S. Telecommunications ETF|P|IYZ|Y|100|N|IYZ -JAH|Jarden Corporation Common Stock|N|JAH|N|100|N|JAH -JBK|Lehman ABS 3.50 3.50% Adjustable Corp Backed Tr Certs GS Cap I|N|JBK|N|100|N|JBK -JBL|Jabil Circuit, Inc. Common Stock|N|JBL|N|100|N|JBL -JBN|Select Asset Inc. Select Asset Inc. on behalf of Corporate Backed Callable Trust Certificates, J.C. Penney Debenture Backed Series 2007-1 Trust|N|JBN|N|100|N|JBN -JBR|Select Asset Inc. Corporate Backed Callable Trust Certificates, J.C. Penney Debenture-Backed Series 2006-1, Class A-1|N|JBR|N|100|N|JBR -JBT|John Bean Technologies Corporation Common Stock|N|JBT|N|100|N|JBT -JCE|Nuveen Core Equity Alpha Fund Nuveen Core Equity Alpha Fund Common Shares of Beneficial Interest|N|JCE|N|100|N|JCE -JCI|Johnson Controls, Inc. Common Stock|N|JCI|N|100|N|JCI -JCP|J.C. Penney Company, Inc. Holding Company Common Stock|N|JCP|N|100|N|JCP -JDD|Nuveen Diversified Dividend and Income Fund Shares of Beneficial Interest|N|JDD|N|100|N|JDD -JDST|Direxion Daily Junior Gold Miners Index Bear 3X Shares|P|JDST|Y|100|N|JDST -JE|Just Energy Group, Inc. Ordinary Shares (Canada)|N|JE|N|100|N|JE -JEC|Jacobs Engineering Group Inc. Common Stock|N|JEC|N|100|N|JEC -JEM|iPath GEMS Index ETN|P|JEM|N|100|N|JEM -JEQ|Aberdeen Japan Equity Fund, Inc. Common Stock|N|JEQ|N|100|N|JEQ -JFC|JPMorgan China Region Fund, Inc. Common Stock|N|JFC|N|100|N|JFC -JFR|Nuveen Floating Rate Income Fund Common Stock|N|JFR|N|100|N|JFR -JGBD|PowerShares DB 3X Inverse Govt Bond Futures ETN|P|JGBD|N|100|N|JGBD -JGBL|PowerShares DB Japanese Govt Bond Futures ETN|P|JGBL|N|100|N|JGBL -JGBS|PowerShares DB Inverse Japanese Govt Bond Futures ETN|P|JGBS|N|100|N|JGBS -JGBT|PowerShares DB 3X Japanese Govt Bond Futures ETN|P|JGBT|N|100|N|JGBT -JGH|Nuveen Global High Income Fund Common Shares of Beneficial Interest|N|JGH|N|100|N|JGH -JGV|Nuveen Global Equity Income Fund|N|JGV|N|100|N|JGV -JGW|J.G. Wentworth Company (The) Class A Common Stock|N|JGW|N|100|N|JGW -JHI|John Hancock Investors Trust Common Stock|N|JHI|N|100|N|JHI -JHP|Nuveen Quality Preferred Income Fund 3 Preferred Income 3|N|JHP|N|100|N|JHP -JHS|John Hancock Income Securities Trust Common Stock|N|JHS|N|100|N|JHS -JHX|James Hardie Industries plc American Depositary Shares (Ireland)|N|JHX|N|100|N|JHX -JJA|iPath Bloomberg Agriculture Total Return Sub-Index ETN|P|JJA|N|100|N|JJA -JJC|iPath Bloomberg Copper Subindex Total Return Sub-Index ETN|P|JJC|N|100|N|JJC -JJE|iPath Bloomberg Energy Total Return Sub-Index ETN|P|JJE|N|100|N|JJE -JJG|iPath Bloomberg Grains Total Return Sub-Index ETN|P|JJG|N|100|N|JJG -JJM|iPath Bloomberg Industrial Metals Total Return Sub-Index ETN|P|JJM|N|100|N|JJM -JJN|iPath Bloomberg Nickel Subindex Total Return ETN|P|JJN|N|100|N|JJN -JJP|iPath Bloomberg Precious Metals Subindex Total Return SM Index ETN|P|JJP|N|100|N|JJP -JJS|iPath Bloomberg Softs Subindex Total Return SM Index ETN|P|JJS|N|100|N|JJS -JJT|iPath Bloomberg Tin Subindex Total Return SM ETN|P|JJT|N|100|N|JJT -JJU|iPath Bloomberg Aluminum Subindex Total Return SM IndexETN|P|JJU|N|100|N|JJU -JKD|iShares Morningstar Large-Cap ETF|P|JKD|Y|100|N|JKD -JKE|iShares Morningstar Large-Cap Growth ETF|P|JKE|Y|100|N|JKE -JKF|iShares Morningstar Large-Cap Value ETF|P|JKF|Y|100|N|JKF -JKG|iShares Morningstar Mid-Cap ETF|P|JKG|Y|100|N|JKG -JKH|iShares Morningstar Mid-Cap Growth ETF|P|JKH|Y|100|N|JKH -JKI|iShares Morningstar Mid-Cap Value ETF|P|JKI|Y|100|N|JKI -JKJ|iShares Morningstar Small-Cap ETF|P|JKJ|Y|100|N|JKJ -JKK|iShares Morningstar Small-Cap Growth ETF|P|JKK|Y|100|N|JKK -JKL|iShares Morningstar Small-Cap Value ETFnd|P|JKL|Y|100|N|JKL -JKS|JinkoSolar Holding Company Limited American Depositary Shares (each representing 4 Common Shares)|N|JKS|N|100|N|JKS -JLL|Jones Lang LaSalle Incorporated Common Stock|N|JLL|N|100|N|JLL -JLS|Nuveen Mortgage Opportunity Term Fund Nuveen Mortgage Opportunity Term Fund|N|JLS|N|100|N|JLS -JMEI|Jumei International Holding Limited American Depositary Shares, each representing one Class A ordinary share|N|JMEI|N|100|N|JMEI -JMF|Nuveen Energy MLP Total Return Fund Common Shares of Beneficial Interest|N|JMF|N|100|N|JMF -JMI|Javelin Mortgage Investment Corp. Common Stock|N|JMI|N|100|N|JMI -JMLP|Nuveen All Cap Energy MLP Opportunities Fund Common Shares of Beneficial Interest|N|JMLP|N|100|N|JMLP -JMM|Nuveen Multi-Market Income Fund (MA)|N|JMM|N|100|N|JMM -JMP|JMP Group LLC Common Shares|N|JMP|N|100|N|JMP -JMPB|JMP Group Inc 8.00% Senior Notes due 2023|N|JMPB|N|100|N|JMPB -JMPC|JMP Group Inc 7.25% Senior Notes due 2021|N|JMPC|N|100|N|JMPC -JMT|Nuveen Mortgage Opportunity Term Fund 2 Common Shares of Beneficial Interest|N|JMT|N|100|N|JMT -JNJ|Johnson & Johnson Common Stock|N|JNJ|N|100|N|JNJ -JNK|SPDR Barclays High Yield Bond ETF|P|JNK|Y|100|N|JNK -JNPR|Juniper Networks, Inc. Common Stock|N|JNPR|N|100|N|JNPR -JNS|Janus Capital Group, Inc. Cmn Stk|N|JNS|N|100|N|JNS -JNUG|Direxion Daily Junior Gold Miners Index Bull 3X Shares|P|JNUG|Y|100|N|JNUG -JO|iPath Bloomberg Coffee Subindex Total Return SM Index ETN|P|JO|N|100|N|JO -JOB|General Employment Enterprises, Inc. Common Stock|A|JOB|N|100|N|JOB -JOE|St. Joe Company (The) Common Stock|N|JOE|N|100|N|JOE -JOF|Japan Smaller Capitalization Fund Inc Common Stock|N|JOF|N|100|N|JOF -JONE|Jones Energy, Inc. Class A Common Stock|N|JONE|N|100|N|JONE -JOY|Joy Global Inc. Common Stock|N|JOY|N|100|N|JOY -JPC|Nuveen Preferred Income Opportunities Fund|N|JPC|N|100|N|JPC -JPEM|JPMorgan Diversified Return Emerging Markets Equity ETF|P|JPEM|Y|100|N|JPEM -JPEP|JP Energy Partners LP Common units representing limited partner interests|N|JPEP|N|100|N|JPEP -JPGE|JPMorgan Diversified Return Global Equity ETF|P|JPGE|Y|100|N|JPGE -JPI|Nuveen Preferred and Income Term Fund Common Shares of Beneficial Interest|N|JPI|N|100|N|JPI -JPIN|JPMorgan Diversified Return International Equity ETF|P|JPIN|Y|100|N|JPIN -JPM|JP Morgan Chase & Co. Common Stock|N|JPM|N|100|N|JPM -JPM$A|J P Morgan Chase & Co Depositary Shs Repstg 1/400 Pfd Ser P|N|JPMpA|N|100|N|JPM-A -JPM$B|JP Morgan Chase & Co Depositary Shares Representing 1/400th Preferred Series T|N|JPMpB|N|100|N|JPM-B -JPM$C|JPMorgan Chase Capital XXIX 6.70% Capital Securities, Series CC|N|JPMpC|N|100|N|JPM-C -JPM$D|JPMorgan Chase Bank N A London Branch Depositary Shs Repstg 1/400th Pfd Ser O|N|JPMpD|N|100|N|JPM-D -JPM$E|J P Morgan Chase & Co Depository Shares Representing 1/400th Int Perp Pfd Ser W|N|JPMpE|N|100|N|JPM-E -JPM.W|J P Morgan Chase & Co Warrant expiring October 28, 2018|N|JPM/WS|N|100|N|JPM+ -JPMV|iShares MSCI Japan Minimum Volatility ETF|P|JPMV|Y|100|N|JPMV -JPNL|Direxion Daily Japan Bull 3X ETF|P|JPNL|Y|100|N|JPNL -JPP|SPDR Russell/Nomura PRIME Japan ETF|P|JPP|Y|100|N|JPP -JPS|Nuveen Quality Preferred Income Fund 2 Shares of Beneficial Interest|N|JPS|N|100|N|JPS -JPW|Nuveen Flexible Investment Income Fund Common Shares of Beneficial Interest|N|JPW|N|100|N|JPW -JPX|ProShares UltraShort MSCI Pacific ex-Japan|P|JPX|Y|100|N|JPX -JQC|Nuveen Credit Strategies Income Fund Shares of Beneficial Interest|N|JQC|N|100|N|JQC -JRI|Nuveen Real Asset Income and Growth Fund Common Shares of Beneficial Interest|N|JRI|N|100|N|JRI -JRN|Journal Communications, Inc. Class A Common Stock|N|JRN|N|100|N|JRN -JRO|Nuveen Floating Rate Income Opportuntiy Fund Shares of Beneficial Interest|N|JRO|N|100|N|JRO -JRS|Nuveen Real Estate Income Fund Common Shares of Beneficial Interest|A|JRS|N|100|N|JRS -JSC|SPDR Russell/Nomura Small Cap Japan|P|JSC|Y|100|N|JSC -JSD|Nuveen Short Duration Credit Opportunities Fund Common Shares of Beneficial Interest|N|JSD|N|100|N|JSD -JTA|Nuveen Tax-Advantaged Total Return Strategy Fund Common Share of Beneficial Interest|N|JTA|N|100|N|JTA -JTD|Nuveen Tax-Advantaged Dividend Growth Fund Common Shares of Beneficial Interest|N|JTD|N|100|N|JTD -JTP|Nuveen Quality Preferred Income Fund Shares of Beneficial Interest|N|JTP|N|100|N|JTP -JUNR|Global X Junior Miners ETF|P|JUNR|Y|100|N|JUNR -JW.A|John Wiley & Sons, Inc. Common Stock|N|JW/A|N|100|N|JW.A -JW.B|John Wiley & Sons, Inc. Common Stock|N|JW/B|N|100|N|JW.B -JWN|Nordstrom, Inc. Common Stock|N|JWN|N|100|N|JWN -JXI|iShares Global Utilities ETF|P|JXI|Y|100|N|JXI -JYN|BARCLAYS BANK PLC iPath JPY/USD Exchange Rate ETN|P|JYN|N|100|N|JYN -K|Kellogg Company Common Stock|N|K|N|100|N|K -KAI|Kadant Inc Common Stock|N|KAI|N|100|N|KAI -KAMN|Kaman Corporation Common Stock|N|KAMN|N|100|N|KAMN -KAP|KCAP Financial, Inc. 7.375% Senior Notes due 2019|N|KAP|N|100|N|KAP -KAR|KAR Auction Services, Inc Common Stock|N|KAR|N|100|N|KAR -KATE|Kate Spade & Company Common Stock|N|KATE|N|100|N|KATE -KB|KB Financial Group Inc|N|KB|N|100|N|KB -KBA|KraneShares Bosera MSCI China A ETF|P|KBA|Y|100|N|KBA -KBE|SPDR S&P Bank ETF|P|KBE|Y|100|N|KBE -KBH|KB Home Common Stock|N|KBH|N|100|N|KBH -KBR|KBR, Inc. Common Stock|N|KBR|N|100|N|KBR -KBWB|PowerShares KBW Bank Portfolio ETF|P|KBWB|Y|100|N|KBWB -KBWC|PowerShares KBW Capital Markets Portfolio|P|KBWC|Y|100|N|KBWC -KBWD|PowerShares KBW High Dividend Yield Financial Portfolio ETF|P|KBWD|Y|100|N|KBWD -KBWI|PowerShares KBW Insurance Portfoliio ETF|P|KBWI|Y|100|N|KBWI -KBWP|PowerShares KBW Property & Casualty Insurance Portfolio ETF|P|KBWP|Y|100|N|KBWP -KBWR|PowerShares KBW Regional Banking Portfolio ETF|P|KBWR|Y|100|N|KBWR -KBWY|PowerShares KBW Premium Yield Equity REIT Portfolio ETF|P|KBWY|Y|100|N|KBWY -KCC|Structured Products Corp. 8.20% Corporate Backed Trust Securities (CorTS)Issued by Provident Financial Trust I|N|KCC|N|100|N|KCC -KCE|SPDR S&P Capital Markets ETF|P|KCE|Y|100|N|KCE -KCG|KCG Holdings, Inc. Class A Common Stock|N|KCG|N|100|N|KCG -KCNY|KraneShares E Fund China Commercial Paper ETF|P|KCNY|Y|100|N|KCNY -KED|Kayne Anderson Energy Development Company Common Stock|N|KED|N|100|N|KED -KEF|Korea Equity Fund, Inc. Common Stock|N|KEF|N|100|N|KEF -KEG|Key Energy Services, Inc. Common Stock|N|KEG|N|100|N|KEG -KEM|Kemet Corporation New Common Stock|N|KEM|N|100|N|KEM -KEN|Kenon Holdings Ltd. Ordinary Shares|N|KEN|N|100|N|KEN -KEP|Korea Electric Power Corporation Common Stock|N|KEP|N|100|N|KEP -KEX|Kirby Corporation Common Stock|N|KEX|N|100|N|KEX -KEY|KeyCorp Common Stock|N|KEY|N|100|N|KEY -KEY$G|KeyCorp Non Cumulative Perp Conv Pfd Ser A|N|KEYpG|N|100|N|KEY-G -KEYS|Keysight Technologies Inc. Common Stock|N|KEYS|N|100|N|KEYS -KF|Korea Fund, Inc. (The) New Common Stock|N|KF|N|100|N|KF -KFH|KKR Financial Holdings LLC 8.375% Senior Notes due 2041|N|KFH|N|100|N|KFH -KFI|KKR Financial Holdings LLC 7.50% Senior Notes due 2042|N|KFI|N|100|N|KFI -KFN$|KKR Financial Holdings LLC Pfd Ser A Llc|N|KFNp|N|100|N|KFN- -KFS|Kingsway Financial Services, Inc. Ordinary Shares|N|KFS|N|100|N|KFS -KFY|Korn/Ferry International Common Stock|N|KFY|N|100|N|KFY -KFYP|KraneShares CSI New China ETF|P|KFYP|Y|100|N|KFYP -KGC|Kinross Gold Corporation Common Stock|N|KGC|N|100|N|KGC -KHI|Deutsche High Income Trust Shares of Beneficial Interest|N|KHI|N|100|N|KHI -KIE|SPDR S&P Insurance ETF|P|KIE|Y|100|N|KIE -KIM|Kimco Realty Corporation Common Stock|N|KIM|N|100|N|KIM -KIM$H|Kimco Realty Corporation Depositary Shares Representing 1/100 Shares of Redeemable Preferred Class H|N|KIMpH|N|100|N|KIM-H -KIM$I|Kimco Realty Corporation DEPOSITARY SH REPSTG 1/1000TH PFD SER I|N|KIMpI|N|100|N|KIM-I -KIM$J|Kimco Realty Corporation Depositary Sh Repstg 1/1000th Pfd CL J %|N|KIMpJ|N|100|N|KIM-J -KIM$K|Kimco Realty Corporation Depositary Shares Representing 1/1000th Preferred Series K|N|KIMpK|N|100|N|KIM-K -KING|King Digital Entertainment plc Ordinary Share|N|KING|N|100|N|KING -KIO|KKR Income Opportunities Fund Common Shares|N|KIO|N|100|N|KIO -KIQ|Kelso Technologies Inc Ordinary Shares|A|KIQ|N|100|N|KIQ -KKD|Krispy Kreme Doughnuts, Inc. Common Stock|N|KKD|N|100|N|KKD -KKR|KKR & Co. L.P. Common Units Representing Limited Partnership Interest|N|KKR|N|100|N|KKR -KLD|iShares MSCI USA ESG Select ETF|P|KLD|Y|100|N|KLD -KMB|Kimberly-Clark Corporation Common Stock|N|KMB|N|100|N|KMB -KME|SPDR S&P Mortgage Finance ETF|P|KME|Y|100|N|KME -KMF|Kayne Anderson Midstream Energy Fund, Inc Common Stock|N|KMF|N|100|N|KMF -KMG|KMG Chemicals, Inc. Common Stock|N|KMG|N|100|N|KMG -KMI|Kinder Morgan, Inc. Common Stock|N|KMI|N|100|N|KMI -KMI.W|Kinder Morgan, Inc. Warrants Expiring 2017|N|KMI/WS|N|100|N|KMI+ -KMM|Deutsche Multi-Market Income Trust Common Sshares of Beneficial Interest|N|KMM|N|100|N|KMM -KMPA|Kemper Corporation 7.375% Subordinated Debentures due 2054|N|KMPA|N|100|N|KMPA -KMPR|Kemper Corporation|N|KMPR|N|100|N|KMPR -KMT|Kennametal Inc. Common Stock|N|KMT|N|100|N|KMT -KMX|CarMax Inc|N|KMX|N|100|N|KMX -KN|Knowles Corporation Common Stock|N|KN|N|100|N|KN -KND|Kindred Healthcare, Inc. Common Stock|N|KND|N|100|N|KND -KNL|Knoll, Inc. Common Stock|N|KNL|N|100|N|KNL -KNM|Konami Corporation American Depositary Shares (Each repstg one share of Common Stock)|N|KNM|N|100|N|KNM -KNOP|KNOT Offshore Partners LP Common Units representing Limited Partner Interests|N|KNOP|N|100|N|KNOP -KNOW|Direxion All Cap Insider Sentiment Shares|P|KNOW|Y|100|N|KNOW -KNX|Knight Transportation, Inc. Common Stock|N|KNX|N|100|N|KNX -KO|Coca-Cola Company (The) Common Stock|N|KO|N|100|N|KO -KODK|Eastman Kodak Company Common New|N|KODK|N|100|N|KODK -KODK.A|Eastman Kodak Company Wt Exp 135%|N|KODK/WS/A|N|100|N|KODK+A -KODK.W|Eastman Kodak Company Warrant (Expiring September 3, 2018)|N|KODK/WS|N|100|N|KODK+ -KOF|Coca Cola Femsa S.A.B. de C.V. Common Stock|N|KOF|N|100|N|KOF -KOL|Market Vectors Coal ETF|P|KOL|Y|100|N|KOL -KOLD|ProShares UltraShort Bloomberg Natural Gas|P|KOLD|Y|100|N|KOLD -KOP|Koppers Holdings Inc. Koppers Holdings Inc. Common Stock|N|KOP|N|100|N|KOP -KORS|Michael Kors Holdings Limited Ordinary Shares|N|KORS|N|100|N|KORS -KORU|Direxion Daily South Korea Bull 3X Shares|P|KORU|Y|100|N|KORU -KOS|Kosmos Energy Ltd. Common Shares|N|KOS|N|100|N|KOS -KR|Kroger Company (The) Common Stock|N|KR|N|100|N|KR -KRA|Kraton Performance Polymers, Inc Common Stock|N|KRA|N|100|N|KRA -KRC|Kilroy Realty Corporation Common Stock|N|KRC|N|100|N|KRC -KRC$G|Kilroy Realty Corporation Preferred Stock Series G|N|KRCpG|N|100|N|KRC-G -KRC$H|Kilroy Realty Corporation Pfd Ser H|N|KRCpH|N|100|N|KRC-H -KRE|SPDR S&P Regional Banking ETF|P|KRE|Y|100|N|KRE -KRG|Kite Realty Group Trust Common Stock|N|KRG|N|100|N|KRG -KRG$A|Kite Realty Group Trust PERP PFD SER A|N|KRGpA|N|100|N|KRG-A -KRO|Kronos Worldwide Inc Common Stock|N|KRO|N|100|N|KRO -KROO|IQ Australia Small Cap ETF|P|KROO|Y|100|N|KROO -KRS|ProShares Short KBW Regional Banking|P|KRS|Y|100|N|KRS -KRU|ProShares Ultra KBW Regional Banking|P|KRU|Y|100|N|KRU -KS|KapStone Paper and Packaging Corporation Common Stock|N|KS|N|100|N|KS -KSM|Deutsche Strategic Municiple Income Trust Common Shares of Beneficial Interest|N|KSM|N|100|N|KSM -KSS|Kohl's Corporation Common Stock|N|KSS|N|100|N|KSS -KST|Deutsche Strategic Income Trust Shares of Beneficial Interest|N|KST|N|100|N|KST -KSU|Kansas City Southern Common Stock|N|KSU|N|100|N|KSU -KSU$|Kansas City Southern Preferred Stock|N|KSUp|N|10|N|KSU- -KT|KT Corporation Common Stock|N|KT|N|100|N|KT -KTF|Deutsche Municiple Income Trust Common Shares|N|KTF|N|100|N|KTF -KTH|Structures Products Cp 8% CorTS Issued by Peco Energy Cap Tr II Preferred Stock|N|KTH|N|100|N|KTH -KTN|Structured Products Corp 8.205% CorTS 8.205% Corporate Backed Trust Securities (CorTS)|N|KTN|N|100|N|KTN -KTP|Corts 7.625 Pfd Common Stock|N|KTP|N|100|N|KTP -KW|Kennedy-Wilson Holdings Inc. Common Stock|N|KW|N|100|N|KW -KWN|Kennedy-Wilson Holdings Inc. 7.75% Senior Notes due 2042|N|KWN|N|100|N|KWN -KWR|Quaker Chemical Corporation Common Stock|N|KWR|N|100|N|KWR -KWT|Market Vectors Solar Energy ETF|P|KWT|Y|100|N|KWT -KXI|iShares Global Consumer Staples ETF|P|KXI|Y|100|N|KXI -KYE|Kayne Anderson Total Energy Return Fund, Inc. Common Stock|N|KYE|N|100|N|KYE -KYN|Kayne Anderson MLP Investment Company Common Stock|N|KYN|N|100|N|KYN -KYN$E|Kayne Anderson MLP Investment Company Series E Mandatory Redeemable Preferred Shares, $25.00 liquidation preference|N|KYNpE|N|100|N|KYN-E -KYN$F|Kayne Anderson MLP Investment Company 3.50% Series F Mandatory Redeemable Preferred Shares $25.00 Liquidation Preference per share|N|KYNpF|N|100|N|KYN-F -KYN$G|Kayne Anderson MLP Investment Company Series G Mandatory Redeemable Preferred Shares Liquidation Preference|N|KYNpG|N|100|N|KYN-G -KYO|Kyocera Corporation Common Stock|N|KYO|N|100|N|KYO -L|Loews Corporation Common Stock|N|L|N|100|N|L -LAD|Lithia Motors, Inc. Common Stock|N|LAD|N|100|N|LAD -LADR|Ladder Capital Corp Class A Common Stock|N|LADR|N|100|N|LADR -LAG|SPDR Barclays Aggregate Bond ETF|P|LAG|Y|100|N|LAG -LAQ|Aberdeen Latin America Equity Fund, Inc.|A|LAQ|N|100|N|LAQ -LAS|Lentuo International Inc. American Depositary Shares, each representing two ordinary shares|N|LAS|N|100|N|LAS -LAZ|Lazard LTD. Lazard, LTD. Class A Common Stock|N|LAZ|N|100|N|LAZ -LB|L Brands, Inc.|N|LB|N|100|N|LB -LBF|Deutsche Global High Income Fund, Inc. Common Stock|N|LBF|N|100|N|LBF -LBJ|Direxion Daily Latin America 3x Bull Shares|P|LBJ|Y|100|N|LBJ -LBMH|Liberator Medical Holdings, Inc. Common Stock|A|LBMH|N|100|N|LBMH -LBND|PowerShares DB 3x Long 25 Year Treasury Bond ETN|P|LBND|N|100|N|LBND -LBY|Libbey, Inc. Common Stock|A|LBY|N|100|N|LBY -LC|LendingClub Corporation Common Stock|N|LC|N|100|N|LC -LCI|Lannett Co Inc Common Stock|N|LCI|N|100|N|LCI -LCM|Advent/Claymore Enhanced Growth & Income Fund Advent/Claymore Enhanced Growth & Income Fund Common Shares of Beneficial Interest|N|LCM|N|100|N|LCM -LD|iPath Bloomberg Lead Subindex Total Return SM Index ETN|P|LD|N|100|N|LD -LDF|Latin American Discovery Fund, Inc. (The) Common Stock|N|LDF|N|100|N|LDF -LDL|Lydall, Inc. Common Stock|N|LDL|N|100|N|LDL -LDOS|Leidos Holdings, Inc. Common Stock|N|LDOS|N|100|N|LDOS -LDP|Cohen & Steers Limited Duration Preferred and Income Fund, Inc.|N|LDP|N|100|N|LDP -LDR|Landauer, Inc. Common Stock|N|LDR|N|100|N|LDR -LDUR|PIMCO Low Duration Active Exchange-Traded Fund|P|LDUR|Y|100|N|LDUR -LEA|Lear Corporation Common Stock|N|LEA|N|100|N|LEA -LEAF|Springleaf Holdings, Inc. Common Stock|N|LEAF|N|100|N|LEAF -LEDD|iPath Pure Beta Lead ETN|P|LEDD|N|100|N|LEDD -LEE|Lee Enterprises, Incorporated Common Stock|N|LEE|N|100|N|LEE -LEG|Leggett & Platt, Incorporated Common Stock|N|LEG|N|100|N|LEG -LEI|Lucas Energy, Inc. Common Stock|A|LEI|N|100|N|LEI -LEJU|Leju Holdings Limited American Depositary Shares, each representing one Ordinary share|N|LEJU|N|100|N|LEJU -LEMB|iShares Emerging Markets Local Currency Bond|P|LEMB|Y|100|N|LEMB -LEN|Lennar Corporation Class A Common Stock|N|LEN|N|100|N|LEN -LEN.B|Lennar Corporation Class B|N|LEN/B|N|100|N|LEN.B -LEO|Dreyfus Strategic Municipals, Inc. Common Stock|N|LEO|N|100|N|LEO -LEU|Centrus Energy Corp. Class A Common Stock|N|LEU|N|100|N|LEU -LF|Leapfrog Enterprises Inc Common Stock|N|LF|N|100|N|LF -LFC|China Life Insurance Company Limited American Depositary Shares|N|LFC|N|100|N|LFC -LFL|LATAM Airlines Group S.A.|N|LFL|N|100|N|LFL -LG|Laclede Gas Company Common Stock|N|LG|N|100|N|LG -LGF|Lions Gate Entertainment Corporation Common Stock|N|LGF|N|100|N|LGF -LGI|Lazard Global Total Return and Income Fund Common Stock|N|LGI|N|100|N|LGI -LGL|LGL Group, Inc. (The) Common Stock|A|LGL|N|100|N|LGL -LGL.W|LGL Group, Inc. (The) Warrants|A|LGL/WS|N|100|N|LGL+ -LGLV|SPDR Russell 1000 Low Volatility ETF|P|LGLV|Y|100|N|LGLV -LH|Laboratory Corporation of America Holdings Common Stock|N|LH|N|100|N|LH -LHO|LaSalle Hotel Properties Common Stock|N|LHO|N|100|N|LHO -LHO$H|LaSalle Hotel Properties 7.50% Series H Cumulative Redeemable Preferred Shares of Beneficial Interest|N|LHOpH|N|100|N|LHO-H -LHO$I|LaSalle Hotel Properties 6.375% Series I Cumulative Redeemable Redeemable Preferred SBI|N|LHOpI|N|100|N|LHO-I -LII|Lennox International, Inc. Common Stock|N|LII|N|100|N|LII -LIQT|LiqTech International, Inc. Common Stock|A|LIQT|N|100|N|LIQT -LIT|Global X Lithium ETF|P|LIT|Y|100|N|LIT -LITB|LightInTheBox Holding Co., Ltd. American Depositary Shares, each representing 2 ordinary shares|N|LITB|N|100|N|LITB -LL|Lumber Liquidators Holdings, Inc Common Stock|N|LL|N|100|N|LL -LLDM|Direxion Daily FTSE Developed Markets Bull 1.25X Shares|P|LLDM|Y|100|N|LLDM -LLEM|Direxion Daily FTSE Emerging Markets Bull 1.25X Shares|P|LLEM|Y|100|N|LLEM -LLL|L-3 Communications Holdings, Inc. Common Stock|N|LLL|N|100|N|LLL -LLSC|Direxion Daily Small Cap 1.25X Shares|P|LLSC|Y|100|N|LLSC -LLSP|Direxion Daily S&P 500 Bull 1.25X Shares|P|LLSP|Y|100|N|LLSP -LLY|Eli Lilly and Company Common Stock|N|LLY|N|100|N|LLY -LM|Legg Mason, Inc. Common Stock|N|LM|N|100|N|LM -LMLP|ETRACS Monthly Pay 2xLeveraged Wells Fargo MLP Ex-Energy ETN|P|LMLP|N|100|N|LMLP -LMT|Lockheed Martin Corporation Common Stock|N|LMT|N|100|N|LMT -LNC|Lincoln National Corporation Common Stock|N|LNC|N|100|N|LNC -LNC.W|Lincoln National Corporation Warrant expiring July 10, 2019|N|LNC/WS|N|100|N|LNC+ -LND|Brasilagro Brazilian Agric Real Estate Co Sponsored ADR (Brazil)|N|LND|N|100|N|LND -LNG|Cheniere Energy, Inc. Common Stock|A|LNG|N|100|N|LNG -LNKD|LinkedIn Corporation Class A Common Stock|N|LNKD|N|100|N|LNKD -LNN|Lindsay Corporation Common Stock|N|LNN|N|100|N|LNN -LNT|Alliant Energy Corporation Common Stock|N|LNT|N|100|N|LNT -LO|Lorillard, Inc Common Stock|N|LO|N|100|N|LO -LOCK|LifeLock, Inc. Common Stock|N|LOCK|N|100|N|LOCK -LODE|Comstock Mining, Inc. Common Stock|A|LODE|N|100|N|LODE -LOR|Lazard World Dividend & Income Fund, Inc. Common Stock|N|LOR|N|100|N|LOR -LOV|Spark Networks, Inc. Common Stock|A|LOV|N|100|N|LOV -LOW|Lowe's Companies, Inc. Common Stock|N|LOW|N|100|N|LOW -LOWC|SPDR MSCI ACWI Low Carbon Target ETF|P|LOWC|Y|100|N|LOWC -LPG|Dorian LPG Ltd. Common Stock|N|LPG|N|100|N|LPG -LPI|Laredo Petroleum, Inc. Common Stock|N|LPI|N|100|N|LPI -LPL|LG Display Co, Ltd AMERICAN DEPOSITORY SHARES|N|LPL|N|100|N|LPL -LPT|Liberty Property Trust|N|LPT|N|100|N|LPT -LPX|Louisiana-Pacific Corporation Common Stock|N|LPX|N|100|N|LPX -LQ|La Quinta Holdings Inc. Common Stock|N|LQ|N|100|N|LQ -LQD|iShares iBoxx $ Investment Grade Corporate Bond ETF|P|LQD|Y|100|N|LQD -LQDH|iShares Interest Rate Hedged Corporate Bond ETF|P|LQDH|Y|100|N|LQDH -LRE|LRR Energy, L.P. Common Units Representing Limited Partner Interests|N|LRE|N|100|N|LRE -LRN|K12 Inc Common Stock|N|LRN|N|100|N|LRN -LSC|HSBC Global Absolute Limited ELEMENTS S&P CTI Index ETN|P|LSC|N|100|N|LSC -LSG|Lake Shore Gold Corp Ordinary Shares (Canada)|A|LSG|N|100|N|LSG -LSTK|iPath Pure Beta Livestock ETN|P|LSTK|N|100|N|LSTK -LTC|LTC Properties, Inc. Common Stock|N|LTC|N|100|N|LTC -LTL|ProShares Ultra Telecommunications ProShares|P|LTL|Y|100|N|LTL -LTM|Life Time Fitness Common Stock|N|LTM|N|100|N|LTM -LTPZ|Pimco 15 Year U.S. TIPS Index Exchange-Traded Fund|P|LTPZ|Y|100|N|LTPZ -LTS|Ladenburg Thalmann Financial Services Inc Common Stock|A|LTS|N|100|N|LTS -LTS$A|Ladenburg Thalmann Financial Services Inc 8.00% Series A Cumulative Redeemable Preferred Stock, Liquidation Preference $25.00 per share|A|LTSpA|N|100|N|LTS-A -LUB|Luby's, Inc. Common Stock|N|LUB|N|100|N|LUB -LUK|Leucadia National Corporation Common Stock|N|LUK|N|100|N|LUK -LUV|Southwest Airlines Company Common Stock|N|LUV|N|100|N|LUV -LUX|Luxottica Group, S.p.A. Common Stock|N|LUX|N|100|N|LUX -LVL|Guggenheim Global Dividend Opportunities Index ETF|P|LVL|Y|100|N|LVL -LVLT|Level 3 Communications, Inc. Common Stock|N|LVLT|N|100|N|LVLT -LVS|Las Vegas Sands Corp. Common Stock|N|LVS|N|100|N|LVS -LWC|SPDR Barclays Long Term Corporate Bond ETF (based on Barclays Capital Long U.S. Corporate Index symbol--LD07TRUU|P|LWC|Y|100|N|LWC -LXFR|Luxfer Holdings PLC American Depositary Shares (each representing one-half of an Ordinary Share)|N|LXFR|N|100|N|LXFR -LXFT|Luxoft Holding, Inc. Class A Ordinary Shares|N|LXFT|N|100|N|LXFT -LXK|Lexmark International, Inc. Common Stock|N|LXK|N|100|N|LXK -LXP|Lexington Realty Trust Common Stock|N|LXP|N|100|N|LXP -LXP$C|Lexington Realty Trust Preferred Conv. Series C|N|LXPpC|N|100|N|LXP-C -LXU|LSB Industries, Inc. Common Stock|N|LXU|N|100|N|LXU -LYB|LyondellBasell Industries NV Ordinary Shares Class A (Netherlands)|N|LYB|N|100|N|LYB -LYG|Lloyds Banking Group Plc American Depositary Shares|N|LYG|N|100|N|LYG -LYG$A|Lloyds Banking Group Plc 7.75% Public Income NotES (PINES) due July 15, 2050|N|LYGpA|N|100|N|LYG-A -LYV|Live Nation Entertainment, Inc. Common Stock|N|LYV|N|100|N|LYV -LZB|La-Z-Boy Incorporated Common Stock|N|LZB|N|100|N|LZB -M|Macy's Inc Common Stock|N|M|N|100|N|M -MA|Mastercard Incorporated Common Stock|N|MA|N|100|N|MA -MAA|Mid-America Apartment Communities, Inc. Common Stock|N|MAA|N|100|N|MAA -MAB|Eaton Vance Massachusetts Municipal Bond Fund Common Shares of Beneficial Interest, $.01 par value|A|MAB|N|100|N|MAB -MAC|Macerich Company (The) Common Stock|N|MAC|N|100|N|MAC -MAIN|Main Street Capital Corporation Common Stock|N|MAIN|N|100|N|MAIN -MAN|ManpowerGroup Common Stock|N|MAN|N|100|N|MAN -MANU|Manchester United Ltd. Class A Ordinary Shares|N|MANU|N|100|N|MANU -MAS|Masco Corporation Common Stock|N|MAS|N|100|N|MAS -MATH|Meidell Tactical Advantage ETF|P|MATH|Y|100|N|MATH -MATL|Direxion Daily Basic Materials Bull 3X Shares|P|MATL|Y|100|N|MATL -MATX|Matson, Inc. Common Stock|N|MATX|N|100|N|MATX -MAV|Pioneer Municipal High Income Advantage Trust Common Shares of Beneficial Interest|N|MAV|N|100|N|MAV -MBB|iShares MBS ETF|P|MBB|Y|100|N|MBB -MBG|SPDR Barclays Mortgage Backed Bond ETF|P|MBG|Y|100|N|MBG -MBI|MBIA Inc. Common Stock|N|MBI|N|100|N|MBI -MBLY|Mobileye N.V. Ordinary Shares|N|MBLY|N|100|N|MBLY -MBT|Mobile TeleSystems OJSC|N|MBT|N|100|N|MBT -MC|Moelis & Company Class A Common Stock|N|MC|N|100|N|MC -MCA|Blackrock MuniYield California Quality Fund, Inc. Common Stock|N|MCA|N|100|N|MCA -MCC|Medley Capital Corporation Common Stock|N|MCC|N|100|N|MCC -MCD|McDonald's Corporation Common Stock|N|MCD|N|100|N|MCD -MCF|Contango Oil & Gas Company Common Stock|A|MCF|N|100|N|MCF -MCHI|iShares MSCI China ETF|P|MCHI|Y|100|N|MCHI -MCI|Babson Capital Corporate Investors Common Stock|N|MCI|N|100|N|MCI -MCK|McKesson Corporation Common Stock|N|MCK|N|100|N|MCK -MCN|Madison Covered Call & Equity Strategy Fund Common Stock|N|MCN|N|100|N|MCN -MCO|Moody's Corporation Common Stock|N|MCO|N|100|N|MCO -MCP|Molycorp, Inc Common Stock|N|MCP|N|100|N|MCP -MCQ|Medley Capital Corporation 7.125% Senior Notes due 2019|N|MCQ|N|100|N|MCQ -MCR|MFS Charter Income Trust Common Stock|N|MCR|N|100|N|MCR -MCRO|IQ Hedge Macro Tracker ETF|P|MCRO|Y|100|N|MCRO -MCS|Marcus Corporation (The) Common Stock|N|MCS|N|100|N|MCS -MCV|Medley Capital Corporation 6.125% Senior Notes due 2023|N|MCV|N|100|N|MCV -MCY|Mercury General Corporation Common Stock|N|MCY|N|100|N|MCY -MCZ|Mad Catz Interactive Inc Common Stock|A|MCZ|N|100|N|MCZ -MD|Mednax, Inc. Common Stock|N|MD|N|100|N|MD -MDC|M.D.C. Holdings, Inc. Common Stock|N|MDC|N|100|N|MDC -MDD|SPDR S&P International Mid Cap ETF|P|MDD|Y|100|N|MDD -MDGN|Medgenics, Inc. Common Stock|A|MDGN|N|100|N|MDGN -MDGN.W|Medgenics, Inc. Warrant|A|MDGN/WS|N|100|N|MDGN+ -MDLL|Direxion Daily Mid Cap Bull 2X Shares|P|MDLL|Y|100|N|MDLL -MDLY|Medley Management Inc. Class A Common Stock|N|MDLY|N|100|N|MDLY -MDP|Meredith Corporation Common Stock|N|MDP|N|100|N|MDP -MDR|McDermott International, Inc. Common Stock|N|MDR|N|100|N|MDR -MDT|Medtronic Inc. Common Stock|N|MDT|N|100|N|MDT -MDU|MDU Resources Group, Inc. Common Stock|N|MDU|N|100|N|MDU -MDW|Midway Gold Corporation Ordinary Shares (Canada)|A|MDW|N|100|N|MDW -MDY|SPDR MidCap Trust Series I|P|MDY|Y|100|N|MDY -MDYG|SPDR S&P 400 Mid Cap Growth ETF (based on S&P MidCap 400 Growth Index--symbol: MUV)|P|MDYG|Y|100|N|MDYG -MDYV|SPDR S&P 400 Mid Cap Value ETF (based on S&P MidCap 400 Value Index--symbol: MGD|P|MDYV|Y|100|N|MDYV -MEA|Metalico Inc Common Stock|A|MEA|N|100|N|MEA -MED|MEDIFAST INC Common Stock|N|MED|N|100|N|MED -MEG|Media General, Inc. Common Stock|N|MEG|N|100|N|MEG -MEI|Methode Electronics, Inc. Common Stock|N|MEI|N|100|N|MEI -MEN|Blackrock MuniEnhanced Fund, Inc Common Stock|N|MEN|N|100|N|MEN -MEP|Midcoast Energy Partners, L.P. Common units representing limited partner interests|N|MEP|N|100|N|MEP -MER$D|Merrill Lynch & Co., Inc. Preferred Stock|N|MERpD|N|100|N|MER-D -MER$E|Merrill Lynch & Co., Inc. Preferred Stock|N|MERpE|N|100|N|MER-E -MER$F|Merrill Lynch & Co., Inc. Preferred Stock|N|MERpF|N|100|N|MER-F -MER$K|Merrill Lynch & Co., Inc. 6.45% Trust Preferred Securities|N|MERpK|N|100|N|MER-K -MER$M|Merrill Lynch & Co., Inc. 6.45% Trust Preferred Securities|N|MERpM|N|100|N|MER-M -MER$P|Merrill Lynch & Co., Inc. Merrill Lynch Capital Trust III 7.375% Trust Preferred Securities|N|MERpP|N|100|N|MER-P -MES|Market Vectors Gulf States Index ETF|P|MES|Y|100|N|MES -MET|MetLife, Inc. Common Stock|N|MET|N|100|N|MET -MET$A|MetLife, Inc. Preferred Series A Floating Rate|N|METpA|N|100|N|MET-A -MET$B|MetLife, Inc. Preferred Series B|N|METpB|N|100|N|MET-B -MFA|MFA Financial, Inc.|N|MFA|N|100|N|MFA -MFA$B|MFA Financial, Inc. Preferred Series B|N|MFApB|N|100|N|MFA-B -MFC|Manulife Financial Corporation Common Stock|N|MFC|N|100|N|MFC -MFD|Macquarie/First Trust Global Common Stock|N|MFD|N|100|N|MFD -MFG|Mizuho Financial Group, Inc. Sponosred ADR (Japan)|N|MFG|N|100|N|MFG -MFL|Blackrock MuniHoldings Investment Quality Fund Common Shares of Beneficial Interest|N|MFL|N|100|N|MFL -MFLA|iPath Long Enhanced MSCI EAFE Index ETN|P|MFLA|N|100|N|MFLA -MFM|MFS Municipal Income Trust Common Stock|N|MFM|N|100|N|MFM -MFO|MFA Financial, Inc. 8.00% Senior Notes due 2042|N|MFO|N|100|N|MFO -MFT|Blackrock MuniYield Investment Quality Fund Common Shares of Beneficial Interest|N|MFT|N|100|N|MFT -MFV|MFS Special Value Trust Common Stock|N|MFV|N|100|N|MFV -MG|Mistras Group Inc Common Stock|N|MG|N|100|N|MG -MGA|Magna International, Inc. Common Stock|N|MGA|N|100|N|MGA -MGC|Vanguard Mega Cap ETF|P|MGC|Y|100|N|MGC -MGF|MFS Government Markets Income Trust Common Stock|N|MGF|N|100|N|MGF -MGH|Minco Gold Corporation Common Shares|A|MGH|N|100|N|MGH -MGK|Vanguard Mega Cap Growth ETF|P|MGK|Y|100|N|MGK -MGM|MGM Resorts International Common Stock|N|MGM|N|100|N|MGM -MGN|Mines Management, Inc. Common Stock|A|MGN|N|100|N|MGN -MGR|Affiliated Managers Group, Inc. 6.375% Senior Notes due 2042|N|MGR|N|100|N|MGR -MGT|MGT Capital Investments Inc Common Stock|A|MGT|N|100|N|MGT -MGU|Macquarie Global Infrastructure Total Return Fund Inc. Common Stock|N|MGU|N|100|N|MGU -MGV|Vanguard Mega Cap Value ETF|P|MGV|Y|100|N|MGV -MH$A|Maiden Holdings, Ltd. Pref Shs Ser A (Bermuda)|N|MHpA|N|100|N|MH-A -MHD|Blackrock MuniHoldings Fund, Inc. Common Stock|N|MHD|N|100|N|MHD -MHE|BlackRock Massachusetts Tax-Exempt Trust|A|MHE|N|100|N|MHE -MHF|Western Asset Municipal High Income Fund, Inc. Common Stock|N|MHF|N|100|N|MHF -MHFI|McGraw Hill Financial, Inc. Common Stock|N|MHFI|N|100|N|MHFI -MHG|Marine Harvest ASA Sponsored ADR (Norway)|N|MHG|N|100|N|MHG -MHH|Mastech Holdings, Inc Common Stock|A|MHH|N|100|N|MHH -MHI|Pioneer Municipal High Income Trust Common Shares of Beneficial Interest|N|MHI|N|100|N|MHI -MHK|Mohawk Industries, Inc. Common Stock|N|MHK|N|100|N|MHK -MHM|Bank of America Corporation Market Index Target Securities Linked to the S&P 500 Index|P|MHM|N|100|N|MHM -MHN|Blackrock MuniHoldings New York Quality Fund, Inc. Common Stock|N|MHN|N|100|N|MHN -MHNA|Maiden Holdings North America Ltd. 8.25% Notes due 2041|N|MHNA|N|100|N|MHNA -MHNB|Maiden Holdings North America, Ltd. 8.00% Notes due 2042|N|MHNB|N|100|N|MHNB -MHNC|Maiden Holdings North America, Ltd. 7.75% Notes due 2043|N|MHNC|N|100|N|MHNC -MHO|M/I Homes, Inc. Common Stock|N|MHO|N|100|N|MHO -MHO$A|M/I Homes, Inc. M/I Homes, Inc. Depositary Shares (Each representing 1/1000 of a Share of 9.75% Series A Preferred Share)|N|MHOpA|N|100|N|MHO-A -MHR|Magnum Hunter Resources Corporation|N|MHR|N|100|N|MHR -MHR$C|Magnum Hunter Resources Corporation 10.25% Series C Cumulative Perpetual Preferred Stock|A|MHRpC|N|100|N|MHR-C -MHR$D|Magnum Hunter Resources Corporation 8.0% Series D Cumulative Preferred Stock|A|MHRpD|N|100|N|MHR-D -MHR$E|Magnum Hunter Resources Corporation Depositary Shares, each representing a 1/1000th interest in a share of 8.0% Series E Cumulative Convertible Preferred Stock|A|MHRpE|N|100|N|MHR-E -MHW|Bank of America Corporation MITTS Linked to the Dow Jones Industrial Average|P|MHW|N|100|N|MHW -MHY|Western Asset Managed High Income Fund, Inc. Common Stock|N|MHY|N|100|N|MHY -MIC|Macquarie Infrastructure Company LLC (New) Shares representing one Limited Liability Interest|N|MIC|N|100|N|MIC -MIDU|Direxion Mid Cap Bull 3X Shares|P|MIDU|Y|100|N|MIDU -MIDZ|Direxion Mid Cap Bear 3X Shares|P|MIDZ|Y|100|N|MIDZ -MIE|Cohen & Steers MLP Income and Energy Opportunity Fund, Inc. Common Stock|N|MIE|N|100|N|MIE -MIG|Meadowbrook Insurance Group, Inc. Common Stock|N|MIG|N|100|N|MIG -MIL|MFC Industrial Ltd.|N|MIL|N|100|N|MIL -MILL|Miller Energy Resourses, Inc. Common Stock|N|MILL|N|100|N|MILL -MILL$C|Miller Energy Resources, Inc. 10.75% Series C Cumulative, Redeemable Preferred Stock|N|MILLpC|N|100|N|MILL-C -MILL$D|Miller Energy Resources, Inc. 10.5% Series D Fixed Rate/Floating Rate Cumulative Redeemable Preferred Stock|N|MILLpD|N|100|N|MILL-D -MIN|MFS Intermediate Income Trust Common Stock|N|MIN|N|100|N|MIN -MINC|AdvisorShares Newfleet Multi-sector Income ETF|P|MINC|Y|100|N|MINC -MINT|PIMCO Enhanced Short Maturity Active Exchange-Traded Fund|P|MINT|Y|100|N|MINT -MITT|AG Mortgage Investment Trust, Inc. Common Stock|N|MITT|N|100|N|MITT -MITT$A|AG Mortgage Investment Trust, Inc. 8.25% Preferred Series A|N|MITTpA|N|100|N|MITT-A -MITT$B|AG Mortgage Investment Trust, Inc. Preferred Series B|N|MITTpB|N|100|N|MITT-B -MIW|Eaton Vance Michigan Municipal Bond Fund Common Shares of Beneficial Interest, $.01 par value|A|MIW|N|100|N|MIW -MIXT|MiX Telematics Limited American Depositary Shares, each representing 25 Ordinary Shares|N|MIXT|N|100|N|MIXT -MIY|Blackrock MuniYield Michigan Quality Fund, Inc. Common Stock|N|MIY|N|100|N|MIY -MJI|Blackrock MuniYield New Jersey Quality Fund, Inc. Common Stock|N|MJI|N|100|N|MJI -MJN|Mead Johnson Nutrition Company Common Stock|N|MJN|N|100|N|MJN -MKC|McCormick & Company, Incorporated Common Stock|N|MKC|N|100|N|MKC -MKC.V|McCormick & Company, Incorporated Common Stock|N|MKC/V|N|100|N|MKC.V -MKL|Markel Corporation Common Stock|N|MKL|N|100|N|MKL -MLI|Mueller Industries, Inc. Common Stock|N|MLI|N|100|N|MLI -MLM|Martin Marietta Materials, Inc. Common Stock|N|MLM|N|100|N|MLM -MLN|Market Vectors Long Municipal Index ETF|P|MLN|Y|100|N|MLN -MLP|Maui Land & Pineapple Company, Inc. Common Stock|N|MLP|N|100|N|MLP -MLPA|Global X MLP ETF|P|MLPA|Y|100|N|MLPA -MLPC|C-Tracks ETNs based on Performance of the Miller/Howard MLP Fundamental Index|P|MLPC|N|100|N|MLPC -MLPG|UBS AG Exchange Traded Access Securities (E-TRACS) Linked to the Alerian Natural Gas MLP Index due July 9, 2040|P|MLPG|N|100|N|MLPG -MLPI|UBS AG ETN|P|MLPI|N|100|N|MLPI -MLPJ|Global X Junior MLP ETF|P|MLPJ|Y|100|N|MLPJ -MLPL|UBS AG 2X Monthly Leveraged Long Exchnage Traded Access Securities (E-TRACS) linked to the Alerian MLP Infrastructure Index due July 9, 2040 ETN|P|MLPL|N|100|N|MLPL -MLPN|Credit Suisse Equal Weight MLP Index ETN due April 20, 2020 Linked to the Cushing 30 MLP Index|P|MLPN|N|100|N|MLPN -MLPO|Credit Suisse Group Exchange Traded Notes due December 4, 2034, Linked to the S&P MLP Index|P|MLPO|N|100|N|MLPO -MLPS|UBS AG 1xMonthly Short Exchange Traded Access Securities (E-TRACS) Linked to the Alerian MLP Infrastructure Total Return Index due October 1, 2040|P|MLPS|N|100|N|MLPS -MLPW|UBS AG Exchange Traded Access Securities (E0TRACS) Linked to the Wells fargo MLP Index due October 29, 2040|P|MLPW|N|100|N|MLPW -MLPX|Global X MLP & Energy Infrastructure ETF|P|MLPX|Y|100|N|MLPX -MLPY|Morgan Stanley Cushing MLP High Income Index ETN|P|MLPY|N|100|N|MLPY -MLR|Miller Industries, Inc. Common Stock|N|MLR|N|100|N|MLR -MM|Millennial Media, Inc. Common Stock|N|MM|N|100|N|MM -MMC|Marsh & McLennan Companies, Inc. Common Stock|N|MMC|N|100|N|MMC -MMD|MainStay DefinedTerm Municipal Opportunities Fund Common Shares of Beneficial Interest|N|MMD|N|100|N|MMD -MMI|Marcus & Millichap, Inc. Common Stock|N|MMI|N|100|N|MMI -MMM|3M Company Common Stock|N|MMM|N|100|N|MMM -MMP|Magellan Midstream Partners L.P. Limited Partnership|N|MMP|N|100|N|MMP -MMS|Maximus, Inc. Common Stock|N|MMS|N|100|N|MMS -MMT|MFS Multimarket Income Trust Common Stock|N|MMT|N|100|N|MMT -MMTM|SPDR S&P 1500 Momentum Tilt ETF|P|MMTM|Y|100|N|MMTM -MMU|Western Asset Managed Municipals Fund, Inc. Common Stock|N|MMU|N|100|N|MMU -MMV|Eaton Vance Massachusetts Municipal Income Trust Shares of Beneficial Interest|A|MMV|N|100|N|MMV -MN|Manning & Napier, Inc. Class A Common Stock|N|MN|N|100|N|MN -MNA|IQ Merger Arbitrage ETF|P|MNA|Y|100|N|MNA -MNE|Blackrock Muni New York Intermediate Duration Fund Inc Common Stock|N|MNE|N|100|N|MNE -MNI|McClatchy Company (The) Common Stock|N|MNI|N|100|N|MNI -MNK|Mallinckrodt plc Ordinary Shares|N|MNK|N|100|N|MNK -MNP|Western Asset Municipal Partners Fund, Inc. Common Stock|N|MNP|N|100|N|MNP -MNR|Monmouth Real Estate Investment Corporation Class A Common Stock|N|MNR|N|100|N|MNR -MNR$A|Monmouth Real Estate Investment Corporation 7.625% Series A Cumulative Redeemable Preferred Stock|N|MNRpA|N|100|N|MNR-A -MNR$B|Monmouth Real Estate Investment Corporation Series B Cumulative Redeemable Preferred Stock $0.01 par value|N|MNRpB|N|100|N|MNR-B -MO|Altria Group, Inc.|N|MO|N|100|N|MO -MOAT|Market Vectors Morningstar Wide Moat ETF|P|MOAT|Y|100|N|MOAT -MOC|Command Security Corporation Common Stock|A|MOC|N|100|N|MOC -MOD|Modine Manufacturing Company Common Stock|N|MOD|N|100|N|MOD -MODN|Model N, Inc. Common Stock|N|MODN|N|100|N|MODN -MOG.A|Moog Inc. Class A Common Stock|N|MOG/A|N|100|N|MOG.A -MOG.B|Moog Inc. Class B Common Stock|N|MOG/B|N|100|N|MOG.B -MOH|Molina Healthcare Inc Common Stock|N|MOH|N|100|N|MOH -MOM|QuantShares U.S. Market Neutral Momentum Fund ETF|P|MOM|Y|100|N|MOM -MON|Monsanto Company Common Stock|N|MON|N|100|N|MON -MONY|iShares Financial Bond ETF|P|MONY|Y|100|N|MONY -MOO|Market Vectors Agribusiness ETF|P|MOO|Y|100|N|MOO -MORE|Monogram Residential Trust, Inc. Common|N|MORE|N|100|N|MORE -MORL|ETRACS Monthly Pay 2XLeveraged Mortgage REIT ETN|P|MORL|N|100|N|MORL -MORT|Market Vectors Mortgage REIT Income ETF|P|MORT|Y|100|N|MORT -MOS|Mosaic Company (The) Common Stock|N|MOS|N|100|N|MOS -MOV|Movado Group Inc. Common Stock|N|MOV|N|100|N|MOV -MP$D|Mississippi Power Company 5.25 Srs Pfd|N|MPpD|N|100|N|MP-D -MPA|Blackrock MuniYield Pennsylvania Quality Fund Common Stock|N|MPA|N|100|N|MPA -MPC|Marathon Petroleum Corporation Common Stock|N|MPC|N|100|N|MPC -MPG|Metaldyne Performance Group Inc. Common Stock|N|MPG|N|100|N|MPG -MPLX|MPLX LP Common Units Representing Limited Partner Interests|N|MPLX|N|100|N|MPLX -MPO|Midstates Petroleum Company, Inc. Common Stock|N|MPO|N|100|N|MPO -MPV|Babson Capital Participation Investors Common Stock|N|MPV|N|100|N|MPV -MPW|Medical Properties Trust, Inc. common stock|N|MPW|N|100|N|MPW -MPX|Marine Products Corporation Common Stock|N|MPX|N|100|N|MPX -MQT|Blackrock MuniYield Quality Fund II, Inc. Common Stock|N|MQT|N|100|N|MQT -MQY|Blackrock MuniYield Quality Fund, Inc. Common Stock|N|MQY|N|100|N|MQY -MR|Mindray Medical International Limited Sponsored ADR representing Class A shares (China)|N|MR|N|100|N|MR -MRC|MRC Global Inc. Common Stock|N|MRC|N|100|N|MRC -MRGR|ProShares Merger ETF|Z|MRGR|Y|100|N|MRGR -MRH|Montpelier Re Holdings Ltd.|N|MRH|N|100|N|MRH -MRH$A|Montpelier RE Holdings Ltd Non Cumulative Series A Preferred Shares (Bermuda)|N|MRHpA|N|100|N|MRH-A -MRIN|Marin Software Incorporated Common Stock|N|MRIN|N|100|N|MRIN -MRK|Merck & Company, Inc. Common Stock (new)|N|MRK|N|100|N|MRK -MRO|Marathon Oil Corporation Common Stock|N|MRO|N|100|N|MRO -MS|Morgan Stanley Common Stock|N|MS|N|100|N|MS -MS$A|Morgan Stanley Dep Shs repstg 1/1000 Pfd Ser A|N|MSpA|N|100|N|MS-A -MS$E|Morgan Stanley DEPOSITARY SHARES REP 1/1000TH SHARES FIXED/FLTG PREFERRED STOCK SERIES E|N|MSpE|N|100|N|MS-E -MS$F|Morgan Stanley Dep Shs Rpstg 1/1000th Int Prd Ser F Fxd to Flag|N|MSpF|N|100|N|MS-F -MS$G|Morgan Stanley Depositary Shares Representing 1/1000th Preferred Series G|N|MSpG|N|100|N|MS-G -MS$I|Morgan Stanley Depository Shares Representing 1/1000th Preferred Series 1 Fixed to Floating Non (Cum)|N|MSpI|N|100|N|MS-I -MSA|MSA Safety Incorporated Common Stock|N|MSA|N|100|N|MSA -MSB|Mesabi Trust Common Stock|N|MSB|N|100|N|MSB -MSC|Bank of America Corporation MITTS Linked tothe Dow Jones Industrial Average Index Linked Note|P|MSC|N|100|N|MSC -MSCA|Main Street Capital Corporation 6.125% Senior Notes due 2023|N|MSCA|N|100|N|MSCA -MSCI|MSCI Inc Common Stock|N|MSCI|N|100|N|MSCI -MSD|Morgan Stanley Emerging Markets Debt Fund, Inc. Common Stock|N|MSD|N|100|N|MSD -MSF|Morgan Stanley Emerging Markets Fund, Inc. Common Stock|N|MSF|N|100|N|MSF -MSI|Motorola Solutions, Inc. Common Stock|N|MSI|N|100|N|MSI -MSJ|Morgan Stanley Cap Trust VI Cap Securities|N|MSJ|N|100|N|MSJ -MSK|Morgan Stanley Cap TR VIII GDT Cap Securities|N|MSK|N|100|N|MSK -MSL|MidSouth Bancorp Common Stock|N|MSL|N|100|N|MSL -MSM|MSC Industrial Direct Company, Inc. Common Stock|N|MSM|N|100|N|MSM -MSN|Emerson Radio Corporation Common Stock|A|MSN|N|100|N|MSN -MSO|Martha Stewart Living Omnimedia, Inc. Common Stock|N|MSO|N|100|N|MSO -MSP|Madison Strategic Sector Premium Fund Madison Strategic Sector Premium Fund Common Shares of Beneficial Interest|N|MSP|N|100|N|MSP -MSTX|Mast Therapeutics, Inc. Common Stock|A|MSTX|N|100|N|MSTX -MSZ|Morgan Stanley Capital Trust VII Cap Secs|N|MSZ|N|100|N|MSZ -MT|Arcelor Mittal NY Registry Shares NEW|N|MT|N|100|N|MT -MTB|M&T Bank Corporation Common Stock|N|MTB|N|100|N|MTB -MTB$|M&T Bank Corporation Fixed Rate Cumulative Perpetual Preferred Stock, Series A|N|MTBp|N|100|N|MTB- -MTB$C|M&T Bank Corporation Fixed Rate Cumulative Perpetual Preferred Stock, Series C|N|MTBpC|N|100|N|MTB-C -MTB.W|M&T Bank Corporation Warrant (Expiring December 23, 2018)|N|MTB/WS|N|100|N|MTB+ -MTCN|ArcelorMittal 6.00% Mandatorily Convertible Subordinated Notes due 2016|N|MTCN|N|100|N|MTCN -MTD|Mettler-Toledo International, Inc. Common Stock|N|MTD|N|100|N|MTD -MTDR|Matador Resources Company Common Stock|N|MTDR|N|100|N|MTDR -MTG|MGIC Investment Corporation Common Stock|N|MTG|N|100|N|MTG -MTH|Meritage Homes Corporation Common Stock|N|MTH|N|100|N|MTH -MTK|SPDR MS Technology|P|MTK|Y|100|N|MTK -MTL|Mechel OAO American Depositary Shares (Each rep. 1 common shares)|N|MTL|N|100|N|MTL -MTL$|Mechel Steel Group OAO American Depositary Shares (each representing one-half of a Preferred Share)|N|MTLp|N|100|N|MTL- -MTN|Vail Resorts, Inc. Common Stock|N|MTN|N|100|N|MTN -MTOR|Meritor, Inc. Common Stock|N|MTOR|N|100|N|MTOR -MTR|Mesa Royalty Trust Common Stock|N|MTR|N|100|N|MTR -MTRN|Materion Corporation|N|MTRN|N|100|N|MTRN -MTS|Montgomery Street Income Securities, Inc. Common Stock|N|MTS|N|100|N|MTS -MTT|Western Asset Municipal Defined Opportunity Trust Inc Common Stock|N|MTT|N|100|N|MTT -MTU|Mitsubishi UFJ Financial Group, Inc. Common Stock|N|MTU|N|100|N|MTU -MTUM|iShares MSCI USA Momentum Factor ETF|P|MTUM|Y|100|N|MTUM -MTW|Manitowoc Company, Inc. (The) Common Stock|N|MTW|N|100|N|MTW -MTX|Minerals Technologies Inc. Common Stock|N|MTX|N|100|N|MTX -MTZ|MasTec, Inc. Common Stock|N|MTZ|N|100|N|MTZ -MUA|Blackrock MuniAssets Fund, Inc Common Stock|N|MUA|N|100|N|MUA -MUB|iShares National AMT-Free Muni Bond ETF|P|MUB|Y|100|N|MUB -MUC|Blackrock MuniHoldings California Quality Fund, Inc. Common Stock|N|MUC|N|100|N|MUC -MUE|Blackrock MuniHoldings Quality Fund II, Inc. Common Stock|N|MUE|N|100|N|MUE -MUH|Blackrock MuniHoldings Fund II, Inc. Common Stock|N|MUH|N|100|N|MUH -MUI|Blackrock Muni Intermediate Duration Fund Inc Common Stock|N|MUI|N|100|N|MUI -MUJ|Blackrock MuniHoldings New Jersey Quality Fund, Inc. Common Stock|N|MUJ|N|100|N|MUJ -MUNI|PIMCO Intermediate Municipal Bond Active Exchange-Traded Fund|P|MUNI|Y|100|N|MUNI -MUR|Murphy Oil Corporation Common Stock|N|MUR|N|100|N|MUR -MUS|Blackrock MuniHoldings Quality Fund, Inc Common Stock|N|MUS|N|100|N|MUS -MUSA|Murphy USA Inc. Common Stock|N|MUSA|N|100|N|MUSA -MUX|McEwen Mining Inc. Common Stock|N|MUX|N|100|N|MUX -MVC|MVC Capital, Inc. Common Stock|N|MVC|N|100|N|MVC -MVCB|MVC Capital 7.25% Senior Notes due 2023|N|MVCB|N|100|N|MVCB -MVF|Blackrock MuniVest Fund, Inc. Common Stock|A|MVF|N|100|N|MVF -MVG|Mag Silver Corporation Oridinary Shares|A|MVG|N|100|N|MVG -MVNR|Mavenir Systems, Inc. Common Stock|N|MVNR|N|100|N|MVNR -MVO|MV Oil Trust Units of Beneficial Interests|N|MVO|N|100|N|MVO -MVT|Blackrock MuniVest Fund II, Inc. Common Stock|N|MVT|N|100|N|MVT -MVV|ProShares Ultra MidCap400|P|MVV|Y|100|N|MVV -MW|Men's Wearhouse, Inc. (The) Common Stock|N|MW|N|100|N|MW -MWA|MUELLER WATER PRODUCTS Common Stock|N|MWA|N|100|N|MWA -MWE|MarkWest Energy Partners, LP Common units representing limited partnership units|N|MWE|N|100|N|MWE -MWG|Morgan Stanley Cap Tr IV Gtd Cap Secs|N|MWG|N|100|N|MWG -MWO|Morgan Stanley Cap Tr V Gtd Cap Secs|N|MWO|N|100|N|MWO -MWR|Morgan Stanley Cap Tr III Capital Trust Securities|N|MWR|N|100|N|MWR -MWV|Meadwestvaco Corporation Common Stock|N|MWV|N|100|N|MWV -MWW|Monster Worldwide, Inc. Common Stock|N|MWW|N|100|N|MWW -MX|MagnaChip Semiconductor Corporation Depositary Shares, each representing one share of common stock|N|MX|N|100|N|MX -MXC|Mexco Energy Corporation Common Stock|A|MXC|N|100|N|MXC -MXE|Mexico Equity and Income Fund, Inc. (The) Common Stock|N|MXE|N|100|N|MXE -MXF|Mexico Fund, Inc. (The) Common Stock|N|MXF|N|100|N|MXF -MXI|iShares Global Materials ETF|P|MXI|Y|100|N|MXI -MXL|MaxLinear, Inc Class A Common Stock|N|MXL|N|100|N|MXL -MY|China Ming Yang Wind Power Group Limited American Depositary Shares, each representing one ordinary share $0.001 par value|N|MY|N|100|N|MY -MYC|Blackrock MuniYield California Fund, Inc. Common Stock|N|MYC|N|100|N|MYC -MYCC|ClubCorp Holdings, Inc. Common Stock|N|MYCC|N|100|N|MYCC -MYD|Blackrock MuniYield Fund, Inc. Common Stock|N|MYD|N|100|N|MYD -MYE|Myers Industries, Inc. Common Stock|N|MYE|N|100|N|MYE -MYF|Blackrock MuniYield Investment Fund Common Stock|N|MYF|N|100|N|MYF -MYI|Blackrock MuniYield Quality Fund III, Inc Common Stock|N|MYI|N|100|N|MYI -MYJ|Blackrock MuniYield New Jersey Fund, Inc Common Stock|N|MYJ|N|100|N|MYJ -MYM|Blackrock MuniYield Michigan Quality Fund II, Inc. Common Stock|N|MYM|N|100|N|MYM -MYN|Blackrock MuniYield New York Quality Fund, Inc.Common Stock|N|MYN|N|100|N|MYN -MYY|ProShares Short MidCap400|P|MYY|Y|100|N|MYY -MZA|Blackrock MuniYield Arizona Fund, Inc. Common Stock|A|MZA|N|100|N|MZA -MZF|Managed Duration Investment Grade Municipal Fund|N|MZF|N|100|N|MZF -MZZ|ProShares UltraShort MidCap400|P|MZZ|Y|100|N|MZZ -N|Netsuite Inc Common Stock|N|N|N|100|N|N -NAC|Nuveen California Dividend Advantage Municipal Fund Common Stock|N|NAC|N|100|N|NAC -NAD|Nuveen Dividend Advantage Municipal Fund Common Stock|N|NAD|N|100|N|NAD -NADL|North Atlantic Drilling Ltd. Common Shares|N|NADL|N|100|N|NADL -NAK|Northern Dynasty Minerals, Ltd. Common Stock|A|NAK|N|100|N|NAK -NAN|Nuveen New York Dividend Advantage Municipal Fund Common Stock|N|NAN|N|100|N|NAN -NAO|Nordic Amern Offshore Ltd Ordinary Shares Reg S (Marshall Islands)|N|NAO|N|100|N|NAO -NAP|Navios Maritime Midstream Partners LP Common Units representing limited partner interests|N|NAP|N|100|N|NAP -NASH|Nashville Area ETF|P|NASH|Y|100|N|NASH -NAT|Nordic American Tankers Limited Common Stock|N|NAT|N|100|N|NAT -NAV|Navistar International Corporation Common Stock|N|NAV|N|100|N|NAV -NAV$D|Navistar International Corporation Preferred Stock|N|NAVpD|N|100|N|NAV-D -NAVB|Navidea Biopharmaceuticals, Inc. Common Stock|A|NAVB|N|100|N|NAVB -NAZ|Nuveen Arizona Premium Income Municipal Fund Common Stock|N|NAZ|N|100|N|NAZ -NBB|Nuveen Build America Bond Fund Common Shares of Beneficial Interest|N|NBB|N|100|N|NBB -NBD|Nuveen Build America Bond Opportunity Fund Common Shares of Beneficial Interest|N|NBD|N|100|N|NBD -NBG|Natl Bk Greece American Depositary Shares|N|NBG|N|100|N|NBG -NBG$A|National Bank of Greece SA Sponsored ADR representing Series A Preferred Shares (Greece)|N|NBGpA|N|100|N|NBG-A -NBH|Neuberger Berman Intermediate Municipal Fund Inc. Common Stock|A|NBH|N|100|N|NBH -NBHC|National Bank Holdings Corporation Common Stock|N|NBHC|N|100|N|NBHC -NBL|Noble Energy Inc. Common Stock|N|NBL|N|100|N|NBL -NBO|Neuberger Berman New York Intermediate Municipal Fund Inc. Common Stock|A|NBO|N|100|N|NBO -NBR|Nabors Industries Ltd.|N|NBR|N|100|N|NBR -NBW|Neuberger Berman California Intermediate Municipal Fund Inc. Common Stock|A|NBW|N|100|N|NBW -NBY|NovaBay Pharmaceuticals, Inc. Common Stock|A|NBY|N|100|N|NBY -NC|NACCO Industries, Inc. Common Stock|N|NC|N|100|N|NC -NCA|Nuveen California Municipal Value Fund, Inc. Common Stock|N|NCA|N|100|N|NCA -NCB|Nuveen California Municipal Value Fund 2 Common Shares of Beneficial Interest|A|NCB|N|100|N|NCB -NCFT|Norcraft Companies, Inc. Common Stock|N|NCFT|N|100|N|NCFT -NCI|Navigant Consulting, Inc. Common Stock|N|NCI|N|100|N|NCI -NCQ|NovaCopper Inc. Common Stock|A|NCQ|N|100|N|NCQ -NCR|NCR Corporation Common Stock|N|NCR|N|100|N|NCR -NCS|NCI Building Systems, Inc. New Common Stock|N|NCS|N|100|N|NCS -NCT|Newcastle Investment Corporation|N|NCT|N|100|N|NCT -NCT$B|Newcastle Investment Corporation Preferred Series B|N|NCTpB|N|100|N|NCT-B -NCT$C|Newcastle Investment Corporation Preferred Series C|N|NCTpC|N|100|N|NCT-C -NCT$D|Newcastle Invt Corp New PFD Ser D%|N|NCTpD|N|100|N|NCT-D -NCV|AllianzGI Convertible & Income Fund|N|NCV|N|100|N|NCV -NCZ|AllianzGI Convertible & Income Fund II Common Shares of Beneficial Interest|N|NCZ|N|100|N|NCZ -NDP|Tortoise Energy Independence Fund, Inc. Common Stock|N|NDP|N|100|N|NDP -NDRO|Enduro Royalty Trust Trust Units representing beneficial interest in the trust|N|NDRO|N|100|N|NDRO -NE|Noble Corporation Ordinary Shares (UK)|N|NE|N|100|N|NE -NEA|Nuveen AMT-Free Municipal Income Fund Common Shares of Beneficial Interest Par Value $.01|N|NEA|N|100|N|NEA -NEAR|iShares Short Maturity Bond ETF|Z|NEAR|Y|100|N|NEAR -NEE|NextEra Energy, Inc. Common Stock|N|NEE|N|100|N|NEE -NEE$C|FPL Group, Inc. 5 7/8% Preferred Trust Securities|N|NEEpC|N|100|N|NEE-C -NEE$G|NextEra Energy, Inc. Series G Junior Subordinated Debenture due March 1, 2072|N|NEEpG|N|100|N|NEE-G -NEE$H|NextEra Energy, Inc. Series H Junior Subordinated Debentures due June 15, 2072|N|NEEpH|N|100|N|NEE-H -NEE$I|NextEra Energy, Inc. Series I Junior Subordinated Debentures due November 15, 2072|N|NEEpI|N|100|N|NEE-I -NEE$J|NextEra Energy, Inc. Series J Junior Subordinated Debentures due January 15, 2073|N|NEEpJ|N|100|N|NEE-J -NEE$O|NextEra Energy, Inc. Units Expiring 09/01/2015|N|NEEpO|N|100|N|NEE-O -NEE$P|NextEra Energy, Inc. EQUITY UNIT|N|NEEpP|N|100|N|NEE-P -NEFF|Neff Corporation Common Stock|N|NEFF|N|100|N|NEFF -NEM|Newmont Mining Corporation|N|NEM|N|100|N|NEM -NEN|New England Realty Associates Limited Partnership Class A Depositary Receipts Evidencing Units of Limited Partnership|A|NEN|N|100|N|NEN -NEP|NextEra Energy Partners, LP Common Units representing limited partner interests|N|NEP|N|100|N|NEP -NES|Nuverra Environmental Solutions, Inc. Common Stock|N|NES|N|100|N|NES -NEU|NewMarket Corp Common Stock|N|NEU|N|100|N|NEU -NEV|Nuveen Enhanced Municipal Value Fund Common Shares of Beneficial Interest|N|NEV|N|100|N|NEV -NEWM|New Media Investment Group Inc. Common Stock|N|NEWM|N|100|N|NEWM -NEWR|New Relic, Inc. Common Stock|N|NEWR|N|100|N|NEWR -NFG|National Fuel Gas Company Common Stock|N|NFG|N|100|N|NFG -NFJ|AllianzGI NFJ Dividend, Interest & Premium Strategy Fund|N|NFJ|N|100|N|NFJ -NFO|Guggenheim Insider ETF|P|NFO|Y|100|N|NFO -NFRA|FlexShares STOXX Global Broad Infrastructure Index Fund|P|NFRA|Y|100|N|NFRA -NFX|Newfield Exploration Company Common Stock|N|NFX|N|100|N|NFX -NG|Novagold Resources Inc.|A|NG|N|100|N|NG -NGD|New Gold Inc.|A|NGD|N|100|N|NGD -NGE|Global X MSCI Nigeria ETF|P|NGE|Y|100|N|NGE -NGG|National Grid Transco, PLC National Grid PLC (NEW) American Depositary Shares|N|NGG|N|100|N|NGG -NGL|NGL ENERGY PARTNERS LP Common Units representing Limited Partner Interests|N|NGL|N|100|N|NGL -NGLS|Targa Resources Partners LP Common Units Representing Limited Partnership Interests|N|NGLS|N|100|N|NGLS -NGS|Natural Gas Services Group, Inc. Common Stock|N|NGS|N|100|N|NGS -NGVC|Natural Grocers by Vitamin Cottage, Inc. Common Stock|N|NGVC|N|100|N|NGVC -NHC|National HealthCare Corporation Common Stock|A|NHC|N|100|N|NHC -NHC$A|National HealthCare Corporation Series A Convertible Pfd Stk|A|NHCpA|N|100|N|NHC-A -NHF|NexPoint Credit Strategies Fund|N|NHF|N|100|N|NHF -NHI|National Health Investors, Inc. Common Stock|N|NHI|N|100|N|NHI -NHS|Neuberger Berman High Yield Strategies Fund|A|NHS|N|100|N|NHS -NI|NiSource Inc Common Stock|N|NI|N|100|N|NI -NIB|iPath Bloomberg Cocoa Subindex Total Return SM IndexETN|P|NIB|N|100|N|NIB -NID|Nuveen Intermediate Duration Municipal Term Fund Common Shares of Beneficial Interest|N|NID|N|100|N|NID -NIE|AllianzGI Equity & Convertible Income Fund|N|NIE|N|100|N|NIE -NIM|Nuveen Select Maturities Municipal Fund Common Stock|N|NIM|N|100|N|NIM -NINI|iPath Pure Beta Nickel ETN|P|NINI|N|100|N|NINI -NIO|Nuveen Municipal Opportunity Fund, Inc. Common Stock|N|NIO|N|100|N|NIO -NIQ|Nuveenn Intermediate Duration Quality Municipal Term Fund Common Shares of Beneficial Interest|N|NIQ|N|100|N|NIQ -NJ|Nidec Corporation (Nihon Densan Kabushiki Kaisha) American Depositary Shares|N|NJ|N|100|N|NJ -NJR|NewJersey Resources Corporation Common Stock|N|NJR|N|100|N|NJR -NJV|Nuveen New Jersey Municipal Value Fund Common Shares of Beneficial Interest|A|NJV|N|100|N|NJV -NKA|Niska Gas Storage Partners LLC Common Units Representing Limited Liability Company Interests|N|NKA|N|100|N|NKA -NKE|Nike, Inc. Common Stock|N|NKE|N|100|N|NKE -NKG|Nuveen Georgia Dividend Advantage Municipal Fund 2 Nuveen Georgia Dividend Advantage Municipal Fund 2 (the|N|NKG|N|100|N|NKG -NKX|Nuveen California AMT-Free Municipal Income Fund|N|NKX|N|100|N|NKX -NKY|MAXIS Nikkei 225 Index Fund ETF|P|NKY|Y|100|N|NKY -NL|NL Industries, Inc. Common Stock|N|NL|N|100|N|NL -NLR|Market Vectors Uranium & Nuclear Energy ETF|P|NLR|Y|100|N|NLR -NLS|Nautilus, Inc. Common Stock|N|NLS|N|100|N|NLS -NLSN|Nielsen N.V. Common Stock|N|NLSN|N|100|N|NLSN -NLY|Annaly Capital Management Inc Common Stock|N|NLY|N|100|N|NLY -NLY$A|Annaly Capital Management Inc Preferred Stock Series A|N|NLYpA|N|100|N|NLY-A -NLY$C|Annaly Capital Management Inc 7.625% Series C Cumulative Redeemable Preferred Stock|N|NLYpC|N|100|N|NLY-C -NLY$D|Annaly Capital Management Inc Preferred Series D|N|NLYpD|N|100|N|NLY-D -NM|Navios Maritime Holdings Inc. Common Stock|N|NM|N|100|N|NM -NM$G|Navios Maritime Holdings Inc. Sponsored ADR Representing 1/100th Perpetual Preferred Series G (Marshall Islands)|N|NMpG|N|100|N|NM-G -NM$H|Navios Maritime Holdings Inc. Sponsored ADR Representing 1/100th Perp. Preferred Series H%|N|NMpH|N|100|N|NM-H -NMA|Nuveen Municipal Advantage Fund, Inc. Common Stock|N|NMA|N|100|N|NMA -NMBL|Nimble Storage, Inc. Common Stock|N|NMBL|N|100|N|NMBL -NMFC|New Mountain Finance Corporation Common Stock|N|NMFC|N|100|N|NMFC -NMI|Nuveen Municipal Income Fund, Inc. Common Stock|N|NMI|N|100|N|NMI -NMK$B|Niagara Mohawk Holdings, Inc. Preferred Stock|N|NMKpB|N|10|N|NMK-B -NMK$C|Niagara Mohawk Holdings, Inc. Preferred Stock|N|NMKpC|N|10|N|NMK-C -NML|Neuberger Berman MLP Income Fund Inc. Common Stock|A|NML|N|100|N|NML -NMM|Navios Maritime Partners LP Common Units Representing Limited Partner Interests|N|NMM|N|100|N|NMM -NMO|Nuveen Municipal Market Opportunity Fund, Inc. Common Stock|N|NMO|N|100|N|NMO -NMR|Nomura Holdings Inc ADR American Depositary Shares|N|NMR|N|100|N|NMR -NMS|Nuveen Minnesota Municipal Income Fund Common Shares of Beneficial Interest|N|NMS|N|100|N|NMS -NMT|Nuveen Massachusetts Premium Income Municipal Fund Common Stock|N|NMT|N|100|N|NMT -NMY|Nuveen Maryland Premium Income Municipal Fund Common Stock|N|NMY|N|100|N|NMY -NMZ|Nuveen Municipal High Income Opportunity Fund Common Stock, $0.01 par value, per share|A|NMZ|N|100|N|NMZ -NNA|Navios Maritime Acquisition Corporation Common stock|N|NNA|N|100|N|NNA -NNC|Nuveen North Carolina Premium Income Municipal Fund Common Stock|N|NNC|N|100|N|NNC -NNI|Nelnet, Inc. Common Stock|N|NNI|N|100|N|NNI -NNN|National Retail Properties Common Stock|N|NNN|N|100|N|NNN -NNN$D|National Retail Properties Depositary Shares Representing 1/100th Preferred Series D|N|NNNpD|N|100|N|NNN-D -NNN$E|National Retail Properties Depositary Shares, each representing a 1/100th interest in a share of 5.70% Series E Pfd.|N|NNNpE|N|100|N|NNN-E -NNP|Nuveen New York Performance Plus Municipal Fund, Inc. Common Stock|N|NNP|N|100|N|NNP -NNVC|NanoViricides, Inc. NEW Common Stock|A|NNVC|N|100|N|NNVC -NNY|Nuveen New York Municipal Value Fund, Inc. Common Stock|N|NNY|N|100|N|NNY -NOA|North American Energy Partners, Inc. Common Shares (no par)|N|NOA|N|100|N|NOA -NOAH|Noah Holdings Limited|N|NOAH|N|100|N|NOAH -NOBL|ProShares S&P 500 Dividend Aristocrats ETF|P|NOBL|Y|100|N|NOBL -NOC|Northrop Grumman Corporation Common Stock|N|NOC|N|100|N|NOC -NOG|Northern Oil and Gas, Inc. Common Stock|A|NOG|N|100|N|NOG -NOK|Nokia Corporation Sponsored American Depositary Shares|N|NOK|N|100|N|NOK -NOM|Nuveen Missouri Premium Income Municipal Fund Common Shares of Beneficial Interest|A|NOM|N|100|N|NOM -NOM$C|Nuveen Missouri Premium Income Municipal Fund MUNIFUND TERM PFD SHS SER 2015 (United States)|N|NOMpC/CL|N|100|N|NOM-C* -NOR|Noranda Aluminum Holding Corporation Common Stock|N|NOR|N|100|N|NOR -NORD|Nord Anglia Education, Inc. Ordinary Shares|N|NORD|N|100|N|NORD -NORW|Global X MSCI Norway ETF|P|NORW|Y|100|N|NORW -NOV|National Oilwell Varco, Inc. Common Stock|N|NOV|N|100|N|NOV -NOW|ServiceNow, Inc. Common Stock|N|NOW|N|100|N|NOW -NP|Neenah Paper, Inc. Common Stock|N|NP|N|100|N|NP -NPD|China Nepstar Chain Drugstore Ltd American Depositary Shares|N|NPD|N|100|N|NPD -NPF|Nuveen Premier Municipal Income Fund, Inc. Common Stock|N|NPF|N|100|N|NPF -NPI|Nuveen Premium Income Municipal Fund, Inc. Common Stock|N|NPI|N|100|N|NPI -NPK|National Presto Industries, Inc. Common Stock|N|NPK|N|100|N|NPK -NPM|Nuveen Premium Income Municipal Fund II, Inc. Common Stock|N|NPM|N|100|N|NPM -NPN|Nuveen Pennsylvania Municipal Value Fund Common Shares of Beneficial Interest|A|NPN|N|100|N|NPN -NPO|Enpro Industries Inc|N|NPO|N|100|N|NPO -NPP|Nuveen Performance Plus Municipal Fund, Inc. Common Stock|N|NPP|N|100|N|NPP -NPT|Nuveen Premium Income Municipal Fund IV, Inc. Common Stock|N|NPT|N|100|N|NPT -NPTN|NeoPhotonics Corporation Common Stock|N|NPTN|N|100|N|NPTN -NPV|Nuveen Virginia Premium Income Municipal Fund Common Stock|N|NPV|N|100|N|NPV -NQ|NQ Mobile Inc. American Depositary Shares, each representing five Class A common shares|N|NQ|N|100|N|NQ -NQI|Nuveen Quality Municipal Fund, Inc. Common Stock|N|NQI|N|100|N|NQI -NQM|Nuveen Investment Quality Municipal Fund, Inc. Common Stock|N|NQM|N|100|N|NQM -NQP|Nuveen Pennsylvania Investment Quality Municipal Fund, Inc. Common Stock|N|NQP|N|100|N|NQP -NQS|Nuveen Select Quality Municipal Fund, Inc. Common Stock|N|NQS|N|100|N|NQS -NQU|Nuveen Quality Income Municipal Fund, Inc. Common Stock|N|NQU|N|100|N|NQU -NR|Newpark Resources, Inc. Common Stock|N|NR|N|100|N|NR -NRF|NorthStar Realty Finance Corp. Common Stock (New)|N|NRF|N|100|N|NRF -NRF$A|Northstar Realty Finance Corp. 8.75% Series A Cumulative Redeemable Preferred Stock|N|NRFpA|N|100|N|NRF-A -NRF$B|Northstar Realty Finance Corp. Preferred Series B|N|NRFpB|N|100|N|NRF-B -NRF$C|Northstar Realty Finance Corp. Preferred Series C|N|NRFpC|N|100|N|NRF-C -NRF$D|Northstar Realty Finance Corp. 8.50% Series D Cumulative Redeemable Preferred Stock|N|NRFpD|N|100|N|NRF-D -NRF$E|Northstar Realty Finance Corp. Preferred Stock Series E|N|NRFpE|N|100|N|NRF-E -NRG|NRG Energy, Inc. Common Stock|N|NRG|N|100|N|NRG -NRK|Nuveen New York AMT-Free Municipal Income Fund Common Shares of Beneficial Interest Par Value $.01|N|NRK|N|100|N|NRK -NRO|Neuberger Berman Real Estate Securities Income Fund, Inc. Neuberger Berman Real Estate Securities Income Fund, Inc.|A|NRO|N|100|N|NRO -NRP|Natural Resource Partners LP Limited Partnership|N|NRP|N|100|N|NRP -NRT|North European Oil Royality Trust Common Stock|N|NRT|N|100|N|NRT -NRZ|New Residential Investment Corp. Common Stock|N|NRZ|N|100|N|NRZ -NS|Nustar Energy L.P. Common Units|N|NS|N|100|N|NS -NSAM|NorthStar Asset Management Group, Inc. Common Stock|N|NSAM|N|100|N|NSAM -NSC|Norfolk Southern Corporation Common Stock|N|NSC|N|100|N|NSC -NSH|Nustar GP Holdings, LLC Units|N|NSH|N|100|N|NSH -NSL|Nuveen Senior Income Fund Common Stock|N|NSL|N|100|N|NSL -NSLP|New Source Energy Partners L.P. Common Units Representing Limited Partner Interests|N|NSLP|N|100|N|NSLP -NSM|Nationstar Mortgage Holdings Inc. Common Stock|N|NSM|N|100|N|NSM -NSP|Insperity, Inc. Common Stock|N|NSP|N|100|N|NSP -NSPR|InspireMD, Inc. Common Stock|A|NSPR|N|100|N|NSPR -NSR|Neustar, Inc. Neustar, Inc. Class A Common Stock|N|NSR|N|100|N|NSR -NSS|NuStar Logistics, L.P. 7.625% Fixed-to-Floating Rate Subordinated Notes due 2043|N|NSS|N|100|N|NSS -NSU|Nevsun Resources Ltd Ordinary Shares|A|NSU|N|100|N|NSU -NTC|Nuveen Connecticut Premium Income Municipal Fund Common Stock|N|NTC|N|100|N|NTC -NTG|Tortoise MLP Fund, Inc. Common Stock|N|NTG|N|100|N|NTG -NTI|Northern Tier Energy LP Common Units representing Limited Partner Interests|N|NTI|N|100|N|NTI -NTIP|Network-1 Technologies, Inc. Common Stock|A|NTIP|N|100|N|NTIP -NTL|Nortel Inversora SA, ADR Common Stock|N|NTL|N|100|N|NTL -NTN|NTN Buzztime, Inc. Common Stock|A|NTN|N|100|N|NTN -NTP|Nam Tai Property Inc. Common Stock|N|NTP|N|100|N|NTP -NTT|Nippon Telegraph and Telephone Corporation Common Stock|N|NTT|N|100|N|NTT -NTX|Nuveen Texas Quality Income Municipal Fund Common Stock|N|NTX|N|100|N|NTX -NTX$C|Nuveen Texas Quality Income Municipal Fund Munifund Term Pfd Shs Ser 2013|N|NTXpC|N|100|N|NTX-C -NTZ|Natuzzi, S.p.A.|N|NTZ|N|100|N|NTZ -NU|Northeast Utilities Common Stock|N|NU|N|100|N|NU -NUE|Nucor Corporation Common Stock|N|NUE|N|100|N|NUE -NUGT|Direxion Daily Gold Miners Bull 3X Shares|P|NUGT|Y|100|N|NUGT -NUM|Nuveen Michigan Quality Income Municipal Fund Common Stock|N|NUM|N|100|N|NUM -NUO|Nuveen Ohio Quality Income Municipal Fund Common Stock|N|NUO|N|100|N|NUO -NUS|Nu Skin Enterprises, Inc. Common Stock|N|NUS|N|100|N|NUS -NUV|Nuveen Municipal Value Fund, Inc. Common Stock|N|NUV|N|100|N|NUV -NUW|Nuveen AMT-Free Municipal Value Fund|N|NUW|N|100|N|NUW -NVG|Nuveen Dividend Advantage Municipal Income Fund Common Shares of Beneficial Interest|A|NVG|N|100|N|NVG -NVGS|Navigator Holdings Ltd. Ordinary Shares (Marshall Islands)|N|NVGS|N|100|N|NVGS -NVO|Novo Nordisk A/S Common Stock|N|NVO|N|100|N|NVO -NVR|NVR, Inc. Common Stock|N|NVR|N|100|N|NVR -NVRO|Nevro Corp. Common Stock|N|NVRO|N|100|N|NVRO -NVS|Novartis AG Common Stock|N|NVS|N|100|N|NVS -NVX|Nuveen California Dividend Advantage Municipal Fund 2 Share of Beneficial Interest|A|NVX|N|100|N|NVX -NW$C|Natl Westminster Pfd Preferred Stock|N|NWpC|N|100|N|NW-C -NWE|NorthWestern Corporation Common Stock|N|NWE|N|100|N|NWE -NWHM|New Home Company Inc. (The) Common Stock|N|NWHM|N|100|N|NWHM -NWL|Newell Rubbermaid Inc. Common Stock|N|NWL|N|100|N|NWL -NWN|Northwest Natural Gas Company Common Stock|N|NWN|N|100|N|NWN -NWY|New York & Company, Inc. New York & Company, Inc. Common Shares|N|NWY|N|100|N|NWY -NX|Quanex Building Products Corporation Common Stock|N|NX|N|100|N|NX -NXC|Nuveen California Select Tax-Free Income Portfolio Common Stock|N|NXC|N|100|N|NXC -NXJ|Nuveen New Jersey Dividend Advantage Municipal Fund Share of Beneficial Interest|N|NXJ|N|100|N|NXJ -NXJ$C|Nuveen New Jersey Dividend Advantage Municipal Fund MuniFund Term Preferred Shares, 2.00% Series 2015, $10.00 Liquidation preference per share|N|NXJpC/CL|N|100|N|NXJ-C* -NXK|Nuveen New York Dividend Advantage Municipal Fund 2 Share of Beneficial Interest|A|NXK|N|100|N|NXK -NXN|Nuveen New York Select Tax-Free Income Portfolio Common Stock|N|NXN|N|100|N|NXN -NXP|Nuveen Select Tax Free Income Portfolio Common Stock|N|NXP|N|100|N|NXP -NXQ|Nuveen Select Tax Free Income Portfolio II Common Stock|N|NXQ|N|100|N|NXQ -NXR|Nuveen Select Tax Free Income Portfolio III Common Stock|N|NXR|N|100|N|NXR -NXZ|Nuveen Dividend Advantage Municipal Fund 2 Share of Beneficial Interest|A|NXZ|N|100|N|NXZ -NYCB|New York Community Bancorp, Inc. Common Stock|N|NYCB|N|100|N|NYCB -NYCB$U|New York Community Bancorp, Inc. New York Community Capital Tr V (BONUSES)|N|NYCBpU|N|100|N|NYCB-U -NYCC|PowerShares NYSE Century Portfolio|P|NYCC|Y|100|N|NYCC -NYF|iShares New York AMT-Free Muni Bond ETF|P|NYF|Y|100|N|NYF -NYH|Eaton Vance New York Municipal Bond Fund II Common Shares of Beneficial Interest, $.01 par value|A|NYH|N|100|N|NYH -NYLD|NRG Yield, Inc. Class A Common Stock|N|NYLD|N|100|N|NYLD -NYRT|New York REIT, Inc. Common Stock|N|NYRT|N|100|N|NYRT -NYT|New York Times Company (The) Common Stock|N|NYT|N|100|N|NYT -NYV|Nuveen New York Municipal Value Fund 2 Common Shares of Beneficial Interest|A|NYV|N|100|N|NYV -NZF|Nuveen Dividend Advantage Municipal Fund 3 Common Shares of Beneficial Interest|A|NZF|N|100|N|NZF -NZH|Nuveen California Dividend Advantage Municipal Fund 3 Common Shares of Beneficial Interest|A|NZH|N|100|N|NZH -O|Realty Income Corporation Common Stock|N|O|N|100|N|O -O$F|Realty Income Corporation Monthly Income Cumulative Red Preferred Stock Class F|N|OpF|N|100|N|O-F -OAK|Oaktree Capital Group, LLC Class A Units Representing Limited Liability Company Interests|N|OAK|N|100|N|OAK -OAKS|Five Oaks Investment Corp. Common Stock|N|OAKS|N|100|N|OAKS -OAKS$A|Five Oaks Investment Corp. 8.75% Series A Cumulative Redeemable Preferred Stock|N|OAKSpA|N|100|N|OAKS-A -OAS|Oasis Petroleum Inc. Common Stock|N|OAS|N|100|N|OAS -OB|OneBeacon Insurance Group, Ltd. Class A Common Stock|N|OB|N|100|N|OB -OC|Owens Corning Inc Common Stock New|N|OC|N|100|N|OC -OCIP|OCI Partners LP Common Units representing Limited Partner Interests|N|OCIP|N|100|N|OCIP -OCIR|OCI Resources LP Common Units representing Limited Partner Interests|N|OCIR|N|100|N|OCIR -OCN|Ocwen Financial Corporation NEW Common Stock|N|OCN|N|100|N|OCN -OCR|Omnicare, Inc. Common Stock|N|OCR|N|100|N|OCR -OCR$A|Omnicare, Inc. Trust Preferred Income Equity Redeemable Securities (PIERS)|N|OCRpA|N|100|N|OCR-A -OCR$B|Omnicare, Inc. Omnicare Capital Trust II Series B 4.00% Trust Preferred Income Equity Redeemable Securities (PIERS)|N|OCRpB|N|100|N|OCR-B -ODC|Oil-Dri Corporation Of America Common Stock|N|ODC|N|100|N|ODC -OEC|Orion Engineered Carbons S.A Common Shares|N|OEC|N|100|N|OEC -OEF|iShares S&P 100 ETF|P|OEF|Y|100|N|OEF -OESX|Orion Energy Systems, Inc. Common Stock|A|OESX|N|100|N|OESX -OFC|Corporate Office Properties Trust Common Stock|N|OFC|N|100|N|OFC -OFC$L|Corporate Office Properties Trust Preferred Series L|N|OFCpL|N|100|N|OFC-L -OFG|OFG Bancorp Common Stock|N|OFG|N|100|N|OFG -OFG$A|OFG Bancorp Preferred Stock|N|OFGpA|N|100|N|OFG-A -OFG$B|OFG Bancorp 7.0% Non Cumulative Monthly Income Preferred Stock Series B|N|OFGpB|N|100|N|OFG-B -OFG$D|OFG Bancorp 7.125% Non-Cumulative Perpetual Preferred Stock. Series D|N|OFGpD|N|100|N|OFG-D -OGCP|Empire State Realty OP, L.P. Series 60 Operating Partnership Units Representing Limited Partnership Interests|P|OGCP|N|100|N|OGCP -OGE|OGE Energy Corporation Common Stock|N|OGE|N|100|N|OGE -OGEN|Oragenics, Inc. Common Stock|A|OGEN|N|100|N|OGEN -OGS|ONE Gas, Inc. Common Stock|N|OGS|N|100|N|OGS -OHI|Omega Healthcare Investors, Inc. Common Stock|N|OHI|N|100|N|OHI -OI|Owens-Illinois, Inc. Common Stock|N|OI|N|100|N|OI -OIA|Invesco Municipal Income Opportunities Trust Common Stock|N|OIA|N|100|N|OIA -OIBR|Oi S.A. American Depositary Shares (Each representing 1 Preferred Share)|N|OIBR|N|100|N|OIBR -OIBR.C|Oi S.A. American Depositary Shares, (Each representing 1 Common Share)|N|OIBR/C|N|100|N|OIBR.C -OIH|Market Vectors Oil Services ETF|P|OIH|Y|100|N|OIH -OII|Oceaneering International, Inc. Common Stock|N|OII|N|100|N|OII -OIL|Barclays Bank Plc iPath Exchange Traded Notes Linked to Goldman Sachs Crude Oil Total Return|P|OIL|N|100|N|OIL -OILT|Oiltanking Partners, L.P. Common Units Representing Limited Partnership Interests|N|OILT|N|100|N|OILT -OIS|Oil States International, Inc. Common Stock|N|OIS|N|100|N|OIS -OKE|ONEOK, Inc. Common Stock|N|OKE|N|100|N|OKE -OKS|ONEOK Partners, L.P. Common Stock|N|OKS|N|100|N|OKS -OLEM|iPath Pure Beta Crude Oil ETN|P|OLEM|N|100|N|OLEM -OLN|Olin Corporation Common Stock|N|OLN|N|100|N|OLN -OLO|PowerShares DB Crude Oil Long ETN|P|OLO|N|100|N|OLO -OLP|One Liberty Properties, Inc. Common Stock|N|OLP|N|100|N|OLP -OMAM|OM Asset Management plc Ordinary Shares|N|OMAM|N|100|N|OMAM -OMC|Omnicom Group Inc. Common Stock|N|OMC|N|100|N|OMC -OME|Omega Protein Corporation Common Stock|N|OME|N|100|N|OME -OMG|OM Group, Inc. Common Stock|N|OMG|N|100|N|OMG -OMI|Owens & Minor, Inc. Common Stock|N|OMI|N|100|N|OMI -OMN|OMNOVA Solutions Inc. Common Stock|N|OMN|N|100|N|OMN -ONDK|On Deck Capital, Inc. Common Stock|N|ONDK|N|100|N|ONDK -ONE|Higher One Holdings, Inc. Common Stock|N|ONE|N|100|N|ONE -ONEF|Russell Exchange Traded Funds Trust|P|ONEF|Y|100|N|ONEF -ONEK|SPDR Russell 1000 ETF|P|ONEK|Y|100|N|ONEK -ONG|iPath Pure Beta Energy ETN|P|ONG|N|100|N|ONG -ONP|Orient Paper, Inc. NEW Common Stock|A|ONP|N|100|N|ONP -ONVO|Organovo Holdings, Inc. Common Stock|A|ONVO|N|100|N|ONVO -OPK|OPKO Health Inc. Common Stock|N|OPK|N|100|N|OPK -OPWR|Opower, Inc. Common Stock|N|OPWR|N|100|N|OPWR -OPY|Oppenheimer Holdings, Inc. Class A Common Stock (DE)|N|OPY|N|100|N|OPY -ORA|Ormat Technologies, Inc. Common Stock|N|ORA|N|100|N|ORA -ORAN|Orange|N|ORAN|N|100|N|ORAN -ORB|Orbital Sciences Corporation Common Stock|N|ORB|N|100|N|ORB -ORC|Orchid Island Capital, Inc. Common Stock|N|ORC|N|100|N|ORC -ORCL|Oracle Corporation Common Stock|N|ORCL|N|100|N|ORCL -ORI|Old Republic International Corporation Common Stock|N|ORI|N|100|N|ORI -ORM|Owens Realty Mortgage, Inc. Common Stock|A|ORM|N|100|N|ORM -ORN|Orion Marine Group Inc Common|N|ORN|N|100|N|ORN -OSGB|Overseas Shipholding Group, Inc. COM CL B|A|OSGB|N|100|N|OSGB -OSK|Oshkosh Corporation (Holding Company)Common Stock|N|OSK|N|100|N|OSK -OSMS|Barclays OFI SteelPath MLP ETN|P|OSMS|N|100|N|OSMS -OUNZ|Merk Gold Trust ETV|P|OUNZ|Y|100|N|OUNZ -OUT|OUTFRONT Media Inc. Common Stock|N|OUT|N|100|N|OUT -OWW|Orbitz Worldwide, Inc. Common Stock|N|OWW|N|100|N|OWW -OXM|Oxford Industries, Inc. Common Stock|N|OXM|N|100|N|OXM -OXY|Occidental Petroleum Corporation Common Stock|N|OXY|N|100|N|OXY -OZM|Och-Ziff Capital Management Group LLC Class A Shares representing Class A limited liability company interests|N|OZM|N|100|N|OZM -P|Pandora Media, Inc. Common Stock|N|P|N|100|N|P -PAA|Plains All American Pipeline, L.P. Common Stock|N|PAA|N|100|N|PAA -PAC|Grupo Aeroportuario Del Pacifico, S.A. B. de C.V. Grupo Aeroportuario Del Pacifico, S.A. de C.V. (each representing 10 Series B shares)|N|PAC|N|100|N|PAC -PACD|Pacific Drilling S.A. Common Shares|N|PACD|N|100|N|PACD -PAF|PowerShares FTSE RAFI Asia Pacific ex-Japan Portfolio|P|PAF|Y|100|N|PAF -PAG|Penske Automotive Group, Inc. Common Stock|N|PAG|N|100|N|PAG -PAGP|Plains Group Holdings, L.P. Class A Shares representing limited partner interests|N|PAGP|N|100|N|PAGP -PAH|Platform Specialty Products Corporation Common Stock|N|PAH|N|100|N|PAH -PAI|Western Asset Income Fund Common Stock|N|PAI|N|100|N|PAI -PAL|North American Palladium, Ltd. Common Stock|A|PAL|N|100|N|PAL -PALL|ETFS Physical Palladium Shares|P|PALL|Y|100|N|PALL -PAM|Pampa Energia S.A. Pampa Energia S.A.|N|PAM|N|100|N|PAM -PANW|Palo Alto Networks, Inc. Common Stock|N|PANW|N|100|N|PANW -PAR|PAR Technology Corporation Common Stock|N|PAR|N|100|N|PAR -PARR|Par Petroleum Corporation. Common Stock|A|PARR|N|100|N|PARR -PAY|Verifone Systems, Inc. Common Stock|N|PAY|N|100|N|PAY -PAYC|Paycom Software, Inc. Common Stock|N|PAYC|N|100|N|PAYC -PB|Prosperity Bancshares, Inc. Common Stock|N|PB|N|100|N|PB -PBA|Pembina Pipeline Corp. Ordinary Shares (Canada)|N|PBA|N|100|N|PBA -PBD|PowerShares Global Clean Energy Portfolio|P|PBD|Y|100|N|PBD -PBE|PowerShares Dynamic Biotech &Genome|P|PBE|Y|100|N|PBE -PBF|PBF Energy Inc. Class A Common Stock|N|PBF|N|100|N|PBF -PBFX|PBF Logistics LP Common Units representing limited partner interests|N|PBFX|N|100|N|PBFX -PBH|Prestige Brand Holdings, Inc. Common Stock|N|PBH|N|100|N|PBH -PBI|Pitney Bowes Inc. Common Stock|N|PBI|N|100|N|PBI -PBI$A|Pitney Bowes Inc 5.25% Notes due 2022|N|PBIpA|N|100|N|PBI-A -PBI$B|Pitney Bowes Inc 6.70% Notes Due 2043|N|PBIpB|N|100|N|PBI-B -PBJ|PowerShares Dynamic Food & Beverage|P|PBJ|Y|100|N|PBJ -PBM|Pacific Booker Minerals Inc Ordinary Shares|A|PBM|N|100|N|PBM -PBP|PowerShares S&P 500 BuyWrite Portfolio|P|PBP|Y|100|N|PBP -PBR|Petroleo Brasileiro S.A.- Petrobras Common Stock|N|PBR|N|100|N|PBR -PBR.A|Petroleo Brasileiro S.A.- Petrobras American Depositary Shares|N|PBR/A|N|100|N|PBR.A -PBS|PowerShares Dynamic Media|P|PBS|Y|100|N|PBS -PBT|Permian Basin Royalty Trust Common Stock|N|PBT|N|100|N|PBT -PBW|PowerShares WilderHill Clean Energy Portfolio|P|PBW|Y|100|N|PBW -PBY|Pep Boys-Manny, Moe & Jack (The) Common Stock|N|PBY|N|100|N|PBY -PBYI|Puma Biotechnology Inc Common Stock|N|PBYI|N|100|N|PBYI -PCEF|PowerShares CEF Income Composite Portfolio|P|PCEF|Y|100|N|PCEF -PCF|Putnam High Income Securities Fund Common Stock|N|PCF|N|100|N|PCF -PCG|Pacific Gas & Electric Co. Common Stock|N|PCG|N|100|N|PCG -PCG$A|Pacific Gas & Electric Co. 6% Preferred Stock|A|PCGpA|N|100|N|PCG-A -PCG$B|Pacific Gas & Electric Co. 5 1/2% Preferred Stock|A|PCGpB|N|100|N|PCG-B -PCG$C|Pacific Gas & Electric Co. 5% 1st Preferred Stock|A|PCGpC|N|100|N|PCG-C -PCG$D|Pacific Gas & Electric Co. 5% 1st Red. Preferred Stock|A|PCGpD|N|100|N|PCG-D -PCG$E|Pacific Gas & Electric Co. 5% 1st A Preferred Stock|A|PCGpE|N|100|N|PCG-E -PCG$G|Pacific Gas & Electric Co. 4.80% 1st Preferred Stock|A|PCGpG|N|100|N|PCG-G -PCG$H|Pacific Gas & Electric Co. 4.50% 1st Preferred Stock|A|PCGpH|N|100|N|PCG-H -PCG$I|Pacific Gas & Electric Co. 4.36% 1st Preferred Stock|A|PCGpI|N|100|N|PCG-I -PCI|PIMCO Dynamic Credit Income Fund Common Shares of Beneficial Interest|N|PCI|N|100|N|PCI -PCK|Pimco California Municipal Income Fund II Common Shares of Beneficial Interest|N|PCK|N|100|N|PCK -PCL|Plum Creek Timber Company, Inc. Common Stock|N|PCL|N|100|N|PCL -PCM|PCM Fund, Inc. Common Stock|N|PCM|N|100|N|PCM -PCN|Pimco Corporate & Income Strategy Fund Common Stock|N|PCN|N|100|N|PCN -PCP|Precision Castparts Corporation Common Stock|N|PCP|N|100|N|PCP -PCQ|PIMCO California Municipal Income Fund Common Stock|N|PCQ|N|100|N|PCQ -PCY|PowerShares Emerging Markets Sovereign Debt Portfolio|P|PCY|Y|100|N|PCY -PDI|PIMCO Dynamic Income Fund Common Stock|N|PDI|N|100|N|PDI -PDM|Piedmont Office Realty Trust, Inc. Class A Common Stock|N|PDM|N|100|N|PDM -PDN|PowerShares FTSE RAFI Developed Markets ex-U.S. Small-Mid Portfolio|P|PDN|Y|100|N|PDN -PDP|PowerShares DWA Momentum Portfolio|P|PDP|Y|100|N|PDP -PDS|Precision Drilling Corporation Common Stock|N|PDS|N|100|N|PDS -PDT|John Hancock Premium Dividend Fund|N|PDT|N|100|N|PDT -PE|Parsley Energy, Inc. Class A Common Stock|N|PE|N|100|N|PE -PEB|Pebblebrook Hotel Trust Common Shares of Beneficial Interest|N|PEB|N|100|N|PEB -PEB$A|Pebblebrook Hotel Trust PFD SER A|N|PEBpA|N|100|N|PEB-A -PEB$B|Pebblebrook Hotel Trust Preferred Series B|N|PEBpB|N|100|N|PEB-B -PEB$C|Pebblebrook Hotel Trust 6.50% Series C Cumulative Redeemable Preferred Shares of Beneficial Interest|N|PEBpC|N|100|N|PEB-C -PED|Pedevco Corp. Common Stock|A|PED|N|100|N|PED -PEG|Public Service Enterprise Group Incorporated Common Stock|N|PEG|N|100|N|PEG -PEI|Pennsylvania Real Estate Investment Trust Common Stock|N|PEI|N|100|N|PEI -PEI$A|Pennsylvania Real Estate Investment Trust PFD sh CL A|N|PEIpA|N|100|N|PEI-A -PEI$B|Pennsylvania Real Estate Investment Trust Cumulative Redeemable Perpetual Preferred Shares Series B|N|PEIpB|N|100|N|PEI-B -PEJ|PowerShares Dynamic Leisure & Entertainment Portfolio|P|PEJ|Y|100|N|PEJ -PEK|Market Vectors ChinaAMC A-Share ETF|P|PEK|Y|100|N|PEK -PEO|Petroleum Resources Corporation Common Stock|N|PEO|N|100|N|PEO -PEP|Pepsico, Inc. Common Stock|N|PEP|N|100|N|PEP -PER|SandRidge Permian Trust Common Units of Benficial Interest|N|PER|N|100|N|PER -PERM|Global X Permanent ETF|P|PERM|Y|100|N|PERM -PES|Pioneer Energy Services Corp. Common Stk|N|PES|N|100|N|PES -PEX|ProShares Global Listed Private Equity ETF|Z|PEX|Y|100|N|PEX -PEY|PowerShares High Yield Dividend Achievers|P|PEY|Y|100|N|PEY -PEZ|PowerShares DWA Consumer Cyclicals Momentum Portfolio|P|PEZ|Y|100|N|PEZ -PF|Pinnacle Foods, Inc. Common Stock|N|PF|N|100|N|PF -PFD|Flaherty & Crumrine Preferred Income Fund Incorporated Common Stock|N|PFD|N|100|N|PFD -PFE|Pfizer, Inc. Common Stock|N|PFE|N|100|N|PFE -PFEM|PowerShares Fundamental Emerging Markets Local Debt Portfolio|P|PFEM|Y|100|N|PFEM -PFF|iShares US Preferred Stock ETF|P|PFF|Y|100|N|PFF -PFG|Principal Financial Group Inc Common Stock|N|PFG|N|100|N|PFG -PFG$B|Principal Financial Group, Inc. 6.518% Series B Non-Cumulative Perpetual Preferred Stock|N|PFGpB|N|100|N|PFG-B -PFH|Cabco Tr Jcp 7.625 Common Stock|N|PFH|N|100|N|PFH -PFI|PowerShares DWA Financial Momentum Portfolio|P|PFI|Y|100|N|PFI -PFIG|PowerShares Fundamental Investment Grade Corporate Bond Portfolio ETF|P|PFIG|Y|100|N|PFIG -PFK|Prudential Financial Inflation-Linked Retail Medium Linked Retail Medium-Term Notes due April 10, 2018|N|PFK|N|100|N|PFK -PFL|PIMCO Income Strategy Fund Shares of Beneficial Interest|N|PFL|N|100|N|PFL -PFM|PowerShares Dividend Achievers|P|PFM|Y|100|N|PFM -PFN|PIMCO Income Strategy Fund II|N|PFN|N|100|N|PFN -PFNX|Pfenex Inc. Common Stock|A|PFNX|N|100|N|PFNX -PFO|Flaherty & Crumrine Preferred Income Opportunity Fund Incorporated Common Stock|N|PFO|N|100|N|PFO -PFS|Provident Financial Services, Inc Common Stock|N|PFS|N|100|N|PFS -PFSI|PennyMac Financial Services, Inc. Class A Common Stock|N|PFSI|N|100|N|PFSI -PFX|Phoenix Companies, Inc. Phoenix Companies Inc 7.45% Pfd|N|PFX|N|100|N|PFX -PFXF|Market Vectors Preferred Securities ex Financials ETF|P|PFXF|Y|100|N|PFXF -PG|Procter & Gamble Company (The) Common Stock|N|PG|N|100|N|PG -PGAL|Global X FTSE Portugal 20 ETF|P|PGAL|Y|100|N|PGAL -PGD|iPath Asian and Gulf Currency Revaluation ETN Revaluation ETN|P|PGD|N|100|N|PGD -PGEM|Ply Gem Holdings, Inc. Common Stock|N|PGEM|N|100|N|PGEM -PGF|PowerShares Financial Preferred|P|PGF|Y|100|N|PGF -PGH|Pengrowth Energy Corporation|N|PGH|N|100|N|PGH -PGHY|PowerShares Global Short Term High Yield Bond Portfolio|P|PGHY|Y|100|N|PGHY -PGI|Premiere Global Services, Inc.|N|PGI|N|100|N|PGI -PGJ|PowerShares Golden Dragon China Portfolio|P|PGJ|Y|100|N|PGJ -PGM|iPath Bloomberg Platinum Subindex Total Return SM ETN|P|PGM|N|100|N|PGM -PGN|Paragon Offshore plc Ordinary Shares|N|PGN|N|100|N|PGN -PGP|Pimco Global Stocksplus & Income Fund Pimco Global StocksPlus & Income Fund Common Shares of Beneficial Interest|N|PGP|N|100|N|PGP -PGR|Progressive Corporation (The) Common Stock|N|PGR|N|100|N|PGR -PGRE|Paramount Group, Inc. Common Stock|N|PGRE|N|100|N|PGRE -PGX|PowerShares Preferred Portfolio|P|PGX|Y|100|N|PGX -PGZ|Principal Real Estate Income Fund Common Shares of Beneficial Interest|N|PGZ|N|100|N|PGZ -PH|Parker-Hannifin Corporation Common Stock|N|PH|N|100|N|PH -PHB|PowerShares High Yield Corporate Bond Portfolio|P|PHB|Y|100|N|PHB -PHD|Pioneer Floating Rate Trust Pioneer Floating Rate Trust Shares of Beneficial Interest|N|PHD|N|100|N|PHD -PHDG|PowerShares S&P 500 Downside Hedged Portfolio|P|PHDG|Y|100|N|PHDG -PHF|Pacholder High Yield Fund, Inc. Common Stock|A|PHF|N|100|N|PHF -PHG|Koninklijke Philips N.V. NY Registry Shares|N|PHG|N|100|N|PHG -PHH|PHH Corp Common Stock|N|PHH|N|100|N|PHH -PHI|Philippine Long Distance Telephone Company Sponsored ADR|N|PHI|N|100|N|PHI -PHK|Pimco High Income Fund Pimco High Income Fund|N|PHK|N|100|N|PHK -PHM|PulteGroup, Inc. Common Stock|N|PHM|N|100|N|PHM -PHO|PowerShares Water Resource Port|P|PHO|Y|100|N|PHO -PHT|Pioneer High Income Trust Common Shares of Beneficial Interest|N|PHT|N|100|N|PHT -PHX|Panhandle Oil and Gas Inc Common Stock|N|PHX|N|100|N|PHX -PHYS|Sprott Physical Gold Trust ETV|P|PHYS|Y|100|N|PHYS -PICB|PowerShares International Corporate Bond Portfolio|P|PICB|Y|100|N|PICB -PICK|iShaes MSCI Global Select Metals & Mining Producers Fund|P|PICK|Y|100|N|PICK -PID|PowerShares Intl Dividend Achievers|P|PID|Y|100|N|PID -PIE|PowerShares DWA Emerging Market Momentum Portfolio|P|PIE|Y|100|N|PIE -PII|Polaris Industries Inc. Common Stock|N|PII|N|100|N|PII -PIM|Putnam Master Intermediate Income Trust Common Stock|N|PIM|N|100|N|PIM -PIN|PowerShares India Portfolio|P|PIN|Y|100|N|PIN -PIO|PowerShares Global Water Portfolio|P|PIO|Y|100|N|PIO -PIP|PharmAthene, Inc Common Stock|A|PIP|N|100|N|PIP -PIR|Pier 1 Imports, Inc. Common Stock|N|PIR|N|100|N|PIR -PIY|Preferred Plus Trust (Ser CZN) Preferred Plus Trust Ser CZN-1 Tr Ctf 8.375% Maturity 10/01/2046|N|PIY|N|100|N|PIY -PIZ|PowerShares DWA Developed Market Momentum Portfolio|P|PIZ|Y|100|N|PIZ -PJC|Piper Jaffray Companies Common Stock|N|PJC|N|100|N|PJC -PJH|Prudential Financial, Inc. 5.75% Junior Subordinated Notes due 2052|N|PJH|N|100|N|PJH -PJP|PowerShares Dynamic Pharmaceuticals|P|PJP|Y|100|N|PJP -PJS|PreferredPlus Trust Ser FAR 1 Tr Ctf|N|PJS|N|100|N|PJS -PKB|PowerShares Dynamic Build & Construction|P|PKB|Y|100|N|PKB -PKD|Parker Drilling Company Common Stock|N|PKD|N|100|N|PKD -PKE|Park Electrochemical Corporation Common Stock|N|PKE|N|100|N|PKE -PKG|Packaging Corporation of America Common Stock|N|PKG|N|100|N|PKG -PKI|PerkinElmer, Inc. Common Stock|N|PKI|N|100|N|PKI -PKO|Pimco Income Opportunity Fund Common Shares of Beneficial Interest|N|PKO|N|100|N|PKO -PKW|PowerShares Buyback Achievers|P|PKW|Y|100|N|PKW -PKX|POSCO Common Stock|N|PKX|N|100|N|PKX -PKY|Parkway Properties, Inc. Common Stock|N|PKY|N|100|N|PKY -PL|Protective Life Corporation Common Stock|N|PL|N|100|N|PL -PL$B|Protective Life Corporation PLC Capital Trust V Trust Originated Preferred Securities (TOPRS)|N|PLpB|N|100|N|PL-B -PL$C|Protective Life Corporation 6.25% Subordinated Debentures due 2042|N|PLpC|N|100|N|PL-C -PL$E|Protective Life Corporation 6.00% Subordinated Debentures due 2042|N|PLpE|N|100|N|PL-E -PLD|ProLogis, Inc. Common Stock|N|PLD|N|100|N|PLD -PLG|Platinum Group Metals Ltd. Ordinary Shares (Canada)|A|PLG|N|100|N|PLG -PLL|Pall Corporation Common Stock|N|PLL|N|100|N|PLL -PLM|Polymet Mining Corporation Ordinary Shares (Canada)|A|PLM|N|100|N|PLM -PLND|Market Vectors Poland ETF|P|PLND|Y|100|N|PLND -PLOW|Douglas Dynamics, Inc. Common Stock|N|PLOW|N|100|N|PLOW -PLT|Plantronics, Inc. Common Stock|N|PLT|N|100|N|PLT -PLW|PowerShares 1-30 Treasury Ladder Portfolio|P|PLW|Y|100|N|PLW -PLX|Protalix BioTherapeutics, Inc. Common Stock|A|PLX|N|100|N|PLX -PM|Philip Morris International Inc Common Stock|N|PM|N|100|N|PM -PMC|Pharmerica Corporation Common Stock|N|PMC|N|100|N|PMC -PMF|PIMCO Municipal Income Fund Common Stock|N|PMF|N|100|N|PMF -PML|Pimco Municipal Income Fund II Common Shares of Beneficial Interest|N|PML|N|100|N|PML -PMM|Putnam Managed Municipal Income Trust Common Stock|N|PMM|N|100|N|PMM -PMO|Putnam Municipal Opportunities Trust Common Stock|N|PMO|N|100|N|PMO -PMR|PowerShares Dynamic Retail|P|PMR|Y|100|N|PMR -PMT|PennyMac Mortgage Investment Trust Common Shares of Beneficial Interest|N|PMT|N|100|N|PMT -PMX|PIMCO Municipal Income Fund III Common Shares of Beneficial Interest|N|PMX|N|100|N|PMX -PN|Patriot National, Inc. Common Stock|N|PN|N|100|N|PN -PNC|PNC Financial Services Group, Inc. (The) Common Stock|N|PNC|N|100|N|PNC -PNC$P|PNC Financial Services Group, Inc. (The) Depositary Shares Representing 1/4000th Perpetual Preferred Series P|N|PNCpP|N|100|N|PNC-P -PNC$Q|PNC Financial Services Group, Inc. (The) Depositary Shares Representing 1/4000th Perpetual Preferred Shares Series Q|N|PNCpQ|N|100|N|PNC-Q -PNC.W|PNC Financial Services Group, Inc. Warrant expiring December 31, 2018|N|PNC/WS|N|100|N|PNC+ -PNF|PIMCO New York Municipal Income Fund Common Stock|N|PNF|N|100|N|PNF -PNI|Pimco New York Municipal Income Fund II Common Shares of Beneficial Interest|N|PNI|N|100|N|PNI -PNK|Pinnacle Entertainment, Inc. Common Stock|N|PNK|N|100|N|PNK -PNM|PNM Resources, Inc. (Holding Co.) Common Stock|N|PNM|N|100|N|PNM -PNR|Pentair plc. Ordinary Share|N|PNR|N|100|N|PNR -PNTA|PennantPark Investment Corporation 6.25% Senior Notes due 2025|N|PNTA|N|100|N|PNTA -PNW|Pinnacle West Capital Corporation Common Stock|N|PNW|N|100|N|PNW -PNX|Phoenix Companies, Inc. (The) Common Stock|N|PNX|N|100|N|PNX -PNY|Piedmont Natural Gas Company, Inc. Common Stock|N|PNY|N|100|N|PNY -POL|PolyOne Corporation Common Stock|N|POL|N|100|N|POL -POM|PEPCO Holdings, Inc Common Stock|N|POM|N|100|N|POM -POR|Portland General Electric Co Common Stock|N|POR|N|100|N|POR -POST|Post Holdings, Inc. Common Stock|N|POST|N|100|N|POST -POT|Potash Corporation of Saskatchewan Inc. Common Stock|N|POT|N|100|N|POT -POWR|PowerSecure International, Inc. Common Stock|N|POWR|N|100|N|POWR -PPA|PowerShares Aerospace & Defense|P|PPA|Y|100|N|PPA -PPG|PPG Industries, Inc. Common Stock|N|PPG|N|100|N|PPG -PPH|Market Vectors Pharmaceutical ETF|P|PPH|Y|100|N|PPH -PPL|PP&L Corporation Common Stock|N|PPL|N|100|N|PPL -PPLT|ETFS Physical Platinum Shares|P|PPLT|Y|100|N|PPLT -PPO|Polypore International Inc Common Stock|N|PPO|N|100|N|PPO -PPP|Primero Mining Corp. New Common Shares (Canada)|N|PPP|N|100|N|PPP -PPR|Voya Prime Rate Trust Shares of Beneficial Interest|N|PPR|N|100|N|PPR -PPS|Post Properties, Inc. Common Stock|N|PPS|N|100|N|PPS -PPS$A|Post Properties, Inc. Preferred Stock|N|PPSpA|N|100|N|PPS-A -PPT|Putnam Premier Income Trust Common Stock|N|PPT|N|100|N|PPT -PPX|PPL Capital Funding, Inc. 2013 Series B Junior Subordinated Notes due 2073|N|PPX|N|100|N|PPX -PQ|Petroquest Energy Inc Common Stock|N|PQ|N|100|N|PQ -PRA|ProAssurance Corporation Common Stock|N|PRA|N|100|N|PRA -PRB|Market Vectors Pre-refunded Municipal Index ETF|P|PRB|Y|100|N|PRB -PRE|PartnerRe Ltd. Common Stock|N|PRE|N|100|N|PRE -PRE$D|PartnerRe Ltd. Preferred Series D 6.5% (Bermuda)|N|PREpD|N|100|N|PRE-D -PRE$E|PartnerRe Ltd. PFD SER E (Bermuda)|N|PREpE|N|100|N|PRE-E -PRE$F|PartnerRe Ltd. Redeemable Preferred Shares Series F (Bermuda)|N|PREpF|N|100|N|PRE-F -PRF|Powershares FTSE RAFI US 1000 Portfolio|P|PRF|Y|100|N|PRF -PRGO|Perrigo Company plc Ordinary Shares|N|PRGO|N|100|N|PRGO -PRH|Prudential Financial, Inc. 5.70% Junior Subordinated Notes due 2053|N|PRH|N|100|N|PRH -PRI|Primerica, Inc. Common Stock|N|PRI|N|100|N|PRI -PRK|Park National Corporation Common Stock|A|PRK|N|100|N|PRK -PRLB|Proto Labs, Inc. Common stock|N|PRLB|N|100|N|PRLB -PRN|PowerShares DWA Industrials Momentum Portfolio|P|PRN|Y|100|N|PRN -PRO|PROS Holdings, Inc. Common Stock|N|PRO|N|100|N|PRO -PRU|Prudential Financial, Inc. Common Stock|N|PRU|N|100|N|PRU -PRY|Prospect Capital Corporation 6.95% Senior Notes due 2022|N|PRY|N|100|N|PRY -PSA|Public Storage Common Stock|N|PSA|N|100|N|PSA -PSA$A|Public Storage Depositary Shares each representing 1/1,000 of a 5.875% Cumulative Preferred SBI, Series A|N|PSApA|N|100|N|PSA-A -PSA$O|Public Storage Depositary Shares Representing 1/1000% Cumulative Pfd Sh Ben Int Series O|N|PSApO|N|100|N|PSA-O -PSA$P|Public Storage DEPOSITARY SHS REPSTG % CUMULATIVE PFD SHS BEN INT (SER P)|N|PSApP|N|100|N|PSA-P -PSA$Q|Public Storage DEPOSITARY SHS REPSTG 1/1000TH PFD SHS BEN INT SER Q|N|PSApQ|N|100|N|PSA-Q -PSA$R|Public Storage Depository Sh Repstg 1/1000th Pfd Ser R|N|PSApR|N|100|N|PSA-R -PSA$S|Public Storage DEP SH REPSTG PFD SH BEN INT SER S|N|PSApS|N|100|N|PSA-S -PSA$T|Public Storage Depository Shares Representing 1/1000 Pfd Shares Beneficial Interest Series T|N|PSApT|N|100|N|PSA-T -PSA$U|Public Storage Depositary Shares Representing 1/1000 Preferred Benerficial Interest Series U|N|PSApU|N|100|N|PSA-U -PSA$V|Public Storage Dep Shs Repstg 1/1000th Pfd Sh Ben Int Ser V|N|PSApV|N|100|N|PSA-V -PSA$W|Public Storage Depositary Shares Representing 1/1000 Preferred Shares of Benficial Interest Series W|N|PSApW|N|100|N|PSA-W -PSA$X|Public Storage Depositary Shares Representing 1/1000th Cumulative Preferred Shares Beneficial Interest Series X|N|PSApX|N|100|N|PSA-X -PSA$Y|Public Storage Dep Shs Repstg 1/1000th Pfd Sh Ben Int Ser Y|N|PSApY|N|100|N|PSA-Y -PSA$Z|Public Storage Dep Shs Representing 1/1000th Pfd Sh Ben Int Ser Z|N|PSApZ|N|100|N|PSA-Z -PSB|PS Business Parks, Inc. Common Stock|N|PSB|N|100|N|PSB -PSB$R|PS Business Parks, Inc. Depositary Shares, Each representing 1/1,000 of a share of 6.875% Cumulative Preferred stock, Series R, $0.01 par|N|PSBpR|N|100|N|PSB-R -PSB$S|PS Business Parks, Inc. Depositary Shares, each representing 1/1,000 of a share of 6.45% Cumulative Preferred Stock|N|PSBpS|N|100|N|PSB-S -PSB$T|PS Business Parks, Inc. Depositary Shares Representing 1/1000th Preferred Series T|N|PSBpT|N|100|N|PSB-T -PSB$U|PS Business Parks, Inc. Dep Shs Repstg 1/1000 Pfd Ser U|N|PSBpU|N|100|N|PSB-U -PSB$V|PS Business Parks, Inc. Depositary Shares Represting 1/1000th Shares Cumulative Preferred Stock Series V|N|PSBpV|N|100|N|PSB-V -PSF|Cohen & Steers Select Preferred and Income Fund, Inc. Common Stock|N|PSF|N|100|N|PSF -PSG|Performance Sports Group Ltd. Ordinary Shares (Canada)|N|PSG|N|100|N|PSG -PSI|PowerShares Dynamic Semiconductors|P|PSI|Y|100|N|PSI -PSJ|PowerShares Dynamic Software|P|PSJ|Y|100|N|PSJ -PSK|SPDR Wells Fargo Preferred Stock ETF|P|PSK|Y|100|N|PSK -PSL|PowerShares DWA Consumer Staples Momentum Portfolio|P|PSL|Y|100|N|PSL -PSLV|Sprott Physical Silver Trust ETV|P|PSLV|Y|100|N|PSLV -PSO|Pearson, Plc Common Stock|N|PSO|N|100|N|PSO -PSP|PowerShares Listed Private Equity|P|PSP|Y|100|N|PSP -PSQ|ProShares Short QQQ|P|PSQ|Y|100|N|PSQ -PSR|PowerShares Active U.S. Real Estate Fund|P|PSR|Y|100|N|PSR -PST|ProShares UltraShort Lehman 7-10 Year Treasury|P|PST|Y|100|N|PST -PSX|Phillips 66 Common Stock|N|PSX|N|100|N|PSX -PSXP|Phillips 66 Partners LP Common Units representing limited partner interest in the Partnership|N|PSXP|N|100|N|PSXP -PT|Portugal Telecom SGPS, S.A . Common Stock|N|PT|N|100|N|PT -PTF|PowerShares DWA Technology Momentum Portfolio|P|PTF|Y|100|N|PTF -PTH|PowerShares DWA Healthcare Momentum Portfolio|P|PTH|Y|100|N|PTH -PTM|E-TRACS USB Bloomberg Commodity Index Exchange Traded Notes E-TRACS UBS Bloomberg CMCI Platinum ETN|P|PTM|N|100|N|PTM -PTN|Palatin Technologies, Inc. Common Stock|A|PTN|N|100|N|PTN -PTP|Platinum Underwriters Holdings, Ltd|N|PTP|N|100|N|PTP -PTR|PetroChina Company Limited Common Stock|N|PTR|N|100|N|PTR -PTY|Pimco Corporate & Income Opportunity Fund|N|PTY|N|100|N|PTY -PUI|PowerShares DWA Utilities Momentum Portfolio|P|PUI|Y|100|N|PUI -PUK|Prudential Public Limited Company Common Stock|N|PUK|N|100|N|PUK -PUK$|Prudential Public Limited Company 6.75% Perpetual Subordinated Captial Security|N|PUKp|N|100|N|PUK- -PUK$A|Prudential Public Limited Company 6.50% Perpetual Subordinated Capital Securities Exchangeable at the Issuer's Option Into Non-Cumulative Dollar Denominated Preference Shares|N|PUKpA|N|100|N|PUK-A -PUW|PowerShares WilderHill Progressive Energy Portfolio|P|PUW|Y|100|N|PUW -PVA|Penn Virginia Corporation Common Stock|N|PVA|N|100|N|PVA -PVCT|Provectus Biopharmaceuticals, Inc.|A|PVCT|N|100|N|PVCT -PVG|Pretium Resources, Inc. Ordinary Shares (Canada)|N|PVG|N|100|N|PVG -PVH|PVH Corp. Common Stock|N|PVH|N|100|N|PVH -PVI|PowerShares VRDO Tax Free Weekly Portfolio|P|PVI|Y|100|N|PVI -PVTD|PrivateBancorp, Inc. 7.125% Subordinated Debentures due 2042|N|PVTD|N|100|N|PVTD -PW|Power REIT (MD) Common Stock|A|PW|N|100|N|PW -PW$A|Power REIT 7.75% Series A Cumulative Perpetual Preferred Stock|A|PWpA|N|100|N|PW-A -PWB|PowerShares Dynamic LargeCap Growth|P|PWB|Y|100|N|PWB -PWC|PowerShares XTF: Dynamic Market Portfolio|P|PWC|Y|100|N|PWC -PWE|Penn West Petroleum Ltd|N|PWE|N|100|N|PWE -PWR|Quanta Services, Inc. Common Stock|N|PWR|N|100|N|PWR -PWV|PowerShares Dynamic LargeCap Value|P|PWV|Y|100|N|PWV -PWZ|PowerShares California AMT-Free Municipal Bond Portfolio|P|PWZ|Y|100|N|PWZ -PX|Praxair, Inc. Common Stock|N|PX|N|100|N|PX -PXD|Pioneer Natural Resources Company Common Stock|N|PXD|N|100|N|PXD -PXE|PowerShares Dynamic Energy E&P|P|PXE|Y|100|N|PXE -PXF|PowerShares FTSE RAFI Developed Markets ex-U.S. Portfolio|P|PXF|Y|100|N|PXF -PXH|PowerShares FTSE RAFI Emerging Markets Portfolio|P|PXH|Y|100|N|PXH -PXI|PowerShares DWA Energy Momentum Portfolio|P|PXI|Y|100|N|PXI -PXJ|PowerShares Dynamic Oil Services|P|PXJ|Y|100|N|PXJ -PXLC|PowerShares Fundamental Pure Large Core Portfolio|P|PXLC|Y|100|N|PXLC -PXLG|PowerShares Fundamental Pure Large Growth Portfolio|P|PXLG|Y|100|N|PXLG -PXLV|PowerShares Fundamental Pure Large Value Portfolio|P|PXLV|Y|100|N|PXLV -PXMC|PowerShares Fundamental Pure Mid Core Portfolio|P|PXMC|Y|100|N|PXMC -PXMG|PowerShares Fundamental Pure Mid Growth Portfolio|P|PXMG|Y|100|N|PXMG -PXMV|PowerShares Fundamental Pure Mid Value Portfolio|P|PXMV|Y|100|N|PXMV -PXQ|PowerShares Dynamic Networking|P|PXQ|Y|100|N|PXQ -PXR|PowerShares Global Emerging Markets Infrastructure|P|PXR|Y|100|N|PXR -PXSC|PowerShares Fundamental Pure Small Core Portfolio|P|PXSC|Y|100|N|PXSC -PXSG|PowerShares Fundamental Pure Small Growth Portfolio|P|PXSG|Y|100|N|PXSG -PXSV|PowerShares Fundamental Pure Small Value Portfolio|P|PXSV|Y|100|N|PXSV -PYB|PPlus Trust Series GSG-2 Tr Ctf Cl A|N|PYB|N|100|N|PYB -PYN|PIMCO New York Municipal Income Fund III Common Shares of Beneficial Interest|N|PYN|N|100|N|PYN -PYS|Merrill Lynch Depositor Inc PPlus Tr Ser RRD-1 Tr Ctf Cl A|N|PYS|N|100|N|PYS -PYT|PPlus Tr GSC-2 Tr Ctf Fltg Rate|N|PYT|N|100|N|PYT -PYZ|PowerShares DWA Basic Materials Momentum Portfolio|P|PYZ|Y|100|N|PYZ -PZA|PowerShares National AMT-Free Municipal Bond Portfolio|P|PZA|Y|100|N|PZA -PZB|Merrill Lynch Depositor, Inc. Merrill Lynch Depositor, Inc. PPLUS Class A 6.7% Callable Trust Certificates, Series LTD-1 (Issues by Limited Brands, Inc.)|N|PZB|N|100|N|PZB -PZC|PIMCO California Municipal Income Fund III Common Shares of Beneficial Interest|N|PZC|N|100|N|PZC -PZD|PowerShares Cleantech Portfolio|P|PZD|Y|100|N|PZD -PZE|Petrobras Argentina S.A. ADS|N|PZE|N|100|N|PZE -PZG|Paramount Gold and Silver Corp. Common Stock|A|PZG|N|100|N|PZG -PZI|PowerShares Zacks Micro Cap|P|PZI|Y|100|N|PZI -PZN|Pzena Investment Management Inc Class A Common Stock|N|PZN|N|100|N|PZN -PZT|PowerShares New York AMT-Free Municipal Bond Portfolio|P|PZT|Y|100|N|PZT -Q|Quintiles Transnational Holdings Inc. Common Stock|N|Q|N|100|N|Q -QAI|IQ Hedge MultiIQ Hedge Multi-Strategy Tracker ETF|P|QAI|Y|100|N|QAI -QAUS|SPDR MSCI Australia Quality Mix ETF|P|QAUS|Y|100|N|QAUS -QCAN|SPDR MSCI Canada Quality Mix ETF|P|QCAN|Y|100|N|QCAN -QDEF|FlexShares Quality Dividend Defensive Index Fund|P|QDEF|Y|100|N|QDEF -QDEM|Market Vectors MSCI Emerging Markets Quality Dividend ETF|P|QDEM|Y|100|N|QDEM -QDEU|SPDR MSCI Germany Quality Mix ETF|P|QDEU|Y|100|N|QDEU -QDF|FlexShares Quality Dividend Index Fund|P|QDF|Y|100|N|QDF -QDXU|Market Vectors MSCI International Quality Dividend ETF|P|QDXU|Y|100|N|QDXU -QDYN|FlexShares Quality Dynamic Index Fund|P|QDYN|Y|100|N|QDYN -QEFA|SPDR EURO STOXX Small Cap ETF|P|QEFA|Y|100|N|QEFA -QEH|AdvisorShares QAM Equity Hedge|P|QEH|Y|100|N|QEH -QEM|Market Vectors MSCI Emerging Markets Quality ETF|P|QEM|Y|100|N|QEM -QEMM|SPDR MSCI Emerging Markets Quality Mix ETF|P|QEMM|Y|100|N|QEMM -QEP|QEP Resources, Inc. Common Stock|N|QEP|N|100|N|QEP -QEPM|QEP Midstream Partners, LP Common Units representing Limited Partner Interests|N|QEPM|N|100|N|QEPM -QESP|SPDR MSCI Spain Quality Mix ETF|P|QESP|Y|100|N|QESP -QGBR|SPDR MSCI United Kingdom Quality Mix ETF|P|QGBR|Y|100|N|QGBR -QID|ProShares UltraShort QQQ|P|QID|Y|100|N|QID -QIHU|Qihoo 360 Technology Co. Ltd. American Depositary Shares, every 2 of which representing three Class A Ordinary Shares|N|QIHU|N|100|N|QIHU -QJPN|SPDR MSCI Japan Quality Mix ETF|P|QJPN|Y|100|N|QJPN -QKOR|SPDR MSCI South Korea Quality Mix ETF|P|QKOR|Y|100|N|QKOR -QLD|ProShares Ultra QQQ|P|QLD|Y|100|N|QLD -QLTA|iShares Aaa A Rated Corporate Bond ETF|P|QLTA|Y|100|N|QLTA -QLTB|iShares Baa Ba Rated Corporate Bond ETF|Z|QLTB|Y|100|N|QLTB -QLTC|iShares B Ca Rated Corporate Bond ETF|Z|QLTC|Y|100|N|QLTC -QMEX|SPDR MSCI Mexico Quality Mix ETF|P|QMEX|Y|100|N|QMEX -QMN|IQ Hedge Market Neutral Tracker ETF|P|QMN|Y|100|N|QMN -QQQE|Direxion NASDAQ-100 Equal Weighted Index Shares|P|QQQE|Y|100|N|QQQE -QRM|Quest Rare Minerals Ltd Common Shares (Canada)|A|QRM|N|100|N|QRM -QSR|Restaurant Brands International Inc. Common Shares|N|QSR|N|100|N|QSR -QTM|Quantum Corporation Common Stock|N|QTM|N|100|N|QTM -QTS|QTS Realty Trust, Inc. Class A Common Stock|N|QTS|N|100|N|QTS -QTWN|SPDR MSCI Taiwan Quality Mix ETF|P|QTWN|Y|100|N|QTWN -QTWO|Q2 Holdings, Inc. Common Stock|N|QTWO|N|100|N|QTWO -QUAD|Quad Graphics, Inc Class A Common Stock|N|QUAD|N|100|N|QUAD -QUAL|iShares MSCI USA Quality Factor ETF|P|QUAL|Y|100|N|QUAL -QVAL|ValueShares U.S. Quantitative Value ETF ETF|Z|QVAL|Y|100|N|QVAL -QWLD|SPDR MSCI World Quality Mix ETF|P|QWLD|Y|100|N|QWLD -QXUS|Market Vectors MSCI Int'l Qlty|P|QXUS|Y|100|N|QXUS -R|Ryder System, Inc. Common Stock|N|R|N|100|N|R -RAD|Rite Aid Corporation Common Stock|N|RAD|N|100|N|RAD -RAI|Reynolds American Inc Common Stock|N|RAI|N|100|N|RAI -RALS|ProShares RAFI Long Short ETF|P|RALS|Y|100|N|RALS -RALY|Rally Software Development Corp. Common Stock|N|RALY|N|100|N|RALY -RAS|RAIT Financial Trust New Common Shares of Beneficial Interest|N|RAS|N|100|N|RAS -RAS$A|RAIT Financial Trust 7.75% Series A Cumulative Redeemable Preferred Shares of Beneficial Interest|N|RASpA|N|100|N|RAS-A -RAS$B|RAIT Financial Trust 8.375% Series B Cumulative Redeemable Preferred Shares of Beneficial Interest|N|RASpB|N|100|N|RAS-B -RAS$C|RAIT Financial Trust 8.875% Series C Cumulative Redeemable Preferred Shares of Beneficial Interest|N|RASpC|N|100|N|RAS-C -RATE|Bankrate, Inc. Common Stock|N|RATE|N|100|N|RATE -RAVI|FlexShares Ready Access Variable Income Fund|P|RAVI|Y|100|N|RAVI -RAX|Rackspace Hosting, Inc Common Stock|N|RAX|N|100|N|RAX -RBA|Ritchie Bros. Auctioneers Incorporated Common Stock|N|RBA|N|100|N|RBA -RBC|Regal Beloit Corporation Common Stock|N|RBC|N|100|N|RBC -RBL|SPDR S&P Russia ETF|P|RBL|Y|100|N|RBL -RBS|Royal Bank of Scotland Group Plc New (The) ADS|N|RBS|N|100|N|RBS -RBS$E|RBS Capital Funding Trust V|N|RBSpE|N|100|N|RBS-E -RBS$F|Royal Bank of Scotland Group Plc (The) Preferred Stock|N|RBSpF|N|100|N|RBS-F -RBS$G|RBS Capital Funding Trust VII|N|RBSpG|N|100|N|RBS-G -RBS$H|Royal Bank of Scotland Group Plc (The) Preferred Stock|N|RBSpH|N|100|N|RBS-H -RBS$I|RBS Capital Funding Trust VI|N|RBSpI|N|100|N|RBS-I -RBS$L|Royal Bank of Scotland Group Plc (The) ADR representing One Non-cumulative Dollar 5.75% Preference Shares, Series L|N|RBSpL|N|100|N|RBS-L -RBS$M|Royal Bank of Scotland Group Plc (The) ADS Series M|N|RBSpM|N|100|N|RBS-M -RBS$N|Royal Bank of Scotland Group Plc (The) Royal Bank of Scotland Group PLC (The) American Depositary Shares (each representing One Non-Cumulative Dollar Preferenced Shares, Series N)|N|RBSpN|N|100|N|RBS-N -RBS$P|Royal Bank of Scotland Group Plc (The) ADR representing Preferred Shares Series P|N|RBSpP|N|100|N|RBS-P -RBS$Q|Royal Bank of Scotland Group Plc (The) ADR repstg Pref Shs Ser Q|N|RBSpQ|N|100|N|RBS-Q -RBS$R|Royal Bank of Scotland Group Plc (The) ADR repstg USD Pfd Shs Ser R (United Kingdom)|N|RBSpR|N|100|N|RBS-R -RBS$S|Royal Bank of Scotland Group Plc (The) Sponsored ADR Repstg Pref Ser S (United Kingdom)|N|RBSpS|N|100|N|RBS-S -RBS$T|Royal Bank of Scotland Group Plc (The) Sponsored ADR Representing Pfef shs ser T (United Kingdom)|N|RBSpT|N|100|N|RBS-T -RBY|Rubicon Minerals Corporation Ordinary Shares (Canada)|A|RBY|N|100|N|RBY -RCAP|RCS CAPITAL CORPORATION Common Stock|N|RCAP|N|100|N|RCAP -RCD|Guggenheim S&P 500 Equal Weight Consumer Discretionary ETF|P|RCD|Y|100|N|RCD -RCG|RENN Fund, Inc Common Stock|A|RCG|N|100|N|RCG -RCI|Rogers Communication, Inc. Common Stock|N|RCI|N|100|N|RCI -RCL|Royal Caribbean Cruises Ltd. Common Stock|N|RCL|N|100|N|RCL -RCS|PIMCO Strategic Income Fund, Inc.|N|RCS|N|100|N|RCS -RDC|Rowan Companies plc Class A Ordinary Shares|N|RDC|N|100|N|RDC -RDIV|RevenueShares Ultra Dividend Fund|P|RDIV|Y|100|N|RDIV -RDN|Radian Group Inc. Common Stock|N|RDN|N|100|N|RDN -RDS.A|Royal Dutch Shell PLC Royal Dutch Shell American Depositary Shares (Each representing two Class A Ordinary Shares)|N|RDS/A|N|100|N|RDS.A -RDS.B|Royal Dutch Shell PLC Royal Dutch Shell PLC American Depositary Shares (Each representing two Class B Ordinary Shares)|N|RDS/B|N|100|N|RDS.B -RDY|Dr. Reddy's Laboratories Ltd Common Stock|N|RDY|N|100|N|RDY -RE|Everest Re Group, Ltd. Common Stock|N|RE|N|100|N|RE -REE|Rare Element Resources Ltd. Ordinary Shares (Canada)|A|REE|N|100|N|REE -REED|Reeds, Inc. Common Stock|A|REED|N|100|N|REED -REET|iShares Trust iShares Global REIT ETF|P|REET|Y|100|N|REET -REG|Regency Centers Corporation Common Stock|N|REG|N|100|N|REG -REG$F|Regency Centers Corporation Cumulative Red Preferred Series 6%|N|REGpF|N|100|N|REG-F -REG$G|Regency Centers Corporation Pfd Ser 7%|N|REGpG|N|100|N|REG-G -REI|Ring Energy, Inc. Common Stock|A|REI|N|100|N|REI -REK|ProShares Short Real Estate|P|REK|Y|100|N|REK -REM|iShares Mortgage Real Estate Capped ETF|P|REM|Y|100|N|REM -REMX|Market Vectors Rare Earth Strategic Metals ETF|P|REMX|Y|100|N|REMX -REN|Resolute Energy Corporation Comon Stock|N|REN|N|100|N|REN -RENN|Renren Inc. American Depositary Shares, each representing three Class A ordinary shares|N|RENN|N|100|N|RENN -RES|RPC, Inc. Common Stock|N|RES|N|100|N|RES -RESI|Altisource Residential Corporation Common Stock|N|RESI|N|100|N|RESI -RETL|Direxion Daily Retail Bull 3X Shares ETF|P|RETL|Y|100|N|RETL -REV|Revlon, Inc. New Common Stock|N|REV|N|100|N|REV -REW|ProShares UltraShort Technology|P|REW|Y|100|N|REW -REX|REX American Resources Corporation|N|REX|N|100|N|REX -REXR|Rexford Industrial Realty, Inc. Common Stock|N|REXR|N|100|N|REXR -REZ|iShares Residential Real Estate Capped ETF|P|REZ|Y|100|N|REZ -RF|Regions Financial Corporation Common Stock|N|RF|N|100|N|RF -RF$A|Regions Financial Corporation Depositary Shares Representing 1/40th Perpetual Preferred Series A|N|RFpA|N|100|N|RF-A -RF$B|Regions Financial Corporation Depositary Shares Representing 1/40th Perpetual Preferred Series B|N|RFpB|N|100|N|RF-B -RFG|Guggenheim S&P Midcap 400 Pure Growth ETF|P|RFG|Y|100|N|RFG -RFI|Cohen & Steers Total Return Realty Fund, Inc. Common Stock|N|RFI|N|100|N|RFI -RFP|Resolute Forest Products Inc. Common Stock|N|RFP|N|100|N|RFP -RFT|RAIT Financial Trust 7.625% Senior Notes due 2024|N|RFT|N|100|N|RFT -RFTA|RAIT Financial Trust 7.125% Senior Notes due 2019|N|RFTA|N|100|N|RFTA -RFV|Guggenheim S&P Midcap 400 Pure Value ETF|P|RFV|Y|100|N|RFV -RGA|Reinsurance Group of America, Incorporated Common Stock|N|RGA|N|100|N|RGA -RGC|Regal Entertainment Group Class A Common Stock|N|RGC|N|100|N|RGC -RGI|Guggenheim S&P 500 Equal Weight Industrials ETF|P|RGI|Y|100|N|RGI -RGP|Regency Energy Partners LP Common Units Representing Limited Partner Interests|N|RGP|N|100|N|RGP -RGR|Sturm, Ruger & Company, Inc. Common Stock|N|RGR|N|100|N|RGR -RGRA|RBS Rogers Enhanced Agriculture ETN|P|RGRA|N|100|N|RGRA -RGRC|RBS Rogers Enhanced Commodity ETN|P|RGRC|N|100|N|RGRC -RGRE|RBS Rogers Enhanced Energy ETN|P|RGRE|N|100|N|RGRE -RGRI|RBS Rogers Enhanced Industrial Metals ETN|P|RGRI|N|100|N|RGRI -RGRP|RBS Rogers Enhanced Precious Metals ETN|P|RGRP|N|100|N|RGRP -RGS|Regis Corporation Common Stock|N|RGS|N|100|N|RGS -RGT|Royce Global Value Trust, Inc. Common Stock|N|RGT|N|100|N|RGT -RH|Restoration Hardware Holdings Inc. Common Stock|N|RH|N|100|N|RH -RHI|Robert Half International Inc. Common Stock|N|RHI|N|100|N|RHI -RHP|Ryman Hospitality Properties, Inc. (REIT)|N|RHP|N|100|N|RHP -RHS|Guggenheim S&P 500 Equal Weight Consumer Staples ETF|P|RHS|Y|100|N|RHS -RHT|Red Hat, Inc. Common Stock|N|RHT|N|100|N|RHT -RIC|Richmont Mines, Inc. Common Stock|A|RIC|N|100|N|RIC -RICE|Rice Energy Inc. Common Stock|N|RICE|N|100|N|RICE -RIF|RMR Real Estate Income Fund Common Shares of Beneficial Interest|A|RIF|N|100|N|RIF -RIG|Transocean Ltd (Switzerland) Common Stock|N|RIG|N|100|N|RIG -RIGP|Transocean Partners LLC Common Units Representing Limited Liability Company Interests|N|RIGP|N|100|N|RIGP -RIGS|RiverFront Strategic Income Fund|P|RIGS|Y|100|N|RIGS -RINF|ProShares 30 Year TIPS TYS Spread|P|RINF|Y|100|N|RINF -RING|iShares MSCI Global Gold Miners Fund|P|RING|Y|100|N|RING -RIO|Rio Tinto Plc Common Stock|N|RIO|N|100|N|RIO -RIOM|Rio Alto Mining Limited Common Shares (Canada)|N|RIOM|N|100|N|RIOM -RIT|LMP Real Estate Income Fund Inc Common Stock|N|RIT|N|100|N|RIT -RJA|AB Svensk Ekportkredit (Swedish Export Credit Corporation) ELEMENTS Linked to the Rogers International Commodity Index - Agriculture Total Return Structured Product|P|RJA|N|100|N|RJA -RJD|Raymond James Financial, Inc. 6.90% Senior Notes Due 2042|N|RJD|N|100|N|RJD -RJF|Raymond James Financial, Inc. Common Stock|N|RJF|N|100|N|RJF -RJI|AB Svensk Ekportkredit (Swedish Export Credit Corporation) ELEMENTS Linked to the Rogers International Commodity Index - Total Return Structured Product|P|RJI|N|100|N|RJI -RJN|AB Svensk Ekportkredit (Swedish Export Credit Corporation) ELEMENTS Linked to the Rogers International Commodity Index - Energy Total Return Structured Product|P|RJN|N|100|N|RJN -RJZ|AB Svensk Ekportkredit (Swedish Export Credit Corporation) ELEMENTS Linked to the Rogers International Commodity Index - Metals Total Return Structured Product|P|RJZ|N|100|N|RJZ -RKT|Rock-Tenn Company Common Stock|N|RKT|N|100|N|RKT -RKUS|Ruckus Wireless, Inc. Common Stock|N|RKUS|N|100|N|RKUS -RL|Ralph Lauren Corporation Common Stock|N|RL|N|100|N|RL -RLD|RealD Inc Common Stock|N|RLD|N|100|N|RLD -RLGT|Radiant Logistics, Inc. Common Stock|A|RLGT|N|100|N|RLGT -RLGT$A|Radiant Logistics, Inc. 9.75% Series A Cumulative Redeemable Perpetual Preferred Stock|A|RLGTpA|N|100|N|RLGT-A -RLGY|Realogy Holdings Corp. Common Stock|N|RLGY|N|100|N|RLGY -RLH|Red Lions Hotels Corporation Common Stock|N|RLH|N|100|N|RLH -RLH$A|Red Lion Hotels Capital Trust Red Lion Hotels Capital Trust - Trust Preferred Securities|N|RLHpA|N|100|N|RLH-A -RLI|RLI Corp. Common Stock|N|RLI|N|100|N|RLI -RLJ|RLJ Lodging Trust Common Shares of Beneficial Interest $0.01 par value|N|RLJ|N|100|N|RLJ -RLY|SPDR SSgA Multi Asset Real Return ETF|P|RLY|Y|100|N|RLY -RM|Regional Management Corp. Common Stock|N|RM|N|100|N|RM -RMAX|RE/MAX Holdings, Inc. Class A Common Stock|N|RMAX|N|100|N|RMAX -RMD|ResMed Inc. Common Stock|N|RMD|N|100|N|RMD -RMP|Rice Midstream Partners LP Common Units representing limited partner interests|N|RMP|N|100|N|RMP -RMT|Royce Micro-Cap Trust, Inc. Common Stock|N|RMT|N|100|N|RMT -RNDY|Roundy's, Inc. Common Stock|N|RNDY|N|100|N|RNDY -RNE|Morgan Stanley Eastern Europe Fund, Inc. Common Stock|N|RNE|N|100|N|RNE -RNF|Rentech Nitrogen Partners, L.P. Common Units representing limited partner interests|N|RNF|N|100|N|RNF -RNG|Ringcentral, Inc. Class A Common Stock|N|RNG|N|100|N|RNG -RNN|Rexahn Pharmaceuticals, Inc. Common Stock|A|RNN|N|100|N|RNN -RNO|Rhino Resource Partners LP Common Units representing limited partnership interests|N|RNO|N|100|N|RNO -RNP|Cohen & Steers Reit and Preferred Income Fund Inc Common Shares|N|RNP|N|100|N|RNP -RNR|RenaissanceRe Holdings Ltd. Common Stock|N|RNR|N|100|N|RNR -RNR$C|RenaissanceRe Holdings Ltd. 6.08% Series C Preference Shares|N|RNRpC|N|100|N|RNR-C -RNR$E|RenaissanceRe Holdings Ltd. 5.375% Series E Preference Shares|N|RNRpE|N|100|N|RNR-E -RODI|Barclays Return on Disability ETN|P|RODI|N|100|N|RODI -ROG|Rogers Corporation Common Stock|N|ROG|N|100|N|ROG -ROK|Rockwell Automation, Inc. Common Stock|N|ROK|N|100|N|ROK -ROL|Rollins, Inc. Common Stock|N|ROL|N|100|N|ROL -ROLA|iPath Long Extended Russell 1000 TR Index ETN|P|ROLA|N|100|N|ROLA -ROM|ProShares Ultra Technology|P|ROM|Y|100|N|ROM -ROOF|IQ US Real Estate Small Cap ETF|P|ROOF|Y|100|N|ROOF -ROP|Roper Industries, Inc. Common Stock|N|ROP|N|100|N|ROP -RORO|SPDR SSgA Risk Aware ETF|P|RORO|Y|100|N|RORO -ROX|Castle Brands, Inc. Castle Brands, Inc. Common Stock|A|ROX|N|100|N|ROX -ROYT|Pacific Coast Oil Trust Units of Beneficial Interest|N|ROYT|N|100|N|ROYT -RPAI|Retail Properties of America, Inc. Class A Common Stock|N|RPAI|N|100|N|RPAI -RPAI$A|Retail Properties of America, Inc. Pfd Ser A %|N|RPAIpA|N|100|N|RPAI-A -RPG|Guggenheim S&P 500 Pure Growth ETF|P|RPG|Y|100|N|RPG -RPI|Roberts Realty Investors, Inc. Common Stock|A|RPI|N|100|N|RPI -RPM|RPM International Inc. Common Stock|N|RPM|N|100|N|RPM -RPT|Ramco-Gershenson Properties Trust Common Stock|N|RPT|N|100|N|RPT -RPT$D|Ramco-Gershenson Properties Trust 7.25% PERP PFD CONV SHS BEN INT SER D|N|RPTpD|N|100|N|RPT-D -RPV|Guggenheim S&P 500 Pure Value ETF|P|RPV|Y|100|N|RPV -RPX|Columbia Large Cap Growth ETF|P|RPX|Y|100|N|RPX -RQI|Cohen & Steers Quality Income Realty Fund Inc Common Shares|N|RQI|N|100|N|RQI -RRC|Range Resources Corporation Common Stock|N|RRC|N|100|N|RRC -RRF|WisdomTree Global Real Return Fund|P|RRF|Y|100|N|RRF -RRMS|Rose Rock Midstream, L.P. Common Units Representing Limited Partner Interests|N|RRMS|N|100|N|RRMS -RRTS|Roadrunner Transportation Systems, Inc Common Stock|N|RRTS|N|100|N|RRTS -RS|Reliance Steel & Aluminum Co. Common Stock|N|RS|N|100|N|RS -RSCO|SPDR Russell Small Cap Completeness ETF|P|RSCO|Y|100|N|RSCO -RSE|Rouse Properties, Inc. Common Stock|N|RSE|N|100|N|RSE -RSG|Republic Services, Inc. Common Stock|N|RSG|N|100|N|RSG -RSH|Radioshack Corporation Common Stock|N|RSH|N|100|N|RSH -RSO|Resource Capital Corp. Resource Capital Corp. Common Stock|N|RSO|N|100|N|RSO -RSO$A|Resource Capital Corp. 8.50% Series A Cumulative Redeemable Preferred Stock|N|RSOpA|N|100|N|RSO-A -RSO$B|Resource Capital Corp. Pfd Ser B|N|RSOpB|N|100|N|RSO-B -RSO$C|Resource Capital Corp. Preferred Series C|N|RSOpC|N|100|N|RSO-C -RSP|Guggenheim S&P 500 Equal Weight ETF|P|RSP|Y|100|N|RSP -RSPP|RSP Permian, Inc. Common Stock|N|RSPP|N|100|N|RSPP -RST|Rosetta Stone Rosetta Stone, Inc.|N|RST|N|100|N|RST -RSX|Market Vectors TR Russia ETF|P|RSX|Y|100|N|RSX -RSXJ|Market Vectors Russia Small-Cap ETF|P|RSXJ|Y|100|N|RSXJ -RT|Ruby Tuesday, Inc. Common Stock|N|RT|N|100|N|RT -RTEC|Rudolph Technologies, Inc. Common Stock|N|RTEC|N|100|N|RTEC -RTH|Market Vectors Retail ETF|P|RTH|Y|100|N|RTH -RTI|RTI International Metals, Inc. Common Stock|N|RTI|N|100|N|RTI -RTLA|iPath Long Extended Russell 2000 TR Index ETN|P|RTLA|N|100|N|RTLA -RTM|Guggenheim S&P 500 Equal Weight Materials ETF|P|RTM|Y|100|N|RTM -RTN|Raytheon Company Common Stock|N|RTN|N|100|N|RTN -RTR|RevenueShares ADR|P|RTR|Y|100|N|RTR -RUBI|The Rubicon Project, Inc. Common Stock|N|RUBI|N|100|N|RUBI -RUK|Reed Elsevier NV PLC New ADS|N|RUK|N|100|N|RUK -RUSL|Direxion Daily Russia Bull 3x Shares|P|RUSL|Y|100|N|RUSL -RUSS|Direxion Daily Russia Bear 3x Shares|P|RUSS|Y|100|N|RUSS -RVM|Revett Mining Company, Inc. (DE)|A|RVM|N|100|N|RVM -RVNU|Deutsche X-Trackers Municipal Infrastructure Revenue Bond ETF|P|RVNU|Y|100|N|RVNU -RVP|Retractable Technologies, Inc. Common Stock|A|RVP|N|100|N|RVP -RVT|Royce Value Trust, Inc. Common Stock|N|RVT|N|100|N|RVT -RWC|RELM Wireless Corporation Common Stock|A|RWC|N|100|N|RWC -RWG|Columbia Select Large Cap Growth ETF|P|RWG|Y|100|N|RWG -RWJ|RevenueShares Small Cap|P|RWJ|Y|100|N|RWJ -RWK|RevenueShares Mid Cap|P|RWK|Y|100|N|RWK -RWL|RevenueShares Large Cap|P|RWL|Y|100|N|RWL -RWM|ProShares Short Russell2000|P|RWM|Y|100|N|RWM -RWO|SPDR DJ Wilshire Global Real Estate ETF|P|RWO|Y|100|N|RWO -RWR|SPDR DJ Wilshire REIT ETF|P|RWR|Y|100|N|RWR -RWT|Redwood Trust, Inc. Common Stock|N|RWT|N|100|N|RWT -RWV|RevenueShares Navallier Overall A-100|P|RWV|Y|100|N|RWV -RWW|RevenueShares Financials Sector|P|RWW|Y|100|N|RWW -RWX|SPDR DJ Wilshire Intl Real Estate|P|RWX|Y|100|N|RWX -RWXL|ETRACS Monthly Pay 2XLeveraged Dow Jones International Real Estate ETN|P|RWXL|N|100|N|RWXL -RXD|ProShares UltraShort Health Care|P|RXD|Y|100|N|RXD -RXI|iShares Global Consumer Discretionary ETF|P|RXI|Y|100|N|RXI -RXL|ProShares Ultra Health Care|P|RXL|Y|100|N|RXL -RXN|Rexnord Corporation Common Stock|N|RXN|N|100|N|RXN -RY|Royal Bank Of Canada Common Stock|N|RY|N|100|N|RY -RYAM|Rayonier Advanced Materials Inc. Common Stock|N|RYAM|N|100|N|RYAM -RYE|Guggenheim S&P 500 Equal Weight Energy ETF|P|RYE|Y|100|N|RYE -RYF|Guggenheim S&P 500 Equal Weight Financials ETF|P|RYF|Y|100|N|RYF -RYH|Guggenheim S&P 500 Equal Weight Healthcare ETF|P|RYH|Y|100|N|RYH -RYI|Ryerson Holding Corporation Common Stock|N|RYI|N|100|N|RYI -RYJ|Guggenheim Raymond James SB-1 Equity Fund|P|RYJ|Y|100|N|RYJ -RYL|Ryland Group, Inc. (The) Common Stock|N|RYL|N|100|N|RYL -RYN|Rayonier Inc. REIT Common Stock|N|RYN|N|100|N|RYN -RYT|Guggenheim S&P 500 Equal Weight Technology ETF|P|RYT|Y|100|N|RYT -RYU|Guggenheim S&P 500 Equal Weight Utilities ETF|P|RYU|Y|100|N|RYU -RZA|Reinsurance Group of America, Incorporated 6.20% Fixed-to-Floating Rate Subordinated Debentures due 2042|N|RZA|N|100|N|RZA -RZG|Guggenheim S&P Smallcap 600 Pure Growth ETF|P|RZG|Y|100|N|RZG -RZV|Guggenheim S&P Smallcap 600 Pure Value ETF|P|RZV|Y|100|N|RZV -S|Sprint Corporation Common Stock|N|S|N|100|N|S -SA|Seabridge Gold, Inc. Ordinary Shares (Canada)|N|SA|N|100|N|SA -SAA|ProShares Ultra SmallCap600|P|SAA|Y|100|N|SAA -SAGG|Direxion Daily Total Bond Market Bear 1X Shares|P|SAGG|Y|100|N|SAGG -SAH|Sonic Automotive, Inc. Common Stock|N|SAH|N|100|N|SAH -SAIC|SCIENCE APPLICATIONS INTERNATIONAL CORPORATION Common Stock|N|SAIC|N|100|N|SAIC -SALT|Scorpio Bulkers Inc. Common Stock|N|SALT|N|100|N|SALT -SAM|Boston Beer Company, Inc. (The) Common Stock|N|SAM|N|100|N|SAM -SAN|Banco Santander, S.A. Sponsored ADR (Spain)|N|SAN|N|100|N|SAN -SAN$A|Banco Santander, S.A. 6.80% Non-cumulative Series 4 Guaranteed Preferred Securities|N|SANpA|N|100|N|SAN-A -SAN$B|Santander Finance Preferred SA Unipersonal Floating Rate Non-cumulative Series 6 Guaranteed Preferred Securities|N|SANpB|N|100|N|SAN-B -SAN$C|Banco Santander, S.A. 6.50% Non-Cumulative Series 5 Guaranteed Preferred Securities|N|SANpC|N|100|N|SAN-C -SAN$I|Banco Santander Central Hispano, S.A. Santander Finance Preferred S.A. Unipersonal 6.41% Non-Cumulative Guaranteed Preferred Securities, Series 1|N|SANpI|N|100|N|SAN-I -SAND|Sandstorm Gold Ltd. Ordinary Shares (Canada)|A|SAND|N|100|N|SAND -SAP|SAP SE ADS|N|SAP|N|100|N|SAP -SAQ|Saratoga Investment Corp 7.50% Notes due 2020|N|SAQ|N|100|N|SAQ -SAR|Saratoga Investment Corp New|N|SAR|N|100|N|SAR -SARA|Saratoga Resources, Inc. Common Stock|A|SARA|N|100|N|SARA -SB|Safe Bulkers, Inc Common Stock ($0.001 par value)|N|SB|N|100|N|SB -SB$B|Safe Bulkers, Inc 8.00% Series B Cumulative Redeemable Perpetual Preferred Shares|N|SBpB|N|100|N|SB-B -SB$C|Safe Bulkers, Inc Cumulative Redeemable Perpetual Preferred Series C (Marshall Islands)|N|SBpC|N|100|N|SB-C -SB$D|Safe Bulkers, Inc Perpetual Preferred Series D (Marshall Islands)|N|SBpD|N|100|N|SB-D -SBB|ProShares Short SmallCap600|P|SBB|Y|100|N|SBB -SBGL|Sibanye Gold Limited American Depositary Shares (Each representing four ordinary shares)|N|SBGL|N|100|N|SBGL -SBH|Sally Beauty Holdings, Inc. (Name to be changed from Sally Holdings, Inc.) Common Stock|N|SBH|N|100|N|SBH -SBI|Western Asset Intermediate Muni Fund Inc Common Stock|A|SBI|N|100|N|SBI -SBIO|ALPS Medical Breakthroughs ETF|P|SBIO|Y|100|N|SBIO -SBM|Short Basic Materials|P|SBM|Y|100|N|SBM -SBNA|Scorpio Tankers Inc. 6.75% Senior Notes due 2020|N|SBNA|N|100|N|SBNA -SBNB|Scorpio Tankers Inc. 7.50% Senior Notes Due 2017|N|SBNB|N|100|N|SBNB -SBND|PowerShares DB 3X Short 25 Year Treasury Bond ETN|P|SBND|N|100|N|SBND -SBR|Sabine Royalty Trust Common Stock|N|SBR|N|100|N|SBR -SBS|Companhia de saneamento Basico Do Estado De Sao Paulo - Sabesp American Depositary Shares (Each repstg 250 Common Shares)|N|SBS|N|100|N|SBS -SBV|iPath Pure Beta Broad Commodity ETN|P|SBV|N|100|N|SBV -SBW|Western Asset Worldwide Income Fund Inc. Common Stock|N|SBW|N|100|N|SBW -SBY|Silver Bay Realty Trust Corp. Common Stock|N|SBY|N|100|N|SBY -SC|Santander Consumer USA Holdings Inc. Common Stock|N|SC|N|100|N|SC -SCC|ProShares UltraShort Consumer Services|P|SCC|Y|100|N|SCC -SCCO|Southern Copper Corporation Common Stock|N|SCCO|N|100|N|SCCO -SCD|LMP Capital and Income Fund Inc. Common Stock|N|SCD|N|100|N|SCD -SCE$B|Southern California Edison Company 4.08% Preferred Stock|A|SCEpB|N|100|N|SCE-B -SCE$C|Southern California Edison Company 4.24% Preferred Stock|A|SCEpC|N|100|N|SCE-C -SCE$D|Southern California Edison Company 4.32% Preferred Stock|A|SCEpD|N|100|N|SCE-D -SCE$E|Southern California Edison Company 4.78% Preferred Stock|A|SCEpE|N|100|N|SCE-E -SCE$F|Southern California Edison Trust I Trust Preferred Securities|N|SCEpF|N|100|N|SCE-F -SCE$G|SCE Trust II Trust Preferred Securities|N|SCEpG|N|100|N|SCE-G -SCE$H|SCE Trust III Fixed/Floating Rate Trust Preference Securities|N|SCEpH|N|100|N|SCE-H -SCG|SCANA Corporation Common Stock|N|SCG|N|100|N|SCG -SCHA|Schwab U.S. Small-Cap ETF|P|SCHA|Y|100|N|SCHA -SCHB|Schwab U.S. Broad Market ETF|P|SCHB|Y|100|N|SCHB -SCHC|Schwab International Small-Cap Equity ETF|P|SCHC|Y|100|N|SCHC -SCHD|Schwab US Dividend Equity ETF|P|SCHD|Y|100|N|SCHD -SCHE|Schwab Emerging Markets Equity ETF|P|SCHE|Y|100|N|SCHE -SCHF|Schwab International Equity ETF|P|SCHF|Y|100|N|SCHF -SCHG|Schwab U.S. Large-Cap Growth ETF|P|SCHG|Y|100|N|SCHG -SCHH|Schwab U.S. REIT ETF|P|SCHH|Y|100|N|SCHH -SCHM|Schwab U.S. Mid Cap ETF|P|SCHM|Y|100|N|SCHM -SCHO|Schwab Short-Term U.S. Treasury ETF|P|SCHO|Y|100|N|SCHO -SCHP|Schwab U.S. TIPs ETF|P|SCHP|Y|100|N|SCHP -SCHR|Schwab Intermediate-Term U.S. Treasury ETF|P|SCHR|Y|100|N|SCHR -SCHV|Schwab U.S. Large-Cap Value ETF|P|SCHV|Y|100|N|SCHV -SCHW|Charles Schwab Corporation (The) Common Stock|N|SCHW|N|100|N|SCHW -SCHW$B|Charles Schwab Corporation Depositary Shares Representing 1/40th Int Sh Non Cumulative Preferred Stock Series B|N|SCHWpB|N|100|N|SCHW-B -SCHX|Schwab U.S. Large-Cap ETF|P|SCHX|Y|100|N|SCHX -SCHZ|Schwab US Aggregate Bond ETF|P|SCHZ|Y|100|N|SCHZ -SCI|Service Corporation International Common Stock|N|SCI|N|100|N|SCI -SCIF|Market Vectors India Small-Cap Index ETF|P|SCIF|Y|100|N|SCIF -SCIN|EGShares India Small Cap ETF|P|SCIN|Y|100|N|SCIN -SCJ|iShares MSCI Japan Sm Cap|P|SCJ|Y|100|N|SCJ -SCL|Stepan Company Common Stock|N|SCL|N|100|N|SCL -SCM|Stellus Capital Investment Corporation Common Stock|N|SCM|N|100|N|SCM -SCO|ProShares UltraShort Bloomberg Crude Oil|P|SCO|Y|100|N|SCO -SCPB|SPDR Barclays Short Term Corporate Bond ETF|P|SCPB|Y|100|N|SCPB -SCQ|Stellus Capital Investment Corporation 6.50% Notes due 2019|N|SCQ|N|100|N|SCQ -SCS|Steelcase Inc. Common Stock|N|SCS|N|100|N|SCS -SCTO|Global X JPMorgan US Sector Rotator Index ETF|P|SCTO|Y|100|N|SCTO -SCU|Scana Corporation SCANA CORPORATION 2009 Series A 7.70% Enhanced Junior Subordinated Notes|N|SCU/CL|N|100|N|SCU* -SCX|L.S. Starrett Company (The) Common Stock|N|SCX|N|100|N|SCX -SCZ|iShares MSCI EAFE Small-Cap ETF|P|SCZ|Y|100|N|SCZ -SD|Sandridge Energy Inc. Common Stock|N|SD|N|100|N|SD -SDA|Bank of America Corporation Market Index Target Term Securities Linked to the Dow Jones Industrial Average|P|SDA|N|100|N|SDA -SDD|ProShares UltraShort SmallCap600|P|SDD|Y|100|N|SDD -SDIV|Global X SuperDividend ETF|P|SDIV|Y|100|N|SDIV -SDLP|Seadrill Partners LLC Common Units Representing Limited Liability Company Interests|N|SDLP|N|100|N|SDLP -SDOG|ALPS Sector Dividend Dogs ETF|P|SDOG|Y|100|N|SDOG -SDOW|UltraPro Short Dow30|P|SDOW|Y|100|N|SDOW -SDP|ProShares UltraShort Utilities|P|SDP|Y|100|N|SDP -SDPI|Superior Drilling Products, Inc. Common Stock|A|SDPI|N|100|N|SDPI -SDR|SandRidge Mississippian Trust II Common Units representing Beneficial Interests|N|SDR|N|100|N|SDR -SDRL|Seadrill Limited Ordinary Shares (Bermuda)|N|SDRL|N|100|N|SDRL -SDS|ProShares UltraShort S&P500|P|SDS|Y|100|N|SDS -SDT|SandRidge Mississippian Trust I Common Units of Beneficial Interest|N|SDT|N|100|N|SDT -SDY|SPDR S&P Dividend ETF|P|SDY|Y|100|N|SDY -SDYL|ETRACS Monthly Pay 2xLeveraged S&P Dividend ETN|P|SDYL|N|100|N|SDYL -SE|Spectra Energy Corp Common Stock|N|SE|N|100|N|SE -SEA|Guggenheim Shipping ETF|P|SEA|Y|100|N|SEA -SEAS|SeaWorld Entertainment, Inc. Common Stock|N|SEAS|N|100|N|SEAS -SEB|Seaboard Corporation Common Stock|A|SEB|N|1|N|SEB -SEE|Sealed Air Corporation Common Stock|N|SEE|N|100|N|SEE -SEF|ProShares Short Financials|P|SEF|Y|100|N|SEF -SEM|Select Medical Holdings Corporation Common Stock|N|SEM|N|100|N|SEM -SEMG|Semgroup Corporation Class A Common Stock|N|SEMG|N|100|N|SEMG -SEP|Spectra Energy Partners, LP Common Units representing Limited Partner Interests|N|SEP|N|100|N|SEP -SERV|ServiceMaster Global Holdings, Inc. Common Stock|N|SERV|N|100|N|SERV -SF|Stifel Financial Corporation Common Stock|N|SF|N|100|N|SF -SFE|Safeguard Scientifics, Inc. New Common Stock|N|SFE|N|100|N|SFE -SFG|StanCorp Financial Group, Inc. Common Stock|N|SFG|N|100|N|SFG -SFL|Ship Finance International Limited|N|SFL|N|100|N|SFL -SFLA|iPath Long Extended S&P 500 TR Index ETN|P|SFLA|N|100|N|SFLA -SFN|Stifel Financial Corporation 5.375% Senior Notes due December 2022|N|SFN|N|100|N|SFN -SFS|Smart & Final Stores, Inc. Common Stock|N|SFS|N|100|N|SFS -SFUN|SouFun Holdings Limited American Depositary Shares (Each representing Four Class A Ordinary Shares, HK$1.00 par value)|N|SFUN|N|100|N|SFUN -SFY|Swift Energy Company (Holding Company) Common Stock|N|SFY|N|100|N|SFY -SGA|Saga Communications, Inc. New Class A Common Stock|A|SGA|N|100|N|SGA -SGAR|iPath Pure Beta Sugar ETN|P|SGAR|N|100|N|SGAR -SGB|Southwest Georgia Financial Corporation Common Stock|A|SGB|N|100|N|SGB -SGDM|Sprott Gold Miners ETF|P|SGDM|Y|100|N|SGDM -SGF|Aberdeen Singapore Fund, Inc. Common Stock|N|SGF|N|100|N|SGF -SGG|iPath Bloomberg Sugar Subindex Total Return Sm Index ETN|P|SGG|N|100|N|SGG -SGL|Strategic Global Income Fund, Inc. Common Stock|N|SGL|N|100|N|SGL -SGM|Stonegate Mortgage Corporation Common Stock|N|SGM|N|100|N|SGM -SGOL|ETFS Physical Swiss Gold Shares|P|SGOL|Y|100|N|SGOL -SGU|Star Gas Partners, L.P. Common Stock|N|SGU|N|100|N|SGU -SGY|Stone Energy Corporation Common Stock|N|SGY|N|100|N|SGY -SGZA|Selective Insurance Group, Inc. 5.875% Senior Notes due 2043|N|SGZA|N|100|N|SGZA -SH|ProShares Short S&P500|P|SH|Y|100|N|SH -SHG|Shinhan Financial Group Co Ltd American Depositary Shares|N|SHG|N|100|N|SHG -SHI|SINOPEC Shangai Petrochemical Company, Ltd. Common Stock|N|SHI|N|100|N|SHI -SHLX|Shell Midstream Partners, L.P. Common Units representing Limited Partner Interests|N|SHLX|N|100|N|SHLX -SHM|SPDR Nuveen Barclays Short Term Municipal Bond ETF|P|SHM|Y|100|N|SHM -SHN|Bank of America Corporation Market Index Target Term Securities (MITTS) Linked to the Dow Jones Industrial Average|P|SHN|N|100|N|SHN -SHO|Sunstone Hotel Investors, Inc. Sunstone Hotel Investors, Inc. Common Shares|N|SHO|N|100|N|SHO -SHO$D|Sunstone Hotel Investors, Inc. 8.0% Series D Cumulative Redeemable Preferred Stock|N|SHOpD|N|100|N|SHO-D -SHV|iShares Short Treasury Bond ETF|P|SHV|Y|100|N|SHV -SHW|Sherwin-Williams Company (The) Common Stock|N|SHW|N|100|N|SHW -SHY|iShares 1-3 Year Treasury Bond ETF|P|SHY|Y|100|N|SHY -SHYD|Market Vectors Short High-Yield Municipal Index ETF|P|SHYD|Y|100|N|SHYD -SHYG|iShares 0-5 Year High Yield Corporate Bond ETF|P|SHYG|Y|100|N|SHYG -SID|Companhia Siderurgica Nacional S.A. Common Stock|N|SID|N|100|N|SID -SIF|SIFCO Industries, Inc. Common Stock|A|SIF|N|100|N|SIF -SIG|Signet Jewelers Limited Common Shares|N|SIG|N|100|N|SIG -SIJ|ProShares UltraShort Industrials|P|SIJ|Y|100|N|SIJ -SIL|Global X Silver Miners ETF|P|SIL|Y|100|N|SIL -SILJ|PureFunds ISE Junior Silver (Small cap Miners/Explorers)|P|SILJ|Y|100|N|SILJ -SIM|Grupo Simec, S.A.B. de C.V. American Depositary Shares|A|SIM|N|100|N|SIM -SIPE|SPDR Barclays 0-5 Year TIPS ETF|P|SIPE|Y|100|N|SIPE -SIR|Select Income REIT Common Shares of Beneficial Interest|N|SIR|N|100|N|SIR -SIVR|ETFS Physical Silver Shares Trust ETF|P|SIVR|Y|100|N|SIVR -SIX|Six Flags Entertainment Corporation New Common Stock|N|SIX|N|100|N|SIX -SIZ|QuantShares U.S. Market Neutral Size Fund ETF|P|SIZ|Y|100|N|SIZ -SIZE|iShares MSCI USA Size Factor|P|SIZE|Y|100|N|SIZE -SJB|ProShares Short High Yield|P|SJB|Y|100|N|SJB -SJI|South Jersey Industries, Inc. Common Stock|N|SJI|N|100|N|SJI -SJM|J.M. Smucker Company (The) New Common Stock|N|SJM|N|100|N|SJM -SJNK|SPDR Barclays Short Term High Yield Bond ETF|P|SJNK|Y|100|N|SJNK -SJR|Shaw Communications Inc. Common Stock|N|SJR|N|100|N|SJR -SJT|San Juan Basin Royalty Trust Common Stock|N|SJT|N|100|N|SJT -SJW|SJW Corporation Common Stock|N|SJW|N|100|N|SJW -SKF|ProShares UltraShort Financials|P|SKF|Y|100|N|SKF -SKH|Skilled Healthcare Group, Inc. Common Stock|N|SKH|N|100|N|SKH -SKM|SK Telecom Co., Ltd. Common Stock|N|SKM|N|100|N|SKM -SKT|Tanger Factory Outlet Centers, Inc. Common Stock|N|SKT|N|100|N|SKT -SKX|Skechers U.S.A., Inc. Common Stock|N|SKX|N|100|N|SKX -SKY|Skyline Corporation Common Stock|A|SKY|N|100|N|SKY -SLB|Schlumberger N.V. Common Stock|N|SLB|N|100|N|SLB -SLCA|U.S. Silica Holdings, Inc. Common Stock|N|SLCA|N|100|N|SLCA -SLD|Sutherland Asset Management Corporation Common Stock|N|SLD|N|100|N|SLD -SLF|Sun Life Financial Inc. Common Stock|N|SLF|N|100|N|SLF -SLG|SL Green Realty Corporation Common Stock|N|SLG|N|100|N|SLG -SLG$I|SL Green Realty Corporation Preferred Series I|N|SLGpI|N|100|N|SLG-I -SLH|Solera Holdings, Inc. Solera Holdings, Inc. Common Stock|N|SLH|N|100|N|SLH -SLI|SL Industries, Inc. Common Stock (DE)|A|SLI|N|100|N|SLI -SLQD|iShares 0-5 Year Investment Grade Corporate Bond ETF|P|SLQD|Y|100|N|SLQD -SLRA|Solar Capital Ltd. 6.75% Senior Notes due 2042|N|SLRA|N|100|N|SLRA -SLTB|Scorpio Bulkers Inc. 7.50% Senior Notes due 2019|N|SLTB|N|100|N|SLTB -SLV|iShares Silver Trust|P|SLV|Y|100|N|SLV -SLVP|iShares MSCI Global Silver Miners Fund|P|SLVP|Y|100|N|SLVP -SLW|Silver Wheaton Corp Common Shares (Canada)|N|SLW|N|100|N|SLW -SLX|Market Vectors Steel Index ETF Fund|P|SLX|Y|100|N|SLX -SLY|SPDR S&P 600 Small Cap ETF (based on S&P SmallCap 600 Index -- symbol SML)|P|SLY|Y|100|N|SLY -SLYG|SPDR S&P 600 Small Cap Growth ETF (based on S&P SmallCap 600 Growth Index --symbol CGK)|P|SLYG|Y|100|N|SLYG -SLYV|SPDR S&P 600 Small Cap Value ETF (based on S&P SmallCap Value Index--symbol--CVK|P|SLYV|Y|100|N|SLYV -SM|SM Energy Company Common Stock|N|SM|N|100|N|SM -SMB|Market Vectors Short Municipal Index ETF|P|SMB|Y|100|N|SMB -SMDD|UltraPro Short MidCap400|P|SMDD|Y|100|N|SMDD -SMEZ|SPDR EURO STOXX Small Cap ETF|P|SMEZ|Y|100|N|SMEZ -SMFG|Sumitomo Mitsui Financial Group Inc Unsponsored American Depositary Shares (Japan)|N|SMFG|N|100|N|SMFG -SMG|Scotts Miracle-Gro Company (The) Common Stock|N|SMG|N|100|N|SMG -SMH|Market Vectors Semiconductor ETF|P|SMH|Y|100|N|SMH -SMI|Semiconductor Manufacturing International Corporation ADR|N|SMI|N|100|N|SMI -SMIN|Ishares MSCI India Small Cap ETF|Z|SMIN|Y|100|N|SMIN -SMK|ProShares UltraShort MSCI Mexico Capped IMI|P|SMK|Y|100|N|SMK -SMLL|Direxiion Daily Small Cap Bull 2X Shares|P|SMLL|Y|100|N|SMLL -SMLP|Summit Midstream Partners, LP Common Units Representing Limited Partner Interests|N|SMLP|N|100|N|SMLP -SMLV|SPDR Russell 2000 Low Volatility|P|SMLV|Y|100|N|SMLV -SMM|Salient Midstream Common Shares of Beneficial Interest|N|SMM|N|100|N|SMM -SMMU|Short Term Municipal Bond Active Exchange-Traded Fund|P|SMMU|Y|100|N|SMMU -SMN|ProShares UltraShort Basic Materials|P|SMN|Y|100|N|SMN -SMP|Standard Motor Products, Inc. Common Stock|N|SMP|N|100|N|SMP -SMU|Bank of America Corporation MITTS Linked to S&P 500|P|SMU|N|100|N|SMU -SN|Sanchez Energy Corporation Common Stock|N|SN|N|100|N|SN -SNA|Snap-On Incorporated Common Stock|N|SNA|N|100|N|SNA -SNE|Sony Corporation Common Stock|N|SNE|N|100|N|SNE -SNH|Senior Housing Properties Trust Common Stock|N|SNH|N|100|N|SNH -SNHN|Senior Housing Properties Trust 5.625% Senior Notes due 2042|N|SNHN|N|100|N|SNHN -SNI|Scripps Networks Interactive, Inc Common Class A|N|SNI|N|100|N|SNI -SNLN|Highland/iBoxx Senior Loan ETF|P|SNLN|Y|100|N|SNLN -SNN|Smith & Nephew SNATS, Inc. Common Stock|N|SNN|N|100|N|SNN -SNOW|Intrawest Resorts Holdings, Inc. Common Stock|N|SNOW|N|100|N|SNOW -SNP|China Petroleum & Chemical Corporation Common Stock|N|SNP|N|100|N|SNP -SNR|New Senior Investment Group Inc. Common Stock|N|SNR|N|100|N|SNR -SNV|Synovus Financial Corp. Common Stock|N|SNV|N|100|N|SNV -SNV$C|Synovus Financial Corp. Perp Pfd Ser C Fxd To Fltg|N|SNVpC|N|100|N|SNV-C -SNX|Synnex Corporation Common Stock|N|SNX|N|100|N|SNX -SNY|Sanofi American Depositary Shares (Each repstg one-half of one ordinary share)|N|SNY|N|100|N|SNY -SO|Southern Company (The) Common Stock|N|SO|N|100|N|SO -SOIL|Global X Fertilizers/Potash ETF|P|SOIL|Y|100|N|SOIL -SOL|Renesola Ltd. Common Shares of Beneficial Interest|N|SOL|N|100|N|SOL -SON|Sonoco Products Company Common Stock|N|SON|N|100|N|SON -SOR|Source Capital, Inc. Common Stock|N|SOR|N|100|N|SOR -SOV$C|Santander Holdings USA, Inc. Dep Shs repstg 1/1000 Perp Pfd Ser C|N|SOVpC|N|100|N|SOV-C -SOXL|Direxion Daily Semiconductor Bull 3x Shares|P|SOXL|Y|100|N|SOXL -SOXS|Direxion Daily Semiconductor Bear 3x Shares|P|SOXS|Y|100|N|SOXS -SOYB|Teucrium Soybean Fund ETV|P|SOYB|Y|100|N|SOYB -SPA|Sparton Corporation Common Stock|N|SPA|N|100|N|SPA -SPB|Spectrum Brands Holdings, Inc. Common Stock|N|SPB|N|100|N|SPB -SPE|Special Opportunities Fund, Inc Common Stock|N|SPE|N|100|N|SPE -SPF|Standard Pacific Corp Common Stock|N|SPF|N|100|N|SPF -SPFF|Global X SuperIncome Preferred ETF|P|SPFF|Y|100|N|SPFF -SPG|Simon Property Group, Inc. Common Stock|N|SPG|N|100|N|SPG -SPG$J|Simon Property Group, Inc. Simon Property Group 8 3/8% Series J Cumulative Redeemable Preferred Stock|N|SPGpJ|N|100|N|SPG-J -SPGH|UBS E-TRACS S&P 500 Gold Hedged ETN|P|SPGH|N|100|N|SPGH -SPH|Suburban Propane Partners, L.P. Common Stock|N|SPH|N|100|N|SPH -SPHB|PowerShares S&P 500 High Beta Portfolio|P|SPHB|Y|100|N|SPHB -SPHD|PowerShares S&P 500 High Dividend Portfolio|P|SPHD|Y|100|N|SPHD -SPHQ|PowerShares S&P 500 High Quality Portfolio|P|SPHQ|Y|100|N|SPHQ -SPLP|Steel Partners Holdings LP LTD PARTNERSHIP UNIT|N|SPLP|N|100|N|SPLP -SPLV|PowerShares S&P 500 Low Volatility Portfolio ETF|P|SPLV|Y|100|N|SPLV -SPLX|ETRACS Monthly Reset 2xLeveraged S&P 500 Total Return ETN|P|SPLX|N|100|N|SPLX -SPN|Superior Energy Services, Inc. Common Stock|N|SPN|N|100|N|SPN -SPP|Sanchez Production Partners, LLC Common Stock|A|SPP|N|100|N|SPP -SPPP|Sprott Physical Platinum and Palladium Trust|P|SPPP|Y|100|N|SPPP -SPR|Spirit Aerosystems Holdings, Inc. Common Stock|N|SPR|N|100|N|SPR -SPUU|Direxion Daily S&P 500 Bull 2X Shares|P|SPUU|Y|100|N|SPUU -SPW|SPX Corporation Common Stock|N|SPW|N|100|N|SPW -SPXH|Janus Velocity Volatility Hedged Large Cap ETF|P|SPXH|Y|100|N|SPXH -SPXL|Direxion Daily S&P 500 Bull 3X Shares|P|SPXL|Y|100|N|SPXL -SPXS|Direxion Daily S&P 500 Bear 3X|P|SPXS|Y|100|N|SPXS -SPXU|ProShares UltraPro Short S&P500|P|SPXU|Y|100|N|SPXU -SPXX|Nuveen S&P 500 Dynamic Overwrite Fund|N|SPXX|N|100|N|SPXX -SPY|SPDR S&P 500|P|SPY|Y|100|N|SPY -SPYG|SPDR S&P 500 Growth ETF (based on S&P 500 Growth Index symbol--SGX)|P|SPYG|Y|100|N|SPYG -SPYV|SPDR S&P 500 Value ETF (based on S&P 500 Value Index--symbol: SVX)|P|SPYV|Y|100|N|SPYV -SQM|Sociedad Quimica y Minera S.A. Common Stock|N|SQM|N|100|N|SQM -SQNS|Sequans Communications S.A. American Depositary Shares, each representing one Ordinary Share|N|SQNS|N|100|N|SQNS -SR|Standard Register Company (The) Common Stock|N|SR|N|100|N|SR -SRC|Spirit Realty Capital, Inc. Common Stock|N|SRC|N|100|N|SRC -SRE|Sempra Energy Common Stock|N|SRE|N|100|N|SRE -SRF|The Cushing Royalty & Income Fund Common Shares of Beneficial Interest|N|SRF|N|100|N|SRF -SRI|Stoneridge, Inc. Common Stock|N|SRI|N|100|N|SRI -SRLN|SPDR Blackstone GSO Senior Loan ETF|P|SRLN|Y|100|N|SRLN -SRLP|Sprague Resources LP Common Units representing Limited Partner Interests|N|SRLP|N|100|N|SRLP -SRS|ProShares UltraShort Real Estate|P|SRS|Y|100|N|SRS -SRT|StarTek, Inc. Common Stock|N|SRT|N|100|N|SRT -SRTY|ProShares UltraPro Short Russell2000|P|SRTY|Y|100|N|SRTY -SRV|The Cushing MLP Total Return Fund Common Shares of Beneficial Interest|N|SRV|N|100|N|SRV -SSD|Simpson Manufacturing Company, Inc. Common Stock|N|SSD|N|100|N|SSD -SSE|Seventy Seven Energy Inc. Common Stock|N|SSE|N|100|N|SSE -SSG|ProShares UltraShort Semiconductors|P|SSG|Y|100|N|SSG -SSI|Stage Stores, Inc. Common Stock|N|SSI|N|100|N|SSI -SSL|Sasol Ltd. American Depositary Shares|N|SSL|N|100|N|SSL -SSLT|Sesa Sterlite Limited American Depositary Shares (Each representing four equity shares)|N|SSLT|N|100|N|SSLT -SSN|Samson Oil & Gas Limited Sponsored ADR (Australia)|A|SSN|N|100|N|SSN -SSNI|Silver Spring Networks, Inc. Common Stock|N|SSNI|N|100|N|SSNI -SSO|ProShares Ultra S&P500|P|SSO|Y|100|N|SSO -SSP|E.W. Scripps Company (The) Common Stock|N|SSP|N|100|N|SSP -SSS|Sovran Self Storage, Inc. Common Stock|N|SSS|N|100|N|SSS -SST|SPDR Barclays Short Term Treasury ETF|P|SST|Y|100|N|SST -SSTK|Shutterstock, Inc. Common Stock|N|SSTK|N|100|N|SSTK -SSW|Seaspan Corporation Seaspan Corporation Common Shares|N|SSW|N|100|N|SSW -SSW$C|Seaspan Corporation 9.50% Series C Cumulative Redeemable Perpetual Preferred Shares|N|SSWpC|N|100|N|SSW-C -SSW$D|Seaspan Corporation Cumulative Redeemable Perpetual Preferred Series D (Marshall Islands)|N|SSWpD|N|100|N|SSW-D -SSW$E|Seaspan Corporation Cumulative Redeemable Perpetual Preferred Series E (Marshall Islands)|N|SSWpE|N|100|N|SSW-E -SSWN|Seaspan Corporation 6.375% Notes due 2019|N|SSWN|N|100|N|SSWN -SSY|SunLink Health Systems, Inc. Common Stock|A|SSY|N|100|N|SSY -ST|Sensata Technologies Holding N.V. Ordinary Shares|N|ST|N|100|N|ST -STAG|Stag Industrial, Inc. Common Stock|N|STAG|N|100|N|STAG -STAG$A|Stag Industrial, Inc. Preferred Series A|N|STAGpA|N|100|N|STAG-A -STAG$B|Stag Industrial, Inc. Cum Pfd Ser B|N|STAGpB|N|100|N|STAG-B -STAR|iStar Financial Inc. Common Stock|N|STAR|N|100|N|STAR -STAR$D|iStar Financial Inc. Preferred Stock|N|STARpD|N|100|N|STAR-D -STAR$E|iStar Financial Inc. 7.875% Preferred Ser E|N|STARpE|N|100|N|STAR-E -STAR$F|iStar Financial Inc. Series F Preferred Stock|N|STARpF|N|100|N|STAR-F -STAR$G|iStar Financial Inc. Preferred Stock Series G|N|STARpG|N|100|N|STAR-G -STAR$I|iStar Financial Inc. Preferred Series I|N|STARpI|N|100|N|STAR-I -STAY|Extended Stay America, Inc. Common Stock|N|STAY|N|100|N|STAY -STC|Stewart Information Services Corporation Common Stock|N|STC|N|100|N|STC -STE|STERIS Corporation Common Stock|N|STE|N|100|N|STE -STI|SunTrust Banks, Inc. Common Stock|N|STI|N|100|N|STI -STI$A|SunTrust Banks, Inc. Dep Shs repstg 1/4000 Perpetual Pfd Stk Ser A|N|STIpA|N|100|N|STI-A -STI$E|SunTrust Banks, Inc. Depositary Shares Representing Perpetual Preferred Series E|N|STIpE|N|100|N|STI-E -STI.A|SunTrust Banks, Inc. Class A Warrant (Expiring December 31, 2018)|N|STI/WS/A|N|100|N|STI+A -STI.B|SunTrust Banks, Inc. Class B Warrant (Expiring November 14, 2018)|N|STI/WS/B|N|100|N|STI+B -STIP|iShares 0-5 Year TIPS Bond ETF|P|STIP|Y|100|N|STIP -STJ|St. Jude Medical, Inc. Common Stock|N|STJ|N|100|N|STJ -STK|Columbia Seligman Premium Technology Growth Fund Inc|N|STK|N|100|N|STK -STL|Sterling Bancorp|N|STL|N|100|N|STL -STM|STMicroelectronics N.V. Common Stock|N|STM|N|100|N|STM -STN|Stantec Inc Common Stock|N|STN|N|100|N|STN -STNG|Scorpio Tankers Inc. Common Shares|N|STNG|N|100|N|STNG -STO|Statoil ASA|N|STO|N|100|N|STO -STON|StoneMor Partners L.P. Common Unit Rep Limited Partnership Interests|N|STON|N|100|N|STON -STOR|STORE Capital Corporation Common Stock|N|STOR|N|100|N|STOR -STPZ|PIMCO 1-5 Year U.S. TIPS Index Exchange-Traded Fund|P|STPZ|Y|100|N|STPZ -STR|Questar Corporation Common Stock|N|STR|N|100|N|STR -STRI|STR Holdings, Inc Common Stock|N|STRI|N|100|N|STRI -STRP|Straight Path Communications Inc. Class B Common Stock|A|STRP|N|100|N|STRP -STS|Supreme Industries, Inc. Common Stock|A|STS|N|100|N|STS -STT|State Street Corporation Common Stock|N|STT|N|100|N|STT -STT$C|State Street Corporation Dep Shs Representing 1/4000 Ownership Int In Sh Non Cum (Perpertual Pfd Stk Ser C)|N|STTpC|N|100|N|STT-C -STT$D|State Street Corporation Depositary Shares representing 1/4000th Perpetual Preferred Series D|N|STTpD|N|100|N|STT-D -STT$E|State Street Corporation Depository Shares, each representing a 1/4,000th ownership interest in a share of Non-Cumulative Perpetual Preferred Stock, Series E, without par value per share|N|STTpE|N|100|N|STT-E -STV|China Digital TV Holding Co., Ltd. American Depositary Shares|N|STV|N|100|N|STV -STWD|STARWOOD PROPERTY TRUST, INC. Starwood Property Trust Inc.|N|STWD|N|100|N|STWD -STXX|ALPS STOXX Europe 600 ETF|P|STXX|Y|100|N|STXX -STZ|Constellation Brands, Inc. Common Stock|N|STZ|N|100|N|STZ -STZ.B|Constellation Brands, Inc. Common Stock|N|STZ/B|N|100|N|STZ.B -SU|Suncor Energy Inc. Common Stock|N|SU|N|100|N|SU -SUB|iShares Short Term National AMT-Free Muni Bond ETF|P|SUB|Y|100|N|SUB -SUBD|Deutsche X-trackers Solactive Investment Grade Subordinated Debt ETF|P|SUBD|Y|100|N|SUBD -SUI|Sun Communities, Inc. Common Stock|N|SUI|N|100|N|SUI -SUI$A|Sun Communities, Inc. Preferred Series A|N|SUIpA|N|100|N|SUI-A -SUN|Sunoco LP Common Units representing limited partner interests|N|SUN|N|100|N|SUN -SUNE|SunEdison, Inc. Common Stock|N|SUNE|N|100|N|SUNE -SUP|Superior Industries International, Inc. Common Stock|N|SUP|N|100|N|SUP -SVBL|Silver Bull Resources, Inc Common Stock|A|SVBL|N|100|N|SVBL -SVLC|SilverCrest Mines, Inc. Ordinary Shares (Canada)|A|SVLC|N|100|N|SVLC -SVM|Silvercorp Metals Inc Ordinary Shares (Canada)|N|SVM|N|100|N|SVM -SVT|Servotronics, Inc. Common Stock|A|SVT|N|100|N|SVT -SVU|SuperValu Inc. Common Stock|N|SVU|N|100|N|SVU -SVXY|ProShares Short VIX Short Term Futures ETF|P|SVXY|Y|100|N|SVXY -SWAY|Starwood Waypoint Residential Trust Common Stock|N|SWAY|N|100|N|SWAY -SWC|Stillwater Mining Company Common Stock ($0.01 Par Value)|N|SWC|N|100|N|SWC -SWFT|Swift Transportation Company Class A Common Stock|N|SWFT|N|100|N|SWFT -SWH|Stanley Black & Decker, Inc. Corp Unit 2013|N|SWH|N|100|N|SWH -SWI|Solarwinds, Inc. Common Stock|N|SWI|N|100|N|SWI -SWJ|Stanley Black & Decker, Inc. 5.75% Junior Subordinated Debenture due 2052|N|SWJ|N|100|N|SWJ -SWK|Stanley Black & Decker, Inc. Common Stock|N|SWK|N|100|N|SWK -SWM|Schweitzer-Mauduit International, Inc. Common Stock|N|SWM|N|100|N|SWM -SWN|Southwestern Energy Company Common Stock|N|SWN|N|100|N|SWN -SWNC|Southwestern Energy Company Depositary Shares, each representing a 1/20th ownership interest in a share of 6.25% Series B Mandatory Convertible Preferred Stock|N|SWNC|N|100|N|SWNC -SWU|Stanley Black & Decker, Inc Corporate Units|N|SWU|N|100|N|SWU -SWX|Southwest Gas Corporation Common Stock|N|SWX|N|100|N|SWX -SWY|Safeway Inc. Common Stock|N|SWY|N|100|N|SWY -SWZ|Swiss Helvetia Fund, Inc. (The) Common Stock|N|SWZ|N|100|N|SWZ -SXC|SunCoke Energy, Inc. Common Stock|N|SXC|N|100|N|SXC -SXCP|SunCoke Energy Partners, L.P. Common Units Representing Limited partner Interests|N|SXCP|N|100|N|SXCP -SXE|Southcross Energy Partners, L.P. Common Units representing limited partner interest in the Partnership|N|SXE|N|100|N|SXE -SXI|Standex International Corporation Common Stock|N|SXI|N|100|N|SXI -SXL|Sunoco Logistics Partners LP Common Units representing limited partner interests|N|SXL|N|100|N|SXL -SXT|Sensient Technologies Corporation Common Stock|N|SXT|N|100|N|SXT -SYA|Symetra Financial Corporation Common Stock $0.01 par value|N|SYA|N|100|N|SYA -SYE|SPDR MFS Systematic Core Equity ETF|P|SYE|Y|100|N|SYE -SYF|Synchrony Financial Common Stock|N|SYF|N|100|N|SYF -SYG|SPDR MFS Systematic Growth Equity ETF|P|SYG|Y|100|N|SYG -SYK|Stryker Corporation Common Stock|N|SYK|N|100|N|SYK -SYLD|Cambria Shareholder Yield ETF|P|SYLD|Y|100|N|SYLD -SYN|Synthetic Biologics, Inc. Common Stock|A|SYN|N|100|N|SYN -SYRG|Synergy Resources Corporation Common Stock|A|SYRG|N|100|N|SYRG -SYT|Syngenta AG Common Stock|N|SYT|N|100|N|SYT -SYTL|Direxion Daily 7-10 Year Treasury Bull 2X Shares|P|SYTL|Y|100|N|SYTL -SYV|SPDR MFS Systematic Value Equity ETF|P|SYV|Y|100|N|SYV -SYX|Systemax Inc. Common Stock|N|SYX|N|100|N|SYX -SYY|Sysco Corporation Common Stock|N|SYY|N|100|N|SYY -SZC|Cushing Renaissance Fund (The) Common Shares of Beneficial Interest|N|SZC|N|100|N|SZC -SZK|ProShares UltraShort Consumer Goods|P|SZK|Y|100|N|SZK -SZO|PowerShares DB Crude Oil Short ETN|P|SZO|N|100|N|SZO -T|AT&T Inc.|N|T|N|100|N|T -TA|TravelCenters of America LLC Common Stock|N|TA|N|100|N|TA -TAC|TransAlta Corporation Ordinary Shares|N|TAC|N|100|N|TAC -TAGS|Teucrium Agricultural Fund ETV|P|TAGS|Y|100|N|TAGS -TAHO|Tahoe Resources, Inc. Ordinary Shares (Canada)|N|TAHO|N|100|N|TAHO -TAI|Transamerica Income Shares, Inc. Common Stock|N|TAI|N|100|N|TAI -TAL|TAL International Group, Inc. Common Stock|N|TAL|N|100|N|TAL -TAN|Guggenheim Solar ETF|P|TAN|Y|100|N|TAN -TANN|TravelCenters of America LLC 8.25% Senior Notes due 2028|N|TANN|N|100|N|TANN -TANO|TravelCenters of America LLC 8.00% Senior Notes due 2029|N|TANO|N|100|N|TANO -TAO|Guggenheim China Real Estate ETF|P|TAO|Y|100|N|TAO -TAOM|Taomee Holdings Limited American Depositary Shares (each representing 20 ordinary shares)|N|TAOM|N|100|N|TAOM -TAP|Molson Coors Brewing Company Class B Common Stock|N|TAP|N|100|N|TAP -TAP.A|Molson Coors Brewing Company Molson Coors Brewing Company Class A Common Stock|N|TAP/A|N|100|N|TAP.A -TARO|Taro Pharmaceutical Industries Ltd. Ordinary Shares|N|TARO|N|100|N|TARO -TAS|Tasman Metals Ltd Ordinary Shares (Canada)|A|TAS|N|100|N|TAS -TAT|TransAtlantic Petroleum Ltd Ordinary Shares (Bermuda)|A|TAT|N|100|N|TAT -TBAR|RBS Gold Trendpilot Exchange Traded Notes|P|TBAR|N|100|N|TBAR -TBF|ProShares Short 20+ Year Treasury|P|TBF|Y|100|N|TBF -TBI|TrueBlue, Inc. Common Stock|N|TBI|N|100|N|TBI -TBT|ProShares UltraShort Lehman 20 Year Treasury|P|TBT|Y|100|N|TBT -TBX|ProShares Short 7 10 Year Treasury|P|TBX|Y|100|N|TBX -TBZ|ProShares UltraShort 3 7 Year Treasury|P|TBZ|Y|100|N|TBZ -TC|Thompson Creek Metals Company Inc. Ordinary Shares (Canada)|N|TC|N|100|N|TC -TCAP|Triangle Capital Corporation Common Stock|N|TCAP|N|100|N|TCAP -TCB|TCF Financial Corporation Common Stock|N|TCB|N|100|N|TCB -TCB$B|TCF Financial Corporation Del Dep Shs Repstg 1/1000 Pfd Ser A|N|TCBpB|N|100|N|TCB-B -TCB$C|TCF Financial Corporation Perp Pfd Ser B|N|TCBpC|N|100|N|TCB-C -TCB.W|TCF Financial Corporation TCF Financial Corporation Warrants|N|TCB/WS|N|100|N|TCB+ -TCC|Triangle Capital Corporation 7.00% Senior Notes due 2019|N|TCC|N|100|N|TCC -TCCA|Triangle Capital Corporation 6.375% Senior Notes due 2022|N|TCCA|N|100|N|TCCA -TCHI|RBS China Trendpilot Exchange Traded Note|P|TCHI|N|100|N|TCHI -TCI|Transcontinental Realty Investors, Inc. Common Stock|N|TCI|N|100|N|TCI -TCK|Teck Resources Ltd Ordinary Shares|N|TCK|N|100|N|TCK -TCO|Taubman Centers, Inc. Common Stock|N|TCO|N|100|N|TCO -TCO$J|Taubman Centers, Inc. Preferred Shares Series J|N|TCOpJ|N|100|N|TCO-J -TCO$K|Taubman Centers, Inc. Preferred Series K|N|TCOpK|N|100|N|TCO-K -TCP|TC PipeLines, LP Common Units representing Limited Partner Interests|N|TCP|N|100|N|TCP -TCPI|TCP International Holdings Ltd. Common Shares|N|TCPI|N|100|N|TCPI -TCRX|THL Credit, Inc. 6.75% Notes due 2021|N|TCRX|N|100|N|TCRX -TCS|Container Store (The) Common Stock|N|TCS|N|100|N|TCS -TD|Toronto Dominion Bank (The) Common Stock|N|TD|N|100|N|TD -TDA|Telephone and Data Systems, Inc. 5.875% Senior Notes due 2061|N|TDA|N|100|N|TDA -TDC|Teradata Corporation Common Stock|N|TDC|N|100|N|TDC -TDD|Deutsche X-trackers 2010 Target Date ETF|P|TDD|Y|100|N|TDD -TDE|Telephone and Data Systems, Inc. 6.875% Senior Notes due 2059|N|TDE|N|100|N|TDE -TDF|Templeton Dragon Fund, Inc. Common Stock|N|TDF|N|100|N|TDF -TDG|Transdigm Group Incorporated Transdigm Group Inc. Common Stock|N|TDG|N|100|N|TDG -TDH|Deutsche X-trackers 2020 Target Date ETF|P|TDH|Y|100|N|TDH -TDI|Telephone and Data Systems, Inc. Sr Nt|N|TDI|N|100|N|TDI -TDJ|Telephone and Data Systems, Inc. 7% Senior Notes due 2060|N|TDJ|N|100|N|TDJ -TDN|Deutsche X-trackers 2030 Target Date ETF|P|TDN|Y|100|N|TDN -TDS|Telephone and Data Systems, Inc. Common Shares|N|TDS|N|100|N|TDS -TDTF|FlexShares iBoxx 5 Year Target Duration TIPS Index Fund|P|TDTF|Y|100|N|TDTF -TDTT|FlexShares iBoxx 3 Year Target Duration TIPS Index Fund|P|TDTT|Y|100|N|TDTT -TDV|Deutsche X-trackers 2040 Target Date ETF|P|TDV|Y|100|N|TDV -TDW|Tidewater Inc. Common Stock|N|TDW|N|100|N|TDW -TDX|Deutsche X-trackers In-Target Date ETF|P|TDX|Y|100|N|TDX -TDY|Teledyne Technologies Incorporated Common Stock|N|TDY|N|100|N|TDY -TE|TECO Energy, Inc. Common Stock|N|TE|N|100|N|TE -TECL|Direxion Technology Bull 3X Shares|P|TECL|Y|100|N|TECL -TECS|Direxion Technology Bear 3X Shares|P|TECS|Y|100|N|TECS -TEF|Telefonica SA Common Stock|N|TEF|N|100|N|TEF -TEG|Integrys Energy Group, Inc. Common Stock|N|TEG|N|100|N|TEG -TEI|Templeton Emerging Markets Income Fund, Inc. Common Stock|N|TEI|N|100|N|TEI -TEL|TE Connectivity Ltd. New Switzerland Registered Shares|N|TEL|N|100|N|TEL -TEN|Tenneco Inc. Common Stock|N|TEN|N|100|N|TEN -TENZ|Pimco 7-15 Year U.S. Treasury Index Exchange-Traded Fund|P|TENZ|Y|100|N|TENZ -TEO|Telecom Argentina SA|N|TEO|N|100|N|TEO -TEP|Tallgrass Energy Partners, LP Common Units representing limited partner interests|N|TEP|N|100|N|TEP -TER|Teradyne, Inc. Common Stock|N|TER|N|100|N|TER -TEU|Box Ships Inc. Common Shares|N|TEU|N|100|N|TEU -TEU$C|Box Ships Inc. 9.00% Series C Cumulative Perpetual Preferred Stock|N|TEUpC|N|100|N|TEU-C -TEVA|Teva Pharmaceutical Industries Limited American Depositary Shares|N|TEVA|N|100|N|TEVA -TEX|Terex Corporation Common Stock|N|TEX|N|100|N|TEX -TFG|Fixed Income Trust for Goldman Sachs Subordinated Notes, Series 2011-1|N|TFG|N|100|N|TFG -TFI|SPDR Nuveen Barclays Municipal Bond ETF|P|TFI|Y|100|N|TFI -TFLO|iShares Treasury Floating Rate Bond ETF|P|TFLO|Y|100|N|TFLO -TFX|Teleflex Incorporated Common Stock|N|TFX|N|100|N|TFX -TG|Tredegar Corporation Common Stock|N|TG|N|100|N|TG -TGB|Taseko Mines, Ltd. Common Stock|A|TGB|N|100|N|TGB -TGC|Tengasco, Inc. Common Stock|A|TGC|N|100|N|TGC -TGD|Timmins Gold Corp Common Shares (Canada)|A|TGD|N|100|N|TGD -TGH|Textainer Group Holdings Limited Common Shares|N|TGH|N|100|N|TGH -TGI|Triumph Group, Inc. Common Stock|N|TGI|N|100|N|TGI -TGP|Teekay LNG Partners L.P.|N|TGP|N|100|N|TGP -TGS|Transportadora de Gas del Sur SA TGS Common Stock|N|TGS|N|100|N|TGS -TGT|Target Corporation Common Stock|N|TGT|N|100|N|TGT -THC|Tenet Healthcare Corporation Common Stock|N|THC|N|100|N|THC -THD|iShares MSCI Thailand Capped Investable Market Index Fund|P|THD|Y|100|N|THD -THG|Hanover Insurance Group Inc|N|THG|N|100|N|THG -THGA|The Hanover Insurance Group, Inc. 6.35% Subordinated Debentures due 2053|N|THGA|N|100|N|THGA -THHY|Market Vectors Treasury-Hedged High Yield Bond ETF|P|THHY|Y|100|N|THHY -THM|International Tower Hill Mines, Ltd. Ordinary Shares (Canada)|A|THM|N|100|N|THM -THO|Thor Industries, Inc. Common Stock|N|THO|N|100|N|THO -THQ|Tekla Healthcare Opportunies Fund Shares of Beneficial Interest|N|THQ|N|100|N|THQ -THR|Thermon Group Holdings, Inc. Common Stock|N|THR|N|100|N|THR -THRK|SPDR Russell 3000 ETF|P|THRK|Y|100|N|THRK -THS|Treehouse Foods, Inc. Common Stock|N|THS|N|100|N|THS -TI|Telecom Italia S.P.A. New|N|TI|N|100|N|TI -TI.A|Telecom Italia S.P.A. New|N|TI/A|N|100|N|TI.A -TIF|Tiffany & Co. Common Stock|N|TIF|N|100|N|TIF -TIK|Tel-Instrument Electronics Corp. Common Stock|A|TIK|N|100|N|TIK -TILT|FlexShares Mornigstar US Market Factors Tilt Index Fund ETF|P|TILT|Y|100|N|TILT -TIME|Time Inc. Common Stock|N|TIME|N|100|N|TIME -TIP|iShares TIPS Bond ETF|P|TIP|Y|100|N|TIP -TIPX|SPDR Barclays 1-10 Year TIPS|P|TIPX|Y|100|N|TIPX -TIPZ|PIMCO Broad U.S. TIPS Index Exchange-Traded Fund|P|TIPZ|Y|100|N|TIPZ -TIS|Orchids Paper Products Company Common Stock|A|TIS|N|100|N|TIS -TISI|Team, Inc. Common Stock|N|TISI|N|100|N|TISI -TJX|TJX Companies, Inc. (The) Common Stock|N|TJX|N|100|N|TJX -TK|Teekay Corporation Common Stock|N|TK|N|100|N|TK -TKC|Turkcell Iletisim Hizmetleri AS Common Stock|N|TKC|N|100|N|TKC -TKF|Turkish Investment Fund, Inc. (The) Common Stock|N|TKF|N|100|N|TKF -TKR|Timken Company (The) Common Stock|N|TKR|N|100|N|TKR -TLH|iShares 10-20 Year Treasury Bond ETF|P|TLH|Y|100|N|TLH -TLI|LMP Corporate Loan Fund Inc Common Stock|N|TLI|N|100|N|TLI -TLK|PT Telekomunikasi Indonesia, Tbk|N|TLK|N|100|N|TLK -TLL|ProShares UltraShort Telecommunications|P|TLL|Y|100|N|TLL -TLLP|Tesoro Logistics LP Common Units representing Limited Partner Interests|N|TLLP|N|100|N|TLLP -TLM|Talisman Energy Inc. Common Stock|N|TLM|N|100|N|TLM -TLO|SPDR Barclays Long Term Treasury ETF|P|TLO|Y|100|N|TLO -TLP|Transmontaigne Partners L.P. Transmontaigne Partners L.P. Common Units representing limited partner interests|N|TLP|N|100|N|TLP -TLR|Timberline Resources Corporation Common Stock (DE)|A|TLR|N|100|N|TLR -TLT|iShares 20 Year Treasury Bond ETF|P|TLT|Y|100|N|TLT -TLTD|FlexShares Morningstar Developed Markets ex-US Factor Tilt Index Fund|P|TLTD|Y|100|N|TLTD -TLTE|FlexShares Morningstar Emerging Markets Factor Tilt Index Fund|P|TLTE|Y|100|N|TLTE -TLYS|Tilly's, Inc. Common Stock|N|TLYS|N|100|N|TLYS -TM|Toyota Motor Corporation Common Stock|N|TM|N|100|N|TM -TMF|Direxion Daily 20-Yr Treasury Bull 3x Shrs|P|TMF|Y|100|N|TMF -TMH|Team Health Holdings, Inc. Team Health Holdings, Inc.|N|TMH|N|100|N|TMH -TMHC|Taylor Morrison Home Corporation Class A Common Stock|N|TMHC|N|100|N|TMHC -TMK|Torchmark Corporation Common Stock|N|TMK|N|100|N|TMK -TMK$B|Torchmark Corporation 5.875% Junior Subordinated Debenture due 2052|N|TMKpB|N|100|N|TMK-B -TMO|Thermo Fisher Scientific Inc Common Stock|N|TMO|N|100|N|TMO -TMP|Tompkins Financial Corporation Common Stock|A|TMP|N|100|N|TMP -TMST|Timken Steel Corporation Common Shares|N|TMST|N|100|N|TMST -TMUS|T-Mobile US, Inc. Common Stock|N|TMUS|N|100|N|TMUS -TMUS$A|T-Mobile US, Inc. 5.50% Mandatory Convertible Preferred Stock, Series A|N|TMUSpA|N|100|N|TMUS-A -TMV|Direxion Daily 30-Yr Treasury Bear 3x Shrs|P|TMV|Y|100|N|TMV -TNA|Direxion Small Cap Bull 3X Shares|P|TNA|Y|100|N|TNA -TNC|Tennant Company Common Stock|N|TNC|N|100|N|TNC -TNDQ|RBS NASDAQ 100 Trendpilot ETN|P|TNDQ|N|100|N|TNDQ -TNET|TriNet Group, Inc. Common Stock|N|TNET|N|100|N|TNET -TNH|Terra Nitrogen Company, L.P. Common Units|N|TNH|N|100|N|TNH -TNK|Teekay Tankers Ltd.|N|TNK|N|100|N|TNK -TNP|Tsakos Energy Navigation Ltd Common Shares|N|TNP|N|100|N|TNP -TNP$B|Tsakos Energy Navigation Ltd Red Perp Pfd Ser B% (Bermuda)|N|TNPpB|N|100|N|TNP-B -TNP$C|Tsakos Energy Navigation Ltd 8.875% Series C Preferred Cumulative Redeemable Perpetual Preferred Shares|N|TNPpC|N|100|N|TNP-C -TOF|Tofutti Brands Inc. Common Stock|A|TOF|N|100|N|TOF -TOFR|Stock Split Index Fund ETF|P|TOFR|Y|100|N|TOFR -TOK|iShares MSCI KLD 400 Social ETF|P|TOK|Y|100|N|TOK -TOL|Toll Brothers Inc. Common Stock|N|TOL|N|100|N|TOL -TOLZ|ProShares DJ Brookfield Global Infrastructure ETF|P|TOLZ|Y|100|N|TOLZ -TOO|Teekay Offshore Partners L.P. Common Units representing Limited Partner Interests|N|TOO|N|100|N|TOO -TOO$A|Teekay Offshore Partners L.P. 7.25% Series A Redeemable Preferred Units|N|TOOpA|N|100|N|TOO-A -TOT|Total S.A.|N|TOT|N|100|N|TOT -TOTS|Direxion Daily Total Market Bear 1X Shares|P|TOTS|Y|100|N|TOTS -TOWR|Tower International, Inc. Common stock|N|TOWR|N|100|N|TOWR -TPC|Tutor Perini Corporation Common Stock|N|TPC|N|100|N|TPC -TPH|Tri Pointe Homes, Inc. Common Stock|N|TPH|N|100|N|TPH -TPI|Tianyin Pharmaceutical Co., Inc. Common Stock|A|TPI|N|100|N|TPI -TPL|Texas Pacific Land Trust Common Stock|N|TPL|N|100|N|TPL -TPLM|Triangle Petroleum Corporation Common Stock (DE)|A|TPLM|N|100|N|TPLM -TPRE|Third Point Reinsurance Ltd. Common Shares|N|TPRE|N|100|N|TPRE -TPS|ProShares UltraShort TIPS|P|TPS|Y|100|N|TPS -TPUB|Tribune Publishing Company Common Stock|N|TPUB|N|100|N|TPUB -TPVG|TriplePoint Venture Growth BDC Corp. Common Stock|N|TPVG|N|100|N|TPVG -TPX|Tempur Sealy International, Inc. Common Stock|N|TPX|N|100|N|TPX -TPZ|Tortoise Power and Energy Infrastructure Fund, Inc Common Stock|N|TPZ|N|100|N|TPZ -TR|Tootsie Roll Industries, Inc. Common Stock|N|TR|N|100|N|TR -TRC|Tejon Ranch Co Common Stock|N|TRC|N|100|N|TRC -TRC.W|Tejon Ranch Co Warrants expiring August 31, 2016|A|TRC/WS|N|100|N|TRC+ -TRCO|Tribune Media Company Class A Common Stock|N|TRCO|N|100|N|TRCO -TREC|Trecora Resources Common Stock|N|TREC|N|100|N|TREC -TREX|Trex Company, Inc. Common Stock|N|TREX|N|100|N|TREX -TRF|Templeton Russia and East European Fund, Inc. Common Stock|N|TRF|N|100|N|TRF -TRGP|Targa Resources, Inc. Common Stock|N|TRGP|N|100|N|TRGP -TRI|Thomson Reuters Corp Ordinary Shares|N|TRI|N|100|N|TRI -TRK|Speedway Motorsports, Inc. Common Stock|N|TRK|N|100|N|TRK -TRLA|Trulia, Inc. Common Stock|N|TRLA|N|100|N|TRLA -TRMR|Tremor Video, Inc. Common Stock|N|TRMR|N|100|N|TRMR -TRN|Trinity Industries, Inc. Common Stock|N|TRN|N|100|N|TRN -TRND|RBS US Large Cap Trendpilot ETN|P|TRND|N|100|N|TRND -TRNM|RBS US Mid Cap Trendpilot ETN|P|TRNM|N|100|N|TRNM -TRNO|Terreno Realty Corporation Common Stock|N|TRNO|N|100|N|TRNO -TRNO$A|Terreno Realty Corporation Preferred Shares Series A|N|TRNOpA|N|100|N|TRNO-A -TROX|Tronox Limited Ordinary Shares Class A $0.01 par|N|TROX|N|100|N|TROX -TRP|TransCanada Corporation Common Stock|N|TRP|N|100|N|TRP -TRQ|Turquoise Hill Resources Ltd. Ordinary Shares|N|TRQ|N|100|N|TRQ -TRR|TRC Companies, Inc. Common Stock|N|TRR|N|100|N|TRR -TRSK|Janus Velocity Tail Risk Hedged Large Cap ETF|P|TRSK|Y|100|N|TRSK -TRT|Trio-Tech International Common Stock|A|TRT|N|100|N|TRT -TRUP|Trupanion, Inc. Common Stock|N|TRUP|N|100|N|TRUP -TRV|The Travelers Companies, Inc. Common Stock|N|TRV|N|100|N|TRV -TRW|TRW Automotive Holdings Corporation Common Stock|N|TRW|N|100|N|TRW -TRX|Tanzanian Royalty Exploration Corporation Common Stock|A|TRX|N|100|N|TRX -TRXC|TransEnterix, Inc. Common Stock|A|TRXC|N|100|N|TRXC -TS|Tenaris S.A. American Depositary Shares|N|TS|N|100|N|TS -TSE|Trinseo S.A. Ordinary Shares|N|TSE|N|100|N|TSE -TSI|TCW Strategic Income Fund, Inc. Common Stock|N|TSI|N|100|N|TSI -TSL|Trina Solar Limited Sponsored ADR (Cayman Islands)|N|TSL|N|100|N|TSL -TSLF|THL Credit Senior Loan Fund Common Shares of Beneficial Interest|N|TSLF|N|100|N|TSLF -TSLX|TPG Specialty Lending, Inc. Common Stock|N|TSLX|N|100|N|TSLX -TSM|Taiwan Semiconductor Manufacturing Company Ltd.|N|TSM|N|100|N|TSM -TSN|Tyson Foods, Inc. Common Stock|N|TSN|N|100|N|TSN -TSNU|Tyson Foods, Inc. Tangible Equity Unit 1 Prepaid Stock Purchase Contact & 1 Sr (Amortorizing NT)|N|TSNU|N|100|N|TSNU -TSO|Tesoro Corporation Common Stock|N|TSO|N|100|N|TSO -TSQ|Townsquare Media, Inc. Class A Common Stock|N|TSQ|N|100|N|TSQ -TSS|Total System Services, Inc. Common Stock|N|TSS|N|100|N|TSS -TSU|TIM Participacoes S.A. American Depositary Shares (Each representing 5 Common Shares)|N|TSU|N|100|N|TSU -TTC|Toro Company (The) Common Stock|N|TTC|N|100|N|TTC -TTF|Thai Fund, Inc. (The) Common Stock|N|TTF|N|100|N|TTF -TTFS|TrimTabs Float Shrink ETF|P|TTFS|Y|100|N|TTFS -TTI|Tetra Technologies, Inc. Common Stock|N|TTI|N|100|N|TTI -TTM|Tata Motors Ltd Tata Motors Limited|N|TTM|N|100|N|TTM -TTP|Tortoise Pipeline & Energy Fund, Inc. Common Stock|N|TTP|N|100|N|TTP -TTT|ProShares UltraPro Short 20 Year Treasury|P|TTT|Y|100|N|TTT -TU|Telus Corporation Ordinary Shares|N|TU|N|100|N|TU -TUMI|Tumi Holdings, Inc. Common Stock|N|TUMI|N|100|N|TUMI -TUP|Tupperware Brands Corporation Common Stock|N|TUP|N|100|N|TUP -TUR|iShares MSCI Turkey Investable Market Index Fund|P|TUR|Y|100|N|TUR -TUZ|PIMCO 1-3 Year US Treasury Index Exchage-Traded Fund|P|TUZ|Y|100|N|TUZ -TV|Grupo Televisa S.A. Common Stock|N|TV|N|100|N|TV -TVC|Tennessee Valley Authority Common Stock|N|TVC|N|100|N|TVC -TVE|Tennessee Valley Authority|N|TVE|N|100|N|TVE -TVPT|Travelport Worldwide Limited Common Shares|N|TVPT|N|100|N|TVPT -TW|Towers Watson & Co Common Stock Class A|N|TW|N|100|N|TW -TWC|Time Warner Cable Inc Common Stock|N|TWC|N|100|N|TWC -TWI|Titan International, Inc. Common Stock|N|TWI|N|100|N|TWI -TWM|ProShares UltraShort Russell2000|P|TWM|Y|100|N|TWM -TWN|Taiwan Fund, Inc. (The) Common Stock|N|TWN|N|100|N|TWN -TWO|Two Harbors Investment Corp|N|TWO|N|100|N|TWO -TWOK|SPDR Russell 2000 ETF|P|TWOK|Y|100|N|TWOK -TWTI|RBS Oil Trendpilot ETN|P|TWTI|N|100|N|TWTI -TWTR|Twitter, Inc. Common Stock|N|TWTR|N|100|N|TWTR -TWX|Time Warner Inc. New Common Stock|N|TWX|N|100|N|TWX -TX|Ternium S.A. Ternium S.A. American Depositary Shares (each representing ten shares, USD1.00 par value)|N|TX|N|100|N|TX -TXMD|TherapeuticsMD, Inc. Common Stock|A|TXMD|N|100|N|TXMD -TXT|Textron Inc. Common Stock|N|TXT|N|100|N|TXT -TXTR|Textura Corporation Common Stock|N|TXTR|N|100|N|TXTR -TY|Tri Continental Corporation Common Stock|N|TY|N|100|N|TY -TY$|Tri Continental Corporation Preferred Stock|N|TYp|N|100|N|TY- -TYBS|Direxion Daily 20 Year Treasury Bear 1X Shares|P|TYBS|Y|100|N|TYBS -TYC|Tyco International plc (Ireland) Ordinary Share|N|TYC|N|100|N|TYC -TYD|Direxion Daily 10-Yr Treasury Bull 3x Shrs|P|TYD|Y|100|N|TYD -TYG|Tortoise Energy Infrastructure Corporation Common Stock|N|TYG|N|100|N|TYG -TYG$B|Tortoise Energy Infrastructure Corporation Mandatory Red Pfd Ser B|N|TYGpB|N|100|N|TYG-B -TYG$C|Tortoise Energy Infrastructure Corporation Series C Mandatory Redeemable Preferred Shares|N|TYGpC|N|100|N|TYG-C -TYL|Tyler Technologies, Inc. Common Stock|N|TYL|N|100|N|TYL -TYNS|Direxion Daily 7 10 Year Treasury Bear 1X Shares|P|TYNS|Y|100|N|TYNS -TYO|Direxion Daily 10-Yr Treasury Bear 3x Shrs|P|TYO|Y|100|N|TYO -TYTE|ProShares CDS North American HY Credit ETF|Z|TYTE|Y|100|N|TYTE -TZA|Direxion Small Cap Bear 3X Shares|P|TZA|Y|100|N|TZA -TZF|Bear Stearns Depositor, Inc. Pfd Stk TRUCs Srs 2001-2 Issued by IMB|N|TZF|N|100|N|TZF -UA|Under Armour, Inc. Class A Common Stock|N|UA|N|100|N|UA -UAG|E-TRACS USB Bloomberg Commodity Index Exchange Traded Notes E-TRACS UBS Bloomberg CMCI Agriculture ETN|P|UAG|N|100|N|UAG -UAL|United Continental Holdings|N|UAL|N|100|N|UAL -UAM|Universal American Corporation New Common Stock|N|UAM|N|100|N|UAM -UAMY|United States Antimony Corporation Common Stock|A|UAMY|N|100|N|UAMY -UAN|CVR Partners, LP Common Units representing Limited Partner Interests|N|UAN|N|100|N|UAN -UBA|Urstadt Biddle Properties Inc. Common Stock|N|UBA|N|100|N|UBA -UBC|E-TRACS USB Bloomberg Commodity Index Exchange Traded Notes E-TRACS UBS Bloomberg CMCI Livestock ETN|P|UBC|N|100|N|UBC -UBG|E-TRACS USB Bloomberg Commodity Index Exchange Traded Notes E-TRACS UBS Bloomberg CMCI Gold ETN|P|UBG|N|100|N|UBG -UBM|E-TRACS USB Bloomberg Commodity Index Exchange Traded Notes E-TRACS UBS Bloomberg CMCI Industrial ETN|P|UBM|N|100|N|UBM -UBN|E-TRACS USB Bloomberg Commodity Index Exchange Traded Notes E-TRACS UBS Bloomberg CMCI Energy ETN|P|UBN|N|100|N|UBN -UBP|Urstadt Biddle Properties Inc. Common Stock|N|UBP|N|100|N|UBP -UBP$F|Urstadt Biddle Properties Inc. Pfd Ser F|N|UBPpF|N|100|N|UBP-F -UBP$G|Urstadt Biddle Properties Inc. Preferred Stock Series G 6.75%|N|UBPpG|N|100|N|UBP-G -UBR|ProShares Ultra MSCI Brazil Capped|P|UBR|Y|100|N|UBR -UBS|UBS Group AG Registered Ordinary Shares|N|UBS|N|100|N|UBS -UBS$D|UBS AG Trust Preferred Securities|N|UBSpD|N|100|N|UBS-D -UBT|ProShares Ultra 20+ Year Treasury|P|UBT|Y|100|N|UBT -UCC|ProShares Ultra Consumer Services|P|UCC|Y|100|N|UCC -UCD|ProShares Ultra Bloomberg Commodity|P|UCD|Y|100|N|UCD -UCI|E-TRACS USB Bloomberg Commodity Index Exchange Traded Notes E-TRACS UBS Bloomberg CMCI ETN|P|UCI|N|100|N|UCI -UCO|ProShares Ultra Bloomberg Crude Oil|P|UCO|Y|100|N|UCO -UCP|UCP, Inc. Class A Common Stock|N|UCP|N|100|N|UCP -UDN|PowerShares DB USD Index Bearish|P|UDN|Y|100|N|UDN -UDNT|PowerShares DB 3X Short US Dollar Index Futures ETN due October 31, 2020|P|UDNT|N|100|N|UDNT -UDOW|ProShares UltraPro Dow30|P|UDOW|Y|100|N|UDOW -UDR|UDR, Inc. Common Stock|N|UDR|N|100|N|UDR -UE|Urban Edge Properties Common Shares of Beneficial Interest|N|UE|N|100|N|UE -UEC|Uranium Energy Corp. Common Stock|A|UEC|N|100|N|UEC -UFI|Unifi, Inc. New Common Stock|N|UFI|N|100|N|UFI -UFS|Domtar Corporation (NEW) Common Stock|N|UFS|N|100|N|UFS -UGA|United States Gasoline Fund LP|P|UGA|Y|100|N|UGA -UGAZ|VelocityShares 3X Long Natural Gas ETN linked to the S&P GSCI Natural Gas Index Excess Return|P|UGAZ|N|100|N|UGAZ -UGE|ProShares Ultra Consumer Goods|P|UGE|Y|100|N|UGE -UGI|UGI Corporation Common Stock|N|UGI|N|100|N|UGI -UGL|ProShares Ultra Gold|P|UGL|Y|100|N|UGL -UGP|Ultrapar Participacoes S.A. (New) American Depositary Shares (Each representing one Common Share)|N|UGP|N|100|N|UGP -UHN|United States Diesel Heating Oil Fund LP|P|UHN|Y|100|N|UHN -UHS|Universal Health Services, Inc. Common Stock|N|UHS|N|100|N|UHS -UHT|Universal Health Realty Income Trust Common Stock|N|UHT|N|100|N|UHT -UIL|UIL Holdings Corporation Common Stock|N|UIL|N|100|N|UIL -UIS|Unisys Corporation New Common Stock|N|UIS|N|100|N|UIS -UJB|ProShares Ultra High Yield ETF|P|UJB|Y|100|N|UJB -UL|Unilever PLC Common Stock|N|UL|N|100|N|UL -ULE|ProShares Ultra Euro|P|ULE|Y|100|N|ULE -ULST|SPDR SSgA Ultra Short Term Bond ETF|P|ULST|Y|100|N|ULST -UMC|United Microelectronics Corporation (NEW) Common Stock|N|UMC|N|100|N|UMC -UMDD|UltraPro MidCap400|P|UMDD|Y|100|N|UMDD -UMH|UMH Properties, Inc. Common Stock|N|UMH|N|100|N|UMH -UMH$A|UMH Properties, Inc. 8.25% Series A Cumulative Redeemable Preferred Stock, Liquidation Preference $25 per share|N|UMHpA|N|100|N|UMH-A -UMX|ProShares Ultra MSCI Mexico Capped IMI|P|UMX|Y|100|N|UMX -UN|Unilever NV Common Stock|N|UN|N|100|N|UN -UNF|Unifirst Corporation Common Stock|N|UNF|N|100|N|UNF -UNG|United States Natural Gas Fund LP|P|UNG|Y|100|N|UNG -UNH|UnitedHealth Group Incorporated Common Stock|N|UNH|N|100|N|UNH -UNL|United States 12 Month Natural Gas Fund|P|UNL|Y|100|N|UNL -UNM|Unum Group Common Stock|N|UNM|N|100|N|UNM -UNP|Union Pacific Corporation Common Stock|N|UNP|N|100|N|UNP -UNT|Unit Corporation Common Stock|N|UNT|N|100|N|UNT -UPL|Ultra Petroleum Corp. Common Stock|N|UPL|N|100|N|UPL -UPRO|ProShares UltraPro S&P 500|P|UPRO|Y|100|N|UPRO -UPS|United Parcel Service, Inc. Common Stock|N|UPS|N|100|N|UPS -UPV|ProShares Ultra FTSE Europe|P|UPV|Y|100|N|UPV -UPW|ProShares Ultra Utilities|P|UPW|Y|100|N|UPW -UQM|UQM TECHNOLOGIES INC Common Stock|A|UQM|N|100|N|UQM -URA|Global X Uranium ETF|P|URA|Y|100|N|URA -URE|ProShares Ultra Real Estate|P|URE|Y|100|N|URE -URG|Ur Energy Inc Common Shares (Canada)|A|URG|N|100|N|URG -URI|United Rentals, Inc. Common Stock|N|URI|N|100|N|URI -URR|Market Vectors Double Long Euro ETN|P|URR|N|100|N|URR -URTH|Ishares MSCI World Index Fund|P|URTH|Y|100|N|URTH -URTY|ProShares UltraPro Russell2000|P|URTY|Y|100|N|URTY -URZ|Uranerz Energy Corporation Common Stock|A|URZ|N|100|N|URZ -USA|Liberty All-Star Equity Fund Common Stock|N|USA|N|100|N|USA -USAC|USA Compression Partners, LP Common Units Representing Limited Partner Interests|N|USAC|N|100|N|USAC -USAG|United States Agriculture Index Fund ETV|P|USAG|Y|100|N|USAG -USB|U.S. Bancorp Common Stock|N|USB|N|100|N|USB -USB$A|U.S. Bancorp Depositary Shares, Each representing a 1/100th interest in a share of Series A Non-CumulativePerpetual Pfd Stock|N|USBpA|N|100|N|USB-A -USB$H|U.S. Bancorp Depositary Shares repstg 1/1000th Pfd Ser B|N|USBpH|N|100|N|USB-H -USB$M|U.S. Bancorp Depositary Shares Representing 1/1000th Interest in a Shares Series F|N|USBpM|N|100|N|USB-M -USB$N|US Bancorp Del DEPOSITARY SH S G|N|USBpN|N|100|N|USB-N -USB$O|US Bancorp Del Dep Shs Repstg 1/1000th Perp Pfd Ser H|N|USBpO|N|100|N|USB-O -USCI|United States Commodity Index Fund ETV|P|USCI|Y|100|N|USCI -USD|ProShares Ultra Semiconductors|P|USD|Y|100|N|USD -USDP|USD Partners LP Common Units representing limited partner interest|N|USDP|N|100|N|USDP -USDU|WisdomTree Bloomberg U.S. Dollar Bullish Fund|P|USDU|Y|100|N|USDU -USFR|WisdomTree Bloomberg Floating Rate Treasury Fund|P|USFR|Y|100|N|USFR -USG|USG Corporation Common Stock|N|USG|N|100|N|USG -USL|United States 12 Month Oil|P|USL|Y|100|N|USL -USM|United States Cellular Corporation Common Stock|N|USM|N|100|N|USM -USMI|United States Metals Index Fund ETV|P|USMI|Y|100|N|USMI -USMV|iShares MSCI USA Minimum Volatility ETF|P|USMV|Y|100|N|USMV -USNA|USANA Health Sciences, Inc. Common Stock|N|USNA|N|100|N|USNA -USO|United States Oil Fund|P|USO|Y|100|N|USO -USPH|U.S. Physical Therapy, Inc. Common Stock|N|USPH|N|100|N|USPH -UST|ProShares Ultra 7-10 Year Treasury|P|UST|Y|100|N|UST -USV|E-TRACS USB Bloomberg Commodity Index Exchange Traded Notes E-TRACS UBS Bloomberg CMCI Silver ETN|P|USV|N|100|N|USV -UTF|Cohen & Steers Infrastructure Fund, Inc Common Stock|N|UTF|N|100|N|UTF -UTG|Reaves Utility Income Fund Common Shares of Beneficial Interest|A|UTG|N|100|N|UTG -UTI|Universal Technical Institute Inc Common Stock|N|UTI|N|100|N|UTI -UTL|UNITIL Corporation Common Stock|N|UTL|N|100|N|UTL -UTLT|Deutsche X-trackers Regulated Utilities ETF|P|UTLT|Y|100|N|UTLT -UTX|United Technologies Corporation Common Stock|N|UTX|N|100|N|UTX -UTX$A|United Technologies Corp Corp Unit|N|UTXpA|N|100|N|UTX-A -UUP|PowerShares DB USD Index Bullish|P|UUP|Y|100|N|UUP -UUPT|PowerShares DB 3X Long US Dollar Index Futures ETN due October 31, 2020|P|UUPT|N|100|N|UUPT -UUU|Universal Security Instruments, Inc. Common Stock|A|UUU|N|100|N|UUU -UUUU|Energy Fuels Inc Ordinary Shares (Canada)|A|UUUU|N|100|N|UUUU -UVE|UNIVERSAL INSURANCE HOLDINGS INC Common Stock|N|UVE|N|100|N|UVE -UVV|Universal Corporation Common Stock|N|UVV|N|100|N|UVV -UVXY|ProShares Trust Ultra VIX Short Term Futures ETF|P|UVXY|Y|100|N|UVXY -UWM|ProShares Ultra Russell2000|P|UWM|Y|100|N|UWM -UWN|Nevada Gold & Casinos, Inc. Common Stock|A|UWN|N|100|N|UWN -UWTI|VelocityShares 3X Long Crude ETN linked to the S&P GSCI Crude Oil Index Excess Return|P|UWTI|N|100|N|UWTI -UXI|ProShares Ultra Industrials|P|UXI|Y|100|N|UXI -UXJ|ProShares Ultra MSCI Pacific ex-Japan|P|UXJ|Y|100|N|UXJ -UYG|ProShares Ultra Financials|P|UYG|Y|100|N|UYG -UYM|ProShares Ultra Basic Materials|P|UYM|Y|100|N|UYM -UZA|United States Cellular Corporation 6.95% Senior Notes due 2060|N|UZA|N|100|N|UZA -UZB|United States Cellular Corporation 7.25% Senior Notes due 2063|N|UZB|N|100|N|UZB -V|Visa Inc.|N|V|N|100|N|V -VAC|Marriot Vacations Worldwide Corporation Common Stock|N|VAC|N|100|N|VAC -VAL|Valspar Corporation (The) Common Stock|N|VAL|N|100|N|VAL -VALE|VALE S.A. American Depositary Shares Each Representing one common share|N|VALE|N|100|N|VALE -VALE.P|VALE S.A.|N|VALE/P|N|100|N|VALE.P -VAR|Varian Medical Systems, Inc. Common Stock|N|VAR|N|100|N|VAR -VAW|Vanguard Materials ETF - DNQ|P|VAW|Y|100|N|VAW -VB|Vanguard Small-Cap ETF - DNQ|P|VB|Y|100|N|VB -VBF|Invesco Bond Fund Common Stock|N|VBF|N|100|N|VBF -VBK|Vanguard Small-Cap Growth ETF - DNQ|P|VBK|Y|100|N|VBK -VBR|Vanguard Small-Cap Value ETF - DNQ|P|VBR|Y|100|N|VBR -VC|Visteon Corporation Common Stock|N|VC|N|100|N|VC -VCF|Delaware Investments Colorado Municipal Income Fund, Inc Common Stock|A|VCF|N|100|N|VCF -VCO|Vina Concha Y Toro Common Stock|N|VCO|N|100|N|VCO -VCR|Vanguard Consumer Discretion ETF - DNQ|P|VCR|Y|100|N|VCR -VCRA|Vocera Communications, Inc. Common Stock|N|VCRA|N|100|N|VCRA -VCV|Invesco California Value Municipal Income Trust Common Stock|N|VCV|N|100|N|VCV -VDC|Vanguard Consumer Staples ETF - DNQ|P|VDC|Y|100|N|VDC -VDE|Vanguard Energy ETF|P|VDE|Y|100|N|VDE -VEA|Vanguard FTSE Developed Markets ETF|P|VEA|Y|100|N|VEA -VEC|Vectrus, Inc. Common Stock|N|VEC|N|100|N|VEC -VEEV|Veeva Systems Inc. Class A Common Stock|N|VEEV|N|100|N|VEEV -VEGA|AdvisorShares STAR Global Buy-Write ETF|P|VEGA|Y|100|N|VEGA -VEGI|iShares MSCI Agriculture Producers Fund|P|VEGI|Y|100|N|VEGI -VET|Vermilion Energy Inc. Common (Canada)|N|VET|N|100|N|VET -VEU|Vanguard FTSE All World Ex US ETF|P|VEU|Y|100|N|VEU -VFC|V.F. Corporation Common Stock|N|VFC|N|100|N|VFC -VFH|Vanguard Financials ETF - DNQ|P|VFH|Y|100|N|VFH -VFL|Delaware Investments National Municipal Income Fund Common Stock|A|VFL|N|100|N|VFL -VG|Vonage Holdings Corp. Common Stock|N|VG|N|100|N|VG -VGI|Virtus Global Multi-Sector Income Fund Common Shares of Beneficial Interest|N|VGI|N|100|N|VGI -VGK|Vanguard FTSEEuropean ETF|P|VGK|Y|100|N|VGK -VGM|Invesco Trust for Investment Grade Municipals Common Stock (DE)|N|VGM|N|100|N|VGM -VGR|Vector Group Ltd. Common Stock|N|VGR|N|100|N|VGR -VGT|Vanguard Information Tech ETF - DNQ|P|VGT|Y|100|N|VGT -VGZ|Vista Gold Corp Common Stock|A|VGZ|N|100|N|VGZ -VHC|VirnetX Holding Corp Common Stock|A|VHC|N|100|N|VHC -VHI|Valhi, Inc. Common Stock|N|VHI|N|100|N|VHI -VHT|Vanguard Health Care ETF - DNQ|P|VHT|Y|100|N|VHT -VIG|Vanguard Div Appreciation ETF - DNQ|P|VIG|Y|100|N|VIG -VII|Vicon Industries, Inc, Common Stock|A|VII|N|100|N|VII -VIOG|Vanguard S&P Small-Cap 600 Growth ETF|P|VIOG|Y|100|N|VIOG -VIOO|Vanguard S&P Small-Cap 600 ETF|P|VIOO|Y|100|N|VIOO -VIOV|Vanguard S&P Small-Cap 600 Value ETF|P|VIOV|Y|100|N|VIOV -VIPS|Vipshop Holdings Limited American Depositary Shares, each representing two ordinary shares|N|VIPS|N|100|N|VIPS -VIS|Vanguard Industrials ETF - DNQ|P|VIS|Y|100|N|VIS -VISI|Volt Information Sciences, Inc. Common Stock|A|VISI|N|100|N|VISI -VIV|Telefonica Brasil, S.A. ADS|N|VIV|N|100|N|VIV -VIXH|First Trust CBOE S&P 500 VIX Tail Hedge Fund|P|VIXH|Y|100|N|VIXH -VIXM|ProShares Trust VIX Mid-Term Futures ETF|P|VIXM|Y|100|N|VIXM -VIXY|ProShares Trust VIX Short-Term Futures ETF|P|VIXY|Y|100|N|VIXY -VJET|voxeljet AG American Depositary Shares, each representing one-fifth of an ordinary share/|N|VJET|N|100|N|VJET -VKI|Invesco Advantage Municipal Income Trust II Common Shares of Beneficial Interest (DE)|A|VKI|N|100|N|VKI -VKQ|Invesco Municipal Trust Common Stock|N|VKQ|N|100|N|VKQ -VLO|Valero Energy Corporation Common Stock|N|VLO|N|100|N|VLO -VLP|Valero Energy Partners LP Common Units representing limited partner interests|N|VLP|N|100|N|VLP -VLRS|Controladora Vuela Compania de Aviacion, S.A.B. de C.V. American Depositary Shares, each representing ten (10) Ordinary Participation Certificates|N|VLRS|N|100|N|VLRS -VLT|Invesco High Income Trust II|N|VLT|N|100|N|VLT -VLU|SPDR S&P 1500 Value Tilt ETF|P|VLU|Y|100|N|VLU -VLUE|iShares MSCI USA Value Factor|P|VLUE|Y|100|N|VLUE -VLY|Valley National Bancorp Common Stock|N|VLY|N|100|N|VLY -VLY.W|Valley National Bancorp Warrants Expiring 11/14/2018|N|VLY/WS|N|100|N|VLY+ -VMC|Vulcan Materials Company (Holding Company) Common Stock|N|VMC|N|100|N|VMC -VMEM|Violin Memory, Inc. Common Stock|N|VMEM|N|100|N|VMEM -VMI|Valmont Industries, Inc. Common Stock|N|VMI|N|100|N|VMI -VMM|Delaware Investments Minnesota Municipal Income Fund II, Inc. Common Stock|A|VMM|N|100|N|VMM -VMO|Invesco Municipal Opportunity Trust Common Stock|N|VMO|N|100|N|VMO -VMW|Vmware, Inc. Common stock, Class A|N|VMW|N|100|N|VMW -VNCE|Vince Holding Corp. Common Stock|N|VNCE|N|100|N|VNCE -VNM|Market Vectors Vietnam ETF|P|VNM|Y|100|N|VNM -VNO|Vornado Realty Trust Common Stock|N|VNO|N|100|N|VNO -VNO$G|Vornado Realty Trust Preferred Series G|N|VNOpG|N|100|N|VNO-G -VNO$I|Vornado Realty Trust Preferred Series I|N|VNOpI|N|100|N|VNO-I -VNO$J|Vornado Realty Trust PFD CUMULATIVE RED SER J %|N|VNOpJ|N|100|N|VNO-J -VNO$K|Vornado Realty Trust Pfd S K|N|VNOpK|N|100|N|VNO-K -VNO$L|Vornado Realty Trust Pfd Ser L %|N|VNOpL|N|100|N|VNO-L -VNQ|Vanguard REIT ETF - DNQ|P|VNQ|Y|100|N|VNQ -VNTV|Vantiv, Inc. Class A Common Stock|N|VNTV|N|100|N|VNTV -VO|Vanguard Mid-Cap ETF - DNQ|P|VO|Y|100|N|VO -VOC|VOC Energy Trust Units of Beneficial Interest|N|VOC|N|100|N|VOC -VOE|Vanguard Mid-Cap Value ETF - DNQ|P|VOE|Y|100|N|VOE -VOO|Vanguard S&P 500 ETF|P|VOO|Y|100|N|VOO -VOOG|Vanguard S&P 500 Growth ETF|P|VOOG|Y|100|N|VOOG -VOOV|Vanguard S&P 500 Value ETF|P|VOOV|Y|100|N|VOOV -VOT|Vanguard Mid-Cap Growth ETF - DNQ|P|VOT|Y|100|N|VOT -VOX|Vanguard Telecom ETF - DNQ|P|VOX|Y|100|N|VOX -VOYA|Voya Financial, Inc. Common Stock|N|VOYA|N|100|N|VOYA -VPG|Vishay Precision Group, Inc. Common Stock|N|VPG|N|100|N|VPG -VPL|Vanguard FTSE Pacific ETF|P|VPL|Y|100|N|VPL -VPU|Vanguard Utilities ETF - DNQ|P|VPU|Y|100|N|VPU -VPV|Invesco Pennsylvania Value Municipal Income Trust Common Stock (DE)|N|VPV|N|100|N|VPV -VQT|Barclays ETN S&P VEQTOR ETN|P|VQT|N|100|N|VQT -VQTS|ETRACS S&P 500 VEQTOR Switch Index ETN due December 2, 2044|P|VQTS|N|100|N|VQTS -VR|Validus Holdings, Ltd. Common Shares|N|VR|N|100|N|VR -VRD|SPDR S&P VRDO Municipal Bond ETF|P|VRD|Y|100|N|VRD -VRP|PowerShares Variable Rate Preferred Portfolio|P|VRP|Y|100|N|VRP -VRS|Verso Corporation Common Stock|N|VRS|N|100|N|VRS -VRTV|Veritiv Corporation Common Stock|N|VRTV|N|100|N|VRTV -VRX|Valeant Pharmaceuticals International, Inc.|N|VRX|N|100|N|VRX -VSH|Vishay Intertechnology, Inc. Common Stock|N|VSH|N|100|N|VSH -VSI|Vitamin Shoppe, Inc Common Stock|N|VSI|N|100|N|VSI -VSLR|Vivint Solar, Inc. Common Stock|N|VSLR|N|100|N|VSLR -VSPY|Direxion S&P 500 Volatility Response Shares|P|VSPY|Y|100|N|VSPY -VSR|Versar, Inc. Common Stock|A|VSR|N|100|N|VSR -VSS|Vanguard FTSE All-Wld ex-US SmCp Idx ETF|P|VSS|Y|100|N|VSS -VT|Vanguard Total World Stock Index ETF|P|VT|Y|100|N|VT -VTA|Invesco Credit Opportunities Fund Common Shares of Beneficial Interest|N|VTA|N|100|N|VTA -VTG|Vantage Drilling Company|A|VTG|N|100|N|VTG -VTI|Vanguard Total Stock Market ETF|P|VTI|Y|100|N|VTI -VTN|Invesco Trust for Investment Grade New York Municipals Common Stock|N|VTN|N|100|N|VTN -VTR|Ventas, Inc. Common Stock|N|VTR|N|100|N|VTR -VTRB|Ventas Realty, Limited Partnership // Ventas Capital Corporation 5.45% Senior Notes due 2043|N|VTRB|N|100|N|VTRB -VTTI|VTTI Energy Partners LP Common Units representing limited partner interests|N|VTTI|N|100|N|VTTI -VTV|Vanguard Value ETF - DNQ|P|VTV|Y|100|N|VTV -VUG|Vanguard Growth ETF - DNQ|P|VUG|Y|100|N|VUG -VV|Vanguard Large-Cap ETF - DNQ|P|VV|Y|100|N|VV -VVC|Vectren Corporation Common Stock|N|VVC|N|100|N|VVC -VVI|Viad Corp Common Stock|N|VVI|N|100|N|VVI -VVR|Invesco Senior Income Trust Common Stock (DE)|N|VVR|N|100|N|VVR -VWO|Vanguard FTSE Emerging Markets ETF|P|VWO|Y|100|N|VWO -VXF|Vanguard Extended Market ETF - DNQ|P|VXF|Y|100|N|VXF -VXX|iPath S&P 500 VIX Short Term Futures TM ETN|P|VXX|N|100|N|VXX -VXZ|iPath S&P 500 VIX Mid-Term Futures ETN|P|VXZ|N|100|N|VXZ -VYM|Vanguard High Dividend Yield ETF - DNQ|P|VYM|Y|100|N|VYM -VZ|Verizon Communications Inc. Common Stock|N|VZ|N|100|N|VZ -VZA|Verizon Communications Inc. 5.90% Notes due 2054|N|VZA|N|100|N|VZA -W|Wayfair Inc. Class A Common Stock|N|W|N|100|N|W -WAB|Westinghouse Air Brake Technologies Corporation Common Stock|N|WAB|N|100|N|WAB -WAC|Walter Investment Management Corp. Common Stock|N|WAC|N|100|N|WAC -WAGE|WageWorks, Inc. Common Stock $0.001 par value|N|WAGE|N|100|N|WAGE -WAIR|Wesco Aircraft Holdings, Inc. Common Stock|N|WAIR|N|100|N|WAIR -WAL|Western Alliance Bancorporation Common Stock (DE)|N|WAL|N|100|N|WAL -WAT|Waters Corporation Common Stock|N|WAT|N|100|N|WAT -WBAI|500.com Limited American Depositary Shares, each representing 10 Class A shares|N|WBAI|N|100|N|WBAI -WBC|Wabco Holdings Inc. Common Stock|N|WBC|N|100|N|WBC -WBIA|WBI SMID Tactical Growth Shares|P|WBIA|Y|100|N|WBIA -WBIB|WBI SMID Tactical Value Shares|P|WBIB|Y|100|N|WBIB -WBIC|WBI SMID Tactical Yield Shares|P|WBIC|Y|100|N|WBIC -WBID|WBI SMID Tactical Select Shares|P|WBID|Y|100|N|WBID -WBIE|WBI Large Cap Tactical Growth Shares|P|WBIE|Y|100|N|WBIE -WBIF|WBI Large Cap Tactical Value Shares|P|WBIF|Y|100|N|WBIF -WBIG|WBI Large Cap Tactical Yield Shares|P|WBIG|Y|100|N|WBIG -WBIH|WBI Tactical High Income Shares|P|WBIH|Y|100|N|WBIH -WBII|WBI Tactical Income Shares|P|WBII|Y|100|N|WBII -WBIL|WBI Large Cap Tactical Select Shares|P|WBIL|Y|100|N|WBIL -WBK|Westpac Banking Corporation Common Stock|N|WBK|N|100|N|WBK -WBS|Webster Financial Corporation Common Stock|N|WBS|N|100|N|WBS -WBS$E|Webster Financial Corporation Dep Shs Repstg 1/1000th Perp Pfd Ser E|N|WBSpE|N|100|N|WBS-E -WBS.W|Webster Financial Corporation Warrant (expiring November 21, 2018)|N|WBS/WS|N|100|N|WBS+ -WCC|WESCO International, Inc. Common Stock|N|WCC|N|100|N|WCC -WCG|Wellcare Health Plans, Inc. Common Stock|N|WCG|N|100|N|WCG -WCIC|WCI Communities, Inc. Common Stock|N|WCIC|N|100|N|WCIC -WCN|Waste Connections, Inc. Common Stock|N|WCN|N|100|N|WCN -WD|Walker & Dunlop, Inc Common Stock|N|WD|N|100|N|WD -WDAY|Workday, Inc. Common Stock|N|WDAY|N|100|N|WDAY -WDIV|SPDR S&P Global Dividend|P|WDIV|Y|100|N|WDIV -WDR|Waddell & Reed Financial, Inc. Common Stock|N|WDR|N|100|N|WDR -WDTI|WisdomTree Managed Futures Strategy Fund|P|WDTI|Y|100|N|WDTI -WEA|Western Asset Bond Fund Share of Beneficial Interest|N|WEA|N|100|N|WEA -WEAT|Teucrium Wheat Fund ETV|P|WEAT|Y|100|N|WEAT -WEC|Wisconsin Energy Corporation Common Stock|N|WEC|N|100|N|WEC -WEET|iPath Pure Beta Grains ETN|P|WEET|N|100|N|WEET -WES|Western Gas Partners, LP Limited Partner Interests|N|WES|N|100|N|WES -WEX|WEX Inc. common stock|N|WEX|N|100|N|WEX -WF|Woori Bank American Depositary Shares (Each representing 3 shares of Common Stock)|N|WF|N|100|N|WF -WFC|Wells Fargo & Company Common Stock|N|WFC|N|100|N|WFC -WFC$J|Wells Fargo & Company Wells Fargo & Company 8.00% Non-Cumulative Perpetual Class A Preferred Stock, Series J|N|WFCpJ|N|100|N|WFC-J -WFC$L|Wells Fargo & Company Wells Fargo & Company 7.50% Non-Cumulative Perpetual Convertible Class A Preferred Stock, Series L|N|WFCpL|N|100|N|WFC-L -WFC$N|Wells Fargo & Company Dep Shs Repstg 1/1000th Perp Pfd Cl A Ser N|N|WFCpN|N|100|N|WFC-N -WFC$O|Wells Fargo & Company Depositary Shares Representing 1/1000th Perpetual Preferred Class A Series O|N|WFCpO|N|100|N|WFC-O -WFC$P|Wells Fargo & Company Dep Shs Repstg 1/1000th Int Non Cum Perp Cl A Pfd (Ser P)|N|WFCpP|N|100|N|WFC-P -WFC$Q|Wells Fargo & Company Depositary Shares Representing 1/1000th Interest Perpetual Preferred Class A Series Q Fixed to Floating|N|WFCpQ|N|100|N|WFC-Q -WFC$R|Wells Fargo & Company Dep Shs Repstg 1/1000th Int Perp Pfd Cl A (Ser R Fixed To Flltg)|N|WFCpR|N|100|N|WFC-R -WFC$T|Wells Fargo & Company New Depository Share Representing 1/1000th Perp. Preferred Class A Series T|N|WFCpT|N|100|N|WFC-T -WFC.W|Wells Fargo & Company Warrants expiring October 28, 2018|N|WFC/WS|N|100|N|WFC+ -WFE$A|Wells Fargo & Company Cumulative Perpetual Preferred Stock, Series A, Liquidation Preference $25 per share|N|WFEpA|N|100|N|WFE-A -WFT|Weatherford International plc (Ireland)|N|WFT|N|100|N|WFT -WG|Willbros Group, Inc. (DE) Common Stock|N|WG|N|100|N|WG -WGA|AG&E Holdings, Inc. Common Stock|A|WGA|N|100|N|WGA -WGL|WGL Holdings IncCommon Stock|N|WGL|N|100|N|WGL -WGO|Winnebago Industries, Inc. Common Stock|N|WGO|N|100|N|WGO -WGP|Western Gas Equity Partners, LP Common Units Representing Limited Partner Interests|N|WGP|N|100|N|WGP -WHG|Westwood Holdings Group Inc Common Stock|N|WHG|N|100|N|WHG -WHR|Whirlpool Corporation Common Stock|N|WHR|N|100|N|WHR -WHX|Whiting USA Trust I Whiting USA Trust I|N|WHX|N|100|N|WHX -WHZ|Whiting USA Trust II Units of Beneficial Interest|N|WHZ|N|100|N|WHZ -WIA|Western Asset/Claymore Inflation-Linked Securities & Income Fund Common Shares of Beneficial Interest|N|WIA|N|100|N|WIA -WIL|Barclays PLC Barclays Women in Leadership ETN|P|WIL|N|100|N|WIL -WIP|SPDR DB International Government Inflation-Protected Bond ETF|P|WIP|Y|100|N|WIP -WIT|Wipro Limited Common Stock|N|WIT|N|100|N|WIT -WITE|ETFS White Metals Basket Trust|P|WITE|Y|100|N|WITE -WIW|Western Asset/Claymore Inflation-Linked Opportunities & Income Fund Common Shares of Beneficial Interest|N|WIW|N|100|N|WIW -WK|Workiva Inc. Class A Common Stock|N|WK|N|100|N|WK -WLH|Lyon William Homes Common Stock (Class A)|N|WLH|N|100|N|WLH -WLK|Westlake Chemical Corporation Common Stock|N|WLK|N|100|N|WLK -WLKP|Westlake Chemical Partners LP Common Units representing limited partner interests|N|WLKP|N|100|N|WLKP -WLL|Whiting Petroleum Corporation Common Stock|N|WLL|N|100|N|WLL -WLT|Walter Energy, Inc. Common Stock|N|WLT|N|100|N|WLT -WM|Waste Management, Inc. Common Stock|N|WM|N|100|N|WM -WMB|Williams Companies, Inc. (The) Common Stock|N|WMB|N|100|N|WMB -WMC|Western Asset Mortgage Capital Corporation Common Stock|N|WMC|N|100|N|WMC -WMCR|Wilshire Micro-Cap ETF (based on the Wilshire US Micro-Cap Index)|P|WMCR|Y|100|N|WMCR -WMK|Weis Markets, Inc. Common Stock|N|WMK|N|100|N|WMK -WMLP|Westmoreland Resource Partners, LP Common Units representing Limited Partner Interests|N|WMLP|N|100|N|WMLP -WMS|Advanced Drainage Systems, Inc. Common Stock|N|WMS|N|100|N|WMS -WMT|Wal-Mart Stores, Inc. Common Stock|N|WMT|N|100|N|WMT -WMW|DEUTSCHE BANK AKTIENGESELLSCHAFT ELEMENTS Linked to the Morningstar Wide Moat Focus Total Return Index due October 24, 2022|P|WMW|N|100|N|WMW -WNC|Wabash National Corporation Common Stock|N|WNC|N|100|N|WNC -WNR|Western Refining Inc. Western Refining, Inc. Common Stock|N|WNR|N|100|N|WNR -WNRL|Western Refining Logistics, LP Common Units representing limited partner interests|N|WNRL|N|100|N|WNRL -WNS|WNS (Holdings) Limited Sponsored ADR (Jersey)|N|WNS|N|100|N|WNS -WOR|Worthington Industries, Inc. Common Stock|N|WOR|N|100|N|WOR -WPC|W.P. Carey Inc. REIT|N|WPC|N|100|N|WPC -WPG|WP Glimcher Inc. Common Stock|N|WPG|N|100|N|WPG -WPG$G|Washington Prime Group Inc. 8.125% Series G Cumulative Redeemable Preferred SBI|N|WPGpG|N|100|N|WPG-G -WPG$H|Washington Prime Group Inc. 7.5% Series H Cumulative Redeemable Preferred SBI|N|WPGpH|N|100|N|WPG-H -WPG$I|Washington Prime Group Inc. 6.875% Series I Cumulative Redeemable Preferred SBI|N|WPGpI|N|100|N|WPG-I -WPP|Wausau Paper Corp. Common Stock|N|WPP|N|100|N|WPP -WPS|iShares International Developed Property ETF|P|WPS|Y|100|N|WPS -WPT|World Point Terminals, LP Common Units representing Limited Partner Interests|N|WPT|N|100|N|WPT -WPX|WPX Energy, Inc. Common Stock|N|WPX|N|100|N|WPX -WPZ|Williams Partners L.P. Common Units|N|WPZ|N|100|N|WPZ -WR|Westar Energy, Inc. Common Stock|N|WR|N|100|N|WR -WRB|W.R. Berkley Corporation Common Stock|N|WRB|N|100|N|WRB -WRB$B|W.R. Berkley Corporation 5.625% Subordinated Debentures due 2053|N|WRBpB|N|100|N|WRB-B -WRE|Washington Real Estate Investment Trust Common Stock|N|WRE|N|100|N|WRE -WREI|Wilshire US REIT|P|WREI|Y|100|N|WREI -WRI|Weingarten Realty Investors Common Stock|N|WRI|N|100|N|WRI -WRI$F|Weingarten Realty Investors Depository Shares Restg 1/100 Pfd Ser F|N|WRIpF|N|100|N|WRI-F -WRN|Western Copper and Gold Corporation Common Stock|A|WRN|N|100|N|WRN -WRT|Winthrop Realty Trust 7.75% Senior Notes due 2022|N|WRT|N|100|N|WRT -WSH|Willis Group Holdings Public Limited (Ireland) Common Stock|N|WSH|N|100|N|WSH -WSM|Williams-Sonoma, Inc. Common Stock (DE)|N|WSM|N|100|N|WSM -WSO|Watsco, Inc. Common Stock|N|WSO|N|100|N|WSO -WSO.B|Watsco, Inc. Class B Common Stock|N|WSO/B|N|100|N|WSO.B -WSR|Whitestone REIT Common Shares|N|WSR|N|100|N|WSR -WST|West Pharmaceutical Services, Inc. Common Stock|N|WST|N|100|N|WST -WTI|W&T Offshore, Inc. Common Stock|N|WTI|N|100|N|WTI -WTM|White Mountains Insurance Group, Ltd. Common Stock|N|WTM|N|100|N|WTM -WTR|Aqua America, Inc. Common Stock|N|WTR|N|100|N|WTR -WTS|Watts Water Technologies, Inc. Class A Common Stock|N|WTS|N|100|N|WTS -WTT|Wireless Telecom Group, Inc. Common Stock|A|WTT|N|100|N|WTT -WTW|Weight Watchers International Inc Weight Watchers International Inc|N|WTW|N|100|N|WTW -WU|Western Union Company (The) Common Stock|N|WU|N|100|N|WU -WUBA|58.com Inc. American Depositary Shares, each representing 2 Class A Ordinary Shares|N|WUBA|N|100|N|WUBA -WWAV|Whitewave Foods Company (The) Common Stock|N|WWAV|N|100|N|WWAV -WWE|World Wrestling Entertainment, Inc. Class A Common Stock|N|WWE|N|100|N|WWE -WWW|Wolverine World Wide, Inc. Common Stock|N|WWW|N|100|N|WWW -WX|WuXi PharmaTech (Cayman) Inc. American Depositary Shares|N|WX|N|100|N|WX -WY|Weyerhaeuser Company Common Stock|N|WY|N|100|N|WY -WY$A|Weyerhaeuser Company Pref Conv Ser A|N|WYpA|N|100|N|WY-A -WYDE|ProShares CDS Short North American HY Credit ETF|Z|WYDE|Y|100|N|WYDE -WYN|Wyndham Worldwide Corp Common Stock|N|WYN|N|100|N|WYN -WYY|WidePoint Corporation Common Stock|A|WYY|N|100|N|WYY -X|United States Steel Corporation Common Stock|N|X|N|100|N|X -XAR|SPDR S&P Aerospace & Defense ETF|P|XAR|Y|100|N|XAR -XBI|SPDR Series Trust SPDR S&P Biotech ETF|P|XBI|Y|100|N|XBI -XCO|EXCO Resources, Inc. Exco Resources, Inc. Common Stock|N|XCO|N|100|N|XCO -XEC|Cimarex Energy Co Common Stock|N|XEC|N|100|N|XEC -XEL|Xcel Energy Inc. Common Stock|N|XEL|N|100|N|XEL -XES|SPDR Series Trust SPDR S&P Oil & Gas Equipment & Services ETF|P|XES|Y|100|N|XES -XHB|SPDR Series Trust SPDR Homebuilders ETF|P|XHB|Y|100|N|XHB -XHE|SPDR S&P Health Care Equipment|P|XHE|Y|100|N|XHE -XHS|SPDR S&P Health Care Services ETF|P|XHS|Y|100|N|XHS -XIN|Xinyuan Real Estate Co Ltd American Depositary Shares|N|XIN|N|100|N|XIN -XKE|Lehman ABS Corporation Corporate-Backed Trust Certificates: 7.75% Toys-R-Us Debenture Backed Series 2001-31|N|XKE|N|100|N|XKE -XL|XL Group plc|N|XL|N|100|N|XL -XLB|Materials Select Sector SPDR|P|XLB|Y|100|N|XLB -XLE|SPDR Select Sector Fund - Energy Select Sector|P|XLE|Y|100|N|XLE -XLF|SPDR Select Sector Fund - Financial|P|XLF|Y|100|N|XLF -XLG|Guggenheim Russell Top 50 Mega Cap ETF|P|XLG|Y|100|N|XLG -XLI|SPDR Select Sector Fund - Industrial|P|XLI|Y|100|N|XLI -XLK|SPDR Select Sector Fund - Technology|P|XLK|Y|100|N|XLK -XLP|SPDR Select Sector Fund - Consumer Staples|P|XLP|Y|100|N|XLP -XLS|Exelis Inc. Common Stock New|N|XLS|N|100|N|XLS -XLU|SPDR Select Sector Fund - Utilities|P|XLU|Y|100|N|XLU -XLV|SPDR Select Sector Fund - Health Care|P|XLV|Y|100|N|XLV -XLY|SPDR Select Sector Fund - Consumer Discretionary|P|XLY|Y|100|N|XLY -XME|SPDR S&P Metals & Mining ETF|P|XME|Y|100|N|XME -XMLV|PowerShares S&P MidCap Low Volatility Portfolio|P|XMLV|Y|100|N|XMLV -XMPT|Market Vectors CEF Municipal Income ETF|P|XMPT|Y|100|N|XMPT -XNY|China Xiniya Fashion Limited American Depositary Shares, each representing four ordinary shares|N|XNY|N|100|N|XNY -XOM|Exxon Mobil Corporation Common Stock|N|XOM|N|100|N|XOM -XON|Intrexon Corporation Common Stock|N|XON|N|100|N|XON -XOP|SPDR S&P Oil & Gas Explor & Product|P|XOP|Y|100|N|XOP -XOVR|SPDR BofA Merrill Lynch Crossover Corporate Bond ETF|P|XOVR|Y|100|N|XOVR -XOXO|XO Group, Inc. Common Stock|N|XOXO|N|100|N|XOXO -XPH|SPDR S&P Pharmaceuticals ETF|P|XPH|Y|100|N|XPH -XPL|Solitario Exploration & Royalty Corp Common Stock|A|XPL|N|100|N|XPL -XPO|XPO Logistics, Inc.|N|XPO|N|100|N|XPO -XPP|ProShares Ultra FTSE China 50|P|XPP|Y|100|N|XPP -XRA|Exeter Resource Corporation Ordinary Shares (Canada)|A|XRA|N|100|N|XRA -XRM|Xerium Technologies, Inc. New Common Stock|N|XRM|N|100|N|XRM -XRS|TAL Education Group American Depositary Shares, each representing 2 Class A common shares|N|XRS|N|100|N|XRS -XRT|SPDR S&P Retail ETF|P|XRT|Y|100|N|XRT -XRX|Xerox Corporation Common Stock|N|XRX|N|100|N|XRX -XSD|SPDR S&P Semiconductor ETF|P|XSD|Y|100|N|XSD -XSLV|PowerShares S&P SmallCap Low Volatility Portfolio|P|XSLV|Y|100|N|XSLV -XSOE|WisdomTree Emerging Markets Ex-State Owned Enterprises Fund|P|XSOE|Y|100|N|XSOE -XSW|SPDR S&P Software & Services ETF|P|XSW|Y|100|N|XSW -XTL|SPDR S&P Telecom ETF|P|XTL|Y|100|N|XTL -XTN|SPDR S&P Transportation ETF|P|XTN|Y|100|N|XTN -XUE|Xueda Education Group American Depositary Shares, each representing two Ordinary Shares, $0.0001 par value|N|XUE|N|100|N|XUE -XVIX|UBS AG Exchange Traded Access Securities (E-TRACS) Daily Long Short VIX ETN due November 30, 2040|P|XVIX|N|100|N|XVIX -XVZ|iPath S&P 500 Dynamic VIX ETN|P|XVZ|N|100|N|XVZ -XXII|22nd Century Group, Inc. Common Stock|A|XXII|N|100|N|XXII -XXV|iPath Inverse S&P 500 VIX Short-Term Futures ETN|P|XXV|N|100|N|XXV -XYL|Xylem Inc. Common Stock New|N|XYL|N|100|N|XYL -Y|Alleghany Corporation Common Stock|N|Y|N|100|N|Y -YANG|Direxion Daily FTSE China Bear 3x Shares|P|YANG|Y|100|N|YANG -YAO|Guggenheim China All-Cap ETF|P|YAO|Y|100|N|YAO -YCL|ProShares Ultra Yen|P|YCL|Y|100|N|YCL -YCS|ProShares UltraShort Yen New|P|YCS|Y|100|N|YCS -YDKN|Yadkin Financial Corporation Common Stock|N|YDKN|N|100|N|YDKN -YELP|Yelp Inc. Class A Common Stock|N|YELP|N|100|N|YELP -YGE|Yingli Green Energy Holding Company Limited ADR|N|YGE|N|100|N|YGE -YGRO|Royal Bank of Canada Exchange Traded Notes due July 19, 2034 Linked to the Yorkville MLP Distribution Growth Leaders Liquid PR Index|P|YGRO|N|100|N|YGRO -YINN|Direxion Daily FTSE China Bull 3x Shares|P|YINN|Y|100|N|YINN -YMLI|Yorkville High Income Infrastructure MLP|P|YMLI|Y|100|N|YMLI -YMLP|Yorkville High Income MLP Exchange Traded Concepts|P|YMLP|Y|100|N|YMLP -YOKU|Youku Tudou Inc. American Depositary Shares, each representing 18 Class A ordinary shares.|N|YOKU|N|100|N|YOKU -YPF|YPF Sociedad Anonima Common Stock|N|YPF|N|100|N|YPF -YUM|Yum! Brands, Inc.|N|YUM|N|100|N|YUM -YUMA|Yuma Energy, Inc.|A|YUMA|N|100|N|YUMA -YUMA$A|Yuma Energy, Inc. 9.25% Series A Cumulative Redeemable Preferred Stock|A|YUMApA|N|100|N|YUMA-A -YUME|YuMe, Inc. Common Stock|N|YUME|N|100|N|YUME -YXI|ProShares Short FTSE China 50|P|YXI|Y|100|N|YXI -YYY|YieldShares High Income ETF|P|YYY|Y|100|N|YYY -YZC|Yanzhou Coal Mining Company Limited Common Stock|N|YZC|N|100|N|YZC -ZA|Zuoan Fashion Limited American Depositary Shares|N|ZA|N|100|N|ZA -ZAYO|Zayo Group Holdings, Inc. Common Stock|N|ZAYO|N|100|N|ZAYO -ZB$A|Zions Bancorporation Depositary Shares (Each representing 1/40th Interest in a Share of Series A Floating-Rate Non-Cumulative Perpetual Preferred Stock)|N|ZBpA|N|100|N|ZB-A -ZB$F|Zions Bancorporation Dep shs Repstg 1/40th Int Sh Ser F Fxd Rate Non Cum (Perp Pfd Stk)|N|ZBpF|N|100|N|ZB-F -ZB$G|Zions Bancorporation Dep Shs Repstg 1/40th Perp Pfd Ser G|N|ZBpG|N|100|N|ZB-G -ZB$H|Zions Bancorporation Dep Shs Repstg 1/40th Int Sh Ser H Perp Pfd Stk|N|ZBpH|N|100|N|ZB-H -ZBB|ZBB Energy Corporation Common Stock|A|ZBB|N|100|N|ZBB -ZBK|Zions Bancorporation 6.95% Fixed-to-Floating Rate Subordinated Notes due September 15, 2028|N|ZBK|N|100|N|ZBK -ZBZX|BATS BZX Exchange test issue|Z|ZBZX|N|100|Y|ZBZX -ZEN|Zendesk, Inc. Common Stock|N|ZEN|N|100|N|ZEN -ZEP|Zep Inc. Common Stock|N|ZEP|N|100|N|ZEP -ZF|Zweig Fund, Inc. (The) Common Stock|N|ZF|N|100|N|ZF -ZFC|ZAIS Financial Corp. Common Stock|N|ZFC|N|100|N|ZFC -ZLRG|ETFS Zacks Earnings Large-Cap U.S. Index Fund|P|ZLRG|Y|100|N|ZLRG -ZMH|Zimmer Holdings, Inc. Common Stock|N|ZMH|N|100|N|ZMH -ZMLP|Direxion Zacks MLP High Income Shares|P|ZMLP|Y|100|N|ZMLP -ZNH|China Southern Airlines Company Limited Common Stock|N|ZNH|N|100|N|ZNH -ZOES|Zoe's Kitchen, Inc. Common Stock|N|ZOES|N|100|N|ZOES -ZPIN|Zhaopin Limited American Depositary Shares, each reprenting two Ordinary Shares|N|ZPIN|N|100|N|ZPIN -ZQK|Quiksilver, Inc. Common Stock|N|ZQK|N|100|N|ZQK -ZROZ|PIMCO 25 Year Zero Coupon U.S. Treasury Index Exchange-Traded Fund|P|ZROZ|Y|100|N|ZROZ -ZSL|ProShares UltraShort Silver|P|ZSL|Y|100|N|ZSL -ZSML|ETFS Zacks Earnings Small-Cap U.S. Index Fund|P|ZSML|Y|100|N|ZSML -ZTEST|BATS BZX Exchange Common Stock (test issue)|Z|ZTEST|N|100|Y|ZTEST -ZTR|Zweig Total Return Fund, Inc. (The) Common Stock|N|ZTR|N|100|N|ZTR -ZTS|Zoetis Inc. Class A Common Stock|N|ZTS|N|100|N|ZTS -ZVV|NYSE ARCA test stock|P|ZVV|N|100|Y|ZVV +A|Agilent Technologies, Inc. Common Stock|N|A|N|100|N|A +AA|Alcoa Inc. Common Stock|N|AA|N|100|N|AA +AA$|Alcoa Inc. $3.75 Preferred Stock|A|AAp|N|100|N|AA- +AA$B|Alcoa Inc. Depository Shares Representing 1/10th Preferred Convertilble Class B Series 1|N|AApB|N|100|N|AA-B +AAC|AAC Holdings, Inc. Common Stock|N|AAC|N|100|N|AAC +AADR|WCM BNY Mellon Focused Growth ADR ETF|P|AADR|Y|100|N|AADR +AAMC|Altisource Asset Management Corp Com|A|AAMC|N|100|N|AAMC +AAN|Aaron's, Inc. Common Stock|N|AAN|N|100|N|AAN +AAP|Advance Auto Parts Inc Advance Auto Parts Inc W/I|N|AAP|N|100|N|AAP +AAT|American Assets Trust, Inc. Common Stock|N|AAT|N|100|N|AAT +AAU|Almaden Minerals, Ltd. Ordinary Shares (Canada)|A|AAU|N|100|N|AAU +AAV|Advantage Oil & Gas Ltd Ordinary Shares|N|AAV|N|100|N|AAV +AB|Allianceberstein Holding L.P. Units|N|AB|N|100|N|AB +ABB|ABB Ltd Common Stock|N|ABB|N|100|N|ABB +ABBV|AbbVie Inc. Common Stock|N|ABBV|N|100|N|ABBV +ABC|AmerisourceBergen Corporation (Holding Co) Common Stock|N|ABC|N|100|N|ABC +ABEV|Ambev S.A. American Depositary Shares (Each representing 1 Common Share)|N|ABEV|N|100|N|ABEV +ABG|Asbury Automotive Group Inc Common Stock|N|ABG|N|100|N|ABG +ABM|ABM Industries Incorporated Common Stock|N|ABM|N|100|N|ABM +ABR|Arbor Realty Trust Common Stock|N|ABR|N|100|N|ABR +ABR$A|Arbor Realty Trust Preferred Series A|N|ABRpA|N|100|N|ABR-A +ABR$B|Arbor Realty Trust Cumulative Redeemable Preferred Series B|N|ABRpB|N|100|N|ABR-B +ABR$C|Arbor Realty Trust Cumulative Redeemable Preferred Series C|N|ABRpC|N|100|N|ABR-C +ABRN|Arbor Realty Trust 7.375% Senior Notes due 2021|N|ABRN|N|100|N|ABRN +ABT|Abbott Laboratories Common Stock|N|ABT|N|100|N|ABT +ABX|Barrick Gold Corporation Common Stock|N|ABX|N|100|N|ABX +ACC|American Campus Communities Inc Common Stock|N|ACC|N|100|N|ACC +ACCO|Acco Brands Corporation Common Stock|N|ACCO|N|100|N|ACCO +ACE|Ace Limited Common Stock|N|ACE|N|100|N|ACE +ACG|Alliancebernstein Income Fund|N|ACG|N|100|N|ACG +ACH|Aluminum Corporation of China Limited American Depositary Shares|N|ACH|N|100|N|ACH +ACI|Arch Coal, Inc. Common Stock|N|ACI|N|100|N|ACI +ACIM|SPDR MSCI ACWI IMI ETF|P|ACIM|Y|100|N|ACIM +ACM|AECOM Common Stock|N|ACM|N|100|N|ACM +ACMP|Access Midstream Partners, L.P. Common Units Representing Limited Partner Interests|N|ACMP|N|100|N|ACMP +ACN|Accenture plc. Class A Ordinary Shares (Ireland)|N|ACN|N|100|N|ACN +ACP|Avenue Income Credit Strategies Fund Common Shares|N|ACP|N|100|N|ACP +ACRE|Ares Commercial Real Estate Corporation Common Stock|N|ACRE|N|100|N|ACRE +ACT|Actavis plc Ordinary Shares|N|ACT|N|100|N|ACT +ACU|Acme United Corporation. Common Stock|A|ACU|N|100|N|ACU +ACW|Accuride Corporation Common Stock|N|ACW|N|100|N|ACW +ACWV|iShares MSCI All Country World Minimum Volatility Index Fund|P|ACWV|Y|100|N|ACWV +ACY|AeroCentury Corp. Common Stock|A|ACY|N|100|N|ACY +ADC|Agree Realty Corporation Common Stock|N|ADC|N|100|N|ADC +ADGE|American DG Energy Inc. Common Stock|A|ADGE|N|100|N|ADGE +ADK|Adcare Health Systems Inc Common Stock (GA)|A|ADK|N|100|N|ADK +ADK$A|Adcare Health Systems Inc 10.875% Series A Cumulative Redeemable Preferred Stock, no par value per share (GA)|A|ADKpA|N|100|N|ADK-A +ADM|Archer-Daniels-Midland Company Common Stock|N|ADM|N|100|N|ADM +ADPT|Adeptus Health Inc. Common Stock|N|ADPT|N|100|N|ADPT +ADS|Alliance Data Systems Corporation Common Stock|N|ADS|N|100|N|ADS +ADT|ADT Corporation Common Stock|N|ADT|N|100|N|ADT +ADX|Adams Express Company (The)|N|ADX|N|100|N|ADX +ADZ|DB Agriculture Short ETN DB Agriculture Short ETN|P|ADZ|N|100|N|ADZ +AE|Adams Resources & Energy, Inc. Common Stock|A|AE|N|100|N|AE +AEB|AEGON N.V. Perp. Cap. Secs. Floating Rate (Netherlands)|N|AEB|N|100|N|AEB +AEC|Associated Estates Realty Corporation Common Stock|N|AEC|N|100|N|AEC +AED|AEGON N.V. Perp. Cap. Securities (Netherlands)|N|AED|N|100|N|AED +AEE|Ameren Corporation Common Stock|N|AEE|N|100|N|AEE +AEG|AEGON N.V. Common Stock|N|AEG|N|100|N|AEG +AEH|AEGON N.V. Perp. Cap Secs.|N|AEH|N|100|N|AEH +AEK|Aegon NV 8.00% Non-Cumulative Subordinated Notes due 2042|N|AEK|N|100|N|AEK +AEL|American Equity Investment Life Holding Company Common Stock|N|AEL|N|100|N|AEL +AEM|Agnico Eagle Mines Limited Common Stock|N|AEM|N|100|N|AEM +AEO|American Eagle Outfitters, Inc. Common Stock|N|AEO|N|100|N|AEO +AEP|American Electric Power Company, Inc. Common Stock|N|AEP|N|100|N|AEP +AER|Aercap Holdings N.V. Ordinary Shares|N|AER|N|100|N|AER +AES|The AES Corporation Common Stock|N|AES|N|100|N|AES +AES$C|AES Corporation (The) Class C Preferred Stock|N|AESpC|N|100|N|AES-C +AET|Aetna Inc. Common Stock|N|AET|N|100|N|AET +AF|Astoria Financial Corporation Common Stock|N|AF|N|100|N|AF +AF$C|Astoria Financial Corporation Depositary Shs Repstg 1/40th Int Perp Pfd Ser C 6.5%|N|AFpC|N|100|N|AF-C +AFA|American Financial Group, Inc. 5.75% Senior Notes due 2042|N|AFA|N|100|N|AFA +AFB|AllianceBernstein National Municipal Income Fund Inc|N|AFB|N|100|N|AFB +AFC|Allied Capital Corporation Allied Capital Corporation 6.875% Notes due April 15, 2047|N|AFC|N|100|N|AFC +AFG|American Financial Group, Inc. Common Stock|N|AFG|N|100|N|AFG +AFGE|American Financial Group, Inc. 6.25% Subordinated Debentures due 2054|N|AFGE|N|100|N|AFGE +AFK|Market Vectors-Africa Index ETF|P|AFK|Y|100|N|AFK +AFL|AFLAC Incorporated Common Stock|N|AFL|N|100|N|AFL +AFM|Affiliated Managers Group, Inc. 5.250% Senior Notes due 2022|N|AFM|N|100|N|AFM +AFQ|American Financial Group, Inc. 7% Senior Notes due 2050|N|AFQ|N|100|N|AFQ +AFSD|Aflac Incorporated 5.50% Subordinated Debentures due September 15, 2052|N|AFSD|N|100|N|AFSD +AFSI$A|AmTrust Financial Services, Inc. Preferred Series A|N|AFSIpA|N|100|N|AFSI-A +AFSI$B|AmTrust Financial Services, Inc. Depository Shares Representing 1/40th Preferred Series B|N|AFSIpB|N|100|N|AFSI-B +AFSI$C|AmTrust Financial Services, Inc. Depository Shares Representing 1/40th Preferred Series C|N|AFSIpC|N|100|N|AFSI-C +AFT|Apollo Senior Floating Rate Fund Inc. Common Stock|N|AFT|N|100|N|AFT +AFW|American Financial Group, Inc. 6 3/8% Senior Notes due 2042|N|AFW|N|100|N|AFW +AG|First Majestic Silver Corp. Ordinary Shares (Canada)|N|AG|N|100|N|AG +AGA|DB Agriculture Short ETN DB Agriculture Double Short ETN|P|AGA|N|100|N|AGA +AGC|Advent Claymore Convertible Securities and Income Fund Common Shares of Beneficial Interest|N|AGC|N|100|N|AGC +AGCO|AGCO Corporation Common Stock|N|AGCO|N|100|N|AGCO +AGD|Alpine Global Dynamic Dividend Fund Shares of Beneficial Interest|N|AGD|N|100|N|AGD +AGF|DB Agriculture Long ETN DB Agriculture Long ETN|P|AGF|N|100|N|AGF +AGG|iShares Core U.S. Aggregate Bond ETF|P|AGG|Y|100|N|AGG +AGI|Alamos Gold Inc Ordinary Shares|N|AGI|N|100|N|AGI +AGLS|Accuvest Global Long Short ETF|P|AGLS|Y|100|N|AGLS +AGM|Federal Agricultural Mortgage Corporation Common Stock|N|AGM|N|100|N|AGM +AGM$A|Federal Agricultural Mortgage Corporation 5.875% Non-CUmulative Preferred Stock, Series A|N|AGMpA|N|100|N|AGM-A +AGM$B|Federal Agricultural Mortgage Corporation Non Cumulative Preferred Stock Series B|N|AGMpB|N|100|N|AGM-B +AGM$C|Federal Agricultural Mortgage Corporation Preferred Series C Fixed to Fltg|N|AGMpC|N|100|N|AGM-C +AGM.A|Federal Agricultural Mortgage Corporation Common Stock|N|AGM/A|N|100|N|AGM.A +AGN|Allergan, Inc. Common Stock|N|AGN|N|100|N|AGN +AGO|Assured Guaranty Ltd. Common Stock|N|AGO|N|100|N|AGO +AGO$B|Assured Guaranty Ltd.|N|AGOpB|N|100|N|AGO-B +AGO$E|Assured Guaranty Ltd.|N|AGOpE|N|100|N|AGO-E +AGO$F|Assured Guaranty Ltd.|N|AGOpF|N|100|N|AGO-F +AGOL|ETFS Asian Gold Trust|P|AGOL|Y|100|N|AGOL +AGQ|ProShares Ultra Silver|P|AGQ|Y|100|N|AGQ +AGRO|Adecoagro S.A. Common Shares|N|AGRO|N|100|N|AGRO +AGU|Agrium Inc. Common Stock|N|AGU|N|100|N|AGU +AGX|Argan, Inc. Common Stock|N|AGX|N|100|N|AGX +AGZ|iShares Agency Bond ETF|P|AGZ|Y|100|N|AGZ +AHC|A.H. Belo Corporation Common Stock|N|AHC|N|100|N|AHC +AHH|Armada Hoffler Properties, Inc. Common Stock|N|AHH|N|100|N|AHH +AHL|Aspen Insurance Holdings Limited Ordinary Shares|N|AHL|N|100|N|AHL +AHL$A|Aspen Insurance Holdings Limited Perp Pfd Shares (Bermuda)|N|AHLpA|N|100|N|AHL-A +AHL$B|Aspen Insurance Holdings Limited Perp Pref Shs (Bermuda)|N|AHLpB|N|100|N|AHL-B +AHL$C|Aspen Insurance Holdings Limited 5.95% Fixed-to-Floating Rate Perpetual Non-Cumulative Preference Shares|N|AHLpC|N|100|N|AHL-C +AHP|Ashford Hospitality Prime, Inc. Common Stock|N|AHP|N|100|N|AHP +AHS|AMN Healthcare Services Inc AMN Healthcare Services Inc|N|AHS|N|100|N|AHS +AHT|Ashford Hospitality Trust Inc Common Stock|N|AHT|N|100|N|AHT +AHT$A|Ashford Hospitality Trust Inc 8.55% Cum Preferred Series A|N|AHTpA|N|100|N|AHT-A +AHT$D|Ashford Hospitality Trust Inc 8.45% Series D Cumulative Preferred Stock|N|AHTpD|N|100|N|AHT-D +AHT$E|Ashford Hospitality Trust Inc 9.00% Series E Cumulative Preferred Stock|N|AHTpE|N|100|N|AHT-E +AI|Arlington Asset Investment Corp Class A (new)|N|AI|N|100|N|AI +AIA|iShares Asia 50 ETF|P|AIA|Y|100|N|AIA +AIB|Apollo Investment Corporation 6.625% Senior Notes due 2042|N|AIB|N|100|N|AIB +AIF|Apollo Tactical Income Fund Inc. Common Stock|N|AIF|N|100|N|AIF +AIG|American International Group, Inc. New Common Stock|N|AIG|N|100|N|AIG +AIG.W|American International Group, Inc. Warrant expiring January 19, 2021|N|AIG/WS|N|100|N|AIG+ +AIN|Albany International Corporation Common Stock|N|AIN|N|100|N|AIN +AINC|Ashford Inc. Common Stock|A|AINC|N|100|N|AINC +AIR|AAR Corp. Common Stock|N|AIR|N|100|N|AIR +AIRI|Air Industries Group Common Stock|A|AIRI|N|100|N|AIRI +AIT|Applied Industrial Technologies, Inc. Common Stock|N|AIT|N|100|N|AIT +AIV|Apartment Investment and Management Company Common Stock|N|AIV|N|100|N|AIV +AIV$A|Apartment Investment and Management Company Preferred Series Class A|N|AIVpA|N|100|N|AIV-A +AIV$Z|Apartment Investment and Management Company Class Z Cumulative Preferred Stock|N|AIVpZ|N|100|N|AIV-Z +AIW|Arlington Asset Investment Corp 6.625% Notes due 2023|N|AIW|N|100|N|AIW +AIY|Apollo Investment Corporation 6.875% Senior Notes due 2043|N|AIY|N|100|N|AIY +AIZ|Assurant, Inc. Common Stock|N|AIZ|N|100|N|AIZ +AJG|Arthur J. Gallagher & Co. Common Stock|N|AJG|N|100|N|AJG +AKG|Asanko Gold Inc.|A|AKG|N|100|N|AKG +AKO.A|Embotelladora Andina S.A. Common Stock|N|AKO/A|N|100|N|AKO.A +AKO.B|Embotelladora Andina S.A. Common Stock|N|AKO/B|N|100|N|AKO.B +AKP|Alliance California Municipal Income Fund Inc|N|AKP|N|100|N|AKP +AKR|Acadia Realty Trust Common Stock|N|AKR|N|100|N|AKR +AKS|AK Steel Holding Corporation Common Stock|N|AKS|N|100|N|AKS +AL|Air Lease Corporation Class A Common Stock|N|AL|N|100|N|AL +ALB|Albemarle Corporation Common Stock|N|ALB|N|100|N|ALB +ALD|WisdomTree Asia Local Debt Fund ETF|P|ALD|Y|100|N|ALD +ALDW|Alon USA Partners, LP Common Units representing Limited Partner Interests|N|ALDW|N|100|N|ALDW +ALE|Allete, Inc.|N|ALE|N|100|N|ALE +ALEX|Alexander & Baldwin, Inc. Common Stock|N|ALEX|N|100|N|ALEX +ALFA|AlphaClone Alternative Alpha ETF|P|ALFA|Y|100|N|ALFA +ALG|Alamo Group, Inc. Common Stock|N|ALG|N|100|N|ALG +ALJ|Alon USA Energy, Inc. common stick|N|ALJ|N|100|N|ALJ +ALK|Alaska Air Group, Inc. Common Stock|N|ALK|N|100|N|ALK +ALL|Allstate Corporation (The) Common Stock|N|ALL|N|100|N|ALL +ALL$A|Allstate Corporation (The) Dep Shs Repstg 1/1000th Perp Pfd Ser A|N|ALLpA|N|100|N|ALL-A +ALL$B|Allstate Corporation (The) 5.100% Fixed-to-Floating Rate Subordinated Debentures due 2053|N|ALLpB|N|100|N|ALL-B +ALL$C|Allstate Corporation (The) Dep Shs Repstg 1/1000th Int Shs Pfd Stk Ser C|N|ALLpC|N|100|N|ALL-C +ALL$D|The Allstate Corporation Leopards Each Representing A 1/1000th Interest In A Share Of Fixed Rate Noncumulative Perpetual Preferred Stock Series D|N|ALLpD|N|100|N|ALL-D +ALL$E|Allstate Corporation Depositary Shares Representing 1/1000th Perpetual Preferred Series E|N|ALLpE|N|100|N|ALL-E +ALL$F|Allstate Corporation (The) Leopards Dep Shares Representing 1/1000th Perp Pfd|N|ALLpF|N|100|N|ALL-F +ALLE|Allegion plc Ordinary Shares|N|ALLE|N|100|N|ALLE +ALLY|Ally Financial Inc. Common Stock|N|ALLY|N|100|N|ALLY +ALLY$A|GMAC Capital Trust I Fixed Rate Floating Rate Trust Preferred Securities, Series 2|N|ALLYpA|N|100|N|ALLY-A +ALLY$B|Ally Financial Inc Fixed Rate Floating Rate Perpetual Preferred Stock, Series A|N|ALLYpB|N|100|N|ALLY-B +ALN|American Lorain Corporation Common Stock|A|ALN|N|100|N|ALN +ALP$N|Alabama Power Company Preferred Stock|N|ALPpN|N|100|N|ALP-N +ALP$O|Alabama Power Company Preferred Stock|N|ALPpO|N|100|N|ALP-O +ALP$P|Alabama Power Company 5.30% Cl A Pfd Stk|N|ALPpP|N|100|N|ALP-P +ALR|Alere Inc. Common Stock|N|ALR|N|100|N|ALR +ALR$B|Alere Inc. Inverness Medical Innovations, Inc. Series B Convertible Perpetual Preferred Stock|N|ALRpB|N|10|N|ALR-B +ALSN|Allison Transmission Holdings, Inc. Common Stock|N|ALSN|N|100|N|ALSN +ALTL|RBS US Large Cap Alternator Exchange Traded Note|P|ALTL|N|100|N|ALTL +ALTS|ProShares Morningstar Alternatives Solution ETF|P|ALTS|Y|100|N|ALTS +ALTV|Alteva|A|ALTV|N|100|N|ALTV +ALU|Alcatel-Lucent Common Stock|N|ALU|N|100|N|ALU +ALV|Autoliv, Inc. Common Stock|N|ALV|N|100|N|ALV +ALX|Alexander's, Inc. Common Stock|N|ALX|N|100|N|ALX +AM|Antero Midstream Partners LP Common Units representing limited partner interests|N|AM|N|100|N|AM +AMBR|Amber Road, Inc. Common Stock|N|AMBR|N|100|N|AMBR +AMC|AMC Entertainment Holdings, Inc. Class A Common Stock|N|AMC|N|100|N|AMC +AMCO|Armco Metals Holdings, Inc. Common Stock|A|AMCO|N|100|N|AMCO +AME|AMETEK, Inc.|N|AME|N|100|N|AME +AMFW|AMEC Foster Wheeler plc American Depositary Shares|N|AMFW|N|100|N|AMFW +AMG|Affiliated Managers Group, Inc. Common Stock|N|AMG|N|100|N|AMG +AMH|American Homes 4 Rent Common Shares of Beneficial Interest|N|AMH|N|100|N|AMH +AMH$A|American Homes 4 Rent Participating Preferred Shares Series A|N|AMHpA|N|100|N|AMH-A +AMH$B|American Homes 4 Rent 5% Series B Participating Preferred Shares of Beneficial Interest|N|AMHpB|N|100|N|AMH-B +AMH$C|American Homes 4 Rent Participating Pfd Ser C|N|AMHpC|N|100|N|AMH-C +AMID|American Midstream Partners, LP Common Units representing Limited Partner Interests|N|AMID|N|100|N|AMID +AMJ|JPMorgan Chase Capital XVI JP Morgan Alerian MLP ETN|P|AMJ|N|100|N|AMJ +AMLP|Alerian MLP ETF|P|AMLP|Y|100|N|AMLP +AMP|Ameriprise Financial, Inc. Common Stock|N|AMP|N|100|N|AMP +AMPE|Ampio Pharmaceuticals, Inc.|A|AMPE|N|100|N|AMPE +AMPS|iShares Utilities Bond ETF|P|AMPS|Y|100|N|AMPS +AMRC|Ameresco, Inc. Class A Common Stock|N|AMRC|N|100|N|AMRC +AMRE|AmREIT, Inc. Common stock|N|AMRE|N|100|N|AMRE +AMS|American Shared Hospital Services Common Stock|A|AMS|N|100|N|AMS +AMT|American Tower Corporation (REIT) Common Stock|N|AMT|N|100|N|AMT +AMT$A|American Tower Corporation (REIT) Pfd Conv Ser A|N|AMTpA|N|100|N|AMT-A +AMTD|TD Ameritrade Holding Corporation Common Stock|N|AMTD|N|100|N|AMTD +AMTG|Apollo Residential Mortgage, Inc. Common Stock|N|AMTG|N|100|N|AMTG +AMTG$A|Apollo Residential Mortgage, Inc. Pfd Shs Series A (US)|N|AMTGpA|N|100|N|AMTG-A +AMU|ETRACS Alerian MLP Index ETN|P|AMU|N|100|N|AMU +AMX|America Movil, S.A.B. de C.V. American Depository Receipt Series L|N|AMX|N|100|N|AMX +AMZA|InfraCap MLP ETF|P|AMZA|Y|100|N|AMZA +AMZG|American Eagle Energy Corporation. Common Stock|A|AMZG|N|100|N|AMZG +AN|AutoNation, Inc. Common Stock|N|AN|N|100|N|AN +AND|Global X FTSE Andean 40 ETF|P|AND|Y|100|N|AND +ANET|Arista Networks, Inc. Common Stock|N|ANET|N|100|N|ANET +ANF|Abercrombie & Fitch Company Common Stock|N|ANF|N|100|N|ANF +ANFI|Amira Nature Foods Ltd Ordinary Shares|N|ANFI|N|100|N|ANFI +ANGL|Market Vectors Fallen Angel High Yield Bond|P|ANGL|Y|100|N|ANGL +ANH|Anworth Mortgage Asset Corporation Common Stock|N|ANH|N|100|N|ANH +ANH$A|Anworth Mortgage Asset Corporation Series A Preferred Stock|N|ANHpA|N|100|N|ANH-A +ANH$B|Anworth Mortgage Asset Corporation Preferred Stock Series B 6.25%|N|ANHpB|N|100|N|ANH-B +ANN|ANN INC. Common Stock|N|ANN|N|100|N|ANN +ANR|Alpha Natural Resources, inc. comm stock|N|ANR|N|100|N|ANR +ANTM|Anthem, Inc. Common Stock|N|ANTM|N|100|N|ANTM +ANV|Allied Nevada Gold Corp.|A|ANV|N|100|N|ANV +ANW|Aegean Marine Petroleum Network Inc. Common Stock|N|ANW|N|100|N|ANW +AOA|iShares Aggressive Allocation ETF|P|AOA|Y|100|N|AOA +AOD|Alpine Total Dynamic Dividend Fund Common Stock|N|AOD|N|100|N|AOD +AOI|Alliance One International, Inc. Common Stock|N|AOI|N|100|N|AOI +AOK|iShares Conservative Allocation ETF|P|AOK|Y|100|N|AOK +AOL|AOL Inc. AOL Inc. Common Stock|N|AOL|N|100|N|AOL +AOM|iShares Moderate Allocation ETF|P|AOM|Y|100|N|AOM +AON|Aon plc Class A Ordinary Shares (UK)|N|AON|N|100|N|AON +AOR|iShares Growth Allocation ETF|P|AOR|Y|100|N|AOR +AOS|A.O. Smith Corporation Common Stock|N|AOS|N|100|N|AOS +AP|Ampco-Pittsburgh Corporation Common Stock|N|AP|N|100|N|AP +APA|Apache Corporation Common Stock|N|APA|N|100|N|APA +APAM|Artisan Partners Asset Management Inc. Class A Common Stock|N|APAM|N|100|N|APAM +APB|Asia Pacific Fund, Inc. (The)|N|APB|N|100|N|APB +APC|Anadarko Petroleum Corporation Common Stock|N|APC|N|100|N|APC +APD|Air Products and Chemicals, Inc. Common Stock|N|APD|N|100|N|APD +APF|Morgan Stanley Asia-Pacific Fund, Inc.|N|APF|N|100|N|APF +APH|Amphenol Corporation Common Stock|N|APH|N|100|N|APH +API|Advanced Photonix, Inc. Class A Common Stock|A|API|N|100|N|API +APL|Atlas Pipeline Partners, L.P. Common Units, No Par Value|N|APL|N|100|N|APL +APL$E|Atlas Pipeline Partners, L.P. Cumulative Redeemable Perpetual Preferred Units Class E|N|APLpE|N|100|N|APL-E +APO|Apollo Global Management, LLC Class A Common Shares Representing Class A Limitied Liability Company Interests|N|APO|N|100|N|APO +APP|American Apparel Inc Common Stock|A|APP|N|100|N|APP +APT|Alpha Pro Tech, Ltd. Common Stock|A|APT|N|100|N|APT +APTS|Preferred Apartment Communities, Inc. Common Stock|A|APTS|N|100|N|APTS +APU|AmeriGas Partners, L.P. Common Stock|N|APU|N|100|N|APU +AQQ|American Spectrum Realty, Inc. Common Stock|A|AQQ|N|100|N|AQQ +AR|Antero Resources Corporation Common Stock|N|AR|N|100|N|AR +ARC|ARC Document Solutions, Inc. Common Stock|N|ARC|N|100|N|ARC +ARCO|Arcos Dorados Holdings Inc. Class A Shares|N|ARCO|N|100|N|ARCO +ARCX|Arc Logistic Partners LP Common Units representing limited partner interest|N|ARCX|N|100|N|ARCX +ARDC|Ares Dynamic Credit Allocation Fund, Inc. Common Shares|N|ARDC|N|100|N|ARDC +ARE|Alexandria Real Estate Equities, Inc. Common Stock|N|ARE|N|100|N|ARE +ARE$E|Alexandria Real Estate Equities, Inc. Pfd Ser E|N|AREpE|N|100|N|ARE-E +ARES|Ares Management L.P. Common Units representing Limited Partner Interests|N|ARES|N|100|N|ARES +ARG|Airgas, Inc. Common Stock|N|ARG|N|100|N|ARG +ARGT|Global X MSCI Argentina ETF|P|ARGT|Y|100|N|ARGT +ARH$C|Arch Capital Group Ltd. 6.75% PFD sh S C|N|ARHpC|N|100|N|ARH-C +ARI|Apollo Commercial Real Estate Finance, Inc|N|ARI|N|100|N|ARI +ARI$A|Apollo Commercial Real Estate Finance Cumulative Redeemable Perpetual Preferred Stock Series A|N|ARIpA|N|100|N|ARI-A +ARKG|ARK Genomic Revolution Multi-Sector ETF|P|ARKG|Y|100|N|ARKG +ARKK|ARK Innovation ETF|P|ARKK|Y|100|N|ARKK +ARKQ|ARK Industrial Innovation ETF|P|ARKQ|Y|100|N|ARKQ +ARKW|ARK Web x.0 ETF|P|ARKW|Y|100|N|ARKW +ARL|American Realty Investors, Inc. Common Stock|N|ARL|N|100|N|ARL +ARMF|Ares Multi-Strategy Credit Fund, Inc. Common Stock|N|ARMF|N|100|N|ARMF +ARMK|Aramark Common Stock|N|ARMK|N|100|N|ARMK +ARN|Ares Capital Corporation 7.00% Senior Notes due 2022|N|ARN|N|100|N|ARN +ARO|Aeropostale Inc Common Stock|N|ARO|N|100|N|ARO +ARP|Atlas Resource Partners, L.P. Common Units representing Limited Partner Interests|N|ARP|N|100|N|ARP +ARP$D|Atlas Resource Partners, L.P. CUM RED PERP PDF UNIT CL D %|N|ARPpD|N|100|N|ARP-D +ARPI|American Residential Properties, Inc. Common Stock|N|ARPI|N|100|N|ARPI +ARR|ARMOUR Residential REIT, Inc.|N|ARR|N|100|N|ARR +ARR$A|Armour Residential REIT INC Preferred Series A|N|ARRpA|N|100|N|ARR-A +ARR$B|ARMOUR Residential REIT, Inc. Preferred Series B|N|ARRpB|N|100|N|ARR-B +ARU|Ares Capital Corporation 5.875% Senior Notes due 2022|N|ARU|N|100|N|ARU +ARW|Arrow Electronics, Inc. Common Stock|N|ARW|N|100|N|ARW +ARY|Ares Capital Corporation 7.75% Senior Notes due 2040|N|ARY|N|100|N|ARY +ASA|ASA Gold and Precious Metals Limited|N|ASA|N|100|N|ASA +ASB|Associated Banc-Corp Common Stock|N|ASB|N|100|N|ASB +ASB$B|Associated Banc-Corp Depositary Sh Repstg 1/40th Int Sh Perpetual Pfd Stk Ser B|N|ASBpB|N|100|N|ASB-B +ASB.W|Associated Banc-Corp Warrants|A|ASB/WS|N|100|N|ASB+ +ASC|Ardmore Shipping Corporation Common Stock|N|ASC|N|100|N|ASC +ASEA|Global X Southeast Asia ETF|P|ASEA|Y|100|N|ASEA +ASG|Liberty All-Star Growth Fund, Inc.|N|ASG|N|100|N|ASG +ASGN|On Assignment, Inc. Common Stock|N|ASGN|N|100|N|ASGN +ASH|Ashland Inc. (NEW) Common Stock|N|ASH|N|100|N|ASH +ASHR|Deutsche X-Trackers Harvest CSI 300 China A-Shares ETF|P|ASHR|Y|100|N|ASHR +ASHS|Deutsche X-trackers Harvest CSI 500 China A-Shares Small Cap ETF|P|ASHS|Y|100|N|ASHS +ASM|Avino Silver & Gold Mines Ltd. Common Shares (Canada)|A|ASM|N|100|N|ASM +ASPN|Aspen Aerogels, Inc. Common Stock|N|ASPN|N|100|N|ASPN +ASR|Grupo Aeroportuario del Sureste, S.A. de C.V. Common Stock|N|ASR|N|100|N|ASR +AST|Asterias Biotherapeutics, Inc. Common Series A|A|AST|N|100|N|AST +ASX|Advanced Semiconductor Engineering, Inc. Common Stock|N|ASX|N|100|N|ASX +AT|Atlantic Power Corporation Ordinary Shares (Canada)|N|AT|N|100|N|AT +ATE|Advantest Corporation (Kabushiki Kaisha Advantest) ADS American Depositary Shares|N|ATE|N|100|N|ATE +ATEN|A10 Networks, Inc. Common Stock|N|ATEN|N|100|N|ATEN +ATHM|Autohome Inc. American Depositary Shares, each representing one class A ordinary share.|N|ATHM|N|100|N|ATHM +ATI|Allegheny Technologies Incorporated Common Stock|N|ATI|N|100|N|ATI +ATK|Alliant Techsystems Inc. Common Stock|N|ATK|N|100|N|ATK +ATL|Atlatsa Resources Corporation|A|ATL|N|100|N|ATL +ATLS|Atlas Energy, L.P. Common Units|N|ATLS|N|100|N|ATLS +ATMP|Barclays ETN Plus Select MLP|P|ATMP|N|100|N|ATMP +ATNM|Actinium Pharmaceuticals, Inc. (Delaware) Common Stock|A|ATNM|N|100|N|ATNM +ATO|Atmos Energy Corporation Common Stock|N|ATO|N|100|N|ATO +ATR|AptarGroup, Inc. Common Stock|N|ATR|N|100|N|ATR +ATTO|Atento S.A. Ordinary Shares|N|ATTO|N|100|N|ATTO +ATU|Actuant Corporation Common Stock|N|ATU|N|100|N|ATU +ATV|Acorn International, Inc. ADS|N|ATV|N|100|N|ATV +ATW|Atwood Oceanics, Inc. Common Stock|N|ATW|N|100|N|ATW +AU|AngloGold Ashanti Limited Common Stock|N|AU|N|100|N|AU +AUMN|Golden Minerals Company Common Stock|A|AUMN|N|100|N|AUMN +AUNZ|WisdomTree Australia New Zealand Debt Fund|P|AUNZ|Y|100|N|AUNZ +AUO|AU Optronics Corp American Depositary Shares|N|AUO|N|100|N|AUO +AUQ|AuRico Gold Inc. Ordinary Shares|N|AUQ|N|100|N|AUQ +AUSE|WisdomTree Australia Dividend Index|P|AUSE|Y|100|N|AUSE +AUY|Yamana Gold Inc. Ordinary Shares (Canada)|N|AUY|N|100|N|AUY +AV|Aviva plc Unsponsored ADR (UK)|N|AV|N|100|N|AV +AVA|Avista Corporation Common Stock|N|AVA|N|100|N|AVA +AVAL|Grupo Aval Acciones y Valores S.A. ADR (Each representing 20 preferred shares)|N|AVAL|N|100|N|AVAL +AVB|AvalonBay Communities, Inc. Common Stock|N|AVB|N|100|N|AVB +AVD|American Vanguard Corporation Common Stock ($0.10 Par Value)|N|AVD|N|100|N|AVD +AVG|AVG Technologies N.V. Ordinary Shares|N|AVG|N|100|N|AVG +AVH|Avianca Holdings S.A. American Depositary Shares (Each representing 8 preferred Shares)|N|AVH|N|100|N|AVH +AVIV|Aviv REIT, Inc. Common Stock|N|AVIV|N|100|N|AVIV +AVK|Advent Claymore Convertible Securities and Income Fund|N|AVK|N|100|N|AVK +AVL|Avalon Rare Metals, Inc. Ordinary Shares (Canada)|A|AVL|N|100|N|AVL +AVOL|Avolon Holdings Limited Common Shares|N|AVOL|N|100|N|AVOL +AVP|Avon Products, Inc. Common Stock|N|AVP|N|100|N|AVP +AVT|Avnet, Inc. Common Stock|N|AVT|N|100|N|AVT +AVV|Aviva plc Subordinated Capital Securities due 2041|N|AVV|N|100|N|AVV +AVX|AVX Corporation Common Stock|N|AVX|N|100|N|AVX +AVY|Avery Dennison Corporation Common Stock|N|AVY|N|100|N|AVY +AWF|Alliancebernstein Global High Income Fund|N|AWF|N|100|N|AWF +AWH|Allied World Assurance Company Holdings, AG (Switzerland)|N|AWH|N|100|N|AWH +AWI|Armstrong World Industries Inc Common Stock|N|AWI|N|100|N|AWI +AWK|American Water Works Company, Inc. Common Stock|N|AWK|N|100|N|AWK +AWP|Alpine Global Premier Properties Fund Alpine Global Premier Properties Fund Common Shares of Beneficial Interest|N|AWP|N|100|N|AWP +AWR|American States Water Company Common Stock|N|AWR|N|100|N|AWR +AWX|Avalon Holdings Corporation Common Stock|A|AWX|N|100|N|AWX +AXE|Anixter International Inc. Common Stock|N|AXE|N|100|N|AXE +AXJL|WisdomTree Asia Pacific ex-Japan Total Dividend Fund|P|AXJL|Y|100|N|AXJL +AXJV|iShares MSCI Asia ex Japan Minimum Volatility ETF|P|AXJV|Y|100|N|AXJV +AXL|American Axle & Manufacturing Holdings, Inc. Common Stock|N|AXL|N|100|N|AXL +AXLL|Axiall Corporation Common Stock|N|AXLL|N|100|N|AXLL +AXN|Aoxing Pharmaceutical Company, Inc. New Common Stock|A|AXN|N|100|N|AXN +AXP|American Express Company Common Stock|N|AXP|N|100|N|AXP +AXR|AMREP Corporation Common Stock|N|AXR|N|100|N|AXR +AXS|Axis Capital Holdings Limited Common Stock|N|AXS|N|100|N|AXS +AXS$C|Axis Capital Holdings Limited Preferred Series C (Bermuda)|N|AXSpC|N|100|N|AXS-C +AXS$D|Axis Capital Holdings Limited Preferred Series D (Bermuda)|N|AXSpD|N|100|N|AXS-D +AXTA|Axalta Coating Systems Ltd. Common Shares|N|AXTA|N|100|N|AXTA +AXU|Alexco Resource Corp Common Shares (Canada)|A|AXU|N|100|N|AXU +AXX|Alderon Iron Ore Corp. Ordinary Shares (Canada)|A|AXX|N|100|N|AXX +AYI|Acuity Brands Inc (Holding Company)|N|AYI|N|100|N|AYI +AYN|Alliance New York Municipal Income Fund Inc|N|AYN|N|100|N|AYN +AYR|Aircastle Limited Common Stock|N|AYR|N|100|N|AYR +AYT|iPath GEMS Asia 8 ETN|P|AYT|N|100|N|AYT +AZIA|Global X Central Asia & Mongolia Index ETF|P|AZIA|Y|100|N|AZIA +AZN|Astrazeneca PLC Common Stock|N|AZN|N|100|N|AZN +AZO|AutoZone, Inc. Common Stock|N|AZO|N|100|N|AZO +AZZ|AZZ Incorporated Common Stock|N|AZZ|N|100|N|AZZ +B|Barnes Group, Inc. Common Stock|N|B|N|100|N|B +BA|Boeing Company (The) Common Stock|N|BA|N|100|N|BA +BAA|BANRO CORPORATION Ordinary Shares|A|BAA|N|100|N|BAA +BAB|PowerShares Build America Bond Portfolio|P|BAB|Y|100|N|BAB +BABA|Alibaba Group Holding Limited American Depositary Shares each representing one Ordinary share|N|BABA|N|100|N|BABA +BABS|SPDR Nuveen Barclays Build America Bond ETF|P|BABS|Y|100|N|BABS +BAC|Bank of America Corporation Common Stock|N|BAC|N|100|N|BAC +BAC$D|Bank of America Corporation Depositary Shares Rpstg 1/1000th Interest in Sh of Non Cum Pfd Stk Ser D|N|BACpD|N|100|N|BAC-D +BAC$E|Bank of America Corporation Depositary Sh repstg 1/1000th Perp Pfd Ser E|N|BACpE|N|100|N|BAC-E +BAC$I|Bank Amer Corp Dep Sh Repstg 1/1000th Pfd Ser I|N|BACpI|N|100|N|BAC-I +BAC$L|Bank of America Corporation Non Cumulative Perpetual Conv Pfd Ser L|N|BACpL|N|10|N|BAC-L +BAC$W|Bank of America Corporation Depository Shares Representing 1/1000th Preferred Series W|N|BACpW|N|100|N|BAC-W +BAC$Z|Bank of America Corporation BAC Capital Trust VIII 6% Capital Securities|N|BACpZ|N|100|N|BAC-Z +BAC.A|Bank of America Corporation Class A Warrant expiring January 16, 2019|N|BAC/WS/A|N|100|N|BAC+A +BAC.B|Bank of America Corporation Class B Warrants expiring 10/28/2018|N|BAC/WS/B|N|100|N|BAC+B +BAF|BlackRock Municipal Income Investment Quality Trust|N|BAF|N|100|N|BAF +BAH|Booz Allen Hamilton Holding Corporation Common Stock|N|BAH|N|100|N|BAH +BAK|Braskem SA ADR|N|BAK|N|100|N|BAK +BAL|iPath Bloomberg Cotton Subindex Total Return SM Index ETN|P|BAL|N|100|N|BAL +BALT|Baltic Trading Limited Common Stock|N|BALT|N|100|N|BALT +BAM|Brookfield Asset Management Inc. Common Stock|N|BAM|N|100|N|BAM +BANC|Banc of California, Inc. Common Stock|N|BANC|N|100|N|BANC +BANC$C|Banc of California, Inc. Depositary Shares|N|BANCpC|N|100|N|BANC-C +BAP|Credicorp Ltd. Common Stock|N|BAP|N|100|N|BAP +BAR|Direxion Daily Gold Bull 3X Shares|P|BAR|Y|100|N|BAR +BARL|Morgan Stanley S&P 500 Crude Oil Linked ETNs due July 1, 2031|P|BARL|N|100|N|BARL +BAS|Basic Energy Services, Inc. Common Stock|N|BAS|N|100|N|BAS +BAX|Baxter International Inc. Common Stock|N|BAX|N|100|N|BAX +BBD|Banco Bradesco Sa American Depositary Shares|N|BBD|N|100|N|BBD +BBDO|Banco Bradesco Sa American Depositary Shares (each representing one Common Share)|N|BBDO|N|100|N|BBDO +BBF|BlackRock Municipal Income Investment Trust|N|BBF|N|100|N|BBF +BBG|Bill Barrett Corporation Common Stock|N|BBG|N|100|N|BBG +BBH|Market Vectors Biotech ETF|P|BBH|Y|100|N|BBH +BBK|Blackrock Municipal Bond Trust|N|BBK|N|100|N|BBK +BBL|BHP Billiton plc Sponsored ADR|N|BBL|N|100|N|BBL +BBN|BlackRock Build America Bond Trust Common Shares of Beneficial Interest|N|BBN|N|100|N|BBN +BBRC|EGShares Beyond BRICs ETF|P|BBRC|Y|100|N|BBRC +BBT|BB&T Corporation Common Stock|N|BBT|N|100|N|BBT +BBT$D|BB&T Corporation Depositary Shares Representing 1/1000th Perpetual Preferred Series D|N|BBTpD|N|100|N|BBT-D +BBT$E|BB&T Corporation Depositary Shares Representing 1/1000th Perpetual Preferred Series E|N|BBTpE|N|100|N|BBT-E +BBT$F|BB&T Corporation Depositary Shares Representing 1/1000th Interest Series F Perpetual Preferred|N|BBTpF|N|100|N|BBT-F +BBT$G|BB&T Corporation Depositary Shares Representing 1/1000th Perpetual Preferred Series G|N|BBTpG|N|100|N|BBT-G +BBVA|Banco Bilbao Vizcaya Argentaria S.A. Common Stock|N|BBVA|N|100|N|BBVA +BBW|Build-A-Bear Workshop, Inc. Common Stock|N|BBW|N|100|N|BBW +BBX|BBX Capital Corporation Common Stock|N|BBX|N|100|N|BBX +BBY|Best Buy Co., Inc. Common Stock|N|BBY|N|100|N|BBY +BC|Brunswick Corporation Common Stock|N|BC|N|100|N|BC +BCA|Corpbanca Sponsored Reg S GDR representing Common (Chile)|N|BCA|N|100|N|BCA +BCC|Boise Cascade, L.L.C. Common Stock|N|BCC|N|100|N|BCC +BCE|BCE, Inc. Common Stock|N|BCE|N|100|N|BCE +BCEI|Bonanza Creek Energy, Inc. Common Stock|N|BCEI|N|100|N|BCEI +BCH|Banco De Chile Banco De Chile ADS|N|BCH|N|100|N|BCH +BCHP|EGShares Blue Chip ETF|P|BCHP|Y|100|N|BCHP +BCM|iPath Pure Beta Broad Commodity ETN|P|BCM|N|100|N|BCM +BCO|Brinks Company (The) Common Stock|N|BCO|N|100|N|BCO +BCR|C.R. Bard, Inc. Common Stock|N|BCR|N|100|N|BCR +BCRH|Blue Capital Reinsurance Holdings Ltd. Common Shares|N|BCRH|N|100|N|BCRH +BCS|Barclays PLC Common Stock|N|BCS|N|100|N|BCS +BCS$|Barclays Bank PLC ADR Ser 2 repstg Pref Shs Ser 2 (United Kingdom)|N|BCSp|N|100|N|BCS- +BCS$A|Barclays PLC ADS|N|BCSpA|N|100|N|BCS-A +BCS$C|Barclays PLC American Depositary Shares Series 4|N|BCSpC|N|100|N|BCS-C +BCS$D|Barclays PLC American Depositary Shares (Each representing Non-Cumulative Callable Dollar Preference Shares, Series 5|N|BCSpD|N|100|N|BCS-D +BCV|Bancroft Fund, Ltd.|A|BCV|N|100|N|BCV +BCX|BlackRock Resources Common Shares of Beneficial Interest|N|BCX|N|100|N|BCX +BDC|Belden Inc Common Stock|N|BDC|N|100|N|BDC +BDCL|2xLeveraged Long Exchange Traded Access Securities (E-TRACS) Linked to the Wells Fargo Business Development Company Index due May 24, 2041|P|BDCL|N|100|N|BDCL +BDCS|UBS AG Exchange Traded Access Securities (E TRACS) Linked to the Wells Fargo Business Development Company Index due April 26, 2041|P|BDCS|N|100|N|BDCS +BDD|PowerShares DB Base Metals Double Long ETN|P|BDD|N|100|N|BDD +BDG|PowerShares DB Base Metals Long ETN|P|BDG|N|100|N|BDG +BDJ|Blackrock Enhanced Equity Dividend Trust|N|BDJ|N|100|N|BDJ +BDL|Flanigan's Enterprises, Inc. Common Stock|A|BDL|N|100|N|BDL +BDN|Brandywine Realty Trust Common Stock|N|BDN|N|100|N|BDN +BDN$E|Brandywine Realty Tr Pfd Shs Ben Int Ser E|N|BDNpE|N|100|N|BDN-E +BDR|Blonder Tongue Laboratories, Inc. Common Stock|A|BDR|N|100|N|BDR +BDX|Becton, Dickinson and Company Common Stock|N|BDX|N|100|N|BDX +BEE|Strategic Hotels & Resorts Inc Common Stock|N|BEE|N|100|N|BEE +BEL|Belmond Ltd. Class A Common Stock|N|BEL|N|100|N|BEL +BEN|Franklin Resources, Inc. Common Stock|N|BEN|N|100|N|BEN +BEP|Brookfield Renewable Energy Partners LP Partnership Units (Bermuda)|N|BEP|N|100|N|BEP +BERY|Berry Plastics Group, Inc. Common Stock|N|BERY|N|100|N|BERY +BF.A|Brown Forman Inc Class A Common Stock|N|BF/A|N|100|N|BF.A +BF.B|Brown Forman Inc Class B Common Stock|N|BF/B|N|100|N|BF.B +BFAM|Bright Horizons Family Solutions Inc. Common Stock|N|BFAM|N|100|N|BFAM +BFK|BlackRock Municipal Income Trust|N|BFK|N|100|N|BFK +BFO|Blackrock Florida Municipal 2020 Term Trust|N|BFO|N|100|N|BFO +BFOR|Barron's 400|P|BFOR|Y|100|N|BFOR +BFR|BBVA Banco Frances S.A. Common Stock|N|BFR|N|100|N|BFR +BFS|Saul Centers, Inc. Common Stock|N|BFS|N|100|N|BFS +BFS$C|Saul Centers, Inc. Depositary Shares, each representing 1/100th of a share of 6.875% Series C Cumulative Redeemable Preferred Stock, $0.01 par value|N|BFSpC|N|100|N|BFS-C +BFY|BlackRock New York Municipal Income Trust II|A|BFY|N|100|N|BFY +BFZ|BlackRock California Municipal Income Trust|N|BFZ|N|100|N|BFZ +BG|Bunge Limited Bunge Limited|N|BG|N|100|N|BG +BGB|Blackstone / GSO Strategic Credit Fund Common Shares|N|BGB|N|100|N|BGB +BGC|General Cable Corporation Common Stock|N|BGC|N|100|N|BGC +BGCA|BGC Partners, Inc. 8.125% Senior Notes due 2042|N|BGCA|N|100|N|BGCA +BGE$B|Bge Cap Trust II 6.20% Trust Preferred Securities|N|BGEpB|N|100|N|BGE-B +BGG|Briggs & Stratton Corporation Common Stock|N|BGG|N|100|N|BGG +BGH|Babson Capital Global Short Duration High Yield Fund Common Shares of Beneficial Interests|N|BGH|N|100|N|BGH +BGI|Birks Group Inc. Common Stock|A|BGI|N|100|N|BGI +BGR|BlackRock Energy and Resources Trust|N|BGR|N|100|N|BGR +BGS|B&G Foods, Inc. B&G Foods, Inc. Common Stock|N|BGS|N|100|N|BGS +BGSF|BG Staffing Inc Common Stock|A|BGSF|N|100|N|BGSF +BGT|BlackRock Floating Rate Income Trust|N|BGT|N|100|N|BGT +BGX|Blackstone GSO Long Short Credit Income Fund Common Shares|N|BGX|N|100|N|BGX +BGY|BLACKROCK INTERNATIONAL, LTD. Blackrock International Real Estate Fund, Inc.|N|BGY|N|100|N|BGY +BH|Biglari Holdings Inc.|N|BH|N|10|N|BH +BHB|Bar Harbor Bankshares, Inc. Common Stock|A|BHB|N|100|N|BHB +BHE|Benchmark Electronics, Inc. Common Stock|N|BHE|N|100|N|BHE +BHI|Baker Hughes Incorporated Common Stock|N|BHI|N|100|N|BHI +BHK|Blackrock Core Bond Trust Blackrock Core Bond Trust|N|BHK|N|100|N|BHK +BHL|Blackrock Defined Opportunity Credit Trust Blackrock Defined Opportunity Credit Trust|N|BHL|N|100|N|BHL +BHLB|Berkshire Hills Bancorp, Inc. Common Stock|N|BHLB|N|100|N|BHLB +BHP|BHP Billiton Limited Common Stock|N|BHP|N|100|N|BHP +BHV|BlackRock Virginia Municipal Bond Trust|A|BHV|N|100|N|BHV +BID|Sotheby's Common Stock|N|BID|N|100|N|BID +BIE|BlackRock Municipal Bond Investment Trust|N|BIE|N|100|N|BIE +BIF|Boulder Growth & Income Fund, Inc.|N|BIF|N|100|N|BIF +BIG|Big Lots, Inc. Common Stock|N|BIG|N|100|N|BIG +BIK|SPDR S&P BRIC 40|P|BIK|Y|100|N|BIK +BIL|SPDR Barclays 1-3 Month T-Bill ETF|P|BIL|Y|100|N|BIL +BIN|Progressive Waste Solutions Ltd. Common Shares|N|BIN|N|100|N|BIN +BIO|Bio-Rad Laboratories, Inc. Class A Common Stock|N|BIO|N|100|N|BIO +BIO.B|Bio-Rad Laboratories, Inc. Class B Common Stock|N|BIO/B|N|100|N|BIO.B +BIOA|BioAmber Inc. Common Stock|N|BIOA|N|100|N|BIOA +BIOA.W|BioAmber Inc. Warrant, expiring May 9, 2017|N|BIOA/WS|N|100|N|BIOA+ +BIP|Brookfield Infrastructure Partners LP Limited Partnership Units|N|BIP|N|100|N|BIP +BIR$A|Berkshire Income Realty, Inc. 9% Series A Preferred Stock|A|BIRpA|N|100|N|BIR-A +BIT|BlackRock Multi-Sector Income Trust Common Shares of Beneficial Interest|N|BIT|N|100|N|BIT +BITA|Bitauto Holdings Limited American Depositary Shares (each representing one ordinary share)|N|BITA|N|100|N|BITA +BIV|Vanguard Intermediate-Term Bond ETF|P|BIV|Y|100|N|BIV +BIZD|Market Vectors BDC Income ETF|P|BIZD|Y|100|N|BIZD +BJK|Market Vectors Gaming ETF|P|BJK|Y|100|N|BJK +BJZ|Blackrock California Municipal 2018 Term Trust Blackrock California Municipal 2018 Term Trust|N|BJZ|N|100|N|BJZ +BK|Bank of New York Mellon Corporation (The) Common Stock|N|BK|N|100|N|BK +BK$C|Bank Of New York Mellon Corporation (The) Dep Shs Repstg 1/4000th Perp Pfd Ser C|N|BKpC|N|100|N|BK-C +BKD|Brookdale Senior Living Inc. Common Stock|N|BKD|N|100|N|BKD +BKE|Buckle, Inc. (The) Common Stock|N|BKE|N|100|N|BKE +BKF|iShares MSCI BRIC Index Fund|P|BKF|Y|100|N|BKF +BKH|Black Hills Corporation Common Stock|N|BKH|N|100|N|BKH +BKJ|Bancorp of New Jersey, Inc Common Stock|A|BKJ|N|100|N|BKJ +BKK|Blackrock Municipal 2020 Term Trust|N|BKK|N|100|N|BKK +BKLN|PowerShares Exchange-Traded Fund Trust ETF|P|BKLN|Y|100|N|BKLN +BKN|BlackRock Investment Quality Municipal Trust Inc. (The)|N|BKN|N|100|N|BKN +BKS|Barnes & Noble, Inc. Common Stock|N|BKS|N|100|N|BKS +BKT|BlackRock Income Trust Inc. (The)|N|BKT|N|100|N|BKT +BKU|BankUnited, Inc. Common Stock|N|BKU|N|100|N|BKU +BLE|BlackRock Municipal Income Trust II|A|BLE|N|100|N|BLE +BLH|Blackrock New York Municipal 2018 Term Trust|N|BLH|N|100|N|BLH +BLJ|Blackrock New Jersey Municipal Bond Trust|A|BLJ|N|100|N|BLJ +BLK|BlackRock, Inc. Common Stock|N|BLK|N|100|N|BLK +BLL|Ball Corporation Common Stock|N|BLL|N|100|N|BLL +BLNG|iPath Pure Beta Precious Metal ETN|P|BLNG|N|100|N|BLNG +BLOX|Infoblox Inc. Common Stock|N|BLOX|N|100|N|BLOX +BLT|Blount International, Inc. Common Stock|N|BLT|N|100|N|BLT +BLV|Vanguard Long-Term Bond ETF|P|BLV|Y|100|N|BLV +BLW|Blackrock Limited Duration Income Trust|N|BLW|N|100|N|BLW +BLX|Banco Latinoamericano de Comercio Exterior, S.A.|N|BLX|N|100|N|BLX +BMA|Banco Macro S.A. ADR (representing Ten Class B Common Shares)|N|BMA|N|100|N|BMA +BME|Blackrock Health Sciences Trust|N|BME|N|100|N|BME +BMI|Badger Meter, Inc. Common Stock|N|BMI|N|100|N|BMI +BML$G|Bank of America Corporation Bank of America Corporation Depositary Shares (Each representing a 1/1200th interest in a share of Floating Rate Non-Cumulative Preferred Stock , Series 1)|N|BMLpG|N|100|N|BML-G +BML$H|Bank of America Corporation Bank of America Corporation Depositary Shares (Each representing a 1/1200th interest in a Share of Floating Rate Non-Cumulative Preferred Stock, Series 2)|N|BMLpH|N|100|N|BML-H +BML$I|Bank of America Corporation Bank of America Corporation Depositary Shares (Each representing a 1/1200th interest in a Share of 6.375% Non-Cumulative Preferred Stock, Series 3)|N|BMLpI|N|100|N|BML-I +BML$J|Bank of America Corporation Bank of America Corporation Depositary Shares (Each representing a 1/1200th interest in a Share of Floating Rate Non-Cumulative Preferred Stock, Series 4)|N|BMLpJ|N|100|N|BML-J +BML$L|Bank of America Corporation Bank of America Corporation Depositary Shares (Each representing a 1/1200th Interest in a Share of Floating Rate Non-Cumulative Preferred Stock, Series 5)|N|BMLpL|N|100|N|BML-L +BMO|Bank Of Montreal Common Stock|N|BMO|N|100|N|BMO +BMR|Biomed Realty Trust Common Stock|N|BMR|N|100|N|BMR +BMS|Bemis Company, Inc. Common Stock|N|BMS|N|100|N|BMS +BMY|Bristol-Myers Squibb Company Common Stock|N|BMY|N|100|N|BMY +BND|Vanguard Total Bond Market ETF|P|BND|Y|100|N|BND +BNJ|BlackRock New Jersey Municipal Income Trust|N|BNJ|N|100|N|BNJ +BNK|C1 Financial, Inc. Common Stock|N|BNK|N|100|N|BNK +BNO|United States Brent Oil Fund, LP ETV|P|BNO|Y|100|N|BNO +BNS|Bank Nova Scotia Halifax Pfd 3 Ordinary Shares|N|BNS|N|100|N|BNS +BNY|BlackRock New York Municipal Income Trust|N|BNY|N|100|N|BNY +BOCA|Banc of California, Inc. Senior Note due 4/15/2020|N|BOCA|N|100|N|BOCA +BOE|Blackrock Global Blackrock Global Opportunities Equity Trust Common Shares of Beneficial Interest|N|BOE|N|100|N|BOE +BOH|Bank of Hawaii Corporation Common Stock|N|BOH|N|100|N|BOH +BOI|Brookfield Mortgage Opportunity Income Fund Inc. Common Stock|N|BOI|N|100|N|BOI +BOIL|ProShares Ultra Bloomberg Natural Gas|P|BOIL|Y|100|N|BOIL +BOM|PowerShares DB Base Metals Double Short ETN|P|BOM|N|100|N|BOM +BOND|PIMCO Total Return Active Exchange-Traded Fund|P|BOND|Y|100|N|BOND +BONE|Bacterin International Holdings, Inc. Common Stock|A|BONE|N|100|N|BONE +BOOT|Boot Barn Holdings, Inc. Common Stock|N|BOOT|N|100|N|BOOT +BORN|China New Borun Corporation American Depositary Shares|N|BORN|N|100|N|BORN +BOS|PowerShares DB Base Metals Short ETN|P|BOS|N|100|N|BOS +BOX|Box, Inc. Class A Common Stock|N|BOX|N|100|N|BOX +BOXC|Brookfield Canada Office Properties|N|BOXC|N|100|N|BOXC +BP|BP p.l.c. Common Stock|N|BP|N|100|N|BP +BPI|Bridgepoint Education, Inc.|N|BPI|N|100|N|BPI +BPK|Blackrock Municipal 2018 Term Trust Blackrock Municipal 2018 Term Trust|N|BPK|N|100|N|BPK +BPL|Buckeye Partners L.P. Common Stock|N|BPL|N|100|N|BPL +BPS|BlackRock Pennsylvania Strategic Municipal Trust (The) Common Shares of Beneficial Interest|A|BPS|N|100|N|BPS +BPT|BP Prudhoe Bay Royalty Trust Common Stock|N|BPT|N|100|N|BPT +BPY|Brookfield Property Partners L.P. Limited Partnership Units|N|BPY|N|100|N|BPY +BPZ|BPZ Resources, Inc Common Stock|N|BPZ|N|100|N|BPZ +BQH|Blackrock New York Municipal Bond Trust Common Shares of Beneficial Interest|N|BQH|N|100|N|BQH +BR|Broadridge Financial Solutions, Inc.Common Stock|N|BR|N|100|N|BR +BRAF|Global X Brazil Financials ETF|P|BRAF|Y|100|N|BRAF +BRAQ|Global X Brazil Consumer ETF|P|BRAQ|Y|100|N|BRAQ +BRAZ|Global X Brazil Mid Cap ETF|P|BRAZ|Y|100|N|BRAZ +BRC|Brady Corporation Common Stock|N|BRC|N|100|N|BRC +BRF|Market Vectors Brazil Small-Cap ETF|P|BRF|Y|100|N|BRF +BRFS|BRF S.A.|N|BRFS|N|100|N|BRFS +BRG|Bluerock Residential Growth REIT, Inc. Class A Common Stock|A|BRG|N|100|N|BRG +BRK.A|Berkshire Hathaway Inc. Common Stock|N|BRK/A|N|1|N|BRK.A +BRK.B|Berkshire Hathaway Inc. New Common Stock|N|BRK/B|N|100|N|BRK.B +BRN|Barnwell Industries, Inc. Common Stock|A|BRN|N|100|N|BRN +BRO|Brown & Brown, Inc. Common Stock|N|BRO|N|100|N|BRO +BRP|Brookfield Residential Properties Inc. Common Stock|N|BRP|N|100|N|BRP +BRS|Bristow Group Inc. Common Stock|N|BRS|N|100|N|BRS +BRSS|Global Brass and Copper Holdings, Inc. Common Stock|N|BRSS|N|100|N|BRSS +BRT|BRT Realty Trust Common Stock|N|BRT|N|100|N|BRT +BRX|Brixmor Property Group Inc. Common Stock|N|BRX|N|100|N|BRX +BRXX|EGShares Brazil Infrastructure ETF|P|BRXX|Y|100|N|BRXX +BRZU|Direxion Daily Brazil Bull 3X Shares|P|BRZU|Y|100|N|BRZU +BSAC|Banco Santander - Chile ADS|N|BSAC|N|100|N|BSAC +BSBR|Banco Santander Brasil SA American Depositary Shares, each representing one unit|N|BSBR|N|100|N|BSBR +BSCF|Guggenheim BulletShares 2015 Corporate Bond ETF|P|BSCF|Y|100|N|BSCF +BSCG|Guggenheim BulletShares 2016 Corporate Bond ETF|P|BSCG|Y|100|N|BSCG +BSCH|Guggenheim BulletShares 2017 Corporate Bond ETF|P|BSCH|Y|100|N|BSCH +BSCI|Guggenheim BulletShares 2018 Corporate Bond ETF|P|BSCI|Y|100|N|BSCI +BSCJ|Guggenheim BulletShares 2019 Corporate Bond ETF|P|BSCJ|Y|100|N|BSCJ +BSCK|Guggenheim BulletShares 2020 Corporate Bond ETF|P|BSCK|Y|100|N|BSCK +BSCL|Guggenheim BulletShares 2021 Corporate Bond ETF|P|BSCL|Y|100|N|BSCL +BSCM|Guggenheim BulletShares 2022 Corporate Bond ETF|P|BSCM|Y|100|N|BSCM +BSCN|Guggenheim BulletShares 2023 Corporate Bond ETF|P|BSCN|Y|100|N|BSCN +BSCO|Guggenheim BulletShares 2024 Corporate Bond ETF|P|BSCO|Y|100|N|BSCO +BSD|BlackRock Strategic Municipal Trust Inc. (The) Common Stock|N|BSD|N|100|N|BSD +BSE|Blackrock New York Municipal Income Quality Trust Common Shares of Beneficial Interest|N|BSE|N|100|N|BSE +BSI|Alon Blue Square Israel Ltd.|N|BSI|N|100|N|BSI +BSJF|Guggenheim BulletShares 2015 High Yield Corporate Bond|P|BSJF|Y|100|N|BSJF +BSJG|Guggenheim BulletShares 2016 High Yield Corporate Bond ETF|P|BSJG|Y|100|N|BSJG +BSJH|Guggenheim BulletShares 2017 High Yield Corporate Bond ETF|P|BSJH|Y|100|N|BSJH +BSJI|Guggenheim BulletShares 2018 High Yield Corporate Bond ETF|P|BSJI|Y|100|N|BSJI +BSJJ|Guggenheim BulletShares 2019 High Yield Corporate Bond ETF|P|BSJJ|Y|100|N|BSJJ +BSJK|Guggenheim BulletShares 2020 High Yield Corporate Bond ETF|P|BSJK|Y|100|N|BSJK +BSJL|Guggenheim BulletShares 2021 High Yield Corporate Bond ETF|P|BSJL|Y|100|N|BSJL +BSJM|Guggenheim BulletShares 2022 High Yield Corporate Bond ETF|P|BSJM|Y|100|N|BSJM +BSL|Blackstone GSO Senior Floating Rate Term Fund Common Shares of Beneficial Interest|N|BSL|N|100|N|BSL +BSMX|Grupo Financiero Santander Mexico S.A. B. de C.V. American Depositary Shares, each representing five Series B shares|N|BSMX|N|100|N|BSMX +BST|BlackRock Science and Technology Trust Common Shares of Beneficial Interest|N|BST|N|100|N|BST +BSV|Vanguard Short-Term Bond ETF|P|BSV|Y|100|N|BSV +BSX|Boston Scientific Corporation Common Stock|N|BSX|N|100|N|BSX +BT|BT Group plc Common Stock|N|BT|N|100|N|BT +BTA|BlackRock Long-Term Municipal Advantage Trust BlackRock Long-Term Municipal Advantage Trust Common Shares of Beneficial Interest|N|BTA|N|100|N|BTA +BTAL|QuantShares U.S. Market Neutral Anti Beta Fund ETF|P|BTAL|Y|100|N|BTAL +BTE|Baytex Energy Corp|N|BTE|N|100|N|BTE +BTF|Boulder Total Return Fund, Inc. Common Stock|N|BTF|N|100|N|BTF +BTG|B2Gold Corp Common shares (Canada)|A|BTG|N|100|N|BTG +BTH|Blyth, Inc. New Common Stock|N|BTH|N|100|N|BTH +BTI|British American Tobacco Industries, p.l.c. Common Stock ADR|A|BTI|N|100|N|BTI +BTN|Ballantyne Strong, Inc. Common Stock|A|BTN|N|100|N|BTN +BTO|John Hancock Financial Opportunities Fund Common Stock|N|BTO|N|100|N|BTO +BTT|BlackRock Municipal Target Term Trust Inc. (The) Common Shares of Beneficial Interest|N|BTT|N|100|N|BTT +BTU|Peabody Energy Corporation Common Stock|N|BTU|N|100|N|BTU +BTX|BioTime, Inc. Common Stock|A|BTX|N|100|N|BTX +BTX.W|BioTime, Inc. Warrant (Expiring 10/1/2018)|A|BTX/WS|N|100|N|BTX+ +BTZ|BlackRock Credit Allocation Income Trust|N|BTZ|N|100|N|BTZ +BUD|Anheuser-Busch Inbev SA Sponsored ADR (Belgium)|N|BUD|N|100|N|BUD +BUI|BlackRock Utility and Infrastructure Trust Common Shares of Beneficial Interest|N|BUI|N|100|N|BUI +BUNL|PowerShares DB German Bund Futures ETN|P|BUNL|N|100|N|BUNL +BUNT|PowerShares DB 3X German Bund Futures ETN|P|BUNT|N|100|N|BUNT +BURL|Burlington Stores, Inc. Common Stock|N|BURL|N|100|N|BURL +BVN|Buenaventura Mining Company Inc.|N|BVN|N|100|N|BVN +BVX|Bovie Medical Corporation Common Stock|A|BVX|N|100|N|BVX +BWA|BorgWarner Inc. Common Stock|N|BWA|N|100|N|BWA +BWC|Babcock Common Stock|N|BWC|N|100|N|BWC +BWG|Legg Mason BW Global Income Opportunities Fund Inc. Common Stock|N|BWG|N|100|N|BWG +BWL.A|Bowl America, Inc. Class A Common Stock|A|BWL/A|N|100|N|BWL.A +BWP|Boardwalk Pipeline Partners LP Common Units|N|BWP|N|100|N|BWP +BWS|Brown Shoe Company, Inc. Common Stock|N|BWS|N|100|N|BWS +BWV|iPath Goldman Sachs Barclays Bank PLC iPath Exchange Traded Notes Linked to the CBOE S&P 500 BuyWrite Index Structured Product|P|BWV|N|100|N|BWV +BWX|SPDR Barclays Intl Treasury Bd|P|BWX|Y|100|N|BWX +BWZ|SPDR Barclays Short Term International Treasury Bond ETF|P|BWZ|Y|100|N|BWZ +BX|The Blackstone Group L.P. Common Units Representing Limited Partnership Interests|N|BX|N|100|N|BX +BXC|Bluelinx Holdings Inc. Common Stock|N|BXC|N|100|N|BXC +BXE|Bellatrix Exploration Ltd Ordinary Shares (Canada)|N|BXE|N|100|N|BXE +BXMT|Blackstone Mortgage Trust, Inc. Common Stock|N|BXMT|N|100|N|BXMT +BXMX|Nuveen S&P 500 Buy-Write Income Fund Common Shares of Beneficial Interest|N|BXMX|N|100|N|BXMX +BXP|Boston Properties, Inc. Common Stock|N|BXP|N|100|N|BXP +BXP$B|Boston Properties, Inc. Depositary Shares, each representing 1/100th of a share of the Issuer's 5.25% Sockeries B Cumulative Redeemable Preferred St|N|BXPpB|N|100|N|BXP-B +BXS|BancorpSouth, Inc. Common Stock|N|BXS|N|100|N|BXS +BYD|Boyd Gaming Corporation Common Stock|N|BYD|N|100|N|BYD +BYLD|iShares Yield Optimized Bond ETF|P|BYLD|Y|100|N|BYLD +BYM|Blackrock Municipal Income Quality Trust Common Shares of Beneficial Interest|N|BYM|N|100|N|BYM +BZC|Breeze-Eastern Corporation Common Stock|A|BZC|N|100|N|BZC +BZF|WisdomTree Brazilian Real Strategy Fund|P|BZF|Y|100|N|BZF +BZH|Beazer Homes USA, Inc. Common Stock|N|BZH|N|100|N|BZH +BZM|BlackRock Maryland Municipal Bond Trust Common shares of beneficial interest|A|BZM|N|100|N|BZM +BZQ|ProShares UltraShort MSCI Brazil Capped|P|BZQ|Y|100|N|BZQ +BZT|Beazer Homes USA, Inc. Tangible Equity Unit|N|BZT|N|100|N|BZT +C|Citigroup, Inc. Common Stock|N|C|N|100|N|C +C$C|Citigroup Inc. Depositary Shares representing 1/1000 Series C Noncumulative Preferred Stock (United States)|N|CpC|N|100|N|C-C +C$J|Citigroup Inc. Dep Shs Repstg 1/1000 Pfd Ser J Fixed/Fltg|N|CpJ|N|100|N|C-J +C$K|Citigroup Inc. Dep Shs Repstg 1/1000th Pfd Ser K|N|CpK|N|100|N|C-K +C$L|Citigroup Inc. Depositary Share representing 1/1000 interest in a share of noncumulative series L|N|CpL|N|100|N|C-L +C$N|Citigroup Capital VIII 7.875% Fixed rate Floating Rate trust Preferred Securities (TruPS)|N|CpN|N|100|N|C-N +C$P|Citigroup Inc. Dep Shs Repstg 1/1000th Pfd Ser AA|N|CpP|N|100|N|C-P +C.A|Citigroup Inc. Warrants Class A expiring January 4, 2019|N|C/WS/A|N|100|N|C+A +C.B|Citigroup Inc. Class B Warant expiring October 28, 2018|N|C/WS/B|N|100|N|C+B +CAB|Cabela's Inc Class A Common Stock|N|CAB|N|100|N|CAB +CACI|CACI International, Inc. Class A Common Stock|N|CACI|N|100|N|CACI +CAE|CAE Inc. Ordinary Shares|N|CAE|N|100|N|CAE +CAF|Morgan Stanley China A Share Fund Inc. Common Stock|N|CAF|N|100|N|CAF +CAFE|iPath Pure Beta Coffee ETN|P|CAFE|N|100|N|CAFE +CAG|ConAgra Foods, Inc. Common Stock|N|CAG|N|100|N|CAG +CAH|Cardinal Health, Inc. Common Stock|N|CAH|N|100|N|CAH +CAJ|Canon, Inc. American Depositary Shares|N|CAJ|N|100|N|CAJ +CAK|CAMAC Energy Inc.|A|CAK|N|100|N|CAK +CALX|Calix, Inc Common Stock|N|CALX|N|100|N|CALX +CAM|Cameron International Corporation Common Stock|N|CAM|N|100|N|CAM +CANE|Teucrium Sugar Fund ETV|P|CANE|Y|100|N|CANE +CANF|Can-Fite Biopharma Ltd Sponsored ADR (Israel)|A|CANF|N|100|N|CANF +CAP|Cai International, Inc. Common Stock|N|CAP|N|100|N|CAP +CAPE|Barclays ETN Schiller CAPE|P|CAPE|N|100|N|CAPE +CAPL|CrossAmerica Partners LP Common Units representing limited partner interests|N|CAPL|N|100|N|CAPL +CAS|Castle (A.M.) & Co. Common Stock|N|CAS|N|100|N|CAS +CAT|Caterpillar, Inc. Common Stock|N|CAT|N|100|N|CAT +CATO|Cato Corporation (The) Class A Common Stock|N|CATO|N|100|N|CATO +CAW|CCA Industries, Inc. Common Stock|A|CAW|N|100|N|CAW +CB|Chubb Corporation (The) Common Stock|N|CB|N|100|N|CB +CBA|ClearBridge American Energy MLP Fund Inc. Common Stock|N|CBA|N|100|N|CBA +CBB|Cincinnati Bell Inc. Common Stock|N|CBB|N|100|N|CBB +CBB$B|Cincinnati Bell Inc. Preferred Stock|N|CBBpB|N|100|N|CBB-B +CBD|Companhia Brasileira de Distribuicao ADS|N|CBD|N|100|N|CBD +CBG|CBRE Group Inc Common Stock Class A|N|CBG|N|100|N|CBG +CBI|Chicago Bridge & Iron Company N.V. Common Stock|N|CBI|N|100|N|CBI +CBK|Christopher & Banks Corporation Common Stock|N|CBK|N|100|N|CBK +CBL|CBL & Associates Properties, Inc. Common Stock|N|CBL|N|100|N|CBL +CBL$D|CBL & Associates Properties, Inc. Dep Shares Repstg 1/10th Preferred Series D|N|CBLpD|N|100|N|CBL-D +CBL$E|CBL & Associates Properties, Inc. Depositary Shs Repstg 1/10 6.625% Ser E Cum Redeemable (Pfd Stk)|N|CBLpE|N|100|N|CBL-E +CBM|Cambrex Corporation Common Stock|N|CBM|N|100|N|CBM +CBND|SPDR Barclays Issuer Scored Corporate Bond ETF|P|CBND|Y|100|N|CBND +CBO|CBO (Listing Market - NYSE - Networks A/E) Common Stock|N|CBO|N|100|Y|CBO +CBON|Market Vectors ChinaAMC China Bond ETF|P|CBON|Y|100|N|CBON +CBPX|Continental Building Products, Inc. Common Stock|N|CBPX|N|100|N|CBPX +CBR|Ciber, Inc. Common Stock|N|CBR|N|100|N|CBR +CBS|CBS Corporation Class B Common Stock|N|CBS|N|100|N|CBS +CBS.A|CBS Corporation CBS Corporation Class A Common Stock|N|CBS/A|N|100|N|CBS.A +CBT|Cabot Corporation Common Stock|N|CBT|N|100|N|CBT +CBU|Community Bank System, Inc. Common Stock|N|CBU|N|100|N|CBU +CBX|CBX (Listing Market NYSE Networks AE) Common Stock|N|CBX|N|100|Y|CBX +CBZ|CBIZ, Inc. Common Stock|N|CBZ|N|100|N|CBZ +CCA|MFS California Municipal Fund Common Shares of Beneficial Interest|A|CCA|N|100|N|CCA +CCC|Calgon Carbon Corporation Common Stock|N|CCC|N|100|N|CCC +CCE|Coca-Cola Enterprises, Inc. Common Stock|N|CCE|N|100|N|CCE +CCF|Chase Corporation Common Stock|A|CCF|N|100|N|CCF +CCG|Campus Crest Communities, Inc. Common Stock|N|CCG|N|100|N|CCG +CCG$A|Campus Crest Communities, Inc. 8.00% Series A Cumulative Redeemable Preferred Stock|N|CCGpA|N|100|N|CCG-A +CCI|Crown Castle International Corp. (REIT) Common Stock|N|CCI|N|100|N|CCI +CCI$A|Crown Castle International Corp. (REIT) Mandatory Conv Pfd Stk Series A|N|CCIpA|N|100|N|CCI-A +CCJ|Cameco Corporation Common Stock|N|CCJ|N|100|N|CCJ +CCK|Crown Holdings, Inc.|N|CCK|N|100|N|CCK +CCL|Carnival Corporation Common Stock|N|CCL|N|100|N|CCL +CCM|Concord Medical Services Holdings Limited ADS (Each represents three ordinary shares)|N|CCM|N|100|N|CCM +CCO|Clear Channel Outdoor Holdings, Inc. Clear Channel Outdoor Holdings, Inc. Class A Common Stock|N|CCO|N|100|N|CCO +CCS|Century Communities, Inc. Common Stock|N|CCS|N|100|N|CCS +CCSC|Country Style Cooking Restaurant Chain Co., Ltd American Depositary Shares, each representing four ordinary shares|N|CCSC|N|100|N|CCSC +CCU|Compania Cervecerias Unidas, S.A. Common Stock|N|CCU|N|100|N|CCU +CCV|Comcast Corporation 5.00% Notes due 2061|N|CCV|N|100|N|CCV +CCX|WisdomTree Commodity Currency Strategy Fund|P|CCX|Y|100|N|CCX +CCXE|WisdomTree Commodity Country Equity Index|P|CCXE|Y|100|N|CCXE +CCZ|Comcast Holdings ZONES|N|CCZ|N|100|N|CCZ +CDE|Coeur Mining, Inc. Common Stock|N|CDE|N|100|N|CDE +CDE.W|Coeur Mining, Inc. Warrant expiring April 16, 2017|N|CDE/WS|N|100|N|CDE+ +CDI|CDI Corporation Common Stock|N|CDI|N|100|N|CDI +CDR|Cedar Realty Trust, Inc. Common Stock|N|CDR|N|100|N|CDR +CDR$B|Cedar Realty Trust, Inc. 7.25% Series B Cumulative Redeemable Preferred Stock|N|CDRpB|N|100|N|CDR-B +CE|Celanese Corporation Celanese Corporation Series A Common Stock|N|CE|N|100|N|CE +CEA|China Eastern Airlines Corporation Ltd. Common Stock|N|CEA|N|100|N|CEA +CEB|Corporate Executive Board Company (The) Common Stock|N|CEB|N|100|N|CEB +CEE|Central Europe, Russia and Turkey Fund, Inc. (The) Common Stock|N|CEE|N|100|N|CEE +CEF|Central Fund of Canada Limited Common Stock|A|CEF|N|100|N|CEF +CEFL|ETRACS Monthly Pay 2X Leveraged Closed-End Fund ETN|P|CEFL|N|100|N|CEFL +CEL|Cellcom Israel, Ltd. Ordinary Shares|N|CEL|N|100|N|CEL +CELP|Cypress Energy Partners, L.P. Common Units representing limited partner interests|N|CELP|N|100|N|CELP +CEM|ClearBridge Energy MLP Fund Inc. Common Stock|N|CEM|N|100|N|CEM +CEMB|iShares Emerging Markets Corporate Bond ETF|Z|CEMB|Y|100|N|CEMB +CEN|Center Coast MLP & Infrastructure Fund Common Shares of Beneficial Interest|N|CEN|N|100|N|CEN +CEO|CNOOC Limited Common Stock|N|CEO|N|100|N|CEO +CEQP|Crestwood Equity Partners LP|N|CEQP|N|100|N|CEQP +CET|Central Securities Corporation Common Stock|A|CET|N|100|N|CET +CEV|Eaton Vance California Municipal Income Trust Shares of Beneficial Interest|A|CEV|N|100|N|CEV +CEW|WisdomTree Emerging Currency Strategy Fund|P|CEW|Y|100|N|CEW +CF|CF Industries Holdings, Inc. Common Stock|N|CF|N|100|N|CF +CFC$A|Countrywide Capital IV (New) 6.75% Trust Pfd Securities|N|CFCpA|N|100|N|CFC-A +CFC$B|Countrywide Capital V (New) 7.00% Capital Securities|N|CFCpB|N|100|N|CFC-B +CFD|Nuveen Diversified Commodity Fund Common Units of Beneficial Interest|A|CFD|N|100|N|CFD +CFG|Citizens Financial Group, Inc. Common Stock|N|CFG|N|100|N|CFG +CFI|Culp, Inc. Common Stock|N|CFI|N|100|N|CFI +CFN|CareFusion Corporation Common Stock|N|CFN|N|100|N|CFN +CFP|Cornerstone Progressive Return Fund Common Shares of beneficial interest|A|CFP|N|100|N|CFP +CFR|Cullen/Frost Bankers, Inc. Common Stock|N|CFR|N|100|N|CFR +CFR$A|Cullen/Frost Bankers, Inc. Perpetual Preferred Series A|N|CFRpA|N|100|N|CFR-A +CFX|Colfax Corporation Common Stock|N|CFX|N|100|N|CFX +CGA|China Green Agriculture, Inc. Common Stock|N|CGA|N|100|N|CGA +CGG|CGG|N|CGG|N|100|N|CGG +CGI|Celadon Group, Inc. Common Stock|N|CGI|N|100|N|CGI +CGW|Guggenheim S&P Global Water|P|CGW|Y|100|N|CGW +CH|Aberdeen Chile Fund, Inc. (The) Common Stock|A|CH|N|100|N|CH +CHA|China Telecom Corp Ltd ADS|N|CHA|N|100|N|CHA +CHD|Church & Dwight Company, Inc. Common Stock|N|CHD|N|100|N|CHD +CHE|Chemed Corp|N|CHE|N|100|N|CHE +CHEP|QuantShares U.S. Market Neutral Value Fund ETF|P|CHEP|Y|100|N|CHEP +CHGG|Chegg, Inc. Common Stock|N|CHGG|N|100|N|CHGG +CHH|Choice Hotels International, Inc. Common Stock|N|CHH|N|100|N|CHH +CHIE|Global X China Energy ETF|P|CHIE|Y|100|N|CHIE +CHII|Global X China Industrials ETF|P|CHII|Y|100|N|CHII +CHIM|Global X China Materials ETF|P|CHIM|Y|100|N|CHIM +CHIQ|Global X China Consumer ETF|P|CHIQ|Y|100|N|CHIQ +CHIX|Global X China Financials ETF|P|CHIX|Y|100|N|CHIX +CHK|Chesapeake Energy Corporation Common Stock|N|CHK|N|100|N|CHK +CHK$D|Chesapeake Energy Corporation Convertible Preferred|N|CHKpD|N|100|N|CHK-D +CHKR|Chesapeake Granite Wash Trust Common Units representing beneficial interests in the Trust|N|CHKR|N|100|N|CHKR +CHL|China Mobile Limited Common Stock|N|CHL|N|100|N|CHL +CHMI|Cherry Hill Mortgage Investment Corporation Common Stock|N|CHMI|N|100|N|CHMI +CHMT|Chemtura Corp. Common Stock|N|CHMT|N|100|N|CHMT +CHN|China Fund, Inc. (The) Common Stock|N|CHN|N|100|N|CHN +CHNA|PowerShares China A-Share Portfolio|P|CHNA|Y|100|N|CHNA +CHNB|Global X GF China Bond ETF|P|CHNB|Y|100|N|CHNB +CHOC|iPath Pure Beta Cocoa ETN|P|CHOC|N|100|N|CHOC +CHS|Chico's FAS, Inc. Common Stock|N|CHS|N|100|N|CHS +CHSP|Chesapeake Lodging Trust Common Shares of Beneficial Interest|N|CHSP|N|100|N|CHSP +CHSP$A|Chesapeake Lodging Trust 7.75% Series A Cumulative Redeemable Preferred Shares|N|CHSPpA|N|100|N|CHSP-A +CHT|Chunghwa Telecom Co., Ltd.|N|CHT|N|100|N|CHT +CHU|China Unicom (Hong Kong) Ltd Common Stock|N|CHU|N|100|N|CHU +CI|Cigna Corporation Common Stock|N|CI|N|100|N|CI +CIA|Citizens, Inc. Class A Common Stock ($1.00 Par)|N|CIA|N|100|N|CIA +CIB|BanColombia S.A. Common Stock|N|CIB|N|100|N|CIB +CIE|Cobalt International Energy, Inc. COBALT INTERNATIONAL ENERGY, INC.|N|CIE|N|100|N|CIE +CIEN|Ciena Corporation Common Stock|N|CIEN|N|100|N|CIEN +CIF|MFS Intermediate High Income Fund Common Stock|N|CIF|N|100|N|CIF +CIG|Comp En De Mn Cemig ADS American Depositary Shares|N|CIG|N|100|N|CIG +CIG.C|Comp En De Mn Cemig ADS American Depositary Receipts|N|CIG/C|N|100|N|CIG.C +CII|Blackrock Capital and Income Fund, Inc.|N|CII|N|100|N|CII +CIK|Credit Suisse Asset Management Income Fund, Inc. Common Stock|A|CIK|N|100|N|CIK +CIM|Chimera Investment Corporation Common Stock|N|CIM|N|100|N|CIM +CIO|City Office REIT, Inc. Common Stock|N|CIO|N|100|N|CIO +CIR|CIRCOR International, Inc. Common Stock|N|CIR|N|100|N|CIR +CIT|CIT Group Inc (DEL) Common Stock|N|CIT|N|100|N|CIT +CIU|iShares Intermediate Credit Bond ETF|P|CIU|Y|100|N|CIU +CIVI|Civitas Solutions, Inc. Common Stock|N|CIVI|N|100|N|CIVI +CIX|CompX International Inc. Common Stock|A|CIX|N|100|N|CIX +CJES|C&J Energy Services, Inc. Common Stock|N|CJES|N|100|N|CJES +CKH|SEACOR Holdings Inc. Common Stock|N|CKH|N|100|N|CKH +CKP|Checkpoint Systms, Inc. Common Stock|N|CKP|N|100|N|CKP +CKX|CKX Lands, Inc. Common Stock|A|CKX|N|100|N|CKX +CL|Colgate-Palmolive Company Common Stock|N|CL|N|100|N|CL +CLA|Capitala Finance Corp. 7.125% Notes due 2021|N|CLA|N|100|N|CLA +CLB|Core Laboratories N.V. Common Stock|N|CLB|N|100|N|CLB +CLC|CLARCOR Inc. Common Stock|N|CLC|N|100|N|CLC +CLD|Cloud Peak Energy Inc Common Stock|N|CLD|N|100|N|CLD +CLDT|Chatham Lodging Trust (REIT) Common Shares of Beneficial Interest|N|CLDT|N|100|N|CLDT +CLF|Cliffs Natural Resources Inc Common Stock|N|CLF|N|100|N|CLF +CLGX|CoreLogic, Inc. Common Stock|N|CLGX|N|100|N|CLGX +CLH|Clean Harbors, Inc. Common Stock|N|CLH|N|100|N|CLH +CLI|Mack-Cali Realty Corporation Common Stock|N|CLI|N|100|N|CLI +CLM|Cornerstone Strategic Value Fund, Inc. New Common Stock|A|CLM|N|100|N|CLM +CLNY|Colony Financial, Inc Common Stock|N|CLNY|N|100|N|CLNY +CLNY$A|Colony Finl Inc Cum Red Perp Pfd Ser A %|N|CLNYpA|N|100|N|CLNY-A +CLNY$B|Colony Financial, Inc Perp Pfd Ser B %|N|CLNYpB|N|100|N|CLNY-B +CLR|Continental Resources, Inc. Common Stock|N|CLR|N|100|N|CLR +CLS|Celestica, Inc. Common Stock|N|CLS|N|100|N|CLS +CLV|Cliffs Natural Resources Inc. Depositary Shares Representing 1/40th Preferred Convertible Series A|N|CLV|N|100|N|CLV +CLW|Clearwater Paper Corporation Common Stock|N|CLW|N|100|N|CLW +CLX|Clorox Company (The) Common Stock|N|CLX|N|100|N|CLX +CLY|iShares 10 Year Credit Bond ETF|P|CLY|Y|100|N|CLY +CM|Canadian Imperial Bank of Commerce Common Stock|N|CM|N|100|N|CM +CMA|Comerica Incorporated Common Stock|N|CMA|N|100|N|CMA +CMA.W|Comerica Incorporated Warrant expiring November 14, 2018|N|CMA/WS|N|100|N|CMA+ +CMBS|iShares CMBS Bond ETF|P|CMBS|Y|100|N|CMBS +CMC|Commercial Metals Company Common Stock|N|CMC|N|100|N|CMC +CMCM|Cheetah Mobile Inc. American Depositary Shares, each representing 10 Class Ordinary Shares|N|CMCM|N|100|N|CMCM +CMD|ProShares UltraShort Bloomberg Commodity|P|CMD|Y|100|N|CMD +CMDT|iShares Commodity Optimized Trust|P|CMDT|Y|100|N|CMDT +CMF|iShares California AMT-Free Muni Bond ETF|P|CMF|Y|100|N|CMF +CMG|Chipotle Mexican Grill, Inc. Common Stock|N|CMG|N|100|N|CMG +CMI|Cummins Inc. Common Stock|N|CMI|N|100|N|CMI +CMK|MFS Intermarket Income Trust I Common Stock|N|CMK|N|100|N|CMK +CMLP|Crestwood Midstream Partners LP|N|CMLP|N|100|N|CMLP +CMN|Cantel Medical Corp. Common Stock|N|CMN|N|100|N|CMN +CMO|Capstead Mortgage Corporation Common Stock|N|CMO|N|100|N|CMO +CMO$E|Capstead Mortgage Corporation Pfd Ser E|N|CMOpE|N|100|N|CMO-E +CMP|Compass Minerals Intl Inc Common Stock|N|CMP|N|100|N|CMP +CMRE|Costamare Inc. Common Stock $0.0001 par value|N|CMRE|N|100|N|CMRE +CMRE$B|Costamare Inc. Perpetual Preferred Stock Series B (Marshall Islands)|N|CMREpB|N|100|N|CMRE-B +CMRE$C|Costamare Inc. Perpetual Preferred Series C (Marshall Islands)|N|CMREpC|N|100|N|CMRE-C +CMS|CMS Energy Corporation Common Stock|N|CMS|N|100|N|CMS +CMS$B|CMS Energy Corporation Preferred Stock|N|CMSpB|N|10|N|CMS-B +CMT|Core Molding Technologies Inc Common Stock|A|CMT|N|100|N|CMT +CMU|MFS Municipal Income Trust Common Stock|N|CMU|N|100|N|CMU +CN|Deutsche X-trackers Harvest MSCI All China ETF|P|CN|Y|100|N|CN +CNA|CNA Financial Corporation Common Stock|N|CNA|N|100|N|CNA +CNC|Centene Corporation Common Stock|N|CNC|N|100|N|CNC +CNCO|Cencosud S.A. American Depositary Shares (Each representing three Common Shares)|N|CNCO|N|100|N|CNCO +CNDA|IQ Canada Small Cap ETF|P|CNDA|Y|100|N|CNDA +CNHI|CNH Industrial N.V. Common Shares|N|CNHI|N|100|N|CNHI +CNI|Canadian National Railway Company Common Stock|N|CNI|N|100|N|CNI +CNK|Cinemark Holdings Inc Cinemark Holdings, Inc. Common Stock|N|CNK|N|100|N|CNK +CNL|Cleco Corporation Common Stock|N|CNL|N|100|N|CNL +CNNX|Cone Midstream Partners LP Common Units representing limited partner interests|N|CNNX|N|100|N|CNNX +CNO|CNO Financial Group, Inc. Common Stock|N|CNO|N|100|N|CNO +CNP|CenterPoint Energy, Inc (Holding Co) Common Stock|N|CNP|N|100|N|CNP +CNQ|Canadian Natural Resources Limited Common Stock|N|CNQ|N|100|N|CNQ +CNR|China Metro-Rural Holdings Limited|A|CNR|N|100|N|CNR +CNS|Cohn & Steers Inc Common Stock|N|CNS|N|100|N|CNS +CNW|Con-Way, Inc. Common Stock|N|CNW|N|100|N|CNW +CNX|CONSOL Energy Inc. Common Stock|N|CNX|N|100|N|CNX +CNXT|Market Vectors ChinaAMC SME-ChNext ETF|P|CNXT|Y|100|N|CNXT +CNY|Market Vectors Chinese Renminbi/USD ETN|P|CNY|N|100|N|CNY +CO|China Cord Blood Corporation Common Stock|N|CO|N|100|N|CO +COBO|ProShares USD Covered Bond|P|COBO|Y|100|N|COBO +CODE|Spansion Inc Common Stock Class A New|N|CODE|N|100|N|CODE +CODI|Compass Diversified Holdings Shares of Beneficial Interest|N|CODI|N|100|N|CODI +COF|Capital One Financial Corporation Common Stock|N|COF|N|100|N|COF +COF$C|Capital One Financial Corp Depository Shares Representing 1/40th Int Perp Pfd Ser C%|N|COFpC|N|100|N|COF-C +COF$D|Capital One Financial Corp Depository Shares Representing 1/40th Interest Perpetual Preferred Series D|N|COFpD|N|100|N|COF-D +COF$P|Capital One Financial Corp Pfd Ser B|N|COFpP|N|100|N|COF-P +COF.W|Capital One Financial Corporation Warrants expiring November 14, 2018|N|COF/WS|N|100|N|COF+ +COG|Cabot Oil & Gas Corporation Common Stock|N|COG|N|100|N|COG +COH|Coach, Inc. Common Stock|N|COH|N|100|N|COH +COL|Rockwell Collins, Inc. Common Stock|N|COL|N|100|N|COL +COO|Cooper Companies, Inc. (The) Common Stock|N|COO|N|100|N|COO +COP|ConocoPhillips Common Stock|N|COP|N|100|N|COP +COPX|Global X Copper Miners ETF|P|COPX|Y|100|N|COPX +COR|CoreSite Realty Corporation Common Stock|N|COR|N|100|N|COR +COR$A|CoreSite Realty Corporation Pfd Ser A|N|CORpA|N|100|N|COR-A +CORN|Teucrium Corn Fund ETV|P|CORN|Y|100|N|CORN +CORP|Pimco Investment Grade Corporate Bond Index Exchange-Traded Fund|P|CORP|Y|100|N|CORP +CORR|CorEnergy Infrastructure Trust, Inc. Common Stock|N|CORR|N|100|N|CORR +COT|Cott Corporation Common Stock|N|COT|N|100|N|COT +COTY|Coty Inc. Class A Common Stock|N|COTY|N|100|N|COTY +COUP|Coupons.com Incorporated Common Stock|N|COUP|N|100|N|COUP +COV|Covidien plc. Ordinary Shares (Ireland)|N|COV|N|100|N|COV +COVR|Cover-All Technologies Inc. Common Stock|A|COVR|N|100|N|COVR +COW|iPath Bloomberg Livestock Total Return Sub-Index ETN|P|COW|N|100|N|COW +CP|Canadian Pacific Railway Limited Common Stock|N|CP|N|100|N|CP +CPA|Copa Holdings, S.A. Copa Holdings, S.A. Class A Common Stock|N|CPA|N|100|N|CPA +CPAC|Cementos Pacasmayo S.A.A. American Depositary Shares, each representing five Common Shares|N|CPAC|N|100|N|CPAC +CPB|Campbell Soup Company Common Stock|N|CPB|N|100|N|CPB +CPE|Callon Petroleum Company Common Stock|N|CPE|N|100|N|CPE +CPE$A|Callon Petroleum Company Preferred Shares Series A 10%|N|CPEpA|N|100|N|CPE-A +CPER|United States Copper Index Fund ETV|P|CPER|Y|100|N|CPER +CPF|Central Pacific Financial Corp New|N|CPF|N|100|N|CPF +CPG|Crescent Point Energy Corporation Ordinary Shares (Canada)|N|CPG|N|100|N|CPG +CPHI|China Pharma Holdings, Inc. Common Stock|A|CPHI|N|100|N|CPHI +CPI|IQ Real Return ETF|P|CPI|Y|100|N|CPI +CPK|Chesapeake Utilities Corporation Common Stock|N|CPK|N|100|N|CPK +CPL|CPFL Energia S.A. CPFL Energia S.A. American Depositary Shares|N|CPL|N|100|N|CPL +CPN|Calpine Corporation Common Stock|N|CPN|N|100|N|CPN +CPS|Cooper-Standard Holdings Inc. Common Stock|N|CPS|N|100|N|CPS +CPT|Camden Property Trust Common Stock|N|CPT|N|100|N|CPT +CQH|Cheniere Energy Partners LP Holdings, LLC Common Shares|A|CQH|N|100|N|CQH +CQP|Cheniere Energy Partners, LP Cheniere Energy Partners, LP Common Units|A|CQP|N|100|N|CQP +CQQQ|Guggenheim China Technology ETF|P|CQQQ|Y|100|N|CQQQ +CR|Crane Company Common Stock|N|CR|N|100|N|CR +CRBN|iShares MSCI ACWI Low Carbon Target ETF|P|CRBN|Y|100|N|CRBN +CRBQ|Global Commodity Equity ETF|P|CRBQ|Y|100|N|CRBQ +CRC|California Resources Corporation Common Stock|N|CRC|N|100|N|CRC +CRCM|Care.com, Inc. Common Stock|N|CRCM|N|100|N|CRCM +CRD.A|Crawford & Company Common Stock|N|CRD/A|N|100|N|CRD.A +CRD.B|Crawford & Company Common Stock|N|CRD/B|N|100|N|CRD.B +CRED|iShares Core U.S. Credit Bond ETF|P|CRED|Y|100|N|CRED +CRF|Cornerstone Total Return Fund, Inc. (The) Common Stock|A|CRF|N|100|N|CRF +CRH|CRH PLC American Depositary Shares|N|CRH|N|100|N|CRH +CRI|Carter's, Inc. Common Stock|N|CRI|N|100|N|CRI +CRK|Comstock Resources, Inc. Common Stock|N|CRK|N|100|N|CRK +CRL|Charles River Laboratories International, Inc. Common Stock|N|CRL|N|100|N|CRL +CRM|Salesforce.com Inc Common Stock|N|CRM|N|100|N|CRM +CRMD|CorMedix Inc Common Stock|A|CRMD|N|100|N|CRMD +CRMD.W|CorMedix Inc Warrant (expiring 3/24/2015)|A|CRMD/WS|N|100|N|CRMD+ +CROC|ProShares UltraShort Australian Dollar|P|CROC|Y|100|N|CROC +CROP|IQ Global Agribusiness Small Cap ETF|P|CROP|Y|100|N|CROP +CRR|Carbo Ceramics, Inc. Common Stock|N|CRR|N|100|N|CRR +CRS|Carpenter Technology Corporation Common Stock|N|CRS|N|100|N|CRS +CRT|Cross Timbers Royalty Trust Common Stock|N|CRT|N|100|N|CRT +CRV|Coast Distribution System, Inc. (The) Common Stock|A|CRV|N|100|N|CRV +CRVP|Crystal Rock Holdings, Inc. Class A Common Stock|A|CRVP|N|100|N|CRVP +CRY|CryoLife, Inc. Common Stock|N|CRY|N|100|N|CRY +CS|Credit Suisse Group American Depositary Shares|N|CS|N|100|N|CS +CSC|Computer Sciences Corporation Common Stock|N|CSC|N|100|N|CSC +CSCB|Credit Suisse Commodity Benchmark ETN|P|CSCB|N|100|N|CSCB +CSCR|Credit Suisse ommodity Rotation ETN|P|CSCR|N|100|N|CSCR +CSD|Guggenheim Spin-Off ETF|P|CSD|Y|100|N|CSD +CSG|Chambers Street Properties Common Shares of Beneficial Interest|N|CSG|N|100|N|CSG +CSH|Cash America International, Inc. Common Stock|N|CSH|N|100|N|CSH +CSI|Cutwater Select Income Fund|N|CSI|N|100|N|CSI +CSJ|iShares 1-3 Year Credit Bond ETF|P|CSJ|Y|100|N|CSJ +CSL|Carlisle Companies Incorporated Common Stock|N|CSL|N|100|N|CSL +CSLS|Credit Suisse Long Short Liquid Index ETN|P|CSLS|N|100|N|CSLS +CSLT|Castlight Health, Inc. Class B Common Stock|N|CSLT|N|100|N|CSLT +CSM|ProShares Large Cap Core Plus|P|CSM|Y|100|N|CSM +CSMA|Credit Suisse AG ETN due October 6, 2020 linked to Credit Suisse Merger Arbitrage Liquid Index|P|CSMA|N|100|N|CSMA +CSMB|Credit Suisse Exchange Trade Notes due March 13, 2031 linked on a Leveraged Basis to the Credit Suisse Merger Arbitrage Liquid Index|P|CSMB|N|100|N|CSMB +CSMN|Market Neutral Global Equity ETN Linked to the HS Market Neutral Index Powered by HOLT due September 15, 2031|P|CSMN|N|100|N|CSMN +CSS|CSS Industries, Inc. Common Stock|N|CSS|N|100|N|CSS +CST|CST Brands, Inc. Common Stock|N|CST|N|100|N|CST +CSTM|Constellium N.V. Ordinary Shares|N|CSTM|N|100|N|CSTM +CSU|Capital Senior Living Corporation Common Stock|N|CSU|N|100|N|CSU +CSV|Carriage Services, Inc. Common Stock|N|CSV|N|100|N|CSV +CSX|CSX Corporation Common Stock|N|CSX|N|100|N|CSX +CTB|Cooper Tire & Rubber Company Common Stock|N|CTB|N|100|N|CTB +CTF|Nuveen Long/Short Commodity Total Return Fund Common Units of Beneficial Interest|A|CTF|N|100|N|CTF +CTL|CenturyLink, Inc. Common Stock|N|CTL|N|100|N|CTL +CTLT|Catalent, Inc. Common Stock|N|CTLT|N|100|N|CTLT +CTNN|iPath Pure Beta Cotton ETN|P|CTNN|N|100|N|CTNN +CTO|Consolidated-Tomoka Land Co. Common Stock ($1.00 Par Value)|A|CTO|N|100|N|CTO +CTP|CTPartners Executive Search Inc. Common Stock|A|CTP|N|100|N|CTP +CTQ|Qwest Corporation 7.375% Notes due 2051|N|CTQ|N|100|N|CTQ +CTR|ClearBridge Energy MLP Total Return Fund Inc. Common Stock|N|CTR|N|100|N|CTR +CTS|CTS Corporation Common Stock|N|CTS|N|100|N|CTS +CTT|CatchMark Timber Trust, Inc. Class A Common Stock|N|CTT|N|100|N|CTT +CTU|Qwest Corporation 7.00% Notes due 2025|N|CTU|N|100|N|CTU +CTV|Qwest Corporation 6.875% Notes due 2054|N|CTV|N|100|N|CTV +CTW|Qwest Corporation 7.50% Notes due 2051|N|CTW|N|100|N|CTW +CTX|Qwest Corporation 7.00% Notes due 2052|N|CTX|N|100|N|CTX +CTY|Qwest Corporation 6.125% Notes due 2053|N|CTY|N|100|N|CTY +CUB|Cubic Corporation Common Stock|N|CUB|N|100|N|CUB +CUBE|CubeSmart Common Shares|N|CUBE|N|100|N|CUBE +CUBE$A|CubeSmart 7.75% Series A Cumulative Redeemable Preferred Shares of Beneficial Interest|N|CUBEpA|N|100|N|CUBE-A +CUBI|Customers Bancorp, Inc Common Stock|N|CUBI|N|100|N|CUBI +CUBS|Customers Bancorp, Inc 6.375% Senior Notes due 2018|N|CUBS|N|100|N|CUBS +CUDA|Barracuda Networks, Inc. Common Stock|N|CUDA|N|100|N|CUDA +CUK|Carnival Plc ADS ADS|N|CUK|N|100|N|CUK +CUO|Continental Materials Corporation Common Stock|A|CUO|N|100|N|CUO +CUPM|iPath Pure Beta Copper ETN|P|CUPM|N|100|N|CUPM +CUR|Neuralstem, Inc. Common Stock|A|CUR|N|100|N|CUR +CURE|Direxion Daily Healthcare Bull 3X Shares|P|CURE|Y|100|N|CURE +CUT|Guggenheim Timber ETF|P|CUT|Y|100|N|CUT +CUZ|Cousins Properties Incorporated Common Stock|N|CUZ|N|100|N|CUZ +CVA|Covanta Holding Corporation Common Stock|N|CVA|N|100|N|CVA +CVB|Lehman ABS Corporation 7.75% Corp Backed Tr Ctfs, Kinder Morgan Debenture-Backed series 2002-6|N|CVB|N|100|N|CVB +CVC|Cablevision Systems Corporation Class A Common Stock|N|CVC|N|100|N|CVC +CVD|Covance Inc. Common Stock|N|CVD|N|100|N|CVD +CVE|Cenovus Energy Inc Common Stock|N|CVE|N|100|N|CVE +CVEO|Civeo Corporation Common Stock|N|CVEO|N|100|N|CVEO +CVG|Convergys Corporation Common Stock|N|CVG|N|100|N|CVG +CVI|CVR Energy Inc. Common Stock|N|CVI|N|100|N|CVI +CVM|Cel-Sci Corporation Common Stock ($0.001 Par Value)|A|CVM|N|100|N|CVM +CVM.W|Cel-Sci Corporation Warrants Exp 10/11/2018|A|CVM/WS|N|100|N|CVM+ +CVO|Cenveo Inc|N|CVO|N|100|N|CVO +CVOL|C Tracks Exchange Traded Notes Based on the Performance of the Citi Volatility Index Total Return Fund|P|CVOL|N|100|N|CVOL +CVR|Chicago Rivet & Machine Co. Common Stock|A|CVR|N|100|N|CVR +CVRR|CVR Refining, LP Common Units Representing Limited Partner Interests|N|CVRR|N|100|N|CVRR +CVS|CVS Health Corporation Common Stock|N|CVS|N|100|N|CVS +CVSL|CVSL Inc. Common Stock|A|CVSL|N|100|N|CVSL +CVT|CVENT, INC. Common Stock|N|CVT|N|100|N|CVT +CVU|CPI Aerostructures, Inc. Common Stock|A|CVU|N|100|N|CVU +CVX|Chevron Corporation Common Stock|N|CVX|N|100|N|CVX +CVY|Guggenheim Multi-Asset Income ETF|P|CVY|Y|100|N|CVY +CW|Curtiss-Wright Corporation Common Stock|N|CW|N|100|N|CW +CWB|SPDR Barclays Convertible Securities ETF|P|CWB|Y|100|N|CWB +CWEI|Clayton Williams Energy, Inc. Common Stock|N|CWEI|N|100|N|CWEI +CWI|SPDR MSCI ACWI ex-US ETF|P|CWI|Y|100|N|CWI +CWT|California Water Service Group Common Stock|N|CWT|N|100|N|CWT +CX|Cemex, S.A.B. de C.V. Sponsored ADR|N|CX|N|100|N|CX +CXA|SPDR Nuveen Barclays California Municipal Bond ETF|P|CXA|Y|100|N|CXA +CXE|MFS High Income Municipal Trust Common Stock|N|CXE|N|100|N|CXE +CXH|MFS Investment Grade Municipal Trust Common Stock|N|CXH|N|100|N|CXH +CXO|Concho Resources Inc. Common Stock|N|CXO|N|100|N|CXO +CXP|Columbia Property Trust, Inc. Common Stock|N|CXP|N|100|N|CXP +CXW|Corrections Corporation of America Common Stock|N|CXW|N|100|N|CXW +CYB|WisdomTree Chinese Yuan Strategy Fund|P|CYB|Y|100|N|CYB +CYD|China Yuchai International Limited Common Stock|N|CYD|N|100|N|CYD +CYH|Community Health Systems, Inc. Common Stock|N|CYH|N|100|N|CYH +CYN|City National Corporation Common Stock|N|CYN|N|100|N|CYN +CYN$C|City National Corporation Depositary Shares Representing 1/40th Perpetual Preferred Series Series C|N|CYNpC|N|100|N|CYN-C +CYN$D|City National Corporation Depositary Shares Representing 1/40th Preferred Series D Fixed/Floating|N|CYNpD|N|100|N|CYN-D +CYNI|Cyan, Inc. Common Stock|N|CYNI|N|100|N|CYNI +CYS|CYS Investments, Inc. Common Stock|N|CYS|N|100|N|CYS +CYS$A|CYS Investments Inc Cumulative Redeemable Preferred Series A|N|CYSpA|N|100|N|CYS-A +CYS$B|CYS Investments, Inc. Preferred Series B|N|CYSpB|N|100|N|CYS-B +CYT|Cytec Industries Inc. Common Stock|N|CYT|N|100|N|CYT +CZA|Guggenheim Mid-Cap Core ETF|P|CZA|Y|100|N|CZA +CZZ|Cosan Limited Class A Common Stock|N|CZZ|N|100|N|CZZ +D|Dominion Resources, Inc. Common Stock|N|D|N|100|N|D +DAC|Danaos Corporation Common Stock|N|DAC|N|100|N|DAC +DAG|DB Agriculture Double Long ETN DB Agriculture Double Long ETN|P|DAG|N|100|N|DAG +DAKP|Dakota Plains Holdings, Inc. Common Stock|A|DAKP|N|100|N|DAKP +DAL|Delta Air Lines, Inc. Common Stock|N|DAL|N|100|N|DAL +DAN|Dana Holding Corporation Common Stock When-Issued|N|DAN|N|100|N|DAN +DANG|E-Commerce China Dangdang Inc. American Depositary Shares, each representing five Class A common shares|N|DANG|N|100|N|DANG +DAR|Darling Ingredients Inc. Common Stock|N|DAR|N|100|N|DAR +DATA|Tableau Software, Inc. Class A Common Stock|N|DATA|N|100|N|DATA +DB|Deutsche Bank AG Common Stock|N|DB|N|100|N|DB +DBA|PowerShares DB Agriculture Fund|P|DBA|Y|100|N|DBA +DBAP|Deutsche X-Trackers MSCI AC Asia Pacific ex Japan Hedged Equity ETF|P|DBAP|Y|100|N|DBAP +DBAW|Deutsche X-trackers MSCI All World ex US Hedged Equity ETF|P|DBAW|Y|100|N|DBAW +DBB|PowerShares DB Base Metals Fund|P|DBB|Y|100|N|DBB +DBBR|Deutsche X-trackers MSCI Brazil Hedged Equity Fund|P|DBBR|Y|100|N|DBBR +DBC|PowerShares DB Commodity Index Trac|P|DBC|Y|100|N|DBC +DBD|Diebold, Incorporated Common Stock|N|DBD|N|100|N|DBD +DBE|PowerShares DB Energy Fund|P|DBE|Y|100|N|DBE +DBEF|Deutsche X-trackers MSCI EAFE Hedged Equity ETF|P|DBEF|Y|100|N|DBEF +DBEM|Deutsche X-trackers MSCI Emerging Markets Hedged Equity ETF|P|DBEM|Y|100|N|DBEM +DBEU|Deutsche X-Trackers MSCI Europe Hedged Equity ETF|P|DBEU|Y|100|N|DBEU +DBEZ|Deutsche X-trackers MSCI EMU Hedged Equity ETF|P|DBEZ|Y|100|N|DBEZ +DBGR|Deutsche X-trackers MSCI Germany Hedged Equity ETF|P|DBGR|Y|100|N|DBGR +DBIZ|AdvisorShares Pring Turner Business Cycle ETF|P|DBIZ|Y|100|N|DBIZ +DBJP|Deutsche X-trackers MSCI Japan Hedged Equity ETF|P|DBJP|Y|100|N|DBJP +DBKO|Deutsche X-trackers MSCI South Korea Hedged Equity ETF|P|DBKO|Y|100|N|DBKO +DBL|DoubleLine Opportunistic Credit Fund Common Shares of Beneficial Interest|N|DBL|N|100|N|DBL +DBMX|Deutsche X-trackers MSCI Mexico Hedged Equity ETF|P|DBMX|Y|100|N|DBMX +DBO|PowerShares DB Oil Fund|P|DBO|Y|100|N|DBO +DBP|PowerShares DB Precious Metals Fund|P|DBP|Y|100|N|DBP +DBS|PowerShares DB Silver Fund|P|DBS|Y|100|N|DBS +DBU|WisdomTree Global ex-US Utility IndexInternational Utilities Sector Fund|P|DBU|Y|100|N|DBU +DBUK|Deutsche X-Trackers MSCI United Kingdom Hedged Equity ETF|P|DBUK|Y|100|N|DBUK +DBV|PowerShares DB G10 Currency Harvest|P|DBV|Y|100|N|DBV +DCA|Virtus Total Return Fund|N|DCA|N|100|N|DCA +DCI|Donaldson Company, Inc. Common Stock|N|DCI|N|100|N|DCI +DCM|NTT DOCOMO, Inc American Depositary Shares|N|DCM|N|100|N|DCM +DCNG|iPath Seasonal Natural Gas ETN|P|DCNG|N|100|N|DCNG +DCO|Ducommun Incorporated Common Stock|N|DCO|N|100|N|DCO +DCT|DCT Industrial Trust Inc Common Stock|N|DCT|N|100|N|DCT +DCUA|Dominion Resources, Inc. Corporate Unit 2013 Series A|N|DCUA|N|100|N|DCUA +DCUB|Dominion Resources, Inc. Corporate Unit 2013 Series B|N|DCUB|N|100|N|DCUB +DCUC|Dominion Resources, Inc. VA New 2014 Series A Corp Unit|N|DCUC|N|100|N|DCUC +DD|E.I. du Pont de Nemours and Company Common Stock|N|DD|N|100|N|DD +DD$A|E.I. du Pont de Nemours and Company Preferred Stock|N|DDpA|N|100|N|DD-A +DD$B|E.I. du Pont de Nemours and Company Preferred Stock|N|DDpB|N|100|N|DD-B +DDC|Dominion Diamond Corporation Common Stock|N|DDC|N|100|N|DDC +DDD|3D Systems Corporation Common Stock|N|DDD|N|100|N|DDD +DDE|Dover Downs Gaming & Entertainment Inc Common Stock|N|DDE|N|100|N|DDE +DDF|Delaware Investments Dividend & Income Fund, Inc. Common Stock|N|DDF|N|100|N|DDF +DDG|ProShares Short Oil & Gas|P|DDG|Y|100|N|DDG +DDM|ProShares Ultra Dow30|P|DDM|Y|100|N|DDM +DDP|DB Commodity DB Commodity Short ETN|P|DDP|N|100|N|DDP +DDR|DDR Corp. Common Stock|N|DDR|N|100|N|DDR +DDR$J|DDR Corporation Dep Shs Repstg 1/20th Pfd Cl J|N|DDRpJ|N|100|N|DDR-J +DDR$K|DDR Corp. DEPOSITARY SH REPSTG 1/20TH PDF CL K % (United States)|N|DDRpK|N|100|N|DDR-K +DDS|Dillard's, Inc. Common Stock|N|DDS|N|100|N|DDS +DDT|Dillard's Capital Trust I|N|DDT|N|100|N|DDT +DE|Deere & Company Common Stock|N|DE|N|100|N|DE +DECK|Deckers Outdoor Corporation Common Stock|N|DECK|N|100|N|DECK +DEE|DB Commodity DB Commodity Double Short ETN|P|DEE|N|100|N|DEE +DEF|Guggenheim Defensive Equity ETF|P|DEF|Y|100|N|DEF +DEFL|PowerShares DB US Deflation ETN|P|DEFL|N|100|N|DEFL +DEG|Etablissements Delhaize Freres et Cie "Le Lion" S.A. Common Stock|N|DEG|N|100|N|DEG +DEI|Douglas Emmett, Inc. Common Stock|N|DEI|N|100|N|DEI +DEJ|Dejour Energy Inc. Ltd Ordinary Shares (Canada) New|A|DEJ|N|100|N|DEJ +DEL|Deltic Timber Corporation Common Stock|N|DEL|N|100|N|DEL +DEM|WisdomTree Emerging Markets High-Yielding Fund|P|DEM|Y|100|N|DEM +DEO|Diageo plc Common Stock|N|DEO|N|100|N|DEO +DES|WisdomTree Trust SmallCap Dividend Fund|P|DES|Y|100|N|DES +DEW|WisdomTree Europe High-Yielding Equity Fund|P|DEW|Y|100|N|DEW +DEX|Delaware Enhanced Global Dividend Common Shares of Beneficial Interest|N|DEX|N|100|N|DEX +DF|Dean Foods Company Common Stock|N|DF|N|100|N|DF +DFE|WisdomTree Europe SmallCap Dividend Fund|P|DFE|Y|100|N|DFE +DFF|Bank of America Corporation MITTS Linked to the Dow Jones Industrial Average|P|DFF|N|100|N|DFF +DFJ|WisdomTree Japan SmallCap Fund|P|DFJ|Y|100|N|DFJ +DFP|Flaherty & Crumrine Dynamic Preferred and Income Fund Inc. Common Stock|N|DFP|N|100|N|DFP +DFS|Discover Financial Services Common Stock|N|DFS|N|100|N|DFS +DFS$B|Discover Financial Services Dep Shs|N|DFSpB|N|100|N|DFS-B +DFT|Dupont Fabros Technology, Inc. Common Stock|N|DFT|N|100|N|DFT +DFT$A|DuPont Fabros Technology Inc CUMULATIVE RED PERP PFD SER A|N|DFTpA|N|100|N|DFT-A +DFT$B|Dupont Fabros Technology, Inc. 7.625% Series B Cumulative Redeemable Perpetual Preferred Stock|N|DFTpB|N|100|N|DFT-B +DG|Dollar General Corporation Common Stock|N|DG|N|100|N|DG +DGAZ|VelocityShares 3X Inverse Natural Gas ETN linked to the S&P GSCI Natural Gas INdex Excess Return|P|DGAZ|N|100|N|DGAZ +DGI|DigitalGlobe, Inc Common Stock|N|DGI|N|100|N|DGI +DGL|PowerShares DB Gold Fund|P|DGL|Y|100|N|DGL +DGP|Deutsche Bank AG PowerShares DB Gold Double Long ETN|P|DGP|N|100|N|DGP +DGRO|iShares Core Dividend Growth ETF|P|DGRO|Y|100|N|DGRO +DGS|WisdomTree Emerging Market SmallCap Fund|P|DGS|Y|100|N|DGS +DGSE|DGSE Companies, Inc. Common Stock|A|DGSE|N|100|N|DGSE +DGT|SPDR Global Dow ETF (based on The Global Dow)|P|DGT|Y|100|N|DGT +DGX|Quest Diagnostics Incorporated Common Stock|N|DGX|N|100|N|DGX +DGZ|Deutsche Bank AG DB Gold Short ETN|P|DGZ|N|100|N|DGZ +DHF|Dreyfus High Yield Strategies Fund Common Stock|N|DHF|N|100|N|DHF +DHG|Deutsche High Income Opportunities Fund, Inc New Common Stock|N|DHG|N|100|N|DHG +DHI|D.R. Horton, Inc. Common Stock|N|DHI|N|100|N|DHI +DHR|Danaher Corporation Common Stock|N|DHR|N|100|N|DHR +DHS|WisdomTree High-Yielding Equity Fund|P|DHS|Y|100|N|DHS +DHT|DHT Holdings, Inc.|N|DHT|N|100|N|DHT +DHX|Dice Holdings, Inc. Common Stock|N|DHX|N|100|N|DHX +DHY|Credit Suisse High Yield Bond Fund Common Stock|A|DHY|N|100|N|DHY +DI|PIMCO Diversified Income Active Exchange-Traded Fund|P|DI|Y|100|N|DI +DIA|SPDR Dow Jones Industrial Average ETF|P|DIA|Y|100|N|DIA +DIAX|Nuveen Dow 30SM Dynamic Overwrite Fund Common Shares of Beneficial Interest|N|DIAX|N|100|N|DIAX +DIG|ProShares Ultra Oil & Gas|P|DIG|Y|100|N|DIG +DIM|WisdomTree International MidCap Dividend Fund|P|DIM|Y|100|N|DIM +DIN|DineEquity, Inc Common Stock|N|DIN|N|100|N|DIN +DIRT|iPath Pure Beta Agriculture ETN|P|DIRT|N|100|N|DIRT +DIS|Walt Disney Company (The) Common Stock|N|DIS|N|100|N|DIS +DIT|AMCON Distributing Company Common Stock|A|DIT|N|100|N|DIT +DIV|Global X Super Dividend ETF|P|DIV|Y|100|N|DIV +DIVA|QuantShares Hedged Dividend Income Fund|P|DIVA|Y|100|N|DIVA +DIVC|Citigroup Inc. C-Tracks ETN Miller/Howard Strategic Dividend Reinvestors Due 9/16/2014|P|DIVC|N|100|N|DIVC +DIVI|AdvisorShares Athena High Dividend ETF|P|DIVI|Y|100|N|DIVI +DIVY|Realty Shares DIVS ETF|P|DIVY|Y|100|N|DIVY +DJCI|E-TRACS Linked to the Bloomberg Commodity Index Total Return due October 31, 2039|P|DJCI|N|100|N|DJCI +DJP|iPath Bloomberg Commodity Index Total Return ETN|P|DJP|N|100|N|DJP +DK|Delek US Holdings, Inc. Common Stock|N|DK|N|100|N|DK +DKL|Delek Logistics Partners, L.P. Common Units representing Limited Partner Interests|N|DKL|N|100|N|DKL +DKS|Dick's Sporting Goods Inc Common Stock|N|DKS|N|100|N|DKS +DKT|Deutsch Bk Contingent Cap Tr V Tr Pfd Secs|N|DKT|N|100|N|DKT +DL|China Distance Education Holdings Limited American Depositary Shares|N|DL|N|100|N|DL +DLA|Delta Apparel, Inc. Common Stock|A|DLA|N|100|N|DLA +DLB|Dolby Laboratories Common Stock|N|DLB|N|100|N|DLB +DLN|WisdomTree LargeCap Dividend Fund|P|DLN|Y|100|N|DLN +DLNG|Dynagas LNG Partners LP Common Units|N|DLNG|N|100|N|DLNG +DLPH|Delphi Automotive plc Ordinary Shares|N|DLPH|N|100|N|DLPH +DLR|Digital Realty Trust, Inc. Common Stock|N|DLR|N|100|N|DLR +DLR$E|Digital Realty Trust, Inc. Redeemable Pfd Ser E|N|DLRpE|N|100|N|DLR-E +DLR$F|Digital Realty Trust, Inc. Preferred Series F|N|DLRpF|N|100|N|DLR-F +DLR$G|Digital Realty Trust, Inc. Preferred Series G|N|DLRpG|N|100|N|DLR-G +DLR$H|Digital Realty Trust, Inc. Redeemable Preferred Stock Series H|N|DLRpH|N|100|N|DLR-H +DLS|WisdomTree International SmallCap Fund|P|DLS|Y|100|N|DLS +DLX|Deluxe Corporation Common Stock|N|DLX|N|100|N|DLX +DM|Dominion Midstream Partners, LP Common Units representing Limited Partner Interests|N|DM|N|100|N|DM +DMB|Dreyfus Municipal Bond Infrastructure Fund, Inc. Common Stock|N|DMB|N|100|N|DMB +DMD|Demand Media Inc. Common Stock|N|DMD|N|100|N|DMD +DMF|Dreyfus Municipal Income, Inc. Common Stock|A|DMF|N|100|N|DMF +DMO|Western Asset Mortgage Defined Opportunity Fund Inc Common Stock|N|DMO|N|100|N|DMO +DNB|Dun & Bradstreet Corporation (The) Common Stock|N|DNB|N|100|N|DNB +DNI|Dividend and Income Fund Common Stock|N|DNI|N|100|N|DNI +DNL|WisdomTree Global ex-U.S. Growth Fund|P|DNL|Y|100|N|DNL +DNN|Denison Mines Corp Ordinary Shares (Canada)|A|DNN|N|100|N|DNN +DNO|United States Short Oil Fund|P|DNO|Y|100|N|DNO +DNOW|NOW Inc. Common Stock|N|DNOW|N|100|N|DNOW +DNP|DNP Select Income Fund, Inc. Common Stock|N|DNP|N|100|N|DNP +DNR|Denbury Resources Inc. Common Stock|N|DNR|N|100|N|DNR +DNY|The Denali Fund Inc|N|DNY|N|100|N|DNY +DO|Diamond Offshore Drilling, Inc. Common Stock|N|DO|N|100|N|DO +DOC|Physicians Realty Trust Common Shares of Beneficial Interest|N|DOC|N|100|N|DOC +DOD|Deutsche Bank AG ELEMENTS Dogs of the Dow Total Return Index Note ELEMENTS Dogs of the Dow Linked to the Dow Jones High Yield Select 10 Total Return Index due November 14, 2022|P|DOD|N|100|N|DOD +DOG|ProShares Short Dow30|P|DOG|Y|100|N|DOG +DOL|WisdomTree International LargeCap Dividend Fund|P|DOL|Y|100|N|DOL +DOM|Dominion Resources Black Warrior Trust Common Stock|N|DOM|N|100|N|DOM +DON|WisdomTree MidCap Dividend Fund|P|DON|Y|100|N|DON +DOO|WisdomTree International Dividend Top 100 Fund|P|DOO|Y|100|N|DOO +DOOR|Masonite International Corporation Ordinary Shares (Canada)|N|DOOR|N|100|N|DOOR +DOV|Dover Corporation Common Stock|N|DOV|N|100|N|DOV +DOW|Dow Chemical Company (The) Common Stock|N|DOW|N|100|N|DOW +DPG|Duff & Phelps Global Utility Income Fund Inc. Common Stock|N|DPG|N|100|N|DPG +DPK|Direxion Developed Markets Bear 3x Shares|P|DPK|Y|100|N|DPK +DPLO|Diplomat Pharmacy, Inc. Common Stock|N|DPLO|N|100|N|DPLO +DPM|DCP Midstream Partners, LP DCP Midstream Partnership, LP Common Units|N|DPM|N|100|N|DPM +DPS|Dr Pepper Snapple Group, Inc Dr Pepper Snapple Group, Inc Common Stock|N|DPS|N|100|N|DPS +DPU|DB Commodity DB Commodity Long ETN|P|DPU|N|100|N|DPU +DPW|Digital Power Corporation Common Stock|A|DPW|N|100|N|DPW +DPZ|Domino's Pizza Inc Common Stock|N|DPZ|N|100|N|DPZ +DQ|DAQO New Energy Corp. American Depositary Shares, each representing five ordinary shares|N|DQ|N|100|N|DQ +DRA|Diversified Real Asset Income Fund Common Shares of Beneficial Interest|N|DRA|N|100|N|DRA +DRC|Dresser-Rand Group Inc. Common Stock|N|DRC|N|100|N|DRC +DRD|DRDGOLD Limited American Depositary Shares|N|DRD|N|100|N|DRD +DRE|Duke Realty Corporation Common Stock|N|DRE|N|100|N|DRE +DRGS|RBS Global Big Pharma Exchange Traded Note|P|DRGS|N|100|N|DRGS +DRH|Diamondrock Hospitality Company Common Stock|N|DRH|N|100|N|DRH +DRI|Darden Restaurants, Inc. Common Stock|N|DRI|N|100|N|DRI +DRII|Diamond Resorts International, Inc. Common Stock|N|DRII|N|100|N|DRII +DRL|Doral Financial Corporation NEW Common Stock|N|DRL|N|100|N|DRL +DRN|Dexion Daily Real Estate Bull 3x Shares|P|DRN|Y|100|N|DRN +DRQ|Dril-Quip, Inc. Common Stock|N|DRQ|N|100|N|DRQ +DRR|Market Vectors Double Short Euro ETN|P|DRR|N|100|N|DRR +DRV|Drexion Daily Real Estate Bear 3x Shares|P|DRV|Y|100|N|DRV +DRW|WisdomTree Global ex-US Real Estate Index|P|DRW|Y|100|N|DRW +DSE|Duff & Phelps Select Energy MLP Fund Inc. Common Stock|N|DSE|N|100|N|DSE +DSI|iShares KLD 400 Social Index Fund|P|DSI|Y|100|N|DSI +DSL|DoubleLine Income Solutions Fund Common Shares of Beneficial Interests|N|DSL|N|100|N|DSL +DSM|Dreyfus Strategic Municipal Bond Fund, Inc. Common Stock|N|DSM|N|100|N|DSM +DSS|Document Security Systems, Inc. Common Stock|A|DSS|N|100|N|DSS +DST|DST Systems, Inc. Common Stock|N|DST|N|100|N|DST +DSU|Blackrock Debt Strategies Fund, Inc. Common Stock|N|DSU|N|100|N|DSU +DSUM|PowerShares Chinese Yuan Dim Sum Bond Portfolio|P|DSUM|Y|100|N|DSUM +DSW|DSW Inc. Common Stock|N|DSW|N|100|N|DSW +DSX|Diana Shipping inc. common stock|N|DSX|N|100|N|DSX +DSX$B|Diana Shipping Inc. Perpetual Preferred Shares Series B (Marshall Islands)|N|DSXpB|N|100|N|DSX-B +DTD|WisdomTree Total Dividend Fund|P|DTD|Y|100|N|DTD +DTE|DTE Energy Company Common Stock|N|DTE|N|100|N|DTE +DTF|DTF Tax-Free Income, Inc. Common Stock|N|DTF|N|100|N|DTF +DTH|WisdomTree DEFA High-Yielding Equity Fund|P|DTH|Y|100|N|DTH +DTK|Deutsche Bk Contingent Cap Tr III Tr Pfd Secs|N|DTK|N|100|N|DTK +DTLA$|Brookfield DTLA Inc. 7.625% Series A Cumulative Redeemable Preferred Stock|N|DTLAp|N|100|N|DTLA- +DTN|WisdomTree Dividend Ex-Financials Fund|P|DTN|Y|100|N|DTN +DTO|PowerShares DB Crude Oil Double Short ETN|P|DTO|N|100|N|DTO +DTQ|DTE Energy Company 2012 Series C 5.25% Junior Subordinate Debentures due December 1, 2062|N|DTQ|N|100|N|DTQ +DTT|Deutsche Bank Cap Fdg Tr IX Guaranteed Trust Preferred Securities|N|DTT/CL|N|100|N|DTT* +DTZ|DTE Energy Company 2011 Series I 6.50% Junior Subordinate Debentures due 2061|N|DTZ|N|100|N|DTZ +DUA|Deutsche Bank Cap Fdg Tr VIII 6.375% Tr Pfd Secs|N|DUA|N|100|N|DUA +DUC|Duff & Phelps Utility & Corporate Bond Trust, Inc. Common Stock|N|DUC|N|100|N|DUC +DUG|ProShares UltraShort Oil & Gas|P|DUG|Y|100|N|DUG +DUK|Duke Energy Corporation (Holding Company) Common Stock|N|DUK|N|100|N|DUK +DUKH|Duke Energy Corporation 5.125% Junior Subordinated Debentures due 2073|N|DUKH|N|100|N|DUKH +DUST|Direxion Daily Gold Miners Bear 3X Shares|P|DUST|Y|100|N|DUST +DV|DeVry Education Group Inc. Common Stock|N|DV|N|100|N|DV +DVA|DaVita HealthCare Partners Inc. Common Stock|N|DVA|N|100|N|DVA +DVD|Dover Motorsports, Inc. Common Stock|N|DVD|N|100|N|DVD +DVHI|ETRACS Diversified High Income ETN|P|DVHI|N|100|N|DVHI +DVHL|ETRACS 2xLeveraged Diversified High Income ETN|P|DVHL|N|100|N|DVHL +DVN|Devon Energy Corporation Common Stock|N|DVN|N|100|N|DVN +DVP|Deep Value ETF|P|DVP|Y|100|N|DVP +DVY|iShares Select Dividend ETF|P|DVY|Y|100|N|DVY +DVYA|iShares Asia / Pacific Dividend 30 Index Fund Exchange Traded Fund|P|DVYA|Y|100|N|DVYA +DVYE|iShares Emerging Markets Dividend Index Fund Exchange Traded Fund|P|DVYE|Y|100|N|DVYE +DVYL|ETRACS Monthly Pay 2x Leveraged Dow Jones Select Dividend Index ETN|P|DVYL|N|100|N|DVYL +DW|Drew Industries Incorporated Common Stock ($0.01 Par Value)|N|DW|N|100|N|DW +DWAQ|PowerShares DWA NASDAQ Momentum Portfolio|P|DWAQ|Y|100|N|DWAQ +DWAS|PowerShares DWA SmallCap Momentum Portfolio|P|DWAS|Y|100|N|DWAS +DWM|WisdomTree DEFA Fund|P|DWM|Y|100|N|DWM +DWRE|DEMANDWARE, INC. Common Stock|N|DWRE|N|100|N|DWRE +DWTI|VelocityShares 3X Inverse Crude ETN linked to the S&P GSCI Crude Oil Index Excess Return|P|DWTI|N|100|N|DWTI +DWX|SPDR S&P International Dividend ETF|P|DWX|Y|100|N|DWX +DX|Dynex Capital, Inc. Common Stock|N|DX|N|100|N|DX +DX$A|Dynex Capital, Inc. Preferred Stock Series A|N|DXpA|N|100|N|DX-A +DX$B|Dynex Capital, Inc. Preferred Series B|N|DXpB|N|100|N|DX-B +DXB|Deutsche Bk Contingent Cap TR II Tr Pfd Sec|N|DXB|N|100|N|DXB +DXD|ProShares UltraShort Dow30|P|DXD|Y|100|N|DXD +DXJ|WisdomTree Japan Hedged Equity Fund|P|DXJ|Y|100|N|DXJ +DXJC|WisdomTree Japan Hedged Capital Goods Fund|P|DXJC|Y|100|N|DXJC +DXJF|WisdomTree Japan Hedged Financials Fund|P|DXJF|Y|100|N|DXJF +DXJH|WisdomTree Japan Hedged Health Care Fund|P|DXJH|Y|100|N|DXJH +DXJR|WisdomTree Japan Hedged Real Estate Fund|P|DXJR|Y|100|N|DXJR +DXJT|WisdomTree Japan Hedged Tech, Media & Telecom Fund|P|DXJT|Y|100|N|DXJT +DXR|Daxor Corporation Common Stock|A|DXR|N|100|N|DXR +DY|Dycom Industries, Inc. Common Stock|N|DY|N|100|N|DY +DYN|Dynegy Inc. Common Stock|N|DYN|N|100|N|DYN +DYN$A|Dynegy Inc. Mandatory Preferred Convertible Series A%|N|DYNpA|N|100|N|DYN-A +DYN.W|Dynegy Inc. Warrant expiring October 2, 2017|N|DYN/WS|N|100|N|DYN+ +DYY|DB Commodity DB Commodity Double Long ETN|P|DYY|N|100|N|DYY +DZK|Direxion Developed Markets Bull 3x Shares|P|DZK|Y|100|N|DZK +DZZ|Deutsche Bank AG DB Gold Double Short ETN|P|DZZ|N|100|N|DZZ +E|ENI S.p.A. Common Stock|N|E|N|100|N|E +EAA|Entergy Arkansas, Inc. First Mortgage Bonds, 5.75% Series Due November 1, 2040|N|EAA|N|100|N|EAA +EAB|Entergy Arkansas, Inc. First Mortgage Bonds, 4.90% Series Due December 1, 2052|N|EAB|N|100|N|EAB +EAD|Wells Fargo Advantage Income Opportunities Fund Common Shares|A|EAD|N|100|N|EAD +EAE|Entergy Arkansas, Inc. First Mortgage Bonds, 4.75% Series due June 1, 2063|N|EAE|N|100|N|EAE +EARN|Ellington Residential Mortgage REIT Common Shares of Beneficial Interest|N|EARN|N|100|N|EARN +EAT|Brinker International, Inc. Common Stock|N|EAT|N|100|N|EAT +EBF|Ennis, Inc. Common Stock|N|EBF|N|100|N|EBF +EBND|SPDR Barclays Emerging Markets Local Bond ETF|P|EBND|Y|100|N|EBND +EBR|Centrais Elc Braz Pfb B Elbras American Depositary Shares|N|EBR|N|100|N|EBR +EBR.B|Centrais Elc Braz Pfb B Elbras American Depositary Shares|N|EBR/B|N|100|N|EBR.B +EBS|Emergent Biosolutions, Inc. Common Stock|N|EBS|N|100|N|EBS +EC|Ecopetrol S.A. American Depositary Shares|N|EC|N|100|N|EC +ECA|Encana Corporation|N|ECA|N|100|N|ECA +ECC|Eagle Point Credit Company Inc. Common Stock|N|ECC|N|100|N|ECC +ECF|Ellsworth Fund Ltd|A|ECF|N|100|N|ECF +ECH|iShares MSCI Chile Capped Investable Market Index Fund|P|ECH|Y|100|N|ECH +ECL|Ecolab Inc. Common Stock|N|ECL|N|100|N|ECL +ECNS|iShares MSCI China Small-Cap ETF|P|ECNS|Y|100|N|ECNS +ECOM|ChannelAdvisor Corporation Common Stock|N|ECOM|N|100|N|ECOM +ECON|EGShares Emerging Markets Consumer ETF|P|ECON|Y|100|N|ECON +ECR|Eclipse Resources Corporation Common Stock|N|ECR|N|100|N|ECR +ECT|ECA Marcellus Trust I Common Units of Beneficial Interest|N|ECT|N|100|N|ECT +ED|Consolidated Edison, Inc. Common Stock|N|ED|N|100|N|ED +EDC|Direxion Emerging Markets Bull 3X Shares|P|EDC|Y|100|N|EDC +EDD|Morgan Stanley Emerging Markets Domestic Debt Fund, Inc. Morgan Stanley Emerging Markets Domestic Debt Fund, Inc. Common Stock|N|EDD|N|100|N|EDD +EDE|Empire District Electric Company (The) Common Stock|N|EDE|N|100|N|EDE +EDEN|Ishares MSCI Denmark Capped ETF|Z|EDEN|Y|100|N|EDEN +EDF|Stone Harbor Emerging Markets Income Fund Common Shares of Beneficial Interest|N|EDF|N|100|N|EDF +EDI|Stone Harbor Emerging Markets Total Income Fund Common Shares of Beneficial Interests|N|EDI|N|100|N|EDI +EDIV|SPDR S&P Emerging Markets Dividend ETF|P|EDIV|Y|100|N|EDIV +EDN|Empresa Distribuidora Y Comercializadora Norte S.A. (Edenor) Empresa Distribuidora Y Comercializadora Norte S.A. (Edenor) American Depositary Shares|N|EDN|N|100|N|EDN +EDOG|ALPS Emerging Sector Dividend Dogs ETF|P|EDOG|Y|100|N|EDOG +EDR|Education Realty Trust, Inc. Common Stock|N|EDR|N|100|N|EDR +EDU|New Oriental Education & Technology Group, Inc. Sponsored ADR representing 1 Ordinary Share (Cayman Islands)|N|EDU|N|100|N|EDU +EDV|Vanguard Extended Duration Treasury ETF|P|EDV|Y|100|N|EDV +EDZ|Direxion Emerging Markets Bear 3X Shares|P|EDZ|Y|100|N|EDZ +EE|El Paso Electric Company Common Stock|N|EE|N|100|N|EE +EEA|The European Equity Fund, Inc. Common Stock|N|EEA|N|100|N|EEA +EEB|Guggenheim BRIC ETF|P|EEB|Y|100|N|EEB +EEH|Aktiebolaget Svensk Exportkredit (Swed Ex Cred Corp) Elements (SM) Linked to the SPECTRUM Large Cap U.S. Sector Momentum Index developed by BNP Paribas due August 8, 2022, Medium-Term Notes, Series D|P|EEH|N|100|N|EEH +EEHB|PowerShares S&P Emerging Markets High Beta Portfolio Exchange Traded Fund|P|EEHB|Y|100|N|EEHB +EELV|PowerShares S&P Emerging Markets Low Volatility Portfolio|P|EELV|Y|100|N|EELV +EEM|iShares MSCI Emerging Index Fund|P|EEM|Y|100|N|EEM +EEMS|Ishares MSCI Emerging Markets Small Cap Index Fund|P|EEMS|Y|100|N|EEMS +EEMV|iShares MSCI Emerging Markets Minimum Volatility Index Fund|P|EEMV|Y|100|N|EEMV +EEP|Enbridge Energy, L.P. Class A Common Units|N|EEP|N|100|N|EEP +EEQ|Enbridge Energy Management LLC Shares repstg limited liability company interests|N|EEQ|N|100|N|EEQ +EES|WisdomTree SmallCap Earnings Fund|P|EES|Y|100|N|EES +EET|ProShares Ultra MSCI Emerging Markets|P|EET|Y|100|N|EET +EEV|ProShares UltraShort MSCI Emerging Markets|P|EEV|Y|100|N|EEV +EFA|iShares MSCI EAFE ETF|P|EFA|Y|100|N|EFA +EFAD|ProShares Trust ProShares MSCI EAFE Dividend Growers ETF|P|EFAD|Y|100|N|EFAD +EFAV|iShares MSCI EAFE Minimum Volatility ETF|P|EFAV|Y|100|N|EFAV +EFC|Ellington Financial LLC Common Shares representing Limitied Liability Company Interests, no par valu|N|EFC|N|100|N|EFC +EFF|Eaton vance Floating-Rate Income Plus Fund Common Shares of Beneficial Interest|N|EFF|N|100|N|EFF +EFFE|Global X JPMorgan Efficiente Index ETF|P|EFFE|Y|100|N|EFFE +EFG|iShares MSCI EAFE Growth ETF|P|EFG|Y|100|N|EFG +EFM|Entergy Mississippi, Inc. First Mortgage Bonds, 6.20% Series due April 15, 2040|N|EFM|N|100|N|EFM +EFNL|Ishares MSCI Finland Capped ETF|Z|EFNL|Y|100|N|EFNL +EFO|ProShares Ultra MSCI EAFE|P|EFO|Y|100|N|EFO +EFR|Eaton Vance Senior Floating-Rate Fund Common Shares of Beneficial Interest|N|EFR|N|100|N|EFR +EFT|Eaton Vance Floating Rate Income Trust Common Shares of Beneficial Interest|N|EFT|N|100|N|EFT +EFU|ProShares UltraShort MSCI EAFE|P|EFU|Y|100|N|EFU +EFV|iShares MSCI EAFE Value ETF|P|EFV|Y|100|N|EFV +EFX|Equifax, Inc. Common Stock|N|EFX|N|100|N|EFX +EFZ|ProShares Short MSCI EAFE|P|EFZ|Y|100|N|EFZ +EGAS|Gas Natural Inc. Common Stock (OH)|A|EGAS|N|100|N|EGAS +EGF|Blackrock Enhanced Government Fund, Inc. Common Stock|N|EGF|N|100|N|EGF +EGI|Entree Gold Inc Ordinary Shares|A|EGI|N|100|N|EGI +EGL|Engility Holdings, Inc. Common Stock|N|EGL|N|100|N|EGL +EGN|Energen Corporation Common Stock|N|EGN|N|100|N|EGN +EGO|Eldorado Gold Corporation Ordinary Shares|N|EGO|N|100|N|EGO +EGP|EastGroup Properties, Inc. Common Stock|N|EGP|N|100|N|EGP +EGPT|Market Vectors Egypt Index ETF|P|EGPT|Y|100|N|EGPT +EGY|Vaalco Energy Inc Common Stock|N|EGY|N|100|N|EGY +EHI|Western Asset Global High Income Fund Inc Common Stock|N|EHI|N|100|N|EHI +EHIC|eHi Car Services Limited American Depositary Shares|N|EHIC|N|100|N|EHIC +EIA|Eaton Vance California Municipal Bond Fund II Common Shares of Beneficial Interest, $.01 par value|A|EIA|N|100|N|EIA +EIDO|iShares MSCI Indonesia ETF|P|EIDO|Y|100|N|EIDO +EIG|Employers Holdings Inc Common Stock|N|EIG|N|100|N|EIG +EIM|Eaton Vance Municipal Bond Fund Common Shares of Beneficial Interest, $.01 par value|A|EIM|N|100|N|EIM +EIO|Eaton Vance Ohio Municipal Bond Fund Common Shared of Befeficial Interest, $.01 par value|A|EIO|N|100|N|EIO +EIP|Eaton Vance Pennsylvania Municipal Bond Fund Common Shares of Befeficial Interest, $.01 par value|A|EIP|N|100|N|EIP +EIRL|iShares MSCI Ireland Capped ETF|P|EIRL|Y|100|N|EIRL +EIS|iShares MSCI Israel Capped Investable Market Index Fund|P|EIS|Y|100|N|EIS +EIV|Eaton Vance Municipal Bond Fund II Common Shares of Beneficial Interest, $.01 Par Value|A|EIV|N|100|N|EIV +EIX|Edison International Common Stock|N|EIX|N|100|N|EIX +EJ|E-House (China) Holdings Limited American Depositary Share|N|EJ|N|100|N|EJ +EL|Estee Lauder Companies, Inc. (The) Common Stock|N|EL|N|100|N|EL +ELA|Entergy Louisiana, LLC First Mortgage Bonds, 5.875% Series due June 15, 2041|N|ELA|N|100|N|ELA +ELB|Entergy Louisiana, Inc. 6.0% Series Due March 15, 2040|N|ELB|N|100|N|ELB +ELD|WisdomTree Emerging Markets Local Debt Fund|P|ELD|Y|100|N|ELD +ELJ|Entergy Louisiana, Inc. First Mortgage Bonds, 5.25% Series due July 1, 2052|N|ELJ|N|100|N|ELJ +ELLI|Ellie Mae, Inc. Common Stock|N|ELLI|N|100|N|ELLI +ELLO|Ellomay Capital Ltd Ordinary Shares (Israel)|A|ELLO|N|100|N|ELLO +ELMD|Electromed, Inc. Common Stock|A|ELMD|N|100|N|ELMD +ELP|Companhia Paranaense de Energia (COPEL) Common Stock|N|ELP|N|100|N|ELP +ELS|Equity Lifestyle Properties, Inc. Common Stock|N|ELS|N|100|N|ELS +ELS$C|Equity Lifestyle Properties, Inc. Depositary Shares each representing 1/100th of a share of 6.75% Series C Cumulative Redeemable Perpetual Preferred Stock|N|ELSpC|N|100|N|ELS-C +ELU|Entergy Louisiana, Inc. First Mortgage Bonds, 4.70% Series due June 1, 2063|N|ELU|N|100|N|ELU +ELX|Emulex Corporation Common Stock|N|ELX|N|100|N|ELX +ELY|Callaway Golf Company Common Stock|N|ELY|N|100|N|ELY +EMAG|Market Vectors Emerging Markets Aggregate Bond ETF|P|EMAG|Y|100|N|EMAG +EMAN|eMagin Corporation Common Stock|A|EMAN|N|100|N|EMAN +EMB|iShares J,P. Morgan USD Emerging Markets Bond ETF|P|EMB|Y|100|N|EMB +EMBB|SPDR MSCI EM Beyond BRIC ETF|P|EMBB|Y|100|N|EMBB +EMC|EMC Corporation Common Stock|N|EMC|N|100|N|EMC +EMCD|SPDR BofA Merrill Emerging Markets Corporate Bond ETF|P|EMCD|Y|100|N|EMCD +EMCR|EGShares Emerging Markets CORE ETF|P|EMCR|Y|100|N|EMCR +EMD|Western Asset Emerging Markets Income Fund, Inc. Common Stock|N|EMD|N|100|N|EMD +EMDD|EGShares Emerging Markets Domestic Demand ETF|P|EMDD|Y|100|N|EMDD +EME|EMCOR Group, Inc. Common Stock|N|EME|N|100|N|EME +EMES|Emerge Energy Services LP Common Units representing Limited Partner Interests|N|EMES|N|100|N|EMES +EMF|Templeton Emerging Markets Fund Common Stock|N|EMF|N|100|N|EMF +EMFM|Global X Next Emerging & Frontier ETF|P|EMFM|Y|100|N|EMFM +EMFT|SPDR MSCI EM 50 ETF|P|EMFT|Y|100|N|EMFT +EMHY|iShares Emerging Markets High Yield Bond ETF|Z|EMHY|Y|100|N|EMHY +EMHZ|iShares MSCI Emerging Markets Horizon ETF|Z|EMHZ|Y|100|N|EMHZ +EMI|Eaton Vance Michigan Municipal Income Trust Shares of Beneficial Interest|A|EMI|N|100|N|EMI +EMJ|Eaton Vance New Jersey Municipal Bond Fund Common Shres of Beneficial Interest, $.01 par value|A|EMJ|N|100|N|EMJ +EMLB|iPath Long Enhanced MSCI Emerging Markets Index ETN|P|EMLB|N|100|N|EMLB +EMLC|Market Vectors Emerging Markets Local Currency Bond ETF|P|EMLC|Y|100|N|EMLC +EMLP|First Trust North American Energy Infrastructure Fund|P|EMLP|Y|100|N|EMLP +EMN|Eastman Chemical Company Common Stock|N|EMN|N|100|N|EMN +EMO|ClearBridge Energy MLP Opportunity Fund Inc. Common Stock|N|EMO|N|100|N|EMO +EMQ|Entergy Mississippi, Inc. 1st Mtg Bds|N|EMQ|N|100|N|EMQ +EMQQ|Emerging Markets Internet and Ecommerce ETF (The)|P|EMQQ|Y|100|N|EMQQ +EMR|Emerson Electric Company Common Stock|N|EMR|N|100|N|EMR +EMRE|Guggenhein Emerging Market Real Estate ETF|P|EMRE|Y|100|N|EMRE +EMSA|iPath Short Enhanced MSCI Emerging Markets Index ETN|P|EMSA|N|100|N|EMSA +EMSH|ProShares Short Term USD Emerging Markets Bond ETF|Z|EMSH|Y|100|N|EMSH +EMXX|Eurasian Minerals Inc Common Shares (Canada)|A|EMXX|N|100|N|EMXX +EMZ|Entergy Mississippi, Inc. First Mortgage Bonds, 6.0% Series due May 1, 2051|N|EMZ|N|100|N|EMZ +ENB|Enbridge Inc Common Stock|N|ENB|N|100|N|ENB +ENBL|Enable Midstream Partners, LP Common Units representing limited partner interests|N|ENBL|N|100|N|ENBL +ENFR|Alerian Energy Infrastructure ETF|P|ENFR|Y|100|N|ENFR +ENGN|iShares Industrial Bond ETF|P|ENGN|Y|100|N|ENGN +ENH|Endurance Specialty Holdings Ltd Common Stock|N|ENH|N|100|N|ENH +ENH$A|Endurance Specialty Holdings Ltd Preferred Series A|N|ENHpA|N|100|N|ENH-A +ENH$B|Endurance Specialty Holdings Ltd PFD SER B (Bermuda)|N|ENHpB|N|100|N|ENH-B +ENI|Enersis S A Common Stock|N|ENI|N|100|N|ENI +ENJ|Entergy New Orleans, Inc. First Mortgage Bonds, 5.0% Series due December 1, 2052|N|ENJ|N|100|N|ENJ +ENL|Reed Elsevier NV American Depositary Shares|N|ENL|N|100|N|ENL +ENLC|EnLink Midstream, LLC Common Units representing Limited Partner Interests|N|ENLC|N|100|N|ENLC +ENLK|EnLink Midstream Partners, LP Common Units Representing Limited Partnership Interests|N|ENLK|N|100|N|ENLK +ENOR|Ishares MSCI Norway Capped ETF|Z|ENOR|Y|100|N|ENOR +ENR|Energizer Holdings, Inc. Common Stock|N|ENR|N|100|N|ENR +ENRJ|EnerJex Resources, Inc. (NEW) Common Stock|A|ENRJ|N|100|N|ENRJ +ENRJ$|EnerJex Resources, Inc. 10% Series A Cumulative Redeemable Perpetual Preferred Stock|A|ENRJp|N|100|N|ENRJ- +ENS|Enersys Common Stock|N|ENS|N|100|N|ENS +ENSV|Enservco Corporation Common Stock|A|ENSV|N|100|N|ENSV +ENV|Envestnet, Inc Common Stock|N|ENV|N|100|N|ENV +ENVA|Enova International, Inc. Common Stock|N|ENVA|N|100|N|ENVA +ENX|Eaton Vance New York Municipal Bond Fund Common Shares of Beneficial Interest, $.01 par value|A|ENX|N|100|N|ENX +ENY|Guggenheim Canadian Energy Income ETF|P|ENY|Y|100|N|ENY +ENZ|Enzo Biochem, Inc. Common Stock ($0.01 Par Value)|N|ENZ|N|100|N|ENZ +ENZL|iShares MSCI New Zealand Capped ETF|P|ENZL|Y|100|N|ENZL +EOC|Empresa Nacional de Electricidad S.A. Common Stock|N|EOC|N|100|N|EOC +EOD|Wells Fargo Advantage Global Dividend Opportunity Fund|N|EOD|N|100|N|EOD +EOG|EOG Resources, Inc. Common Stock|N|EOG|N|100|N|EOG +EOI|Eaton Vance Enhance Equity Income Fund Eaton Vance Enhanced Equity Income Fund Shares of Beneficial Interest|N|EOI|N|100|N|EOI +EOS|Eaton Vance Enhance Equity Income Fund II Common Stock|N|EOS|N|100|N|EOS +EOT|Eaton Vance Municipal Income Trust EATON VANCE NATIONAL MUNICIPAL OPPORTUNITIES TRUST|N|EOT|N|100|N|EOT +EOX|Emerald Oil, Inc. Common Stock|A|EOX|N|100|N|EOX +EP$C|El Paso Corporation Preferred Stock|N|EPpC|N|100|N|EP-C +EPAM|EPAM Systems, Inc. Common Stock|N|EPAM|N|100|N|EPAM +EPD|Enterprise Products Partners L.P. Common Stock|N|EPD|N|100|N|EPD +EPE|EP Energy Corporation Class A Common Stock|N|EPE|N|100|N|EPE +EPHE|iShares MSCI Philippines ETF|P|EPHE|Y|100|N|EPHE +EPI|WisdomTree India Earnings Fund|P|EPI|Y|100|N|EPI +EPM|Evolution Petroleum Corporation, Inc. Common Stock|A|EPM|N|100|N|EPM +EPM$A|Evolution Petroleum Corporation, Inc. 8.5% Series A Cumulative Pfd Stk|A|EPMpA|N|100|N|EPM-A +EPOL|iShares MSCI Poland Capped ETF|P|EPOL|Y|100|N|EPOL +EPP|iShares MSCI Pacific Ex-Japan Index Fund|P|EPP|Y|100|N|EPP +EPR|EPR Properties Common Stock|N|EPR|N|100|N|EPR +EPR$C|EPR Properties 5.75% Series C Cumulative Convertible Preferred Shares|N|EPRpC|N|100|N|EPR-C +EPR$E|EPR Properties Series E Cumulative Conv Pfd Shs Ser E|N|EPRpE|N|100|N|EPR-E +EPR$F|EPR Properties Pfd Ser F|N|EPRpF|N|100|N|EPR-F +EPRO|AdvisorShares EquityPro ETF|P|EPRO|Y|100|N|EPRO +EPS|WisdomTree Earnings 500 Fund|P|EPS|Y|100|N|EPS +EPU|iShares MSCI All Peru Capped ETF|P|EPU|Y|100|N|EPU +EPV|ProShares UltraShort FTSE Europe ETF|P|EPV|Y|100|N|EPV +EQAL|PowerShares Russell 1000 Equal Weight POrtfolio|P|EQAL|Y|100|N|EQAL +EQC|Equity Commonwealth Common Shares of Beneficial Interest|N|EQC|N|100|N|EQC +EQC$D|Equity Commonwealth 6.50% Pfd Conv Shs Ser D|N|EQCpD|N|100|N|EQC-D +EQC$E|Equity Commonwealth 7.25% Series E Cumulative Redeemable Preferred Shares|N|EQCpE|N|100|N|EQC-E +EQCO|Equity Commonwealth 5.75% Senior Notes due 2042|N|EQCO|N|100|N|EQCO +EQL|ALPS Equal Sector Weight ETF|P|EQL|Y|100|N|EQL +EQLT|Workplace Equality Portfolio ETF|P|EQLT|Y|100|N|EQLT +EQM|EQT Midstream Partners, LP Common Units representing Limited Partner Interests|N|EQM|N|100|N|EQM +EQR|Equity Residential Common Shares of Beneficial Interest|N|EQR|N|100|N|EQR +EQS|Equus Total Return, Inc. Common Stock|N|EQS|N|100|N|EQS +EQT|EQT Corporation Common Stock|N|EQT|N|100|N|EQT +EQY|Equity One, Inc. Common Stock|N|EQY|N|100|N|EQY +ERA|Era Group, Inc. Common Stock|N|ERA|N|100|N|ERA +ERB|ERBA Diagnostics, Inc. Common Stock|A|ERB|N|100|N|ERB +ERC|Wells Fargo Advantage Multi-Sector Income Fund Common Stock, no par value|A|ERC|N|100|N|ERC +ERF|Enerplus Corporation Common Stock|N|ERF|N|100|N|ERF +ERH|Wells Fargo Advantage Utilities and High Income Fund|A|ERH|N|100|N|ERH +ERJ|Embraer S.A. Common Stock|N|ERJ|N|100|N|ERJ +ERO|Barclays PLC iPath EUR/USD Exchange Rate ETN|P|ERO|N|100|N|ERO +EROS|Eros International PLC A Ordinary Shares|N|EROS|N|100|N|EROS +ERUS|iShares MSCI Russia Capped Index Fund|P|ERUS|Y|100|N|ERUS +ERX|Direxion Energy Bull 3X Shares|P|ERX|Y|100|N|ERX +ERY|Direxion Daily Energy Bear 3X Shares|P|ERY|Y|100|N|ERY +ESBA|Empire State Realty OP, L.P. Series ES Operating Partnership Units Representing Limited Partnership Interests|P|ESBA|N|100|N|ESBA +ESD|Western Asset Emerging Markets Debt Fund Inc Common Stock|N|ESD|N|100|N|ESD +ESE|ESCO Technologies Inc. Common Stock|N|ESE|N|100|N|ESE +ESI|ITT Educational Services, Inc. Common Stock|N|ESI|N|100|N|ESI +ESL|Esterline Technologies Corporation Common Stock|N|ESL|N|100|N|ESL +ESNT|Essent Group Ltd. Common Shares|N|ESNT|N|100|N|ESNT +ESP|Espey Mfg. & Electronics Corp. Common Stock|A|ESP|N|100|N|ESP +ESR|iShares MSCI Emerging Markets Eastern Europe Index Fund|P|ESR|Y|100|N|ESR +ESRT|Empire State Realty Trust, Inc. Class A Common Stock|N|ESRT|N|100|N|ESRT +ESS|Essex Property Trust, Inc. Common Stock|N|ESS|N|100|N|ESS +ESS$H|Essex Property Trust, Inc. 7.125% Series H Cumulative Redeemable Preferred Stock|N|ESSpH|N|100|N|ESS-H +ESTE|Earthstone Energy, Inc. Common Stock|A|ESTE|N|100|N|ESTE +ESTX|Euro Stoxx 50 ETF|P|ESTX|Y|100|N|ESTX +ESV|Ensco plc Class A Ordinary Shares|N|ESV|N|100|N|ESV +ETAK|Elephant Talk Communication Corp. Delaware Common Stock|A|ETAK|N|100|N|ETAK +ETB|Eaton Vance Tax-Managed Buy-Write Income Fund Eaton Vance Tax-Managed Buy-Write Income Fund Common Shares of Beneficial Interest|N|ETB|N|100|N|ETB +ETE|Energy Transfer Equity, L.P. Energy Transfer Equity, L.P. Common Units representing Limited Partnership interests|N|ETE|N|100|N|ETE +ETF|Aberdeen Emerging Markets Company Oppotunities Fund, Inc. Common Stock|A|ETF|N|100|N|ETF +ETG|Eaton Vance Tax-Advantaged Global Dividend Income Fund Common Shares of Beneficial Interest|N|ETG|N|100|N|ETG +ETH|Ethan Allen Interiors Inc. Common Stock|N|ETH|N|100|N|ETH +ETJ|Eaton Vance Risk-Managed Diversified Equity Income Fund Common Shares of Beneficial Interest|N|ETJ|N|100|N|ETJ +ETM|Entercom Communications Corporation Common Stock|N|ETM|N|100|N|ETM +ETN|Eaton Corporation, PLC Ordinary Shares|N|ETN|N|100|N|ETN +ETO|Eaton Vance Tax-Advantage Global Dividend Opp Common Stock|N|ETO|N|100|N|ETO +ETP|Energy Transfer Partners, L.P. ENERGY TRANSFER PARNTERS|N|ETP|N|100|N|ETP +ETR|Entergy Corporation Common Stock|N|ETR|N|100|N|ETR +ETV|Eaton Vance Corporation Eaton Vance Tax-Managed Buy-Write Opportunities Fund Common Shares of Beneficial Interest|N|ETV|N|100|N|ETV +ETW|Eaton Vance Corporation Eaton Vance Tax-Managed Global Buy-Write Opportunites Fund Common Shares of Beneficial Interest|N|ETW|N|100|N|ETW +ETX|Eaton Vance Municipal Income 2028 Term Trust Common Shares of Beneficial Interest|N|ETX|N|100|N|ETX +ETY|Eaton Vance Tax-Managed Diversified Equity Income Fund Common Shares of Beneficial Interest,|N|ETY|N|100|N|ETY +EU|WisdomTree Euro Debt Fund|P|EU|Y|100|N|EU +EUDG|WisdomTree Europe Dividend Growth Fu|P|EUDG|Y|100|N|EUDG +EUFX|ProShares Short Euro|P|EUFX|Y|100|N|EUFX +EUM|ProShares Short MSCI Emerging Markets|P|EUM|Y|100|N|EUM +EUMV|iShares MSCI Europe Minimum Volatility ETF|P|EUMV|Y|100|N|EUMV +EUO|ProShares UltraShort Euro|P|EUO|Y|100|N|EUO +EURL|Direxion Daily FTSE Europe Bull 3x Shares|P|EURL|Y|100|N|EURL +EURN|Euronav NV Ordinary Shares|N|EURN|N|100|N|EURN +EUSA|iShares MSCI USA Index Fund|P|EUSA|Y|100|N|EUSA +EV|Eaton Vance Corporation Common Stock|N|EV|N|100|N|EV +EVBN|Evans Bancorp, Inc. Common Stock|A|EVBN|N|100|N|EVBN +EVC|Entravision Communications Corporation Common Stock|N|EVC|N|100|N|EVC +EVDY|Everyday Health, Inc. Common Stock|N|EVDY|N|100|N|EVDY +EVER|EverBank Financial Corp. Common Stock|N|EVER|N|100|N|EVER +EVER$A|EverBank Financial Corp. Depositary Shares Representing 1/1000th Perpetual Preferred Series A|N|EVERpA|N|100|N|EVER-A +EVF|Eaton Vance Senior Income Trust Common Stock|N|EVF|N|100|N|EVF +EVG|Eaton Vance Short Diversified Income Fund Eaton Vance Short Duration Diversified Income Fund Common Shares of Beneficial Interest|N|EVG|N|100|N|EVG +EVGN|Evogene Ltd Ordinary shares (Israel)|N|EVGN|N|100|N|EVGN +EVHC|Envision Healthcare Holdings, Inc. Common Stock|N|EVHC|N|100|N|EVHC +EVI|EnviroStar, Inc. Common Stock|A|EVI|N|100|N|EVI +EVJ|Eaton Vance New Jersey Municipal Income Trust Shares of Beneficial Interest|A|EVJ|N|100|N|EVJ +EVM|Eaton Vance California Municipal Bond Fund Common Shares of Beneficial Interest, $.01 par value|A|EVM|N|100|N|EVM +EVN|Eaton Vance Municipal Income Trust Common Stock|N|EVN|N|100|N|EVN +EVO|Eaton Vance Ohio Municipal Income Trust Shares of Beneficial Interest|A|EVO|N|100|N|EVO +EVP|Eaton Vance Pennsylvania Municipal Income Trust Shares of Beneficial Interest|A|EVP|N|100|N|EVP +EVR|Evercore Partners Inc Class A Common Stock|N|EVR|N|100|N|EVR +EVT|Eaton Vance Tax Advantaged Dividend Income Fund Common Shares of Beneficial Interest|N|EVT|N|100|N|EVT +EVTC|Evertec, Inc. Common Stock|N|EVTC|N|100|N|EVTC +EVV|Eaton Vance Limited Duration Income Fund Common Shares of Beneficial Interest|A|EVV|N|100|N|EVV +EVX|Market Vectors Environment Index ETF Fund|P|EVX|Y|100|N|EVX +EVY|Eaton Vance New York Municipal Income Trust Shares of Beneficial Interest|A|EVY|N|100|N|EVY +EW|Edwards Lifesciences Corporation Common Stock|N|EW|N|100|N|EW +EWA|iShares MSCI Australia Index Fund|P|EWA|Y|100|N|EWA +EWAS|Ishares MSCI Australia Small Cap ETF|Z|EWAS|Y|100|N|EWAS +EWC|iShares MSCI Canada Index Fund|P|EWC|Y|100|N|EWC +EWCS|Ishares MSCI Canada Small Cap ETF|Z|EWCS|Y|100|N|EWCS +EWD|iShares MSCI Sweden Index Fund|P|EWD|Y|100|N|EWD +EWEM|Guggenheim MSCI Emerging Markets Equal Country Weight ETF|P|EWEM|Y|100|N|EWEM +EWG|iShares MSCI Germany Index Fund|P|EWG|Y|100|N|EWG +EWGS|Ishares MSCI Germany Small Cap ETF|Z|EWGS|Y|100|N|EWGS +EWH|iShares MSCI Hong Kong Index Fund|P|EWH|Y|100|N|EWH +EWHS|iShares MSCI Hong Kong Small-Cap ETF|P|EWHS|Y|100|N|EWHS +EWI|iShares MSCI Italy Capped Index Fund|P|EWI|Y|100|N|EWI +EWJ|iShares MSCI Japan Index Fund|P|EWJ|Y|100|N|EWJ +EWK|iShares MSCI Belgium Capped Investable Market Index Fund|P|EWK|Y|100|N|EWK +EWL|iShares MSCI Switzerland Capped Index Fund|P|EWL|Y|100|N|EWL +EWM|iShares MSCI Malaysia Index Fund|P|EWM|Y|100|N|EWM +EWN|iShares MSCI Netherlands Index Fund|P|EWN|Y|100|N|EWN +EWO|iShares MSCI Austria Capped Investable Market Index Fund|P|EWO|Y|100|N|EWO +EWP|iShares MSCI Spain Capped Index Fund|P|EWP|Y|100|N|EWP +EWQ|iShares MSCI France Index Fund|P|EWQ|Y|100|N|EWQ +EWRI|Guggenheim Russell 1000 Equal Weight ETF|P|EWRI|Y|100|N|EWRI +EWRM|Guggenheim Russell MidCap Equal Weight ETF|P|EWRM|Y|100|N|EWRM +EWRS|Guggenheim Russell 2000 Equal Weight ETF|P|EWRS|Y|100|N|EWRS +EWS|iShares MSCI Singapore Index Fund|P|EWS|Y|100|N|EWS +EWSS|iShares MSCI Singapore Small-Cap ETF|P|EWSS|Y|100|N|EWSS +EWT|iShares MSCI Taiwan Index Fund|P|EWT|Y|100|N|EWT +EWU|iShares MSCI United Kingdom ETF|P|EWU|Y|100|N|EWU +EWUS|Ishares MSCI United Kingdom Small Cap ETF|Z|EWUS|Y|100|N|EWUS +EWV|ProShares UltraShort MSCI Japan|P|EWV|Y|100|N|EWV +EWW|iShares MSCI Mexico Capped Investable Market Index Fund|P|EWW|Y|100|N|EWW +EWX|SPDR S&P Emerging Markets Small Cap ETF|P|EWX|Y|100|N|EWX +EWY|iShares MSCI South Korea Capped Index Fund|P|EWY|Y|100|N|EWY +EWZ|iShares MSCI Brazil Capped Index Fund|P|EWZ|Y|100|N|EWZ +EWZS|iShares MSCI Brazil Small-Cap ETF|P|EWZS|Y|100|N|EWZS +EXAM|ExamWorks Group, Inc. Common Stock|N|EXAM|N|100|N|EXAM +EXAR|Exar Corporation Common Stock|N|EXAR|N|100|N|EXAR +EXC|Exelon Corporation Common Stock|N|EXC|N|100|N|EXC +EXCU|Exelon Corp. Conv Unit|N|EXCU|N|100|N|EXCU +EXD|Eaton Vance Tax-Advantaged Bond Common Shares of Beneficial Interest|N|EXD|N|100|N|EXD +EXG|Eaton Vance Tax-Managed Global Diversified Equity Income Fund Eaton Vance Tax-Managed Global Diversified Equity Income Fund Common Shares of Beneficial Interest|N|EXG|N|100|N|EXG +EXH|Exterran Holdings, Inc. Common Stock|N|EXH|N|100|N|EXH +EXI|iShares Global Industrials ETF|P|EXI|Y|100|N|EXI +EXK|Endeavour Silver Corporation Ordinary Shares (Canada)|N|EXK|N|100|N|EXK +EXL|Excel Trust, Inc. Common Stock|N|EXL|N|100|N|EXL +EXL$B|Excel Trust, Inc. 8.125% Series B Cumulative Redeemable Preferred Stock, $0.01 par value|N|EXLpB|N|100|N|EXL-B +EXP|Eagle Materials Inc Common Stock|N|EXP|N|100|N|EXP +EXPR|Express, Inc. Common Stock|N|EXPR|N|100|N|EXPR +EXR|Extra Space Storage Inc Common Stock|N|EXR|N|100|N|EXR +EXT|WisdomTree Total Earnings Fund|P|EXT|Y|100|N|EXT +EZA|iShares MSCI South Africa Index Fund|P|EZA|Y|100|N|EZA +EZJ|ProShares Ultra MSCI Japan|P|EZJ|Y|100|N|EZJ +EZM|WisdomTree MidCap Earnings Fund|P|EZM|Y|100|N|EZM +EZT|Entergy Texas Inc First Mortgage Bonds 5.625% Series due June 1, 2064|N|EZT|N|100|N|EZT +EZU|iShares MSCI EMU Index Fund|P|EZU|Y|100|N|EZU +EZY|WisdomTree Low P/E Fund|P|EZY|Y|100|N|EZY +F|Ford Motor Company Common Stock|N|F|N|100|N|F +FAB|First Trust Multi Cap Value AlphaDEX Fund|P|FAB|Y|100|N|FAB +FAC|First Acceptance Corporation|N|FAC|N|100|N|FAC +FAD|First Trust MuFirst Trust Multi CG AlphaDEX|P|FAD|Y|100|N|FAD +FAF|First American Corporation (New) Common Stock|N|FAF|N|100|N|FAF +FAM|First Trust/Aberdeen Global Opportunity Income Fund First Trust/Aberdeen Global Opportunity Income Fund Common Shares of Beneficial Interest|N|FAM|N|100|N|FAM +FAN|First Trust ISE Global Wind Energy ETF|P|FAN|Y|100|N|FAN +FAS|Direxion Financial Bull 3X Shares|P|FAS|Y|100|N|FAS +FAUS|First Trust Australia AlphaDex fund|P|FAUS|Y|100|N|FAUS +FAV|First Trust Dividend and Income Fund Common Shares of Beneficial Interest|N|FAV|N|100|N|FAV +FAX|Aberdeen Asia-Pacific Income Fund Inc Common Stock|A|FAX|N|100|N|FAX +FAZ|Direxion Financial Bear 3X Shares|P|FAZ|Y|100|N|FAZ +FBC|Flagstar Bancorp, Inc. Common Stock|N|FBC|N|100|N|FBC +FBG|Fisher Enhanced Big Cap Growth|P|FBG|N|100|N|FBG +FBGX|UBS AG FI Enhanced Large Cap Growth ETN|P|FBGX|N|100|N|FBGX +FBHS|Fortune Brands Home & Security, Inc. Common Stock|N|FBHS|N|100|N|FBHS +FBND|Fidelity Total Bond ETF|P|FBND|Y|100|N|FBND +FBP|First BanCorp. New Common Stock|N|FBP|N|100|N|FBP +FBR|Fibria Celulose S.A.|N|FBR|N|100|N|FBR +FBS$A|First Preferred Cap Tr Iv First Preferred Capital Trust IV 8.15% Cum Trust Pfd Sec|N|FBSpA|N|100|N|FBS-A +FBT|First Trust Amex Biotech Index Fund|P|FBT|Y|100|N|FBT +FBZ|First Trust Brazil AlphaDEX Fund|P|FBZ|Y|100|N|FBZ +FC|Franklin Covey Company Common Stock|N|FC|N|100|N|FC +FCA|First Trust China AlphaDEX Fund|P|FCA|Y|100|N|FCA +FCAM|Fiat Chrysler Automobiles N.V. Mandatory Convertible Securities|N|FCAM|N|100|N|FCAM +FCAN|First Trust Canada AlphaDex Fund|P|FCAN|Y|100|N|FCAN +FCAU|Fiat Chrysler Automobiles N.V. Common Shares|N|FCAU|N|100|N|FCAU +FCB|FCB Financial Holdings, Inc. Class A Common Stock|N|FCB|N|100|N|FCB +FCE.A|Forest City Enterprises, Inc. Common Stock|N|FCE/A|N|100|N|FCE.A +FCE.B|Forest City Enterprises, Inc. Common Stock|N|FCE/B|N|100|N|FCE.B +FCF|First Commonwealth Financial Corporation Common Stock|N|FCF|N|100|N|FCF +FCG|First Trust ISE-Revere Natural Gas|P|FCG|Y|100|N|FCG +FCH|FelCor Lodging Trust Incorporated Common Stock|N|FCH|N|100|N|FCH +FCH$A|FelCor Lodging Trust Incorporated Preferred Stock|N|FCHpA|N|100|N|FCH-A +FCH$C|FelCor Lodging Trust Incorporated Dep Shares Representing 1/100 Preferred Series C|N|FCHpC|N|100|N|FCH-C +FCN|FTI Consulting, Inc. Common Stock|N|FCN|N|100|N|FCN +FCO|Aberdeen Global Income Fund, Inc. Common Stock|A|FCO|N|100|N|FCO +FCOM|Fidelity MSCI Telecommunication Services Index ETF|P|FCOM|Y|100|N|FCOM +FCOR|Fidelity Corporate Bond ETF|P|FCOR|Y|100|N|FCOR +FCT|First Trust Senior Floating Rate Income Fund II Common Shares of Beneficial Interest|N|FCT|N|100|N|FCT +FCX|Freeport-McMoRan, Inc. Common Stock|N|FCX|N|100|N|FCX +FDD|First Trust Dow Jones STOXX Select Dividend 30 Index Fund|P|FDD|Y|100|N|FDD +FDI|Fort Dearborn Income Securities, Inc. Common Stock|N|FDI|N|100|N|FDI +FDIS|Fidelity MSCI Consumer Discretionary Index ETF|P|FDIS|Y|100|N|FDIS +FDL|First Trust Morningstar ETF|P|FDL|Y|100|N|FDL +FDM|First Trust DJ Select MicroCap ETF|P|FDM|Y|100|N|FDM +FDN|First Trust DJ Internet Index Fund|P|FDN|Y|100|N|FDN +FDO|Family Dollar Stores, Inc. Common Stock|N|FDO|N|100|N|FDO +FDP|Fresh Del Monte Produce, Inc. Common Stock|N|FDP|N|100|N|FDP +FDS|FactSet Research Systems Inc. Common Stock|N|FDS|N|100|N|FDS +FDT|First Trust Developed Markets ex-US AlphaDEX Fund|P|FDT|Y|100|N|FDT +FDTS|First Trust Developed Markets ex US Small Cap AlphaDex Fund|P|FDTS|Y|100|N|FDTS +FDX|FedEx Corporation Common Stock|N|FDX|N|100|N|FDX +FE|FirstEnergy Corporation Common Stock|N|FE|N|100|N|FE +FEEU|Barclays ETN FI Enhanced Europe 50 ETN|P|FEEU|N|100|N|FEEU +FEI|First Trust MLP and Energy Income Fund Common Shares of Beneficial Interest|N|FEI|N|100|N|FEI +FELP|Foresight Energy LP Common Units representing Limited Partner Interests|N|FELP|N|100|N|FELP +FEM|First Trust Emerging Markets AlphaDEX Fund|P|FEM|Y|100|N|FEM +FEMS|First Trust Developed Markets Small Cap AlphaDex Fund|P|FEMS|Y|100|N|FEMS +FEN|First Trust Energy Income and Growth Fund|A|FEN|N|100|N|FEN +FENG|Phoenix New Media Limited American Depositary Shares, each representing 8 Class A ordinary shares.|N|FENG|N|100|N|FENG +FENY|Fidelity MSCI Energy Index ETF|P|FENY|Y|100|N|FENY +FEO|First Trust/Aberdeen Emerging Opportunity Fund Common Shares of Beneficial Interest|N|FEO|N|100|N|FEO +FEP|First Trust Europe AlphaDEX Fund|P|FEP|Y|100|N|FEP +FET|Forum Energy Technologies, Inc. Common Stock|N|FET|N|100|N|FET +FEU|SPDR DJ STOXX 50 Etf|P|FEU|Y|100|N|FEU +FEX|First Trust Large Cap Core AlphaDEX|P|FEX|Y|100|N|FEX +FEZ|SPDR DJ Euro STOXX 50 Etf|P|FEZ|Y|100|N|FEZ +FF|FutureFuel Corp. Common shares|N|FF|N|100|N|FF +FFA|First Trust Enhanced Equity Income Fund|N|FFA|N|100|N|FFA +FFC|Flaherty & Crumrine Preferred Securities Income Fund Incorporated|N|FFC|N|100|N|FFC +FFG|FBL Financial Group, Inc. Common Stock|N|FFG|N|100|N|FFG +FFR|First Trust FTSE EPRA/NAREIT Global Real Estate Index Fund|P|FFR|Y|100|N|FFR +FGB|First Trust Specialty Finance and Financial Opportunities Fund|N|FGB|N|100|N|FGB +FGD|First Trust DJ Global Select Dividend|P|FGD|Y|100|N|FGD +FGL|Fidelity & Guaranty Life Common Stock|N|FGL|N|100|N|FGL +FGM|First Trust Germany AlphaDex Fund|P|FGM|Y|100|N|FGM +FGP|Ferrellgas Partners, L.P. Common Stock|N|FGP|N|100|N|FGP +FHK|First Trust Hong Kong AlphaDex|P|FHK|Y|100|N|FHK +FHLC|Fidelity MSCI Health Care Index ETF|P|FHLC|Y|100|N|FHLC +FHN|First Horizon National Corporation Common Stock|N|FHN|N|100|N|FHN +FHN$A|First Horizon National Corporation Depositary Shares|N|FHNpA|N|100|N|FHN-A +FHY|First Trust Strategic High Income Fund II First Trust Strategic High Income Fund II Common Shares of Beneficial Interest|N|FHY|N|100|N|FHY +FI|Frank's International N.V. Common Stock|N|FI|N|100|N|FI +FIA|Falah Russell-IdealRatings U.S. Large Cap ETF|P|FIA|Y|100|N|FIA +FIBG|CS FI Enhanced Big Cap Growth ETN|P|FIBG|N|100|N|FIBG +FICO|Fair Isaac Corproation Common Stock|N|FICO|N|100|N|FICO +FIDU|Fidelity MSCI Industrials Index ETF|P|FIDU|Y|100|N|FIDU +FIEG|FI Enhanced Gloabl High Yield ETN|P|FIEG|N|100|N|FIEG +FIEU|FI Enhanced Europe 50 ETN|P|FIEU|N|100|N|FIEU +FIF|First Trust Energy Infrastructure Fund Common Shares of Beneficial Interest|N|FIF|N|100|N|FIF +FIG|Fortress Investment Group LLC Class A Common Stock|N|FIG|N|100|N|FIG +FIGY|Barclays ETN FI Enhanced Global High Yield ETN|P|FIGY|N|100|N|FIGY +FII|Federated Investors, Inc. Common Stock|N|FII|N|100|N|FII +FILL|iShares MSCI Global Energy Producers Fund|P|FILL|Y|100|N|FILL +FINU|ProShares UltraPro Financials|P|FINU|Y|100|N|FINU +FINZ|ProShares UltraPro Short Financials|P|FINZ|Y|100|N|FINZ +FIS|Fidelity National Information Services, Inc. Common Stock|N|FIS|N|100|N|FIS +FISK|Empire State Realty OP, L.P. Series 250 Operating Partnership Units Representing Limited Partnership Interests|P|FISK|N|100|N|FISK +FIVZ|PIMCO 3-7 Year U.S. Treasury Index Exchange-Traded Fund|P|FIVZ|Y|100|N|FIVZ +FIW|First Trust ISE Water Index Fund|P|FIW|Y|100|N|FIW +FIX|Comfort Systems USA, Inc. Common Stock|N|FIX|N|100|N|FIX +FJP|First Trust Japan AlphaDEX Fund|P|FJP|Y|100|N|FJP +FKO|First Trust South Korea AlphaDEX Fund|P|FKO|Y|100|N|FKO +FKU|First Trust United Kingdom AlphaDex Fund|P|FKU|Y|100|N|FKU +FL|Foot Locker, Inc.|N|FL|N|100|N|FL +FLAG|Forensic Accounting Exchange Traded Concepts|P|FLAG|Y|100|N|FLAG +FLC|Flaherty & Crumrine Total Return Fund Inc Common Stock|N|FLC|N|100|N|FLC +FLGE|Credit Suisse FI Large Cap Growth Enhanced ETN|P|FLGE|N|100|N|FLGE +FLM|First Trust ISE Glb Engnrg And Const Idx|P|FLM|Y|100|N|FLM +FLN|First Trust Latin America AlphaDEX Fund|P|FLN|Y|100|N|FLN +FLO|Flowers Foods, Inc. Common Stock|N|FLO|N|100|N|FLO +FLOT|iShares Floating Rate Bond ETF|P|FLOT|Y|100|N|FLOT +FLR|Fluor Corporation Common Stock|N|FLR|N|100|N|FLR +FLRN|SPDR Barclays Investment Grade Floating Rate ETF|P|FLRN|Y|100|N|FLRN +FLS|Flowserve Corporation Common Stock|N|FLS|N|100|N|FLS +FLT|FleetCor Technologies, Inc. Common Stock|N|FLT|N|100|N|FLT +FLTB|Fidelity Limited Term Bond ETF|P|FLTB|Y|100|N|FLTB +FLTR|Market Vectors Investment Grade Floating Rate ETF|P|FLTR|Y|100|N|FLTR +FLTX|Fleetmatics Group PLC Ordinary Shares|N|FLTX|N|100|N|FLTX +FLY|Fly Leasing Limited|N|FLY|N|100|N|FLY +FM|iShares MSCI Frontier 100 Fund|P|FM|Y|100|N|FM +FMAT|Fidelity MSCI Materials Index ETF|P|FMAT|Y|100|N|FMAT +FMC|FMC Corporation Common Stock|N|FMC|N|100|N|FMC +FMD|First Marblehead Corporation (The) Common Stock|N|FMD|N|100|N|FMD +FMER$A|FirstMerit Corporation Depositary Shares|N|FMERpA|N|100|N|FMER-A +FMF|First Trust Morningstar Managed Futures Strategy Fund|P|FMF|Y|100|N|FMF +FMK|First Trust Mega Cap Alphadex Fund|P|FMK|Y|100|N|FMK +FMLP|ETRACS Wells Fargo MLP Ex-Energy ETN|P|FMLP|N|100|N|FMLP +FMN|Federated Premier Municipal Income Fund Federated Premier Municipal Income Fund|N|FMN|N|100|N|FMN +FMO|Fiduciary/Claymore MLP Opportunity Fund Fiduciary/Claymore MLP Opportunity Fund Common Shares of Beneficial Interest|N|FMO|N|100|N|FMO +FMS|Fresenius Medical Care AG Common Stock|N|FMS|N|100|N|FMS +FMSA|FMSA Holdings Inc. Common Stock|N|FMSA|N|100|N|FMSA +FMX|Fomento Economico Mexicano S.A.B. de C.V. Common Stock|N|FMX|N|100|N|FMX +FMY|First Trust Motgage Income Fund Common Shares of Beneficial Interest|N|FMY|N|100|N|FMY +FN|Fabrinet Ordinary Shares|N|FN|N|100|N|FN +FNB|F.N.B. Corporation Common Stock|N|FNB|N|100|N|FNB +FNB$E|F.N.B. Corporation Depositary Shares, each representing a 1/40th interest in a share of Fixed-to-Floating Rate Non-Cumulative Perpetual Preferred Stock, Series E|N|FNBpE|N|100|N|FNB-E +FNCL|Fidelity MSCI Financials Index ETF|P|FNCL|Y|100|N|FNCL +FNDA|Schwab Fundamental U.S. Small Company Index ETF|P|FNDA|Y|100|N|FNDA +FNDB|Schwab Fundamental U.S. Broad Market Index ETF|P|FNDB|Y|100|N|FNDB +FNDC|Schwab Fundamental International Small Company Index ETF|P|FNDC|Y|100|N|FNDC +FNDE|Schwab Fundamental Emerging Markets Large Company Index ETF|P|FNDE|Y|100|N|FNDE +FNDF|Schwab Fundamental International Large Company Index ETF|P|FNDF|Y|100|N|FNDF +FNDX|Schwab Fundamental U.S. Large Company Index ETF|P|FNDX|Y|100|N|FNDX +FNF|FNF Group of Fidelity National Financial, Inc. Common Stock|N|FNF|N|100|N|FNF +FNFG$B|First Niagara Financial Group Inc. PFD NON CUM SER B FXD/FLTG|N|FNFGpB|N|100|N|FNFG-B +FNFV|FNFV Group of Fidelity National Financial, Inc. Common Stock|N|FNFV|N|100|N|FNFV +FNI|First Trust ISE Chindia|P|FNI|Y|100|N|FNI +FNK|First Trust Mid Cap Value AlphaDEX Fund|P|FNK|Y|100|N|FNK +FNV|Franco-Nevada Corporation|N|FNV|N|100|N|FNV +FNX|First Trust Mid Cap Core AlphaDEX|P|FNX|Y|100|N|FNX +FNY|First Trust Mid Cap Growth AlphaDEX|P|FNY|Y|100|N|FNY +FOE|Ferro Corporation Common Stock|N|FOE|N|100|N|FOE +FOF|Cohen & Steers Closed-End Opportunity Fund, Inc. Common Stock|N|FOF|N|100|N|FOF +FOIL|iPath Pure Beta Aluminum ETN|P|FOIL|N|100|N|FOIL +FOR|Forestar Group Inc Common Stock|N|FOR|N|100|N|FOR +FORX|PIMCO Foreign Currency Strategy Active ETF|P|FORX|Y|100|N|FORX +FPA|First Trust Asia Pacific ex-Japan AlphaDEX Fund|P|FPA|Y|100|N|FPA +FPE|First Trust Preferred Securities and Income ETF ETF|P|FPE|Y|100|N|FPE +FPF|First Trust Intermediate Duration Preferred & Income Fund Common Shares of Beneficial Interest|N|FPF|N|100|N|FPF +FPI|Farmland Partners Inc. Common Stock|A|FPI|N|100|N|FPI +FPL|First Trust New Opportunities MLP & Energy Fund Common Shares of Beneficial Interest|N|FPL|N|100|N|FPL +FPO|First Potomac Realty Trust Common Shares of Beneficial Interest|N|FPO|N|100|N|FPO +FPO$A|First Potomac Realty Trust CUMULATIVE REDEEMABLE PFD PERPETUAL SER A|N|FPOpA|N|100|N|FPO-A +FPP|FieldPoint Petroleum Corporation Common Stock|A|FPP|N|100|N|FPP +FPP.W|FieldPoint Petroleum Corporation Warrant expiring 2018|A|FPP/WS|N|100|N|FPP+ +FPT|Federated Premier Intermediate Municipal Income Fund Federated Premier Intermediate Municipal Income Fund|N|FPT|N|100|N|FPT +FPX|First Trust IPOX-100 Index Fund|P|FPX|Y|100|N|FPX +FR|First Industrial Realty Trust, Inc. Common Stock|N|FR|N|100|N|FR +FRA|Blackrock Floating Rate Income Strategies Fund Inc Common Stock|N|FRA|N|100|N|FRA +FRAK|Market Vectors Unconventional Oil & Gas ETF|P|FRAK|Y|100|N|FRAK +FRC|FIRST REPUBLIC BANK Common Stock|N|FRC|N|100|N|FRC +FRC$A|First Republicbank Corp DEP SHS REPSTG 1/40TH PERP PFD SER A|N|FRCpA|N|100|N|FRC-A +FRC$B|First Republic Bank Depositary Shares Representing 1/40th Perpetual Preferred Series B|N|FRCpB|N|100|N|FRC-B +FRC$C|FIRST REPUBLIC BANK Dep Shs Repstg 1/40th Perp Pfd Ser C|N|FRCpC|N|100|N|FRC-C +FRC$D|First Republic Bank San Francisco California Depositary Shares Representing 1/40th Perpetual Preferred Series D|N|FRCpD|N|100|N|FRC-D +FRC$E|FIRST REPUBLIC BANK Depositary Shs Repstg 1/40th Perp Pfd Ser E Fixed To Fltg (RATE)|N|FRCpE|N|100|N|FRC-E +FRD|Friedman Industries Inc. Common Stock|A|FRD|N|100|N|FRD +FRI|First Trust S&P REIT Index Fund|P|FRI|Y|100|N|FRI +FRM|Furmanite Corporation Common Stock|N|FRM|N|100|N|FRM +FRN|Guggenheim Frontier Markets ETF|P|FRN|Y|100|N|FRN +FRO|Frontline Ltd. Ordinary Shares|N|FRO|N|100|N|FRO +FRS|Frisch's Restaurants, Inc. Common Stock|A|FRS|N|100|N|FRS +FRT|Federal Realty Investment Trust Common Stock|N|FRT|N|100|N|FRT +FSCE|Fifth Street Finance Corp. 5.875% Senior Notes due 2024|N|FSCE|N|100|N|FSCE +FSD|First Trust High Income Long Short Fund Common Shares of Beneficial Interest|N|FSD|N|100|N|FSD +FSI|Flexible Solutions International Inc. Common Stock|A|FSI|N|100|N|FSI +FSIC|FS Investment Corporation Common Stock|N|FSIC|N|100|N|FSIC +FSL|Freescale Semiconductor, Ltd Common Shares|N|FSL|N|100|N|FSL +FSM|Fortuna Silver Mines Inc Ordinary Shares (Canada)|N|FSM|N|100|N|FSM +FSP|Franklin Street Properties Corp. Common Stock|A|FSP|N|100|N|FSP +FSS|Federal Signal Corporation Common Stock|N|FSS|N|100|N|FSS +FSTA|Fidelity MSCI COnsumer Staples Index ETF|P|FSTA|Y|100|N|FSTA +FSZ|First Trust Switzerland AlphaDex Fund|P|FSZ|Y|100|N|FSZ +FT|Franklin Universal Trust Common Stock|N|FT|N|100|N|FT +FTA|First Trust Large Cap Value AlphaDEX Fund (based onthe Defined Large Cap Value Index symbol DEFILVOI|P|FTA|Y|100|N|FTA +FTC|First Trust Large Cap Growth AlphaDEX Fund (based on the Defined Large CAp Growth Index symbol DEFILGOI)|P|FTC|Y|100|N|FTC +FTEC|Fidelity MSCI Information Technology Index ETF|P|FTEC|Y|100|N|FTEC +FTF|Franklin Limited Duration Income Trust Common Shares of Beneficial Interest|A|FTF|N|100|N|FTF +FTI|FMC Technologies, Inc. Common Stock|N|FTI|N|100|N|FTI +FTK|Flotek Industries, Inc. Common Stock|N|FTK|N|100|N|FTK +FTLS|First Trust Long/Short Equity|P|FTLS|Y|100|N|FTLS +FTSD|Franklin Short Duration U.S. Government ETF|P|FTSD|Y|100|N|FTSD +FTT|Federated Enhanced Treasury Income Fund Common Shares of Beneficial Interest|N|FTT|N|100|N|FTT +FTW|First Trust Taiwan AlphaDex Fund|P|FTW|Y|100|N|FTW +FTY|iShares Real Estate 50 ETF|P|FTY|Y|100|N|FTY +FUD|E-TRACS USB Bloomberg Commodity Index Exchange Traded Notes E-TRACS UBS Bloomberg CMCI Food ETN|P|FUD|N|100|N|FUD +FUE|AB Svensk Ekportkredit (Swedish Export Credit Corporation) ELEMENTS Linked to the MLCX Biofuels Index - Total Return Structured Product|P|FUE|N|100|N|FUE +FUL|H. B. Fuller Company Common Stock|N|FUL|N|100|N|FUL +FUN|Cedar Fair, L.P. Common Stock|N|FUN|N|100|N|FUN +FUR|Winthrop Realty Trust New Common Stock|N|FUR|N|100|N|FUR +FUTS|ProShares Managed Futures Strategy|P|FUTS|Y|100|N|FUTS +FUTY|Fidelity MSCI Utilities Index ETF|P|FUTY|Y|100|N|FUTY +FVD|First Trust VL Dividend|P|FVD|Y|100|N|FVD +FVE|Five Star Quality Care, Inc. Common Stock - $0.01 par value|N|FVE|N|100|N|FVE +FVL|First Trust Value Line 100 Fund|P|FVL|Y|100|N|FVL +FWDB|Madrona Global Bond ETF|P|FWDB|Y|100|N|FWDB +FWDD|Madrona Domestic ETF|P|FWDD|Y|100|N|FWDD +FWDI|Madrona International ETF|P|FWDI|Y|100|N|FWDI +FWV|First West Virginia Bancorp, Inc. Common Stock|A|FWV|N|100|N|FWV +FXA|Guggenheim CurrencyShares Australian Dollar Trust|P|FXA|Y|100|N|FXA +FXB|Guggenheim CurrencyShares British Pound Sterling Trust|P|FXB|Y|100|N|FXB +FXC|Guggenheim CurrencyShares Canadian Dollar Trust|P|FXC|Y|100|N|FXC +FXCH|Guggenheim CurrencyShares Chinese Renminbi Trust|P|FXCH|Y|100|N|FXCH +FXCM|FXCM Inc. Class A Common Stock|N|FXCM|N|100|N|FXCM +FXD|First Trust Cons. Discret. AlphaDEX|P|FXD|Y|100|N|FXD +FXE|Guggenheim CurrencyShares Euro Currency Trust|P|FXE|Y|100|N|FXE +FXF|Guggenheim CurrencyShares Swiss Franc Trust|P|FXF|Y|100|N|FXF +FXG|First Trust Cons. Staples AlphaDEX|P|FXG|Y|100|N|FXG +FXH|First Trust Health Care AlphaDEX|P|FXH|Y|100|N|FXH +FXI|iShares China Large-Cap ETF|P|FXI|Y|100|N|FXI +FXL|First Trust Technology AlphaDEX|P|FXL|Y|100|N|FXL +FXN|First Trust Energy AlphaDEX Fund|P|FXN|Y|100|N|FXN +FXO|First Trust Financials AlphaDEX|P|FXO|Y|100|N|FXO +FXP|ProShares Ultrashort FTSE China 50|P|FXP|Y|100|N|FXP +FXR|First Trust Industrials AlphaDEX|P|FXR|Y|100|N|FXR +FXS|Guggenheim CurrencyShares Swedish Krona Trust|P|FXS|Y|100|N|FXS +FXSG|Guggenheim CurrencyShares Singapore Dollar Trust ETF|P|FXSG|Y|100|N|FXSG +FXU|First Trust Utilities AlphaDEX Fund|P|FXU|Y|100|N|FXU +FXY|Guggenheim CurrencyShares Japanese Yen Trust|P|FXY|Y|100|N|FXY +FXZ|First Trust Materials AlphaDEX Fund|P|FXZ|Y|100|N|FXZ +FYC|First Trust Small Cap Growth AlphaDEX Fund|P|FYC|Y|100|N|FYC +FYLD|Cambria Foreign Shareholder Yield ETF|P|FYLD|Y|100|N|FYLD +FYT|First Trust Small Cap Value AlphaDEX Fund|P|FYT|Y|100|N|FYT +FYX|First Trust Small Cap Core AlphaDEX|P|FYX|Y|100|N|FYX +G|Genpact Limited Common Stock|N|G|N|100|N|G +GAA|Cambria Global Asset Allocation ETF|P|GAA|Y|100|N|GAA +GAB|Gabelli Equity Trust, Inc. (The) Common Stock|N|GAB|N|100|N|GAB +GAB$D|Gabelli Equity Trust, Inc. (The) Preferred Stock Series D|N|GABpD|N|100|N|GAB-D +GAB$G|Gabelli Equity Trust, Inc. (The) Series G Cumulative Preferred Stock|N|GABpG|N|100|N|GAB-G +GAB$H|Gabelli Equity Trust, Inc. (The) Pfd Ser H|N|GABpH|N|100|N|GAB-H +GAF|SPDR S&P Middle East & Africa ETF|P|GAF|Y|100|N|GAF +GAL|SPDR SSgA Global Allocation ETF|P|GAL|Y|100|N|GAL +GAM|General American Investors, Inc. Common Stock|N|GAM|N|100|N|GAM +GAM$B|General American Investors Company, Inc. Cumulative Preferred Stock|N|GAMpB|N|100|N|GAM-B +GAS|AGL Resources, Inc. Common Stock|N|GAS|N|100|N|GAS +GASL|Direxion Daily Natural Gas Related Bull 3X Shares|P|GASL|Y|100|N|GASL +GAZ|iPath Bloomberg Natural Gas Subindeex Total Return ETN|P|GAZ|N|100|N|GAZ +GB|Greatbatch, Inc. Common Stock|N|GB|N|100|N|GB +GBAB|Guggenheim Build America Bonds Managed Duration Trust Common Shares of Beneficial Interest|N|GBAB|N|100|N|GBAB +GBB|iPath Goldman Sachs iPath GBP/USD Exchange Rate ETN|P|GBB|N|100|N|GBB +GBF|iShares Government/Credit Bond ETF|P|GBF|Y|100|N|GBF +GBL|Gamco Investors, Inc. Common Stock|N|GBL|N|100|N|GBL +GBR|New Concept Energy, Inc Common Stock|A|GBR|N|100|N|GBR +GBX|Greenbrier Companies, Inc. (The) Common Stock|N|GBX|N|100|N|GBX +GCA|Global Cash Access Holdings, Inc. Common Stock|N|GCA|N|100|N|GCA +GCAP|GAIN Capital Holdings, Inc. Common Stock|N|GCAP|N|100|N|GCAP +GCC|GreenHaven Continuous Commodity Index Fund|P|GCC|Y|100|N|GCC +GCE|Clarymore CEF GS Connect ETN|P|GCE|N|100|N|GCE +GCH|Aberdeen Greater China Fund, Inc. Common Stock|N|GCH|N|100|N|GCH +GCI|Gannett Co., Inc. Common Stock|N|GCI|N|100|N|GCI +GCO|Genesco Inc. Common Stock|N|GCO|N|100|N|GCO +GCV|Gabelli Convertible and Income Securities Fund, Inc. (The) Common Stock|N|GCV|N|100|N|GCV +GCV$B|Gabelli Convertible and Income Securities Fund, Inc. (The) Series B 6.00% Cumulative Preferred Stock|N|GCVpB|N|100|N|GCV-B +GD|General Dynamics Corporation Common Stock|N|GD|N|100|N|GD +GDAY|ProShares Ultra Australian Dollar|P|GDAY|Y|100|N|GDAY +GDF|Western Asset Global Partners Income Fund, Inc. Common Stock|N|GDF|N|100|N|GDF +GDL|GDL Fund, The Common Shares of Beneficial Interest|N|GDL|N|100|N|GDL +GDL$B|The GDL Fund Series B Cumulative Puttable and Callable Preferred Shares|N|GDLpB|N|100|N|GDL-B +GDO|Western Asset Global Corporate Defined Opportunity Fund Inc. Western Asset Global Corporate Defined Opportunity Fund Inc.|N|GDO|N|100|N|GDO +GDOT|Green Dot Corporation Class A Common Stock, $0.001 par value|N|GDOT|N|100|N|GDOT +GDP|Goodrich Petroleum Corporation Common Stock|N|GDP|N|100|N|GDP +GDP$C|Goodrich Petroleum Corporation Depositary Shares Representing 1/1000th Preferred Series C|N|GDPpC|N|100|N|GDP-C +GDP$D|Goodrich Petroleum Corporation Depositary Shares Representing 1/1000th Preferred Series D|N|GDPpD|N|100|N|GDP-D +GDV|Gabelli Dividend & Income Trust Common Shares of Beneficial Interest|N|GDV|N|100|N|GDV +GDV$A|Gabelli Dividend & Income Tr Preferred Series A|N|GDVpA|N|100|N|GDV-A +GDV$D|Gabelli Dividend Pfd Series D|N|GDVpD|N|100|N|GDV-D +GDX|Market Vectors Gold Miners ETF|P|GDX|Y|100|N|GDX +GDXJ|Market Vectors Junior Gold Miners ETF|P|GDXJ|Y|100|N|GDXJ +GE|General Electric Company Common Stock|N|GE|N|100|N|GE +GEB|General Electric Company 4.875% Notes due October 15, 2052|N|GEB|N|100|N|GEB +GEF|Greif Inc. Class A Common Stock|N|GEF|N|100|N|GEF +GEF.B|Greif, Inc. Corporation Class B Common Stock|N|GEF/B|N|100|N|GEF.B +GEH|General Electric Capital Corporation 4.876% Notes due January 29, 2053|N|GEH|N|100|N|GEH +GEK|General Electric Capital Corporation 4.70% Notes due May 16, 2053|N|GEK|N|100|N|GEK +GEL|Genesis Energy, L.P. Common Units|N|GEL|N|100|N|GEL +GEO|Geo Group Inc (The) REIT|N|GEO|N|100|N|GEO +GEQ|Guggenheim Equal Weight Enhanced Equity Income Fund Common Shares of Beneficial Interest|N|GEQ|N|100|N|GEQ +GER|Goldman Sachs MLP Energy Renaissance Fund|N|GER|N|100|N|GER +GES|Guess?, Inc. Common Stock|N|GES|N|100|N|GES +GEUR|AdvisorShares Gartman Gold/Euro ETF|P|GEUR|Y|100|N|GEUR +GEX|Market Vectors Global Alternative Energy ETF|P|GEX|Y|100|N|GEX +GF|New Germany Fund, Inc. (The) Common Stock|N|GF|N|100|N|GF +GFA|Gafisa SA Gafisa S.A. American Depositary Shares|N|GFA|N|100|N|GFA +GFF|Griffon Corporation Common Stock|N|GFF|N|100|N|GFF +GFI|Gold Fields Limited American Depositary Shares|N|GFI|N|100|N|GFI +GFIG|GFI Group Inc. Common Stock|N|GFIG|N|100|N|GFIG +GFY|Western Asset Variable Rate Strategic Fund Inc. Common Stock|N|GFY|N|100|N|GFY +GG|Goldcorp Inc. Common Stock|N|GG|N|100|N|GG +GGB|Gerdau S.A. Common Stock|N|GGB|N|100|N|GGB +GGBP|AdvisorShares Gartman Gold/Pound ETF|P|GGBP|Y|100|N|GGBP +GGE|Guggenheim Enhanced Equity Strategy Fund|N|GGE|N|100|N|GGE +GGG|Graco Inc. Common Stock|N|GGG|N|100|N|GGG +GGM|Guggenheim Credit Allocation Fund Common Shares of Beneficial Interest|N|GGM|N|100|N|GGM +GGN|GAMCO Global Gold, Natural Resources & Income Trust|A|GGN|N|100|N|GGN +GGN$B|GAMCO Global Gold, Natural Reources & Income Trust 5.00% Series B Cumulative 25.00 Liquidation Preference|A|GGNpB|N|100|N|GGN-B +GGOV|ProShares German Sovereign Sub Soverign ETF|P|GGOV|Y|100|N|GGOV +GGP|General Growth Properties, Inc. Common Stock|N|GGP|N|100|N|GGP +GGP$A|General Growth Properties, Inc. Preferred Series A|N|GGPpA|N|100|N|GGP-A +GGT|Gabelli Multi-Media Trust, Inc. (The) Common Stock|N|GGT|N|100|N|GGT +GGT$B|Gabelli Multi-Media Trust, Inc. (The) Preferred Series B|N|GGTpB|N|100|N|GGT-B +GGZ|Gabelli Global Small and Mid Cap Value Trust (The) Common Shares of Beneficial Interest|N|GGZ|N|100|N|GGZ +GHC|Graham Holdings Company Common Stock|N|GHC|N|100|N|GHC +GHI|Global High Income Fund, Inc. Common Stock|N|GHI|N|100|N|GHI +GHL|Greenhill & Co., Inc. Common Stock|N|GHL|N|100|N|GHL +GHM|Graham Corporation Common Stock|N|GHM|N|100|N|GHM +GHY|Prudential Global Short Duration High Yield Fund, Inc. Common Stock|N|GHY|N|100|N|GHY +GHYG|iShares Global High Yield Corporate Bond ETF|Z|GHYG|Y|100|N|GHYG +GIB|CGI Group, Inc. Common Stock|N|GIB|N|100|N|GIB +GIG|GigOptix, Inc. Common Stock|A|GIG|N|100|N|GIG +GII|SPDR S&P Global Infrastructure ETF|P|GII|Y|100|N|GII +GIL|Gildan Activewear, Inc. Class A Sub. Vot. Common Stock|N|GIL|N|100|N|GIL +GIM|Templeton Global Income Fund, Inc. Common Stock|N|GIM|N|100|N|GIM +GIMO|Gigamon Inc. Common Stock|N|GIMO|N|100|N|GIMO +GIS|General Mills, Inc. Common Stock|N|GIS|N|100|N|GIS +GIVE|AdvisorShares Global Echo|P|GIVE|Y|100|N|GIVE +GJH|Synthetic Fixed-Income Securities Inc 6.375% (STRATS) Cl A-1|N|GJH|N|100|N|GJH +GJO|Synthetic Fixed-Income Securities, Inc. Synthetic Fixed-Income Securities, Inc. on behalf of STRATS(SM) Trust for Wal-Mart Stores, Inc. Securities, Series 2004-5|N|GJO|N|100|N|GJO +GJP|Synthetic Fixed-Income Securities, Inc. Synthetic Fixed-Income Securities, Inc. on behalf of STRATS (SM) Trust for Dominion Resources, Inc. Securities, Series 2005-6, Floating Rate Structured Repackaged Asset-Backed Trust Securities (STRATS) Certificates|N|GJP|N|100|N|GJP +GJR|Synthetic Fixed-Income Securities, Inc. STRATS Trust for Procter&Gamble Securities, Series 2006-1|N|GJR|N|100|N|GJR +GJS|Goldman Sachs Group Securities STRATS Trust for Goldman Sachs Group Securities, Series 2006-2|N|GJS|N|100|N|GJS +GJT|Synthetic Fixed-Income Securities, Inc. Synthetic Fixed-Income Securities, Inc. Floating Rate Structured Repackaged Asset-Backed Trust Securities Certificates, Series 2006-3|N|GJT|N|100|N|GJT +GJV|Synthetic Fixed-Income Securities Inc 7.00% Fixed Rate Structured Repackaged Asset-Backed Trust Securities (STRATS)|N|GJV|N|100|N|GJV +GLD|SPDR Gold Trust|P|GLD|Y|100|N|GLD +GLDE|AdvisorShares International Gold ETF|P|GLDE|Y|100|N|GLDE +GLDX|Global X Gold Explorers ETF|P|GLDX|Y|100|N|GLDX +GLF|GulfMark Offshore, Inc. New Common Stock|N|GLF|N|100|N|GLF +GLL|ProShares UltraShort Gold|P|GLL|Y|100|N|GLL +GLO|Clough Global Opportunities Fund Common Stock|A|GLO|N|100|N|GLO +GLOB|Globant S.A. Common Shares|N|GLOB|N|100|N|GLOB +GLOG|GasLog Ltd. Common Shares|N|GLOG|N|100|N|GLOG +GLOP|GasLog Partners LP Common Units representing limited partnership interests|N|GLOP|N|100|N|GLOP +GLOW|Glowpoint, Inc. Common Stock|A|GLOW|N|100|N|GLOW +GLP|Global Partners LP Global Partners LP Common Units representing Limited Partner Interests|N|GLP|N|100|N|GLP +GLPW|Global Power Equipment Group Inc Common Stock|N|GLPW|N|100|N|GLPW +GLQ|Clough Global Equity Fund Clough Global Equity Fund Common Shares of Beneficial Interest|A|GLQ|N|100|N|GLQ +GLT|Glatfelter Common Stock|N|GLT|N|100|N|GLT +GLTR|ETFS Physical Precious Metal Basket Shares ETF|P|GLTR|Y|100|N|GLTR +GLU|Gabelli Global Utility Common Shares of Beneficial Ownership|A|GLU|N|100|N|GLU +GLU$A|The Gabelli Global Utility and Income Trust Series A Cumulative Puttable and Callable Preferred Shares|A|GLUpA|N|100|N|GLU-A +GLV|Clough Global Allocation Fund Common Shares of beneficial interest|A|GLV|N|100|N|GLV +GLW|Corning Incorporated Common Stock|N|GLW|N|100|N|GLW +GM|General Motors Company Common Stock|N|GM|N|100|N|GM +GM.A|General Motors Company Warrant (Expires 07/10/2016)|N|GM/WS/A|N|100|N|GM+A +GM.B|General Motors Company Warrant (Expires 07/10/2019)|N|GM/WS/B|N|100|N|GM+B +GM.C|General Motors Company Warrants (expiring December 31, 2015)|N|GM/WS/C|N|100|N|GM+C +GME|Gamestop Corporation Common Stock|N|GME|N|100|N|GME +GMED|Globus Medical, Inc. Class A Common Stock|N|GMED|N|100|N|GMED +GMF|SPDR S&P Emerging Asia Pacific ETF|P|GMF|Y|100|N|GMF +GMFS|SPDR S&P Small Cap Emerging Asia Pacific ETF|P|GMFS|Y|100|N|GMFS +GMK|GRUMA, S.A.B de C.V. Common Stock|N|GMK|N|100|N|GMK +GML|SPDR S&P Emerging Latin America ETF|P|GML|Y|100|N|GML +GMM|SPDR S&P Emerging Markets ETF|P|GMM|Y|100|N|GMM +GMMB|Columbia Intermediate Municipal Bond Fund|P|GMMB|Y|100|N|GMMB +GMO|General Moly, Inc. Common Stock|A|GMO|N|100|N|GMO +GMOM|Cambria Global Momentum ETF|P|GMOM|Y|100|N|GMOM +GMT|GATX Corporation Common Stock|N|GMT|N|100|N|GMT +GMTB|Columbia Core Bond ETF|P|GMTB|Y|100|N|GMTB +GMZ|Goldman Sachs MLP Income Opportunities Fund|N|GMZ|N|100|N|GMZ +GNAT|WisdomTree Global Natural Resources International Index|P|GNAT|Y|100|N|GNAT +GNC|GNC Holdings, Inc. Class A Common Stock|N|GNC|N|100|N|GNC +GNE|Genie Energy Ltd. Class B Common Stock Stock|N|GNE|N|100|N|GNE +GNE$A|Genie Energy Ltd. Series 2012 - A Preferred Stock, $0.01 par value|N|GNEpA|N|100|N|GNE-A +GNI|Great Northern Iron Ore Properties Common Stock|N|GNI|N|100|N|GNI +GNR|SPDR S&P Global Natural Resources ETF|P|GNR|Y|100|N|GNR +GNRC|Generac Holdlings Inc. Common Stock|N|GNRC|N|100|N|GNRC +GNT|GAMCO Natural Resources, Gold & Income Trust|N|GNT|N|100|N|GNT +GNW|Genworth Financial Inc Common Stock|N|GNW|N|100|N|GNW +GOF|Guggenheim Strategic Opportunities Fund Common Shares of Beneficial Interest|N|GOF|N|100|N|GOF +GOL|Gol Linhas Aereas Inteligentes S.A. Sponsored ADR representing Pfd Shares|N|GOL|N|100|N|GOL +GORO|Gold Resource Corporation Common Stock|A|GORO|N|100|N|GORO +GOV|Government Properties Income Trust Common Shares of Beneficial Interest|N|GOV|N|100|N|GOV +GOVT|iShares Core U.S. Treasury Bond ETF|P|GOVT|Y|100|N|GOVT +GPC|Genuine Parts Company Common Stock|N|GPC|N|100|N|GPC +GPE$A|Georgia Power Company Georgia Power Company 6 1/8% Series Class A Preferred Stock, Non-Cumulative|N|GPEpA|N|100|N|GPE-A +GPI|Group 1 Automotive, Inc. Common Stock|N|GPI|N|100|N|GPI +GPK|Graphic Packaging Holding Company|N|GPK|N|100|N|GPK +GPL|Great Panther Silver Limited Ordinary Shares (Canada)|A|GPL|N|100|N|GPL +GPM|Guggenheim Enhanced Equity Income Fund|N|GPM|N|100|N|GPM +GPN|Global Payments Inc. Common Stock|N|GPN|N|100|N|GPN +GPRK|Geopark Ltd Common Shares|N|GPRK|N|100|N|GPRK +GPS|Gap, Inc. (The) Common Stock|N|GPS|N|100|N|GPS +GPT|Gramercy Property Trust Inc. Common Stock|N|GPT|N|100|N|GPT +GPT$B|Gramercy Property Trust Inc. Preferred Series B|N|GPTpB|N|100|N|GPT-B +GPX|GP Strategies Corporation Common Stock|N|GPX|N|100|N|GPX +GQRE|FlexShares Global Quality Real Estate Index Fund|P|GQRE|Y|100|N|GQRE +GRA|W.R. Grace & Co. Common Stock|N|GRA|N|100|N|GRA +GRAM|Grana y Montero S.A.A. American Depositary Shares, each representing five Common Shares|N|GRAM|N|100|N|GRAM +GRC|Gorman-Rupp Company (The) Common Stock|A|GRC|N|100|N|GRC +GREK|Global X FTSE Greece 20 ETF|P|GREK|Y|100|N|GREK +GRES|IQ ARB Global Resources ETF|P|GRES|Y|100|N|GRES +GRF|Eagle Capital Growth Fund, Inc. Common Stock|A|GRF|N|100|N|GRF +GRH|GreenHunter Resources, Inc. Common stock|A|GRH|N|100|N|GRH +GRH$C|GreenHunter Resources, Inc. 10% Series C Cumulative Preferred Stock|A|GRHpC|N|100|N|GRH-C +GRI|Cohen & Steers Global Realty Majors ETF|P|GRI|Y|100|N|GRI +GRN|iPath Global Carbon ETN|P|GRN|N|100|N|GRN +GRO|Agria Corporation American Depositary Shares|N|GRO|N|100|N|GRO +GRP.U|Granite Real Estate Inc. Stapled Units, each consisting of one unit of Granite Real Estate Trust and one common share of Granite REIT Inc.|N|GRP/U|N|100|N|GRP= +GRR|Asia Tigers Fund, Inc. (The) Common Stock|N|GRR|N|100|N|GRR +GRU|AB Svensk Ekportkredit (Swedish Export Credit Corporation) ELEMENTS Linked to the MLCX Grains Index - Total Return|P|GRU|N|100|N|GRU +GRUB|GrubHub Inc. Common Stock|N|GRUB|N|100|N|GRUB +GRWN|iPath Pure Beta Softs ETN|P|GRWN|N|100|N|GRWN +GRX|The Gabelli Healthcare & Wellness Trust Common Shares of Beneficial Interest|N|GRX|N|100|N|GRX +GRX$A|Gabelli Healthcare PFD SER A|N|GRXpA|N|100|N|GRX-A +GRX$B|Gabelli Healthcare Preferred Series B|N|GRXpB|N|100|N|GRX-B +GS|Goldman Sachs Group, Inc. (The) Common Stock|N|GS|N|100|N|GS +GS$A|Goldman Sachs Group, Inc. (The) Depositary Shares each representing 1/1000th Interest in a Share of Floating Rate Non-Cumulative Preferred Stock Series A|N|GSpA|N|100|N|GS-A +GS$B|Goldman Sachs Group, Inc. (The) Depositary Share repstg 1/1000th Preferred Series B|N|GSpB|N|100|N|GS-B +GS$C|Goldman Sachs Group, Inc. (The) Depositary Share repstg 1/1000th Preferred Series C|N|GSpC|N|100|N|GS-C +GS$D|Goldman Sachs Group, Inc. (The) Dep Shs repstg 1/1000 Pfd Ser D Fltg|N|GSpD|N|100|N|GS-D +GS$I|Goldman Sachs Group, Inc. (The) Perpetual Preferred Series I|N|GSpI|N|100|N|GS-I +GS$J|Goldman Sachs Group Inc Depositary Shs Repstg 1/1000th Pfd Ser J Fixed to Fltg Rate|N|GSpJ|N|100|N|GS-J +GS$K|Goldman Sachs Group, Inc. (The) Dep Shs Repstg 1/1000 Int Sh Fxd/Fltg Non Cum Pfd Stk Ser K|N|GSpK|N|100|N|GS-K +GSAT|Globalstar, Inc. Common Stock|A|GSAT|N|100|N|GSAT +GSB|GlobalSCAPE, Inc. Common Stock|A|GSB|N|100|N|GSB +GSC|Goldman Sachs Connect S&P Enhanced Commodity Total Return Strategy Index|P|GSC|N|100|N|GSC +GSF|Goldman Sachs Group, Inc. (The) 6.125% Notes due 2060|N|GSF|N|100|N|GSF +GSG|iShares GSCI Commodity-Indexed Trust Fund|P|GSG|Y|100|N|GSG +GSH|Guangshen Railway Company Limited Common Stock|N|GSH|N|100|N|GSH +GSI|General Steel Holdings, Inc. Common Stock|N|GSI|N|100|N|GSI +GSJ|Goldman Sachs Group, Inc. (The) 6.50% Notes due 2061|N|GSJ|N|100|N|GSJ +GSK|GlaxoSmithKline PLC Common Stock|N|GSK|N|100|N|GSK +GSL|Global Ship Lease Inc New Class A Common Shares|N|GSL|N|100|N|GSL +GSL$B|Global Ship Lease, Inc. Depository Shares Representing 1/100th Perpetual Preferred Series B% (Marshall Island)|N|GSLpB|N|100|N|GSL-B +GSP|Barclays Bank PLC iPath Exchange Traded Notes due June 12, 2036 Linked to GSCI Total Return Index|P|GSP|N|100|N|GSP +GSS|Golden Star Resources, Ltd Common Stock|A|GSS|N|100|N|GSS +GST|Gastar Exploration Inc Common Stock|A|GST|N|100|N|GST +GST$A|Gastar Exploration 8.625% Series A Cumulative Preferred Stock|A|GSTpA|N|100|N|GST-A +GST$B|Gastar Exploration Inc. Pfd Ser B %|A|GSTpB|N|100|N|GST-B +GSV|Gold Standard Ventures Corporation Common Stock (Canada)|A|GSV|N|100|N|GSV +GSY|Guggenheim Enhanced Short Duration ETF|P|GSY|Y|100|N|GSY +GTAA|AdvisorShares Morgan Creek Global Tactical ETF|P|GTAA|Y|100|N|GTAA +GTE|Gran Tierra Energy Inc. Common Stock|A|GTE|N|100|N|GTE +GTI|GrafTech International Ltd (Holding Co.) Common Stock|N|GTI|N|100|N|GTI +GTIP|iShares Global Inflation Linked Bond ETF|P|GTIP|Y|100|N|GTIP +GTN|Gray Communications Systems, Inc. Common Stock|N|GTN|N|100|N|GTN +GTN.A|Gray Television, Inc. CLass A Common Stock|N|GTN/A|N|100|N|GTN.A +GTS|Triple-S Management Corporation Class B Common Stock|N|GTS|N|100|N|GTS +GTT|GTT Communications, Inc. Common Stock|N|GTT|N|100|N|GTT +GTU|Central Gold Trust Ordinary Shares (Canada)|A|GTU|N|100|N|GTU +GTY|Getty Realty Corporation Common Stock|N|GTY|N|100|N|GTY +GUA|Gulf Power Company Series 2011A 5.75% Senior Notes due June 1, 2051|N|GUA|N|100|N|GUA +GUNR|FlexShares Global Upstream Natural Resources Index Fund ETF|P|GUNR|Y|100|N|GUNR +GUR|SPDR S&P Emerging Europe ETF|P|GUR|Y|100|N|GUR +GURI|Global X Guru International Index ETF|P|GURI|Y|100|N|GURI +GURU|Global X Guru Index ETF|P|GURU|Y|100|N|GURU +GURX|Global X Guru Small Cap Index ETF|P|GURX|Y|100|N|GURX +GUT|Gabelli Utility Trust (The) Common Stock|N|GUT|N|100|N|GUT +GUT$A|Gabelli Utility Trust (The) 5.625% Series A Cumulative Preferred Shares|N|GUTpA|N|100|N|GUT-A +GV|Goldfield Corporation (The) Common Stock|A|GV|N|100|N|GV +GVA|Granite Construction Incorporated Common Stock|N|GVA|N|100|N|GVA +GVAL|Cambria Global Value ETF|P|GVAL|Y|100|N|GVAL +GVI|iShares Intermediate Government/Credit Bond ETF|P|GVI|Y|100|N|GVI +GVP|GSE Systems, Inc. Common Stock|A|GVP|N|100|N|GVP +GVT|Columbia Select Large Cap Value ETF|P|GVT|Y|100|N|GVT +GWB|Great Western Bancorp, Inc. Common Stock|N|GWB|N|100|N|GWB +GWL|SPDR S&P World ex-US ETF|P|GWL|Y|100|N|GWL +GWR|Genesee & Wyoming Inc. Class A Common Stock|N|GWR|N|100|N|GWR +GWRE|Guidewire Software, Inc. Common Stock|N|GWRE|N|100|N|GWRE +GWRU|Genesee & Wyoming, Inc. Tangible Equity Unit|N|GWRU|N|100|N|GWRU +GWW|W.W. Grainger, Inc. Common Stock|N|GWW|N|100|N|GWW +GWX|SPDR S&P International SmallCap ETF|P|GWX|Y|100|N|GWX +GXC|SPDR S&P China ETF|P|GXC|Y|100|N|GXC +GXF|Global X FTSE Nordic Region ETF|P|GXF|Y|100|N|GXF +GXG|Global X MSCI Colombia ETF|P|GXG|Y|100|N|GXG +GXP|Great Plains Energy Incorporated Common Stock|N|GXP|N|100|N|GXP +GXP$A|Great Plains Energy Incorporated Preferred Stock|N|GXPpA|N|10|N|GXP-A +GXP$D|Great Plains Energy Incorporated Preferred Stock|N|GXPpD|N|10|N|GXP-D +GXP$E|Great Plains Energy Incorporated Preferred Stock|N|GXPpE|N|10|N|GXP-E +GY|GenCorp Inc. Common Stock|N|GY|N|100|N|GY +GYB|CABCO Series 2004-101 Trust Goldman Sachs Capital I, Floating Rate Callable Certificates|N|GYB|N|100|N|GYB +GYC|Corporate Asset Backed Corp CABCO Corporate Asset Backed Corporation CABCO Series 2004-102 Trust (SBC Communications, Inc.) Collared Floating Rate Cllable Certificates|N|GYC|N|100|N|GYC +GYEN|AdvisorShares Gartman Gold/Yen ETF|P|GYEN|Y|100|N|GYEN +GYLD|Arrow Dow Jones Global Yield ETF ETF|P|GYLD|Y|100|N|GYLD +GZT|Gazit-Globe Ltd. Ordinary Shares|N|GZT|N|100|N|GZT +H|Hyatt Hotels Corporation Class A Common Stock|N|H|N|100|N|H +HACK|PureFunds ISE Cyber Security ETF|P|HACK|Y|100|N|HACK +HAE|Haemonetics Corporation Common Stock|N|HAE|N|100|N|HAE +HAL|Halliburton Company Common Stock|N|HAL|N|100|N|HAL +HAO|Guggenheim China Small Cap Index ETF|P|HAO|Y|100|N|HAO +HAP|Market Vectors Natural Resources ETF|P|HAP|Y|100|N|HAP +HAR|Harman International Industries, Incorporated Common Stock|N|HAR|N|100|N|HAR +HASI|Hannon Armstrong Sustainable Infrastructure Capital, Inc. Common Stock|N|HASI|N|100|N|HASI +HBI|Hanesbrands Inc. Common Stock|N|HBI|N|100|N|HBI +HBM|Hudbay Minerals Inc Ordinary Shares (Canada)|N|HBM|N|100|N|HBM +HBM.W|HudBay Minerals Inc Warrants Expiring 07/20/2018 (Canada)|N|HBM/WS|N|100|N|HBM+ +HCA|HCA Holdings, Inc. Common Stock|N|HCA|N|100|N|HCA +HCC|HCC Insurance Holdings, Inc. Common Stock|N|HCC|N|100|N|HCC +HCHC|HC2 Holdings, Inc. Common Stock|A|HCHC|N|100|N|HCHC +HCI|HCI Group, Inc. Common Stock|N|HCI|N|100|N|HCI +HCJ|HCI Group, Inc. 8% Senior Notes due 2020|N|HCJ|N|100|N|HCJ +HCLP|Hi-Crush Partners LP Common Units representing limited partner interests|N|HCLP|N|100|N|HCLP +HCN|Health Care REIT, Inc. Common Stock|N|HCN|N|100|N|HCN +HCN$I|Health Care REIT, Inc. PFD PERPETUAL CONV SER I|N|HCNpI|N|100|N|HCN-I +HCN$J|HEALTH CARE REIT INC Preferred Stock 6.5% PFD SERIES J|N|HCNpJ|N|100|N|HCN-J +HCP|HCP, Inc. Common Stock|N|HCP|N|100|N|HCP +HD|Home Depot, Inc. (The) Common Stock|N|HD|N|100|N|HD +HDB|HDFC Bank Limited Common Stock|N|HDB|N|100|N|HDB +HDG|ProShares Hedge Replication ETF|P|HDG|Y|100|N|HDG +HDGE|Ranger Equity Bear Bear ETF|P|HDGE|Y|100|N|HDGE +HDLV|ETRACS Montly Pay 2xLeveraged US High Dividend Low Volatility ETN due September 30, 2044|P|HDLV|N|100|N|HDLV +HDV|iShares Core High Dividend ETF|P|HDV|Y|100|N|HDV +HDY|HyperDynamics Corporation Common Stock|N|HDY|N|100|N|HDY +HE|Hawaiian Electric Industries, Inc. Common Stock|N|HE|N|100|N|HE +HE$U|Hawaiian Electric Industries, Inc. 6.5 % Cum QUIPS|N|HEpU|N|100|N|HE-U +HEB|Hemispherx BioPharma, Inc. Common Stock|A|HEB|N|100|N|HEB +HECO|Huntington EcoLogical Strategy ETF|P|HECO|Y|100|N|HECO +HEDJ|WisdomTree Europe Hedged Equity Fund|P|HEDJ|Y|100|N|HEDJ +HEEM|iShares Currency Hedged MSCI Emerging Markets ETF|P|HEEM|Y|100|N|HEEM +HEFA|iShares Currency Hedged MSCI EAFE ETF|P|HEFA|Y|100|N|HEFA +HEI|Heico Corporation Common Stock|N|HEI|N|100|N|HEI +HEI.A|Heico Corporation Common Stock|N|HEI/A|N|100|N|HEI.A +HELI|CHC Group Ltd. Ordinary Shares|N|HELI|N|100|N|HELI +HEP|Holly Energy Partners, L.P. Common Stock|N|HEP|N|100|N|HEP +HEQ|John Hancock Hedged Equity & Income Fund Common Shares of Beneficial Interest|N|HEQ|N|100|N|HEQ +HES|Hess Corporation Common Stock|N|HES|N|100|N|HES +HEVY|iPath Pure Beta Industrial Metals ETN|P|HEVY|N|100|N|HEVY +HEWG|iShares Currency Hedged MSCI Germany ETF|P|HEWG|Y|100|N|HEWG +HEWJ|iShares Currency Hedged MSCI Japan ETF|P|HEWJ|Y|100|N|HEWJ +HEZU|iShares Trust iShares Currency Hedged MSCI EMU ETF|P|HEZU|Y|100|N|HEZU +HF|HFF, Inc. Common Stock, Class A|N|HF|N|100|N|HF +HFC|HollyFrontier Corporation Common Stock|N|HFC|N|100|N|HFC +HFIN|Horizons S&P Financial Select Sector Covered Call ETF|P|HFIN|Y|100|N|HFIN +HGG|HHGregg, Inc. Common Stock|N|HGG|N|100|N|HGG +HGH|Hartford Financial Services Group, Inc. (The) 7.875% Fixed to Floating Rate Junior Subordinated Debentures due 2042|N|HGH|N|100|N|HGH +HGI|Guggenheim International Multi-Asset Income Index ETF|P|HGI|Y|100|N|HGI +HGR|Hanger, Inc. Common Stock ($0.01 Par Value)|N|HGR|N|100|N|HGR +HGT|Hugoton Royalty Trust Common Stock|N|HGT|N|100|N|HGT +HH|Hooper Holmes, Inc. Common Stock|A|HH|N|100|N|HH +HHC|Howard Hughes Corporation (The) Common Stock|N|HHC|N|100|N|HHC +HHS|Harte-Hanks, Inc. Common Stock|N|HHS|N|100|N|HHS +HHY|Brookfield High Income Fund Inc.|N|HHY|N|100|N|HHY +HI|Hillenbrand Inc Common Stock|N|HI|N|100|N|HI +HIE|Miller/Howard High Income Equity Fund Common Shares of Beneficial Interest|N|HIE|N|100|N|HIE +HIG|Hartford Financial Services Group, Inc. (The) Common Stock|N|HIG|N|100|N|HIG +HIG.W|Hartford Financial Services Group, Inc. (The) Warrants expiring June 26, 2019|N|HIG/WS|N|100|N|HIG+ +HII|Huntington Ingalls Industries, Inc. Common Stock|N|HII|N|100|N|HII +HIL|Hill International, Inc. Common Stock|N|HIL|N|100|N|HIL +HILO|EGShares Low Volatility Emerging Markets Dividend ETF|P|HILO|Y|100|N|HILO +HIO|Western Asset High Income Opportunity Fund, Inc. Common Stock|N|HIO|N|100|N|HIO +HIPS|Master Income ETF|P|HIPS|Y|100|N|HIPS +HIVE|Aerohive Networks, Inc. Common Stock|N|HIVE|N|100|N|HIVE +HIW|Highwoods Properties, Inc. Common Stock|N|HIW|N|100|N|HIW +HIX|Western Asset High Income Fund II Inc. Common Stock|N|HIX|N|100|N|HIX +HJV|MS Structured Asset Corp MS Structured Asset Corp. SATURNS J.C. Penney Company, Inc. Debenture Backed Series 2007-1, 7% Callable Class A Units|N|HJV|N|100|N|HJV +HK|Halcon Resources Corporation Common Stock|N|HK|N|100|N|HK +HKOR|Horizons Korea KOSPI 200 ETF|P|HKOR|Y|100|N|HKOR +HL|Hecla Mining Company Common Stock|N|HL|N|100|N|HL +HL$B|Hecla Mining Company Preferred Stock|N|HLpB|N|100|N|HL-B +HLF|Herbalife Ltd. Common Stock|N|HLF|N|100|N|HLF +HLM$|Hillman Group Capital Trust Preferred Stock|A|HLMp|N|100|N|HLM- +HLS|HealthSouth Corporation Common Stock|N|HLS|N|100|N|HLS +HLT|Hilton Worldwide Holdings Inc. Common Stock|N|HLT|N|100|N|HLT +HLX|Helix Energy Solutions Group, Inc. Common Stock|N|HLX|N|100|N|HLX +HMC|Honda Motor Company, Ltd. Common Stock|N|HMC|N|100|N|HMC +HME|Home Properties, Inc. Common Stock|N|HME|N|100|N|HME +HMG|HMG/Courtland Properties, Inc. Common Stock|A|HMG|N|100|N|HMG +HMLP|Hoegh LNG Partners LP Common Units representing Limited Partner Interests|N|HMLP|N|100|N|HMLP +HMN|Horace Mann Educators Corporation Common Stock|N|HMN|N|100|N|HMN +HMY|Harmony Gold Mining Company Limited|N|HMY|N|100|N|HMY +HNI|HNI Corporation Common Stock|N|HNI|N|100|N|HNI +HNP|Huaneng Power Intl Common Stock|N|HNP|N|100|N|HNP +HNR|Harvest Natural Resources Inc|N|HNR|N|100|N|HNR +HNT|Health Net Inc. Common Stock|N|HNT|N|100|N|HNT +HNW|Pioneer Diversified High Income Trust Pioneer Diversified High Income Trust Common Shares of Beneficial Interest|A|HNW|N|100|N|HNW +HOG|Harley-Davidson, Inc. Common Stock|N|HOG|N|100|N|HOG +HOLD|AdvisorShares Sage Core Reserves ETF|P|HOLD|Y|100|N|HOLD +HON|Honeywell International Inc. Common Stock|N|HON|N|100|N|HON +HOS|Hornbeck Offshore Services Common Stock|N|HOS|N|100|N|HOS +HOT|Starwood Hotels & Resorts Worldwide, Inc. Common Stock|N|HOT|N|100|N|HOT +HOV|Hovnanian Enterprises, Inc. Class A Common Stock|N|HOV|N|100|N|HOV +HP|Helmerich & Payne, Inc. Common Stock|N|HP|N|100|N|HP +HPF|John Hancock Pfd Income Fund II Pfd Income Fund II|N|HPF|N|100|N|HPF +HPI|John Hancock Preferred Income Fund Common Shares of Beneficial Interest|N|HPI|N|100|N|HPI +HPP|Hudson Pacific Properties, Inc. Common Stock|N|HPP|N|100|N|HPP +HPP$B|Hudson Pacific Properties, Inc. 8.375% Series B Cumulative Redeemable Preferred shares|N|HPPpB|N|100|N|HPP-B +HPQ|Hewlett-Packard Company Common Stock|N|HPQ|N|100|N|HPQ +HPS|John Hancock Preferred Income Fund III Preferred Income Fund III|N|HPS|N|100|N|HPS +HPT|Hospitality Properites Trust Common Stock|N|HPT|N|100|N|HPT +HPT$D|Hospitality Properties Trust Preferred Stock|N|HPTpD|N|100|N|HPT-D +HPY|Heartland Payment Systems, Inc. Common Stock|N|HPY|N|100|N|HPY +HQH|Tekla Healthcare Investors Common Stock|N|HQH|N|100|N|HQH +HQL|TeklaLife Sciences Investors Common Stock|N|HQL|N|100|N|HQL +HR|Healthcare Realty Trust Incorporated Common Stock|N|HR|N|100|N|HR +HRB|H&R Block, Inc. Common Stock|N|HRB|N|100|N|HRB +HRC|Hill-Rom Holdings Inc Common Stock|N|HRC|N|100|N|HRC +HRG|Harbinger Group Inc Common Stock|N|HRG|N|100|N|HRG +HRL|Hormel Foods Corporation Common Stock|N|HRL|N|100|N|HRL +HRS|Harris Corporation Common Stock|N|HRS|N|100|N|HRS +HRT|Arrhythmia Research Technology Inc. Common Stock|A|HRT|N|100|N|HRT +HRTG|Heritage Insurance Holdings, Inc. Common Stock|N|HRTG|N|100|N|HRTG +HSBC|HSBC Holdings, plc. Common Stock|N|HSBC|N|100|N|HSBC +HSBC$A|HSBC Holdings, plc. ADR SER A REP 1/40 PFD SER A|N|HSBCpA|N|100|N|HSBC-A +HSC|Harsco Corporation Common Stock|N|HSC|N|100|N|HSC +HSEA|HSBC Holdings, plc. Perpetual Sub Cap Secs|N|HSEA|N|100|N|HSEA +HSEB|HSBC Holdings plc PERP SUB CAP SECS EXCH PREF SHS SER 2 (United Kingdom)|N|HSEB|N|100|N|HSEB +HSFC$B|HSBC Finance Corp Dep. Shares reptsg 1/40 Preferred Series B|N|HSFCpB|N|100|N|HSFC-B +HSP|Hospira Inc|N|HSP|N|100|N|HSP +HSPX|Horizons S&P 500 Covered Call|P|HSPX|Y|100|N|HSPX +HST|Host Hotels & Resorts, Inc. Common Stock|N|HST|N|100|N|HST +HSY|The Hershey Company Common Stock|N|HSY|N|100|N|HSY +HT|Hersha Hospitality Trust Class A Common Shares of Beneficial Interest|N|HT|N|100|N|HT +HT$B|Hersha Hospitality Trust PFD SER B|N|HTpB|N|100|N|HT-B +HT$C|Hersha Hospitality Trust 6.875% Series C Cumulative Redeemable Preferred Shares of Beneficial Interest|N|HTpC|N|100|N|HT-C +HTA|Healthcare Trust of America, Inc. Class A Common Stock|N|HTA|N|100|N|HTA +HTD|John Hancock Tax Advantaged Dividend Income Fund Common Shares of Beneficial Interest|N|HTD|N|100|N|HTD +HTF|Horizon Technology Finance Corporation 7.375% Senior Notes due 2019|N|HTF|N|100|N|HTF +HTGC|Hercules Technology Growth Capital, Inc. Common Stock|N|HTGC|N|100|N|HTGC +HTGX|Hercules Technology Growth Capital, Inc. 6.25% Notes due 2024|N|HTGX|N|100|N|HTGX +HTGY|Hercules Technology Growth Capital, Inc. 7.00% Senior Notes due 2019|N|HTGY|N|100|N|HTGY +HTGZ|Hercules Technology Growth Capital, Inc. 7.00% Note due 2019|N|HTGZ|N|100|N|HTGZ +HTH|Hilltop Holdings Inc.|N|HTH|N|100|N|HTH +HTM|U.S. Geothermal Inc. Common Stock|A|HTM|N|100|N|HTM +HTR|Brookfield Total Return Fund Inc. (The) Common Stock|N|HTR|N|100|N|HTR +HTS|Hatteras Financial Corp Hatteras Financial Corp Common Stock|N|HTS|N|100|N|HTS +HTS$A|Hatteras Financial Corp Cum Redeemable Pfd Ser A|N|HTSpA|N|100|N|HTS-A +HTY|John Hancock Tax-Advantaged Global Shareholder Yield Fund Common Shares of Beneficial Interest|N|HTY|N|100|N|HTY +HTZ|Hertz Global Holdings, Inc Common Stock|N|HTZ|N|100|N|HTZ +HUB.A|Hubbell Inc A Common Stock|N|HUB/A|N|100|N|HUB.A +HUB.B|Hubbell Inc Common Stock Class B|N|HUB/B|N|100|N|HUB.B +HUBS|HubSpot, Inc. Common Stock|N|HUBS|N|100|N|HUBS +HUM|Humana Inc. Common Stock|N|HUM|N|100|N|HUM +HUN|Huntsman Corporation Common Stock|N|HUN|N|100|N|HUN +HUSA|Houston American Energy Corporation Common Stock|A|HUSA|N|100|N|HUSA +HUSE|Huntington US Equity Rotation Strategy ETF|P|HUSE|Y|100|N|HUSE +HUSI$D|HSBC USA, Inc. Preferred Stock|N|HUSIpD|N|100|N|HUSI-D +HUSI$F|HSBC USA, Inc. Preferred Series F Floating Rate|N|HUSIpF|N|100|N|HUSI-F +HUSI$G|HSBC USA, Inc. Dep Shs repstg 1/40 Preferred Series G|N|HUSIpG|N|100|N|HUSI-G +HUSI$H|HSBC USA, Inc. Depositary Sh repstg 1/40th Preferred Series H|N|HUSIpH|N|100|N|HUSI-H +HUSI$Z|HSBC USA, Inc. Preferred Stock|N|HUSIpZ|N|100|N|HUSI-Z +HVB|Hudson Valley Holding Corp. Common Stock|N|HVB|N|100|N|HVB +HVPW|U.S. Equity High Volatility Put Write Index Fund|P|HVPW|Y|100|N|HVPW +HVT|Haverty Furniture Companies, Inc. Common Stock|N|HVT|N|100|N|HVT +HVT.A|Haverty Furniture Companies, Inc. Common Stock|N|HVT/A|N|100|N|HVT.A +HW|Headwaters Incorporated Common Stock|N|HW|N|100|N|HW +HXL|Hexcel Corporation Common Stock|N|HXL|N|100|N|HXL +HY|Hyster-Yale Materials Handling, Inc. Class A Common Stock|N|HY|N|100|N|HY +HYB|New America High Income Fund, Inc. (The) Common Stock|N|HYB|N|100|N|HYB +HYD|Market Vectors High Yield Municipal Index ETF|P|HYD|Y|100|N|HYD +HYEM|Market Vectors Emerging Markets High Yield Bond ETF|P|HYEM|Y|100|N|HYEM +HYF|Managed High Yield Plus Fund, Inc. Common Stock|N|HYF|N|100|N|HYF +HYG|iShares iBoxx $ High Yield Corporate Bond ETF|P|HYG|Y|100|N|HYG +HYGH|iShares Interest Rate Hedged High Yield Bond ETF|P|HYGH|Y|100|N|HYGH +HYH|Halyard Health, Inc. Common Stock|N|HYH|N|100|N|HYH +HYHG|ProShares High Yield Interest Rate Hedged|Z|HYHG|Y|100|N|HYHG +HYI|Western Asset High Yield Defined Opportunity Fund Inc. Common Stock|N|HYI|N|100|N|HYI +HYLD|Peritus High Yield ETF|P|HYLD|Y|100|N|HYLD +HYMB|SPDR Nuveen S&P High Yield Municipal Bond ETF|P|HYMB|Y|100|N|HYMB +HYS|PIMCO 0-5 Year High Yield Corporat Bond Index Exchange-Traded Fund|P|HYS|Y|100|N|HYS +HYT|Blackrock Corporate High Yield Fund, Inc. Common Stock|N|HYT|N|100|N|HYT +HYXU|iShares Global ex USD High Yield Corporate Bond ETF|Z|HYXU|Y|100|N|HYXU +HZO|MarineMax, Inc. Common Stock|N|HZO|N|100|N|HZO +I|Intelsat S.A. Common Shares|N|I|N|100|N|I +I$A|Intelsat S.A. Series A mandatory convefrtible junior non-voting preferred shares|N|IpA|N|100|N|I-A +IAE|Voya Asia Pacific High Dividend Equity Income Fund ING Asia Pacific High Dividend Equity Income Fund Common Shares of Beneficial Interest|N|IAE|N|100|N|IAE +IAF|Aberdeen Australia Equity Fund Inc Common Stock|A|IAF|N|100|N|IAF +IAG|Iamgold Corporation Ordinary Shares|N|IAG|N|100|N|IAG +IAI|iShares U.S. Broker-Dealers ETF|P|IAI|Y|100|N|IAI +IAK|iShares U.S. Insurance ETF|P|IAK|Y|100|N|IAK +IAT|iShares U.S. Regional Banks ETF|P|IAT|Y|100|N|IAT +IAU|ishares Gold Trust|P|IAU|Y|100|N|IAU +IBA|Industrias Bachoco, S.A.B. de C.V. Common Stock|N|IBA|N|100|N|IBA +IBCB|iShares iBonds Mar 2016 Corporate ex-Financials Term ETF|P|IBCB|Y|100|N|IBCB +IBCC|iShares iBonds Mar 2018 Corporate ex-Financials Term ETF|P|IBCC|Y|100|N|IBCC +IBCD|iShares iBonds Mar 2020 Corporate ex-Financials Term ETF|P|IBCD|Y|100|N|IBCD +IBCE|iShares iBonds Mar Bond Corporate ex-Financials Term ETF|P|IBCE|Y|100|N|IBCE +IBDA|iShares iBonds Mar 2016 Corporate ETF|P|IBDA|Y|100|N|IBDA +IBDB|iShares iBonds Mar 2018 Corporate ETF|P|IBDB|Y|100|N|IBDB +IBDC|iShares iBonds Mar 2020 Corporate Term ETF|P|IBDC|Y|100|N|IBDC +IBDD|iShares iBonds Mar 2023 Corporate Term ETF|P|IBDD|Y|100|N|IBDD +IBDF|iShares iBonds Dec 2016 Corporate ETF|P|IBDF|Y|100|N|IBDF +IBDH|iShares iBonds Dec 2018 Corporate Term ETF|P|IBDH|Y|100|N|IBDH +IBDL|iShares iBonds Dec 2020 Corporate ETF|P|IBDL|Y|100|N|IBDL +IBIO|iBio, Inc. Common Stock|A|IBIO|N|100|N|IBIO +IBLN|Direxion iBillionaire Index ETF|P|IBLN|Y|100|N|IBLN +IBM|International Business Machines Corporation Common Stock|N|IBM|N|100|N|IBM +IBMD|iShares iBonds Sep 2015 AMT-Free Muni Bond ETF|P|IBMD|Y|100|N|IBMD +IBME|iShares iBonds Sep 2016 AMT-Free Muni Bond ETF|P|IBME|Y|100|N|IBME +IBMF|iShares iBonds Sep 2017 AMT-Free Muni Bond ETF|P|IBMF|Y|100|N|IBMF +IBMG|iShares iBonds Sep 2018 AMT-Free Bond Term|P|IBMG|Y|100|N|IBMG +IBMH|iShares iBonds Sep 2019 AMT-Free Muni Bond ETF|P|IBMH|Y|100|N|IBMH +IBMI|iShares iBonds Sep 2020 AMT-Free Muni Bond ETF|P|IBMI|Y|100|N|IBMI +IBN|ICICI Bank Limited Common Stock|N|IBN|N|100|N|IBN +IBND|SPDR Barclays International Bond ETF|P|IBND|Y|100|N|IBND +IBO|IBO (Listing Market - NYSE Amex Network B F) Common Stock|A|IBO|N|100|Y|IBO +IBP|Installed Building Products, Inc. Common Stock|N|IBP|N|100|N|IBP +ICA|Empresas Ica Soc Contrladora Common Stock|N|ICA|N|100|N|ICA +ICB|MS Income Securities, Inc. Common Stock|N|ICB|N|100|N|ICB +ICD|Independence Contract Drilling, Inc. Common Stock|N|ICD|N|100|N|ICD +ICE|Intercontinental Exchange Inc. Common Stock|N|ICE|N|100|N|ICE +ICF|iShares Cohen & Steers REIT ETF|P|ICF|Y|100|N|ICF +ICI|iPath iPath Optimized Currency Carry ETN|P|ICI|N|100|N|ICI +ICL|Israel Chemicals Limited Ordinary Shares|N|ICL|N|100|N|ICL +ICN|WisdomTree Indian Rupee Strategy Fund|P|ICN|Y|100|N|ICN +ICOL|iShares MSCI Colombia Capped|P|ICOL|Y|100|N|ICOL +ICSH|iShares Liquidity Income ETF|Z|ICSH|Y|100|N|ICSH +IDA|IDACORP, Inc. Common Stock|N|IDA|N|100|N|IDA +IDE|Voya Infrastructure, Industrials and Materials Fund Common Shares of Beneficial Interest|N|IDE|N|100|N|IDE +IDG|ING GROEP N V PREF CTF 7.3750% Perp Hybrid Cap Secs (Netherlands)|N|IDG|N|100|N|IDG +IDHB|PowerShares S&P International Developed High Beta Portfolio Exchange Traded Fund|P|IDHB|Y|100|N|IDHB +IDHQ|PowerShares S&P International Developed High Quality Portfolio (S&P International Developed High Quality Ranking Index--index symbol SPIDHQR)|P|IDHQ|Y|100|N|IDHQ +IDI|Tiger Media, Inc.|A|IDI|N|100|N|IDI +IDLV|PowerShares S&P International Developed Low Volatility Portfolio|P|IDLV|Y|100|N|IDLV +IDN|Intellicheck Mobilisa, Inc. Common Stock|A|IDN|N|100|N|IDN +IDOG|ALPS International Sector Dividend Dogs ETF|P|IDOG|Y|100|N|IDOG +IDT|IDT Corporation Class B Common Stock|N|IDT|N|100|N|IDT +IDU|iShares U.S. Utilities ETF|P|IDU|Y|100|N|IDU +IDV|iShares International Select Dividend ETF|P|IDV|Y|100|N|IDV +IDX|Market Vectors Indonesia Index ETF|P|IDX|Y|100|N|IDX +IDXJ|Market Vectors Indonesia Small Cap ETF|P|IDXJ|Y|100|N|IDXJ +IEC|IEC Electronics Corp. Common Stock|A|IEC|N|100|N|IEC +IEF|iShares 7-10 Year Treasury Bond ETF|P|IEF|Y|100|N|IEF +IEFA|iShares Core MSCI EAFE ETF|P|IEFA|Y|100|N|IEFA +IEH|Integrys Energy Group 6.00% Junior Subordinated Notes Due 2073|N|IEH|N|100|N|IEH +IEI|iShares 3-7 Year Treasury Bond ETF|P|IEI|Y|100|N|IEI +IEIL|iShares Enhanced International Large-Cap ETF|P|IEIL|Y|100|N|IEIL +IEIS|iShares Enhanced International Small-Cap ETF|P|IEIS|Y|100|N|IEIS +IELG|iShares Enhanced U.S. Large-Cap|P|IELG|Y|100|N|IELG +IEMG|iShares Core MSCI Emerging Markets ETF|P|IEMG|Y|100|N|IEMG +IEO|iShares U.S. Oil & Gas Exploration & Production ETF|P|IEO|Y|100|N|IEO +IESM|iShares Enhanced U.S. Small-Cap|P|IESM|Y|100|N|IESM +IEUR|iShares Core MSCI Europe ETF|P|IEUR|Y|100|N|IEUR +IEV|iShares Europe ETF|P|IEV|Y|100|N|IEV +IEX|IDEX Corporation Common Stock|N|IEX|N|100|N|IEX +IEZ|iShares U.S. Oil Equipment & Services ETF|P|IEZ|Y|100|N|IEZ +IF|Aberdeen Indonesia Fund, Inc. (Common Stock|A|IF|N|100|N|IF +IFF|Internationa Flavors & Fragrances, Inc. Common Stock|N|IFF|N|100|N|IFF +IFMI|Institutional Financial Markets, Inc.|A|IFMI|N|100|N|IFMI +IFN|India Fund, Inc. (The) Common Stock|N|IFN|N|100|N|IFN +IFT|Imperial Holdings, Inc. Common Stock|N|IFT|N|100|N|IFT +IG|IGI, Laboratories Inc. Common Stock|A|IG|N|100|N|IG +IGA|Voya Global Advantage and Premium Opportunity Fund Common Shares of Beneficial Interest|N|IGA|N|100|N|IGA +IGC|India Globalization Capital Inc. Common Stock|A|IGC|N|100|N|IGC +IGC.W|India Globalization Capital Inc. Warrants|A|IGC/WS|N|100|N|IGC+ +IGD|Voya Global Equity Dividend and Premium Opportunity Fund|N|IGD|N|100|N|IGD +IGE|iShares North American Natural Resources ETF|P|IGE|Y|100|N|IGE +IGF|iShares Global Infrastructure ETF|P|IGF|Y|100|N|IGF +IGHG|ProShares Investment Grade-Interest Rate Hedged|Z|IGHG|Y|100|N|IGHG +IGI|Western Asset Investment Grade Defined Opportunity Trust Inc. Common Stock|N|IGI|N|100|N|IGI +IGM|iShares North American Tech ETF|P|IGM|Y|100|N|IGM +IGN|iShares North American Tech-Multimedia Networking ETF|P|IGN|Y|100|N|IGN +IGR|CBRE Clarion Global Real Estate Income Fund Common Stock|N|IGR|N|100|N|IGR +IGS|ProShares Short Investment Grade Corporate|P|IGS|Y|100|N|IGS +IGT|International Game Technology Common Stock|N|IGT|N|100|N|IGT +IGU|ProShares Ultra Investment Grade Corporate ETF|P|IGU|Y|100|N|IGU +IGV|iShares North American Tech-Software ETF|P|IGV|Y|100|N|IGV +IGZ|IGZ (Listing Market NYSE Arca Network B F) Common Stock|P|IGZ|N|100|Y|IGZ +IHC|Independence Holding Company Common Stock|N|IHC|N|100|N|IHC +IHD|Voya Emerging Markets High Income Dividend Equity Fund Common Shares|N|IHD|N|100|N|IHD +IHDG|WisdomTree International Hedged Dividend Growth Fund|P|IHDG|Y|100|N|IHDG +IHE|iShares U.S. Pharmaceutical ETF|P|IHE|Y|100|N|IHE +IHF|iShares U.S. Health Care Providers ETF|P|IHF|Y|100|N|IHF +IHG|Intercontinental Hotels Group American Depositary Shares (Each representing one Ordinary Share)|N|IHG|N|100|N|IHG +IHI|iShares U.S. Medical Devices ETF|P|IHI|Y|100|N|IHI +IHS|IHS Inc. IHS Inc. Class A Common Stock|N|IHS|N|100|N|IHS +IHT|InnSuites Hospitality Trust Shares of Beneficial Interest|A|IHT|N|100|N|IHT +IHY|Market Vectors International High Yield Bond|P|IHY|Y|100|N|IHY +IID|Voya International High Dividend Equity Income Fund Common Shares of Beneficial Interest|N|IID|N|100|N|IID +IIF|Morgan Stanley India Investment Fund, Inc. Common Stock|N|IIF|N|100|N|IIF +IIM|Invesco Value Municipal Income Trust Common Stock|N|IIM|N|100|N|IIM +IJH|iShares Core S&P Mid-Cap ETF|P|IJH|Y|100|N|IJH +IJJ|iShares S&P Mid-Cap 400 Value ETF|P|IJJ|Y|100|N|IJJ +IJK|iShares S&P Mid-Cap 400 Growth ETF|P|IJK|Y|100|N|IJK +IJNK|SPDR Barclays International High Yield Bond ETF|P|IJNK|Y|100|N|IJNK +IJR|iShares Core S&P Small-Cap ETF|P|IJR|Y|100|N|IJR +IJS|iShares S&P SmallCap 600 Value ETF|P|IJS|Y|100|N|IJS +IJT|iShares S&P SmallCap 600 Growth ETF|P|IJT|Y|100|N|IJT +IL|IntraLinks Holdings, Inc. Common Stock $0.001 par value|N|IL|N|100|N|IL +ILB|PIMCO Global Advantage Inflation Linked Bond Active Exchange-Traded Fund|P|ILB|Y|100|N|ILB +ILF|iShares Latin America 40 ETF|P|ILF|Y|100|N|ILF +ILTB|iShares Core Long-Term USD Bond ETF|P|ILTB|Y|100|N|ILTB +IM|Ingram Micro Inc. Common Stock|N|IM|N|100|N|IM +IMAX|Imax Corporation Common Stock|N|IMAX|N|100|N|IMAX +IMH|Impac Mortgage Holdings, Inc. Common Stock New|A|IMH|N|100|N|IMH +IMLP|iPath S&P MLP ETN|P|IMLP|N|100|N|IMLP +IMN|Imation Corporation Common Stock|N|IMN|N|100|N|IMN +IMO|Imperial Oil Limited Common Stock|A|IMO|N|100|N|IMO +IMPR|Imprivata, Inc. Common Stock|N|IMPR|N|100|N|IMPR +IMPV|Imperva, Inc. Common Stock|N|IMPV|N|100|N|IMPV +IMS|IMS Health Holdings, Inc. Common Stock|N|IMS|N|100|N|IMS +IMTM|iShares MSCI International Momentum Factor ETF|P|IMTM|Y|100|N|IMTM +IMUC|ImmunoCellular Therapeutics, Ltd. Common Stock|A|IMUC|N|100|N|IMUC +INB|Cohen & Steers Global Income Builder, Inc. Common Shares of Beneficial Interest|N|INB|N|100|N|INB +INCO|EG Shares India Consumer ETF|P|INCO|Y|100|N|INCO +IND|ING Group, N.V. Perpetual Debt Securities|N|IND|N|100|N|IND +INDA|Ishares MSCI India ETF|Z|INDA|Y|100|N|INDA +INDL|Direxion Daily India Bull 3x Shares|P|INDL|Y|100|N|INDL +INF|Brookfield Global Listed Infrastructure Income Fund Closed End Fund|N|INF|N|100|N|INF +INFL|PowerShares DB US Inflation ETN|P|INFL|N|100|N|INFL +INFU|InfuSystems Holdings, Inc. Common Stock|A|INFU|N|100|N|INFU +INFY|Infosys Limited American Depositary Shares|N|INFY|N|100|N|INFY +ING|ING Group, N.V. Common Stock|N|ING|N|100|N|ING +INGR|Ingredion Incorporated Common Stock|N|INGR|N|100|N|INGR +INKM|SPDR SSgA Income Allocation ETF|P|INKM|Y|100|N|INKM +INN|Summit Hotel Properties, Inc. Common Stock|N|INN|N|100|N|INN +INN$A|Summit Hotel Properties, Inc. 9.25% Series A Cumulative Redeemable Preferred Stock|N|INNpA|N|100|N|INN-A +INN$B|Summit Hotel Properties, Inc. Pfd Ser B|N|INNpB|N|100|N|INN-B +INN$C|Summit Hotel Properties, Inc. 7.125% Series C Cumulative Redeemable Preferred Stock|N|INNpC|N|100|N|INN-C +INP|Barclays Bank Plc iPath ETNs linked to the MSCI India Total Return Index|P|INP|N|100|N|INP +INR|Market Vectors Indian Rupee/USD ETN|P|INR|N|100|N|INR +INS|Intelligent Systems Corporation Common Stock|A|INS|N|100|N|INS +INT|World Fuel Services Corporation Common Stock|N|INT|N|100|N|INT +INTT|inTest Corporation Common Stock|A|INTT|N|100|N|INTT +INUV|Inuvo, Inc New|A|INUV|N|100|N|INUV +INVN|InvenSense, Inc. Common Stock|N|INVN|N|100|N|INVN +INXN|InterXion Holding N.V. Ordinary Shares (0.01 nominal value)|N|INXN|N|100|N|INXN +INXX|EGShares India Infrastructure ETF|P|INXX|Y|100|N|INXX +INY|SPDR Nuveen Barclays New York Municipal Bond ETF|P|INY|Y|100|N|INY +INZ|Ing Groep NV Perpetual Debt Securities|N|INZ|N|100|N|INZ +IO|Ion Geophysical Corporation Common Stock|N|IO|N|100|N|IO +IOC|InterOil Corporation|N|IOC|N|100|N|IOC +IOIL|IQ Global Oil Small Cap ETF|P|IOIL|Y|100|N|IOIL +IOO|iShares Global 100 ETF|P|IOO|Y|100|N|IOO +IOT|Income Opportunity Realty Investors, Inc. Common Stock|A|IOT|N|100|N|IOT +IP|International Paper Company Common Stock|N|IP|N|100|N|IP +IPAC|iShares Core MSCI Pacific ETF|P|IPAC|Y|100|N|IPAC +IPB|Merrill Lynch & Co., Inc. 6.0518% Index Plus Trust Certificates Series 2003-1|A|IPB|N|100|N|IPB +IPD|SPDR S&P International Consumer Discretionary Sector ETF|P|IPD|Y|100|N|IPD +IPE|SPDR Barclays TIPS ETF|P|IPE|Y|100|N|IPE +IPF|SPDR S&P International Financial Sector ETF|P|IPF|Y|100|N|IPF +IPFF|iShares International Preferred Stock ETF|P|IPFF|Y|100|N|IPFF +IPG|Interpublic Group of Companies, Inc. (The) Common Stock|N|IPG|N|100|N|IPG +IPHI|Inphi Corporation Common Stock $0.001 par value|N|IPHI|N|100|N|IPHI +IPI|Intrepid Potash, Inc Common Stock|N|IPI|N|100|N|IPI +IPK|SPDR S&P International Technology Sector ETF|P|IPK|Y|100|N|IPK +IPL$D|Interstate Power & Light Company Perp Prd Ser D|N|IPLpD|N|100|N|IPL-D +IPN|SPDR S&P International Industrial Sector ETF|P|IPN|Y|100|N|IPN +IPO|Renaissance IPO ETF|P|IPO|Y|100|N|IPO +IPOS|Renaissance Capital Greenwich Fund|P|IPOS|Y|100|N|IPOS +IPS|SPDR S&P International Consumer Staples Sector ETF|P|IPS|Y|100|N|IPS +IPU|SPDR S&P International Utilities Sector ETF|P|IPU|Y|100|N|IPU +IPW|SPDR S&P International Energy Sector ETF|P|IPW|Y|100|N|IPW +IQDE|FlexShares International Quality Dividend Defensive Index Fund|P|IQDE|Y|100|N|IQDE +IQDF|FlexShares International Quality Dividend Index Fund|P|IQDF|Y|100|N|IQDF +IQDY|FlexShares International Quality Dividend Dynamic Index Fund|P|IQDY|Y|100|N|IQDY +IQI|Invesco Quality Municipal Income Trust Common Stock|N|IQI|N|100|N|IQI +IQLT|iShares MSCI International Developed Quality Factors ETF|P|IQLT|Y|100|N|IQLT +IR|Ingersoll-Rand plc (Ireland)|N|IR|N|100|N|IR +IRC|Inland Real Estate Corporation Common Stock|N|IRC|N|100|N|IRC +IRC$A|Inland Real Estate Corporation 8.125% Series A Cumulative Redeemable Preferred Stock, $0.01 par value|N|IRCpA|N|100|N|IRC-A +IRC$B|Inland Real Estate Corporation Redeemable Preferred Series B|N|IRCpB|N|100|N|IRC-B +IRE|Governor and Company of the Bank of Ireland (The) Common Stock|N|IRE|N|100|N|IRE +IRET|Investors Real Estate Trust Shares of Beneficial Interest|N|IRET|N|100|N|IRET +IRET$|Investors Real Estate Trust Series A Cumulative Redeemable Preferred Shares of Beneficial Interest|N|IRETp|N|100|N|IRET- +IRET$B|Investors Real Estate Trust 7.95% Series B Cumulative Redeemable Preferred Shares|N|IRETpB|N|100|N|IRET-B +IRL|New Ireland Fund, Inc (The) Common Stock|N|IRL|N|100|N|IRL +IRM|Iron Mountain Incorporated (Delaware)Common Stock REIT|N|IRM|N|100|N|IRM +IRR|Voya Natural Resources Equity Income Fund Common Shares of Beneficial Interest|N|IRR|N|100|N|IRR +IRS|IRSA Inversiones Y Representaciones S.A. Common Stock|N|IRS|N|100|N|IRS +IRT|Independence Realty Trust, Inc. Common Stock|A|IRT|N|100|N|IRT +IRV|SPDR S&P International Materials Sector ETF|P|IRV|Y|100|N|IRV +IRY|SPDR S&P International Health Care Sector ETF|P|IRY|Y|100|N|IRY +ISD|Prudential Short Duration High Yield Fund, Inc. Common Stock|N|ISD|N|100|N|ISD +ISDR|Issuer Direct Corporation Common Stock|A|ISDR|N|100|N|ISDR +ISF|ING Group, N.V. Perp Hybrid Cap Secs (Netherlands)|N|ISF|N|100|N|ISF +ISG|ING Group, N.V. Perpetual Dent Secs 6.125%|N|ISG|N|100|N|ISG +ISH|International Shipholding Corporation Common Stock|N|ISH|N|100|N|ISH +ISH$A|International Shipholding Corporation Cumulative Redeemable Perpetual Preferred Series A|N|ISHpA|N|100|N|ISH-A +ISH$B|International Shipholding Corporation PERP PFD SER B|N|ISHpB|N|100|N|ISH-B +ISL|Aberdeen Israel Fund, Inc. (The) Common Stock|A|ISL|N|100|N|ISL +ISP|ING Groep NV 6.20% Perpetual Debt Securities (Netherlands)|N|ISP|N|100|N|ISP +ISR|IsoRay, Inc. Common Stock|A|ISR|N|100|N|ISR +ISRA|Market Vectors Israel ETF|P|ISRA|Y|100|N|ISRA +IST|SPDR S&P International Telecommunications Sector ETF|P|IST|Y|100|N|IST +ISTB|iShares Core Short-Term USD Bond ETF|P|ISTB|Y|100|N|ISTB +IT|Gartner, Inc. Common Stock|N|IT|N|100|N|IT +ITA|iShares U.S. Aerospace & Defense ETF|P|ITA|Y|100|N|ITA +ITB|iShares U.S. Home Construction ETF|P|ITB|Y|100|N|ITB +ITC|ITC Holdings Corp. Common Stock|N|ITC|N|100|N|ITC +ITE|SPDR Barclays Intermediate Term Treasury ETF|P|ITE|Y|100|N|ITE +ITF|iShares Japn Large-Cap ETF|P|ITF|Y|100|N|ITF +ITG|Investment Technology Group, Inc. Common Stock|N|ITG|N|100|N|ITG +ITI|Iteris, Inc. Common Stock|A|ITI|N|100|N|ITI +ITIP|iShares International Inflation-Linked Bond ETF|P|ITIP|Y|100|N|ITIP +ITLT|PowerShares DB 3X Italian Treasury Bond Futures ETN|P|ITLT|N|100|N|ITLT +ITLY|PowerShares DB Italian Treasury Bond Futures ETN|P|ITLY|N|100|N|ITLY +ITM|Market Vectors Intermediate Municipal Index ETF|P|ITM|Y|100|N|ITM +ITOT|iShares Core S&P Total U.S. Stock Market ETF|P|ITOT|Y|100|N|ITOT +ITR|SPDR Barclays Intermediate Term Corporate Bond ETF (based on Barclays Capital Intermediate U.S. Corporate Index symbol LD06TRUU|P|ITR|Y|100|N|ITR +ITT|ITT Corporation Common Stock New|N|ITT|N|100|N|ITT +ITUB|Itau Unibanco Banco Holding SA American Depositary Shares (Each repstg 500 Preferred shares)|N|ITUB|N|100|N|ITUB +ITW|Illinois Tool Works Inc. Common Stock|N|ITW|N|100|N|ITW +IUSB|iShares Core Total USD Bond Market ETF|P|IUSB|Y|100|N|IUSB +IUSG|iShares Core U.S. Growth ETF|P|IUSG|Y|100|N|IUSG +IUSV|iShares Core U.S. Vaue ETF|P|IUSV|Y|100|N|IUSV +IVAL|ValueShares International Quantitative Value ETF|Z|IVAL|Y|100|N|IVAL +IVC|Invacare Corporation Common Stock|N|IVC|N|100|N|IVC +IVE|iShares S&P 500 Value ETF|P|IVE|Y|100|N|IVE +IVH|Ivy High Income Opportunities Fund Common Shares of Beneficial Interest|N|IVH|N|100|N|IVH +IVOG|Vanguard S&P Mid-Cap 400 Growth ETF|P|IVOG|Y|100|N|IVOG +IVOO|Vanguard S&P Mid-Cap 400 ETF|P|IVOO|Y|100|N|IVOO +IVOP|iPath Inverse S&P 500 VIX Short Term Futures|P|IVOP|N|100|N|IVOP +IVOV|Vanguard S&P Mid-Cap 400 Value ETF|P|IVOV|Y|100|N|IVOV +IVR|INVESCO MORTGAGE CAPITAL INC Common Stock|N|IVR|N|100|N|IVR +IVR$A|Invesco Mortgage Capital Inc. Pfd Ser A|N|IVRpA|N|100|N|IVR-A +IVR$B|Invesco Mortgage Capital Inc. Preferred Series B Cum Fxd to Fltg|N|IVRpB|N|100|N|IVR-B +IVV|iShares Core S&P 500 ETF|P|IVV|Y|100|N|IVV +IVW|iShares S&P 500 Growth ETF|P|IVW|Y|100|N|IVW +IVZ|Invesco Plc New Common Stock|N|IVZ|N|100|N|IVZ +IWB|iShares Russell 1000 ETF|P|IWB|Y|100|N|IWB +IWC|iShares Microcap ETF|P|IWC|Y|100|N|IWC +IWD|iShares Russell 1000 Value ETF|P|IWD|Y|100|N|IWD +IWF|iShares Russell 1000 Growth ETF|P|IWF|Y|100|N|IWF +IWL|iShares Russell Top 200 ETF|P|IWL|Y|100|N|IWL +IWM|iShares Russell 2000 ETF|P|IWM|Y|100|N|IWM +IWN|iShares Russell 2000 Value ETF|P|IWN|Y|100|N|IWN +IWO|iShares Russell 2000 Growth ETF|P|IWO|Y|100|N|IWO +IWP|iShares Russell Midcap Growth ETF|P|IWP|Y|100|N|IWP +IWR|iShares Russell Mid-Cap ETF|P|IWR|Y|100|N|IWR +IWS|iShares Russell Mid-cap Value ETF|P|IWS|Y|100|N|IWS +IWV|iShares Russell 3000 ETF|P|IWV|Y|100|N|IWV +IWX|iShares Russell Top 200 Value ETF|P|IWX|Y|100|N|IWX +IWY|iShares Russell Top 200 Growth ETF|P|IWY|Y|100|N|IWY +IX|Orix Corp Ads Common Stock|N|IX|N|100|N|IX +IXC|iShares Global Energy ETF|P|IXC|Y|100|N|IXC +IXG|iShares Global Financial ETF|P|IXG|Y|100|N|IXG +IXJ|iShares Global Healthcare ETF|P|IXJ|Y|100|N|IXJ +IXN|iShares Global Tech ETF|P|IXN|Y|100|N|IXN +IXP|iShares Global Telecom ETF|P|IXP|Y|100|N|IXP +IXUS|iShares Core MSCI Total International Stock ETF|P|IXUS|Y|100|N|IXUS +IYC|iShares U.S. Consumer Services ETF|P|IYC|Y|100|N|IYC +IYE|iShares U.S. Energy ETF|P|IYE|Y|100|N|IYE +IYF|iShares U.S. Financial ETF|P|IYF|Y|100|N|IYF +IYG|iShares U.S. Financial Services ETF|P|IYG|Y|100|N|IYG +IYH|iShares U.S. Healthcare ETF|P|IYH|Y|100|N|IYH +IYJ|iShares U.S. Industrials ETF|P|IYJ|Y|100|N|IYJ +IYK|iShares U.S. Consumer Goods ETF|P|IYK|Y|100|N|IYK +IYLD|iShares Morningstar Multi-Asset Income ETF|Z|IYLD|Y|100|N|IYLD +IYM|iShares U.S. Basic Materials ETF|P|IYM|Y|100|N|IYM +IYR|iShares U.S. Real Estate ETF|P|IYR|Y|100|N|IYR +IYT|iShares Transportation AverageETF|P|IYT|Y|100|N|IYT +IYW|iShares U.S. Technology ETF|P|IYW|Y|100|N|IYW +IYY|iShares Dow Jones U.S. ETF|P|IYY|Y|100|N|IYY +IYZ|iShares U.S. Telecommunications ETF|P|IYZ|Y|100|N|IYZ +JAH|Jarden Corporation Common Stock|N|JAH|N|100|N|JAH +JBK|Lehman ABS 3.50 3.50% Adjustable Corp Backed Tr Certs GS Cap I|N|JBK|N|100|N|JBK +JBL|Jabil Circuit, Inc. Common Stock|N|JBL|N|100|N|JBL +JBN|Select Asset Inc. Select Asset Inc. on behalf of Corporate Backed Callable Trust Certificates, J.C. Penney Debenture Backed Series 2007-1 Trust|N|JBN|N|100|N|JBN +JBR|Select Asset Inc. Corporate Backed Callable Trust Certificates, J.C. Penney Debenture-Backed Series 2006-1, Class A-1|N|JBR|N|100|N|JBR +JBT|John Bean Technologies Corporation Common Stock|N|JBT|N|100|N|JBT +JCE|Nuveen Core Equity Alpha Fund Nuveen Core Equity Alpha Fund Common Shares of Beneficial Interest|N|JCE|N|100|N|JCE +JCI|Johnson Controls, Inc. Common Stock|N|JCI|N|100|N|JCI +JCP|J.C. Penney Company, Inc. Holding Company Common Stock|N|JCP|N|100|N|JCP +JDD|Nuveen Diversified Dividend and Income Fund Shares of Beneficial Interest|N|JDD|N|100|N|JDD +JDST|Direxion Daily Junior Gold Miners Index Bear 3X Shares|P|JDST|Y|100|N|JDST +JE|Just Energy Group, Inc. Ordinary Shares (Canada)|N|JE|N|100|N|JE +JEC|Jacobs Engineering Group Inc. Common Stock|N|JEC|N|100|N|JEC +JEM|iPath GEMS Index ETN|P|JEM|N|100|N|JEM +JEQ|Aberdeen Japan Equity Fund, Inc. Common Stock|N|JEQ|N|100|N|JEQ +JFC|JPMorgan China Region Fund, Inc. Common Stock|N|JFC|N|100|N|JFC +JFR|Nuveen Floating Rate Income Fund Common Stock|N|JFR|N|100|N|JFR +JGBD|PowerShares DB 3X Inverse Govt Bond Futures ETN|P|JGBD|N|100|N|JGBD +JGBL|PowerShares DB Japanese Govt Bond Futures ETN|P|JGBL|N|100|N|JGBL +JGBS|PowerShares DB Inverse Japanese Govt Bond Futures ETN|P|JGBS|N|100|N|JGBS +JGBT|PowerShares DB 3X Japanese Govt Bond Futures ETN|P|JGBT|N|100|N|JGBT +JGH|Nuveen Global High Income Fund Common Shares of Beneficial Interest|N|JGH|N|100|N|JGH +JGV|Nuveen Global Equity Income Fund|N|JGV|N|100|N|JGV +JGW|J.G. Wentworth Company (The) Class A Common Stock|N|JGW|N|100|N|JGW +JHI|John Hancock Investors Trust Common Stock|N|JHI|N|100|N|JHI +JHP|Nuveen Quality Preferred Income Fund 3 Preferred Income 3|N|JHP|N|100|N|JHP +JHS|John Hancock Income Securities Trust Common Stock|N|JHS|N|100|N|JHS +JHX|James Hardie Industries plc American Depositary Shares (Ireland)|N|JHX|N|100|N|JHX +JJA|iPath Bloomberg Agriculture Total Return Sub-Index ETN|P|JJA|N|100|N|JJA +JJC|iPath Bloomberg Copper Subindex Total Return Sub-Index ETN|P|JJC|N|100|N|JJC +JJE|iPath Bloomberg Energy Total Return Sub-Index ETN|P|JJE|N|100|N|JJE +JJG|iPath Bloomberg Grains Total Return Sub-Index ETN|P|JJG|N|100|N|JJG +JJM|iPath Bloomberg Industrial Metals Total Return Sub-Index ETN|P|JJM|N|100|N|JJM +JJN|iPath Bloomberg Nickel Subindex Total Return ETN|P|JJN|N|100|N|JJN +JJP|iPath Bloomberg Precious Metals Subindex Total Return SM Index ETN|P|JJP|N|100|N|JJP +JJS|iPath Bloomberg Softs Subindex Total Return SM Index ETN|P|JJS|N|100|N|JJS +JJT|iPath Bloomberg Tin Subindex Total Return SM ETN|P|JJT|N|100|N|JJT +JJU|iPath Bloomberg Aluminum Subindex Total Return SM IndexETN|P|JJU|N|100|N|JJU +JKD|iShares Morningstar Large-Cap ETF|P|JKD|Y|100|N|JKD +JKE|iShares Morningstar Large-Cap Growth ETF|P|JKE|Y|100|N|JKE +JKF|iShares Morningstar Large-Cap Value ETF|P|JKF|Y|100|N|JKF +JKG|iShares Morningstar Mid-Cap ETF|P|JKG|Y|100|N|JKG +JKH|iShares Morningstar Mid-Cap Growth ETF|P|JKH|Y|100|N|JKH +JKI|iShares Morningstar Mid-Cap Value ETF|P|JKI|Y|100|N|JKI +JKJ|iShares Morningstar Small-Cap ETF|P|JKJ|Y|100|N|JKJ +JKK|iShares Morningstar Small-Cap Growth ETF|P|JKK|Y|100|N|JKK +JKL|iShares Morningstar Small-Cap Value ETFnd|P|JKL|Y|100|N|JKL +JKS|JinkoSolar Holding Company Limited American Depositary Shares (each representing 4 Common Shares)|N|JKS|N|100|N|JKS +JLL|Jones Lang LaSalle Incorporated Common Stock|N|JLL|N|100|N|JLL +JLS|Nuveen Mortgage Opportunity Term Fund Nuveen Mortgage Opportunity Term Fund|N|JLS|N|100|N|JLS +JMEI|Jumei International Holding Limited American Depositary Shares, each representing one Class A ordinary share|N|JMEI|N|100|N|JMEI +JMF|Nuveen Energy MLP Total Return Fund Common Shares of Beneficial Interest|N|JMF|N|100|N|JMF +JMI|Javelin Mortgage Investment Corp. Common Stock|N|JMI|N|100|N|JMI +JMLP|Nuveen All Cap Energy MLP Opportunities Fund Common Shares of Beneficial Interest|N|JMLP|N|100|N|JMLP +JMM|Nuveen Multi-Market Income Fund (MA)|N|JMM|N|100|N|JMM +JMP|JMP Group LLC Common Shares|N|JMP|N|100|N|JMP +JMPB|JMP Group Inc 8.00% Senior Notes due 2023|N|JMPB|N|100|N|JMPB +JMPC|JMP Group Inc 7.25% Senior Notes due 2021|N|JMPC|N|100|N|JMPC +JMT|Nuveen Mortgage Opportunity Term Fund 2 Common Shares of Beneficial Interest|N|JMT|N|100|N|JMT +JNJ|Johnson & Johnson Common Stock|N|JNJ|N|100|N|JNJ +JNK|SPDR Barclays High Yield Bond ETF|P|JNK|Y|100|N|JNK +JNPR|Juniper Networks, Inc. Common Stock|N|JNPR|N|100|N|JNPR +JNS|Janus Capital Group, Inc. Cmn Stk|N|JNS|N|100|N|JNS +JNUG|Direxion Daily Junior Gold Miners Index Bull 3X Shares|P|JNUG|Y|100|N|JNUG +JO|iPath Bloomberg Coffee Subindex Total Return SM Index ETN|P|JO|N|100|N|JO +JOB|General Employment Enterprises, Inc. Common Stock|A|JOB|N|100|N|JOB +JOE|St. Joe Company (The) Common Stock|N|JOE|N|100|N|JOE +JOF|Japan Smaller Capitalization Fund Inc Common Stock|N|JOF|N|100|N|JOF +JONE|Jones Energy, Inc. Class A Common Stock|N|JONE|N|100|N|JONE +JOY|Joy Global Inc. Common Stock|N|JOY|N|100|N|JOY +JPC|Nuveen Preferred Income Opportunities Fund|N|JPC|N|100|N|JPC +JPEM|JPMorgan Diversified Return Emerging Markets Equity ETF|P|JPEM|Y|100|N|JPEM +JPEP|JP Energy Partners LP Common units representing limited partner interests|N|JPEP|N|100|N|JPEP +JPGE|JPMorgan Diversified Return Global Equity ETF|P|JPGE|Y|100|N|JPGE +JPI|Nuveen Preferred and Income Term Fund Common Shares of Beneficial Interest|N|JPI|N|100|N|JPI +JPIN|JPMorgan Diversified Return International Equity ETF|P|JPIN|Y|100|N|JPIN +JPM|JP Morgan Chase & Co. Common Stock|N|JPM|N|100|N|JPM +JPM$A|J P Morgan Chase & Co Depositary Shs Repstg 1/400 Pfd Ser P|N|JPMpA|N|100|N|JPM-A +JPM$B|JP Morgan Chase & Co Depositary Shares Representing 1/400th Preferred Series T|N|JPMpB|N|100|N|JPM-B +JPM$C|JPMorgan Chase Capital XXIX 6.70% Capital Securities, Series CC|N|JPMpC|N|100|N|JPM-C +JPM$D|JPMorgan Chase Bank N A London Branch Depositary Shs Repstg 1/400th Pfd Ser O|N|JPMpD|N|100|N|JPM-D +JPM$E|J P Morgan Chase & Co Depository Shares Representing 1/400th Int Perp Pfd Ser W|N|JPMpE|N|100|N|JPM-E +JPM.W|J P Morgan Chase & Co Warrant expiring October 28, 2018|N|JPM/WS|N|100|N|JPM+ +JPMV|iShares MSCI Japan Minimum Volatility ETF|P|JPMV|Y|100|N|JPMV +JPNL|Direxion Daily Japan Bull 3X ETF|P|JPNL|Y|100|N|JPNL +JPP|SPDR Russell/Nomura PRIME Japan ETF|P|JPP|Y|100|N|JPP +JPS|Nuveen Quality Preferred Income Fund 2 Shares of Beneficial Interest|N|JPS|N|100|N|JPS +JPW|Nuveen Flexible Investment Income Fund Common Shares of Beneficial Interest|N|JPW|N|100|N|JPW +JPX|ProShares UltraShort MSCI Pacific ex-Japan|P|JPX|Y|100|N|JPX +JQC|Nuveen Credit Strategies Income Fund Shares of Beneficial Interest|N|JQC|N|100|N|JQC +JRI|Nuveen Real Asset Income and Growth Fund Common Shares of Beneficial Interest|N|JRI|N|100|N|JRI +JRN|Journal Communications, Inc. Class A Common Stock|N|JRN|N|100|N|JRN +JRO|Nuveen Floating Rate Income Opportuntiy Fund Shares of Beneficial Interest|N|JRO|N|100|N|JRO +JRS|Nuveen Real Estate Income Fund Common Shares of Beneficial Interest|A|JRS|N|100|N|JRS +JSC|SPDR Russell/Nomura Small Cap Japan|P|JSC|Y|100|N|JSC +JSD|Nuveen Short Duration Credit Opportunities Fund Common Shares of Beneficial Interest|N|JSD|N|100|N|JSD +JTA|Nuveen Tax-Advantaged Total Return Strategy Fund Common Share of Beneficial Interest|N|JTA|N|100|N|JTA +JTD|Nuveen Tax-Advantaged Dividend Growth Fund Common Shares of Beneficial Interest|N|JTD|N|100|N|JTD +JTP|Nuveen Quality Preferred Income Fund Shares of Beneficial Interest|N|JTP|N|100|N|JTP +JUNR|Global X Junior Miners ETF|P|JUNR|Y|100|N|JUNR +JW.A|John Wiley & Sons, Inc. Common Stock|N|JW/A|N|100|N|JW.A +JW.B|John Wiley & Sons, Inc. Common Stock|N|JW/B|N|100|N|JW.B +JWN|Nordstrom, Inc. Common Stock|N|JWN|N|100|N|JWN +JXI|iShares Global Utilities ETF|P|JXI|Y|100|N|JXI +JYN|BARCLAYS BANK PLC iPath JPY/USD Exchange Rate ETN|P|JYN|N|100|N|JYN +K|Kellogg Company Common Stock|N|K|N|100|N|K +KAI|Kadant Inc Common Stock|N|KAI|N|100|N|KAI +KAMN|Kaman Corporation Common Stock|N|KAMN|N|100|N|KAMN +KAP|KCAP Financial, Inc. 7.375% Senior Notes due 2019|N|KAP|N|100|N|KAP +KAR|KAR Auction Services, Inc Common Stock|N|KAR|N|100|N|KAR +KATE|Kate Spade & Company Common Stock|N|KATE|N|100|N|KATE +KB|KB Financial Group Inc|N|KB|N|100|N|KB +KBA|KraneShares Bosera MSCI China A ETF|P|KBA|Y|100|N|KBA +KBE|SPDR S&P Bank ETF|P|KBE|Y|100|N|KBE +KBH|KB Home Common Stock|N|KBH|N|100|N|KBH +KBR|KBR, Inc. Common Stock|N|KBR|N|100|N|KBR +KBWB|PowerShares KBW Bank Portfolio ETF|P|KBWB|Y|100|N|KBWB +KBWC|PowerShares KBW Capital Markets Portfolio|P|KBWC|Y|100|N|KBWC +KBWD|PowerShares KBW High Dividend Yield Financial Portfolio ETF|P|KBWD|Y|100|N|KBWD +KBWI|PowerShares KBW Insurance Portfoliio ETF|P|KBWI|Y|100|N|KBWI +KBWP|PowerShares KBW Property & Casualty Insurance Portfolio ETF|P|KBWP|Y|100|N|KBWP +KBWR|PowerShares KBW Regional Banking Portfolio ETF|P|KBWR|Y|100|N|KBWR +KBWY|PowerShares KBW Premium Yield Equity REIT Portfolio ETF|P|KBWY|Y|100|N|KBWY +KCC|Structured Products Corp. 8.20% Corporate Backed Trust Securities (CorTS)Issued by Provident Financial Trust I|N|KCC|N|100|N|KCC +KCE|SPDR S&P Capital Markets ETF|P|KCE|Y|100|N|KCE +KCG|KCG Holdings, Inc. Class A Common Stock|N|KCG|N|100|N|KCG +KCNY|KraneShares E Fund China Commercial Paper ETF|P|KCNY|Y|100|N|KCNY +KED|Kayne Anderson Energy Development Company Common Stock|N|KED|N|100|N|KED +KEF|Korea Equity Fund, Inc. Common Stock|N|KEF|N|100|N|KEF +KEG|Key Energy Services, Inc. Common Stock|N|KEG|N|100|N|KEG +KEM|Kemet Corporation New Common Stock|N|KEM|N|100|N|KEM +KEN|Kenon Holdings Ltd. Ordinary Shares|N|KEN|N|100|N|KEN +KEP|Korea Electric Power Corporation Common Stock|N|KEP|N|100|N|KEP +KEX|Kirby Corporation Common Stock|N|KEX|N|100|N|KEX +KEY|KeyCorp Common Stock|N|KEY|N|100|N|KEY +KEY$G|KeyCorp Non Cumulative Perp Conv Pfd Ser A|N|KEYpG|N|100|N|KEY-G +KEYS|Keysight Technologies Inc. Common Stock|N|KEYS|N|100|N|KEYS +KF|Korea Fund, Inc. (The) New Common Stock|N|KF|N|100|N|KF +KFH|KKR Financial Holdings LLC 8.375% Senior Notes due 2041|N|KFH|N|100|N|KFH +KFI|KKR Financial Holdings LLC 7.50% Senior Notes due 2042|N|KFI|N|100|N|KFI +KFN$|KKR Financial Holdings LLC Pfd Ser A Llc|N|KFNp|N|100|N|KFN- +KFS|Kingsway Financial Services, Inc. Ordinary Shares|N|KFS|N|100|N|KFS +KFY|Korn/Ferry International Common Stock|N|KFY|N|100|N|KFY +KFYP|KraneShares CSI New China ETF|P|KFYP|Y|100|N|KFYP +KGC|Kinross Gold Corporation Common Stock|N|KGC|N|100|N|KGC +KHI|Deutsche High Income Trust Shares of Beneficial Interest|N|KHI|N|100|N|KHI +KIE|SPDR S&P Insurance ETF|P|KIE|Y|100|N|KIE +KIM|Kimco Realty Corporation Common Stock|N|KIM|N|100|N|KIM +KIM$H|Kimco Realty Corporation Depositary Shares Representing 1/100 Shares of Redeemable Preferred Class H|N|KIMpH|N|100|N|KIM-H +KIM$I|Kimco Realty Corporation DEPOSITARY SH REPSTG 1/1000TH PFD SER I|N|KIMpI|N|100|N|KIM-I +KIM$J|Kimco Realty Corporation Depositary Sh Repstg 1/1000th Pfd CL J %|N|KIMpJ|N|100|N|KIM-J +KIM$K|Kimco Realty Corporation Depositary Shares Representing 1/1000th Preferred Series K|N|KIMpK|N|100|N|KIM-K +KING|King Digital Entertainment plc Ordinary Share|N|KING|N|100|N|KING +KIO|KKR Income Opportunities Fund Common Shares|N|KIO|N|100|N|KIO +KIQ|Kelso Technologies Inc Ordinary Shares|A|KIQ|N|100|N|KIQ +KKD|Krispy Kreme Doughnuts, Inc. Common Stock|N|KKD|N|100|N|KKD +KKR|KKR & Co. L.P. Common Units Representing Limited Partnership Interest|N|KKR|N|100|N|KKR +KLD|iShares MSCI USA ESG Select ETF|P|KLD|Y|100|N|KLD +KMB|Kimberly-Clark Corporation Common Stock|N|KMB|N|100|N|KMB +KME|SPDR S&P Mortgage Finance ETF|P|KME|Y|100|N|KME +KMF|Kayne Anderson Midstream Energy Fund, Inc Common Stock|N|KMF|N|100|N|KMF +KMG|KMG Chemicals, Inc. Common Stock|N|KMG|N|100|N|KMG +KMI|Kinder Morgan, Inc. Common Stock|N|KMI|N|100|N|KMI +KMI.W|Kinder Morgan, Inc. Warrants Expiring 2017|N|KMI/WS|N|100|N|KMI+ +KMM|Deutsche Multi-Market Income Trust Common Sshares of Beneficial Interest|N|KMM|N|100|N|KMM +KMPA|Kemper Corporation 7.375% Subordinated Debentures due 2054|N|KMPA|N|100|N|KMPA +KMPR|Kemper Corporation|N|KMPR|N|100|N|KMPR +KMT|Kennametal Inc. Common Stock|N|KMT|N|100|N|KMT +KMX|CarMax Inc|N|KMX|N|100|N|KMX +KN|Knowles Corporation Common Stock|N|KN|N|100|N|KN +KND|Kindred Healthcare, Inc. Common Stock|N|KND|N|100|N|KND +KNL|Knoll, Inc. Common Stock|N|KNL|N|100|N|KNL +KNM|Konami Corporation American Depositary Shares (Each repstg one share of Common Stock)|N|KNM|N|100|N|KNM +KNOP|KNOT Offshore Partners LP Common Units representing Limited Partner Interests|N|KNOP|N|100|N|KNOP +KNOW|Direxion All Cap Insider Sentiment Shares|P|KNOW|Y|100|N|KNOW +KNX|Knight Transportation, Inc. Common Stock|N|KNX|N|100|N|KNX +KO|Coca-Cola Company (The) Common Stock|N|KO|N|100|N|KO +KODK|Eastman Kodak Company Common New|N|KODK|N|100|N|KODK +KODK.A|Eastman Kodak Company Wt Exp 135%|N|KODK/WS/A|N|100|N|KODK+A +KODK.W|Eastman Kodak Company Warrant (Expiring September 3, 2018)|N|KODK/WS|N|100|N|KODK+ +KOF|Coca Cola Femsa S.A.B. de C.V. Common Stock|N|KOF|N|100|N|KOF +KOL|Market Vectors Coal ETF|P|KOL|Y|100|N|KOL +KOLD|ProShares UltraShort Bloomberg Natural Gas|P|KOLD|Y|100|N|KOLD +KOP|Koppers Holdings Inc. Koppers Holdings Inc. Common Stock|N|KOP|N|100|N|KOP +KORS|Michael Kors Holdings Limited Ordinary Shares|N|KORS|N|100|N|KORS +KORU|Direxion Daily South Korea Bull 3X Shares|P|KORU|Y|100|N|KORU +KOS|Kosmos Energy Ltd. Common Shares|N|KOS|N|100|N|KOS +KR|Kroger Company (The) Common Stock|N|KR|N|100|N|KR +KRA|Kraton Performance Polymers, Inc Common Stock|N|KRA|N|100|N|KRA +KRC|Kilroy Realty Corporation Common Stock|N|KRC|N|100|N|KRC +KRC$G|Kilroy Realty Corporation Preferred Stock Series G|N|KRCpG|N|100|N|KRC-G +KRC$H|Kilroy Realty Corporation Pfd Ser H|N|KRCpH|N|100|N|KRC-H +KRE|SPDR S&P Regional Banking ETF|P|KRE|Y|100|N|KRE +KRG|Kite Realty Group Trust Common Stock|N|KRG|N|100|N|KRG +KRG$A|Kite Realty Group Trust PERP PFD SER A|N|KRGpA|N|100|N|KRG-A +KRO|Kronos Worldwide Inc Common Stock|N|KRO|N|100|N|KRO +KROO|IQ Australia Small Cap ETF|P|KROO|Y|100|N|KROO +KRS|ProShares Short KBW Regional Banking|P|KRS|Y|100|N|KRS +KRU|ProShares Ultra KBW Regional Banking|P|KRU|Y|100|N|KRU +KS|KapStone Paper and Packaging Corporation Common Stock|N|KS|N|100|N|KS +KSM|Deutsche Strategic Municiple Income Trust Common Shares of Beneficial Interest|N|KSM|N|100|N|KSM +KSS|Kohl's Corporation Common Stock|N|KSS|N|100|N|KSS +KST|Deutsche Strategic Income Trust Shares of Beneficial Interest|N|KST|N|100|N|KST +KSU|Kansas City Southern Common Stock|N|KSU|N|100|N|KSU +KSU$|Kansas City Southern Preferred Stock|N|KSUp|N|10|N|KSU- +KT|KT Corporation Common Stock|N|KT|N|100|N|KT +KTF|Deutsche Municiple Income Trust Common Shares|N|KTF|N|100|N|KTF +KTH|Structures Products Cp 8% CorTS Issued by Peco Energy Cap Tr II Preferred Stock|N|KTH|N|100|N|KTH +KTN|Structured Products Corp 8.205% CorTS 8.205% Corporate Backed Trust Securities (CorTS)|N|KTN|N|100|N|KTN +KTP|Corts 7.625 Pfd Common Stock|N|KTP|N|100|N|KTP +KW|Kennedy-Wilson Holdings Inc. Common Stock|N|KW|N|100|N|KW +KWN|Kennedy-Wilson Holdings Inc. 7.75% Senior Notes due 2042|N|KWN|N|100|N|KWN +KWR|Quaker Chemical Corporation Common Stock|N|KWR|N|100|N|KWR +KWT|Market Vectors Solar Energy ETF|P|KWT|Y|100|N|KWT +KXI|iShares Global Consumer Staples ETF|P|KXI|Y|100|N|KXI +KYE|Kayne Anderson Total Energy Return Fund, Inc. Common Stock|N|KYE|N|100|N|KYE +KYN|Kayne Anderson MLP Investment Company Common Stock|N|KYN|N|100|N|KYN +KYN$E|Kayne Anderson MLP Investment Company Series E Mandatory Redeemable Preferred Shares, $25.00 liquidation preference|N|KYNpE|N|100|N|KYN-E +KYN$F|Kayne Anderson MLP Investment Company 3.50% Series F Mandatory Redeemable Preferred Shares $25.00 Liquidation Preference per share|N|KYNpF|N|100|N|KYN-F +KYN$G|Kayne Anderson MLP Investment Company Series G Mandatory Redeemable Preferred Shares Liquidation Preference|N|KYNpG|N|100|N|KYN-G +KYO|Kyocera Corporation Common Stock|N|KYO|N|100|N|KYO +L|Loews Corporation Common Stock|N|L|N|100|N|L +LAD|Lithia Motors, Inc. Common Stock|N|LAD|N|100|N|LAD +LADR|Ladder Capital Corp Class A Common Stock|N|LADR|N|100|N|LADR +LAG|SPDR Barclays Aggregate Bond ETF|P|LAG|Y|100|N|LAG +LAQ|Aberdeen Latin America Equity Fund, Inc.|A|LAQ|N|100|N|LAQ +LAS|Lentuo International Inc. American Depositary Shares, each representing two ordinary shares|N|LAS|N|100|N|LAS +LAZ|Lazard LTD. Lazard, LTD. Class A Common Stock|N|LAZ|N|100|N|LAZ +LB|L Brands, Inc.|N|LB|N|100|N|LB +LBF|Deutsche Global High Income Fund, Inc. Common Stock|N|LBF|N|100|N|LBF +LBJ|Direxion Daily Latin America 3x Bull Shares|P|LBJ|Y|100|N|LBJ +LBMH|Liberator Medical Holdings, Inc. Common Stock|A|LBMH|N|100|N|LBMH +LBND|PowerShares DB 3x Long 25 Year Treasury Bond ETN|P|LBND|N|100|N|LBND +LBY|Libbey, Inc. Common Stock|A|LBY|N|100|N|LBY +LC|LendingClub Corporation Common Stock|N|LC|N|100|N|LC +LCI|Lannett Co Inc Common Stock|N|LCI|N|100|N|LCI +LCM|Advent/Claymore Enhanced Growth & Income Fund Advent/Claymore Enhanced Growth & Income Fund Common Shares of Beneficial Interest|N|LCM|N|100|N|LCM +LD|iPath Bloomberg Lead Subindex Total Return SM Index ETN|P|LD|N|100|N|LD +LDF|Latin American Discovery Fund, Inc. (The) Common Stock|N|LDF|N|100|N|LDF +LDL|Lydall, Inc. Common Stock|N|LDL|N|100|N|LDL +LDOS|Leidos Holdings, Inc. Common Stock|N|LDOS|N|100|N|LDOS +LDP|Cohen & Steers Limited Duration Preferred and Income Fund, Inc.|N|LDP|N|100|N|LDP +LDR|Landauer, Inc. Common Stock|N|LDR|N|100|N|LDR +LDUR|PIMCO Low Duration Active Exchange-Traded Fund|P|LDUR|Y|100|N|LDUR +LEA|Lear Corporation Common Stock|N|LEA|N|100|N|LEA +LEAF|Springleaf Holdings, Inc. Common Stock|N|LEAF|N|100|N|LEAF +LEDD|iPath Pure Beta Lead ETN|P|LEDD|N|100|N|LEDD +LEE|Lee Enterprises, Incorporated Common Stock|N|LEE|N|100|N|LEE +LEG|Leggett & Platt, Incorporated Common Stock|N|LEG|N|100|N|LEG +LEI|Lucas Energy, Inc. Common Stock|A|LEI|N|100|N|LEI +LEJU|Leju Holdings Limited American Depositary Shares, each representing one Ordinary share|N|LEJU|N|100|N|LEJU +LEMB|iShares Emerging Markets Local Currency Bond|P|LEMB|Y|100|N|LEMB +LEN|Lennar Corporation Class A Common Stock|N|LEN|N|100|N|LEN +LEN.B|Lennar Corporation Class B|N|LEN/B|N|100|N|LEN.B +LEO|Dreyfus Strategic Municipals, Inc. Common Stock|N|LEO|N|100|N|LEO +LEU|Centrus Energy Corp. Class A Common Stock|N|LEU|N|100|N|LEU +LF|Leapfrog Enterprises Inc Common Stock|N|LF|N|100|N|LF +LFC|China Life Insurance Company Limited American Depositary Shares|N|LFC|N|100|N|LFC +LFL|LATAM Airlines Group S.A.|N|LFL|N|100|N|LFL +LG|Laclede Gas Company Common Stock|N|LG|N|100|N|LG +LGF|Lions Gate Entertainment Corporation Common Stock|N|LGF|N|100|N|LGF +LGI|Lazard Global Total Return and Income Fund Common Stock|N|LGI|N|100|N|LGI +LGL|LGL Group, Inc. (The) Common Stock|A|LGL|N|100|N|LGL +LGL.W|LGL Group, Inc. (The) Warrants|A|LGL/WS|N|100|N|LGL+ +LGLV|SPDR Russell 1000 Low Volatility ETF|P|LGLV|Y|100|N|LGLV +LH|Laboratory Corporation of America Holdings Common Stock|N|LH|N|100|N|LH +LHO|LaSalle Hotel Properties Common Stock|N|LHO|N|100|N|LHO +LHO$H|LaSalle Hotel Properties 7.50% Series H Cumulative Redeemable Preferred Shares of Beneficial Interest|N|LHOpH|N|100|N|LHO-H +LHO$I|LaSalle Hotel Properties 6.375% Series I Cumulative Redeemable Redeemable Preferred SBI|N|LHOpI|N|100|N|LHO-I +LII|Lennox International, Inc. Common Stock|N|LII|N|100|N|LII +LIQT|LiqTech International, Inc. Common Stock|A|LIQT|N|100|N|LIQT +LIT|Global X Lithium ETF|P|LIT|Y|100|N|LIT +LITB|LightInTheBox Holding Co., Ltd. American Depositary Shares, each representing 2 ordinary shares|N|LITB|N|100|N|LITB +LL|Lumber Liquidators Holdings, Inc Common Stock|N|LL|N|100|N|LL +LLDM|Direxion Daily FTSE Developed Markets Bull 1.25X Shares|P|LLDM|Y|100|N|LLDM +LLEM|Direxion Daily FTSE Emerging Markets Bull 1.25X Shares|P|LLEM|Y|100|N|LLEM +LLL|L-3 Communications Holdings, Inc. Common Stock|N|LLL|N|100|N|LLL +LLSC|Direxion Daily Small Cap 1.25X Shares|P|LLSC|Y|100|N|LLSC +LLSP|Direxion Daily S&P 500 Bull 1.25X Shares|P|LLSP|Y|100|N|LLSP +LLY|Eli Lilly and Company Common Stock|N|LLY|N|100|N|LLY +LM|Legg Mason, Inc. Common Stock|N|LM|N|100|N|LM +LMLP|ETRACS Monthly Pay 2xLeveraged Wells Fargo MLP Ex-Energy ETN|P|LMLP|N|100|N|LMLP +LMT|Lockheed Martin Corporation Common Stock|N|LMT|N|100|N|LMT +LNC|Lincoln National Corporation Common Stock|N|LNC|N|100|N|LNC +LNC.W|Lincoln National Corporation Warrant expiring July 10, 2019|N|LNC/WS|N|100|N|LNC+ +LND|Brasilagro Brazilian Agric Real Estate Co Sponsored ADR (Brazil)|N|LND|N|100|N|LND +LNG|Cheniere Energy, Inc. Common Stock|A|LNG|N|100|N|LNG +LNKD|LinkedIn Corporation Class A Common Stock|N|LNKD|N|100|N|LNKD +LNN|Lindsay Corporation Common Stock|N|LNN|N|100|N|LNN +LNT|Alliant Energy Corporation Common Stock|N|LNT|N|100|N|LNT +LO|Lorillard, Inc Common Stock|N|LO|N|100|N|LO +LOCK|LifeLock, Inc. Common Stock|N|LOCK|N|100|N|LOCK +LODE|Comstock Mining, Inc. Common Stock|A|LODE|N|100|N|LODE +LOR|Lazard World Dividend & Income Fund, Inc. Common Stock|N|LOR|N|100|N|LOR +LOV|Spark Networks, Inc. Common Stock|A|LOV|N|100|N|LOV +LOW|Lowe's Companies, Inc. Common Stock|N|LOW|N|100|N|LOW +LOWC|SPDR MSCI ACWI Low Carbon Target ETF|P|LOWC|Y|100|N|LOWC +LPG|Dorian LPG Ltd. Common Stock|N|LPG|N|100|N|LPG +LPI|Laredo Petroleum, Inc. Common Stock|N|LPI|N|100|N|LPI +LPL|LG Display Co, Ltd AMERICAN DEPOSITORY SHARES|N|LPL|N|100|N|LPL +LPT|Liberty Property Trust|N|LPT|N|100|N|LPT +LPX|Louisiana-Pacific Corporation Common Stock|N|LPX|N|100|N|LPX +LQ|La Quinta Holdings Inc. Common Stock|N|LQ|N|100|N|LQ +LQD|iShares iBoxx $ Investment Grade Corporate Bond ETF|P|LQD|Y|100|N|LQD +LQDH|iShares Interest Rate Hedged Corporate Bond ETF|P|LQDH|Y|100|N|LQDH +LRE|LRR Energy, L.P. Common Units Representing Limited Partner Interests|N|LRE|N|100|N|LRE +LRN|K12 Inc Common Stock|N|LRN|N|100|N|LRN +LSC|HSBC Global Absolute Limited ELEMENTS S&P CTI Index ETN|P|LSC|N|100|N|LSC +LSG|Lake Shore Gold Corp Ordinary Shares (Canada)|A|LSG|N|100|N|LSG +LSTK|iPath Pure Beta Livestock ETN|P|LSTK|N|100|N|LSTK +LTC|LTC Properties, Inc. Common Stock|N|LTC|N|100|N|LTC +LTL|ProShares Ultra Telecommunications ProShares|P|LTL|Y|100|N|LTL +LTM|Life Time Fitness Common Stock|N|LTM|N|100|N|LTM +LTPZ|Pimco 15 Year U.S. TIPS Index Exchange-Traded Fund|P|LTPZ|Y|100|N|LTPZ +LTS|Ladenburg Thalmann Financial Services Inc Common Stock|A|LTS|N|100|N|LTS +LTS$A|Ladenburg Thalmann Financial Services Inc 8.00% Series A Cumulative Redeemable Preferred Stock, Liquidation Preference $25.00 per share|A|LTSpA|N|100|N|LTS-A +LUB|Luby's, Inc. Common Stock|N|LUB|N|100|N|LUB +LUK|Leucadia National Corporation Common Stock|N|LUK|N|100|N|LUK +LUV|Southwest Airlines Company Common Stock|N|LUV|N|100|N|LUV +LUX|Luxottica Group, S.p.A. Common Stock|N|LUX|N|100|N|LUX +LVL|Guggenheim Global Dividend Opportunities Index ETF|P|LVL|Y|100|N|LVL +LVLT|Level 3 Communications, Inc. Common Stock|N|LVLT|N|100|N|LVLT +LVS|Las Vegas Sands Corp. Common Stock|N|LVS|N|100|N|LVS +LWC|SPDR Barclays Long Term Corporate Bond ETF (based on Barclays Capital Long U.S. Corporate Index symbol--LD07TRUU|P|LWC|Y|100|N|LWC +LXFR|Luxfer Holdings PLC American Depositary Shares (each representing one-half of an Ordinary Share)|N|LXFR|N|100|N|LXFR +LXFT|Luxoft Holding, Inc. Class A Ordinary Shares|N|LXFT|N|100|N|LXFT +LXK|Lexmark International, Inc. Common Stock|N|LXK|N|100|N|LXK +LXP|Lexington Realty Trust Common Stock|N|LXP|N|100|N|LXP +LXP$C|Lexington Realty Trust Preferred Conv. Series C|N|LXPpC|N|100|N|LXP-C +LXU|LSB Industries, Inc. Common Stock|N|LXU|N|100|N|LXU +LYB|LyondellBasell Industries NV Ordinary Shares Class A (Netherlands)|N|LYB|N|100|N|LYB +LYG|Lloyds Banking Group Plc American Depositary Shares|N|LYG|N|100|N|LYG +LYG$A|Lloyds Banking Group Plc 7.75% Public Income NotES (PINES) due July 15, 2050|N|LYGpA|N|100|N|LYG-A +LYV|Live Nation Entertainment, Inc. Common Stock|N|LYV|N|100|N|LYV +LZB|La-Z-Boy Incorporated Common Stock|N|LZB|N|100|N|LZB +M|Macy's Inc Common Stock|N|M|N|100|N|M +MA|Mastercard Incorporated Common Stock|N|MA|N|100|N|MA +MAA|Mid-America Apartment Communities, Inc. Common Stock|N|MAA|N|100|N|MAA +MAB|Eaton Vance Massachusetts Municipal Bond Fund Common Shares of Beneficial Interest, $.01 par value|A|MAB|N|100|N|MAB +MAC|Macerich Company (The) Common Stock|N|MAC|N|100|N|MAC +MAIN|Main Street Capital Corporation Common Stock|N|MAIN|N|100|N|MAIN +MAN|ManpowerGroup Common Stock|N|MAN|N|100|N|MAN +MANU|Manchester United Ltd. Class A Ordinary Shares|N|MANU|N|100|N|MANU +MAS|Masco Corporation Common Stock|N|MAS|N|100|N|MAS +MATH|Meidell Tactical Advantage ETF|P|MATH|Y|100|N|MATH +MATL|Direxion Daily Basic Materials Bull 3X Shares|P|MATL|Y|100|N|MATL +MATX|Matson, Inc. Common Stock|N|MATX|N|100|N|MATX +MAV|Pioneer Municipal High Income Advantage Trust Common Shares of Beneficial Interest|N|MAV|N|100|N|MAV +MBB|iShares MBS ETF|P|MBB|Y|100|N|MBB +MBG|SPDR Barclays Mortgage Backed Bond ETF|P|MBG|Y|100|N|MBG +MBI|MBIA Inc. Common Stock|N|MBI|N|100|N|MBI +MBLY|Mobileye N.V. Ordinary Shares|N|MBLY|N|100|N|MBLY +MBT|Mobile TeleSystems OJSC|N|MBT|N|100|N|MBT +MC|Moelis & Company Class A Common Stock|N|MC|N|100|N|MC +MCA|Blackrock MuniYield California Quality Fund, Inc. Common Stock|N|MCA|N|100|N|MCA +MCC|Medley Capital Corporation Common Stock|N|MCC|N|100|N|MCC +MCD|McDonald's Corporation Common Stock|N|MCD|N|100|N|MCD +MCF|Contango Oil & Gas Company Common Stock|A|MCF|N|100|N|MCF +MCHI|iShares MSCI China ETF|P|MCHI|Y|100|N|MCHI +MCI|Babson Capital Corporate Investors Common Stock|N|MCI|N|100|N|MCI +MCK|McKesson Corporation Common Stock|N|MCK|N|100|N|MCK +MCN|Madison Covered Call & Equity Strategy Fund Common Stock|N|MCN|N|100|N|MCN +MCO|Moody's Corporation Common Stock|N|MCO|N|100|N|MCO +MCP|Molycorp, Inc Common Stock|N|MCP|N|100|N|MCP +MCQ|Medley Capital Corporation 7.125% Senior Notes due 2019|N|MCQ|N|100|N|MCQ +MCR|MFS Charter Income Trust Common Stock|N|MCR|N|100|N|MCR +MCRO|IQ Hedge Macro Tracker ETF|P|MCRO|Y|100|N|MCRO +MCS|Marcus Corporation (The) Common Stock|N|MCS|N|100|N|MCS +MCV|Medley Capital Corporation 6.125% Senior Notes due 2023|N|MCV|N|100|N|MCV +MCY|Mercury General Corporation Common Stock|N|MCY|N|100|N|MCY +MCZ|Mad Catz Interactive Inc Common Stock|A|MCZ|N|100|N|MCZ +MD|Mednax, Inc. Common Stock|N|MD|N|100|N|MD +MDC|M.D.C. Holdings, Inc. Common Stock|N|MDC|N|100|N|MDC +MDD|SPDR S&P International Mid Cap ETF|P|MDD|Y|100|N|MDD +MDGN|Medgenics, Inc. Common Stock|A|MDGN|N|100|N|MDGN +MDGN.W|Medgenics, Inc. Warrant|A|MDGN/WS|N|100|N|MDGN+ +MDLL|Direxion Daily Mid Cap Bull 2X Shares|P|MDLL|Y|100|N|MDLL +MDLY|Medley Management Inc. Class A Common Stock|N|MDLY|N|100|N|MDLY +MDP|Meredith Corporation Common Stock|N|MDP|N|100|N|MDP +MDR|McDermott International, Inc. Common Stock|N|MDR|N|100|N|MDR +MDT|Medtronic Inc. Common Stock|N|MDT|N|100|N|MDT +MDU|MDU Resources Group, Inc. Common Stock|N|MDU|N|100|N|MDU +MDW|Midway Gold Corporation Ordinary Shares (Canada)|A|MDW|N|100|N|MDW +MDY|SPDR MidCap Trust Series I|P|MDY|Y|100|N|MDY +MDYG|SPDR S&P 400 Mid Cap Growth ETF (based on S&P MidCap 400 Growth Index--symbol: MUV)|P|MDYG|Y|100|N|MDYG +MDYV|SPDR S&P 400 Mid Cap Value ETF (based on S&P MidCap 400 Value Index--symbol: MGD|P|MDYV|Y|100|N|MDYV +MEA|Metalico Inc Common Stock|A|MEA|N|100|N|MEA +MED|MEDIFAST INC Common Stock|N|MED|N|100|N|MED +MEG|Media General, Inc. Common Stock|N|MEG|N|100|N|MEG +MEI|Methode Electronics, Inc. Common Stock|N|MEI|N|100|N|MEI +MEN|Blackrock MuniEnhanced Fund, Inc Common Stock|N|MEN|N|100|N|MEN +MEP|Midcoast Energy Partners, L.P. Common units representing limited partner interests|N|MEP|N|100|N|MEP +MER$D|Merrill Lynch & Co., Inc. Preferred Stock|N|MERpD|N|100|N|MER-D +MER$E|Merrill Lynch & Co., Inc. Preferred Stock|N|MERpE|N|100|N|MER-E +MER$F|Merrill Lynch & Co., Inc. Preferred Stock|N|MERpF|N|100|N|MER-F +MER$K|Merrill Lynch & Co., Inc. 6.45% Trust Preferred Securities|N|MERpK|N|100|N|MER-K +MER$M|Merrill Lynch & Co., Inc. 6.45% Trust Preferred Securities|N|MERpM|N|100|N|MER-M +MER$P|Merrill Lynch & Co., Inc. Merrill Lynch Capital Trust III 7.375% Trust Preferred Securities|N|MERpP|N|100|N|MER-P +MES|Market Vectors Gulf States Index ETF|P|MES|Y|100|N|MES +MET|MetLife, Inc. Common Stock|N|MET|N|100|N|MET +MET$A|MetLife, Inc. Preferred Series A Floating Rate|N|METpA|N|100|N|MET-A +MET$B|MetLife, Inc. Preferred Series B|N|METpB|N|100|N|MET-B +MFA|MFA Financial, Inc.|N|MFA|N|100|N|MFA +MFA$B|MFA Financial, Inc. Preferred Series B|N|MFApB|N|100|N|MFA-B +MFC|Manulife Financial Corporation Common Stock|N|MFC|N|100|N|MFC +MFD|Macquarie/First Trust Global Common Stock|N|MFD|N|100|N|MFD +MFG|Mizuho Financial Group, Inc. Sponosred ADR (Japan)|N|MFG|N|100|N|MFG +MFL|Blackrock MuniHoldings Investment Quality Fund Common Shares of Beneficial Interest|N|MFL|N|100|N|MFL +MFLA|iPath Long Enhanced MSCI EAFE Index ETN|P|MFLA|N|100|N|MFLA +MFM|MFS Municipal Income Trust Common Stock|N|MFM|N|100|N|MFM +MFO|MFA Financial, Inc. 8.00% Senior Notes due 2042|N|MFO|N|100|N|MFO +MFT|Blackrock MuniYield Investment Quality Fund Common Shares of Beneficial Interest|N|MFT|N|100|N|MFT +MFV|MFS Special Value Trust Common Stock|N|MFV|N|100|N|MFV +MG|Mistras Group Inc Common Stock|N|MG|N|100|N|MG +MGA|Magna International, Inc. Common Stock|N|MGA|N|100|N|MGA +MGC|Vanguard Mega Cap ETF|P|MGC|Y|100|N|MGC +MGF|MFS Government Markets Income Trust Common Stock|N|MGF|N|100|N|MGF +MGH|Minco Gold Corporation Common Shares|A|MGH|N|100|N|MGH +MGK|Vanguard Mega Cap Growth ETF|P|MGK|Y|100|N|MGK +MGM|MGM Resorts International Common Stock|N|MGM|N|100|N|MGM +MGN|Mines Management, Inc. Common Stock|A|MGN|N|100|N|MGN +MGR|Affiliated Managers Group, Inc. 6.375% Senior Notes due 2042|N|MGR|N|100|N|MGR +MGT|MGT Capital Investments Inc Common Stock|A|MGT|N|100|N|MGT +MGU|Macquarie Global Infrastructure Total Return Fund Inc. Common Stock|N|MGU|N|100|N|MGU +MGV|Vanguard Mega Cap Value ETF|P|MGV|Y|100|N|MGV +MH$A|Maiden Holdings, Ltd. Pref Shs Ser A (Bermuda)|N|MHpA|N|100|N|MH-A +MHD|Blackrock MuniHoldings Fund, Inc. Common Stock|N|MHD|N|100|N|MHD +MHE|BlackRock Massachusetts Tax-Exempt Trust|A|MHE|N|100|N|MHE +MHF|Western Asset Municipal High Income Fund, Inc. Common Stock|N|MHF|N|100|N|MHF +MHFI|McGraw Hill Financial, Inc. Common Stock|N|MHFI|N|100|N|MHFI +MHG|Marine Harvest ASA Sponsored ADR (Norway)|N|MHG|N|100|N|MHG +MHH|Mastech Holdings, Inc Common Stock|A|MHH|N|100|N|MHH +MHI|Pioneer Municipal High Income Trust Common Shares of Beneficial Interest|N|MHI|N|100|N|MHI +MHK|Mohawk Industries, Inc. Common Stock|N|MHK|N|100|N|MHK +MHM|Bank of America Corporation Market Index Target Securities Linked to the S&P 500 Index|P|MHM|N|100|N|MHM +MHN|Blackrock MuniHoldings New York Quality Fund, Inc. Common Stock|N|MHN|N|100|N|MHN +MHNA|Maiden Holdings North America Ltd. 8.25% Notes due 2041|N|MHNA|N|100|N|MHNA +MHNB|Maiden Holdings North America, Ltd. 8.00% Notes due 2042|N|MHNB|N|100|N|MHNB +MHNC|Maiden Holdings North America, Ltd. 7.75% Notes due 2043|N|MHNC|N|100|N|MHNC +MHO|M/I Homes, Inc. Common Stock|N|MHO|N|100|N|MHO +MHO$A|M/I Homes, Inc. M/I Homes, Inc. Depositary Shares (Each representing 1/1000 of a Share of 9.75% Series A Preferred Share)|N|MHOpA|N|100|N|MHO-A +MHR|Magnum Hunter Resources Corporation|N|MHR|N|100|N|MHR +MHR$C|Magnum Hunter Resources Corporation 10.25% Series C Cumulative Perpetual Preferred Stock|A|MHRpC|N|100|N|MHR-C +MHR$D|Magnum Hunter Resources Corporation 8.0% Series D Cumulative Preferred Stock|A|MHRpD|N|100|N|MHR-D +MHR$E|Magnum Hunter Resources Corporation Depositary Shares, each representing a 1/1000th interest in a share of 8.0% Series E Cumulative Convertible Preferred Stock|A|MHRpE|N|100|N|MHR-E +MHW|Bank of America Corporation MITTS Linked to the Dow Jones Industrial Average|P|MHW|N|100|N|MHW +MHY|Western Asset Managed High Income Fund, Inc. Common Stock|N|MHY|N|100|N|MHY +MIC|Macquarie Infrastructure Company LLC (New) Shares representing one Limited Liability Interest|N|MIC|N|100|N|MIC +MIDU|Direxion Mid Cap Bull 3X Shares|P|MIDU|Y|100|N|MIDU +MIDZ|Direxion Mid Cap Bear 3X Shares|P|MIDZ|Y|100|N|MIDZ +MIE|Cohen & Steers MLP Income and Energy Opportunity Fund, Inc. Common Stock|N|MIE|N|100|N|MIE +MIG|Meadowbrook Insurance Group, Inc. Common Stock|N|MIG|N|100|N|MIG +MIL|MFC Industrial Ltd.|N|MIL|N|100|N|MIL +MILL|Miller Energy Resourses, Inc. Common Stock|N|MILL|N|100|N|MILL +MILL$C|Miller Energy Resources, Inc. 10.75% Series C Cumulative, Redeemable Preferred Stock|N|MILLpC|N|100|N|MILL-C +MILL$D|Miller Energy Resources, Inc. 10.5% Series D Fixed Rate/Floating Rate Cumulative Redeemable Preferred Stock|N|MILLpD|N|100|N|MILL-D +MIN|MFS Intermediate Income Trust Common Stock|N|MIN|N|100|N|MIN +MINC|AdvisorShares Newfleet Multi-sector Income ETF|P|MINC|Y|100|N|MINC +MINT|PIMCO Enhanced Short Maturity Active Exchange-Traded Fund|P|MINT|Y|100|N|MINT +MITT|AG Mortgage Investment Trust, Inc. Common Stock|N|MITT|N|100|N|MITT +MITT$A|AG Mortgage Investment Trust, Inc. 8.25% Preferred Series A|N|MITTpA|N|100|N|MITT-A +MITT$B|AG Mortgage Investment Trust, Inc. Preferred Series B|N|MITTpB|N|100|N|MITT-B +MIW|Eaton Vance Michigan Municipal Bond Fund Common Shares of Beneficial Interest, $.01 par value|A|MIW|N|100|N|MIW +MIXT|MiX Telematics Limited American Depositary Shares, each representing 25 Ordinary Shares|N|MIXT|N|100|N|MIXT +MIY|Blackrock MuniYield Michigan Quality Fund, Inc. Common Stock|N|MIY|N|100|N|MIY +MJI|Blackrock MuniYield New Jersey Quality Fund, Inc. Common Stock|N|MJI|N|100|N|MJI +MJN|Mead Johnson Nutrition Company Common Stock|N|MJN|N|100|N|MJN +MKC|McCormick & Company, Incorporated Common Stock|N|MKC|N|100|N|MKC +MKC.V|McCormick & Company, Incorporated Common Stock|N|MKC/V|N|100|N|MKC.V +MKL|Markel Corporation Common Stock|N|MKL|N|100|N|MKL +MLI|Mueller Industries, Inc. Common Stock|N|MLI|N|100|N|MLI +MLM|Martin Marietta Materials, Inc. Common Stock|N|MLM|N|100|N|MLM +MLN|Market Vectors Long Municipal Index ETF|P|MLN|Y|100|N|MLN +MLP|Maui Land & Pineapple Company, Inc. Common Stock|N|MLP|N|100|N|MLP +MLPA|Global X MLP ETF|P|MLPA|Y|100|N|MLPA +MLPC|C-Tracks ETNs based on Performance of the Miller/Howard MLP Fundamental Index|P|MLPC|N|100|N|MLPC +MLPG|UBS AG Exchange Traded Access Securities (E-TRACS) Linked to the Alerian Natural Gas MLP Index due July 9, 2040|P|MLPG|N|100|N|MLPG +MLPI|UBS AG ETN|P|MLPI|N|100|N|MLPI +MLPJ|Global X Junior MLP ETF|P|MLPJ|Y|100|N|MLPJ +MLPL|UBS AG 2X Monthly Leveraged Long Exchnage Traded Access Securities (E-TRACS) linked to the Alerian MLP Infrastructure Index due July 9, 2040 ETN|P|MLPL|N|100|N|MLPL +MLPN|Credit Suisse Equal Weight MLP Index ETN due April 20, 2020 Linked to the Cushing 30 MLP Index|P|MLPN|N|100|N|MLPN +MLPO|Credit Suisse Group Exchange Traded Notes due December 4, 2034, Linked to the S&P MLP Index|P|MLPO|N|100|N|MLPO +MLPS|UBS AG 1xMonthly Short Exchange Traded Access Securities (E-TRACS) Linked to the Alerian MLP Infrastructure Total Return Index due October 1, 2040|P|MLPS|N|100|N|MLPS +MLPW|UBS AG Exchange Traded Access Securities (E0TRACS) Linked to the Wells fargo MLP Index due October 29, 2040|P|MLPW|N|100|N|MLPW +MLPX|Global X MLP & Energy Infrastructure ETF|P|MLPX|Y|100|N|MLPX +MLPY|Morgan Stanley Cushing MLP High Income Index ETN|P|MLPY|N|100|N|MLPY +MLR|Miller Industries, Inc. Common Stock|N|MLR|N|100|N|MLR +MM|Millennial Media, Inc. Common Stock|N|MM|N|100|N|MM +MMC|Marsh & McLennan Companies, Inc. Common Stock|N|MMC|N|100|N|MMC +MMD|MainStay DefinedTerm Municipal Opportunities Fund Common Shares of Beneficial Interest|N|MMD|N|100|N|MMD +MMI|Marcus & Millichap, Inc. Common Stock|N|MMI|N|100|N|MMI +MMM|3M Company Common Stock|N|MMM|N|100|N|MMM +MMP|Magellan Midstream Partners L.P. Limited Partnership|N|MMP|N|100|N|MMP +MMS|Maximus, Inc. Common Stock|N|MMS|N|100|N|MMS +MMT|MFS Multimarket Income Trust Common Stock|N|MMT|N|100|N|MMT +MMTM|SPDR S&P 1500 Momentum Tilt ETF|P|MMTM|Y|100|N|MMTM +MMU|Western Asset Managed Municipals Fund, Inc. Common Stock|N|MMU|N|100|N|MMU +MMV|Eaton Vance Massachusetts Municipal Income Trust Shares of Beneficial Interest|A|MMV|N|100|N|MMV +MN|Manning & Napier, Inc. Class A Common Stock|N|MN|N|100|N|MN +MNA|IQ Merger Arbitrage ETF|P|MNA|Y|100|N|MNA +MNE|Blackrock Muni New York Intermediate Duration Fund Inc Common Stock|N|MNE|N|100|N|MNE +MNI|McClatchy Company (The) Common Stock|N|MNI|N|100|N|MNI +MNK|Mallinckrodt plc Ordinary Shares|N|MNK|N|100|N|MNK +MNP|Western Asset Municipal Partners Fund, Inc. Common Stock|N|MNP|N|100|N|MNP +MNR|Monmouth Real Estate Investment Corporation Class A Common Stock|N|MNR|N|100|N|MNR +MNR$A|Monmouth Real Estate Investment Corporation 7.625% Series A Cumulative Redeemable Preferred Stock|N|MNRpA|N|100|N|MNR-A +MNR$B|Monmouth Real Estate Investment Corporation Series B Cumulative Redeemable Preferred Stock $0.01 par value|N|MNRpB|N|100|N|MNR-B +MO|Altria Group, Inc.|N|MO|N|100|N|MO +MOAT|Market Vectors Morningstar Wide Moat ETF|P|MOAT|Y|100|N|MOAT +MOC|Command Security Corporation Common Stock|A|MOC|N|100|N|MOC +MOD|Modine Manufacturing Company Common Stock|N|MOD|N|100|N|MOD +MODN|Model N, Inc. Common Stock|N|MODN|N|100|N|MODN +MOG.A|Moog Inc. Class A Common Stock|N|MOG/A|N|100|N|MOG.A +MOG.B|Moog Inc. Class B Common Stock|N|MOG/B|N|100|N|MOG.B +MOH|Molina Healthcare Inc Common Stock|N|MOH|N|100|N|MOH +MOM|QuantShares U.S. Market Neutral Momentum Fund ETF|P|MOM|Y|100|N|MOM +MON|Monsanto Company Common Stock|N|MON|N|100|N|MON +MONY|iShares Financial Bond ETF|P|MONY|Y|100|N|MONY +MOO|Market Vectors Agribusiness ETF|P|MOO|Y|100|N|MOO +MORE|Monogram Residential Trust, Inc. Common|N|MORE|N|100|N|MORE +MORL|ETRACS Monthly Pay 2XLeveraged Mortgage REIT ETN|P|MORL|N|100|N|MORL +MORT|Market Vectors Mortgage REIT Income ETF|P|MORT|Y|100|N|MORT +MOS|Mosaic Company (The) Common Stock|N|MOS|N|100|N|MOS +MOV|Movado Group Inc. Common Stock|N|MOV|N|100|N|MOV +MP$D|Mississippi Power Company 5.25 Srs Pfd|N|MPpD|N|100|N|MP-D +MPA|Blackrock MuniYield Pennsylvania Quality Fund Common Stock|N|MPA|N|100|N|MPA +MPC|Marathon Petroleum Corporation Common Stock|N|MPC|N|100|N|MPC +MPG|Metaldyne Performance Group Inc. Common Stock|N|MPG|N|100|N|MPG +MPLX|MPLX LP Common Units Representing Limited Partner Interests|N|MPLX|N|100|N|MPLX +MPO|Midstates Petroleum Company, Inc. Common Stock|N|MPO|N|100|N|MPO +MPV|Babson Capital Participation Investors Common Stock|N|MPV|N|100|N|MPV +MPW|Medical Properties Trust, Inc. common stock|N|MPW|N|100|N|MPW +MPX|Marine Products Corporation Common Stock|N|MPX|N|100|N|MPX +MQT|Blackrock MuniYield Quality Fund II, Inc. Common Stock|N|MQT|N|100|N|MQT +MQY|Blackrock MuniYield Quality Fund, Inc. Common Stock|N|MQY|N|100|N|MQY +MR|Mindray Medical International Limited Sponsored ADR representing Class A shares (China)|N|MR|N|100|N|MR +MRC|MRC Global Inc. Common Stock|N|MRC|N|100|N|MRC +MRGR|ProShares Merger ETF|Z|MRGR|Y|100|N|MRGR +MRH|Montpelier Re Holdings Ltd.|N|MRH|N|100|N|MRH +MRH$A|Montpelier RE Holdings Ltd Non Cumulative Series A Preferred Shares (Bermuda)|N|MRHpA|N|100|N|MRH-A +MRIN|Marin Software Incorporated Common Stock|N|MRIN|N|100|N|MRIN +MRK|Merck & Company, Inc. Common Stock (new)|N|MRK|N|100|N|MRK +MRO|Marathon Oil Corporation Common Stock|N|MRO|N|100|N|MRO +MS|Morgan Stanley Common Stock|N|MS|N|100|N|MS +MS$A|Morgan Stanley Dep Shs repstg 1/1000 Pfd Ser A|N|MSpA|N|100|N|MS-A +MS$E|Morgan Stanley DEPOSITARY SHARES REP 1/1000TH SHARES FIXED/FLTG PREFERRED STOCK SERIES E|N|MSpE|N|100|N|MS-E +MS$F|Morgan Stanley Dep Shs Rpstg 1/1000th Int Prd Ser F Fxd to Flag|N|MSpF|N|100|N|MS-F +MS$G|Morgan Stanley Depositary Shares Representing 1/1000th Preferred Series G|N|MSpG|N|100|N|MS-G +MS$I|Morgan Stanley Depository Shares Representing 1/1000th Preferred Series 1 Fixed to Floating Non (Cum)|N|MSpI|N|100|N|MS-I +MSA|MSA Safety Incorporated Common Stock|N|MSA|N|100|N|MSA +MSB|Mesabi Trust Common Stock|N|MSB|N|100|N|MSB +MSC|Bank of America Corporation MITTS Linked tothe Dow Jones Industrial Average Index Linked Note|P|MSC|N|100|N|MSC +MSCA|Main Street Capital Corporation 6.125% Senior Notes due 2023|N|MSCA|N|100|N|MSCA +MSCI|MSCI Inc Common Stock|N|MSCI|N|100|N|MSCI +MSD|Morgan Stanley Emerging Markets Debt Fund, Inc. Common Stock|N|MSD|N|100|N|MSD +MSF|Morgan Stanley Emerging Markets Fund, Inc. Common Stock|N|MSF|N|100|N|MSF +MSI|Motorola Solutions, Inc. Common Stock|N|MSI|N|100|N|MSI +MSJ|Morgan Stanley Cap Trust VI Cap Securities|N|MSJ|N|100|N|MSJ +MSK|Morgan Stanley Cap TR VIII GDT Cap Securities|N|MSK|N|100|N|MSK +MSL|MidSouth Bancorp Common Stock|N|MSL|N|100|N|MSL +MSM|MSC Industrial Direct Company, Inc. Common Stock|N|MSM|N|100|N|MSM +MSN|Emerson Radio Corporation Common Stock|A|MSN|N|100|N|MSN +MSO|Martha Stewart Living Omnimedia, Inc. Common Stock|N|MSO|N|100|N|MSO +MSP|Madison Strategic Sector Premium Fund Madison Strategic Sector Premium Fund Common Shares of Beneficial Interest|N|MSP|N|100|N|MSP +MSTX|Mast Therapeutics, Inc. Common Stock|A|MSTX|N|100|N|MSTX +MSZ|Morgan Stanley Capital Trust VII Cap Secs|N|MSZ|N|100|N|MSZ +MT|Arcelor Mittal NY Registry Shares NEW|N|MT|N|100|N|MT +MTB|M&T Bank Corporation Common Stock|N|MTB|N|100|N|MTB +MTB$|M&T Bank Corporation Fixed Rate Cumulative Perpetual Preferred Stock, Series A|N|MTBp|N|100|N|MTB- +MTB$C|M&T Bank Corporation Fixed Rate Cumulative Perpetual Preferred Stock, Series C|N|MTBpC|N|100|N|MTB-C +MTB.W|M&T Bank Corporation Warrant (Expiring December 23, 2018)|N|MTB/WS|N|100|N|MTB+ +MTCN|ArcelorMittal 6.00% Mandatorily Convertible Subordinated Notes due 2016|N|MTCN|N|100|N|MTCN +MTD|Mettler-Toledo International, Inc. Common Stock|N|MTD|N|100|N|MTD +MTDR|Matador Resources Company Common Stock|N|MTDR|N|100|N|MTDR +MTG|MGIC Investment Corporation Common Stock|N|MTG|N|100|N|MTG +MTH|Meritage Homes Corporation Common Stock|N|MTH|N|100|N|MTH +MTK|SPDR MS Technology|P|MTK|Y|100|N|MTK +MTL|Mechel OAO American Depositary Shares (Each rep. 1 common shares)|N|MTL|N|100|N|MTL +MTL$|Mechel Steel Group OAO American Depositary Shares (each representing one-half of a Preferred Share)|N|MTLp|N|100|N|MTL- +MTN|Vail Resorts, Inc. Common Stock|N|MTN|N|100|N|MTN +MTOR|Meritor, Inc. Common Stock|N|MTOR|N|100|N|MTOR +MTR|Mesa Royalty Trust Common Stock|N|MTR|N|100|N|MTR +MTRN|Materion Corporation|N|MTRN|N|100|N|MTRN +MTS|Montgomery Street Income Securities, Inc. Common Stock|N|MTS|N|100|N|MTS +MTT|Western Asset Municipal Defined Opportunity Trust Inc Common Stock|N|MTT|N|100|N|MTT +MTU|Mitsubishi UFJ Financial Group, Inc. Common Stock|N|MTU|N|100|N|MTU +MTUM|iShares MSCI USA Momentum Factor ETF|P|MTUM|Y|100|N|MTUM +MTW|Manitowoc Company, Inc. (The) Common Stock|N|MTW|N|100|N|MTW +MTX|Minerals Technologies Inc. Common Stock|N|MTX|N|100|N|MTX +MTZ|MasTec, Inc. Common Stock|N|MTZ|N|100|N|MTZ +MUA|Blackrock MuniAssets Fund, Inc Common Stock|N|MUA|N|100|N|MUA +MUB|iShares National AMT-Free Muni Bond ETF|P|MUB|Y|100|N|MUB +MUC|Blackrock MuniHoldings California Quality Fund, Inc. Common Stock|N|MUC|N|100|N|MUC +MUE|Blackrock MuniHoldings Quality Fund II, Inc. Common Stock|N|MUE|N|100|N|MUE +MUH|Blackrock MuniHoldings Fund II, Inc. Common Stock|N|MUH|N|100|N|MUH +MUI|Blackrock Muni Intermediate Duration Fund Inc Common Stock|N|MUI|N|100|N|MUI +MUJ|Blackrock MuniHoldings New Jersey Quality Fund, Inc. Common Stock|N|MUJ|N|100|N|MUJ +MUNI|PIMCO Intermediate Municipal Bond Active Exchange-Traded Fund|P|MUNI|Y|100|N|MUNI +MUR|Murphy Oil Corporation Common Stock|N|MUR|N|100|N|MUR +MUS|Blackrock MuniHoldings Quality Fund, Inc Common Stock|N|MUS|N|100|N|MUS +MUSA|Murphy USA Inc. Common Stock|N|MUSA|N|100|N|MUSA +MUX|McEwen Mining Inc. Common Stock|N|MUX|N|100|N|MUX +MVC|MVC Capital, Inc. Common Stock|N|MVC|N|100|N|MVC +MVCB|MVC Capital 7.25% Senior Notes due 2023|N|MVCB|N|100|N|MVCB +MVF|Blackrock MuniVest Fund, Inc. Common Stock|A|MVF|N|100|N|MVF +MVG|Mag Silver Corporation Oridinary Shares|A|MVG|N|100|N|MVG +MVNR|Mavenir Systems, Inc. Common Stock|N|MVNR|N|100|N|MVNR +MVO|MV Oil Trust Units of Beneficial Interests|N|MVO|N|100|N|MVO +MVT|Blackrock MuniVest Fund II, Inc. Common Stock|N|MVT|N|100|N|MVT +MVV|ProShares Ultra MidCap400|P|MVV|Y|100|N|MVV +MW|Men's Wearhouse, Inc. (The) Common Stock|N|MW|N|100|N|MW +MWA|MUELLER WATER PRODUCTS Common Stock|N|MWA|N|100|N|MWA +MWE|MarkWest Energy Partners, LP Common units representing limited partnership units|N|MWE|N|100|N|MWE +MWG|Morgan Stanley Cap Tr IV Gtd Cap Secs|N|MWG|N|100|N|MWG +MWO|Morgan Stanley Cap Tr V Gtd Cap Secs|N|MWO|N|100|N|MWO +MWR|Morgan Stanley Cap Tr III Capital Trust Securities|N|MWR|N|100|N|MWR +MWV|Meadwestvaco Corporation Common Stock|N|MWV|N|100|N|MWV +MWW|Monster Worldwide, Inc. Common Stock|N|MWW|N|100|N|MWW +MX|MagnaChip Semiconductor Corporation Depositary Shares, each representing one share of common stock|N|MX|N|100|N|MX +MXC|Mexco Energy Corporation Common Stock|A|MXC|N|100|N|MXC +MXE|Mexico Equity and Income Fund, Inc. (The) Common Stock|N|MXE|N|100|N|MXE +MXF|Mexico Fund, Inc. (The) Common Stock|N|MXF|N|100|N|MXF +MXI|iShares Global Materials ETF|P|MXI|Y|100|N|MXI +MXL|MaxLinear, Inc Class A Common Stock|N|MXL|N|100|N|MXL +MY|China Ming Yang Wind Power Group Limited American Depositary Shares, each representing one ordinary share $0.001 par value|N|MY|N|100|N|MY +MYC|Blackrock MuniYield California Fund, Inc. Common Stock|N|MYC|N|100|N|MYC +MYCC|ClubCorp Holdings, Inc. Common Stock|N|MYCC|N|100|N|MYCC +MYD|Blackrock MuniYield Fund, Inc. Common Stock|N|MYD|N|100|N|MYD +MYE|Myers Industries, Inc. Common Stock|N|MYE|N|100|N|MYE +MYF|Blackrock MuniYield Investment Fund Common Stock|N|MYF|N|100|N|MYF +MYI|Blackrock MuniYield Quality Fund III, Inc Common Stock|N|MYI|N|100|N|MYI +MYJ|Blackrock MuniYield New Jersey Fund, Inc Common Stock|N|MYJ|N|100|N|MYJ +MYM|Blackrock MuniYield Michigan Quality Fund II, Inc. Common Stock|N|MYM|N|100|N|MYM +MYN|Blackrock MuniYield New York Quality Fund, Inc.Common Stock|N|MYN|N|100|N|MYN +MYY|ProShares Short MidCap400|P|MYY|Y|100|N|MYY +MZA|Blackrock MuniYield Arizona Fund, Inc. Common Stock|A|MZA|N|100|N|MZA +MZF|Managed Duration Investment Grade Municipal Fund|N|MZF|N|100|N|MZF +MZZ|ProShares UltraShort MidCap400|P|MZZ|Y|100|N|MZZ +N|Netsuite Inc Common Stock|N|N|N|100|N|N +NAC|Nuveen California Dividend Advantage Municipal Fund Common Stock|N|NAC|N|100|N|NAC +NAD|Nuveen Dividend Advantage Municipal Fund Common Stock|N|NAD|N|100|N|NAD +NADL|North Atlantic Drilling Ltd. Common Shares|N|NADL|N|100|N|NADL +NAK|Northern Dynasty Minerals, Ltd. Common Stock|A|NAK|N|100|N|NAK +NAN|Nuveen New York Dividend Advantage Municipal Fund Common Stock|N|NAN|N|100|N|NAN +NAO|Nordic Amern Offshore Ltd Ordinary Shares Reg S (Marshall Islands)|N|NAO|N|100|N|NAO +NAP|Navios Maritime Midstream Partners LP Common Units representing limited partner interests|N|NAP|N|100|N|NAP +NASH|Nashville Area ETF|P|NASH|Y|100|N|NASH +NAT|Nordic American Tankers Limited Common Stock|N|NAT|N|100|N|NAT +NAV|Navistar International Corporation Common Stock|N|NAV|N|100|N|NAV +NAV$D|Navistar International Corporation Preferred Stock|N|NAVpD|N|100|N|NAV-D +NAVB|Navidea Biopharmaceuticals, Inc. Common Stock|A|NAVB|N|100|N|NAVB +NAZ|Nuveen Arizona Premium Income Municipal Fund Common Stock|N|NAZ|N|100|N|NAZ +NBB|Nuveen Build America Bond Fund Common Shares of Beneficial Interest|N|NBB|N|100|N|NBB +NBD|Nuveen Build America Bond Opportunity Fund Common Shares of Beneficial Interest|N|NBD|N|100|N|NBD +NBG|Natl Bk Greece American Depositary Shares|N|NBG|N|100|N|NBG +NBG$A|National Bank of Greece SA Sponsored ADR representing Series A Preferred Shares (Greece)|N|NBGpA|N|100|N|NBG-A +NBH|Neuberger Berman Intermediate Municipal Fund Inc. Common Stock|A|NBH|N|100|N|NBH +NBHC|National Bank Holdings Corporation Common Stock|N|NBHC|N|100|N|NBHC +NBL|Noble Energy Inc. Common Stock|N|NBL|N|100|N|NBL +NBO|Neuberger Berman New York Intermediate Municipal Fund Inc. Common Stock|A|NBO|N|100|N|NBO +NBR|Nabors Industries Ltd.|N|NBR|N|100|N|NBR +NBW|Neuberger Berman California Intermediate Municipal Fund Inc. Common Stock|A|NBW|N|100|N|NBW +NBY|NovaBay Pharmaceuticals, Inc. Common Stock|A|NBY|N|100|N|NBY +NC|NACCO Industries, Inc. Common Stock|N|NC|N|100|N|NC +NCA|Nuveen California Municipal Value Fund, Inc. Common Stock|N|NCA|N|100|N|NCA +NCB|Nuveen California Municipal Value Fund 2 Common Shares of Beneficial Interest|A|NCB|N|100|N|NCB +NCFT|Norcraft Companies, Inc. Common Stock|N|NCFT|N|100|N|NCFT +NCI|Navigant Consulting, Inc. Common Stock|N|NCI|N|100|N|NCI +NCQ|NovaCopper Inc. Common Stock|A|NCQ|N|100|N|NCQ +NCR|NCR Corporation Common Stock|N|NCR|N|100|N|NCR +NCS|NCI Building Systems, Inc. New Common Stock|N|NCS|N|100|N|NCS +NCT|Newcastle Investment Corporation|N|NCT|N|100|N|NCT +NCT$B|Newcastle Investment Corporation Preferred Series B|N|NCTpB|N|100|N|NCT-B +NCT$C|Newcastle Investment Corporation Preferred Series C|N|NCTpC|N|100|N|NCT-C +NCT$D|Newcastle Invt Corp New PFD Ser D%|N|NCTpD|N|100|N|NCT-D +NCV|AllianzGI Convertible & Income Fund|N|NCV|N|100|N|NCV +NCZ|AllianzGI Convertible & Income Fund II Common Shares of Beneficial Interest|N|NCZ|N|100|N|NCZ +NDP|Tortoise Energy Independence Fund, Inc. Common Stock|N|NDP|N|100|N|NDP +NDRO|Enduro Royalty Trust Trust Units representing beneficial interest in the trust|N|NDRO|N|100|N|NDRO +NE|Noble Corporation Ordinary Shares (UK)|N|NE|N|100|N|NE +NEA|Nuveen AMT-Free Municipal Income Fund Common Shares of Beneficial Interest Par Value $.01|N|NEA|N|100|N|NEA +NEAR|iShares Short Maturity Bond ETF|Z|NEAR|Y|100|N|NEAR +NEE|NextEra Energy, Inc. Common Stock|N|NEE|N|100|N|NEE +NEE$C|FPL Group, Inc. 5 7/8% Preferred Trust Securities|N|NEEpC|N|100|N|NEE-C +NEE$G|NextEra Energy, Inc. Series G Junior Subordinated Debenture due March 1, 2072|N|NEEpG|N|100|N|NEE-G +NEE$H|NextEra Energy, Inc. Series H Junior Subordinated Debentures due June 15, 2072|N|NEEpH|N|100|N|NEE-H +NEE$I|NextEra Energy, Inc. Series I Junior Subordinated Debentures due November 15, 2072|N|NEEpI|N|100|N|NEE-I +NEE$J|NextEra Energy, Inc. Series J Junior Subordinated Debentures due January 15, 2073|N|NEEpJ|N|100|N|NEE-J +NEE$O|NextEra Energy, Inc. Units Expiring 09/01/2015|N|NEEpO|N|100|N|NEE-O +NEE$P|NextEra Energy, Inc. EQUITY UNIT|N|NEEpP|N|100|N|NEE-P +NEFF|Neff Corporation Common Stock|N|NEFF|N|100|N|NEFF +NEM|Newmont Mining Corporation|N|NEM|N|100|N|NEM +NEN|New England Realty Associates Limited Partnership Class A Depositary Receipts Evidencing Units of Limited Partnership|A|NEN|N|100|N|NEN +NEP|NextEra Energy Partners, LP Common Units representing limited partner interests|N|NEP|N|100|N|NEP +NES|Nuverra Environmental Solutions, Inc. Common Stock|N|NES|N|100|N|NES +NEU|NewMarket Corp Common Stock|N|NEU|N|100|N|NEU +NEV|Nuveen Enhanced Municipal Value Fund Common Shares of Beneficial Interest|N|NEV|N|100|N|NEV +NEWM|New Media Investment Group Inc. Common Stock|N|NEWM|N|100|N|NEWM +NEWR|New Relic, Inc. Common Stock|N|NEWR|N|100|N|NEWR +NFG|National Fuel Gas Company Common Stock|N|NFG|N|100|N|NFG +NFJ|AllianzGI NFJ Dividend, Interest & Premium Strategy Fund|N|NFJ|N|100|N|NFJ +NFO|Guggenheim Insider ETF|P|NFO|Y|100|N|NFO +NFRA|FlexShares STOXX Global Broad Infrastructure Index Fund|P|NFRA|Y|100|N|NFRA +NFX|Newfield Exploration Company Common Stock|N|NFX|N|100|N|NFX +NG|Novagold Resources Inc.|A|NG|N|100|N|NG +NGD|New Gold Inc.|A|NGD|N|100|N|NGD +NGE|Global X MSCI Nigeria ETF|P|NGE|Y|100|N|NGE +NGG|National Grid Transco, PLC National Grid PLC (NEW) American Depositary Shares|N|NGG|N|100|N|NGG +NGL|NGL ENERGY PARTNERS LP Common Units representing Limited Partner Interests|N|NGL|N|100|N|NGL +NGLS|Targa Resources Partners LP Common Units Representing Limited Partnership Interests|N|NGLS|N|100|N|NGLS +NGS|Natural Gas Services Group, Inc. Common Stock|N|NGS|N|100|N|NGS +NGVC|Natural Grocers by Vitamin Cottage, Inc. Common Stock|N|NGVC|N|100|N|NGVC +NHC|National HealthCare Corporation Common Stock|A|NHC|N|100|N|NHC +NHC$A|National HealthCare Corporation Series A Convertible Pfd Stk|A|NHCpA|N|100|N|NHC-A +NHF|NexPoint Credit Strategies Fund|N|NHF|N|100|N|NHF +NHI|National Health Investors, Inc. Common Stock|N|NHI|N|100|N|NHI +NHS|Neuberger Berman High Yield Strategies Fund|A|NHS|N|100|N|NHS +NI|NiSource Inc Common Stock|N|NI|N|100|N|NI +NIB|iPath Bloomberg Cocoa Subindex Total Return SM IndexETN|P|NIB|N|100|N|NIB +NID|Nuveen Intermediate Duration Municipal Term Fund Common Shares of Beneficial Interest|N|NID|N|100|N|NID +NIE|AllianzGI Equity & Convertible Income Fund|N|NIE|N|100|N|NIE +NIM|Nuveen Select Maturities Municipal Fund Common Stock|N|NIM|N|100|N|NIM +NINI|iPath Pure Beta Nickel ETN|P|NINI|N|100|N|NINI +NIO|Nuveen Municipal Opportunity Fund, Inc. Common Stock|N|NIO|N|100|N|NIO +NIQ|Nuveenn Intermediate Duration Quality Municipal Term Fund Common Shares of Beneficial Interest|N|NIQ|N|100|N|NIQ +NJ|Nidec Corporation (Nihon Densan Kabushiki Kaisha) American Depositary Shares|N|NJ|N|100|N|NJ +NJR|NewJersey Resources Corporation Common Stock|N|NJR|N|100|N|NJR +NJV|Nuveen New Jersey Municipal Value Fund Common Shares of Beneficial Interest|A|NJV|N|100|N|NJV +NKA|Niska Gas Storage Partners LLC Common Units Representing Limited Liability Company Interests|N|NKA|N|100|N|NKA +NKE|Nike, Inc. Common Stock|N|NKE|N|100|N|NKE +NKG|Nuveen Georgia Dividend Advantage Municipal Fund 2 Nuveen Georgia Dividend Advantage Municipal Fund 2 (the|N|NKG|N|100|N|NKG +NKX|Nuveen California AMT-Free Municipal Income Fund|N|NKX|N|100|N|NKX +NKY|MAXIS Nikkei 225 Index Fund ETF|P|NKY|Y|100|N|NKY +NL|NL Industries, Inc. Common Stock|N|NL|N|100|N|NL +NLR|Market Vectors Uranium & Nuclear Energy ETF|P|NLR|Y|100|N|NLR +NLS|Nautilus, Inc. Common Stock|N|NLS|N|100|N|NLS +NLSN|Nielsen N.V. Common Stock|N|NLSN|N|100|N|NLSN +NLY|Annaly Capital Management Inc Common Stock|N|NLY|N|100|N|NLY +NLY$A|Annaly Capital Management Inc Preferred Stock Series A|N|NLYpA|N|100|N|NLY-A +NLY$C|Annaly Capital Management Inc 7.625% Series C Cumulative Redeemable Preferred Stock|N|NLYpC|N|100|N|NLY-C +NLY$D|Annaly Capital Management Inc Preferred Series D|N|NLYpD|N|100|N|NLY-D +NM|Navios Maritime Holdings Inc. Common Stock|N|NM|N|100|N|NM +NM$G|Navios Maritime Holdings Inc. Sponsored ADR Representing 1/100th Perpetual Preferred Series G (Marshall Islands)|N|NMpG|N|100|N|NM-G +NM$H|Navios Maritime Holdings Inc. Sponsored ADR Representing 1/100th Perp. Preferred Series H%|N|NMpH|N|100|N|NM-H +NMA|Nuveen Municipal Advantage Fund, Inc. Common Stock|N|NMA|N|100|N|NMA +NMBL|Nimble Storage, Inc. Common Stock|N|NMBL|N|100|N|NMBL +NMFC|New Mountain Finance Corporation Common Stock|N|NMFC|N|100|N|NMFC +NMI|Nuveen Municipal Income Fund, Inc. Common Stock|N|NMI|N|100|N|NMI +NMK$B|Niagara Mohawk Holdings, Inc. Preferred Stock|N|NMKpB|N|10|N|NMK-B +NMK$C|Niagara Mohawk Holdings, Inc. Preferred Stock|N|NMKpC|N|10|N|NMK-C +NML|Neuberger Berman MLP Income Fund Inc. Common Stock|A|NML|N|100|N|NML +NMM|Navios Maritime Partners LP Common Units Representing Limited Partner Interests|N|NMM|N|100|N|NMM +NMO|Nuveen Municipal Market Opportunity Fund, Inc. Common Stock|N|NMO|N|100|N|NMO +NMR|Nomura Holdings Inc ADR American Depositary Shares|N|NMR|N|100|N|NMR +NMS|Nuveen Minnesota Municipal Income Fund Common Shares of Beneficial Interest|N|NMS|N|100|N|NMS +NMT|Nuveen Massachusetts Premium Income Municipal Fund Common Stock|N|NMT|N|100|N|NMT +NMY|Nuveen Maryland Premium Income Municipal Fund Common Stock|N|NMY|N|100|N|NMY +NMZ|Nuveen Municipal High Income Opportunity Fund Common Stock, $0.01 par value, per share|A|NMZ|N|100|N|NMZ +NNA|Navios Maritime Acquisition Corporation Common stock|N|NNA|N|100|N|NNA +NNC|Nuveen North Carolina Premium Income Municipal Fund Common Stock|N|NNC|N|100|N|NNC +NNI|Nelnet, Inc. Common Stock|N|NNI|N|100|N|NNI +NNN|National Retail Properties Common Stock|N|NNN|N|100|N|NNN +NNN$D|National Retail Properties Depositary Shares Representing 1/100th Preferred Series D|N|NNNpD|N|100|N|NNN-D +NNN$E|National Retail Properties Depositary Shares, each representing a 1/100th interest in a share of 5.70% Series E Pfd.|N|NNNpE|N|100|N|NNN-E +NNP|Nuveen New York Performance Plus Municipal Fund, Inc. Common Stock|N|NNP|N|100|N|NNP +NNVC|NanoViricides, Inc. NEW Common Stock|A|NNVC|N|100|N|NNVC +NNY|Nuveen New York Municipal Value Fund, Inc. Common Stock|N|NNY|N|100|N|NNY +NOA|North American Energy Partners, Inc. Common Shares (no par)|N|NOA|N|100|N|NOA +NOAH|Noah Holdings Limited|N|NOAH|N|100|N|NOAH +NOBL|ProShares S&P 500 Dividend Aristocrats ETF|P|NOBL|Y|100|N|NOBL +NOC|Northrop Grumman Corporation Common Stock|N|NOC|N|100|N|NOC +NOG|Northern Oil and Gas, Inc. Common Stock|A|NOG|N|100|N|NOG +NOK|Nokia Corporation Sponsored American Depositary Shares|N|NOK|N|100|N|NOK +NOM|Nuveen Missouri Premium Income Municipal Fund Common Shares of Beneficial Interest|A|NOM|N|100|N|NOM +NOM$C|Nuveen Missouri Premium Income Municipal Fund MUNIFUND TERM PFD SHS SER 2015 (United States)|N|NOMpC/CL|N|100|N|NOM-C* +NOR|Noranda Aluminum Holding Corporation Common Stock|N|NOR|N|100|N|NOR +NORD|Nord Anglia Education, Inc. Ordinary Shares|N|NORD|N|100|N|NORD +NORW|Global X MSCI Norway ETF|P|NORW|Y|100|N|NORW +NOV|National Oilwell Varco, Inc. Common Stock|N|NOV|N|100|N|NOV +NOW|ServiceNow, Inc. Common Stock|N|NOW|N|100|N|NOW +NP|Neenah Paper, Inc. Common Stock|N|NP|N|100|N|NP +NPD|China Nepstar Chain Drugstore Ltd American Depositary Shares|N|NPD|N|100|N|NPD +NPF|Nuveen Premier Municipal Income Fund, Inc. Common Stock|N|NPF|N|100|N|NPF +NPI|Nuveen Premium Income Municipal Fund, Inc. Common Stock|N|NPI|N|100|N|NPI +NPK|National Presto Industries, Inc. Common Stock|N|NPK|N|100|N|NPK +NPM|Nuveen Premium Income Municipal Fund II, Inc. Common Stock|N|NPM|N|100|N|NPM +NPN|Nuveen Pennsylvania Municipal Value Fund Common Shares of Beneficial Interest|A|NPN|N|100|N|NPN +NPO|Enpro Industries Inc|N|NPO|N|100|N|NPO +NPP|Nuveen Performance Plus Municipal Fund, Inc. Common Stock|N|NPP|N|100|N|NPP +NPT|Nuveen Premium Income Municipal Fund IV, Inc. Common Stock|N|NPT|N|100|N|NPT +NPTN|NeoPhotonics Corporation Common Stock|N|NPTN|N|100|N|NPTN +NPV|Nuveen Virginia Premium Income Municipal Fund Common Stock|N|NPV|N|100|N|NPV +NQ|NQ Mobile Inc. American Depositary Shares, each representing five Class A common shares|N|NQ|N|100|N|NQ +NQI|Nuveen Quality Municipal Fund, Inc. Common Stock|N|NQI|N|100|N|NQI +NQM|Nuveen Investment Quality Municipal Fund, Inc. Common Stock|N|NQM|N|100|N|NQM +NQP|Nuveen Pennsylvania Investment Quality Municipal Fund, Inc. Common Stock|N|NQP|N|100|N|NQP +NQS|Nuveen Select Quality Municipal Fund, Inc. Common Stock|N|NQS|N|100|N|NQS +NQU|Nuveen Quality Income Municipal Fund, Inc. Common Stock|N|NQU|N|100|N|NQU +NR|Newpark Resources, Inc. Common Stock|N|NR|N|100|N|NR +NRF|NorthStar Realty Finance Corp. Common Stock (New)|N|NRF|N|100|N|NRF +NRF$A|Northstar Realty Finance Corp. 8.75% Series A Cumulative Redeemable Preferred Stock|N|NRFpA|N|100|N|NRF-A +NRF$B|Northstar Realty Finance Corp. Preferred Series B|N|NRFpB|N|100|N|NRF-B +NRF$C|Northstar Realty Finance Corp. Preferred Series C|N|NRFpC|N|100|N|NRF-C +NRF$D|Northstar Realty Finance Corp. 8.50% Series D Cumulative Redeemable Preferred Stock|N|NRFpD|N|100|N|NRF-D +NRF$E|Northstar Realty Finance Corp. Preferred Stock Series E|N|NRFpE|N|100|N|NRF-E +NRG|NRG Energy, Inc. Common Stock|N|NRG|N|100|N|NRG +NRK|Nuveen New York AMT-Free Municipal Income Fund Common Shares of Beneficial Interest Par Value $.01|N|NRK|N|100|N|NRK +NRO|Neuberger Berman Real Estate Securities Income Fund, Inc. Neuberger Berman Real Estate Securities Income Fund, Inc.|A|NRO|N|100|N|NRO +NRP|Natural Resource Partners LP Limited Partnership|N|NRP|N|100|N|NRP +NRT|North European Oil Royality Trust Common Stock|N|NRT|N|100|N|NRT +NRZ|New Residential Investment Corp. Common Stock|N|NRZ|N|100|N|NRZ +NS|Nustar Energy L.P. Common Units|N|NS|N|100|N|NS +NSAM|NorthStar Asset Management Group, Inc. Common Stock|N|NSAM|N|100|N|NSAM +NSC|Norfolk Southern Corporation Common Stock|N|NSC|N|100|N|NSC +NSH|Nustar GP Holdings, LLC Units|N|NSH|N|100|N|NSH +NSL|Nuveen Senior Income Fund Common Stock|N|NSL|N|100|N|NSL +NSLP|New Source Energy Partners L.P. Common Units Representing Limited Partner Interests|N|NSLP|N|100|N|NSLP +NSM|Nationstar Mortgage Holdings Inc. Common Stock|N|NSM|N|100|N|NSM +NSP|Insperity, Inc. Common Stock|N|NSP|N|100|N|NSP +NSPR|InspireMD, Inc. Common Stock|A|NSPR|N|100|N|NSPR +NSR|Neustar, Inc. Neustar, Inc. Class A Common Stock|N|NSR|N|100|N|NSR +NSS|NuStar Logistics, L.P. 7.625% Fixed-to-Floating Rate Subordinated Notes due 2043|N|NSS|N|100|N|NSS +NSU|Nevsun Resources Ltd Ordinary Shares|A|NSU|N|100|N|NSU +NTC|Nuveen Connecticut Premium Income Municipal Fund Common Stock|N|NTC|N|100|N|NTC +NTG|Tortoise MLP Fund, Inc. Common Stock|N|NTG|N|100|N|NTG +NTI|Northern Tier Energy LP Common Units representing Limited Partner Interests|N|NTI|N|100|N|NTI +NTIP|Network-1 Technologies, Inc. Common Stock|A|NTIP|N|100|N|NTIP +NTL|Nortel Inversora SA, ADR Common Stock|N|NTL|N|100|N|NTL +NTN|NTN Buzztime, Inc. Common Stock|A|NTN|N|100|N|NTN +NTP|Nam Tai Property Inc. Common Stock|N|NTP|N|100|N|NTP +NTT|Nippon Telegraph and Telephone Corporation Common Stock|N|NTT|N|100|N|NTT +NTX|Nuveen Texas Quality Income Municipal Fund Common Stock|N|NTX|N|100|N|NTX +NTX$C|Nuveen Texas Quality Income Municipal Fund Munifund Term Pfd Shs Ser 2013|N|NTXpC|N|100|N|NTX-C +NTZ|Natuzzi, S.p.A.|N|NTZ|N|100|N|NTZ +NU|Northeast Utilities Common Stock|N|NU|N|100|N|NU +NUE|Nucor Corporation Common Stock|N|NUE|N|100|N|NUE +NUGT|Direxion Daily Gold Miners Bull 3X Shares|P|NUGT|Y|100|N|NUGT +NUM|Nuveen Michigan Quality Income Municipal Fund Common Stock|N|NUM|N|100|N|NUM +NUO|Nuveen Ohio Quality Income Municipal Fund Common Stock|N|NUO|N|100|N|NUO +NUS|Nu Skin Enterprises, Inc. Common Stock|N|NUS|N|100|N|NUS +NUV|Nuveen Municipal Value Fund, Inc. Common Stock|N|NUV|N|100|N|NUV +NUW|Nuveen AMT-Free Municipal Value Fund|N|NUW|N|100|N|NUW +NVG|Nuveen Dividend Advantage Municipal Income Fund Common Shares of Beneficial Interest|A|NVG|N|100|N|NVG +NVGS|Navigator Holdings Ltd. Ordinary Shares (Marshall Islands)|N|NVGS|N|100|N|NVGS +NVO|Novo Nordisk A/S Common Stock|N|NVO|N|100|N|NVO +NVR|NVR, Inc. Common Stock|N|NVR|N|100|N|NVR +NVRO|Nevro Corp. Common Stock|N|NVRO|N|100|N|NVRO +NVS|Novartis AG Common Stock|N|NVS|N|100|N|NVS +NVX|Nuveen California Dividend Advantage Municipal Fund 2 Share of Beneficial Interest|A|NVX|N|100|N|NVX +NW$C|Natl Westminster Pfd Preferred Stock|N|NWpC|N|100|N|NW-C +NWE|NorthWestern Corporation Common Stock|N|NWE|N|100|N|NWE +NWHM|New Home Company Inc. (The) Common Stock|N|NWHM|N|100|N|NWHM +NWL|Newell Rubbermaid Inc. Common Stock|N|NWL|N|100|N|NWL +NWN|Northwest Natural Gas Company Common Stock|N|NWN|N|100|N|NWN +NWY|New York & Company, Inc. New York & Company, Inc. Common Shares|N|NWY|N|100|N|NWY +NX|Quanex Building Products Corporation Common Stock|N|NX|N|100|N|NX +NXC|Nuveen California Select Tax-Free Income Portfolio Common Stock|N|NXC|N|100|N|NXC +NXJ|Nuveen New Jersey Dividend Advantage Municipal Fund Share of Beneficial Interest|N|NXJ|N|100|N|NXJ +NXJ$C|Nuveen New Jersey Dividend Advantage Municipal Fund MuniFund Term Preferred Shares, 2.00% Series 2015, $10.00 Liquidation preference per share|N|NXJpC/CL|N|100|N|NXJ-C* +NXK|Nuveen New York Dividend Advantage Municipal Fund 2 Share of Beneficial Interest|A|NXK|N|100|N|NXK +NXN|Nuveen New York Select Tax-Free Income Portfolio Common Stock|N|NXN|N|100|N|NXN +NXP|Nuveen Select Tax Free Income Portfolio Common Stock|N|NXP|N|100|N|NXP +NXQ|Nuveen Select Tax Free Income Portfolio II Common Stock|N|NXQ|N|100|N|NXQ +NXR|Nuveen Select Tax Free Income Portfolio III Common Stock|N|NXR|N|100|N|NXR +NXZ|Nuveen Dividend Advantage Municipal Fund 2 Share of Beneficial Interest|A|NXZ|N|100|N|NXZ +NYCB|New York Community Bancorp, Inc. Common Stock|N|NYCB|N|100|N|NYCB +NYCB$U|New York Community Bancorp, Inc. New York Community Capital Tr V (BONUSES)|N|NYCBpU|N|100|N|NYCB-U +NYCC|PowerShares NYSE Century Portfolio|P|NYCC|Y|100|N|NYCC +NYF|iShares New York AMT-Free Muni Bond ETF|P|NYF|Y|100|N|NYF +NYH|Eaton Vance New York Municipal Bond Fund II Common Shares of Beneficial Interest, $.01 par value|A|NYH|N|100|N|NYH +NYLD|NRG Yield, Inc. Class A Common Stock|N|NYLD|N|100|N|NYLD +NYRT|New York REIT, Inc. Common Stock|N|NYRT|N|100|N|NYRT +NYT|New York Times Company (The) Common Stock|N|NYT|N|100|N|NYT +NYV|Nuveen New York Municipal Value Fund 2 Common Shares of Beneficial Interest|A|NYV|N|100|N|NYV +NZF|Nuveen Dividend Advantage Municipal Fund 3 Common Shares of Beneficial Interest|A|NZF|N|100|N|NZF +NZH|Nuveen California Dividend Advantage Municipal Fund 3 Common Shares of Beneficial Interest|A|NZH|N|100|N|NZH +O|Realty Income Corporation Common Stock|N|O|N|100|N|O +O$F|Realty Income Corporation Monthly Income Cumulative Red Preferred Stock Class F|N|OpF|N|100|N|O-F +OAK|Oaktree Capital Group, LLC Class A Units Representing Limited Liability Company Interests|N|OAK|N|100|N|OAK +OAKS|Five Oaks Investment Corp. Common Stock|N|OAKS|N|100|N|OAKS +OAKS$A|Five Oaks Investment Corp. 8.75% Series A Cumulative Redeemable Preferred Stock|N|OAKSpA|N|100|N|OAKS-A +OAS|Oasis Petroleum Inc. Common Stock|N|OAS|N|100|N|OAS +OB|OneBeacon Insurance Group, Ltd. Class A Common Stock|N|OB|N|100|N|OB +OC|Owens Corning Inc Common Stock New|N|OC|N|100|N|OC +OCIP|OCI Partners LP Common Units representing Limited Partner Interests|N|OCIP|N|100|N|OCIP +OCIR|OCI Resources LP Common Units representing Limited Partner Interests|N|OCIR|N|100|N|OCIR +OCN|Ocwen Financial Corporation NEW Common Stock|N|OCN|N|100|N|OCN +OCR|Omnicare, Inc. Common Stock|N|OCR|N|100|N|OCR +OCR$A|Omnicare, Inc. Trust Preferred Income Equity Redeemable Securities (PIERS)|N|OCRpA|N|100|N|OCR-A +OCR$B|Omnicare, Inc. Omnicare Capital Trust II Series B 4.00% Trust Preferred Income Equity Redeemable Securities (PIERS)|N|OCRpB|N|100|N|OCR-B +ODC|Oil-Dri Corporation Of America Common Stock|N|ODC|N|100|N|ODC +OEC|Orion Engineered Carbons S.A Common Shares|N|OEC|N|100|N|OEC +OEF|iShares S&P 100 ETF|P|OEF|Y|100|N|OEF +OESX|Orion Energy Systems, Inc. Common Stock|A|OESX|N|100|N|OESX +OFC|Corporate Office Properties Trust Common Stock|N|OFC|N|100|N|OFC +OFC$L|Corporate Office Properties Trust Preferred Series L|N|OFCpL|N|100|N|OFC-L +OFG|OFG Bancorp Common Stock|N|OFG|N|100|N|OFG +OFG$A|OFG Bancorp Preferred Stock|N|OFGpA|N|100|N|OFG-A +OFG$B|OFG Bancorp 7.0% Non Cumulative Monthly Income Preferred Stock Series B|N|OFGpB|N|100|N|OFG-B +OFG$D|OFG Bancorp 7.125% Non-Cumulative Perpetual Preferred Stock. Series D|N|OFGpD|N|100|N|OFG-D +OGCP|Empire State Realty OP, L.P. Series 60 Operating Partnership Units Representing Limited Partnership Interests|P|OGCP|N|100|N|OGCP +OGE|OGE Energy Corporation Common Stock|N|OGE|N|100|N|OGE +OGEN|Oragenics, Inc. Common Stock|A|OGEN|N|100|N|OGEN +OGS|ONE Gas, Inc. Common Stock|N|OGS|N|100|N|OGS +OHI|Omega Healthcare Investors, Inc. Common Stock|N|OHI|N|100|N|OHI +OI|Owens-Illinois, Inc. Common Stock|N|OI|N|100|N|OI +OIA|Invesco Municipal Income Opportunities Trust Common Stock|N|OIA|N|100|N|OIA +OIBR|Oi S.A. American Depositary Shares (Each representing 1 Preferred Share)|N|OIBR|N|100|N|OIBR +OIBR.C|Oi S.A. American Depositary Shares, (Each representing 1 Common Share)|N|OIBR/C|N|100|N|OIBR.C +OIH|Market Vectors Oil Services ETF|P|OIH|Y|100|N|OIH +OII|Oceaneering International, Inc. Common Stock|N|OII|N|100|N|OII +OIL|Barclays Bank Plc iPath Exchange Traded Notes Linked to Goldman Sachs Crude Oil Total Return|P|OIL|N|100|N|OIL +OILT|Oiltanking Partners, L.P. Common Units Representing Limited Partnership Interests|N|OILT|N|100|N|OILT +OIS|Oil States International, Inc. Common Stock|N|OIS|N|100|N|OIS +OKE|ONEOK, Inc. Common Stock|N|OKE|N|100|N|OKE +OKS|ONEOK Partners, L.P. Common Stock|N|OKS|N|100|N|OKS +OLEM|iPath Pure Beta Crude Oil ETN|P|OLEM|N|100|N|OLEM +OLN|Olin Corporation Common Stock|N|OLN|N|100|N|OLN +OLO|PowerShares DB Crude Oil Long ETN|P|OLO|N|100|N|OLO +OLP|One Liberty Properties, Inc. Common Stock|N|OLP|N|100|N|OLP +OMAM|OM Asset Management plc Ordinary Shares|N|OMAM|N|100|N|OMAM +OMC|Omnicom Group Inc. Common Stock|N|OMC|N|100|N|OMC +OME|Omega Protein Corporation Common Stock|N|OME|N|100|N|OME +OMG|OM Group, Inc. Common Stock|N|OMG|N|100|N|OMG +OMI|Owens & Minor, Inc. Common Stock|N|OMI|N|100|N|OMI +OMN|OMNOVA Solutions Inc. Common Stock|N|OMN|N|100|N|OMN +ONDK|On Deck Capital, Inc. Common Stock|N|ONDK|N|100|N|ONDK +ONE|Higher One Holdings, Inc. Common Stock|N|ONE|N|100|N|ONE +ONEF|Russell Exchange Traded Funds Trust|P|ONEF|Y|100|N|ONEF +ONEK|SPDR Russell 1000 ETF|P|ONEK|Y|100|N|ONEK +ONG|iPath Pure Beta Energy ETN|P|ONG|N|100|N|ONG +ONP|Orient Paper, Inc. NEW Common Stock|A|ONP|N|100|N|ONP +ONVO|Organovo Holdings, Inc. Common Stock|A|ONVO|N|100|N|ONVO +OPK|OPKO Health Inc. Common Stock|N|OPK|N|100|N|OPK +OPWR|Opower, Inc. Common Stock|N|OPWR|N|100|N|OPWR +OPY|Oppenheimer Holdings, Inc. Class A Common Stock (DE)|N|OPY|N|100|N|OPY +ORA|Ormat Technologies, Inc. Common Stock|N|ORA|N|100|N|ORA +ORAN|Orange|N|ORAN|N|100|N|ORAN +ORB|Orbital Sciences Corporation Common Stock|N|ORB|N|100|N|ORB +ORC|Orchid Island Capital, Inc. Common Stock|N|ORC|N|100|N|ORC +ORCL|Oracle Corporation Common Stock|N|ORCL|N|100|N|ORCL +ORI|Old Republic International Corporation Common Stock|N|ORI|N|100|N|ORI +ORM|Owens Realty Mortgage, Inc. Common Stock|A|ORM|N|100|N|ORM +ORN|Orion Marine Group Inc Common|N|ORN|N|100|N|ORN +OSGB|Overseas Shipholding Group, Inc. COM CL B|A|OSGB|N|100|N|OSGB +OSK|Oshkosh Corporation (Holding Company)Common Stock|N|OSK|N|100|N|OSK +OSMS|Barclays OFI SteelPath MLP ETN|P|OSMS|N|100|N|OSMS +OUNZ|Merk Gold Trust ETV|P|OUNZ|Y|100|N|OUNZ +OUT|OUTFRONT Media Inc. Common Stock|N|OUT|N|100|N|OUT +OWW|Orbitz Worldwide, Inc. Common Stock|N|OWW|N|100|N|OWW +OXM|Oxford Industries, Inc. Common Stock|N|OXM|N|100|N|OXM +OXY|Occidental Petroleum Corporation Common Stock|N|OXY|N|100|N|OXY +OZM|Och-Ziff Capital Management Group LLC Class A Shares representing Class A limited liability company interests|N|OZM|N|100|N|OZM +P|Pandora Media, Inc. Common Stock|N|P|N|100|N|P +PAA|Plains All American Pipeline, L.P. Common Stock|N|PAA|N|100|N|PAA +PAC|Grupo Aeroportuario Del Pacifico, S.A. B. de C.V. Grupo Aeroportuario Del Pacifico, S.A. de C.V. (each representing 10 Series B shares)|N|PAC|N|100|N|PAC +PACD|Pacific Drilling S.A. Common Shares|N|PACD|N|100|N|PACD +PAF|PowerShares FTSE RAFI Asia Pacific ex-Japan Portfolio|P|PAF|Y|100|N|PAF +PAG|Penske Automotive Group, Inc. Common Stock|N|PAG|N|100|N|PAG +PAGP|Plains Group Holdings, L.P. Class A Shares representing limited partner interests|N|PAGP|N|100|N|PAGP +PAH|Platform Specialty Products Corporation Common Stock|N|PAH|N|100|N|PAH +PAI|Western Asset Income Fund Common Stock|N|PAI|N|100|N|PAI +PAL|North American Palladium, Ltd. Common Stock|A|PAL|N|100|N|PAL +PALL|ETFS Physical Palladium Shares|P|PALL|Y|100|N|PALL +PAM|Pampa Energia S.A. Pampa Energia S.A.|N|PAM|N|100|N|PAM +PANW|Palo Alto Networks, Inc. Common Stock|N|PANW|N|100|N|PANW +PAR|PAR Technology Corporation Common Stock|N|PAR|N|100|N|PAR +PARR|Par Petroleum Corporation. Common Stock|A|PARR|N|100|N|PARR +PAY|Verifone Systems, Inc. Common Stock|N|PAY|N|100|N|PAY +PAYC|Paycom Software, Inc. Common Stock|N|PAYC|N|100|N|PAYC +PB|Prosperity Bancshares, Inc. Common Stock|N|PB|N|100|N|PB +PBA|Pembina Pipeline Corp. Ordinary Shares (Canada)|N|PBA|N|100|N|PBA +PBD|PowerShares Global Clean Energy Portfolio|P|PBD|Y|100|N|PBD +PBE|PowerShares Dynamic Biotech &Genome|P|PBE|Y|100|N|PBE +PBF|PBF Energy Inc. Class A Common Stock|N|PBF|N|100|N|PBF +PBFX|PBF Logistics LP Common Units representing limited partner interests|N|PBFX|N|100|N|PBFX +PBH|Prestige Brand Holdings, Inc. Common Stock|N|PBH|N|100|N|PBH +PBI|Pitney Bowes Inc. Common Stock|N|PBI|N|100|N|PBI +PBI$A|Pitney Bowes Inc 5.25% Notes due 2022|N|PBIpA|N|100|N|PBI-A +PBI$B|Pitney Bowes Inc 6.70% Notes Due 2043|N|PBIpB|N|100|N|PBI-B +PBJ|PowerShares Dynamic Food & Beverage|P|PBJ|Y|100|N|PBJ +PBM|Pacific Booker Minerals Inc Ordinary Shares|A|PBM|N|100|N|PBM +PBP|PowerShares S&P 500 BuyWrite Portfolio|P|PBP|Y|100|N|PBP +PBR|Petroleo Brasileiro S.A.- Petrobras Common Stock|N|PBR|N|100|N|PBR +PBR.A|Petroleo Brasileiro S.A.- Petrobras American Depositary Shares|N|PBR/A|N|100|N|PBR.A +PBS|PowerShares Dynamic Media|P|PBS|Y|100|N|PBS +PBT|Permian Basin Royalty Trust Common Stock|N|PBT|N|100|N|PBT +PBW|PowerShares WilderHill Clean Energy Portfolio|P|PBW|Y|100|N|PBW +PBY|Pep Boys-Manny, Moe & Jack (The) Common Stock|N|PBY|N|100|N|PBY +PBYI|Puma Biotechnology Inc Common Stock|N|PBYI|N|100|N|PBYI +PCEF|PowerShares CEF Income Composite Portfolio|P|PCEF|Y|100|N|PCEF +PCF|Putnam High Income Securities Fund Common Stock|N|PCF|N|100|N|PCF +PCG|Pacific Gas & Electric Co. Common Stock|N|PCG|N|100|N|PCG +PCG$A|Pacific Gas & Electric Co. 6% Preferred Stock|A|PCGpA|N|100|N|PCG-A +PCG$B|Pacific Gas & Electric Co. 5 1/2% Preferred Stock|A|PCGpB|N|100|N|PCG-B +PCG$C|Pacific Gas & Electric Co. 5% 1st Preferred Stock|A|PCGpC|N|100|N|PCG-C +PCG$D|Pacific Gas & Electric Co. 5% 1st Red. Preferred Stock|A|PCGpD|N|100|N|PCG-D +PCG$E|Pacific Gas & Electric Co. 5% 1st A Preferred Stock|A|PCGpE|N|100|N|PCG-E +PCG$G|Pacific Gas & Electric Co. 4.80% 1st Preferred Stock|A|PCGpG|N|100|N|PCG-G +PCG$H|Pacific Gas & Electric Co. 4.50% 1st Preferred Stock|A|PCGpH|N|100|N|PCG-H +PCG$I|Pacific Gas & Electric Co. 4.36% 1st Preferred Stock|A|PCGpI|N|100|N|PCG-I +PCI|PIMCO Dynamic Credit Income Fund Common Shares of Beneficial Interest|N|PCI|N|100|N|PCI +PCK|Pimco California Municipal Income Fund II Common Shares of Beneficial Interest|N|PCK|N|100|N|PCK +PCL|Plum Creek Timber Company, Inc. Common Stock|N|PCL|N|100|N|PCL +PCM|PCM Fund, Inc. Common Stock|N|PCM|N|100|N|PCM +PCN|Pimco Corporate & Income Strategy Fund Common Stock|N|PCN|N|100|N|PCN +PCP|Precision Castparts Corporation Common Stock|N|PCP|N|100|N|PCP +PCQ|PIMCO California Municipal Income Fund Common Stock|N|PCQ|N|100|N|PCQ +PCY|PowerShares Emerging Markets Sovereign Debt Portfolio|P|PCY|Y|100|N|PCY +PDI|PIMCO Dynamic Income Fund Common Stock|N|PDI|N|100|N|PDI +PDM|Piedmont Office Realty Trust, Inc. Class A Common Stock|N|PDM|N|100|N|PDM +PDN|PowerShares FTSE RAFI Developed Markets ex-U.S. Small-Mid Portfolio|P|PDN|Y|100|N|PDN +PDP|PowerShares DWA Momentum Portfolio|P|PDP|Y|100|N|PDP +PDS|Precision Drilling Corporation Common Stock|N|PDS|N|100|N|PDS +PDT|John Hancock Premium Dividend Fund|N|PDT|N|100|N|PDT +PE|Parsley Energy, Inc. Class A Common Stock|N|PE|N|100|N|PE +PEB|Pebblebrook Hotel Trust Common Shares of Beneficial Interest|N|PEB|N|100|N|PEB +PEB$A|Pebblebrook Hotel Trust PFD SER A|N|PEBpA|N|100|N|PEB-A +PEB$B|Pebblebrook Hotel Trust Preferred Series B|N|PEBpB|N|100|N|PEB-B +PEB$C|Pebblebrook Hotel Trust 6.50% Series C Cumulative Redeemable Preferred Shares of Beneficial Interest|N|PEBpC|N|100|N|PEB-C +PED|Pedevco Corp. Common Stock|A|PED|N|100|N|PED +PEG|Public Service Enterprise Group Incorporated Common Stock|N|PEG|N|100|N|PEG +PEI|Pennsylvania Real Estate Investment Trust Common Stock|N|PEI|N|100|N|PEI +PEI$A|Pennsylvania Real Estate Investment Trust PFD sh CL A|N|PEIpA|N|100|N|PEI-A +PEI$B|Pennsylvania Real Estate Investment Trust Cumulative Redeemable Perpetual Preferred Shares Series B|N|PEIpB|N|100|N|PEI-B +PEJ|PowerShares Dynamic Leisure & Entertainment Portfolio|P|PEJ|Y|100|N|PEJ +PEK|Market Vectors ChinaAMC A-Share ETF|P|PEK|Y|100|N|PEK +PEO|Petroleum Resources Corporation Common Stock|N|PEO|N|100|N|PEO +PEP|Pepsico, Inc. Common Stock|N|PEP|N|100|N|PEP +PER|SandRidge Permian Trust Common Units of Benficial Interest|N|PER|N|100|N|PER +PERM|Global X Permanent ETF|P|PERM|Y|100|N|PERM +PES|Pioneer Energy Services Corp. Common Stk|N|PES|N|100|N|PES +PEX|ProShares Global Listed Private Equity ETF|Z|PEX|Y|100|N|PEX +PEY|PowerShares High Yield Dividend Achievers|P|PEY|Y|100|N|PEY +PEZ|PowerShares DWA Consumer Cyclicals Momentum Portfolio|P|PEZ|Y|100|N|PEZ +PF|Pinnacle Foods, Inc. Common Stock|N|PF|N|100|N|PF +PFD|Flaherty & Crumrine Preferred Income Fund Incorporated Common Stock|N|PFD|N|100|N|PFD +PFE|Pfizer, Inc. Common Stock|N|PFE|N|100|N|PFE +PFEM|PowerShares Fundamental Emerging Markets Local Debt Portfolio|P|PFEM|Y|100|N|PFEM +PFF|iShares US Preferred Stock ETF|P|PFF|Y|100|N|PFF +PFG|Principal Financial Group Inc Common Stock|N|PFG|N|100|N|PFG +PFG$B|Principal Financial Group, Inc. 6.518% Series B Non-Cumulative Perpetual Preferred Stock|N|PFGpB|N|100|N|PFG-B +PFH|Cabco Tr Jcp 7.625 Common Stock|N|PFH|N|100|N|PFH +PFI|PowerShares DWA Financial Momentum Portfolio|P|PFI|Y|100|N|PFI +PFIG|PowerShares Fundamental Investment Grade Corporate Bond Portfolio ETF|P|PFIG|Y|100|N|PFIG +PFK|Prudential Financial Inflation-Linked Retail Medium Linked Retail Medium-Term Notes due April 10, 2018|N|PFK|N|100|N|PFK +PFL|PIMCO Income Strategy Fund Shares of Beneficial Interest|N|PFL|N|100|N|PFL +PFM|PowerShares Dividend Achievers|P|PFM|Y|100|N|PFM +PFN|PIMCO Income Strategy Fund II|N|PFN|N|100|N|PFN +PFNX|Pfenex Inc. Common Stock|A|PFNX|N|100|N|PFNX +PFO|Flaherty & Crumrine Preferred Income Opportunity Fund Incorporated Common Stock|N|PFO|N|100|N|PFO +PFS|Provident Financial Services, Inc Common Stock|N|PFS|N|100|N|PFS +PFSI|PennyMac Financial Services, Inc. Class A Common Stock|N|PFSI|N|100|N|PFSI +PFX|Phoenix Companies, Inc. Phoenix Companies Inc 7.45% Pfd|N|PFX|N|100|N|PFX +PFXF|Market Vectors Preferred Securities ex Financials ETF|P|PFXF|Y|100|N|PFXF +PG|Procter & Gamble Company (The) Common Stock|N|PG|N|100|N|PG +PGAL|Global X FTSE Portugal 20 ETF|P|PGAL|Y|100|N|PGAL +PGD|iPath Asian and Gulf Currency Revaluation ETN Revaluation ETN|P|PGD|N|100|N|PGD +PGEM|Ply Gem Holdings, Inc. Common Stock|N|PGEM|N|100|N|PGEM +PGF|PowerShares Financial Preferred|P|PGF|Y|100|N|PGF +PGH|Pengrowth Energy Corporation|N|PGH|N|100|N|PGH +PGHY|PowerShares Global Short Term High Yield Bond Portfolio|P|PGHY|Y|100|N|PGHY +PGI|Premiere Global Services, Inc.|N|PGI|N|100|N|PGI +PGJ|PowerShares Golden Dragon China Portfolio|P|PGJ|Y|100|N|PGJ +PGM|iPath Bloomberg Platinum Subindex Total Return SM ETN|P|PGM|N|100|N|PGM +PGN|Paragon Offshore plc Ordinary Shares|N|PGN|N|100|N|PGN +PGP|Pimco Global Stocksplus & Income Fund Pimco Global StocksPlus & Income Fund Common Shares of Beneficial Interest|N|PGP|N|100|N|PGP +PGR|Progressive Corporation (The) Common Stock|N|PGR|N|100|N|PGR +PGRE|Paramount Group, Inc. Common Stock|N|PGRE|N|100|N|PGRE +PGX|PowerShares Preferred Portfolio|P|PGX|Y|100|N|PGX +PGZ|Principal Real Estate Income Fund Common Shares of Beneficial Interest|N|PGZ|N|100|N|PGZ +PH|Parker-Hannifin Corporation Common Stock|N|PH|N|100|N|PH +PHB|PowerShares High Yield Corporate Bond Portfolio|P|PHB|Y|100|N|PHB +PHD|Pioneer Floating Rate Trust Pioneer Floating Rate Trust Shares of Beneficial Interest|N|PHD|N|100|N|PHD +PHDG|PowerShares S&P 500 Downside Hedged Portfolio|P|PHDG|Y|100|N|PHDG +PHF|Pacholder High Yield Fund, Inc. Common Stock|A|PHF|N|100|N|PHF +PHG|Koninklijke Philips N.V. NY Registry Shares|N|PHG|N|100|N|PHG +PHH|PHH Corp Common Stock|N|PHH|N|100|N|PHH +PHI|Philippine Long Distance Telephone Company Sponsored ADR|N|PHI|N|100|N|PHI +PHK|Pimco High Income Fund Pimco High Income Fund|N|PHK|N|100|N|PHK +PHM|PulteGroup, Inc. Common Stock|N|PHM|N|100|N|PHM +PHO|PowerShares Water Resource Port|P|PHO|Y|100|N|PHO +PHT|Pioneer High Income Trust Common Shares of Beneficial Interest|N|PHT|N|100|N|PHT +PHX|Panhandle Oil and Gas Inc Common Stock|N|PHX|N|100|N|PHX +PHYS|Sprott Physical Gold Trust ETV|P|PHYS|Y|100|N|PHYS +PICB|PowerShares International Corporate Bond Portfolio|P|PICB|Y|100|N|PICB +PICK|iShaes MSCI Global Select Metals & Mining Producers Fund|P|PICK|Y|100|N|PICK +PID|PowerShares Intl Dividend Achievers|P|PID|Y|100|N|PID +PIE|PowerShares DWA Emerging Market Momentum Portfolio|P|PIE|Y|100|N|PIE +PII|Polaris Industries Inc. Common Stock|N|PII|N|100|N|PII +PIM|Putnam Master Intermediate Income Trust Common Stock|N|PIM|N|100|N|PIM +PIN|PowerShares India Portfolio|P|PIN|Y|100|N|PIN +PIO|PowerShares Global Water Portfolio|P|PIO|Y|100|N|PIO +PIP|PharmAthene, Inc Common Stock|A|PIP|N|100|N|PIP +PIR|Pier 1 Imports, Inc. Common Stock|N|PIR|N|100|N|PIR +PIY|Preferred Plus Trust (Ser CZN) Preferred Plus Trust Ser CZN-1 Tr Ctf 8.375% Maturity 10/01/2046|N|PIY|N|100|N|PIY +PIZ|PowerShares DWA Developed Market Momentum Portfolio|P|PIZ|Y|100|N|PIZ +PJC|Piper Jaffray Companies Common Stock|N|PJC|N|100|N|PJC +PJH|Prudential Financial, Inc. 5.75% Junior Subordinated Notes due 2052|N|PJH|N|100|N|PJH +PJP|PowerShares Dynamic Pharmaceuticals|P|PJP|Y|100|N|PJP +PJS|PreferredPlus Trust Ser FAR 1 Tr Ctf|N|PJS|N|100|N|PJS +PKB|PowerShares Dynamic Build & Construction|P|PKB|Y|100|N|PKB +PKD|Parker Drilling Company Common Stock|N|PKD|N|100|N|PKD +PKE|Park Electrochemical Corporation Common Stock|N|PKE|N|100|N|PKE +PKG|Packaging Corporation of America Common Stock|N|PKG|N|100|N|PKG +PKI|PerkinElmer, Inc. Common Stock|N|PKI|N|100|N|PKI +PKO|Pimco Income Opportunity Fund Common Shares of Beneficial Interest|N|PKO|N|100|N|PKO +PKW|PowerShares Buyback Achievers|P|PKW|Y|100|N|PKW +PKX|POSCO Common Stock|N|PKX|N|100|N|PKX +PKY|Parkway Properties, Inc. Common Stock|N|PKY|N|100|N|PKY +PL|Protective Life Corporation Common Stock|N|PL|N|100|N|PL +PL$B|Protective Life Corporation PLC Capital Trust V Trust Originated Preferred Securities (TOPRS)|N|PLpB|N|100|N|PL-B +PL$C|Protective Life Corporation 6.25% Subordinated Debentures due 2042|N|PLpC|N|100|N|PL-C +PL$E|Protective Life Corporation 6.00% Subordinated Debentures due 2042|N|PLpE|N|100|N|PL-E +PLD|ProLogis, Inc. Common Stock|N|PLD|N|100|N|PLD +PLG|Platinum Group Metals Ltd. Ordinary Shares (Canada)|A|PLG|N|100|N|PLG +PLL|Pall Corporation Common Stock|N|PLL|N|100|N|PLL +PLM|Polymet Mining Corporation Ordinary Shares (Canada)|A|PLM|N|100|N|PLM +PLND|Market Vectors Poland ETF|P|PLND|Y|100|N|PLND +PLOW|Douglas Dynamics, Inc. Common Stock|N|PLOW|N|100|N|PLOW +PLT|Plantronics, Inc. Common Stock|N|PLT|N|100|N|PLT +PLW|PowerShares 1-30 Treasury Ladder Portfolio|P|PLW|Y|100|N|PLW +PLX|Protalix BioTherapeutics, Inc. Common Stock|A|PLX|N|100|N|PLX +PM|Philip Morris International Inc Common Stock|N|PM|N|100|N|PM +PMC|Pharmerica Corporation Common Stock|N|PMC|N|100|N|PMC +PMF|PIMCO Municipal Income Fund Common Stock|N|PMF|N|100|N|PMF +PML|Pimco Municipal Income Fund II Common Shares of Beneficial Interest|N|PML|N|100|N|PML +PMM|Putnam Managed Municipal Income Trust Common Stock|N|PMM|N|100|N|PMM +PMO|Putnam Municipal Opportunities Trust Common Stock|N|PMO|N|100|N|PMO +PMR|PowerShares Dynamic Retail|P|PMR|Y|100|N|PMR +PMT|PennyMac Mortgage Investment Trust Common Shares of Beneficial Interest|N|PMT|N|100|N|PMT +PMX|PIMCO Municipal Income Fund III Common Shares of Beneficial Interest|N|PMX|N|100|N|PMX +PN|Patriot National, Inc. Common Stock|N|PN|N|100|N|PN +PNC|PNC Financial Services Group, Inc. (The) Common Stock|N|PNC|N|100|N|PNC +PNC$P|PNC Financial Services Group, Inc. (The) Depositary Shares Representing 1/4000th Perpetual Preferred Series P|N|PNCpP|N|100|N|PNC-P +PNC$Q|PNC Financial Services Group, Inc. (The) Depositary Shares Representing 1/4000th Perpetual Preferred Shares Series Q|N|PNCpQ|N|100|N|PNC-Q +PNC.W|PNC Financial Services Group, Inc. Warrant expiring December 31, 2018|N|PNC/WS|N|100|N|PNC+ +PNF|PIMCO New York Municipal Income Fund Common Stock|N|PNF|N|100|N|PNF +PNI|Pimco New York Municipal Income Fund II Common Shares of Beneficial Interest|N|PNI|N|100|N|PNI +PNK|Pinnacle Entertainment, Inc. Common Stock|N|PNK|N|100|N|PNK +PNM|PNM Resources, Inc. (Holding Co.) Common Stock|N|PNM|N|100|N|PNM +PNR|Pentair plc. Ordinary Share|N|PNR|N|100|N|PNR +PNTA|PennantPark Investment Corporation 6.25% Senior Notes due 2025|N|PNTA|N|100|N|PNTA +PNW|Pinnacle West Capital Corporation Common Stock|N|PNW|N|100|N|PNW +PNX|Phoenix Companies, Inc. (The) Common Stock|N|PNX|N|100|N|PNX +PNY|Piedmont Natural Gas Company, Inc. Common Stock|N|PNY|N|100|N|PNY +POL|PolyOne Corporation Common Stock|N|POL|N|100|N|POL +POM|PEPCO Holdings, Inc Common Stock|N|POM|N|100|N|POM +POR|Portland General Electric Co Common Stock|N|POR|N|100|N|POR +POST|Post Holdings, Inc. Common Stock|N|POST|N|100|N|POST +POT|Potash Corporation of Saskatchewan Inc. Common Stock|N|POT|N|100|N|POT +POWR|PowerSecure International, Inc. Common Stock|N|POWR|N|100|N|POWR +PPA|PowerShares Aerospace & Defense|P|PPA|Y|100|N|PPA +PPG|PPG Industries, Inc. Common Stock|N|PPG|N|100|N|PPG +PPH|Market Vectors Pharmaceutical ETF|P|PPH|Y|100|N|PPH +PPL|PP&L Corporation Common Stock|N|PPL|N|100|N|PPL +PPLT|ETFS Physical Platinum Shares|P|PPLT|Y|100|N|PPLT +PPO|Polypore International Inc Common Stock|N|PPO|N|100|N|PPO +PPP|Primero Mining Corp. New Common Shares (Canada)|N|PPP|N|100|N|PPP +PPR|Voya Prime Rate Trust Shares of Beneficial Interest|N|PPR|N|100|N|PPR +PPS|Post Properties, Inc. Common Stock|N|PPS|N|100|N|PPS +PPS$A|Post Properties, Inc. Preferred Stock|N|PPSpA|N|100|N|PPS-A +PPT|Putnam Premier Income Trust Common Stock|N|PPT|N|100|N|PPT +PPX|PPL Capital Funding, Inc. 2013 Series B Junior Subordinated Notes due 2073|N|PPX|N|100|N|PPX +PQ|Petroquest Energy Inc Common Stock|N|PQ|N|100|N|PQ +PRA|ProAssurance Corporation Common Stock|N|PRA|N|100|N|PRA +PRB|Market Vectors Pre-refunded Municipal Index ETF|P|PRB|Y|100|N|PRB +PRE|PartnerRe Ltd. Common Stock|N|PRE|N|100|N|PRE +PRE$D|PartnerRe Ltd. Preferred Series D 6.5% (Bermuda)|N|PREpD|N|100|N|PRE-D +PRE$E|PartnerRe Ltd. PFD SER E (Bermuda)|N|PREpE|N|100|N|PRE-E +PRE$F|PartnerRe Ltd. Redeemable Preferred Shares Series F (Bermuda)|N|PREpF|N|100|N|PRE-F +PRF|Powershares FTSE RAFI US 1000 Portfolio|P|PRF|Y|100|N|PRF +PRGO|Perrigo Company plc Ordinary Shares|N|PRGO|N|100|N|PRGO +PRH|Prudential Financial, Inc. 5.70% Junior Subordinated Notes due 2053|N|PRH|N|100|N|PRH +PRI|Primerica, Inc. Common Stock|N|PRI|N|100|N|PRI +PRK|Park National Corporation Common Stock|A|PRK|N|100|N|PRK +PRLB|Proto Labs, Inc. Common stock|N|PRLB|N|100|N|PRLB +PRN|PowerShares DWA Industrials Momentum Portfolio|P|PRN|Y|100|N|PRN +PRO|PROS Holdings, Inc. Common Stock|N|PRO|N|100|N|PRO +PRU|Prudential Financial, Inc. Common Stock|N|PRU|N|100|N|PRU +PRY|Prospect Capital Corporation 6.95% Senior Notes due 2022|N|PRY|N|100|N|PRY +PSA|Public Storage Common Stock|N|PSA|N|100|N|PSA +PSA$A|Public Storage Depositary Shares each representing 1/1,000 of a 5.875% Cumulative Preferred SBI, Series A|N|PSApA|N|100|N|PSA-A +PSA$O|Public Storage Depositary Shares Representing 1/1000% Cumulative Pfd Sh Ben Int Series O|N|PSApO|N|100|N|PSA-O +PSA$P|Public Storage DEPOSITARY SHS REPSTG % CUMULATIVE PFD SHS BEN INT (SER P)|N|PSApP|N|100|N|PSA-P +PSA$Q|Public Storage DEPOSITARY SHS REPSTG 1/1000TH PFD SHS BEN INT SER Q|N|PSApQ|N|100|N|PSA-Q +PSA$R|Public Storage Depository Sh Repstg 1/1000th Pfd Ser R|N|PSApR|N|100|N|PSA-R +PSA$S|Public Storage DEP SH REPSTG PFD SH BEN INT SER S|N|PSApS|N|100|N|PSA-S +PSA$T|Public Storage Depository Shares Representing 1/1000 Pfd Shares Beneficial Interest Series T|N|PSApT|N|100|N|PSA-T +PSA$U|Public Storage Depositary Shares Representing 1/1000 Preferred Benerficial Interest Series U|N|PSApU|N|100|N|PSA-U +PSA$V|Public Storage Dep Shs Repstg 1/1000th Pfd Sh Ben Int Ser V|N|PSApV|N|100|N|PSA-V +PSA$W|Public Storage Depositary Shares Representing 1/1000 Preferred Shares of Benficial Interest Series W|N|PSApW|N|100|N|PSA-W +PSA$X|Public Storage Depositary Shares Representing 1/1000th Cumulative Preferred Shares Beneficial Interest Series X|N|PSApX|N|100|N|PSA-X +PSA$Y|Public Storage Dep Shs Repstg 1/1000th Pfd Sh Ben Int Ser Y|N|PSApY|N|100|N|PSA-Y +PSA$Z|Public Storage Dep Shs Representing 1/1000th Pfd Sh Ben Int Ser Z|N|PSApZ|N|100|N|PSA-Z +PSB|PS Business Parks, Inc. Common Stock|N|PSB|N|100|N|PSB +PSB$R|PS Business Parks, Inc. Depositary Shares, Each representing 1/1,000 of a share of 6.875% Cumulative Preferred stock, Series R, $0.01 par|N|PSBpR|N|100|N|PSB-R +PSB$S|PS Business Parks, Inc. Depositary Shares, each representing 1/1,000 of a share of 6.45% Cumulative Preferred Stock|N|PSBpS|N|100|N|PSB-S +PSB$T|PS Business Parks, Inc. Depositary Shares Representing 1/1000th Preferred Series T|N|PSBpT|N|100|N|PSB-T +PSB$U|PS Business Parks, Inc. Dep Shs Repstg 1/1000 Pfd Ser U|N|PSBpU|N|100|N|PSB-U +PSB$V|PS Business Parks, Inc. Depositary Shares Represting 1/1000th Shares Cumulative Preferred Stock Series V|N|PSBpV|N|100|N|PSB-V +PSF|Cohen & Steers Select Preferred and Income Fund, Inc. Common Stock|N|PSF|N|100|N|PSF +PSG|Performance Sports Group Ltd. Ordinary Shares (Canada)|N|PSG|N|100|N|PSG +PSI|PowerShares Dynamic Semiconductors|P|PSI|Y|100|N|PSI +PSJ|PowerShares Dynamic Software|P|PSJ|Y|100|N|PSJ +PSK|SPDR Wells Fargo Preferred Stock ETF|P|PSK|Y|100|N|PSK +PSL|PowerShares DWA Consumer Staples Momentum Portfolio|P|PSL|Y|100|N|PSL +PSLV|Sprott Physical Silver Trust ETV|P|PSLV|Y|100|N|PSLV +PSO|Pearson, Plc Common Stock|N|PSO|N|100|N|PSO +PSP|PowerShares Listed Private Equity|P|PSP|Y|100|N|PSP +PSQ|ProShares Short QQQ|P|PSQ|Y|100|N|PSQ +PSR|PowerShares Active U.S. Real Estate Fund|P|PSR|Y|100|N|PSR +PST|ProShares UltraShort Lehman 7-10 Year Treasury|P|PST|Y|100|N|PST +PSX|Phillips 66 Common Stock|N|PSX|N|100|N|PSX +PSXP|Phillips 66 Partners LP Common Units representing limited partner interest in the Partnership|N|PSXP|N|100|N|PSXP +PT|Portugal Telecom SGPS, S.A . Common Stock|N|PT|N|100|N|PT +PTF|PowerShares DWA Technology Momentum Portfolio|P|PTF|Y|100|N|PTF +PTH|PowerShares DWA Healthcare Momentum Portfolio|P|PTH|Y|100|N|PTH +PTM|E-TRACS USB Bloomberg Commodity Index Exchange Traded Notes E-TRACS UBS Bloomberg CMCI Platinum ETN|P|PTM|N|100|N|PTM +PTN|Palatin Technologies, Inc. Common Stock|A|PTN|N|100|N|PTN +PTP|Platinum Underwriters Holdings, Ltd|N|PTP|N|100|N|PTP +PTR|PetroChina Company Limited Common Stock|N|PTR|N|100|N|PTR +PTY|Pimco Corporate & Income Opportunity Fund|N|PTY|N|100|N|PTY +PUI|PowerShares DWA Utilities Momentum Portfolio|P|PUI|Y|100|N|PUI +PUK|Prudential Public Limited Company Common Stock|N|PUK|N|100|N|PUK +PUK$|Prudential Public Limited Company 6.75% Perpetual Subordinated Captial Security|N|PUKp|N|100|N|PUK- +PUK$A|Prudential Public Limited Company 6.50% Perpetual Subordinated Capital Securities Exchangeable at the Issuer's Option Into Non-Cumulative Dollar Denominated Preference Shares|N|PUKpA|N|100|N|PUK-A +PUW|PowerShares WilderHill Progressive Energy Portfolio|P|PUW|Y|100|N|PUW +PVA|Penn Virginia Corporation Common Stock|N|PVA|N|100|N|PVA +PVCT|Provectus Biopharmaceuticals, Inc.|A|PVCT|N|100|N|PVCT +PVG|Pretium Resources, Inc. Ordinary Shares (Canada)|N|PVG|N|100|N|PVG +PVH|PVH Corp. Common Stock|N|PVH|N|100|N|PVH +PVI|PowerShares VRDO Tax Free Weekly Portfolio|P|PVI|Y|100|N|PVI +PVTD|PrivateBancorp, Inc. 7.125% Subordinated Debentures due 2042|N|PVTD|N|100|N|PVTD +PW|Power REIT (MD) Common Stock|A|PW|N|100|N|PW +PW$A|Power REIT 7.75% Series A Cumulative Perpetual Preferred Stock|A|PWpA|N|100|N|PW-A +PWB|PowerShares Dynamic LargeCap Growth|P|PWB|Y|100|N|PWB +PWC|PowerShares XTF: Dynamic Market Portfolio|P|PWC|Y|100|N|PWC +PWE|Penn West Petroleum Ltd|N|PWE|N|100|N|PWE +PWR|Quanta Services, Inc. Common Stock|N|PWR|N|100|N|PWR +PWV|PowerShares Dynamic LargeCap Value|P|PWV|Y|100|N|PWV +PWZ|PowerShares California AMT-Free Municipal Bond Portfolio|P|PWZ|Y|100|N|PWZ +PX|Praxair, Inc. Common Stock|N|PX|N|100|N|PX +PXD|Pioneer Natural Resources Company Common Stock|N|PXD|N|100|N|PXD +PXE|PowerShares Dynamic Energy E&P|P|PXE|Y|100|N|PXE +PXF|PowerShares FTSE RAFI Developed Markets ex-U.S. Portfolio|P|PXF|Y|100|N|PXF +PXH|PowerShares FTSE RAFI Emerging Markets Portfolio|P|PXH|Y|100|N|PXH +PXI|PowerShares DWA Energy Momentum Portfolio|P|PXI|Y|100|N|PXI +PXJ|PowerShares Dynamic Oil Services|P|PXJ|Y|100|N|PXJ +PXLC|PowerShares Fundamental Pure Large Core Portfolio|P|PXLC|Y|100|N|PXLC +PXLG|PowerShares Fundamental Pure Large Growth Portfolio|P|PXLG|Y|100|N|PXLG +PXLV|PowerShares Fundamental Pure Large Value Portfolio|P|PXLV|Y|100|N|PXLV +PXMC|PowerShares Fundamental Pure Mid Core Portfolio|P|PXMC|Y|100|N|PXMC +PXMG|PowerShares Fundamental Pure Mid Growth Portfolio|P|PXMG|Y|100|N|PXMG +PXMV|PowerShares Fundamental Pure Mid Value Portfolio|P|PXMV|Y|100|N|PXMV +PXQ|PowerShares Dynamic Networking|P|PXQ|Y|100|N|PXQ +PXR|PowerShares Global Emerging Markets Infrastructure|P|PXR|Y|100|N|PXR +PXSC|PowerShares Fundamental Pure Small Core Portfolio|P|PXSC|Y|100|N|PXSC +PXSG|PowerShares Fundamental Pure Small Growth Portfolio|P|PXSG|Y|100|N|PXSG +PXSV|PowerShares Fundamental Pure Small Value Portfolio|P|PXSV|Y|100|N|PXSV +PYB|PPlus Trust Series GSG-2 Tr Ctf Cl A|N|PYB|N|100|N|PYB +PYN|PIMCO New York Municipal Income Fund III Common Shares of Beneficial Interest|N|PYN|N|100|N|PYN +PYS|Merrill Lynch Depositor Inc PPlus Tr Ser RRD-1 Tr Ctf Cl A|N|PYS|N|100|N|PYS +PYT|PPlus Tr GSC-2 Tr Ctf Fltg Rate|N|PYT|N|100|N|PYT +PYZ|PowerShares DWA Basic Materials Momentum Portfolio|P|PYZ|Y|100|N|PYZ +PZA|PowerShares National AMT-Free Municipal Bond Portfolio|P|PZA|Y|100|N|PZA +PZB|Merrill Lynch Depositor, Inc. Merrill Lynch Depositor, Inc. PPLUS Class A 6.7% Callable Trust Certificates, Series LTD-1 (Issues by Limited Brands, Inc.)|N|PZB|N|100|N|PZB +PZC|PIMCO California Municipal Income Fund III Common Shares of Beneficial Interest|N|PZC|N|100|N|PZC +PZD|PowerShares Cleantech Portfolio|P|PZD|Y|100|N|PZD +PZE|Petrobras Argentina S.A. ADS|N|PZE|N|100|N|PZE +PZG|Paramount Gold and Silver Corp. Common Stock|A|PZG|N|100|N|PZG +PZI|PowerShares Zacks Micro Cap|P|PZI|Y|100|N|PZI +PZN|Pzena Investment Management Inc Class A Common Stock|N|PZN|N|100|N|PZN +PZT|PowerShares New York AMT-Free Municipal Bond Portfolio|P|PZT|Y|100|N|PZT +Q|Quintiles Transnational Holdings Inc. Common Stock|N|Q|N|100|N|Q +QAI|IQ Hedge MultiIQ Hedge Multi-Strategy Tracker ETF|P|QAI|Y|100|N|QAI +QAUS|SPDR MSCI Australia Quality Mix ETF|P|QAUS|Y|100|N|QAUS +QCAN|SPDR MSCI Canada Quality Mix ETF|P|QCAN|Y|100|N|QCAN +QDEF|FlexShares Quality Dividend Defensive Index Fund|P|QDEF|Y|100|N|QDEF +QDEM|Market Vectors MSCI Emerging Markets Quality Dividend ETF|P|QDEM|Y|100|N|QDEM +QDEU|SPDR MSCI Germany Quality Mix ETF|P|QDEU|Y|100|N|QDEU +QDF|FlexShares Quality Dividend Index Fund|P|QDF|Y|100|N|QDF +QDXU|Market Vectors MSCI International Quality Dividend ETF|P|QDXU|Y|100|N|QDXU +QDYN|FlexShares Quality Dynamic Index Fund|P|QDYN|Y|100|N|QDYN +QEFA|SPDR EURO STOXX Small Cap ETF|P|QEFA|Y|100|N|QEFA +QEH|AdvisorShares QAM Equity Hedge|P|QEH|Y|100|N|QEH +QEM|Market Vectors MSCI Emerging Markets Quality ETF|P|QEM|Y|100|N|QEM +QEMM|SPDR MSCI Emerging Markets Quality Mix ETF|P|QEMM|Y|100|N|QEMM +QEP|QEP Resources, Inc. Common Stock|N|QEP|N|100|N|QEP +QEPM|QEP Midstream Partners, LP Common Units representing Limited Partner Interests|N|QEPM|N|100|N|QEPM +QESP|SPDR MSCI Spain Quality Mix ETF|P|QESP|Y|100|N|QESP +QGBR|SPDR MSCI United Kingdom Quality Mix ETF|P|QGBR|Y|100|N|QGBR +QID|ProShares UltraShort QQQ|P|QID|Y|100|N|QID +QIHU|Qihoo 360 Technology Co. Ltd. American Depositary Shares, every 2 of which representing three Class A Ordinary Shares|N|QIHU|N|100|N|QIHU +QJPN|SPDR MSCI Japan Quality Mix ETF|P|QJPN|Y|100|N|QJPN +QKOR|SPDR MSCI South Korea Quality Mix ETF|P|QKOR|Y|100|N|QKOR +QLD|ProShares Ultra QQQ|P|QLD|Y|100|N|QLD +QLTA|iShares Aaa A Rated Corporate Bond ETF|P|QLTA|Y|100|N|QLTA +QLTB|iShares Baa Ba Rated Corporate Bond ETF|Z|QLTB|Y|100|N|QLTB +QLTC|iShares B Ca Rated Corporate Bond ETF|Z|QLTC|Y|100|N|QLTC +QMEX|SPDR MSCI Mexico Quality Mix ETF|P|QMEX|Y|100|N|QMEX +QMN|IQ Hedge Market Neutral Tracker ETF|P|QMN|Y|100|N|QMN +QQQE|Direxion NASDAQ-100 Equal Weighted Index Shares|P|QQQE|Y|100|N|QQQE +QRM|Quest Rare Minerals Ltd Common Shares (Canada)|A|QRM|N|100|N|QRM +QSR|Restaurant Brands International Inc. Common Shares|N|QSR|N|100|N|QSR +QTM|Quantum Corporation Common Stock|N|QTM|N|100|N|QTM +QTS|QTS Realty Trust, Inc. Class A Common Stock|N|QTS|N|100|N|QTS +QTWN|SPDR MSCI Taiwan Quality Mix ETF|P|QTWN|Y|100|N|QTWN +QTWO|Q2 Holdings, Inc. Common Stock|N|QTWO|N|100|N|QTWO +QUAD|Quad Graphics, Inc Class A Common Stock|N|QUAD|N|100|N|QUAD +QUAL|iShares MSCI USA Quality Factor ETF|P|QUAL|Y|100|N|QUAL +QVAL|ValueShares U.S. Quantitative Value ETF ETF|Z|QVAL|Y|100|N|QVAL +QWLD|SPDR MSCI World Quality Mix ETF|P|QWLD|Y|100|N|QWLD +QXUS|Market Vectors MSCI Int'l Qlty|P|QXUS|Y|100|N|QXUS +R|Ryder System, Inc. Common Stock|N|R|N|100|N|R +RAD|Rite Aid Corporation Common Stock|N|RAD|N|100|N|RAD +RAI|Reynolds American Inc Common Stock|N|RAI|N|100|N|RAI +RALS|ProShares RAFI Long Short ETF|P|RALS|Y|100|N|RALS +RALY|Rally Software Development Corp. Common Stock|N|RALY|N|100|N|RALY +RAS|RAIT Financial Trust New Common Shares of Beneficial Interest|N|RAS|N|100|N|RAS +RAS$A|RAIT Financial Trust 7.75% Series A Cumulative Redeemable Preferred Shares of Beneficial Interest|N|RASpA|N|100|N|RAS-A +RAS$B|RAIT Financial Trust 8.375% Series B Cumulative Redeemable Preferred Shares of Beneficial Interest|N|RASpB|N|100|N|RAS-B +RAS$C|RAIT Financial Trust 8.875% Series C Cumulative Redeemable Preferred Shares of Beneficial Interest|N|RASpC|N|100|N|RAS-C +RATE|Bankrate, Inc. Common Stock|N|RATE|N|100|N|RATE +RAVI|FlexShares Ready Access Variable Income Fund|P|RAVI|Y|100|N|RAVI +RAX|Rackspace Hosting, Inc Common Stock|N|RAX|N|100|N|RAX +RBA|Ritchie Bros. Auctioneers Incorporated Common Stock|N|RBA|N|100|N|RBA +RBC|Regal Beloit Corporation Common Stock|N|RBC|N|100|N|RBC +RBL|SPDR S&P Russia ETF|P|RBL|Y|100|N|RBL +RBS|Royal Bank of Scotland Group Plc New (The) ADS|N|RBS|N|100|N|RBS +RBS$E|RBS Capital Funding Trust V|N|RBSpE|N|100|N|RBS-E +RBS$F|Royal Bank of Scotland Group Plc (The) Preferred Stock|N|RBSpF|N|100|N|RBS-F +RBS$G|RBS Capital Funding Trust VII|N|RBSpG|N|100|N|RBS-G +RBS$H|Royal Bank of Scotland Group Plc (The) Preferred Stock|N|RBSpH|N|100|N|RBS-H +RBS$I|RBS Capital Funding Trust VI|N|RBSpI|N|100|N|RBS-I +RBS$L|Royal Bank of Scotland Group Plc (The) ADR representing One Non-cumulative Dollar 5.75% Preference Shares, Series L|N|RBSpL|N|100|N|RBS-L +RBS$M|Royal Bank of Scotland Group Plc (The) ADS Series M|N|RBSpM|N|100|N|RBS-M +RBS$N|Royal Bank of Scotland Group Plc (The) Royal Bank of Scotland Group PLC (The) American Depositary Shares (each representing One Non-Cumulative Dollar Preferenced Shares, Series N)|N|RBSpN|N|100|N|RBS-N +RBS$P|Royal Bank of Scotland Group Plc (The) ADR representing Preferred Shares Series P|N|RBSpP|N|100|N|RBS-P +RBS$Q|Royal Bank of Scotland Group Plc (The) ADR repstg Pref Shs Ser Q|N|RBSpQ|N|100|N|RBS-Q +RBS$R|Royal Bank of Scotland Group Plc (The) ADR repstg USD Pfd Shs Ser R (United Kingdom)|N|RBSpR|N|100|N|RBS-R +RBS$S|Royal Bank of Scotland Group Plc (The) Sponsored ADR Repstg Pref Ser S (United Kingdom)|N|RBSpS|N|100|N|RBS-S +RBS$T|Royal Bank of Scotland Group Plc (The) Sponsored ADR Representing Pfef shs ser T (United Kingdom)|N|RBSpT|N|100|N|RBS-T +RBY|Rubicon Minerals Corporation Ordinary Shares (Canada)|A|RBY|N|100|N|RBY +RCAP|RCS CAPITAL CORPORATION Common Stock|N|RCAP|N|100|N|RCAP +RCD|Guggenheim S&P 500 Equal Weight Consumer Discretionary ETF|P|RCD|Y|100|N|RCD +RCG|RENN Fund, Inc Common Stock|A|RCG|N|100|N|RCG +RCI|Rogers Communication, Inc. Common Stock|N|RCI|N|100|N|RCI +RCL|Royal Caribbean Cruises Ltd. Common Stock|N|RCL|N|100|N|RCL +RCS|PIMCO Strategic Income Fund, Inc.|N|RCS|N|100|N|RCS +RDC|Rowan Companies plc Class A Ordinary Shares|N|RDC|N|100|N|RDC +RDIV|RevenueShares Ultra Dividend Fund|P|RDIV|Y|100|N|RDIV +RDN|Radian Group Inc. Common Stock|N|RDN|N|100|N|RDN +RDS.A|Royal Dutch Shell PLC Royal Dutch Shell American Depositary Shares (Each representing two Class A Ordinary Shares)|N|RDS/A|N|100|N|RDS.A +RDS.B|Royal Dutch Shell PLC Royal Dutch Shell PLC American Depositary Shares (Each representing two Class B Ordinary Shares)|N|RDS/B|N|100|N|RDS.B +RDY|Dr. Reddy's Laboratories Ltd Common Stock|N|RDY|N|100|N|RDY +RE|Everest Re Group, Ltd. Common Stock|N|RE|N|100|N|RE +REE|Rare Element Resources Ltd. Ordinary Shares (Canada)|A|REE|N|100|N|REE +REED|Reeds, Inc. Common Stock|A|REED|N|100|N|REED +REET|iShares Trust iShares Global REIT ETF|P|REET|Y|100|N|REET +REG|Regency Centers Corporation Common Stock|N|REG|N|100|N|REG +REG$F|Regency Centers Corporation Cumulative Red Preferred Series 6%|N|REGpF|N|100|N|REG-F +REG$G|Regency Centers Corporation Pfd Ser 7%|N|REGpG|N|100|N|REG-G +REI|Ring Energy, Inc. Common Stock|A|REI|N|100|N|REI +REK|ProShares Short Real Estate|P|REK|Y|100|N|REK +REM|iShares Mortgage Real Estate Capped ETF|P|REM|Y|100|N|REM +REMX|Market Vectors Rare Earth Strategic Metals ETF|P|REMX|Y|100|N|REMX +REN|Resolute Energy Corporation Comon Stock|N|REN|N|100|N|REN +RENN|Renren Inc. American Depositary Shares, each representing three Class A ordinary shares|N|RENN|N|100|N|RENN +RES|RPC, Inc. Common Stock|N|RES|N|100|N|RES +RESI|Altisource Residential Corporation Common Stock|N|RESI|N|100|N|RESI +RETL|Direxion Daily Retail Bull 3X Shares ETF|P|RETL|Y|100|N|RETL +REV|Revlon, Inc. New Common Stock|N|REV|N|100|N|REV +REW|ProShares UltraShort Technology|P|REW|Y|100|N|REW +REX|REX American Resources Corporation|N|REX|N|100|N|REX +REXR|Rexford Industrial Realty, Inc. Common Stock|N|REXR|N|100|N|REXR +REZ|iShares Residential Real Estate Capped ETF|P|REZ|Y|100|N|REZ +RF|Regions Financial Corporation Common Stock|N|RF|N|100|N|RF +RF$A|Regions Financial Corporation Depositary Shares Representing 1/40th Perpetual Preferred Series A|N|RFpA|N|100|N|RF-A +RF$B|Regions Financial Corporation Depositary Shares Representing 1/40th Perpetual Preferred Series B|N|RFpB|N|100|N|RF-B +RFG|Guggenheim S&P Midcap 400 Pure Growth ETF|P|RFG|Y|100|N|RFG +RFI|Cohen & Steers Total Return Realty Fund, Inc. Common Stock|N|RFI|N|100|N|RFI +RFP|Resolute Forest Products Inc. Common Stock|N|RFP|N|100|N|RFP +RFT|RAIT Financial Trust 7.625% Senior Notes due 2024|N|RFT|N|100|N|RFT +RFTA|RAIT Financial Trust 7.125% Senior Notes due 2019|N|RFTA|N|100|N|RFTA +RFV|Guggenheim S&P Midcap 400 Pure Value ETF|P|RFV|Y|100|N|RFV +RGA|Reinsurance Group of America, Incorporated Common Stock|N|RGA|N|100|N|RGA +RGC|Regal Entertainment Group Class A Common Stock|N|RGC|N|100|N|RGC +RGI|Guggenheim S&P 500 Equal Weight Industrials ETF|P|RGI|Y|100|N|RGI +RGP|Regency Energy Partners LP Common Units Representing Limited Partner Interests|N|RGP|N|100|N|RGP +RGR|Sturm, Ruger & Company, Inc. Common Stock|N|RGR|N|100|N|RGR +RGRA|RBS Rogers Enhanced Agriculture ETN|P|RGRA|N|100|N|RGRA +RGRC|RBS Rogers Enhanced Commodity ETN|P|RGRC|N|100|N|RGRC +RGRE|RBS Rogers Enhanced Energy ETN|P|RGRE|N|100|N|RGRE +RGRI|RBS Rogers Enhanced Industrial Metals ETN|P|RGRI|N|100|N|RGRI +RGRP|RBS Rogers Enhanced Precious Metals ETN|P|RGRP|N|100|N|RGRP +RGS|Regis Corporation Common Stock|N|RGS|N|100|N|RGS +RGT|Royce Global Value Trust, Inc. Common Stock|N|RGT|N|100|N|RGT +RH|Restoration Hardware Holdings Inc. Common Stock|N|RH|N|100|N|RH +RHI|Robert Half International Inc. Common Stock|N|RHI|N|100|N|RHI +RHP|Ryman Hospitality Properties, Inc. (REIT)|N|RHP|N|100|N|RHP +RHS|Guggenheim S&P 500 Equal Weight Consumer Staples ETF|P|RHS|Y|100|N|RHS +RHT|Red Hat, Inc. Common Stock|N|RHT|N|100|N|RHT +RIC|Richmont Mines, Inc. Common Stock|A|RIC|N|100|N|RIC +RICE|Rice Energy Inc. Common Stock|N|RICE|N|100|N|RICE +RIF|RMR Real Estate Income Fund Common Shares of Beneficial Interest|A|RIF|N|100|N|RIF +RIG|Transocean Ltd (Switzerland) Common Stock|N|RIG|N|100|N|RIG +RIGP|Transocean Partners LLC Common Units Representing Limited Liability Company Interests|N|RIGP|N|100|N|RIGP +RIGS|RiverFront Strategic Income Fund|P|RIGS|Y|100|N|RIGS +RINF|ProShares 30 Year TIPS TYS Spread|P|RINF|Y|100|N|RINF +RING|iShares MSCI Global Gold Miners Fund|P|RING|Y|100|N|RING +RIO|Rio Tinto Plc Common Stock|N|RIO|N|100|N|RIO +RIOM|Rio Alto Mining Limited Common Shares (Canada)|N|RIOM|N|100|N|RIOM +RIT|LMP Real Estate Income Fund Inc Common Stock|N|RIT|N|100|N|RIT +RJA|AB Svensk Ekportkredit (Swedish Export Credit Corporation) ELEMENTS Linked to the Rogers International Commodity Index - Agriculture Total Return Structured Product|P|RJA|N|100|N|RJA +RJD|Raymond James Financial, Inc. 6.90% Senior Notes Due 2042|N|RJD|N|100|N|RJD +RJF|Raymond James Financial, Inc. Common Stock|N|RJF|N|100|N|RJF +RJI|AB Svensk Ekportkredit (Swedish Export Credit Corporation) ELEMENTS Linked to the Rogers International Commodity Index - Total Return Structured Product|P|RJI|N|100|N|RJI +RJN|AB Svensk Ekportkredit (Swedish Export Credit Corporation) ELEMENTS Linked to the Rogers International Commodity Index - Energy Total Return Structured Product|P|RJN|N|100|N|RJN +RJZ|AB Svensk Ekportkredit (Swedish Export Credit Corporation) ELEMENTS Linked to the Rogers International Commodity Index - Metals Total Return Structured Product|P|RJZ|N|100|N|RJZ +RKT|Rock-Tenn Company Common Stock|N|RKT|N|100|N|RKT +RKUS|Ruckus Wireless, Inc. Common Stock|N|RKUS|N|100|N|RKUS +RL|Ralph Lauren Corporation Common Stock|N|RL|N|100|N|RL +RLD|RealD Inc Common Stock|N|RLD|N|100|N|RLD +RLGT|Radiant Logistics, Inc. Common Stock|A|RLGT|N|100|N|RLGT +RLGT$A|Radiant Logistics, Inc. 9.75% Series A Cumulative Redeemable Perpetual Preferred Stock|A|RLGTpA|N|100|N|RLGT-A +RLGY|Realogy Holdings Corp. Common Stock|N|RLGY|N|100|N|RLGY +RLH|Red Lions Hotels Corporation Common Stock|N|RLH|N|100|N|RLH +RLH$A|Red Lion Hotels Capital Trust Red Lion Hotels Capital Trust - Trust Preferred Securities|N|RLHpA|N|100|N|RLH-A +RLI|RLI Corp. Common Stock|N|RLI|N|100|N|RLI +RLJ|RLJ Lodging Trust Common Shares of Beneficial Interest $0.01 par value|N|RLJ|N|100|N|RLJ +RLY|SPDR SSgA Multi Asset Real Return ETF|P|RLY|Y|100|N|RLY +RM|Regional Management Corp. Common Stock|N|RM|N|100|N|RM +RMAX|RE/MAX Holdings, Inc. Class A Common Stock|N|RMAX|N|100|N|RMAX +RMD|ResMed Inc. Common Stock|N|RMD|N|100|N|RMD +RMP|Rice Midstream Partners LP Common Units representing limited partner interests|N|RMP|N|100|N|RMP +RMT|Royce Micro-Cap Trust, Inc. Common Stock|N|RMT|N|100|N|RMT +RNDY|Roundy's, Inc. Common Stock|N|RNDY|N|100|N|RNDY +RNE|Morgan Stanley Eastern Europe Fund, Inc. Common Stock|N|RNE|N|100|N|RNE +RNF|Rentech Nitrogen Partners, L.P. Common Units representing limited partner interests|N|RNF|N|100|N|RNF +RNG|Ringcentral, Inc. Class A Common Stock|N|RNG|N|100|N|RNG +RNN|Rexahn Pharmaceuticals, Inc. Common Stock|A|RNN|N|100|N|RNN +RNO|Rhino Resource Partners LP Common Units representing limited partnership interests|N|RNO|N|100|N|RNO +RNP|Cohen & Steers Reit and Preferred Income Fund Inc Common Shares|N|RNP|N|100|N|RNP +RNR|RenaissanceRe Holdings Ltd. Common Stock|N|RNR|N|100|N|RNR +RNR$C|RenaissanceRe Holdings Ltd. 6.08% Series C Preference Shares|N|RNRpC|N|100|N|RNR-C +RNR$E|RenaissanceRe Holdings Ltd. 5.375% Series E Preference Shares|N|RNRpE|N|100|N|RNR-E +RODI|Barclays Return on Disability ETN|P|RODI|N|100|N|RODI +ROG|Rogers Corporation Common Stock|N|ROG|N|100|N|ROG +ROK|Rockwell Automation, Inc. Common Stock|N|ROK|N|100|N|ROK +ROL|Rollins, Inc. Common Stock|N|ROL|N|100|N|ROL +ROLA|iPath Long Extended Russell 1000 TR Index ETN|P|ROLA|N|100|N|ROLA +ROM|ProShares Ultra Technology|P|ROM|Y|100|N|ROM +ROOF|IQ US Real Estate Small Cap ETF|P|ROOF|Y|100|N|ROOF +ROP|Roper Industries, Inc. Common Stock|N|ROP|N|100|N|ROP +RORO|SPDR SSgA Risk Aware ETF|P|RORO|Y|100|N|RORO +ROX|Castle Brands, Inc. Castle Brands, Inc. Common Stock|A|ROX|N|100|N|ROX +ROYT|Pacific Coast Oil Trust Units of Beneficial Interest|N|ROYT|N|100|N|ROYT +RPAI|Retail Properties of America, Inc. Class A Common Stock|N|RPAI|N|100|N|RPAI +RPAI$A|Retail Properties of America, Inc. Pfd Ser A %|N|RPAIpA|N|100|N|RPAI-A +RPG|Guggenheim S&P 500 Pure Growth ETF|P|RPG|Y|100|N|RPG +RPI|Roberts Realty Investors, Inc. Common Stock|A|RPI|N|100|N|RPI +RPM|RPM International Inc. Common Stock|N|RPM|N|100|N|RPM +RPT|Ramco-Gershenson Properties Trust Common Stock|N|RPT|N|100|N|RPT +RPT$D|Ramco-Gershenson Properties Trust 7.25% PERP PFD CONV SHS BEN INT SER D|N|RPTpD|N|100|N|RPT-D +RPV|Guggenheim S&P 500 Pure Value ETF|P|RPV|Y|100|N|RPV +RPX|Columbia Large Cap Growth ETF|P|RPX|Y|100|N|RPX +RQI|Cohen & Steers Quality Income Realty Fund Inc Common Shares|N|RQI|N|100|N|RQI +RRC|Range Resources Corporation Common Stock|N|RRC|N|100|N|RRC +RRF|WisdomTree Global Real Return Fund|P|RRF|Y|100|N|RRF +RRMS|Rose Rock Midstream, L.P. Common Units Representing Limited Partner Interests|N|RRMS|N|100|N|RRMS +RRTS|Roadrunner Transportation Systems, Inc Common Stock|N|RRTS|N|100|N|RRTS +RS|Reliance Steel & Aluminum Co. Common Stock|N|RS|N|100|N|RS +RSCO|SPDR Russell Small Cap Completeness ETF|P|RSCO|Y|100|N|RSCO +RSE|Rouse Properties, Inc. Common Stock|N|RSE|N|100|N|RSE +RSG|Republic Services, Inc. Common Stock|N|RSG|N|100|N|RSG +RSH|Radioshack Corporation Common Stock|N|RSH|N|100|N|RSH +RSO|Resource Capital Corp. Resource Capital Corp. Common Stock|N|RSO|N|100|N|RSO +RSO$A|Resource Capital Corp. 8.50% Series A Cumulative Redeemable Preferred Stock|N|RSOpA|N|100|N|RSO-A +RSO$B|Resource Capital Corp. Pfd Ser B|N|RSOpB|N|100|N|RSO-B +RSO$C|Resource Capital Corp. Preferred Series C|N|RSOpC|N|100|N|RSO-C +RSP|Guggenheim S&P 500 Equal Weight ETF|P|RSP|Y|100|N|RSP +RSPP|RSP Permian, Inc. Common Stock|N|RSPP|N|100|N|RSPP +RST|Rosetta Stone Rosetta Stone, Inc.|N|RST|N|100|N|RST +RSX|Market Vectors TR Russia ETF|P|RSX|Y|100|N|RSX +RSXJ|Market Vectors Russia Small-Cap ETF|P|RSXJ|Y|100|N|RSXJ +RT|Ruby Tuesday, Inc. Common Stock|N|RT|N|100|N|RT +RTEC|Rudolph Technologies, Inc. Common Stock|N|RTEC|N|100|N|RTEC +RTH|Market Vectors Retail ETF|P|RTH|Y|100|N|RTH +RTI|RTI International Metals, Inc. Common Stock|N|RTI|N|100|N|RTI +RTLA|iPath Long Extended Russell 2000 TR Index ETN|P|RTLA|N|100|N|RTLA +RTM|Guggenheim S&P 500 Equal Weight Materials ETF|P|RTM|Y|100|N|RTM +RTN|Raytheon Company Common Stock|N|RTN|N|100|N|RTN +RTR|RevenueShares ADR|P|RTR|Y|100|N|RTR +RUBI|The Rubicon Project, Inc. Common Stock|N|RUBI|N|100|N|RUBI +RUK|Reed Elsevier NV PLC New ADS|N|RUK|N|100|N|RUK +RUSL|Direxion Daily Russia Bull 3x Shares|P|RUSL|Y|100|N|RUSL +RUSS|Direxion Daily Russia Bear 3x Shares|P|RUSS|Y|100|N|RUSS +RVM|Revett Mining Company, Inc. (DE)|A|RVM|N|100|N|RVM +RVNU|Deutsche X-Trackers Municipal Infrastructure Revenue Bond ETF|P|RVNU|Y|100|N|RVNU +RVP|Retractable Technologies, Inc. Common Stock|A|RVP|N|100|N|RVP +RVT|Royce Value Trust, Inc. Common Stock|N|RVT|N|100|N|RVT +RWC|RELM Wireless Corporation Common Stock|A|RWC|N|100|N|RWC +RWG|Columbia Select Large Cap Growth ETF|P|RWG|Y|100|N|RWG +RWJ|RevenueShares Small Cap|P|RWJ|Y|100|N|RWJ +RWK|RevenueShares Mid Cap|P|RWK|Y|100|N|RWK +RWL|RevenueShares Large Cap|P|RWL|Y|100|N|RWL +RWM|ProShares Short Russell2000|P|RWM|Y|100|N|RWM +RWO|SPDR DJ Wilshire Global Real Estate ETF|P|RWO|Y|100|N|RWO +RWR|SPDR DJ Wilshire REIT ETF|P|RWR|Y|100|N|RWR +RWT|Redwood Trust, Inc. Common Stock|N|RWT|N|100|N|RWT +RWV|RevenueShares Navallier Overall A-100|P|RWV|Y|100|N|RWV +RWW|RevenueShares Financials Sector|P|RWW|Y|100|N|RWW +RWX|SPDR DJ Wilshire Intl Real Estate|P|RWX|Y|100|N|RWX +RWXL|ETRACS Monthly Pay 2XLeveraged Dow Jones International Real Estate ETN|P|RWXL|N|100|N|RWXL +RXD|ProShares UltraShort Health Care|P|RXD|Y|100|N|RXD +RXI|iShares Global Consumer Discretionary ETF|P|RXI|Y|100|N|RXI +RXL|ProShares Ultra Health Care|P|RXL|Y|100|N|RXL +RXN|Rexnord Corporation Common Stock|N|RXN|N|100|N|RXN +RY|Royal Bank Of Canada Common Stock|N|RY|N|100|N|RY +RYAM|Rayonier Advanced Materials Inc. Common Stock|N|RYAM|N|100|N|RYAM +RYE|Guggenheim S&P 500 Equal Weight Energy ETF|P|RYE|Y|100|N|RYE +RYF|Guggenheim S&P 500 Equal Weight Financials ETF|P|RYF|Y|100|N|RYF +RYH|Guggenheim S&P 500 Equal Weight Healthcare ETF|P|RYH|Y|100|N|RYH +RYI|Ryerson Holding Corporation Common Stock|N|RYI|N|100|N|RYI +RYJ|Guggenheim Raymond James SB-1 Equity Fund|P|RYJ|Y|100|N|RYJ +RYL|Ryland Group, Inc. (The) Common Stock|N|RYL|N|100|N|RYL +RYN|Rayonier Inc. REIT Common Stock|N|RYN|N|100|N|RYN +RYT|Guggenheim S&P 500 Equal Weight Technology ETF|P|RYT|Y|100|N|RYT +RYU|Guggenheim S&P 500 Equal Weight Utilities ETF|P|RYU|Y|100|N|RYU +RZA|Reinsurance Group of America, Incorporated 6.20% Fixed-to-Floating Rate Subordinated Debentures due 2042|N|RZA|N|100|N|RZA +RZG|Guggenheim S&P Smallcap 600 Pure Growth ETF|P|RZG|Y|100|N|RZG +RZV|Guggenheim S&P Smallcap 600 Pure Value ETF|P|RZV|Y|100|N|RZV +S|Sprint Corporation Common Stock|N|S|N|100|N|S +SA|Seabridge Gold, Inc. Ordinary Shares (Canada)|N|SA|N|100|N|SA +SAA|ProShares Ultra SmallCap600|P|SAA|Y|100|N|SAA +SAGG|Direxion Daily Total Bond Market Bear 1X Shares|P|SAGG|Y|100|N|SAGG +SAH|Sonic Automotive, Inc. Common Stock|N|SAH|N|100|N|SAH +SAIC|SCIENCE APPLICATIONS INTERNATIONAL CORPORATION Common Stock|N|SAIC|N|100|N|SAIC +SALT|Scorpio Bulkers Inc. Common Stock|N|SALT|N|100|N|SALT +SAM|Boston Beer Company, Inc. (The) Common Stock|N|SAM|N|100|N|SAM +SAN|Banco Santander, S.A. Sponsored ADR (Spain)|N|SAN|N|100|N|SAN +SAN$A|Banco Santander, S.A. 6.80% Non-cumulative Series 4 Guaranteed Preferred Securities|N|SANpA|N|100|N|SAN-A +SAN$B|Santander Finance Preferred SA Unipersonal Floating Rate Non-cumulative Series 6 Guaranteed Preferred Securities|N|SANpB|N|100|N|SAN-B +SAN$C|Banco Santander, S.A. 6.50% Non-Cumulative Series 5 Guaranteed Preferred Securities|N|SANpC|N|100|N|SAN-C +SAN$I|Banco Santander Central Hispano, S.A. Santander Finance Preferred S.A. Unipersonal 6.41% Non-Cumulative Guaranteed Preferred Securities, Series 1|N|SANpI|N|100|N|SAN-I +SAND|Sandstorm Gold Ltd. Ordinary Shares (Canada)|A|SAND|N|100|N|SAND +SAP|SAP SE ADS|N|SAP|N|100|N|SAP +SAQ|Saratoga Investment Corp 7.50% Notes due 2020|N|SAQ|N|100|N|SAQ +SAR|Saratoga Investment Corp New|N|SAR|N|100|N|SAR +SARA|Saratoga Resources, Inc. Common Stock|A|SARA|N|100|N|SARA +SB|Safe Bulkers, Inc Common Stock ($0.001 par value)|N|SB|N|100|N|SB +SB$B|Safe Bulkers, Inc 8.00% Series B Cumulative Redeemable Perpetual Preferred Shares|N|SBpB|N|100|N|SB-B +SB$C|Safe Bulkers, Inc Cumulative Redeemable Perpetual Preferred Series C (Marshall Islands)|N|SBpC|N|100|N|SB-C +SB$D|Safe Bulkers, Inc Perpetual Preferred Series D (Marshall Islands)|N|SBpD|N|100|N|SB-D +SBB|ProShares Short SmallCap600|P|SBB|Y|100|N|SBB +SBGL|Sibanye Gold Limited American Depositary Shares (Each representing four ordinary shares)|N|SBGL|N|100|N|SBGL +SBH|Sally Beauty Holdings, Inc. (Name to be changed from Sally Holdings, Inc.) Common Stock|N|SBH|N|100|N|SBH +SBI|Western Asset Intermediate Muni Fund Inc Common Stock|A|SBI|N|100|N|SBI +SBIO|ALPS Medical Breakthroughs ETF|P|SBIO|Y|100|N|SBIO +SBM|Short Basic Materials|P|SBM|Y|100|N|SBM +SBNA|Scorpio Tankers Inc. 6.75% Senior Notes due 2020|N|SBNA|N|100|N|SBNA +SBNB|Scorpio Tankers Inc. 7.50% Senior Notes Due 2017|N|SBNB|N|100|N|SBNB +SBND|PowerShares DB 3X Short 25 Year Treasury Bond ETN|P|SBND|N|100|N|SBND +SBR|Sabine Royalty Trust Common Stock|N|SBR|N|100|N|SBR +SBS|Companhia de saneamento Basico Do Estado De Sao Paulo - Sabesp American Depositary Shares (Each repstg 250 Common Shares)|N|SBS|N|100|N|SBS +SBV|iPath Pure Beta Broad Commodity ETN|P|SBV|N|100|N|SBV +SBW|Western Asset Worldwide Income Fund Inc. Common Stock|N|SBW|N|100|N|SBW +SBY|Silver Bay Realty Trust Corp. Common Stock|N|SBY|N|100|N|SBY +SC|Santander Consumer USA Holdings Inc. Common Stock|N|SC|N|100|N|SC +SCC|ProShares UltraShort Consumer Services|P|SCC|Y|100|N|SCC +SCCO|Southern Copper Corporation Common Stock|N|SCCO|N|100|N|SCCO +SCD|LMP Capital and Income Fund Inc. Common Stock|N|SCD|N|100|N|SCD +SCE$B|Southern California Edison Company 4.08% Preferred Stock|A|SCEpB|N|100|N|SCE-B +SCE$C|Southern California Edison Company 4.24% Preferred Stock|A|SCEpC|N|100|N|SCE-C +SCE$D|Southern California Edison Company 4.32% Preferred Stock|A|SCEpD|N|100|N|SCE-D +SCE$E|Southern California Edison Company 4.78% Preferred Stock|A|SCEpE|N|100|N|SCE-E +SCE$F|Southern California Edison Trust I Trust Preferred Securities|N|SCEpF|N|100|N|SCE-F +SCE$G|SCE Trust II Trust Preferred Securities|N|SCEpG|N|100|N|SCE-G +SCE$H|SCE Trust III Fixed/Floating Rate Trust Preference Securities|N|SCEpH|N|100|N|SCE-H +SCG|SCANA Corporation Common Stock|N|SCG|N|100|N|SCG +SCHA|Schwab U.S. Small-Cap ETF|P|SCHA|Y|100|N|SCHA +SCHB|Schwab U.S. Broad Market ETF|P|SCHB|Y|100|N|SCHB +SCHC|Schwab International Small-Cap Equity ETF|P|SCHC|Y|100|N|SCHC +SCHD|Schwab US Dividend Equity ETF|P|SCHD|Y|100|N|SCHD +SCHE|Schwab Emerging Markets Equity ETF|P|SCHE|Y|100|N|SCHE +SCHF|Schwab International Equity ETF|P|SCHF|Y|100|N|SCHF +SCHG|Schwab U.S. Large-Cap Growth ETF|P|SCHG|Y|100|N|SCHG +SCHH|Schwab U.S. REIT ETF|P|SCHH|Y|100|N|SCHH +SCHM|Schwab U.S. Mid Cap ETF|P|SCHM|Y|100|N|SCHM +SCHO|Schwab Short-Term U.S. Treasury ETF|P|SCHO|Y|100|N|SCHO +SCHP|Schwab U.S. TIPs ETF|P|SCHP|Y|100|N|SCHP +SCHR|Schwab Intermediate-Term U.S. Treasury ETF|P|SCHR|Y|100|N|SCHR +SCHV|Schwab U.S. Large-Cap Value ETF|P|SCHV|Y|100|N|SCHV +SCHW|Charles Schwab Corporation (The) Common Stock|N|SCHW|N|100|N|SCHW +SCHW$B|Charles Schwab Corporation Depositary Shares Representing 1/40th Int Sh Non Cumulative Preferred Stock Series B|N|SCHWpB|N|100|N|SCHW-B +SCHX|Schwab U.S. Large-Cap ETF|P|SCHX|Y|100|N|SCHX +SCHZ|Schwab US Aggregate Bond ETF|P|SCHZ|Y|100|N|SCHZ +SCI|Service Corporation International Common Stock|N|SCI|N|100|N|SCI +SCIF|Market Vectors India Small-Cap Index ETF|P|SCIF|Y|100|N|SCIF +SCIN|EGShares India Small Cap ETF|P|SCIN|Y|100|N|SCIN +SCJ|iShares MSCI Japan Sm Cap|P|SCJ|Y|100|N|SCJ +SCL|Stepan Company Common Stock|N|SCL|N|100|N|SCL +SCM|Stellus Capital Investment Corporation Common Stock|N|SCM|N|100|N|SCM +SCO|ProShares UltraShort Bloomberg Crude Oil|P|SCO|Y|100|N|SCO +SCPB|SPDR Barclays Short Term Corporate Bond ETF|P|SCPB|Y|100|N|SCPB +SCQ|Stellus Capital Investment Corporation 6.50% Notes due 2019|N|SCQ|N|100|N|SCQ +SCS|Steelcase Inc. Common Stock|N|SCS|N|100|N|SCS +SCTO|Global X JPMorgan US Sector Rotator Index ETF|P|SCTO|Y|100|N|SCTO +SCU|Scana Corporation SCANA CORPORATION 2009 Series A 7.70% Enhanced Junior Subordinated Notes|N|SCU/CL|N|100|N|SCU* +SCX|L.S. Starrett Company (The) Common Stock|N|SCX|N|100|N|SCX +SCZ|iShares MSCI EAFE Small-Cap ETF|P|SCZ|Y|100|N|SCZ +SD|Sandridge Energy Inc. Common Stock|N|SD|N|100|N|SD +SDA|Bank of America Corporation Market Index Target Term Securities Linked to the Dow Jones Industrial Average|P|SDA|N|100|N|SDA +SDD|ProShares UltraShort SmallCap600|P|SDD|Y|100|N|SDD +SDIV|Global X SuperDividend ETF|P|SDIV|Y|100|N|SDIV +SDLP|Seadrill Partners LLC Common Units Representing Limited Liability Company Interests|N|SDLP|N|100|N|SDLP +SDOG|ALPS Sector Dividend Dogs ETF|P|SDOG|Y|100|N|SDOG +SDOW|UltraPro Short Dow30|P|SDOW|Y|100|N|SDOW +SDP|ProShares UltraShort Utilities|P|SDP|Y|100|N|SDP +SDPI|Superior Drilling Products, Inc. Common Stock|A|SDPI|N|100|N|SDPI +SDR|SandRidge Mississippian Trust II Common Units representing Beneficial Interests|N|SDR|N|100|N|SDR +SDRL|Seadrill Limited Ordinary Shares (Bermuda)|N|SDRL|N|100|N|SDRL +SDS|ProShares UltraShort S&P500|P|SDS|Y|100|N|SDS +SDT|SandRidge Mississippian Trust I Common Units of Beneficial Interest|N|SDT|N|100|N|SDT +SDY|SPDR S&P Dividend ETF|P|SDY|Y|100|N|SDY +SDYL|ETRACS Monthly Pay 2xLeveraged S&P Dividend ETN|P|SDYL|N|100|N|SDYL +SE|Spectra Energy Corp Common Stock|N|SE|N|100|N|SE +SEA|Guggenheim Shipping ETF|P|SEA|Y|100|N|SEA +SEAS|SeaWorld Entertainment, Inc. Common Stock|N|SEAS|N|100|N|SEAS +SEB|Seaboard Corporation Common Stock|A|SEB|N|1|N|SEB +SEE|Sealed Air Corporation Common Stock|N|SEE|N|100|N|SEE +SEF|ProShares Short Financials|P|SEF|Y|100|N|SEF +SEM|Select Medical Holdings Corporation Common Stock|N|SEM|N|100|N|SEM +SEMG|Semgroup Corporation Class A Common Stock|N|SEMG|N|100|N|SEMG +SEP|Spectra Energy Partners, LP Common Units representing Limited Partner Interests|N|SEP|N|100|N|SEP +SERV|ServiceMaster Global Holdings, Inc. Common Stock|N|SERV|N|100|N|SERV +SF|Stifel Financial Corporation Common Stock|N|SF|N|100|N|SF +SFE|Safeguard Scientifics, Inc. New Common Stock|N|SFE|N|100|N|SFE +SFG|StanCorp Financial Group, Inc. Common Stock|N|SFG|N|100|N|SFG +SFL|Ship Finance International Limited|N|SFL|N|100|N|SFL +SFLA|iPath Long Extended S&P 500 TR Index ETN|P|SFLA|N|100|N|SFLA +SFN|Stifel Financial Corporation 5.375% Senior Notes due December 2022|N|SFN|N|100|N|SFN +SFS|Smart & Final Stores, Inc. Common Stock|N|SFS|N|100|N|SFS +SFUN|SouFun Holdings Limited American Depositary Shares (Each representing Four Class A Ordinary Shares, HK$1.00 par value)|N|SFUN|N|100|N|SFUN +SFY|Swift Energy Company (Holding Company) Common Stock|N|SFY|N|100|N|SFY +SGA|Saga Communications, Inc. New Class A Common Stock|A|SGA|N|100|N|SGA +SGAR|iPath Pure Beta Sugar ETN|P|SGAR|N|100|N|SGAR +SGB|Southwest Georgia Financial Corporation Common Stock|A|SGB|N|100|N|SGB +SGDM|Sprott Gold Miners ETF|P|SGDM|Y|100|N|SGDM +SGF|Aberdeen Singapore Fund, Inc. Common Stock|N|SGF|N|100|N|SGF +SGG|iPath Bloomberg Sugar Subindex Total Return Sm Index ETN|P|SGG|N|100|N|SGG +SGL|Strategic Global Income Fund, Inc. Common Stock|N|SGL|N|100|N|SGL +SGM|Stonegate Mortgage Corporation Common Stock|N|SGM|N|100|N|SGM +SGOL|ETFS Physical Swiss Gold Shares|P|SGOL|Y|100|N|SGOL +SGU|Star Gas Partners, L.P. Common Stock|N|SGU|N|100|N|SGU +SGY|Stone Energy Corporation Common Stock|N|SGY|N|100|N|SGY +SGZA|Selective Insurance Group, Inc. 5.875% Senior Notes due 2043|N|SGZA|N|100|N|SGZA +SH|ProShares Short S&P500|P|SH|Y|100|N|SH +SHG|Shinhan Financial Group Co Ltd American Depositary Shares|N|SHG|N|100|N|SHG +SHI|SINOPEC Shangai Petrochemical Company, Ltd. Common Stock|N|SHI|N|100|N|SHI +SHLX|Shell Midstream Partners, L.P. Common Units representing Limited Partner Interests|N|SHLX|N|100|N|SHLX +SHM|SPDR Nuveen Barclays Short Term Municipal Bond ETF|P|SHM|Y|100|N|SHM +SHN|Bank of America Corporation Market Index Target Term Securities (MITTS) Linked to the Dow Jones Industrial Average|P|SHN|N|100|N|SHN +SHO|Sunstone Hotel Investors, Inc. Sunstone Hotel Investors, Inc. Common Shares|N|SHO|N|100|N|SHO +SHO$D|Sunstone Hotel Investors, Inc. 8.0% Series D Cumulative Redeemable Preferred Stock|N|SHOpD|N|100|N|SHO-D +SHV|iShares Short Treasury Bond ETF|P|SHV|Y|100|N|SHV +SHW|Sherwin-Williams Company (The) Common Stock|N|SHW|N|100|N|SHW +SHY|iShares 1-3 Year Treasury Bond ETF|P|SHY|Y|100|N|SHY +SHYD|Market Vectors Short High-Yield Municipal Index ETF|P|SHYD|Y|100|N|SHYD +SHYG|iShares 0-5 Year High Yield Corporate Bond ETF|P|SHYG|Y|100|N|SHYG +SID|Companhia Siderurgica Nacional S.A. Common Stock|N|SID|N|100|N|SID +SIF|SIFCO Industries, Inc. Common Stock|A|SIF|N|100|N|SIF +SIG|Signet Jewelers Limited Common Shares|N|SIG|N|100|N|SIG +SIJ|ProShares UltraShort Industrials|P|SIJ|Y|100|N|SIJ +SIL|Global X Silver Miners ETF|P|SIL|Y|100|N|SIL +SILJ|PureFunds ISE Junior Silver (Small cap Miners/Explorers)|P|SILJ|Y|100|N|SILJ +SIM|Grupo Simec, S.A.B. de C.V. American Depositary Shares|A|SIM|N|100|N|SIM +SIPE|SPDR Barclays 0-5 Year TIPS ETF|P|SIPE|Y|100|N|SIPE +SIR|Select Income REIT Common Shares of Beneficial Interest|N|SIR|N|100|N|SIR +SIVR|ETFS Physical Silver Shares Trust ETF|P|SIVR|Y|100|N|SIVR +SIX|Six Flags Entertainment Corporation New Common Stock|N|SIX|N|100|N|SIX +SIZ|QuantShares U.S. Market Neutral Size Fund ETF|P|SIZ|Y|100|N|SIZ +SIZE|iShares MSCI USA Size Factor|P|SIZE|Y|100|N|SIZE +SJB|ProShares Short High Yield|P|SJB|Y|100|N|SJB +SJI|South Jersey Industries, Inc. Common Stock|N|SJI|N|100|N|SJI +SJM|J.M. Smucker Company (The) New Common Stock|N|SJM|N|100|N|SJM +SJNK|SPDR Barclays Short Term High Yield Bond ETF|P|SJNK|Y|100|N|SJNK +SJR|Shaw Communications Inc. Common Stock|N|SJR|N|100|N|SJR +SJT|San Juan Basin Royalty Trust Common Stock|N|SJT|N|100|N|SJT +SJW|SJW Corporation Common Stock|N|SJW|N|100|N|SJW +SKF|ProShares UltraShort Financials|P|SKF|Y|100|N|SKF +SKH|Skilled Healthcare Group, Inc. Common Stock|N|SKH|N|100|N|SKH +SKM|SK Telecom Co., Ltd. Common Stock|N|SKM|N|100|N|SKM +SKT|Tanger Factory Outlet Centers, Inc. Common Stock|N|SKT|N|100|N|SKT +SKX|Skechers U.S.A., Inc. Common Stock|N|SKX|N|100|N|SKX +SKY|Skyline Corporation Common Stock|A|SKY|N|100|N|SKY +SLB|Schlumberger N.V. Common Stock|N|SLB|N|100|N|SLB +SLCA|U.S. Silica Holdings, Inc. Common Stock|N|SLCA|N|100|N|SLCA +SLD|Sutherland Asset Management Corporation Common Stock|N|SLD|N|100|N|SLD +SLF|Sun Life Financial Inc. Common Stock|N|SLF|N|100|N|SLF +SLG|SL Green Realty Corporation Common Stock|N|SLG|N|100|N|SLG +SLG$I|SL Green Realty Corporation Preferred Series I|N|SLGpI|N|100|N|SLG-I +SLH|Solera Holdings, Inc. Solera Holdings, Inc. Common Stock|N|SLH|N|100|N|SLH +SLI|SL Industries, Inc. Common Stock (DE)|A|SLI|N|100|N|SLI +SLQD|iShares 0-5 Year Investment Grade Corporate Bond ETF|P|SLQD|Y|100|N|SLQD +SLRA|Solar Capital Ltd. 6.75% Senior Notes due 2042|N|SLRA|N|100|N|SLRA +SLTB|Scorpio Bulkers Inc. 7.50% Senior Notes due 2019|N|SLTB|N|100|N|SLTB +SLV|iShares Silver Trust|P|SLV|Y|100|N|SLV +SLVP|iShares MSCI Global Silver Miners Fund|P|SLVP|Y|100|N|SLVP +SLW|Silver Wheaton Corp Common Shares (Canada)|N|SLW|N|100|N|SLW +SLX|Market Vectors Steel Index ETF Fund|P|SLX|Y|100|N|SLX +SLY|SPDR S&P 600 Small Cap ETF (based on S&P SmallCap 600 Index -- symbol SML)|P|SLY|Y|100|N|SLY +SLYG|SPDR S&P 600 Small Cap Growth ETF (based on S&P SmallCap 600 Growth Index --symbol CGK)|P|SLYG|Y|100|N|SLYG +SLYV|SPDR S&P 600 Small Cap Value ETF (based on S&P SmallCap Value Index--symbol--CVK|P|SLYV|Y|100|N|SLYV +SM|SM Energy Company Common Stock|N|SM|N|100|N|SM +SMB|Market Vectors Short Municipal Index ETF|P|SMB|Y|100|N|SMB +SMDD|UltraPro Short MidCap400|P|SMDD|Y|100|N|SMDD +SMEZ|SPDR EURO STOXX Small Cap ETF|P|SMEZ|Y|100|N|SMEZ +SMFG|Sumitomo Mitsui Financial Group Inc Unsponsored American Depositary Shares (Japan)|N|SMFG|N|100|N|SMFG +SMG|Scotts Miracle-Gro Company (The) Common Stock|N|SMG|N|100|N|SMG +SMH|Market Vectors Semiconductor ETF|P|SMH|Y|100|N|SMH +SMI|Semiconductor Manufacturing International Corporation ADR|N|SMI|N|100|N|SMI +SMIN|Ishares MSCI India Small Cap ETF|Z|SMIN|Y|100|N|SMIN +SMK|ProShares UltraShort MSCI Mexico Capped IMI|P|SMK|Y|100|N|SMK +SMLL|Direxiion Daily Small Cap Bull 2X Shares|P|SMLL|Y|100|N|SMLL +SMLP|Summit Midstream Partners, LP Common Units Representing Limited Partner Interests|N|SMLP|N|100|N|SMLP +SMLV|SPDR Russell 2000 Low Volatility|P|SMLV|Y|100|N|SMLV +SMM|Salient Midstream Common Shares of Beneficial Interest|N|SMM|N|100|N|SMM +SMMU|Short Term Municipal Bond Active Exchange-Traded Fund|P|SMMU|Y|100|N|SMMU +SMN|ProShares UltraShort Basic Materials|P|SMN|Y|100|N|SMN +SMP|Standard Motor Products, Inc. Common Stock|N|SMP|N|100|N|SMP +SMU|Bank of America Corporation MITTS Linked to S&P 500|P|SMU|N|100|N|SMU +SN|Sanchez Energy Corporation Common Stock|N|SN|N|100|N|SN +SNA|Snap-On Incorporated Common Stock|N|SNA|N|100|N|SNA +SNE|Sony Corporation Common Stock|N|SNE|N|100|N|SNE +SNH|Senior Housing Properties Trust Common Stock|N|SNH|N|100|N|SNH +SNHN|Senior Housing Properties Trust 5.625% Senior Notes due 2042|N|SNHN|N|100|N|SNHN +SNI|Scripps Networks Interactive, Inc Common Class A|N|SNI|N|100|N|SNI +SNLN|Highland/iBoxx Senior Loan ETF|P|SNLN|Y|100|N|SNLN +SNN|Smith & Nephew SNATS, Inc. Common Stock|N|SNN|N|100|N|SNN +SNOW|Intrawest Resorts Holdings, Inc. Common Stock|N|SNOW|N|100|N|SNOW +SNP|China Petroleum & Chemical Corporation Common Stock|N|SNP|N|100|N|SNP +SNR|New Senior Investment Group Inc. Common Stock|N|SNR|N|100|N|SNR +SNV|Synovus Financial Corp. Common Stock|N|SNV|N|100|N|SNV +SNV$C|Synovus Financial Corp. Perp Pfd Ser C Fxd To Fltg|N|SNVpC|N|100|N|SNV-C +SNX|Synnex Corporation Common Stock|N|SNX|N|100|N|SNX +SNY|Sanofi American Depositary Shares (Each repstg one-half of one ordinary share)|N|SNY|N|100|N|SNY +SO|Southern Company (The) Common Stock|N|SO|N|100|N|SO +SOIL|Global X Fertilizers/Potash ETF|P|SOIL|Y|100|N|SOIL +SOL|Renesola Ltd. Common Shares of Beneficial Interest|N|SOL|N|100|N|SOL +SON|Sonoco Products Company Common Stock|N|SON|N|100|N|SON +SOR|Source Capital, Inc. Common Stock|N|SOR|N|100|N|SOR +SOV$C|Santander Holdings USA, Inc. Dep Shs repstg 1/1000 Perp Pfd Ser C|N|SOVpC|N|100|N|SOV-C +SOXL|Direxion Daily Semiconductor Bull 3x Shares|P|SOXL|Y|100|N|SOXL +SOXS|Direxion Daily Semiconductor Bear 3x Shares|P|SOXS|Y|100|N|SOXS +SOYB|Teucrium Soybean Fund ETV|P|SOYB|Y|100|N|SOYB +SPA|Sparton Corporation Common Stock|N|SPA|N|100|N|SPA +SPB|Spectrum Brands Holdings, Inc. Common Stock|N|SPB|N|100|N|SPB +SPE|Special Opportunities Fund, Inc Common Stock|N|SPE|N|100|N|SPE +SPF|Standard Pacific Corp Common Stock|N|SPF|N|100|N|SPF +SPFF|Global X SuperIncome Preferred ETF|P|SPFF|Y|100|N|SPFF +SPG|Simon Property Group, Inc. Common Stock|N|SPG|N|100|N|SPG +SPG$J|Simon Property Group, Inc. Simon Property Group 8 3/8% Series J Cumulative Redeemable Preferred Stock|N|SPGpJ|N|100|N|SPG-J +SPGH|UBS E-TRACS S&P 500 Gold Hedged ETN|P|SPGH|N|100|N|SPGH +SPH|Suburban Propane Partners, L.P. Common Stock|N|SPH|N|100|N|SPH +SPHB|PowerShares S&P 500 High Beta Portfolio|P|SPHB|Y|100|N|SPHB +SPHD|PowerShares S&P 500 High Dividend Portfolio|P|SPHD|Y|100|N|SPHD +SPHQ|PowerShares S&P 500 High Quality Portfolio|P|SPHQ|Y|100|N|SPHQ +SPLP|Steel Partners Holdings LP LTD PARTNERSHIP UNIT|N|SPLP|N|100|N|SPLP +SPLV|PowerShares S&P 500 Low Volatility Portfolio ETF|P|SPLV|Y|100|N|SPLV +SPLX|ETRACS Monthly Reset 2xLeveraged S&P 500 Total Return ETN|P|SPLX|N|100|N|SPLX +SPN|Superior Energy Services, Inc. Common Stock|N|SPN|N|100|N|SPN +SPP|Sanchez Production Partners, LLC Common Stock|A|SPP|N|100|N|SPP +SPPP|Sprott Physical Platinum and Palladium Trust|P|SPPP|Y|100|N|SPPP +SPR|Spirit Aerosystems Holdings, Inc. Common Stock|N|SPR|N|100|N|SPR +SPUU|Direxion Daily S&P 500 Bull 2X Shares|P|SPUU|Y|100|N|SPUU +SPW|SPX Corporation Common Stock|N|SPW|N|100|N|SPW +SPXH|Janus Velocity Volatility Hedged Large Cap ETF|P|SPXH|Y|100|N|SPXH +SPXL|Direxion Daily S&P 500 Bull 3X Shares|P|SPXL|Y|100|N|SPXL +SPXS|Direxion Daily S&P 500 Bear 3X|P|SPXS|Y|100|N|SPXS +SPXU|ProShares UltraPro Short S&P500|P|SPXU|Y|100|N|SPXU +SPXX|Nuveen S&P 500 Dynamic Overwrite Fund|N|SPXX|N|100|N|SPXX +SPY|SPDR S&P 500|P|SPY|Y|100|N|SPY +SPYG|SPDR S&P 500 Growth ETF (based on S&P 500 Growth Index symbol--SGX)|P|SPYG|Y|100|N|SPYG +SPYV|SPDR S&P 500 Value ETF (based on S&P 500 Value Index--symbol: SVX)|P|SPYV|Y|100|N|SPYV +SQM|Sociedad Quimica y Minera S.A. Common Stock|N|SQM|N|100|N|SQM +SQNS|Sequans Communications S.A. American Depositary Shares, each representing one Ordinary Share|N|SQNS|N|100|N|SQNS +SR|Standard Register Company (The) Common Stock|N|SR|N|100|N|SR +SRC|Spirit Realty Capital, Inc. Common Stock|N|SRC|N|100|N|SRC +SRE|Sempra Energy Common Stock|N|SRE|N|100|N|SRE +SRF|The Cushing Royalty & Income Fund Common Shares of Beneficial Interest|N|SRF|N|100|N|SRF +SRI|Stoneridge, Inc. Common Stock|N|SRI|N|100|N|SRI +SRLN|SPDR Blackstone GSO Senior Loan ETF|P|SRLN|Y|100|N|SRLN +SRLP|Sprague Resources LP Common Units representing Limited Partner Interests|N|SRLP|N|100|N|SRLP +SRS|ProShares UltraShort Real Estate|P|SRS|Y|100|N|SRS +SRT|StarTek, Inc. Common Stock|N|SRT|N|100|N|SRT +SRTY|ProShares UltraPro Short Russell2000|P|SRTY|Y|100|N|SRTY +SRV|The Cushing MLP Total Return Fund Common Shares of Beneficial Interest|N|SRV|N|100|N|SRV +SSD|Simpson Manufacturing Company, Inc. Common Stock|N|SSD|N|100|N|SSD +SSE|Seventy Seven Energy Inc. Common Stock|N|SSE|N|100|N|SSE +SSG|ProShares UltraShort Semiconductors|P|SSG|Y|100|N|SSG +SSI|Stage Stores, Inc. Common Stock|N|SSI|N|100|N|SSI +SSL|Sasol Ltd. American Depositary Shares|N|SSL|N|100|N|SSL +SSLT|Sesa Sterlite Limited American Depositary Shares (Each representing four equity shares)|N|SSLT|N|100|N|SSLT +SSN|Samson Oil & Gas Limited Sponsored ADR (Australia)|A|SSN|N|100|N|SSN +SSNI|Silver Spring Networks, Inc. Common Stock|N|SSNI|N|100|N|SSNI +SSO|ProShares Ultra S&P500|P|SSO|Y|100|N|SSO +SSP|E.W. Scripps Company (The) Common Stock|N|SSP|N|100|N|SSP +SSS|Sovran Self Storage, Inc. Common Stock|N|SSS|N|100|N|SSS +SST|SPDR Barclays Short Term Treasury ETF|P|SST|Y|100|N|SST +SSTK|Shutterstock, Inc. Common Stock|N|SSTK|N|100|N|SSTK +SSW|Seaspan Corporation Seaspan Corporation Common Shares|N|SSW|N|100|N|SSW +SSW$C|Seaspan Corporation 9.50% Series C Cumulative Redeemable Perpetual Preferred Shares|N|SSWpC|N|100|N|SSW-C +SSW$D|Seaspan Corporation Cumulative Redeemable Perpetual Preferred Series D (Marshall Islands)|N|SSWpD|N|100|N|SSW-D +SSW$E|Seaspan Corporation Cumulative Redeemable Perpetual Preferred Series E (Marshall Islands)|N|SSWpE|N|100|N|SSW-E +SSWN|Seaspan Corporation 6.375% Notes due 2019|N|SSWN|N|100|N|SSWN +SSY|SunLink Health Systems, Inc. Common Stock|A|SSY|N|100|N|SSY +ST|Sensata Technologies Holding N.V. Ordinary Shares|N|ST|N|100|N|ST +STAG|Stag Industrial, Inc. Common Stock|N|STAG|N|100|N|STAG +STAG$A|Stag Industrial, Inc. Preferred Series A|N|STAGpA|N|100|N|STAG-A +STAG$B|Stag Industrial, Inc. Cum Pfd Ser B|N|STAGpB|N|100|N|STAG-B +STAR|iStar Financial Inc. Common Stock|N|STAR|N|100|N|STAR +STAR$D|iStar Financial Inc. Preferred Stock|N|STARpD|N|100|N|STAR-D +STAR$E|iStar Financial Inc. 7.875% Preferred Ser E|N|STARpE|N|100|N|STAR-E +STAR$F|iStar Financial Inc. Series F Preferred Stock|N|STARpF|N|100|N|STAR-F +STAR$G|iStar Financial Inc. Preferred Stock Series G|N|STARpG|N|100|N|STAR-G +STAR$I|iStar Financial Inc. Preferred Series I|N|STARpI|N|100|N|STAR-I +STAY|Extended Stay America, Inc. Common Stock|N|STAY|N|100|N|STAY +STC|Stewart Information Services Corporation Common Stock|N|STC|N|100|N|STC +STE|STERIS Corporation Common Stock|N|STE|N|100|N|STE +STI|SunTrust Banks, Inc. Common Stock|N|STI|N|100|N|STI +STI$A|SunTrust Banks, Inc. Dep Shs repstg 1/4000 Perpetual Pfd Stk Ser A|N|STIpA|N|100|N|STI-A +STI$E|SunTrust Banks, Inc. Depositary Shares Representing Perpetual Preferred Series E|N|STIpE|N|100|N|STI-E +STI.A|SunTrust Banks, Inc. Class A Warrant (Expiring December 31, 2018)|N|STI/WS/A|N|100|N|STI+A +STI.B|SunTrust Banks, Inc. Class B Warrant (Expiring November 14, 2018)|N|STI/WS/B|N|100|N|STI+B +STIP|iShares 0-5 Year TIPS Bond ETF|P|STIP|Y|100|N|STIP +STJ|St. Jude Medical, Inc. Common Stock|N|STJ|N|100|N|STJ +STK|Columbia Seligman Premium Technology Growth Fund Inc|N|STK|N|100|N|STK +STL|Sterling Bancorp|N|STL|N|100|N|STL +STM|STMicroelectronics N.V. Common Stock|N|STM|N|100|N|STM +STN|Stantec Inc Common Stock|N|STN|N|100|N|STN +STNG|Scorpio Tankers Inc. Common Shares|N|STNG|N|100|N|STNG +STO|Statoil ASA|N|STO|N|100|N|STO +STON|StoneMor Partners L.P. Common Unit Rep Limited Partnership Interests|N|STON|N|100|N|STON +STOR|STORE Capital Corporation Common Stock|N|STOR|N|100|N|STOR +STPZ|PIMCO 1-5 Year U.S. TIPS Index Exchange-Traded Fund|P|STPZ|Y|100|N|STPZ +STR|Questar Corporation Common Stock|N|STR|N|100|N|STR +STRI|STR Holdings, Inc Common Stock|N|STRI|N|100|N|STRI +STRP|Straight Path Communications Inc. Class B Common Stock|A|STRP|N|100|N|STRP +STS|Supreme Industries, Inc. Common Stock|A|STS|N|100|N|STS +STT|State Street Corporation Common Stock|N|STT|N|100|N|STT +STT$C|State Street Corporation Dep Shs Representing 1/4000 Ownership Int In Sh Non Cum (Perpertual Pfd Stk Ser C)|N|STTpC|N|100|N|STT-C +STT$D|State Street Corporation Depositary Shares representing 1/4000th Perpetual Preferred Series D|N|STTpD|N|100|N|STT-D +STT$E|State Street Corporation Depository Shares, each representing a 1/4,000th ownership interest in a share of Non-Cumulative Perpetual Preferred Stock, Series E, without par value per share|N|STTpE|N|100|N|STT-E +STV|China Digital TV Holding Co., Ltd. American Depositary Shares|N|STV|N|100|N|STV +STWD|STARWOOD PROPERTY TRUST, INC. Starwood Property Trust Inc.|N|STWD|N|100|N|STWD +STXX|ALPS STOXX Europe 600 ETF|P|STXX|Y|100|N|STXX +STZ|Constellation Brands, Inc. Common Stock|N|STZ|N|100|N|STZ +STZ.B|Constellation Brands, Inc. Common Stock|N|STZ/B|N|100|N|STZ.B +SU|Suncor Energy Inc. Common Stock|N|SU|N|100|N|SU +SUB|iShares Short Term National AMT-Free Muni Bond ETF|P|SUB|Y|100|N|SUB +SUBD|Deutsche X-trackers Solactive Investment Grade Subordinated Debt ETF|P|SUBD|Y|100|N|SUBD +SUI|Sun Communities, Inc. Common Stock|N|SUI|N|100|N|SUI +SUI$A|Sun Communities, Inc. Preferred Series A|N|SUIpA|N|100|N|SUI-A +SUN|Sunoco LP Common Units representing limited partner interests|N|SUN|N|100|N|SUN +SUNE|SunEdison, Inc. Common Stock|N|SUNE|N|100|N|SUNE +SUP|Superior Industries International, Inc. Common Stock|N|SUP|N|100|N|SUP +SVBL|Silver Bull Resources, Inc Common Stock|A|SVBL|N|100|N|SVBL +SVLC|SilverCrest Mines, Inc. Ordinary Shares (Canada)|A|SVLC|N|100|N|SVLC +SVM|Silvercorp Metals Inc Ordinary Shares (Canada)|N|SVM|N|100|N|SVM +SVT|Servotronics, Inc. Common Stock|A|SVT|N|100|N|SVT +SVU|SuperValu Inc. Common Stock|N|SVU|N|100|N|SVU +SVXY|ProShares Short VIX Short Term Futures ETF|P|SVXY|Y|100|N|SVXY +SWAY|Starwood Waypoint Residential Trust Common Stock|N|SWAY|N|100|N|SWAY +SWC|Stillwater Mining Company Common Stock ($0.01 Par Value)|N|SWC|N|100|N|SWC +SWFT|Swift Transportation Company Class A Common Stock|N|SWFT|N|100|N|SWFT +SWH|Stanley Black & Decker, Inc. Corp Unit 2013|N|SWH|N|100|N|SWH +SWI|Solarwinds, Inc. Common Stock|N|SWI|N|100|N|SWI +SWJ|Stanley Black & Decker, Inc. 5.75% Junior Subordinated Debenture due 2052|N|SWJ|N|100|N|SWJ +SWK|Stanley Black & Decker, Inc. Common Stock|N|SWK|N|100|N|SWK +SWM|Schweitzer-Mauduit International, Inc. Common Stock|N|SWM|N|100|N|SWM +SWN|Southwestern Energy Company Common Stock|N|SWN|N|100|N|SWN +SWNC|Southwestern Energy Company Depositary Shares, each representing a 1/20th ownership interest in a share of 6.25% Series B Mandatory Convertible Preferred Stock|N|SWNC|N|100|N|SWNC +SWU|Stanley Black & Decker, Inc Corporate Units|N|SWU|N|100|N|SWU +SWX|Southwest Gas Corporation Common Stock|N|SWX|N|100|N|SWX +SWY|Safeway Inc. Common Stock|N|SWY|N|100|N|SWY +SWZ|Swiss Helvetia Fund, Inc. (The) Common Stock|N|SWZ|N|100|N|SWZ +SXC|SunCoke Energy, Inc. Common Stock|N|SXC|N|100|N|SXC +SXCP|SunCoke Energy Partners, L.P. Common Units Representing Limited partner Interests|N|SXCP|N|100|N|SXCP +SXE|Southcross Energy Partners, L.P. Common Units representing limited partner interest in the Partnership|N|SXE|N|100|N|SXE +SXI|Standex International Corporation Common Stock|N|SXI|N|100|N|SXI +SXL|Sunoco Logistics Partners LP Common Units representing limited partner interests|N|SXL|N|100|N|SXL +SXT|Sensient Technologies Corporation Common Stock|N|SXT|N|100|N|SXT +SYA|Symetra Financial Corporation Common Stock $0.01 par value|N|SYA|N|100|N|SYA +SYE|SPDR MFS Systematic Core Equity ETF|P|SYE|Y|100|N|SYE +SYF|Synchrony Financial Common Stock|N|SYF|N|100|N|SYF +SYG|SPDR MFS Systematic Growth Equity ETF|P|SYG|Y|100|N|SYG +SYK|Stryker Corporation Common Stock|N|SYK|N|100|N|SYK +SYLD|Cambria Shareholder Yield ETF|P|SYLD|Y|100|N|SYLD +SYN|Synthetic Biologics, Inc. Common Stock|A|SYN|N|100|N|SYN +SYRG|Synergy Resources Corporation Common Stock|A|SYRG|N|100|N|SYRG +SYT|Syngenta AG Common Stock|N|SYT|N|100|N|SYT +SYTL|Direxion Daily 7-10 Year Treasury Bull 2X Shares|P|SYTL|Y|100|N|SYTL +SYV|SPDR MFS Systematic Value Equity ETF|P|SYV|Y|100|N|SYV +SYX|Systemax Inc. Common Stock|N|SYX|N|100|N|SYX +SYY|Sysco Corporation Common Stock|N|SYY|N|100|N|SYY +SZC|Cushing Renaissance Fund (The) Common Shares of Beneficial Interest|N|SZC|N|100|N|SZC +SZK|ProShares UltraShort Consumer Goods|P|SZK|Y|100|N|SZK +SZO|PowerShares DB Crude Oil Short ETN|P|SZO|N|100|N|SZO +T|AT&T Inc.|N|T|N|100|N|T +TA|TravelCenters of America LLC Common Stock|N|TA|N|100|N|TA +TAC|TransAlta Corporation Ordinary Shares|N|TAC|N|100|N|TAC +TAGS|Teucrium Agricultural Fund ETV|P|TAGS|Y|100|N|TAGS +TAHO|Tahoe Resources, Inc. Ordinary Shares (Canada)|N|TAHO|N|100|N|TAHO +TAI|Transamerica Income Shares, Inc. Common Stock|N|TAI|N|100|N|TAI +TAL|TAL International Group, Inc. Common Stock|N|TAL|N|100|N|TAL +TAN|Guggenheim Solar ETF|P|TAN|Y|100|N|TAN +TANN|TravelCenters of America LLC 8.25% Senior Notes due 2028|N|TANN|N|100|N|TANN +TANO|TravelCenters of America LLC 8.00% Senior Notes due 2029|N|TANO|N|100|N|TANO +TAO|Guggenheim China Real Estate ETF|P|TAO|Y|100|N|TAO +TAOM|Taomee Holdings Limited American Depositary Shares (each representing 20 ordinary shares)|N|TAOM|N|100|N|TAOM +TAP|Molson Coors Brewing Company Class B Common Stock|N|TAP|N|100|N|TAP +TAP.A|Molson Coors Brewing Company Molson Coors Brewing Company Class A Common Stock|N|TAP/A|N|100|N|TAP.A +TARO|Taro Pharmaceutical Industries Ltd. Ordinary Shares|N|TARO|N|100|N|TARO +TAS|Tasman Metals Ltd Ordinary Shares (Canada)|A|TAS|N|100|N|TAS +TAT|TransAtlantic Petroleum Ltd Ordinary Shares (Bermuda)|A|TAT|N|100|N|TAT +TBAR|RBS Gold Trendpilot Exchange Traded Notes|P|TBAR|N|100|N|TBAR +TBF|ProShares Short 20+ Year Treasury|P|TBF|Y|100|N|TBF +TBI|TrueBlue, Inc. Common Stock|N|TBI|N|100|N|TBI +TBT|ProShares UltraShort Lehman 20 Year Treasury|P|TBT|Y|100|N|TBT +TBX|ProShares Short 7 10 Year Treasury|P|TBX|Y|100|N|TBX +TBZ|ProShares UltraShort 3 7 Year Treasury|P|TBZ|Y|100|N|TBZ +TC|Thompson Creek Metals Company Inc. Ordinary Shares (Canada)|N|TC|N|100|N|TC +TCAP|Triangle Capital Corporation Common Stock|N|TCAP|N|100|N|TCAP +TCB|TCF Financial Corporation Common Stock|N|TCB|N|100|N|TCB +TCB$B|TCF Financial Corporation Del Dep Shs Repstg 1/1000 Pfd Ser A|N|TCBpB|N|100|N|TCB-B +TCB$C|TCF Financial Corporation Perp Pfd Ser B|N|TCBpC|N|100|N|TCB-C +TCB.W|TCF Financial Corporation TCF Financial Corporation Warrants|N|TCB/WS|N|100|N|TCB+ +TCC|Triangle Capital Corporation 7.00% Senior Notes due 2019|N|TCC|N|100|N|TCC +TCCA|Triangle Capital Corporation 6.375% Senior Notes due 2022|N|TCCA|N|100|N|TCCA +TCHI|RBS China Trendpilot Exchange Traded Note|P|TCHI|N|100|N|TCHI +TCI|Transcontinental Realty Investors, Inc. Common Stock|N|TCI|N|100|N|TCI +TCK|Teck Resources Ltd Ordinary Shares|N|TCK|N|100|N|TCK +TCO|Taubman Centers, Inc. Common Stock|N|TCO|N|100|N|TCO +TCO$J|Taubman Centers, Inc. Preferred Shares Series J|N|TCOpJ|N|100|N|TCO-J +TCO$K|Taubman Centers, Inc. Preferred Series K|N|TCOpK|N|100|N|TCO-K +TCP|TC PipeLines, LP Common Units representing Limited Partner Interests|N|TCP|N|100|N|TCP +TCPI|TCP International Holdings Ltd. Common Shares|N|TCPI|N|100|N|TCPI +TCRX|THL Credit, Inc. 6.75% Notes due 2021|N|TCRX|N|100|N|TCRX +TCS|Container Store (The) Common Stock|N|TCS|N|100|N|TCS +TD|Toronto Dominion Bank (The) Common Stock|N|TD|N|100|N|TD +TDA|Telephone and Data Systems, Inc. 5.875% Senior Notes due 2061|N|TDA|N|100|N|TDA +TDC|Teradata Corporation Common Stock|N|TDC|N|100|N|TDC +TDD|Deutsche X-trackers 2010 Target Date ETF|P|TDD|Y|100|N|TDD +TDE|Telephone and Data Systems, Inc. 6.875% Senior Notes due 2059|N|TDE|N|100|N|TDE +TDF|Templeton Dragon Fund, Inc. Common Stock|N|TDF|N|100|N|TDF +TDG|Transdigm Group Incorporated Transdigm Group Inc. Common Stock|N|TDG|N|100|N|TDG +TDH|Deutsche X-trackers 2020 Target Date ETF|P|TDH|Y|100|N|TDH +TDI|Telephone and Data Systems, Inc. Sr Nt|N|TDI|N|100|N|TDI +TDJ|Telephone and Data Systems, Inc. 7% Senior Notes due 2060|N|TDJ|N|100|N|TDJ +TDN|Deutsche X-trackers 2030 Target Date ETF|P|TDN|Y|100|N|TDN +TDS|Telephone and Data Systems, Inc. Common Shares|N|TDS|N|100|N|TDS +TDTF|FlexShares iBoxx 5 Year Target Duration TIPS Index Fund|P|TDTF|Y|100|N|TDTF +TDTT|FlexShares iBoxx 3 Year Target Duration TIPS Index Fund|P|TDTT|Y|100|N|TDTT +TDV|Deutsche X-trackers 2040 Target Date ETF|P|TDV|Y|100|N|TDV +TDW|Tidewater Inc. Common Stock|N|TDW|N|100|N|TDW +TDX|Deutsche X-trackers In-Target Date ETF|P|TDX|Y|100|N|TDX +TDY|Teledyne Technologies Incorporated Common Stock|N|TDY|N|100|N|TDY +TE|TECO Energy, Inc. Common Stock|N|TE|N|100|N|TE +TECL|Direxion Technology Bull 3X Shares|P|TECL|Y|100|N|TECL +TECS|Direxion Technology Bear 3X Shares|P|TECS|Y|100|N|TECS +TEF|Telefonica SA Common Stock|N|TEF|N|100|N|TEF +TEG|Integrys Energy Group, Inc. Common Stock|N|TEG|N|100|N|TEG +TEI|Templeton Emerging Markets Income Fund, Inc. Common Stock|N|TEI|N|100|N|TEI +TEL|TE Connectivity Ltd. New Switzerland Registered Shares|N|TEL|N|100|N|TEL +TEN|Tenneco Inc. Common Stock|N|TEN|N|100|N|TEN +TENZ|Pimco 7-15 Year U.S. Treasury Index Exchange-Traded Fund|P|TENZ|Y|100|N|TENZ +TEO|Telecom Argentina SA|N|TEO|N|100|N|TEO +TEP|Tallgrass Energy Partners, LP Common Units representing limited partner interests|N|TEP|N|100|N|TEP +TER|Teradyne, Inc. Common Stock|N|TER|N|100|N|TER +TEU|Box Ships Inc. Common Shares|N|TEU|N|100|N|TEU +TEU$C|Box Ships Inc. 9.00% Series C Cumulative Perpetual Preferred Stock|N|TEUpC|N|100|N|TEU-C +TEVA|Teva Pharmaceutical Industries Limited American Depositary Shares|N|TEVA|N|100|N|TEVA +TEX|Terex Corporation Common Stock|N|TEX|N|100|N|TEX +TFG|Fixed Income Trust for Goldman Sachs Subordinated Notes, Series 2011-1|N|TFG|N|100|N|TFG +TFI|SPDR Nuveen Barclays Municipal Bond ETF|P|TFI|Y|100|N|TFI +TFLO|iShares Treasury Floating Rate Bond ETF|P|TFLO|Y|100|N|TFLO +TFX|Teleflex Incorporated Common Stock|N|TFX|N|100|N|TFX +TG|Tredegar Corporation Common Stock|N|TG|N|100|N|TG +TGB|Taseko Mines, Ltd. Common Stock|A|TGB|N|100|N|TGB +TGC|Tengasco, Inc. Common Stock|A|TGC|N|100|N|TGC +TGD|Timmins Gold Corp Common Shares (Canada)|A|TGD|N|100|N|TGD +TGH|Textainer Group Holdings Limited Common Shares|N|TGH|N|100|N|TGH +TGI|Triumph Group, Inc. Common Stock|N|TGI|N|100|N|TGI +TGP|Teekay LNG Partners L.P.|N|TGP|N|100|N|TGP +TGS|Transportadora de Gas del Sur SA TGS Common Stock|N|TGS|N|100|N|TGS +TGT|Target Corporation Common Stock|N|TGT|N|100|N|TGT +THC|Tenet Healthcare Corporation Common Stock|N|THC|N|100|N|THC +THD|iShares MSCI Thailand Capped Investable Market Index Fund|P|THD|Y|100|N|THD +THG|Hanover Insurance Group Inc|N|THG|N|100|N|THG +THGA|The Hanover Insurance Group, Inc. 6.35% Subordinated Debentures due 2053|N|THGA|N|100|N|THGA +THHY|Market Vectors Treasury-Hedged High Yield Bond ETF|P|THHY|Y|100|N|THHY +THM|International Tower Hill Mines, Ltd. Ordinary Shares (Canada)|A|THM|N|100|N|THM +THO|Thor Industries, Inc. Common Stock|N|THO|N|100|N|THO +THQ|Tekla Healthcare Opportunies Fund Shares of Beneficial Interest|N|THQ|N|100|N|THQ +THR|Thermon Group Holdings, Inc. Common Stock|N|THR|N|100|N|THR +THRK|SPDR Russell 3000 ETF|P|THRK|Y|100|N|THRK +THS|Treehouse Foods, Inc. Common Stock|N|THS|N|100|N|THS +TI|Telecom Italia S.P.A. New|N|TI|N|100|N|TI +TI.A|Telecom Italia S.P.A. New|N|TI/A|N|100|N|TI.A +TIF|Tiffany & Co. Common Stock|N|TIF|N|100|N|TIF +TIK|Tel-Instrument Electronics Corp. Common Stock|A|TIK|N|100|N|TIK +TILT|FlexShares Mornigstar US Market Factors Tilt Index Fund ETF|P|TILT|Y|100|N|TILT +TIME|Time Inc. Common Stock|N|TIME|N|100|N|TIME +TIP|iShares TIPS Bond ETF|P|TIP|Y|100|N|TIP +TIPX|SPDR Barclays 1-10 Year TIPS|P|TIPX|Y|100|N|TIPX +TIPZ|PIMCO Broad U.S. TIPS Index Exchange-Traded Fund|P|TIPZ|Y|100|N|TIPZ +TIS|Orchids Paper Products Company Common Stock|A|TIS|N|100|N|TIS +TISI|Team, Inc. Common Stock|N|TISI|N|100|N|TISI +TJX|TJX Companies, Inc. (The) Common Stock|N|TJX|N|100|N|TJX +TK|Teekay Corporation Common Stock|N|TK|N|100|N|TK +TKC|Turkcell Iletisim Hizmetleri AS Common Stock|N|TKC|N|100|N|TKC +TKF|Turkish Investment Fund, Inc. (The) Common Stock|N|TKF|N|100|N|TKF +TKR|Timken Company (The) Common Stock|N|TKR|N|100|N|TKR +TLH|iShares 10-20 Year Treasury Bond ETF|P|TLH|Y|100|N|TLH +TLI|LMP Corporate Loan Fund Inc Common Stock|N|TLI|N|100|N|TLI +TLK|PT Telekomunikasi Indonesia, Tbk|N|TLK|N|100|N|TLK +TLL|ProShares UltraShort Telecommunications|P|TLL|Y|100|N|TLL +TLLP|Tesoro Logistics LP Common Units representing Limited Partner Interests|N|TLLP|N|100|N|TLLP +TLM|Talisman Energy Inc. Common Stock|N|TLM|N|100|N|TLM +TLO|SPDR Barclays Long Term Treasury ETF|P|TLO|Y|100|N|TLO +TLP|Transmontaigne Partners L.P. Transmontaigne Partners L.P. Common Units representing limited partner interests|N|TLP|N|100|N|TLP +TLR|Timberline Resources Corporation Common Stock (DE)|A|TLR|N|100|N|TLR +TLT|iShares 20 Year Treasury Bond ETF|P|TLT|Y|100|N|TLT +TLTD|FlexShares Morningstar Developed Markets ex-US Factor Tilt Index Fund|P|TLTD|Y|100|N|TLTD +TLTE|FlexShares Morningstar Emerging Markets Factor Tilt Index Fund|P|TLTE|Y|100|N|TLTE +TLYS|Tilly's, Inc. Common Stock|N|TLYS|N|100|N|TLYS +TM|Toyota Motor Corporation Common Stock|N|TM|N|100|N|TM +TMF|Direxion Daily 20-Yr Treasury Bull 3x Shrs|P|TMF|Y|100|N|TMF +TMH|Team Health Holdings, Inc. Team Health Holdings, Inc.|N|TMH|N|100|N|TMH +TMHC|Taylor Morrison Home Corporation Class A Common Stock|N|TMHC|N|100|N|TMHC +TMK|Torchmark Corporation Common Stock|N|TMK|N|100|N|TMK +TMK$B|Torchmark Corporation 5.875% Junior Subordinated Debenture due 2052|N|TMKpB|N|100|N|TMK-B +TMO|Thermo Fisher Scientific Inc Common Stock|N|TMO|N|100|N|TMO +TMP|Tompkins Financial Corporation Common Stock|A|TMP|N|100|N|TMP +TMST|Timken Steel Corporation Common Shares|N|TMST|N|100|N|TMST +TMUS|T-Mobile US, Inc. Common Stock|N|TMUS|N|100|N|TMUS +TMUS$A|T-Mobile US, Inc. 5.50% Mandatory Convertible Preferred Stock, Series A|N|TMUSpA|N|100|N|TMUS-A +TMV|Direxion Daily 30-Yr Treasury Bear 3x Shrs|P|TMV|Y|100|N|TMV +TNA|Direxion Small Cap Bull 3X Shares|P|TNA|Y|100|N|TNA +TNC|Tennant Company Common Stock|N|TNC|N|100|N|TNC +TNDQ|RBS NASDAQ 100 Trendpilot ETN|P|TNDQ|N|100|N|TNDQ +TNET|TriNet Group, Inc. Common Stock|N|TNET|N|100|N|TNET +TNH|Terra Nitrogen Company, L.P. Common Units|N|TNH|N|100|N|TNH +TNK|Teekay Tankers Ltd.|N|TNK|N|100|N|TNK +TNP|Tsakos Energy Navigation Ltd Common Shares|N|TNP|N|100|N|TNP +TNP$B|Tsakos Energy Navigation Ltd Red Perp Pfd Ser B% (Bermuda)|N|TNPpB|N|100|N|TNP-B +TNP$C|Tsakos Energy Navigation Ltd 8.875% Series C Preferred Cumulative Redeemable Perpetual Preferred Shares|N|TNPpC|N|100|N|TNP-C +TOF|Tofutti Brands Inc. Common Stock|A|TOF|N|100|N|TOF +TOFR|Stock Split Index Fund ETF|P|TOFR|Y|100|N|TOFR +TOK|iShares MSCI KLD 400 Social ETF|P|TOK|Y|100|N|TOK +TOL|Toll Brothers Inc. Common Stock|N|TOL|N|100|N|TOL +TOLZ|ProShares DJ Brookfield Global Infrastructure ETF|P|TOLZ|Y|100|N|TOLZ +TOO|Teekay Offshore Partners L.P. Common Units representing Limited Partner Interests|N|TOO|N|100|N|TOO +TOO$A|Teekay Offshore Partners L.P. 7.25% Series A Redeemable Preferred Units|N|TOOpA|N|100|N|TOO-A +TOT|Total S.A.|N|TOT|N|100|N|TOT +TOTS|Direxion Daily Total Market Bear 1X Shares|P|TOTS|Y|100|N|TOTS +TOWR|Tower International, Inc. Common stock|N|TOWR|N|100|N|TOWR +TPC|Tutor Perini Corporation Common Stock|N|TPC|N|100|N|TPC +TPH|Tri Pointe Homes, Inc. Common Stock|N|TPH|N|100|N|TPH +TPI|Tianyin Pharmaceutical Co., Inc. Common Stock|A|TPI|N|100|N|TPI +TPL|Texas Pacific Land Trust Common Stock|N|TPL|N|100|N|TPL +TPLM|Triangle Petroleum Corporation Common Stock (DE)|A|TPLM|N|100|N|TPLM +TPRE|Third Point Reinsurance Ltd. Common Shares|N|TPRE|N|100|N|TPRE +TPS|ProShares UltraShort TIPS|P|TPS|Y|100|N|TPS +TPUB|Tribune Publishing Company Common Stock|N|TPUB|N|100|N|TPUB +TPVG|TriplePoint Venture Growth BDC Corp. Common Stock|N|TPVG|N|100|N|TPVG +TPX|Tempur Sealy International, Inc. Common Stock|N|TPX|N|100|N|TPX +TPZ|Tortoise Power and Energy Infrastructure Fund, Inc Common Stock|N|TPZ|N|100|N|TPZ +TR|Tootsie Roll Industries, Inc. Common Stock|N|TR|N|100|N|TR +TRC|Tejon Ranch Co Common Stock|N|TRC|N|100|N|TRC +TRC.W|Tejon Ranch Co Warrants expiring August 31, 2016|A|TRC/WS|N|100|N|TRC+ +TRCO|Tribune Media Company Class A Common Stock|N|TRCO|N|100|N|TRCO +TREC|Trecora Resources Common Stock|N|TREC|N|100|N|TREC +TREX|Trex Company, Inc. Common Stock|N|TREX|N|100|N|TREX +TRF|Templeton Russia and East European Fund, Inc. Common Stock|N|TRF|N|100|N|TRF +TRGP|Targa Resources, Inc. Common Stock|N|TRGP|N|100|N|TRGP +TRI|Thomson Reuters Corp Ordinary Shares|N|TRI|N|100|N|TRI +TRK|Speedway Motorsports, Inc. Common Stock|N|TRK|N|100|N|TRK +TRLA|Trulia, Inc. Common Stock|N|TRLA|N|100|N|TRLA +TRMR|Tremor Video, Inc. Common Stock|N|TRMR|N|100|N|TRMR +TRN|Trinity Industries, Inc. Common Stock|N|TRN|N|100|N|TRN +TRND|RBS US Large Cap Trendpilot ETN|P|TRND|N|100|N|TRND +TRNM|RBS US Mid Cap Trendpilot ETN|P|TRNM|N|100|N|TRNM +TRNO|Terreno Realty Corporation Common Stock|N|TRNO|N|100|N|TRNO +TRNO$A|Terreno Realty Corporation Preferred Shares Series A|N|TRNOpA|N|100|N|TRNO-A +TROX|Tronox Limited Ordinary Shares Class A $0.01 par|N|TROX|N|100|N|TROX +TRP|TransCanada Corporation Common Stock|N|TRP|N|100|N|TRP +TRQ|Turquoise Hill Resources Ltd. Ordinary Shares|N|TRQ|N|100|N|TRQ +TRR|TRC Companies, Inc. Common Stock|N|TRR|N|100|N|TRR +TRSK|Janus Velocity Tail Risk Hedged Large Cap ETF|P|TRSK|Y|100|N|TRSK +TRT|Trio-Tech International Common Stock|A|TRT|N|100|N|TRT +TRUP|Trupanion, Inc. Common Stock|N|TRUP|N|100|N|TRUP +TRV|The Travelers Companies, Inc. Common Stock|N|TRV|N|100|N|TRV +TRW|TRW Automotive Holdings Corporation Common Stock|N|TRW|N|100|N|TRW +TRX|Tanzanian Royalty Exploration Corporation Common Stock|A|TRX|N|100|N|TRX +TRXC|TransEnterix, Inc. Common Stock|A|TRXC|N|100|N|TRXC +TS|Tenaris S.A. American Depositary Shares|N|TS|N|100|N|TS +TSE|Trinseo S.A. Ordinary Shares|N|TSE|N|100|N|TSE +TSI|TCW Strategic Income Fund, Inc. Common Stock|N|TSI|N|100|N|TSI +TSL|Trina Solar Limited Sponsored ADR (Cayman Islands)|N|TSL|N|100|N|TSL +TSLF|THL Credit Senior Loan Fund Common Shares of Beneficial Interest|N|TSLF|N|100|N|TSLF +TSLX|TPG Specialty Lending, Inc. Common Stock|N|TSLX|N|100|N|TSLX +TSM|Taiwan Semiconductor Manufacturing Company Ltd.|N|TSM|N|100|N|TSM +TSN|Tyson Foods, Inc. Common Stock|N|TSN|N|100|N|TSN +TSNU|Tyson Foods, Inc. Tangible Equity Unit 1 Prepaid Stock Purchase Contact & 1 Sr (Amortorizing NT)|N|TSNU|N|100|N|TSNU +TSO|Tesoro Corporation Common Stock|N|TSO|N|100|N|TSO +TSQ|Townsquare Media, Inc. Class A Common Stock|N|TSQ|N|100|N|TSQ +TSS|Total System Services, Inc. Common Stock|N|TSS|N|100|N|TSS +TSU|TIM Participacoes S.A. American Depositary Shares (Each representing 5 Common Shares)|N|TSU|N|100|N|TSU +TTC|Toro Company (The) Common Stock|N|TTC|N|100|N|TTC +TTF|Thai Fund, Inc. (The) Common Stock|N|TTF|N|100|N|TTF +TTFS|TrimTabs Float Shrink ETF|P|TTFS|Y|100|N|TTFS +TTI|Tetra Technologies, Inc. Common Stock|N|TTI|N|100|N|TTI +TTM|Tata Motors Ltd Tata Motors Limited|N|TTM|N|100|N|TTM +TTP|Tortoise Pipeline & Energy Fund, Inc. Common Stock|N|TTP|N|100|N|TTP +TTT|ProShares UltraPro Short 20 Year Treasury|P|TTT|Y|100|N|TTT +TU|Telus Corporation Ordinary Shares|N|TU|N|100|N|TU +TUMI|Tumi Holdings, Inc. Common Stock|N|TUMI|N|100|N|TUMI +TUP|Tupperware Brands Corporation Common Stock|N|TUP|N|100|N|TUP +TUR|iShares MSCI Turkey Investable Market Index Fund|P|TUR|Y|100|N|TUR +TUZ|PIMCO 1-3 Year US Treasury Index Exchage-Traded Fund|P|TUZ|Y|100|N|TUZ +TV|Grupo Televisa S.A. Common Stock|N|TV|N|100|N|TV +TVC|Tennessee Valley Authority Common Stock|N|TVC|N|100|N|TVC +TVE|Tennessee Valley Authority|N|TVE|N|100|N|TVE +TVPT|Travelport Worldwide Limited Common Shares|N|TVPT|N|100|N|TVPT +TW|Towers Watson & Co Common Stock Class A|N|TW|N|100|N|TW +TWC|Time Warner Cable Inc Common Stock|N|TWC|N|100|N|TWC +TWI|Titan International, Inc. Common Stock|N|TWI|N|100|N|TWI +TWM|ProShares UltraShort Russell2000|P|TWM|Y|100|N|TWM +TWN|Taiwan Fund, Inc. (The) Common Stock|N|TWN|N|100|N|TWN +TWO|Two Harbors Investment Corp|N|TWO|N|100|N|TWO +TWOK|SPDR Russell 2000 ETF|P|TWOK|Y|100|N|TWOK +TWTI|RBS Oil Trendpilot ETN|P|TWTI|N|100|N|TWTI +TWTR|Twitter, Inc. Common Stock|N|TWTR|N|100|N|TWTR +TWX|Time Warner Inc. New Common Stock|N|TWX|N|100|N|TWX +TX|Ternium S.A. Ternium S.A. American Depositary Shares (each representing ten shares, USD1.00 par value)|N|TX|N|100|N|TX +TXMD|TherapeuticsMD, Inc. Common Stock|A|TXMD|N|100|N|TXMD +TXT|Textron Inc. Common Stock|N|TXT|N|100|N|TXT +TXTR|Textura Corporation Common Stock|N|TXTR|N|100|N|TXTR +TY|Tri Continental Corporation Common Stock|N|TY|N|100|N|TY +TY$|Tri Continental Corporation Preferred Stock|N|TYp|N|100|N|TY- +TYBS|Direxion Daily 20 Year Treasury Bear 1X Shares|P|TYBS|Y|100|N|TYBS +TYC|Tyco International plc (Ireland) Ordinary Share|N|TYC|N|100|N|TYC +TYD|Direxion Daily 10-Yr Treasury Bull 3x Shrs|P|TYD|Y|100|N|TYD +TYG|Tortoise Energy Infrastructure Corporation Common Stock|N|TYG|N|100|N|TYG +TYG$B|Tortoise Energy Infrastructure Corporation Mandatory Red Pfd Ser B|N|TYGpB|N|100|N|TYG-B +TYG$C|Tortoise Energy Infrastructure Corporation Series C Mandatory Redeemable Preferred Shares|N|TYGpC|N|100|N|TYG-C +TYL|Tyler Technologies, Inc. Common Stock|N|TYL|N|100|N|TYL +TYNS|Direxion Daily 7 10 Year Treasury Bear 1X Shares|P|TYNS|Y|100|N|TYNS +TYO|Direxion Daily 10-Yr Treasury Bear 3x Shrs|P|TYO|Y|100|N|TYO +TYTE|ProShares CDS North American HY Credit ETF|Z|TYTE|Y|100|N|TYTE +TZA|Direxion Small Cap Bear 3X Shares|P|TZA|Y|100|N|TZA +TZF|Bear Stearns Depositor, Inc. Pfd Stk TRUCs Srs 2001-2 Issued by IMB|N|TZF|N|100|N|TZF +UA|Under Armour, Inc. Class A Common Stock|N|UA|N|100|N|UA +UAG|E-TRACS USB Bloomberg Commodity Index Exchange Traded Notes E-TRACS UBS Bloomberg CMCI Agriculture ETN|P|UAG|N|100|N|UAG +UAL|United Continental Holdings|N|UAL|N|100|N|UAL +UAM|Universal American Corporation New Common Stock|N|UAM|N|100|N|UAM +UAMY|United States Antimony Corporation Common Stock|A|UAMY|N|100|N|UAMY +UAN|CVR Partners, LP Common Units representing Limited Partner Interests|N|UAN|N|100|N|UAN +UBA|Urstadt Biddle Properties Inc. Common Stock|N|UBA|N|100|N|UBA +UBC|E-TRACS USB Bloomberg Commodity Index Exchange Traded Notes E-TRACS UBS Bloomberg CMCI Livestock ETN|P|UBC|N|100|N|UBC +UBG|E-TRACS USB Bloomberg Commodity Index Exchange Traded Notes E-TRACS UBS Bloomberg CMCI Gold ETN|P|UBG|N|100|N|UBG +UBM|E-TRACS USB Bloomberg Commodity Index Exchange Traded Notes E-TRACS UBS Bloomberg CMCI Industrial ETN|P|UBM|N|100|N|UBM +UBN|E-TRACS USB Bloomberg Commodity Index Exchange Traded Notes E-TRACS UBS Bloomberg CMCI Energy ETN|P|UBN|N|100|N|UBN +UBP|Urstadt Biddle Properties Inc. Common Stock|N|UBP|N|100|N|UBP +UBP$F|Urstadt Biddle Properties Inc. Pfd Ser F|N|UBPpF|N|100|N|UBP-F +UBP$G|Urstadt Biddle Properties Inc. Preferred Stock Series G 6.75%|N|UBPpG|N|100|N|UBP-G +UBR|ProShares Ultra MSCI Brazil Capped|P|UBR|Y|100|N|UBR +UBS|UBS Group AG Registered Ordinary Shares|N|UBS|N|100|N|UBS +UBS$D|UBS AG Trust Preferred Securities|N|UBSpD|N|100|N|UBS-D +UBT|ProShares Ultra 20+ Year Treasury|P|UBT|Y|100|N|UBT +UCC|ProShares Ultra Consumer Services|P|UCC|Y|100|N|UCC +UCD|ProShares Ultra Bloomberg Commodity|P|UCD|Y|100|N|UCD +UCI|E-TRACS USB Bloomberg Commodity Index Exchange Traded Notes E-TRACS UBS Bloomberg CMCI ETN|P|UCI|N|100|N|UCI +UCO|ProShares Ultra Bloomberg Crude Oil|P|UCO|Y|100|N|UCO +UCP|UCP, Inc. Class A Common Stock|N|UCP|N|100|N|UCP +UDN|PowerShares DB USD Index Bearish|P|UDN|Y|100|N|UDN +UDNT|PowerShares DB 3X Short US Dollar Index Futures ETN due October 31, 2020|P|UDNT|N|100|N|UDNT +UDOW|ProShares UltraPro Dow30|P|UDOW|Y|100|N|UDOW +UDR|UDR, Inc. Common Stock|N|UDR|N|100|N|UDR +UE|Urban Edge Properties Common Shares of Beneficial Interest|N|UE|N|100|N|UE +UEC|Uranium Energy Corp. Common Stock|A|UEC|N|100|N|UEC +UFI|Unifi, Inc. New Common Stock|N|UFI|N|100|N|UFI +UFS|Domtar Corporation (NEW) Common Stock|N|UFS|N|100|N|UFS +UGA|United States Gasoline Fund LP|P|UGA|Y|100|N|UGA +UGAZ|VelocityShares 3X Long Natural Gas ETN linked to the S&P GSCI Natural Gas Index Excess Return|P|UGAZ|N|100|N|UGAZ +UGE|ProShares Ultra Consumer Goods|P|UGE|Y|100|N|UGE +UGI|UGI Corporation Common Stock|N|UGI|N|100|N|UGI +UGL|ProShares Ultra Gold|P|UGL|Y|100|N|UGL +UGP|Ultrapar Participacoes S.A. (New) American Depositary Shares (Each representing one Common Share)|N|UGP|N|100|N|UGP +UHN|United States Diesel Heating Oil Fund LP|P|UHN|Y|100|N|UHN +UHS|Universal Health Services, Inc. Common Stock|N|UHS|N|100|N|UHS +UHT|Universal Health Realty Income Trust Common Stock|N|UHT|N|100|N|UHT +UIL|UIL Holdings Corporation Common Stock|N|UIL|N|100|N|UIL +UIS|Unisys Corporation New Common Stock|N|UIS|N|100|N|UIS +UJB|ProShares Ultra High Yield ETF|P|UJB|Y|100|N|UJB +UL|Unilever PLC Common Stock|N|UL|N|100|N|UL +ULE|ProShares Ultra Euro|P|ULE|Y|100|N|ULE +ULST|SPDR SSgA Ultra Short Term Bond ETF|P|ULST|Y|100|N|ULST +UMC|United Microelectronics Corporation (NEW) Common Stock|N|UMC|N|100|N|UMC +UMDD|UltraPro MidCap400|P|UMDD|Y|100|N|UMDD +UMH|UMH Properties, Inc. Common Stock|N|UMH|N|100|N|UMH +UMH$A|UMH Properties, Inc. 8.25% Series A Cumulative Redeemable Preferred Stock, Liquidation Preference $25 per share|N|UMHpA|N|100|N|UMH-A +UMX|ProShares Ultra MSCI Mexico Capped IMI|P|UMX|Y|100|N|UMX +UN|Unilever NV Common Stock|N|UN|N|100|N|UN +UNF|Unifirst Corporation Common Stock|N|UNF|N|100|N|UNF +UNG|United States Natural Gas Fund LP|P|UNG|Y|100|N|UNG +UNH|UnitedHealth Group Incorporated Common Stock|N|UNH|N|100|N|UNH +UNL|United States 12 Month Natural Gas Fund|P|UNL|Y|100|N|UNL +UNM|Unum Group Common Stock|N|UNM|N|100|N|UNM +UNP|Union Pacific Corporation Common Stock|N|UNP|N|100|N|UNP +UNT|Unit Corporation Common Stock|N|UNT|N|100|N|UNT +UPL|Ultra Petroleum Corp. Common Stock|N|UPL|N|100|N|UPL +UPRO|ProShares UltraPro S&P 500|P|UPRO|Y|100|N|UPRO +UPS|United Parcel Service, Inc. Common Stock|N|UPS|N|100|N|UPS +UPV|ProShares Ultra FTSE Europe|P|UPV|Y|100|N|UPV +UPW|ProShares Ultra Utilities|P|UPW|Y|100|N|UPW +UQM|UQM TECHNOLOGIES INC Common Stock|A|UQM|N|100|N|UQM +URA|Global X Uranium ETF|P|URA|Y|100|N|URA +URE|ProShares Ultra Real Estate|P|URE|Y|100|N|URE +URG|Ur Energy Inc Common Shares (Canada)|A|URG|N|100|N|URG +URI|United Rentals, Inc. Common Stock|N|URI|N|100|N|URI +URR|Market Vectors Double Long Euro ETN|P|URR|N|100|N|URR +URTH|Ishares MSCI World Index Fund|P|URTH|Y|100|N|URTH +URTY|ProShares UltraPro Russell2000|P|URTY|Y|100|N|URTY +URZ|Uranerz Energy Corporation Common Stock|A|URZ|N|100|N|URZ +USA|Liberty All-Star Equity Fund Common Stock|N|USA|N|100|N|USA +USAC|USA Compression Partners, LP Common Units Representing Limited Partner Interests|N|USAC|N|100|N|USAC +USAG|United States Agriculture Index Fund ETV|P|USAG|Y|100|N|USAG +USB|U.S. Bancorp Common Stock|N|USB|N|100|N|USB +USB$A|U.S. Bancorp Depositary Shares, Each representing a 1/100th interest in a share of Series A Non-CumulativePerpetual Pfd Stock|N|USBpA|N|100|N|USB-A +USB$H|U.S. Bancorp Depositary Shares repstg 1/1000th Pfd Ser B|N|USBpH|N|100|N|USB-H +USB$M|U.S. Bancorp Depositary Shares Representing 1/1000th Interest in a Shares Series F|N|USBpM|N|100|N|USB-M +USB$N|US Bancorp Del DEPOSITARY SH S G|N|USBpN|N|100|N|USB-N +USB$O|US Bancorp Del Dep Shs Repstg 1/1000th Perp Pfd Ser H|N|USBpO|N|100|N|USB-O +USCI|United States Commodity Index Fund ETV|P|USCI|Y|100|N|USCI +USD|ProShares Ultra Semiconductors|P|USD|Y|100|N|USD +USDP|USD Partners LP Common Units representing limited partner interest|N|USDP|N|100|N|USDP +USDU|WisdomTree Bloomberg U.S. Dollar Bullish Fund|P|USDU|Y|100|N|USDU +USFR|WisdomTree Bloomberg Floating Rate Treasury Fund|P|USFR|Y|100|N|USFR +USG|USG Corporation Common Stock|N|USG|N|100|N|USG +USL|United States 12 Month Oil|P|USL|Y|100|N|USL +USM|United States Cellular Corporation Common Stock|N|USM|N|100|N|USM +USMI|United States Metals Index Fund ETV|P|USMI|Y|100|N|USMI +USMV|iShares MSCI USA Minimum Volatility ETF|P|USMV|Y|100|N|USMV +USNA|USANA Health Sciences, Inc. Common Stock|N|USNA|N|100|N|USNA +USO|United States Oil Fund|P|USO|Y|100|N|USO +USPH|U.S. Physical Therapy, Inc. Common Stock|N|USPH|N|100|N|USPH +UST|ProShares Ultra 7-10 Year Treasury|P|UST|Y|100|N|UST +USV|E-TRACS USB Bloomberg Commodity Index Exchange Traded Notes E-TRACS UBS Bloomberg CMCI Silver ETN|P|USV|N|100|N|USV +UTF|Cohen & Steers Infrastructure Fund, Inc Common Stock|N|UTF|N|100|N|UTF +UTG|Reaves Utility Income Fund Common Shares of Beneficial Interest|A|UTG|N|100|N|UTG +UTI|Universal Technical Institute Inc Common Stock|N|UTI|N|100|N|UTI +UTL|UNITIL Corporation Common Stock|N|UTL|N|100|N|UTL +UTLT|Deutsche X-trackers Regulated Utilities ETF|P|UTLT|Y|100|N|UTLT +UTX|United Technologies Corporation Common Stock|N|UTX|N|100|N|UTX +UTX$A|United Technologies Corp Corp Unit|N|UTXpA|N|100|N|UTX-A +UUP|PowerShares DB USD Index Bullish|P|UUP|Y|100|N|UUP +UUPT|PowerShares DB 3X Long US Dollar Index Futures ETN due October 31, 2020|P|UUPT|N|100|N|UUPT +UUU|Universal Security Instruments, Inc. Common Stock|A|UUU|N|100|N|UUU +UUUU|Energy Fuels Inc Ordinary Shares (Canada)|A|UUUU|N|100|N|UUUU +UVE|UNIVERSAL INSURANCE HOLDINGS INC Common Stock|N|UVE|N|100|N|UVE +UVV|Universal Corporation Common Stock|N|UVV|N|100|N|UVV +UVXY|ProShares Trust Ultra VIX Short Term Futures ETF|P|UVXY|Y|100|N|UVXY +UWM|ProShares Ultra Russell2000|P|UWM|Y|100|N|UWM +UWN|Nevada Gold & Casinos, Inc. Common Stock|A|UWN|N|100|N|UWN +UWTI|VelocityShares 3X Long Crude ETN linked to the S&P GSCI Crude Oil Index Excess Return|P|UWTI|N|100|N|UWTI +UXI|ProShares Ultra Industrials|P|UXI|Y|100|N|UXI +UXJ|ProShares Ultra MSCI Pacific ex-Japan|P|UXJ|Y|100|N|UXJ +UYG|ProShares Ultra Financials|P|UYG|Y|100|N|UYG +UYM|ProShares Ultra Basic Materials|P|UYM|Y|100|N|UYM +UZA|United States Cellular Corporation 6.95% Senior Notes due 2060|N|UZA|N|100|N|UZA +UZB|United States Cellular Corporation 7.25% Senior Notes due 2063|N|UZB|N|100|N|UZB +V|Visa Inc.|N|V|N|100|N|V +VAC|Marriot Vacations Worldwide Corporation Common Stock|N|VAC|N|100|N|VAC +VAL|Valspar Corporation (The) Common Stock|N|VAL|N|100|N|VAL +VALE|VALE S.A. American Depositary Shares Each Representing one common share|N|VALE|N|100|N|VALE +VALE.P|VALE S.A.|N|VALE/P|N|100|N|VALE.P +VAR|Varian Medical Systems, Inc. Common Stock|N|VAR|N|100|N|VAR +VAW|Vanguard Materials ETF - DNQ|P|VAW|Y|100|N|VAW +VB|Vanguard Small-Cap ETF - DNQ|P|VB|Y|100|N|VB +VBF|Invesco Bond Fund Common Stock|N|VBF|N|100|N|VBF +VBK|Vanguard Small-Cap Growth ETF - DNQ|P|VBK|Y|100|N|VBK +VBR|Vanguard Small-Cap Value ETF - DNQ|P|VBR|Y|100|N|VBR +VC|Visteon Corporation Common Stock|N|VC|N|100|N|VC +VCF|Delaware Investments Colorado Municipal Income Fund, Inc Common Stock|A|VCF|N|100|N|VCF +VCO|Vina Concha Y Toro Common Stock|N|VCO|N|100|N|VCO +VCR|Vanguard Consumer Discretion ETF - DNQ|P|VCR|Y|100|N|VCR +VCRA|Vocera Communications, Inc. Common Stock|N|VCRA|N|100|N|VCRA +VCV|Invesco California Value Municipal Income Trust Common Stock|N|VCV|N|100|N|VCV +VDC|Vanguard Consumer Staples ETF - DNQ|P|VDC|Y|100|N|VDC +VDE|Vanguard Energy ETF|P|VDE|Y|100|N|VDE +VEA|Vanguard FTSE Developed Markets ETF|P|VEA|Y|100|N|VEA +VEC|Vectrus, Inc. Common Stock|N|VEC|N|100|N|VEC +VEEV|Veeva Systems Inc. Class A Common Stock|N|VEEV|N|100|N|VEEV +VEGA|AdvisorShares STAR Global Buy-Write ETF|P|VEGA|Y|100|N|VEGA +VEGI|iShares MSCI Agriculture Producers Fund|P|VEGI|Y|100|N|VEGI +VET|Vermilion Energy Inc. Common (Canada)|N|VET|N|100|N|VET +VEU|Vanguard FTSE All World Ex US ETF|P|VEU|Y|100|N|VEU +VFC|V.F. Corporation Common Stock|N|VFC|N|100|N|VFC +VFH|Vanguard Financials ETF - DNQ|P|VFH|Y|100|N|VFH +VFL|Delaware Investments National Municipal Income Fund Common Stock|A|VFL|N|100|N|VFL +VG|Vonage Holdings Corp. Common Stock|N|VG|N|100|N|VG +VGI|Virtus Global Multi-Sector Income Fund Common Shares of Beneficial Interest|N|VGI|N|100|N|VGI +VGK|Vanguard FTSEEuropean ETF|P|VGK|Y|100|N|VGK +VGM|Invesco Trust for Investment Grade Municipals Common Stock (DE)|N|VGM|N|100|N|VGM +VGR|Vector Group Ltd. Common Stock|N|VGR|N|100|N|VGR +VGT|Vanguard Information Tech ETF - DNQ|P|VGT|Y|100|N|VGT +VGZ|Vista Gold Corp Common Stock|A|VGZ|N|100|N|VGZ +VHC|VirnetX Holding Corp Common Stock|A|VHC|N|100|N|VHC +VHI|Valhi, Inc. Common Stock|N|VHI|N|100|N|VHI +VHT|Vanguard Health Care ETF - DNQ|P|VHT|Y|100|N|VHT +VIG|Vanguard Div Appreciation ETF - DNQ|P|VIG|Y|100|N|VIG +VII|Vicon Industries, Inc, Common Stock|A|VII|N|100|N|VII +VIOG|Vanguard S&P Small-Cap 600 Growth ETF|P|VIOG|Y|100|N|VIOG +VIOO|Vanguard S&P Small-Cap 600 ETF|P|VIOO|Y|100|N|VIOO +VIOV|Vanguard S&P Small-Cap 600 Value ETF|P|VIOV|Y|100|N|VIOV +VIPS|Vipshop Holdings Limited American Depositary Shares, each representing two ordinary shares|N|VIPS|N|100|N|VIPS +VIS|Vanguard Industrials ETF - DNQ|P|VIS|Y|100|N|VIS +VISI|Volt Information Sciences, Inc. Common Stock|A|VISI|N|100|N|VISI +VIV|Telefonica Brasil, S.A. ADS|N|VIV|N|100|N|VIV +VIXH|First Trust CBOE S&P 500 VIX Tail Hedge Fund|P|VIXH|Y|100|N|VIXH +VIXM|ProShares Trust VIX Mid-Term Futures ETF|P|VIXM|Y|100|N|VIXM +VIXY|ProShares Trust VIX Short-Term Futures ETF|P|VIXY|Y|100|N|VIXY +VJET|voxeljet AG American Depositary Shares, each representing one-fifth of an ordinary share/|N|VJET|N|100|N|VJET +VKI|Invesco Advantage Municipal Income Trust II Common Shares of Beneficial Interest (DE)|A|VKI|N|100|N|VKI +VKQ|Invesco Municipal Trust Common Stock|N|VKQ|N|100|N|VKQ +VLO|Valero Energy Corporation Common Stock|N|VLO|N|100|N|VLO +VLP|Valero Energy Partners LP Common Units representing limited partner interests|N|VLP|N|100|N|VLP +VLRS|Controladora Vuela Compania de Aviacion, S.A.B. de C.V. American Depositary Shares, each representing ten (10) Ordinary Participation Certificates|N|VLRS|N|100|N|VLRS +VLT|Invesco High Income Trust II|N|VLT|N|100|N|VLT +VLU|SPDR S&P 1500 Value Tilt ETF|P|VLU|Y|100|N|VLU +VLUE|iShares MSCI USA Value Factor|P|VLUE|Y|100|N|VLUE +VLY|Valley National Bancorp Common Stock|N|VLY|N|100|N|VLY +VLY.W|Valley National Bancorp Warrants Expiring 11/14/2018|N|VLY/WS|N|100|N|VLY+ +VMC|Vulcan Materials Company (Holding Company) Common Stock|N|VMC|N|100|N|VMC +VMEM|Violin Memory, Inc. Common Stock|N|VMEM|N|100|N|VMEM +VMI|Valmont Industries, Inc. Common Stock|N|VMI|N|100|N|VMI +VMM|Delaware Investments Minnesota Municipal Income Fund II, Inc. Common Stock|A|VMM|N|100|N|VMM +VMO|Invesco Municipal Opportunity Trust Common Stock|N|VMO|N|100|N|VMO +VMW|Vmware, Inc. Common stock, Class A|N|VMW|N|100|N|VMW +VNCE|Vince Holding Corp. Common Stock|N|VNCE|N|100|N|VNCE +VNM|Market Vectors Vietnam ETF|P|VNM|Y|100|N|VNM +VNO|Vornado Realty Trust Common Stock|N|VNO|N|100|N|VNO +VNO$G|Vornado Realty Trust Preferred Series G|N|VNOpG|N|100|N|VNO-G +VNO$I|Vornado Realty Trust Preferred Series I|N|VNOpI|N|100|N|VNO-I +VNO$J|Vornado Realty Trust PFD CUMULATIVE RED SER J %|N|VNOpJ|N|100|N|VNO-J +VNO$K|Vornado Realty Trust Pfd S K|N|VNOpK|N|100|N|VNO-K +VNO$L|Vornado Realty Trust Pfd Ser L %|N|VNOpL|N|100|N|VNO-L +VNQ|Vanguard REIT ETF - DNQ|P|VNQ|Y|100|N|VNQ +VNTV|Vantiv, Inc. Class A Common Stock|N|VNTV|N|100|N|VNTV +VO|Vanguard Mid-Cap ETF - DNQ|P|VO|Y|100|N|VO +VOC|VOC Energy Trust Units of Beneficial Interest|N|VOC|N|100|N|VOC +VOE|Vanguard Mid-Cap Value ETF - DNQ|P|VOE|Y|100|N|VOE +VOO|Vanguard S&P 500 ETF|P|VOO|Y|100|N|VOO +VOOG|Vanguard S&P 500 Growth ETF|P|VOOG|Y|100|N|VOOG +VOOV|Vanguard S&P 500 Value ETF|P|VOOV|Y|100|N|VOOV +VOT|Vanguard Mid-Cap Growth ETF - DNQ|P|VOT|Y|100|N|VOT +VOX|Vanguard Telecom ETF - DNQ|P|VOX|Y|100|N|VOX +VOYA|Voya Financial, Inc. Common Stock|N|VOYA|N|100|N|VOYA +VPG|Vishay Precision Group, Inc. Common Stock|N|VPG|N|100|N|VPG +VPL|Vanguard FTSE Pacific ETF|P|VPL|Y|100|N|VPL +VPU|Vanguard Utilities ETF - DNQ|P|VPU|Y|100|N|VPU +VPV|Invesco Pennsylvania Value Municipal Income Trust Common Stock (DE)|N|VPV|N|100|N|VPV +VQT|Barclays ETN S&P VEQTOR ETN|P|VQT|N|100|N|VQT +VQTS|ETRACS S&P 500 VEQTOR Switch Index ETN due December 2, 2044|P|VQTS|N|100|N|VQTS +VR|Validus Holdings, Ltd. Common Shares|N|VR|N|100|N|VR +VRD|SPDR S&P VRDO Municipal Bond ETF|P|VRD|Y|100|N|VRD +VRP|PowerShares Variable Rate Preferred Portfolio|P|VRP|Y|100|N|VRP +VRS|Verso Corporation Common Stock|N|VRS|N|100|N|VRS +VRTV|Veritiv Corporation Common Stock|N|VRTV|N|100|N|VRTV +VRX|Valeant Pharmaceuticals International, Inc.|N|VRX|N|100|N|VRX +VSH|Vishay Intertechnology, Inc. Common Stock|N|VSH|N|100|N|VSH +VSI|Vitamin Shoppe, Inc Common Stock|N|VSI|N|100|N|VSI +VSLR|Vivint Solar, Inc. Common Stock|N|VSLR|N|100|N|VSLR +VSPY|Direxion S&P 500 Volatility Response Shares|P|VSPY|Y|100|N|VSPY +VSR|Versar, Inc. Common Stock|A|VSR|N|100|N|VSR +VSS|Vanguard FTSE All-Wld ex-US SmCp Idx ETF|P|VSS|Y|100|N|VSS +VT|Vanguard Total World Stock Index ETF|P|VT|Y|100|N|VT +VTA|Invesco Credit Opportunities Fund Common Shares of Beneficial Interest|N|VTA|N|100|N|VTA +VTG|Vantage Drilling Company|A|VTG|N|100|N|VTG +VTI|Vanguard Total Stock Market ETF|P|VTI|Y|100|N|VTI +VTN|Invesco Trust for Investment Grade New York Municipals Common Stock|N|VTN|N|100|N|VTN +VTR|Ventas, Inc. Common Stock|N|VTR|N|100|N|VTR +VTRB|Ventas Realty, Limited Partnership // Ventas Capital Corporation 5.45% Senior Notes due 2043|N|VTRB|N|100|N|VTRB +VTTI|VTTI Energy Partners LP Common Units representing limited partner interests|N|VTTI|N|100|N|VTTI +VTV|Vanguard Value ETF - DNQ|P|VTV|Y|100|N|VTV +VUG|Vanguard Growth ETF - DNQ|P|VUG|Y|100|N|VUG +VV|Vanguard Large-Cap ETF - DNQ|P|VV|Y|100|N|VV +VVC|Vectren Corporation Common Stock|N|VVC|N|100|N|VVC +VVI|Viad Corp Common Stock|N|VVI|N|100|N|VVI +VVR|Invesco Senior Income Trust Common Stock (DE)|N|VVR|N|100|N|VVR +VWO|Vanguard FTSE Emerging Markets ETF|P|VWO|Y|100|N|VWO +VXF|Vanguard Extended Market ETF - DNQ|P|VXF|Y|100|N|VXF +VXX|iPath S&P 500 VIX Short Term Futures TM ETN|P|VXX|N|100|N|VXX +VXZ|iPath S&P 500 VIX Mid-Term Futures ETN|P|VXZ|N|100|N|VXZ +VYM|Vanguard High Dividend Yield ETF - DNQ|P|VYM|Y|100|N|VYM +VZ|Verizon Communications Inc. Common Stock|N|VZ|N|100|N|VZ +VZA|Verizon Communications Inc. 5.90% Notes due 2054|N|VZA|N|100|N|VZA +W|Wayfair Inc. Class A Common Stock|N|W|N|100|N|W +WAB|Westinghouse Air Brake Technologies Corporation Common Stock|N|WAB|N|100|N|WAB +WAC|Walter Investment Management Corp. Common Stock|N|WAC|N|100|N|WAC +WAGE|WageWorks, Inc. Common Stock $0.001 par value|N|WAGE|N|100|N|WAGE +WAIR|Wesco Aircraft Holdings, Inc. Common Stock|N|WAIR|N|100|N|WAIR +WAL|Western Alliance Bancorporation Common Stock (DE)|N|WAL|N|100|N|WAL +WAT|Waters Corporation Common Stock|N|WAT|N|100|N|WAT +WBAI|500.com Limited American Depositary Shares, each representing 10 Class A shares|N|WBAI|N|100|N|WBAI +WBC|Wabco Holdings Inc. Common Stock|N|WBC|N|100|N|WBC +WBIA|WBI SMID Tactical Growth Shares|P|WBIA|Y|100|N|WBIA +WBIB|WBI SMID Tactical Value Shares|P|WBIB|Y|100|N|WBIB +WBIC|WBI SMID Tactical Yield Shares|P|WBIC|Y|100|N|WBIC +WBID|WBI SMID Tactical Select Shares|P|WBID|Y|100|N|WBID +WBIE|WBI Large Cap Tactical Growth Shares|P|WBIE|Y|100|N|WBIE +WBIF|WBI Large Cap Tactical Value Shares|P|WBIF|Y|100|N|WBIF +WBIG|WBI Large Cap Tactical Yield Shares|P|WBIG|Y|100|N|WBIG +WBIH|WBI Tactical High Income Shares|P|WBIH|Y|100|N|WBIH +WBII|WBI Tactical Income Shares|P|WBII|Y|100|N|WBII +WBIL|WBI Large Cap Tactical Select Shares|P|WBIL|Y|100|N|WBIL +WBK|Westpac Banking Corporation Common Stock|N|WBK|N|100|N|WBK +WBS|Webster Financial Corporation Common Stock|N|WBS|N|100|N|WBS +WBS$E|Webster Financial Corporation Dep Shs Repstg 1/1000th Perp Pfd Ser E|N|WBSpE|N|100|N|WBS-E +WBS.W|Webster Financial Corporation Warrant (expiring November 21, 2018)|N|WBS/WS|N|100|N|WBS+ +WCC|WESCO International, Inc. Common Stock|N|WCC|N|100|N|WCC +WCG|Wellcare Health Plans, Inc. Common Stock|N|WCG|N|100|N|WCG +WCIC|WCI Communities, Inc. Common Stock|N|WCIC|N|100|N|WCIC +WCN|Waste Connections, Inc. Common Stock|N|WCN|N|100|N|WCN +WD|Walker & Dunlop, Inc Common Stock|N|WD|N|100|N|WD +WDAY|Workday, Inc. Common Stock|N|WDAY|N|100|N|WDAY +WDIV|SPDR S&P Global Dividend|P|WDIV|Y|100|N|WDIV +WDR|Waddell & Reed Financial, Inc. Common Stock|N|WDR|N|100|N|WDR +WDTI|WisdomTree Managed Futures Strategy Fund|P|WDTI|Y|100|N|WDTI +WEA|Western Asset Bond Fund Share of Beneficial Interest|N|WEA|N|100|N|WEA +WEAT|Teucrium Wheat Fund ETV|P|WEAT|Y|100|N|WEAT +WEC|Wisconsin Energy Corporation Common Stock|N|WEC|N|100|N|WEC +WEET|iPath Pure Beta Grains ETN|P|WEET|N|100|N|WEET +WES|Western Gas Partners, LP Limited Partner Interests|N|WES|N|100|N|WES +WEX|WEX Inc. common stock|N|WEX|N|100|N|WEX +WF|Woori Bank American Depositary Shares (Each representing 3 shares of Common Stock)|N|WF|N|100|N|WF +WFC|Wells Fargo & Company Common Stock|N|WFC|N|100|N|WFC +WFC$J|Wells Fargo & Company Wells Fargo & Company 8.00% Non-Cumulative Perpetual Class A Preferred Stock, Series J|N|WFCpJ|N|100|N|WFC-J +WFC$L|Wells Fargo & Company Wells Fargo & Company 7.50% Non-Cumulative Perpetual Convertible Class A Preferred Stock, Series L|N|WFCpL|N|100|N|WFC-L +WFC$N|Wells Fargo & Company Dep Shs Repstg 1/1000th Perp Pfd Cl A Ser N|N|WFCpN|N|100|N|WFC-N +WFC$O|Wells Fargo & Company Depositary Shares Representing 1/1000th Perpetual Preferred Class A Series O|N|WFCpO|N|100|N|WFC-O +WFC$P|Wells Fargo & Company Dep Shs Repstg 1/1000th Int Non Cum Perp Cl A Pfd (Ser P)|N|WFCpP|N|100|N|WFC-P +WFC$Q|Wells Fargo & Company Depositary Shares Representing 1/1000th Interest Perpetual Preferred Class A Series Q Fixed to Floating|N|WFCpQ|N|100|N|WFC-Q +WFC$R|Wells Fargo & Company Dep Shs Repstg 1/1000th Int Perp Pfd Cl A (Ser R Fixed To Flltg)|N|WFCpR|N|100|N|WFC-R +WFC$T|Wells Fargo & Company New Depository Share Representing 1/1000th Perp. Preferred Class A Series T|N|WFCpT|N|100|N|WFC-T +WFC.W|Wells Fargo & Company Warrants expiring October 28, 2018|N|WFC/WS|N|100|N|WFC+ +WFE$A|Wells Fargo & Company Cumulative Perpetual Preferred Stock, Series A, Liquidation Preference $25 per share|N|WFEpA|N|100|N|WFE-A +WFT|Weatherford International plc (Ireland)|N|WFT|N|100|N|WFT +WG|Willbros Group, Inc. (DE) Common Stock|N|WG|N|100|N|WG +WGA|AG&E Holdings, Inc. Common Stock|A|WGA|N|100|N|WGA +WGL|WGL Holdings IncCommon Stock|N|WGL|N|100|N|WGL +WGO|Winnebago Industries, Inc. Common Stock|N|WGO|N|100|N|WGO +WGP|Western Gas Equity Partners, LP Common Units Representing Limited Partner Interests|N|WGP|N|100|N|WGP +WHG|Westwood Holdings Group Inc Common Stock|N|WHG|N|100|N|WHG +WHR|Whirlpool Corporation Common Stock|N|WHR|N|100|N|WHR +WHX|Whiting USA Trust I Whiting USA Trust I|N|WHX|N|100|N|WHX +WHZ|Whiting USA Trust II Units of Beneficial Interest|N|WHZ|N|100|N|WHZ +WIA|Western Asset/Claymore Inflation-Linked Securities & Income Fund Common Shares of Beneficial Interest|N|WIA|N|100|N|WIA +WIL|Barclays PLC Barclays Women in Leadership ETN|P|WIL|N|100|N|WIL +WIP|SPDR DB International Government Inflation-Protected Bond ETF|P|WIP|Y|100|N|WIP +WIT|Wipro Limited Common Stock|N|WIT|N|100|N|WIT +WITE|ETFS White Metals Basket Trust|P|WITE|Y|100|N|WITE +WIW|Western Asset/Claymore Inflation-Linked Opportunities & Income Fund Common Shares of Beneficial Interest|N|WIW|N|100|N|WIW +WK|Workiva Inc. Class A Common Stock|N|WK|N|100|N|WK +WLH|Lyon William Homes Common Stock (Class A)|N|WLH|N|100|N|WLH +WLK|Westlake Chemical Corporation Common Stock|N|WLK|N|100|N|WLK +WLKP|Westlake Chemical Partners LP Common Units representing limited partner interests|N|WLKP|N|100|N|WLKP +WLL|Whiting Petroleum Corporation Common Stock|N|WLL|N|100|N|WLL +WLT|Walter Energy, Inc. Common Stock|N|WLT|N|100|N|WLT +WM|Waste Management, Inc. Common Stock|N|WM|N|100|N|WM +WMB|Williams Companies, Inc. (The) Common Stock|N|WMB|N|100|N|WMB +WMC|Western Asset Mortgage Capital Corporation Common Stock|N|WMC|N|100|N|WMC +WMCR|Wilshire Micro-Cap ETF (based on the Wilshire US Micro-Cap Index)|P|WMCR|Y|100|N|WMCR +WMK|Weis Markets, Inc. Common Stock|N|WMK|N|100|N|WMK +WMLP|Westmoreland Resource Partners, LP Common Units representing Limited Partner Interests|N|WMLP|N|100|N|WMLP +WMS|Advanced Drainage Systems, Inc. Common Stock|N|WMS|N|100|N|WMS +WMT|Wal-Mart Stores, Inc. Common Stock|N|WMT|N|100|N|WMT +WMW|DEUTSCHE BANK AKTIENGESELLSCHAFT ELEMENTS Linked to the Morningstar Wide Moat Focus Total Return Index due October 24, 2022|P|WMW|N|100|N|WMW +WNC|Wabash National Corporation Common Stock|N|WNC|N|100|N|WNC +WNR|Western Refining Inc. Western Refining, Inc. Common Stock|N|WNR|N|100|N|WNR +WNRL|Western Refining Logistics, LP Common Units representing limited partner interests|N|WNRL|N|100|N|WNRL +WNS|WNS (Holdings) Limited Sponsored ADR (Jersey)|N|WNS|N|100|N|WNS +WOR|Worthington Industries, Inc. Common Stock|N|WOR|N|100|N|WOR +WPC|W.P. Carey Inc. REIT|N|WPC|N|100|N|WPC +WPG|WP Glimcher Inc. Common Stock|N|WPG|N|100|N|WPG +WPG$G|Washington Prime Group Inc. 8.125% Series G Cumulative Redeemable Preferred SBI|N|WPGpG|N|100|N|WPG-G +WPG$H|Washington Prime Group Inc. 7.5% Series H Cumulative Redeemable Preferred SBI|N|WPGpH|N|100|N|WPG-H +WPG$I|Washington Prime Group Inc. 6.875% Series I Cumulative Redeemable Preferred SBI|N|WPGpI|N|100|N|WPG-I +WPP|Wausau Paper Corp. Common Stock|N|WPP|N|100|N|WPP +WPS|iShares International Developed Property ETF|P|WPS|Y|100|N|WPS +WPT|World Point Terminals, LP Common Units representing Limited Partner Interests|N|WPT|N|100|N|WPT +WPX|WPX Energy, Inc. Common Stock|N|WPX|N|100|N|WPX +WPZ|Williams Partners L.P. Common Units|N|WPZ|N|100|N|WPZ +WR|Westar Energy, Inc. Common Stock|N|WR|N|100|N|WR +WRB|W.R. Berkley Corporation Common Stock|N|WRB|N|100|N|WRB +WRB$B|W.R. Berkley Corporation 5.625% Subordinated Debentures due 2053|N|WRBpB|N|100|N|WRB-B +WRE|Washington Real Estate Investment Trust Common Stock|N|WRE|N|100|N|WRE +WREI|Wilshire US REIT|P|WREI|Y|100|N|WREI +WRI|Weingarten Realty Investors Common Stock|N|WRI|N|100|N|WRI +WRI$F|Weingarten Realty Investors Depository Shares Restg 1/100 Pfd Ser F|N|WRIpF|N|100|N|WRI-F +WRN|Western Copper and Gold Corporation Common Stock|A|WRN|N|100|N|WRN +WRT|Winthrop Realty Trust 7.75% Senior Notes due 2022|N|WRT|N|100|N|WRT +WSH|Willis Group Holdings Public Limited (Ireland) Common Stock|N|WSH|N|100|N|WSH +WSM|Williams-Sonoma, Inc. Common Stock (DE)|N|WSM|N|100|N|WSM +WSO|Watsco, Inc. Common Stock|N|WSO|N|100|N|WSO +WSO.B|Watsco, Inc. Class B Common Stock|N|WSO/B|N|100|N|WSO.B +WSR|Whitestone REIT Common Shares|N|WSR|N|100|N|WSR +WST|West Pharmaceutical Services, Inc. Common Stock|N|WST|N|100|N|WST +WTI|W&T Offshore, Inc. Common Stock|N|WTI|N|100|N|WTI +WTM|White Mountains Insurance Group, Ltd. Common Stock|N|WTM|N|100|N|WTM +WTR|Aqua America, Inc. Common Stock|N|WTR|N|100|N|WTR +WTS|Watts Water Technologies, Inc. Class A Common Stock|N|WTS|N|100|N|WTS +WTT|Wireless Telecom Group, Inc. Common Stock|A|WTT|N|100|N|WTT +WTW|Weight Watchers International Inc Weight Watchers International Inc|N|WTW|N|100|N|WTW +WU|Western Union Company (The) Common Stock|N|WU|N|100|N|WU +WUBA|58.com Inc. American Depositary Shares, each representing 2 Class A Ordinary Shares|N|WUBA|N|100|N|WUBA +WWAV|Whitewave Foods Company (The) Common Stock|N|WWAV|N|100|N|WWAV +WWE|World Wrestling Entertainment, Inc. Class A Common Stock|N|WWE|N|100|N|WWE +WWW|Wolverine World Wide, Inc. Common Stock|N|WWW|N|100|N|WWW +WX|WuXi PharmaTech (Cayman) Inc. American Depositary Shares|N|WX|N|100|N|WX +WY|Weyerhaeuser Company Common Stock|N|WY|N|100|N|WY +WY$A|Weyerhaeuser Company Pref Conv Ser A|N|WYpA|N|100|N|WY-A +WYDE|ProShares CDS Short North American HY Credit ETF|Z|WYDE|Y|100|N|WYDE +WYN|Wyndham Worldwide Corp Common Stock|N|WYN|N|100|N|WYN +WYY|WidePoint Corporation Common Stock|A|WYY|N|100|N|WYY +X|United States Steel Corporation Common Stock|N|X|N|100|N|X +XAR|SPDR S&P Aerospace & Defense ETF|P|XAR|Y|100|N|XAR +XBI|SPDR Series Trust SPDR S&P Biotech ETF|P|XBI|Y|100|N|XBI +XCO|EXCO Resources, Inc. Exco Resources, Inc. Common Stock|N|XCO|N|100|N|XCO +XEC|Cimarex Energy Co Common Stock|N|XEC|N|100|N|XEC +XEL|Xcel Energy Inc. Common Stock|N|XEL|N|100|N|XEL +XES|SPDR Series Trust SPDR S&P Oil & Gas Equipment & Services ETF|P|XES|Y|100|N|XES +XHB|SPDR Series Trust SPDR Homebuilders ETF|P|XHB|Y|100|N|XHB +XHE|SPDR S&P Health Care Equipment|P|XHE|Y|100|N|XHE +XHS|SPDR S&P Health Care Services ETF|P|XHS|Y|100|N|XHS +XIN|Xinyuan Real Estate Co Ltd American Depositary Shares|N|XIN|N|100|N|XIN +XKE|Lehman ABS Corporation Corporate-Backed Trust Certificates: 7.75% Toys-R-Us Debenture Backed Series 2001-31|N|XKE|N|100|N|XKE +XL|XL Group plc|N|XL|N|100|N|XL +XLB|Materials Select Sector SPDR|P|XLB|Y|100|N|XLB +XLE|SPDR Select Sector Fund - Energy Select Sector|P|XLE|Y|100|N|XLE +XLF|SPDR Select Sector Fund - Financial|P|XLF|Y|100|N|XLF +XLG|Guggenheim Russell Top 50 Mega Cap ETF|P|XLG|Y|100|N|XLG +XLI|SPDR Select Sector Fund - Industrial|P|XLI|Y|100|N|XLI +XLK|SPDR Select Sector Fund - Technology|P|XLK|Y|100|N|XLK +XLP|SPDR Select Sector Fund - Consumer Staples|P|XLP|Y|100|N|XLP +XLS|Exelis Inc. Common Stock New|N|XLS|N|100|N|XLS +XLU|SPDR Select Sector Fund - Utilities|P|XLU|Y|100|N|XLU +XLV|SPDR Select Sector Fund - Health Care|P|XLV|Y|100|N|XLV +XLY|SPDR Select Sector Fund - Consumer Discretionary|P|XLY|Y|100|N|XLY +XME|SPDR S&P Metals & Mining ETF|P|XME|Y|100|N|XME +XMLV|PowerShares S&P MidCap Low Volatility Portfolio|P|XMLV|Y|100|N|XMLV +XMPT|Market Vectors CEF Municipal Income ETF|P|XMPT|Y|100|N|XMPT +XNY|China Xiniya Fashion Limited American Depositary Shares, each representing four ordinary shares|N|XNY|N|100|N|XNY +XOM|Exxon Mobil Corporation Common Stock|N|XOM|N|100|N|XOM +XON|Intrexon Corporation Common Stock|N|XON|N|100|N|XON +XOP|SPDR S&P Oil & Gas Explor & Product|P|XOP|Y|100|N|XOP +XOVR|SPDR BofA Merrill Lynch Crossover Corporate Bond ETF|P|XOVR|Y|100|N|XOVR +XOXO|XO Group, Inc. Common Stock|N|XOXO|N|100|N|XOXO +XPH|SPDR S&P Pharmaceuticals ETF|P|XPH|Y|100|N|XPH +XPL|Solitario Exploration & Royalty Corp Common Stock|A|XPL|N|100|N|XPL +XPO|XPO Logistics, Inc.|N|XPO|N|100|N|XPO +XPP|ProShares Ultra FTSE China 50|P|XPP|Y|100|N|XPP +XRA|Exeter Resource Corporation Ordinary Shares (Canada)|A|XRA|N|100|N|XRA +XRM|Xerium Technologies, Inc. New Common Stock|N|XRM|N|100|N|XRM +XRS|TAL Education Group American Depositary Shares, each representing 2 Class A common shares|N|XRS|N|100|N|XRS +XRT|SPDR S&P Retail ETF|P|XRT|Y|100|N|XRT +XRX|Xerox Corporation Common Stock|N|XRX|N|100|N|XRX +XSD|SPDR S&P Semiconductor ETF|P|XSD|Y|100|N|XSD +XSLV|PowerShares S&P SmallCap Low Volatility Portfolio|P|XSLV|Y|100|N|XSLV +XSOE|WisdomTree Emerging Markets Ex-State Owned Enterprises Fund|P|XSOE|Y|100|N|XSOE +XSW|SPDR S&P Software & Services ETF|P|XSW|Y|100|N|XSW +XTL|SPDR S&P Telecom ETF|P|XTL|Y|100|N|XTL +XTN|SPDR S&P Transportation ETF|P|XTN|Y|100|N|XTN +XUE|Xueda Education Group American Depositary Shares, each representing two Ordinary Shares, $0.0001 par value|N|XUE|N|100|N|XUE +XVIX|UBS AG Exchange Traded Access Securities (E-TRACS) Daily Long Short VIX ETN due November 30, 2040|P|XVIX|N|100|N|XVIX +XVZ|iPath S&P 500 Dynamic VIX ETN|P|XVZ|N|100|N|XVZ +XXII|22nd Century Group, Inc. Common Stock|A|XXII|N|100|N|XXII +XXV|iPath Inverse S&P 500 VIX Short-Term Futures ETN|P|XXV|N|100|N|XXV +XYL|Xylem Inc. Common Stock New|N|XYL|N|100|N|XYL +Y|Alleghany Corporation Common Stock|N|Y|N|100|N|Y +YANG|Direxion Daily FTSE China Bear 3x Shares|P|YANG|Y|100|N|YANG +YAO|Guggenheim China All-Cap ETF|P|YAO|Y|100|N|YAO +YCL|ProShares Ultra Yen|P|YCL|Y|100|N|YCL +YCS|ProShares UltraShort Yen New|P|YCS|Y|100|N|YCS +YDKN|Yadkin Financial Corporation Common Stock|N|YDKN|N|100|N|YDKN +YELP|Yelp Inc. Class A Common Stock|N|YELP|N|100|N|YELP +YGE|Yingli Green Energy Holding Company Limited ADR|N|YGE|N|100|N|YGE +YGRO|Royal Bank of Canada Exchange Traded Notes due July 19, 2034 Linked to the Yorkville MLP Distribution Growth Leaders Liquid PR Index|P|YGRO|N|100|N|YGRO +YINN|Direxion Daily FTSE China Bull 3x Shares|P|YINN|Y|100|N|YINN +YMLI|Yorkville High Income Infrastructure MLP|P|YMLI|Y|100|N|YMLI +YMLP|Yorkville High Income MLP Exchange Traded Concepts|P|YMLP|Y|100|N|YMLP +YOKU|Youku Tudou Inc. American Depositary Shares, each representing 18 Class A ordinary shares.|N|YOKU|N|100|N|YOKU +YPF|YPF Sociedad Anonima Common Stock|N|YPF|N|100|N|YPF +YUM|Yum! Brands, Inc.|N|YUM|N|100|N|YUM +YUMA|Yuma Energy, Inc.|A|YUMA|N|100|N|YUMA +YUMA$A|Yuma Energy, Inc. 9.25% Series A Cumulative Redeemable Preferred Stock|A|YUMApA|N|100|N|YUMA-A +YUME|YuMe, Inc. Common Stock|N|YUME|N|100|N|YUME +YXI|ProShares Short FTSE China 50|P|YXI|Y|100|N|YXI +YYY|YieldShares High Income ETF|P|YYY|Y|100|N|YYY +YZC|Yanzhou Coal Mining Company Limited Common Stock|N|YZC|N|100|N|YZC +ZA|Zuoan Fashion Limited American Depositary Shares|N|ZA|N|100|N|ZA +ZAYO|Zayo Group Holdings, Inc. Common Stock|N|ZAYO|N|100|N|ZAYO +ZB$A|Zions Bancorporation Depositary Shares (Each representing 1/40th Interest in a Share of Series A Floating-Rate Non-Cumulative Perpetual Preferred Stock)|N|ZBpA|N|100|N|ZB-A +ZB$F|Zions Bancorporation Dep shs Repstg 1/40th Int Sh Ser F Fxd Rate Non Cum (Perp Pfd Stk)|N|ZBpF|N|100|N|ZB-F +ZB$G|Zions Bancorporation Dep Shs Repstg 1/40th Perp Pfd Ser G|N|ZBpG|N|100|N|ZB-G +ZB$H|Zions Bancorporation Dep Shs Repstg 1/40th Int Sh Ser H Perp Pfd Stk|N|ZBpH|N|100|N|ZB-H +ZBB|ZBB Energy Corporation Common Stock|A|ZBB|N|100|N|ZBB +ZBK|Zions Bancorporation 6.95% Fixed-to-Floating Rate Subordinated Notes due September 15, 2028|N|ZBK|N|100|N|ZBK +ZBZX|BATS BZX Exchange test issue|Z|ZBZX|N|100|Y|ZBZX +ZEN|Zendesk, Inc. Common Stock|N|ZEN|N|100|N|ZEN +ZEP|Zep Inc. Common Stock|N|ZEP|N|100|N|ZEP +ZF|Zweig Fund, Inc. (The) Common Stock|N|ZF|N|100|N|ZF +ZFC|ZAIS Financial Corp. Common Stock|N|ZFC|N|100|N|ZFC +ZLRG|ETFS Zacks Earnings Large-Cap U.S. Index Fund|P|ZLRG|Y|100|N|ZLRG +ZMH|Zimmer Holdings, Inc. Common Stock|N|ZMH|N|100|N|ZMH +ZMLP|Direxion Zacks MLP High Income Shares|P|ZMLP|Y|100|N|ZMLP +ZNH|China Southern Airlines Company Limited Common Stock|N|ZNH|N|100|N|ZNH +ZOES|Zoe's Kitchen, Inc. Common Stock|N|ZOES|N|100|N|ZOES +ZPIN|Zhaopin Limited American Depositary Shares, each reprenting two Ordinary Shares|N|ZPIN|N|100|N|ZPIN +ZQK|Quiksilver, Inc. Common Stock|N|ZQK|N|100|N|ZQK +ZROZ|PIMCO 25 Year Zero Coupon U.S. Treasury Index Exchange-Traded Fund|P|ZROZ|Y|100|N|ZROZ +ZSL|ProShares UltraShort Silver|P|ZSL|Y|100|N|ZSL +ZSML|ETFS Zacks Earnings Small-Cap U.S. Index Fund|P|ZSML|Y|100|N|ZSML +ZTEST|BATS BZX Exchange Common Stock (test issue)|Z|ZTEST|N|100|Y|ZTEST +ZTR|Zweig Total Return Fund, Inc. (The) Common Stock|N|ZTR|N|100|N|ZTR +ZTS|Zoetis Inc. Class A Common Stock|N|ZTS|N|100|N|ZTS +ZVV|NYSE ARCA test stock|P|ZVV|N|100|Y|ZVV ZX|China Zenix Auto International Limited American Depositary Shares, each representing four ordinary shares.|N|ZX|N|100|N|ZX \ No newline at end of file diff --git a/dg-core/src/test/java/org/finra/datagenerator/consumer/DataConsumerTest.java b/dg-core/src/test/java/org/finra/datagenerator/consumer/DataConsumerTest.java index 16b0f7f6..e5fc16e8 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/consumer/DataConsumerTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/consumer/DataConsumerTest.java @@ -1,324 +1,324 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.consumer; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.concurrent.Future; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; - -import org.eclipse.jetty.server.Connector; -import org.eclipse.jetty.server.Handler; -import org.eclipse.jetty.server.NetworkConnector; -import org.eclipse.jetty.server.Request; -import org.eclipse.jetty.server.Server; -import org.eclipse.jetty.server.handler.AbstractHandler; -import org.finra.datagenerator.reporting.ReportingHandler; -import org.finra.datagenerator.writer.DataWriter; -import org.junit.Assert; + +import org.eclipse.jetty.server.Connector; +import org.eclipse.jetty.server.Handler; +import org.eclipse.jetty.server.NetworkConnector; +import org.eclipse.jetty.server.Request; +import org.eclipse.jetty.server.Server; +import org.eclipse.jetty.server.handler.AbstractHandler; +import org.finra.datagenerator.reporting.ReportingHandler; +import org.finra.datagenerator.writer.DataWriter; +import org.junit.Assert; import org.junit.Test; - -/** - * Created by RobbinBr on 7/2/2014. - */ + +/** + * Created by RobbinBr on 7/2/2014. + */ public class DataConsumerTest { - - private Server server; + + private Server server; private int requestCount; - - private String runJetty() throws Exception { + + private String runJetty() throws Exception { requestCount = 0; - - if (server != null) { - server.stop(); - server = null; + + if (server != null) { + server.stop(); + server = null; } - - server = new Server(0); + + server = new Server(0); Handler jettyHandler = new AbstractHandler() { - - @Override - public void handle(String s, Request request, HttpServletRequest httpServletRequest, - HttpServletResponse response) throws IOException, ServletException { - response.setContentType("text/plain"); - response.getWriter().write(request.getRequestURI().substring(1)); - requestCount++; - ((Request) request).setHandled(true); - } + + @Override + public void handle(String s, Request request, HttpServletRequest httpServletRequest, + HttpServletResponse response) throws IOException, ServletException { + response.setContentType("text/plain"); + response.getWriter().write(request.getRequestURI().substring(1)); + requestCount++; + ((Request) request).setHandled(true); + } }; - - // Select any available port - server.setHandler(jettyHandler); - server.start(); + + // Select any available port + server.setHandler(jettyHandler); + server.start(); int port = -3; - - Connector[] connectors = server.getConnectors(); - if (connectors[0] instanceof NetworkConnector) { - NetworkConnector nc = (NetworkConnector) connectors[0]; - port = nc.getLocalPort(); + + Connector[] connectors = server.getConnectors(); + if (connectors[0] instanceof NetworkConnector) { + NetworkConnector nc = (NetworkConnector) connectors[0]; + port = nc.getLocalPort(); } - - return "127.0.0.1:" + port; + + return "127.0.0.1:" + port; } - - /** - * Tests initial values - */ - @Test - public void testInitialValues() { - TestTransformerWriter theTransformerWriter = new TestTransformerWriter(); + + /** + * Tests initial values + */ + @Test + public void testInitialValues() { + TestTransformerWriter theTransformerWriter = new TestTransformerWriter(); DataConsumer theConsumer = new DataConsumer(); - -// theConsumer.addDataTransformer(theTransformerWriter); + +// theConsumer.addDataTransformer(theTransformerWriter); // theConsumer.addDataWriter(theTransformerWriter); - - Map data = new HashMap(); - data.put("var1", "var1val"); - data.put("var2", "var2val"); - data.put("var3", "var3val"); - data.put("var4", "var4val"); + + Map data = new HashMap(); + data.put("var1", "var1val"); + data.put("var2", "var2val"); + data.put("var3", "var3val"); + data.put("var4", "var4val"); data.put("var5", "var5val"); - + theConsumer.consume(data); - - Assert.assertEquals("var1val", theConsumer.getDataPipe().getDataMap().get("var1")); - Assert.assertEquals("var2val", theConsumer.getDataPipe().getDataMap().get("var2")); - Assert.assertEquals("var3val", theConsumer.getDataPipe().getDataMap().get("var3")); - Assert.assertEquals("var4val", theConsumer.getDataPipe().getDataMap().get("var4")); + + Assert.assertEquals("var1val", theConsumer.getDataPipe().getDataMap().get("var1")); + Assert.assertEquals("var2val", theConsumer.getDataPipe().getDataMap().get("var2")); + Assert.assertEquals("var3val", theConsumer.getDataPipe().getDataMap().get("var3")); + Assert.assertEquals("var4val", theConsumer.getDataPipe().getDataMap().get("var4")); Assert.assertEquals("var5val", theConsumer.getDataPipe().getDataMap().get("var5")); - + } - - /** - * Tests writers - */ - @Test - public void testWriter() { - TestTransformerWriter theTransformerWriter = new TestTransformerWriter(); + + /** + * Tests writers + */ + @Test + public void testWriter() { + TestTransformerWriter theTransformerWriter = new TestTransformerWriter(); DataConsumer theConsumer = new DataConsumer(); - -// theConsumer.addDataTransformer(theTransformerWriter); + +// theConsumer.addDataTransformer(theTransformerWriter); theConsumer.addDataWriter(theTransformerWriter); - - Map data = new HashMap(); - data.put("var1", "var1val"); - data.put("var2", "var2val"); - data.put("var3", "var3val"); - data.put("var4", "var4val"); + + Map data = new HashMap(); + data.put("var1", "var1val"); + data.put("var2", "var2val"); + data.put("var3", "var3val"); + data.put("var4", "var4val"); data.put("var5", "var5val"); - + theConsumer.consume(data); - + Assert.assertEquals(1, theTransformerWriter.getData().size()); - - Map firstMap = theTransformerWriter.getData().get(0); - Assert.assertEquals(5, firstMap.size()); - Assert.assertEquals("var1val", firstMap.get("var1")); - Assert.assertEquals("var2val", firstMap.get("var2")); - Assert.assertEquals("var3val", firstMap.get("var3")); - Assert.assertEquals("var4val", firstMap.get("var4")); - Assert.assertEquals("var5val", firstMap.get("var5")); + + Map firstMap = theTransformerWriter.getData().get(0); + Assert.assertEquals(5, firstMap.size()); + Assert.assertEquals("var1val", firstMap.get("var1")); + Assert.assertEquals("var2val", firstMap.get("var2")); + Assert.assertEquals("var3val", firstMap.get("var3")); + Assert.assertEquals("var4val", firstMap.get("var4")); + Assert.assertEquals("var5val", firstMap.get("var5")); } - - /** - * Tests transformers - */ - @Test - public void testTransformer() { - TestTransformerWriter theTransformerWriter = new TestTransformerWriter(); + + /** + * Tests transformers + */ + @Test + public void testTransformer() { + TestTransformerWriter theTransformerWriter = new TestTransformerWriter(); DataConsumer theConsumer = new DataConsumer(); - - theConsumer.addDataTransformer(theTransformerWriter); + + theConsumer.addDataTransformer(theTransformerWriter); // theConsumer.addDataWriter(theTransformerWriter); - - Map data = new HashMap(); - data.put("var1", "var1val"); - data.put("var2", "var2val"); - data.put("var3", "var3val"); - data.put("var4", "var4val"); + + Map data = new HashMap(); + data.put("var1", "var1val"); + data.put("var2", "var2val"); + data.put("var3", "var3val"); + data.put("var4", "var4val"); data.put("var5", "var5val"); - + theConsumer.consume(data); - + Assert.assertEquals(0, theTransformerWriter.getData().size()); - - Map firstMap = theConsumer.getDataPipe().getDataMap(); - Assert.assertEquals(5, firstMap.size()); - Assert.assertEquals("transformed_var1val", firstMap.get("var1")); - Assert.assertEquals("transformed_var2val", firstMap.get("var2")); - Assert.assertEquals("transformed_var3val", firstMap.get("var3")); - Assert.assertEquals("transformed_var4val", firstMap.get("var4")); - Assert.assertEquals("transformed_var5val", firstMap.get("var5")); + + Map firstMap = theConsumer.getDataPipe().getDataMap(); + Assert.assertEquals(5, firstMap.size()); + Assert.assertEquals("transformed_var1val", firstMap.get("var1")); + Assert.assertEquals("transformed_var2val", firstMap.get("var2")); + Assert.assertEquals("transformed_var3val", firstMap.get("var3")); + Assert.assertEquals("transformed_var4val", firstMap.get("var4")); + Assert.assertEquals("transformed_var5val", firstMap.get("var5")); } - - /** - * Tests sending a request with no handling - * - * @throws Exception exception - */ - @Test - public void testSendRequestNoHandling() throws Exception { - String reportingHost = runJetty(); - DataConsumer theConsumer = new DataConsumer(); + + /** + * Tests sending a request with no handling + * + * @throws Exception exception + */ + @Test + public void testSendRequestNoHandling() throws Exception { + String reportingHost = runJetty(); + DataConsumer theConsumer = new DataConsumer(); theConsumer.setReportingHost(reportingHost); - - Future response = theConsumer.sendRequest("test1"); - Assert.assertEquals("test1", response.get().trim()); + + Future response = theConsumer.sendRequest("test1"); + Assert.assertEquals("test1", response.get().trim()); } - - /** - * Tests sending a synchronized request - * - * @throws Exception exception - */ - @Test - public void testSendRequestSync() throws Exception { - String reportingHost = runJetty(); - DataConsumer theConsumer = new DataConsumer(); + + /** + * Tests sending a synchronized request + * + * @throws Exception exception + */ + @Test + public void testSendRequestSync() throws Exception { + String reportingHost = runJetty(); + DataConsumer theConsumer = new DataConsumer(); theConsumer.setReportingHost(reportingHost); - - String response = theConsumer.sendRequestSync("test1"); - Assert.assertEquals("test1", response.trim()); + + String response = theConsumer.sendRequestSync("test1"); + Assert.assertEquals("test1", response.trim()); } - - /** - * Tests sending a request from the writer - * - * @throws Exception exception - */ - @Test - public void testSendRequestFromWriter() throws Exception { - String reportingHost = runJetty(); - DataConsumer theConsumer = new DataConsumer(); + + /** + * Tests sending a request from the writer + * + * @throws Exception exception + */ + @Test + public void testSendRequestFromWriter() throws Exception { + String reportingHost = runJetty(); + DataConsumer theConsumer = new DataConsumer(); theConsumer.setReportingHost(reportingHost); - - TestWriterWithCountingHandler theWriter = new TestWriterWithCountingHandler(); + + TestWriterWithCountingHandler theWriter = new TestWriterWithCountingHandler(); theConsumer.addDataWriter(theWriter); - - Map data = new HashMap(); - data.put("var1", "1_var1val"); - data.put("var2", "1_var2val"); - data.put("var3", "1_var3val"); - data.put("var4", "1_var4val"); - data.put("var5", "1_var5val"); + + Map data = new HashMap(); + data.put("var1", "1_var1val"); + data.put("var2", "1_var2val"); + data.put("var3", "1_var3val"); + data.put("var4", "1_var4val"); + data.put("var5", "1_var5val"); theConsumer.consume(data); - - Map data2 = new HashMap(); - data2.put("var1", "2_var1val"); - data2.put("var2", "2_var2val"); - data2.put("var3", "2_var3val"); - data2.put("var4", "2_var4val"); - data2.put("var5", "2_var5val"); + + Map data2 = new HashMap(); + data2.put("var1", "2_var1val"); + data2.put("var2", "2_var2val"); + data2.put("var3", "2_var3val"); + data2.put("var4", "2_var4val"); + data2.put("var5", "2_var5val"); theConsumer.consume(data2); - - Map data3 = new HashMap(); - data3.put("var1", "3_var1val"); - data3.put("var2", "3_var2val"); - data3.put("var3", "3_var3val"); - data3.put("var4", "3_var4val"); - data3.put("var5", "3_var5val"); + + Map data3 = new HashMap(); + data3.put("var1", "3_var1val"); + data3.put("var2", "3_var2val"); + data3.put("var3", "3_var3val"); + data3.put("var4", "3_var4val"); + data3.put("var5", "3_var5val"); theConsumer.consume(data3); - - Map data4 = new HashMap(); - data4.put("var1", "4_var1val"); - data4.put("var2", "4_var2val"); - data4.put("var3", "4_var3val"); - data4.put("var4", "4_var4val"); - data4.put("var5", "4_var5val"); + + Map data4 = new HashMap(); + data4.put("var1", "4_var1val"); + data4.put("var2", "4_var2val"); + data4.put("var3", "4_var3val"); + data4.put("var4", "4_var4val"); + data4.put("var5", "4_var5val"); theConsumer.consume(data4); - - Map data5 = new HashMap(); - data5.put("var1", "5_var1val"); - data5.put("var2", "5_var2val"); - data5.put("var3", "5_var3val"); - data5.put("var4", "5_var4val"); - data5.put("var5", "5_var5val"); - theConsumer.consume(data5); + + Map data5 = new HashMap(); + data5.put("var1", "5_var1val"); + data5.put("var2", "5_var2val"); + data5.put("var3", "5_var3val"); + data5.put("var4", "5_var4val"); + data5.put("var5", "5_var5val"); + theConsumer.consume(data5); Thread.sleep(5000); - - Assert.assertEquals(5, theWriter.getData().size()); + + Assert.assertEquals(5, theWriter.getData().size()); Assert.assertEquals(5, requestCount); - - Assert.assertEquals(theWriter.getData().size(), theWriter.getLatestResponse()); + + Assert.assertEquals(theWriter.getData().size(), theWriter.getLatestResponse()); } - + private class TestWriterWithCountingHandler implements DataWriter, ReportingHandler { - - private long latestResponse = -3; + + private long latestResponse = -3; private List> data = new ArrayList>(); - - @Override - public void handleResponse(String response) { - this.latestResponse = Integer.parseInt(response.trim()); + + @Override + public void handleResponse(String response) { + this.latestResponse = Integer.parseInt(response.trim()); } - - @Override - public void writeOutput(DataPipe cr) { - data.add(cr.getDataMap()); - cr.getDataConsumer().sendRequest("" + data.size(), this); -// try { -// String waitForIt = cr.getDataConsumer().sendRequest("" + data.size(), this).get().trim(); -// } catch (InterruptedException e) { -// e.printStackTrace(); -// Assert.fail(); -// } catch (ExecutionException e) { -// e.printStackTrace(); -// Assert.fail(); + + @Override + public void writeOutput(DataPipe cr) { + data.add(cr.getDataMap()); + cr.getDataConsumer().sendRequest("" + data.size(), this); +// try { +// String waitForIt = cr.getDataConsumer().sendRequest("" + data.size(), this).get().trim(); +// } catch (InterruptedException e) { +// e.printStackTrace(); +// Assert.fail(); +// } catch (ExecutionException e) { +// e.printStackTrace(); +// Assert.fail(); // } - - System.out.println("Output saw a : " + cr.getDataMap()); + + System.out.println("Output saw a : " + cr.getDataMap()); + } + + public List> getData() { + return data; } - - public List> getData() { - return data; + + public long getLatestResponse() { + return latestResponse; } - - public long getLatestResponse() { - return latestResponse; - } } - + private class TestTransformerWriter implements DataTransformer, DataWriter { - + private List> data = new ArrayList>(); - - @Override - public void transform(DataPipe cr) { - for (String key : cr.getDataMap().keySet()) { - String value = cr.getDataMap().get(key); - cr.getDataMap().put(key, "transformed_" + value); - } + + @Override + public void transform(DataPipe cr) { + for (String key : cr.getDataMap().keySet()) { + String value = cr.getDataMap().get(key); + cr.getDataMap().put(key, "transformed_" + value); + } } - - @Override - public void writeOutput(DataPipe cr) { - data.add(cr.getDataMap()); - System.out.println("Output saw a : " + cr.getDataMap()); + + @Override + public void writeOutput(DataPipe cr) { + data.add(cr.getDataMap()); + System.out.println("Output saw a : " + cr.getDataMap()); } - - public List> getData() { - return data; - } - } + + public List> getData() { + return data; + } + } } \ No newline at end of file diff --git a/dg-core/src/test/java/org/finra/datagenerator/consumer/DataPipeTest.java b/dg-core/src/test/java/org/finra/datagenerator/consumer/DataPipeTest.java index 318d5bcc..93d4de06 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/consumer/DataPipeTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/consumer/DataPipeTest.java @@ -1,98 +1,98 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.consumer; - -import org.junit.Assert; + +import org.junit.Assert; import org.junit.Test; - + import java.util.concurrent.atomic.AtomicBoolean; - -/** - * Created by RobbinBr on 7/2/2014. - */ + +/** + * Created by RobbinBr on 7/2/2014. + */ public class DataPipeTest { - - /** - * Tests the DataPipe's variable map - */ - @Test - public void testDataMap() { - DataPipe thePipe = new DataPipe(); - thePipe.getDataMap().put("var1", "var1val"); - thePipe.getDataMap().put("var2", "var2val"); - thePipe.getDataMap().put("var3", "var3val"); - thePipe.getDataMap().put("var4", "var4val"); + + /** + * Tests the DataPipe's variable map + */ + @Test + public void testDataMap() { + DataPipe thePipe = new DataPipe(); + thePipe.getDataMap().put("var1", "var1val"); + thePipe.getDataMap().put("var2", "var2val"); + thePipe.getDataMap().put("var3", "var3val"); + thePipe.getDataMap().put("var4", "var4val"); thePipe.getDataMap().put("var5", "var5val"); - + Assert.assertEquals(5, thePipe.getDataMap().size()); - - Assert.assertEquals("var1val", thePipe.getDataMap().get("var1")); - Assert.assertEquals("var2val", thePipe.getDataMap().get("var2")); - Assert.assertEquals("var3val", thePipe.getDataMap().get("var3")); - Assert.assertEquals("var4val", thePipe.getDataMap().get("var4")); - Assert.assertEquals("var5val", thePipe.getDataMap().get("var5")); + + Assert.assertEquals("var1val", thePipe.getDataMap().get("var1")); + Assert.assertEquals("var2val", thePipe.getDataMap().get("var2")); + Assert.assertEquals("var3val", thePipe.getDataMap().get("var3")); + Assert.assertEquals("var4val", thePipe.getDataMap().get("var4")); + Assert.assertEquals("var5val", thePipe.getDataMap().get("var5")); } - - /** - * Tests getPipeDelimited - */ - @Test - public void testGetPipeDelimited() { - DataPipe thePipe = new DataPipe(); - thePipe.getDataMap().put("var1", "var1val"); - thePipe.getDataMap().put("var2", "var2val"); - thePipe.getDataMap().put("var3", "var3val"); - thePipe.getDataMap().put("var4", "var4val"); + + /** + * Tests getPipeDelimited + */ + @Test + public void testGetPipeDelimited() { + DataPipe thePipe = new DataPipe(); + thePipe.getDataMap().put("var1", "var1val"); + thePipe.getDataMap().put("var2", "var2val"); + thePipe.getDataMap().put("var3", "var3val"); + thePipe.getDataMap().put("var4", "var4val"); thePipe.getDataMap().put("var5", "var5val"); - - String[] outTemplate = new String[]{ - "var1", "var2", "var3", "var4", "var5" + + String[] outTemplate = new String[]{ + "var1", "var2", "var3", "var4", "var5" }; - + Assert.assertEquals(5, thePipe.getDataMap().size()); - - Assert.assertEquals("var1val|var2val|var3val|var4val|var5val", thePipe.getPipeDelimited(outTemplate)); + + Assert.assertEquals("var1val|var2val|var3val|var4val|var5val", thePipe.getPipeDelimited(outTemplate)); } - - /** - * Tests flag access - */ - @Test - public void testDefaultDataConsumerAccess() { - DataPipe thePipe = new DataPipe(); - DataConsumer dc = thePipe.getDataConsumer(); + + /** + * Tests flag access + */ + @Test + public void testDefaultDataConsumerAccess() { + DataPipe thePipe = new DataPipe(); + DataConsumer dc = thePipe.getDataConsumer(); dc.setExitFlag(new AtomicBoolean(false)); - - Assert.assertNotNull(dc); - Assert.assertNotNull(dc.getExitFlag()); - Assert.assertEquals(10000, dc.getMaxNumberOfLines()); + + Assert.assertNotNull(dc); + Assert.assertNotNull(dc.getExitFlag()); + Assert.assertEquals(10000, dc.getMaxNumberOfLines()); } - - /** - * Tests access of custom consumers to DefaultConsumer methods - */ - @Test - public void testCustomDataConsumerAccess() { - DataConsumer dc = new DataConsumer(); + + /** + * Tests access of custom consumers to DefaultConsumer methods + */ + @Test + public void testCustomDataConsumerAccess() { + DataConsumer dc = new DataConsumer(); DataPipe thePipe = new DataPipe(dc); - - dc.setReportingHost("localhost:8080"); + + dc.setReportingHost("localhost:8080"); dc.setMaxNumberOfLines(100000); - - Assert.assertEquals("localhost:8080", thePipe.getDataConsumer().getReportingHost()); - Assert.assertEquals(100000, thePipe.getDataConsumer().getMaxNumberOfLines()); - } + + Assert.assertEquals("localhost:8080", thePipe.getDataConsumer().getReportingHost()); + Assert.assertEquals(100000, thePipe.getDataConsumer().getMaxNumberOfLines()); + } } diff --git a/dg-core/src/test/java/org/finra/datagenerator/consumer/EquivalenceClassTransformerTest.java b/dg-core/src/test/java/org/finra/datagenerator/consumer/EquivalenceClassTransformerTest.java index 8df425db..ad2e58b3 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/consumer/EquivalenceClassTransformerTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/consumer/EquivalenceClassTransformerTest.java @@ -1,533 +1,533 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.consumer; - -import org.junit.Assert; + +import org.junit.Assert; import org.junit.Test; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.Arrays; -import java.util.HashSet; -import java.util.regex.Matcher; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.Arrays; +import java.util.HashSet; +import java.util.regex.Matcher; import java.util.regex.Pattern; - -/** - * Created by weerasin on 11/28/14. - */ + +/** + * Created by weerasin on 11/28/14. + */ public class EquivalenceClassTransformerTest { - - /** - * Tests regular expression generator by making a cusip - */ - @Test - public void regexCUSIPTest() { - DataPipe pipeToTransform = new DataPipe(); + + /** + * Tests regular expression generator by making a cusip + */ + @Test + public void regexCUSIPTest() { + DataPipe pipeToTransform = new DataPipe(); EquivalenceClassTransformer eqTransformer = new EquivalenceClassTransformer(); - - String testRegularExpression = "^\\d{5}(?:[-\\s]\\d{4})?$"; - pipeToTransform.getDataMap().put("TEST", "%regex(" + testRegularExpression + ")"); - eqTransformer.transform(pipeToTransform); - Pattern pattern = Pattern.compile(testRegularExpression); - Matcher didItMatch = pattern.matcher(pipeToTransform.getDataMap().get("TEST")); - Assert.assertTrue(didItMatch.matches()); + + String testRegularExpression = "^\\d{5}(?:[-\\s]\\d{4})?$"; + pipeToTransform.getDataMap().put("TEST", "%regex(" + testRegularExpression + ")"); + eqTransformer.transform(pipeToTransform); + Pattern pattern = Pattern.compile(testRegularExpression); + Matcher didItMatch = pattern.matcher(pipeToTransform.getDataMap().get("TEST")); + Assert.assertTrue(didItMatch.matches()); } - - /** - * Tests regular expression generator by making a sequence of random digits - */ - @Test - public void regexNumbersTest() { - DataPipe pipeToTransform = new DataPipe(); + + /** + * Tests regular expression generator by making a sequence of random digits + */ + @Test + public void regexNumbersTest() { + DataPipe pipeToTransform = new DataPipe(); EquivalenceClassTransformer eqTransformer = new EquivalenceClassTransformer(); - - String testRegularExpression = "\\d{4}/\\d{2}/\\d{2}-\\d{2}:\\d{2}"; - pipeToTransform.getDataMap().put("TEST", "%regex(" + testRegularExpression + ")"); - eqTransformer.transform(pipeToTransform); - Pattern pattern = Pattern.compile(testRegularExpression); - Matcher didItMatch = pattern.matcher(pipeToTransform.getDataMap().get("TEST")); - Assert.assertTrue(didItMatch.matches()); + + String testRegularExpression = "\\d{4}/\\d{2}/\\d{2}-\\d{2}:\\d{2}"; + pipeToTransform.getDataMap().put("TEST", "%regex(" + testRegularExpression + ")"); + eqTransformer.transform(pipeToTransform); + Pattern pattern = Pattern.compile(testRegularExpression); + Matcher didItMatch = pattern.matcher(pipeToTransform.getDataMap().get("TEST")); + Assert.assertTrue(didItMatch.matches()); } - - /** - * Tests regular expression generator by making a date - */ - @Test - public void regexDateTest() { - DataPipe pipeToTransform = new DataPipe(); + + /** + * Tests regular expression generator by making a date + */ + @Test + public void regexDateTest() { + DataPipe pipeToTransform = new DataPipe(); EquivalenceClassTransformer eqTransformer = new EquivalenceClassTransformer(); - - String testRegularExpression = "^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\\d\\d$"; - pipeToTransform.getDataMap().put("TEST", "%regex(" + testRegularExpression + ")"); - eqTransformer.transform(pipeToTransform); - Pattern pattern = Pattern.compile(testRegularExpression); - Matcher didItMatch = pattern.matcher(pipeToTransform.getDataMap().get("TEST")); - Assert.assertTrue(didItMatch.matches()); + + String testRegularExpression = "^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\\d\\d$"; + pipeToTransform.getDataMap().put("TEST", "%regex(" + testRegularExpression + ")"); + eqTransformer.transform(pipeToTransform); + Pattern pattern = Pattern.compile(testRegularExpression); + Matcher didItMatch = pattern.matcher(pipeToTransform.getDataMap().get("TEST")); + Assert.assertTrue(didItMatch.matches()); } - - /** - * Tests regular expression generator by making an email - */ - @Test - public void regexEmailTest() { - DataPipe pipeToTransform = new DataPipe(); + + /** + * Tests regular expression generator by making an email + */ + @Test + public void regexEmailTest() { + DataPipe pipeToTransform = new DataPipe(); EquivalenceClassTransformer eqTransformer = new EquivalenceClassTransformer(); - - String testRegularExpression = "^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.]{2,6})$"; - pipeToTransform.getDataMap().put("TEST", "%regex(" + testRegularExpression + ")"); - eqTransformer.transform(pipeToTransform); - Pattern pattern = Pattern.compile(testRegularExpression); - Matcher didItMatch = pattern.matcher(pipeToTransform.getDataMap().get("TEST")); - Assert.assertTrue(didItMatch.matches()); + + String testRegularExpression = "^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.]{2,6})$"; + pipeToTransform.getDataMap().put("TEST", "%regex(" + testRegularExpression + ")"); + eqTransformer.transform(pipeToTransform); + Pattern pattern = Pattern.compile(testRegularExpression); + Matcher didItMatch = pattern.matcher(pipeToTransform.getDataMap().get("TEST")); + Assert.assertTrue(didItMatch.matches()); } - - /** - * %alpha macro - */ - @Test - public void alphaTest() { - DataPipe pipeToTransform = new DataPipe(); + + /** + * %alpha macro + */ + @Test + public void alphaTest() { + DataPipe pipeToTransform = new DataPipe(); EquivalenceClassTransformer eqTransformer = new EquivalenceClassTransformer(); - - pipeToTransform.getDataMap().put("TEST", "%alpha(1)"); - eqTransformer.transform(pipeToTransform); - Pattern alphaPattern = Pattern.compile("^[a-z0-9A-Z]{1}$"); - Matcher didItMatch = alphaPattern.matcher(pipeToTransform.getDataMap().get("TEST")); + + pipeToTransform.getDataMap().put("TEST", "%alpha(1)"); + eqTransformer.transform(pipeToTransform); + Pattern alphaPattern = Pattern.compile("^[a-z0-9A-Z]{1}$"); + Matcher didItMatch = alphaPattern.matcher(pipeToTransform.getDataMap().get("TEST")); Assert.assertTrue(didItMatch.matches()); - - pipeToTransform.getDataMap().put("TEST", "%alpha(100)"); - eqTransformer.transform(pipeToTransform); - alphaPattern = Pattern.compile("^[a-z0-9A-Z]{100}$"); - didItMatch = alphaPattern.matcher(pipeToTransform.getDataMap().get("TEST")); + + pipeToTransform.getDataMap().put("TEST", "%alpha(100)"); + eqTransformer.transform(pipeToTransform); + alphaPattern = Pattern.compile("^[a-z0-9A-Z]{100}$"); + didItMatch = alphaPattern.matcher(pipeToTransform.getDataMap().get("TEST")); Assert.assertTrue(didItMatch.matches()); - - pipeToTransform.getDataMap().put("TEST", "%alpha(0)"); - eqTransformer.transform(pipeToTransform); - Assert.assertEquals("", pipeToTransform.getDataMap().get("TEST")); + + pipeToTransform.getDataMap().put("TEST", "%alpha(0)"); + eqTransformer.transform(pipeToTransform); + Assert.assertEquals("", pipeToTransform.getDataMap().get("TEST")); } - - /** - * %alphaWithSpacesMAcro - */ - @Test - public void alphaWithSpacesTest() { - DataPipe pipeToTransform = new DataPipe(); + + /** + * %alphaWithSpacesMAcro + */ + @Test + public void alphaWithSpacesTest() { + DataPipe pipeToTransform = new DataPipe(); EquivalenceClassTransformer eqTransformer = new EquivalenceClassTransformer(); - - pipeToTransform.getDataMap().put("TEST", "%alphaWithSpaces(1)"); - eqTransformer.transform(pipeToTransform); - Pattern alphaWithSpacesPattern = Pattern.compile("^[a-z0-9A-Z\\s]{1}$"); - Matcher didItMatch = alphaWithSpacesPattern.matcher(pipeToTransform.getDataMap().get("TEST")); + + pipeToTransform.getDataMap().put("TEST", "%alphaWithSpaces(1)"); + eqTransformer.transform(pipeToTransform); + Pattern alphaWithSpacesPattern = Pattern.compile("^[a-z0-9A-Z\\s]{1}$"); + Matcher didItMatch = alphaWithSpacesPattern.matcher(pipeToTransform.getDataMap().get("TEST")); Assert.assertTrue(didItMatch.matches()); - - pipeToTransform.getDataMap().put("TEST", "%alphaWithSpaces(100)"); - eqTransformer.transform(pipeToTransform); - alphaWithSpacesPattern = Pattern.compile("^[a-z0-9A-Z\\s]{100}$"); - didItMatch = alphaWithSpacesPattern.matcher(pipeToTransform.getDataMap().get("TEST")); + + pipeToTransform.getDataMap().put("TEST", "%alphaWithSpaces(100)"); + eqTransformer.transform(pipeToTransform); + alphaWithSpacesPattern = Pattern.compile("^[a-z0-9A-Z\\s]{100}$"); + didItMatch = alphaWithSpacesPattern.matcher(pipeToTransform.getDataMap().get("TEST")); Assert.assertTrue(didItMatch.matches()); - - pipeToTransform.getDataMap().put("TEST", "%alphaWithSpaces(0)"); - eqTransformer.transform(pipeToTransform); - Assert.assertEquals("", pipeToTransform.getDataMap().get("TEST")); + + pipeToTransform.getDataMap().put("TEST", "%alphaWithSpaces(0)"); + eqTransformer.transform(pipeToTransform); + Assert.assertEquals("", pipeToTransform.getDataMap().get("TEST")); } - - /** - * %number makes a valid positive decimal or integer - */ - @Test - public void numberTest() { - DataPipe pipeToTransform = new DataPipe(); + + /** + * %number makes a valid positive decimal or integer + */ + @Test + public void numberTest() { + DataPipe pipeToTransform = new DataPipe(); EquivalenceClassTransformer eqTransformer = new EquivalenceClassTransformer(); - - pipeToTransform.getDataMap().put("TEST", "%number(5)"); - eqTransformer.transform(pipeToTransform); - Pattern alphaWithSpacesPattern = Pattern.compile("^[1-9]{1}[\\d]{4}$"); - Matcher didItMatch = alphaWithSpacesPattern.matcher(pipeToTransform.getDataMap().get("TEST")); + + pipeToTransform.getDataMap().put("TEST", "%number(5)"); + eqTransformer.transform(pipeToTransform); + Pattern alphaWithSpacesPattern = Pattern.compile("^[1-9]{1}[\\d]{4}$"); + Matcher didItMatch = alphaWithSpacesPattern.matcher(pipeToTransform.getDataMap().get("TEST")); Assert.assertTrue(didItMatch.matches()); - - pipeToTransform.getDataMap().put("TEST", "%number(10,10)"); - eqTransformer.transform(pipeToTransform); - alphaWithSpacesPattern = Pattern.compile("0.[\\d]{10}$"); - didItMatch = alphaWithSpacesPattern.matcher(pipeToTransform.getDataMap().get("TEST")); + + pipeToTransform.getDataMap().put("TEST", "%number(10,10)"); + eqTransformer.transform(pipeToTransform); + alphaWithSpacesPattern = Pattern.compile("0.[\\d]{10}$"); + didItMatch = alphaWithSpacesPattern.matcher(pipeToTransform.getDataMap().get("TEST")); Assert.assertTrue(didItMatch.matches()); - - pipeToTransform.getDataMap().put("TEST", "%number(10,5)"); - eqTransformer.transform(pipeToTransform); - alphaWithSpacesPattern = Pattern.compile("^[\\d]{5}.[\\d]{5}$"); - System.out.println(pipeToTransform.getDataMap().get("TEST")); - didItMatch = alphaWithSpacesPattern.matcher(pipeToTransform.getDataMap().get("TEST")); + + pipeToTransform.getDataMap().put("TEST", "%number(10,5)"); + eqTransformer.transform(pipeToTransform); + alphaWithSpacesPattern = Pattern.compile("^[\\d]{5}.[\\d]{5}$"); + System.out.println(pipeToTransform.getDataMap().get("TEST")); + didItMatch = alphaWithSpacesPattern.matcher(pipeToTransform.getDataMap().get("TEST")); Assert.assertTrue(didItMatch.matches()); - - pipeToTransform.getDataMap().put("TEST", "%number(0,0)"); - eqTransformer.transform(pipeToTransform); + + pipeToTransform.getDataMap().put("TEST", "%number(0,0)"); + eqTransformer.transform(pipeToTransform); + Assert.assertEquals("", pipeToTransform.getDataMap().get("TEST")); + + pipeToTransform.getDataMap().put("TEST", "%number(0)"); + eqTransformer.transform(pipeToTransform); Assert.assertEquals("", pipeToTransform.getDataMap().get("TEST")); - - pipeToTransform.getDataMap().put("TEST", "%number(0)"); - eqTransformer.transform(pipeToTransform); - Assert.assertEquals("", pipeToTransform.getDataMap().get("TEST")); } - - /** - * %digits macro gives a string of n digits - */ - @Test - public void digitsTest() { - DataPipe pipeToTransform = new DataPipe(); + + /** + * %digits macro gives a string of n digits + */ + @Test + public void digitsTest() { + DataPipe pipeToTransform = new DataPipe(); EquivalenceClassTransformer eqTransformer = new EquivalenceClassTransformer(); - - - pipeToTransform.getDataMap().put("TEST", "%digits(5)"); - eqTransformer.transform(pipeToTransform); - Pattern alphaWithSpacesPattern = Pattern.compile("^[\\d]{5}$"); - Matcher didItMatch = alphaWithSpacesPattern.matcher(pipeToTransform.getDataMap().get("TEST")); + + + pipeToTransform.getDataMap().put("TEST", "%digits(5)"); + eqTransformer.transform(pipeToTransform); + Pattern alphaWithSpacesPattern = Pattern.compile("^[\\d]{5}$"); + Matcher didItMatch = alphaWithSpacesPattern.matcher(pipeToTransform.getDataMap().get("TEST")); Assert.assertTrue(didItMatch.matches()); - - pipeToTransform.getDataMap().put("TEST", "%digits(10)"); - eqTransformer.transform(pipeToTransform); - alphaWithSpacesPattern = Pattern.compile("^[\\d]{10}$"); - didItMatch = alphaWithSpacesPattern.matcher(pipeToTransform.getDataMap().get("TEST")); + + pipeToTransform.getDataMap().put("TEST", "%digits(10)"); + eqTransformer.transform(pipeToTransform); + alphaWithSpacesPattern = Pattern.compile("^[\\d]{10}$"); + didItMatch = alphaWithSpacesPattern.matcher(pipeToTransform.getDataMap().get("TEST")); Assert.assertTrue(didItMatch.matches()); - - pipeToTransform.getDataMap().put("TEST", "%digits(0)"); - eqTransformer.transform(pipeToTransform); - Assert.assertEquals("", pipeToTransform.getDataMap().get("TEST")); + + pipeToTransform.getDataMap().put("TEST", "%digits(0)"); + eqTransformer.transform(pipeToTransform); + Assert.assertEquals("", pipeToTransform.getDataMap().get("TEST")); } - - /** - * %ssn produces a social security number with a partial validness check - */ - @Test - public void ssnTest() { - DataPipe pipeToTransform = new DataPipe(); + + /** + * %ssn produces a social security number with a partial validness check + */ + @Test + public void ssnTest() { + DataPipe pipeToTransform = new DataPipe(); EquivalenceClassTransformer eqTransformer = new EquivalenceClassTransformer(); - - for (int i = 0; i < 500; i++) { - pipeToTransform.getDataMap().put("TEST", "%ssn"); - eqTransformer.transform(pipeToTransform); - Pattern alphaWithSpacesPattern = Pattern.compile("^((?!000)(?!666)(?:[0-6]\\d{2}|7[0-2][0-9]|73[0-3]|7[5-6][0-9]|77[0-2]))" - + "-((?!00)\\d{2})-((?!0000)\\d{4})$"); - Matcher didItMatch = alphaWithSpacesPattern.matcher(pipeToTransform.getDataMap().get("TEST")); - Assert.assertTrue(didItMatch.matches()); - } + + for (int i = 0; i < 500; i++) { + pipeToTransform.getDataMap().put("TEST", "%ssn"); + eqTransformer.transform(pipeToTransform); + Pattern alphaWithSpacesPattern = Pattern.compile("^((?!000)(?!666)(?:[0-6]\\d{2}|7[0-2][0-9]|73[0-3]|7[5-6][0-9]|77[0-2]))" + + "-((?!00)\\d{2})-((?!0000)\\d{4})$"); + Matcher didItMatch = alphaWithSpacesPattern.matcher(pipeToTransform.getDataMap().get("TEST")); + Assert.assertTrue(didItMatch.matches()); + } } - - /** - * %zip produces a USA zip with a partial validness check - */ - @Test - public void zipTest() { - DataPipe pipeToTransform = new DataPipe(); + + /** + * %zip produces a USA zip with a partial validness check + */ + @Test + public void zipTest() { + DataPipe pipeToTransform = new DataPipe(); EquivalenceClassTransformer eqTransformer = new EquivalenceClassTransformer(); - - for (int i = 0; i < 500; i++) { - pipeToTransform.getDataMap().put("TEST_zip", "%zip"); - eqTransformer.transform(pipeToTransform); - Pattern alphaWithSpacesPattern = Pattern.compile("^((\\d{5})([- ]\\d{4})?)$"); - Matcher didItMatch = alphaWithSpacesPattern.matcher(pipeToTransform.getDataMap().get("TEST_zip")); - Assert.assertTrue(didItMatch.matches()); - } + + for (int i = 0; i < 500; i++) { + pipeToTransform.getDataMap().put("TEST_zip", "%zip"); + eqTransformer.transform(pipeToTransform); + Pattern alphaWithSpacesPattern = Pattern.compile("^((\\d{5})([- ]\\d{4})?)$"); + Matcher didItMatch = alphaWithSpacesPattern.matcher(pipeToTransform.getDataMap().get("TEST_zip")); + Assert.assertTrue(didItMatch.matches()); + } } - - /** - * %phoneDomesticUSA produces a USA domestic phone number without extension with a partial validness check - */ - @Test - public void phoneDomesticUSATest() { - DataPipe pipeToTransform = new DataPipe(); - EquivalenceClassTransformer eqTransformer = new EquivalenceClassTransformer(); - - for (int i = 0; i < 500; i++) { - pipeToTransform.getDataMap().put("TEST_phoneDomesticUSA", "%phoneDomesticUSA"); - eqTransformer.transform(pipeToTransform); - Pattern alphaWithSpacesPattern = Pattern.compile("^([2-9]\\d{2})(\\D*)([2-9]\\d{2})(\\D*)(\\d{4})$"); - Matcher didItMatch = alphaWithSpacesPattern.matcher(pipeToTransform.getDataMap().get("TEST_phoneDomesticUSA")); - Assert.assertTrue("Wrong USA domestic phone number without extension generation! Created '" - + pipeToTransform.getDataMap().get("TEST_phoneDomesticUSA") + "'...", didItMatch.matches()); - } + + /** + * %phoneDomesticUSA produces a USA domestic phone number without extension with a partial validness check + */ + @Test + public void phoneDomesticUSATest() { + DataPipe pipeToTransform = new DataPipe(); + EquivalenceClassTransformer eqTransformer = new EquivalenceClassTransformer(); + + for (int i = 0; i < 500; i++) { + pipeToTransform.getDataMap().put("TEST_phoneDomesticUSA", "%phoneDomesticUSA"); + eqTransformer.transform(pipeToTransform); + Pattern alphaWithSpacesPattern = Pattern.compile("^([2-9]\\d{2})(\\D*)([2-9]\\d{2})(\\D*)(\\d{4})$"); + Matcher didItMatch = alphaWithSpacesPattern.matcher(pipeToTransform.getDataMap().get("TEST_phoneDomesticUSA")); + Assert.assertTrue("Wrong USA domestic phone number without extension generation! Created '" + + pipeToTransform.getDataMap().get("TEST_phoneDomesticUSA") + "'...", didItMatch.matches()); + } } - - /** - * %phoneDomesticUSAWithExt produces a USA domestic phone number with extension with a partial validness check - */ - @Test - public void phoneDomesticUSAWithExtTest() { - DataPipe pipeToTransform = new DataPipe(); - EquivalenceClassTransformer eqTransformer = new EquivalenceClassTransformer(); - - for (int i = 0; i < 500; i++) { - pipeToTransform.getDataMap().put("TEST_phoneDomesticUSAWithExt", "%phoneDomesticUSAWithExt"); - eqTransformer.transform(pipeToTransform); - Pattern alphaWithSpacesPattern = Pattern.compile("^([2-9]\\d{2})(\\D*)([2-9]\\d{2})(\\D*)" - + "(\\d{4})((\\D{1})(ext|e|extension)?(\\D*)(\\d*))?$"); - Matcher didItMatch = alphaWithSpacesPattern.matcher(pipeToTransform.getDataMap().get("TEST_phoneDomesticUSAWithExt")); - Assert.assertTrue("Wrong USA domestic phone number with extension generation! Created '" - + pipeToTransform.getDataMap().get("TEST_phoneDomesticUSAWithExt") + "'...", didItMatch.matches()); - } + + /** + * %phoneDomesticUSAWithExt produces a USA domestic phone number with extension with a partial validness check + */ + @Test + public void phoneDomesticUSAWithExtTest() { + DataPipe pipeToTransform = new DataPipe(); + EquivalenceClassTransformer eqTransformer = new EquivalenceClassTransformer(); + + for (int i = 0; i < 500; i++) { + pipeToTransform.getDataMap().put("TEST_phoneDomesticUSAWithExt", "%phoneDomesticUSAWithExt"); + eqTransformer.transform(pipeToTransform); + Pattern alphaWithSpacesPattern = Pattern.compile("^([2-9]\\d{2})(\\D*)([2-9]\\d{2})(\\D*)" + + "(\\d{4})((\\D{1})(ext|e|extension)?(\\D*)(\\d*))?$"); + Matcher didItMatch = alphaWithSpacesPattern.matcher(pipeToTransform.getDataMap().get("TEST_phoneDomesticUSAWithExt")); + Assert.assertTrue("Wrong USA domestic phone number with extension generation! Created '" + + pipeToTransform.getDataMap().get("TEST_phoneDomesticUSAWithExt") + "'...", didItMatch.matches()); + } } - - /** - * %currency generates from a predefined list - */ - @Test - public void currencyTest() { - DataPipe pipeToTransform = new DataPipe(); + + /** + * %currency generates from a predefined list + */ + @Test + public void currencyTest() { + DataPipe pipeToTransform = new DataPipe(); EquivalenceClassTransformer eqTransformer = new EquivalenceClassTransformer(); - - String[] currencyCodes = { - "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AUD", - "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BHD", "BIF", - "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", - "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", - "CLP", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", - "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", - "EUR", "FJD", "FKP", "GBP", "GEL", "GHS", "GIP", "GMD", - "GNF", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", - "IDR", "ILS", "INR", "IQD", "IRR", "ISK", "JMD", "JOD", - "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRW", "KWD", - "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", - "LVL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", - "MOP", "MRO", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", - "MZN", "NAD", "NGN", "NIO", "NOK", "NPR", "NZD", "OMR", - "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG", "QAR", - "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", - "SEK", "SGD", "SHP", "SLL", "SOS", "SRD", "SSP", "STD", - "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", - "TRY", "TTD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", - "USS", "UYI", "UYU", "UZS", "VEF", "VND", "VUV", "WST", - "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", - "XDR", "XFU", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", + + String[] currencyCodes = { + "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AUD", + "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BHD", "BIF", + "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", + "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", + "CLP", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", + "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", + "EUR", "FJD", "FKP", "GBP", "GEL", "GHS", "GIP", "GMD", + "GNF", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", + "IDR", "ILS", "INR", "IQD", "IRR", "ISK", "JMD", "JOD", + "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRW", "KWD", + "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", + "LVL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", + "MOP", "MRO", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", + "MZN", "NAD", "NGN", "NIO", "NOK", "NPR", "NZD", "OMR", + "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG", "QAR", + "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", + "SEK", "SGD", "SHP", "SLL", "SOS", "SRD", "SSP", "STD", + "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", + "TRY", "TTD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", + "USS", "UYI", "UYU", "UZS", "VEF", "VND", "VUV", "WST", + "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", + "XDR", "XFU", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX", "YER", "ZAR", "ZMK", "ZWL"}; - + Assert.assertTrue("Too small number of currency codes!", eqTransformer.CURRENCY_CODES.length >= 180); - + HashSet currencyCodeLookUp = new HashSet<>(Arrays.asList(currencyCodes)); - - for (int i = 0; i < 500; i++) { - pipeToTransform.getDataMap().put("TEST", "%currency"); - eqTransformer.transform(pipeToTransform); - Assert.assertTrue(currencyCodeLookUp.contains(pipeToTransform.getDataMap().get("TEST"))); - } + + for (int i = 0; i < 500; i++) { + pipeToTransform.getDataMap().put("TEST", "%currency"); + eqTransformer.transform(pipeToTransform); + Assert.assertTrue(currencyCodeLookUp.contains(pipeToTransform.getDataMap().get("TEST"))); + } } - - /** - * Variables with values that are not macros are unaffected - */ - @Test - public void nonMacrosUnaffectedTest() { - DataPipe pipeToTransform = new DataPipe(); + + /** + * Variables with values that are not macros are unaffected + */ + @Test + public void nonMacrosUnaffectedTest() { + DataPipe pipeToTransform = new DataPipe(); EquivalenceClassTransformer eqTransformer = new EquivalenceClassTransformer(); - - pipeToTransform.getDataMap().put("TEST", "Lorem ipsum doler sit amet."); - pipeToTransform.getDataMap().put("TEST2", "%Lorem"); + + pipeToTransform.getDataMap().put("TEST", "Lorem ipsum doler sit amet."); + pipeToTransform.getDataMap().put("TEST2", "%Lorem"); pipeToTransform.getDataMap().put("TEST3", "%ipsum(1,2)"); - - eqTransformer.transform(pipeToTransform); - Assert.assertEquals("Lorem ipsum doler sit amet.", pipeToTransform.getDataMap().get("TEST")); - Assert.assertEquals("%Lorem", pipeToTransform.getDataMap().get("TEST2")); - Assert.assertEquals("%ipsum(1,2)", pipeToTransform.getDataMap().get("TEST3")); + + eqTransformer.transform(pipeToTransform); + Assert.assertEquals("Lorem ipsum doler sit amet.", pipeToTransform.getDataMap().get("TEST")); + Assert.assertEquals("%Lorem", pipeToTransform.getDataMap().get("TEST2")); + Assert.assertEquals("%ipsum(1,2)", pipeToTransform.getDataMap().get("TEST3")); } - - /** - * %state or $stateLong generates from a predefined list - */ - @Test - public void statesLongTest() { - DataPipe pipeToTransform = new DataPipe(); + + /** + * %state or $stateLong generates from a predefined list + */ + @Test + public void statesLongTest() { + DataPipe pipeToTransform = new DataPipe(); EquivalenceClassTransformer eqTransformer = new EquivalenceClassTransformer(); - - String[] statesLong = { - "Alabama", "Alaska", "American Samoa", "Arizona", "Arkansas", - "California", "Colorado", "Connecticut", "Delaware", "Dist. of Columbia", - "Florida", "Georgia", "Guam", "Hawaii", "Idaho", "Illinois", "Indiana", - "Iowa", "Kansas", "Kentucky", "Louisiana", "Maine", "Maryland", "Marshall Islands", - "Massachusetts", "Michigan", "Micronesia", "Minnesota", "Mississippi", - "Missouri", "Montana", "Nebraska", "Nevada", "New Hampshire", "New Jersey", - "New Mexico", "New York", "North Carolina", "North Dakota", "Northern Marianas", - "Ohio", "Oklahoma", "Oregon", "Palau", "Pennsylvania", "Puerto Rico", - "Rhode Island", "South Carolina", "South Dakota", "Tennessee", "Texas", - "Utah", "Vermont", "Virginia", "Virgin Islands", "Washington", "West Virginia", + + String[] statesLong = { + "Alabama", "Alaska", "American Samoa", "Arizona", "Arkansas", + "California", "Colorado", "Connecticut", "Delaware", "Dist. of Columbia", + "Florida", "Georgia", "Guam", "Hawaii", "Idaho", "Illinois", "Indiana", + "Iowa", "Kansas", "Kentucky", "Louisiana", "Maine", "Maryland", "Marshall Islands", + "Massachusetts", "Michigan", "Micronesia", "Minnesota", "Mississippi", + "Missouri", "Montana", "Nebraska", "Nevada", "New Hampshire", "New Jersey", + "New Mexico", "New York", "North Carolina", "North Dakota", "Northern Marianas", + "Ohio", "Oklahoma", "Oregon", "Palau", "Pennsylvania", "Puerto Rico", + "Rhode Island", "South Carolina", "South Dakota", "Tennessee", "Texas", + "Utah", "Vermont", "Virginia", "Virgin Islands", "Washington", "West Virginia", "Wisconsin", "Wyoming"}; - + Assert.assertTrue("Missed state long name(s)!", EquivalenceClassTransformer.STATE_LONG.length == 59); - + HashSet statesLongLookUp = new HashSet<>(Arrays.asList(statesLong)); - - // check 'state' - for (int i = 0; i < 500; i++) { - pipeToTransform.getDataMap().put("TEST_states", "%state"); - eqTransformer.transform(pipeToTransform); - Assert.assertTrue("Wrong state name(s)! Have '" + pipeToTransform.getDataMap().get("TEST_states") + "'," - + " but wait for one of '" + statesLongLookUp + "'...", - statesLongLookUp.contains(pipeToTransform.getDataMap().get("TEST_states"))); + + // check 'state' + for (int i = 0; i < 500; i++) { + pipeToTransform.getDataMap().put("TEST_states", "%state"); + eqTransformer.transform(pipeToTransform); + Assert.assertTrue("Wrong state name(s)! Have '" + pipeToTransform.getDataMap().get("TEST_states") + "'," + + " but wait for one of '" + statesLongLookUp + "'...", + statesLongLookUp.contains(pipeToTransform.getDataMap().get("TEST_states"))); + } + + // check 'stateLong' + for (int i = 0; i < 500; i++) { + pipeToTransform.getDataMap().put("TEST_statesLong", "%stateLong"); + eqTransformer.transform(pipeToTransform); + Assert.assertTrue("Wrong state long name(s)! Have '" + pipeToTransform.getDataMap().get("TEST_statesLong") + "'," + + " but wait for one of '" + statesLongLookUp + "'...", + statesLongLookUp.contains(pipeToTransform.getDataMap().get("TEST_statesLong"))); } - - // check 'stateLong' - for (int i = 0; i < 500; i++) { - pipeToTransform.getDataMap().put("TEST_statesLong", "%stateLong"); - eqTransformer.transform(pipeToTransform); - Assert.assertTrue("Wrong state long name(s)! Have '" + pipeToTransform.getDataMap().get("TEST_statesLong") + "'," - + " but wait for one of '" + statesLongLookUp + "'...", - statesLongLookUp.contains(pipeToTransform.getDataMap().get("TEST_statesLong"))); - } } - - /** - * %stateShort generates from a predefined list - */ - @Test - public void statesShortTest() { - DataPipe pipeToTransform = new DataPipe(); + + /** + * %stateShort generates from a predefined list + */ + @Test + public void statesShortTest() { + DataPipe pipeToTransform = new DataPipe(); EquivalenceClassTransformer eqTransformer = new EquivalenceClassTransformer(); - - String[] statesShort = { - "AL", "AK", "AS", "AZ", "AR", "CA", "CO", "CT", "DE", "DC", "FL", "GA", "GU", "HI", "ID", - "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", "MH", "MA", "MI", "FM", "MN", "MS", "MO", - "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "MP", "OH", "OK", "OR", "PW", "PA", + + String[] statesShort = { + "AL", "AK", "AS", "AZ", "AR", "CA", "CO", "CT", "DE", "DC", "FL", "GA", "GU", "HI", "ID", + "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", "MH", "MA", "MI", "FM", "MN", "MS", "MO", + "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "MP", "OH", "OK", "OR", "PW", "PA", "PR", "RI", "SC", "SD", "TN", "TX", "UT", "VT", "VA", "VI", "WA", "WV", "WI", "WY"}; - - Assert.assertTrue("Missed state short name(s)!", EquivalenceClassTransformer.STATES_SHORT.length == 59); - + + Assert.assertTrue("Missed state short name(s)!", EquivalenceClassTransformer.STATES_SHORT.length == 59); + HashSet statesShortLookUp = new HashSet<>(Arrays.asList(statesShort)); - - for (int i = 0; i < 500; i++) { - pipeToTransform.getDataMap().put("TEST_statesShort", "%stateShort"); - eqTransformer.transform(pipeToTransform); - Assert.assertTrue("Wrong state short name(s)! Have '" + pipeToTransform.getDataMap().get("TEST_statesShort") + "'," - + " but wait for one of '" + statesShortLookUp + "'...", - statesShortLookUp.contains(pipeToTransform.getDataMap().get("TEST_statesShort"))); - } + + for (int i = 0; i < 500; i++) { + pipeToTransform.getDataMap().put("TEST_statesShort", "%stateShort"); + eqTransformer.transform(pipeToTransform); + Assert.assertTrue("Wrong state short name(s)! Have '" + pipeToTransform.getDataMap().get("TEST_statesShort") + "'," + + " but wait for one of '" + statesShortLookUp + "'...", + statesShortLookUp.contains(pipeToTransform.getDataMap().get("TEST_statesShort"))); + } } - - /** - * %country generates from a predefined list - */ - @Test - public void countryLongTest() { - DataPipe pipeToTransform = new DataPipe(); + + /** + * %country generates from a predefined list + */ + @Test + public void countryLongTest() { + DataPipe pipeToTransform = new DataPipe(); EquivalenceClassTransformer eqTransformer = new EquivalenceClassTransformer(); - - String[] countryLong = { - "Afghanistan", "Albania", "Algeria", "Andorra", "Angola", "Antigua & Barbuda", "Argentina", - "Armenia", "Australia", "Austria", "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados", - "Belarus", "Belgium", "Belize", "Benin", "Bhutan", "Bolivia", "Bosnia & Herzegovina", "Botswana", - "Brazil", "Brunei", "Bulgaria", "Burkina Faso", "Burundi", "Cambodia", "Cameroon", "Canada", - "Cape Verde", "Central African Republic", "Chad", "Chile", "China", "Colombia", "Comoros", "Congo", - "Congo Democratic Republic", "Costa Rica", "Cote d'Ivoire", "Croatia", "Cuba", "Cyprus", "Czech Republic", - "Denmark", "Djibouti", "Dominica", "Dominican Republic", "Ecuador", "East Timor", "Egypt", "El Salvador", - "Equatorial Guinea", "Eritrea", "Estonia", "Ethiopia", "Fiji", "Finland", "France", "Gabon", "Gambia", - "Georgia", "Germany", "Ghana", "Greece", "Grenada", "Guatemala", "Guinea", "Guinea-Bissau", "Guyana", - "Haiti", "Honduras", "Hungary", "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", - "Italy", "Jamaica", "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Korea North", "Korea South", - "Kosovo", "Kuwait", "Kyrgyzstan", "Laos", "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", - "Lithuania", "Luxembourg", "Macedonia", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", - "Marshall Islands", "Mauritania", "Mauritius", "Mexico", "Micronesia", "Moldova", "Monaco", "Mongolia", - "Montenegro", "Morocco", "Mozambique", "Myanmar (Burma)", "Namibia", "Nauru", "Nepal", "The Netherlands", - "New Zealand", "Nicaragua", "Niger", "Nigeria", "Norway", "Oman", "Pakistan", "Palau", "Palestinian State", - "Panama", "Papua New Guinea", "Paraguay", "Peru", "The Philippines", "Poland", "Portugal", "Qatar", "Romania", - "Russia", "Rwanda", "St. Kitts & Nevis", "St. Lucia", "St. Vincent & The Grenadines", "Samoa", "San Marino", - "Sao Tome & Principe", "Saudi Arabia", "Senegal", "Serbia", "Seychelles", "Sierra Leone", "Singapore", - "Slovakia", "Slovenia", "Solomon Islands", "Somalia", "South Africa", "South Sudan", "Spain", "Sri Lanka", - "Sudan", "Suriname", "Swaziland", "Sweden", "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", - "Thailand", "Togo", "Tonga", "Trinidad & Tobago", "Tunisia", "Turkey", "Turkmenistan", "Tuvalu", "Uganda", - "Ukraine", "United Arab Emirates", "United Kingdom", "United States of America", "Uruguay", "Uzbekistan", - "Vanuatu", "Vatican City", "Venezuela", "Vietnam", "Yemen", "Zambia", "Zimbabwe" + + String[] countryLong = { + "Afghanistan", "Albania", "Algeria", "Andorra", "Angola", "Antigua & Barbuda", "Argentina", + "Armenia", "Australia", "Austria", "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados", + "Belarus", "Belgium", "Belize", "Benin", "Bhutan", "Bolivia", "Bosnia & Herzegovina", "Botswana", + "Brazil", "Brunei", "Bulgaria", "Burkina Faso", "Burundi", "Cambodia", "Cameroon", "Canada", + "Cape Verde", "Central African Republic", "Chad", "Chile", "China", "Colombia", "Comoros", "Congo", + "Congo Democratic Republic", "Costa Rica", "Cote d'Ivoire", "Croatia", "Cuba", "Cyprus", "Czech Republic", + "Denmark", "Djibouti", "Dominica", "Dominican Republic", "Ecuador", "East Timor", "Egypt", "El Salvador", + "Equatorial Guinea", "Eritrea", "Estonia", "Ethiopia", "Fiji", "Finland", "France", "Gabon", "Gambia", + "Georgia", "Germany", "Ghana", "Greece", "Grenada", "Guatemala", "Guinea", "Guinea-Bissau", "Guyana", + "Haiti", "Honduras", "Hungary", "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", + "Italy", "Jamaica", "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Korea North", "Korea South", + "Kosovo", "Kuwait", "Kyrgyzstan", "Laos", "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", + "Lithuania", "Luxembourg", "Macedonia", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", + "Marshall Islands", "Mauritania", "Mauritius", "Mexico", "Micronesia", "Moldova", "Monaco", "Mongolia", + "Montenegro", "Morocco", "Mozambique", "Myanmar (Burma)", "Namibia", "Nauru", "Nepal", "The Netherlands", + "New Zealand", "Nicaragua", "Niger", "Nigeria", "Norway", "Oman", "Pakistan", "Palau", "Palestinian State", + "Panama", "Papua New Guinea", "Paraguay", "Peru", "The Philippines", "Poland", "Portugal", "Qatar", "Romania", + "Russia", "Rwanda", "St. Kitts & Nevis", "St. Lucia", "St. Vincent & The Grenadines", "Samoa", "San Marino", + "Sao Tome & Principe", "Saudi Arabia", "Senegal", "Serbia", "Seychelles", "Sierra Leone", "Singapore", + "Slovakia", "Slovenia", "Solomon Islands", "Somalia", "South Africa", "South Sudan", "Spain", "Sri Lanka", + "Sudan", "Suriname", "Swaziland", "Sweden", "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", + "Thailand", "Togo", "Tonga", "Trinidad & Tobago", "Tunisia", "Turkey", "Turkmenistan", "Tuvalu", "Uganda", + "Ukraine", "United Arab Emirates", "United Kingdom", "United States of America", "Uruguay", "Uzbekistan", + "Vanuatu", "Vatican City", "Venezuela", "Vietnam", "Yemen", "Zambia", "Zimbabwe" }; - - Assert.assertTrue("Missed country long name(s)!", EquivalenceClassTransformer.COUNTRIES.length == 197); - + + Assert.assertTrue("Missed country long name(s)!", EquivalenceClassTransformer.COUNTRIES.length == 197); + HashSet countryLongLookUp = new HashSet<>(Arrays.asList(countryLong)); - - // check 'country' - for (int i = 0; i < 500; i++) { - pipeToTransform.getDataMap().put("TEST_country", "%country"); - eqTransformer.transform(pipeToTransform); - Assert.assertTrue("Wrong country name(s)! Have '" + pipeToTransform.getDataMap().get("TEST_country") + "'," - + " but wait for one of '" + countryLongLookUp + "'...", - countryLongLookUp.contains(pipeToTransform.getDataMap().get("TEST_country"))); + + // check 'country' + for (int i = 0; i < 500; i++) { + pipeToTransform.getDataMap().put("TEST_country", "%country"); + eqTransformer.transform(pipeToTransform); + Assert.assertTrue("Wrong country name(s)! Have '" + pipeToTransform.getDataMap().get("TEST_country") + "'," + + " but wait for one of '" + countryLongLookUp + "'...", + countryLongLookUp.contains(pipeToTransform.getDataMap().get("TEST_country"))); + } + + // check 'countryLong' + for (int i = 0; i < 500; i++) { + pipeToTransform.getDataMap().put("TEST_countryLong", "%countryLong"); + eqTransformer.transform(pipeToTransform); + Assert.assertTrue("Wrong country long name(s)! Have '" + pipeToTransform.getDataMap().get("TEST_countryLong") + "'," + + " but wait for one of '" + countryLongLookUp + "'...", + countryLongLookUp.contains(pipeToTransform.getDataMap().get("TEST_countryLong"))); } - - // check 'countryLong' - for (int i = 0; i < 500; i++) { - pipeToTransform.getDataMap().put("TEST_countryLong", "%countryLong"); - eqTransformer.transform(pipeToTransform); - Assert.assertTrue("Wrong country long name(s)! Have '" + pipeToTransform.getDataMap().get("TEST_countryLong") + "'," - + " but wait for one of '" + countryLongLookUp + "'...", - countryLongLookUp.contains(pipeToTransform.getDataMap().get("TEST_countryLong"))); - } } - - - /** - * %symbolNASDAQ and %securityNameNASDAQ generates from a predefined list - */ - @Test - public void securityNASDAQTest() { - securityTestDo("nasdaqlisted.txt", EquivalenceClassTransformer.COUNT_NASDAQ_SECURITIES, "NASDAQ", "symbolNASDAQ", + + + /** + * %symbolNASDAQ and %securityNameNASDAQ generates from a predefined list + */ + @Test + public void securityNASDAQTest() { + securityTestDo("nasdaqlisted.txt", EquivalenceClassTransformer.COUNT_NASDAQ_SECURITIES, "NASDAQ", "symbolNASDAQ", "securityNameNASDAQ", EquivalenceClassTransformer.SYMBOLS_NASDAQ, EquivalenceClassTransformer.SECURITY_NAMES_NASDAQ); - - securityTestDo("otherlisted.txt", EquivalenceClassTransformer.COUNT_NOT_NASDAQ_SECURITIES, "not NASDAQ", "symbolNotNASDAQ", - "securityNameNotNASDAQ", EquivalenceClassTransformer.SYMBOLS_NOT_NASDAQ, EquivalenceClassTransformer.SECURITY_NAMES_NOT_NASDAQ); + + securityTestDo("otherlisted.txt", EquivalenceClassTransformer.COUNT_NOT_NASDAQ_SECURITIES, "not NASDAQ", "symbolNotNASDAQ", + "securityNameNotNASDAQ", EquivalenceClassTransformer.SYMBOLS_NOT_NASDAQ, EquivalenceClassTransformer.SECURITY_NAMES_NOT_NASDAQ); } - - private void securityTestDo(String fileName, int numberOfRecords, String securityType, String equivClass1, + + private void securityTestDo(String fileName, int numberOfRecords, String securityType, String equivClass1, String equivClass2, String[] symbolSet, String[] nameSet) { - - DataPipe pipeToTransform = new DataPipe(); + + DataPipe pipeToTransform = new DataPipe(); EquivalenceClassTransformer eqTransformer = new EquivalenceClassTransformer(); - - String[] symbols = new String[numberOfRecords]; + + String[] symbols = new String[numberOfRecords]; String[] securityNames = new String[numberOfRecords]; - - InputStream fileData = getClass().getClassLoader().getResourceAsStream(fileName); - BufferedReader reader = new BufferedReader(new InputStreamReader(fileData)); - String line; - try { - int i = 0; - while ((line = reader.readLine()) != null) { - String[] lineSplitted = line.split("\\|"); - if (lineSplitted.length >= 2) { - symbols[i] = lineSplitted[0]; - securityNames[i] = lineSplitted[1]; - i++; - } - } - } catch (IOException e) { - Assert.assertFalse("Exception during reading '" + fileName + "' file! " + e, true); + + InputStream fileData = getClass().getClassLoader().getResourceAsStream(fileName); + BufferedReader reader = new BufferedReader(new InputStreamReader(fileData)); + String line; + try { + int i = 0; + while ((line = reader.readLine()) != null) { + String[] lineSplitted = line.split("\\|"); + if (lineSplitted.length >= 2) { + symbols[i] = lineSplitted[0]; + securityNames[i] = lineSplitted[1]; + i++; + } + } + } catch (IOException e) { + Assert.assertFalse("Exception during reading '" + fileName + "' file! " + e, true); } - - Assert.assertTrue("Wrong number of " + securityType + " securities!", symbolSet.length == numberOfRecords); - Assert.assertTrue("Wrong number of " + securityType + " securities!", nameSet.length == numberOfRecords); - - HashSet symbolsLookUp = new HashSet<>(Arrays.asList(symbols)); - for (int i = 0; i < numberOfRecords * 10; i++) { - pipeToTransform.getDataMap().put("TEST_symbol", "%" + equivClass1); - eqTransformer.transform(pipeToTransform); - Assert.assertTrue("Wrong " + securityType + " security symbol ('" + pipeToTransform.getDataMap().get("TEST_symbol") + "')!", - symbolsLookUp.contains(pipeToTransform.getDataMap().get("TEST_symbol"))); + + Assert.assertTrue("Wrong number of " + securityType + " securities!", symbolSet.length == numberOfRecords); + Assert.assertTrue("Wrong number of " + securityType + " securities!", nameSet.length == numberOfRecords); + + HashSet symbolsLookUp = new HashSet<>(Arrays.asList(symbols)); + for (int i = 0; i < numberOfRecords * 10; i++) { + pipeToTransform.getDataMap().put("TEST_symbol", "%" + equivClass1); + eqTransformer.transform(pipeToTransform); + Assert.assertTrue("Wrong " + securityType + " security symbol ('" + pipeToTransform.getDataMap().get("TEST_symbol") + "')!", + symbolsLookUp.contains(pipeToTransform.getDataMap().get("TEST_symbol"))); } - - HashSet securityNamesLookUp = new HashSet<>(Arrays.asList(securityNames)); - for (int i = 0; i < numberOfRecords * 10; i++) { - pipeToTransform.getDataMap().put("TEST_securityName", "%" + equivClass2); - eqTransformer.transform(pipeToTransform); - Assert.assertTrue("Wrong " + securityType + " security name ('" + pipeToTransform.getDataMap().get("TEST_securityName") + "')!", - securityNamesLookUp.contains(pipeToTransform.getDataMap().get("TEST_securityName"))); - } - } + + HashSet securityNamesLookUp = new HashSet<>(Arrays.asList(securityNames)); + for (int i = 0; i < numberOfRecords * 10; i++) { + pipeToTransform.getDataMap().put("TEST_securityName", "%" + equivClass2); + eqTransformer.transform(pipeToTransform); + Assert.assertTrue("Wrong " + securityType + " security name ('" + pipeToTransform.getDataMap().get("TEST_securityName") + "')!", + securityNamesLookUp.contains(pipeToTransform.getDataMap().get("TEST_securityName"))); + } + } } diff --git a/dg-core/src/test/java/org/finra/datagenerator/consumer/RepeatingDataConsumerTest.java b/dg-core/src/test/java/org/finra/datagenerator/consumer/RepeatingDataConsumerTest.java index 2c7da4a1..e9da57e7 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/consumer/RepeatingDataConsumerTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/consumer/RepeatingDataConsumerTest.java @@ -1,96 +1,96 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.consumer; - -import org.junit.Assert; + +import org.junit.Assert; import org.junit.Test; - -import java.util.HashMap; + +import java.util.HashMap; import java.util.Map; - -/** - * Marshall Peters - * Date: 12/10/14 - */ + +/** + * Marshall Peters + * Date: 12/10/14 + */ public class RepeatingDataConsumerTest { - - /** - * The default repeat number is 1 - */ - @Test - public void defaultRepeatNumberTest() { - RepeatingDataConsumer repeatingDataConsumer = new RepeatingDataConsumer(); - Assert.assertEquals(1, repeatingDataConsumer.getRepeatNumber()); + + /** + * The default repeat number is 1 + */ + @Test + public void defaultRepeatNumberTest() { + RepeatingDataConsumer repeatingDataConsumer = new RepeatingDataConsumer(); + Assert.assertEquals(1, repeatingDataConsumer.getRepeatNumber()); } - - /** - * Access methods for repeat number - */ - @Test - public void getSetRepeatNumberTest() { - RepeatingDataConsumer repeatingDataConsumer = new RepeatingDataConsumer(); - repeatingDataConsumer.setRepeatNumber(3); - Assert.assertEquals(3, repeatingDataConsumer.getRepeatNumber()); - repeatingDataConsumer.setRepeatNumber(6); - Assert.assertEquals(6, repeatingDataConsumer.getRepeatNumber()); + + /** + * Access methods for repeat number + */ + @Test + public void getSetRepeatNumberTest() { + RepeatingDataConsumer repeatingDataConsumer = new RepeatingDataConsumer(); + repeatingDataConsumer.setRepeatNumber(3); + Assert.assertEquals(3, repeatingDataConsumer.getRepeatNumber()); + repeatingDataConsumer.setRepeatNumber(6); + Assert.assertEquals(6, repeatingDataConsumer.getRepeatNumber()); } - - /** - * consume returns repeat number - */ - @Test - public void returnsRepeatNumberTest() { - RepeatingDataConsumer repeatingDataConsumer = new RepeatingDataConsumer(); - repeatingDataConsumer.setRepeatNumber(29); - Assert.assertEquals(29, repeatingDataConsumer.consume(new HashMap())); + + /** + * consume returns repeat number + */ + @Test + public void returnsRepeatNumberTest() { + RepeatingDataConsumer repeatingDataConsumer = new RepeatingDataConsumer(); + repeatingDataConsumer.setRepeatNumber(29); + Assert.assertEquals(29, repeatingDataConsumer.consume(new HashMap())); } - - /** - * Should call the super consume repeat number of times - */ - @Test - public void callsSuperConsumeCorrectNumberOfTimesTest() { - class CallCountTransformer implements DataTransformer { - private final Map inputDataMap; + + /** + * Should call the super consume repeat number of times + */ + @Test + public void callsSuperConsumeCorrectNumberOfTimesTest() { + class CallCountTransformer implements DataTransformer { + private final Map inputDataMap; private int callCount; - - CallCountTransformer(final Map inputDataMap) { - this.inputDataMap = inputDataMap; + + CallCountTransformer(final Map inputDataMap) { + this.inputDataMap = inputDataMap; + } + + public int getCallCount() { + return callCount; } - - public int getCallCount() { - return callCount; + + public void transform(DataPipe cr) { + Assert.assertEquals(inputDataMap, cr.getDataMap()); + callCount++; } - - public void transform(DataPipe cr) { - Assert.assertEquals(inputDataMap, cr.getDataMap()); - callCount++; - } } - - HashMap mapToConsume = new HashMap(); - mapToConsume.put("var_out_test", "LoremIpsum"); + + HashMap mapToConsume = new HashMap(); + mapToConsume.put("var_out_test", "LoremIpsum"); CallCountTransformer callCountTransformer = new CallCountTransformer(mapToConsume); - - RepeatingDataConsumer repeatingDataConsumer = new RepeatingDataConsumer(); - repeatingDataConsumer.addDataTransformer(callCountTransformer); - repeatingDataConsumer.setRepeatNumber(29); + + RepeatingDataConsumer repeatingDataConsumer = new RepeatingDataConsumer(); + repeatingDataConsumer.addDataTransformer(callCountTransformer); + repeatingDataConsumer.setRepeatNumber(29); repeatingDataConsumer.consume(mapToConsume); - - Assert.assertEquals(29, callCountTransformer.getCallCount()); - } + + Assert.assertEquals(29, callCountTransformer.getCallCount()); + } } diff --git a/dg-core/src/test/java/org/finra/datagenerator/distributor/spark/SparkDistributorTest.java b/dg-core/src/test/java/org/finra/datagenerator/distributor/spark/SparkDistributorTest.java index 97077618..2fd540e6 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/distributor/spark/SparkDistributorTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/distributor/spark/SparkDistributorTest.java @@ -1,52 +1,52 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.distributor.spark; - -import org.apache.spark.api.java.JavaRDD; -import org.finra.datagenerator.engine.scxml.SCXMLEngine; -import org.junit.Assert; + +import org.apache.spark.api.java.JavaRDD; +import org.finra.datagenerator.engine.scxml.SCXMLEngine; +import org.junit.Assert; import org.junit.Test; - -import java.io.InputStream; + +import java.io.InputStream; import java.util.Map; - -/** - * Integration test for SparkDistributor - * - * Needs proper unit tests some day - */ + +/** + * Integration test for SparkDistributor + * + * Needs proper unit tests some day + */ public class SparkDistributorTest { - - /** - * Simple integration test to smoke test the SparkDistributor - */ - @Test - public void testSparkDistributor() { + + /** + * Simple integration test to smoke test the SparkDistributor + */ + @Test + public void testSparkDistributor() { InputStream is = SparkDistributorTest.class.getResourceAsStream("/spark/samplemachine.xml"); - + SCXMLEngine scxmlEngine = new SCXMLEngine(); - - scxmlEngine.setModelByInputFileStream(is); + + scxmlEngine.setModelByInputFileStream(is); scxmlEngine.setBootstrapMin(1); - - SparkDistributor sparkDistributor = new SparkDistributor("local[5]"); + + SparkDistributor sparkDistributor = new SparkDistributor("local[5]"); scxmlEngine.process(sparkDistributor); - - JavaRDD> results = sparkDistributor.getGeneratedMaps(); - Assert.assertEquals(243, results.collect().size()); - } + + JavaRDD> results = sparkDistributor.getGeneratedMaps(); + Assert.assertEquals(243, results.collect().size()); + } } diff --git a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/DGFileTest.java b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/DGFileTest.java index 3b031fbe..708dc6c5 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/DGFileTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/DGFileTest.java @@ -1,89 +1,89 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml; - -import org.apache.commons.scxml.model.ModelException; -import org.junit.Assert; + +import org.apache.commons.scxml.model.ModelException; +import org.junit.Assert; import org.junit.Test; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; + +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; import java.util.Set; - -/** - * Testing dg:assign custom tag with 'set' and 'range' methods - */ -public class DGFileTest { - private String[] setVarDomain1 = new String[]{"a1", "b1"}; - private String[] setVarDomain2 = new String[]{"a2", "b2", "c2"}; + +/** + * Testing dg:assign custom tag with 'set' and 'range' methods + */ +public class DGFileTest { + private String[] setVarDomain1 = new String[]{"a1", "b1"}; + private String[] setVarDomain2 = new String[]{"a2", "b2", "c2"}; - - /** - * Test multiple variable assignments using 'set' and 'range' inside 'dg:assign' tag - */ - @Test - public void verifyDGFileExention() { - SCXMLEngine e = new SCXMLEngine(); - InputStream is = DGFileTest.class.getResourceAsStream("/DGFileTest.xml"); + + /** + * Test multiple variable assignments using 'set' and 'range' inside 'dg:assign' tag + */ + @Test + public void verifyDGFileExention() { + SCXMLEngine e = new SCXMLEngine(); + InputStream is = DGFileTest.class.getResourceAsStream("/DGFileTest.xml"); e.setModelByInputFileStream(is); - - try { + + try { Set> allPossibleValues = generateAllPossibleValues(); - + List bfs = e.bfs(allPossibleValues.size()); - - Assert.assertEquals("Oops! We have '" + bfs.size() + "' record(s), but we wait for " + allPossibleValues.size() + " record(s)!", + + Assert.assertEquals("Oops! We have '" + bfs.size() + "' record(s), but we wait for " + allPossibleValues.size() + " record(s)!", allPossibleValues.size(), bfs.size()); - - for (PossibleState p : bfs) { - // let's remove this generated record from list of all necessary records for this test - List recordType12 = new ArrayList(); - recordType12.add(p.variables.get("var_1")); - recordType12.add(p.variables.get("var_2")); - if (allPossibleValues.contains(recordType12)) { - allPossibleValues.remove(recordType12); - } else { - Assert.fail("Oops! '" + recordType12 + "' combination was generated, but we don't wait for it!"); - } + + for (PossibleState p : bfs) { + // let's remove this generated record from list of all necessary records for this test + List recordType12 = new ArrayList(); + recordType12.add(p.variables.get("var_1")); + recordType12.add(p.variables.get("var_2")); + if (allPossibleValues.contains(recordType12)) { + allPossibleValues.remove(recordType12); + } else { + Assert.fail("Oops! '" + recordType12 + "' combination was generated, but we don't wait for it!"); + } + } + + // we have removed all generated values, so 'allPossibleValues' has be empty now + for (List value : allPossibleValues) { + Assert.fail("Oops! We have not generated this combanation: '" + value + "'!"); } - - // we have removed all generated values, so 'allPossibleValues' has be empty now - for (List value : allPossibleValues) { - Assert.fail("Oops! We have not generated this combanation: '" + value + "'!"); - } - } catch (ModelException ex) { - Assert.fail("Oops! ModelException = " + ex); - } + } catch (ModelException ex) { + Assert.fail("Oops! ModelException = " + ex); + } } - - private Set> generateAllPossibleValues() { + + private Set> generateAllPossibleValues() { Set> result = new HashSet>(); - - for (String val1 : setVarDomain1) { - for (String val2 : setVarDomain2) { - List record = new ArrayList(); - record.add(val1); - record.add(val2); - result.add(record); - } - } - return result; + + for (String val1 : setVarDomain1) { + for (String val2 : setVarDomain2) { + List record = new ArrayList(); + record.add(val1); + record.add(val2); + result.add(record); + } + } + return result; } - + } diff --git a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/PossibleStateTest.java b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/PossibleStateTest.java index f1a04c21..39b72b9e 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/PossibleStateTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/PossibleStateTest.java @@ -1,60 +1,60 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml; - -import org.junit.Assert; -import org.apache.commons.scxml.model.TransitionTarget; + +import org.junit.Assert; +import org.apache.commons.scxml.model.TransitionTarget; import org.junit.Test; - -import java.util.HashMap; + +import java.util.HashMap; import java.util.Map; - -/** - * Marshall Peters - * Date: 12/10/14 - */ + +/** + * Marshall Peters + * Date: 12/10/14 + */ public class PossibleStateTest { - - /** - * Possible state is a value object tracking a TransitionTarget and a Map of variable/value pairs - */ - @Test - public void constructorTest() { - TransitionTarget dummyState = new TransitionTarget() { - }; - dummyState.setId("Dummy State"); - Map variables = new HashMap<>(); + + /** + * Possible state is a value object tracking a TransitionTarget and a Map of variable/value pairs + */ + @Test + public void constructorTest() { + TransitionTarget dummyState = new TransitionTarget() { + }; + dummyState.setId("Dummy State"); + Map variables = new HashMap<>(); PossibleState testState = new PossibleState(dummyState, variables); - - Assert.assertSame(dummyState, testState.nextState); - Assert.assertSame(variables, testState.variables); + + Assert.assertSame(dummyState, testState.nextState); + Assert.assertSame(variables, testState.variables); } - - /** - * Custom toString() method - */ - @Test - public void toStringTest() { - TransitionTarget dummyState = new TransitionTarget() { - }; - dummyState.setId("Dummy State"); - Map variables = new HashMap<>(); + + /** + * Custom toString() method + */ + @Test + public void toStringTest() { + TransitionTarget dummyState = new TransitionTarget() { + }; + dummyState.setId("Dummy State"); + Map variables = new HashMap<>(); PossibleState testState = new PossibleState(dummyState, variables); - - Assert.assertEquals("", testState.toString()); - } + + Assert.assertEquals("", testState.toString()); + } } diff --git a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/SCXMLEngineTest.java b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/SCXMLEngineTest.java index 38ffa7e6..bd6aac5b 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/SCXMLEngineTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/SCXMLEngineTest.java @@ -1,144 +1,144 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml; - -import java.io.InputStream; -import java.util.HashSet; -import java.util.List; + +import java.io.InputStream; +import java.util.HashSet; +import java.util.List; import java.util.Set; - -import org.apache.commons.scxml.model.ModelException; -import org.junit.Assert; + +import org.apache.commons.scxml.model.ModelException; +import org.junit.Assert; import org.junit.Test; - -/** - * Marshall Peters Date: 9/3/14 - */ -public class SCXMLEngineTest { - private String[] setRecordType1 = new String[]{"a1", "b1", "c1", "d1", "e1", "f1", "g1"}; - private String[] setRecordType2 = new String[]{"a2", "b2", "c2", "d2", "e2", "f2", "g2"}; + +/** + * Marshall Peters Date: 9/3/14 + */ +public class SCXMLEngineTest { + private String[] setRecordType1 = new String[]{"a1", "b1", "c1", "d1", "e1", "f1", "g1"}; + private String[] setRecordType2 = new String[]{"a2", "b2", "c2", "d2", "e2", "f2", "g2"}; private String[] setRecordType3 = new String[]{"a3", "b3", "c3", "d3", "e3", "f3", "g3"}; - - /** - * Multiple variable assignments using 'set' inside 'dg:assign' tag - */ - @Test - public void testMultiVariableAssignment() { - SCXMLEngine e = new SCXMLEngine(); - InputStream is = SCXMLEngineTest.class.getResourceAsStream("/bigtest.xml"); + + /** + * Multiple variable assignments using 'set' inside 'dg:assign' tag + */ + @Test + public void testMultiVariableAssignment() { + SCXMLEngine e = new SCXMLEngine(); + InputStream is = SCXMLEngineTest.class.getResourceAsStream("/bigtest.xml"); e.setModelByInputFileStream(is); - - try { - List bfs = e.bfs(100); - Assert.assertEquals("Oops! We have '" + bfs.size() + "' records, but we wait for 7^3, " + + try { + List bfs = e.bfs(100); + Assert.assertEquals("Oops! We have '" + bfs.size() + "' records, but we wait for 7^3, " + "produced by expanding BULK_ASSIGN", 343, bfs.size()); - - Set> allPossibleValuesForRecordType123 = generateAllPossibleValues(); - for (PossibleState p : bfs) { - // let's remove this generated record from list of all necessary records for this test - Set recordType123 = new HashSet(); - recordType123.add(p.variables.get("var_out_RECORD_TYPE")); - recordType123.add(p.variables.get("var_out_RECORD_TYPE_2")); - recordType123.add(p.variables.get("var_out_RECORD_TYPE_3")); - if (allPossibleValuesForRecordType123.contains(recordType123)) { - allPossibleValuesForRecordType123.remove(recordType123); - } else { - Assert.fail("Oops! We wait for '" + recordType123 + "' combination for RECORD_TYPE_1, _2 and _3, but it wasn't generated!"); + + Set> allPossibleValuesForRecordType123 = generateAllPossibleValues(); + for (PossibleState p : bfs) { + // let's remove this generated record from list of all necessary records for this test + Set recordType123 = new HashSet(); + recordType123.add(p.variables.get("var_out_RECORD_TYPE")); + recordType123.add(p.variables.get("var_out_RECORD_TYPE_2")); + recordType123.add(p.variables.get("var_out_RECORD_TYPE_3")); + if (allPossibleValuesForRecordType123.contains(recordType123)) { + allPossibleValuesForRecordType123.remove(recordType123); + } else { + Assert.fail("Oops! We wait for '" + recordType123 + "' combination for RECORD_TYPE_1, _2 and _3, but it wasn't generated!"); } - - Assert.assertEquals(p.nextState.getId(), "ASSIGN_WITH_CONDITIONS"); - Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_4"), "Lorem"); - Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_5"), "Ipsum"); - Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_6"), "Doler"); + + Assert.assertEquals(p.nextState.getId(), "ASSIGN_WITH_CONDITIONS"); + Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_4"), "Lorem"); + Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_5"), "Ipsum"); + Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_6"), "Doler"); + } + + // we have removed all generated values for RECORD_TYPE_1, _2 and _3, so 'allPossibleValuesForRecordType123' has be empty now + for (Set valuesForRecordType123 : allPossibleValuesForRecordType123) { + Assert.fail("Oops! We have not generated combanation for for RECORD_TYPE_1, _2 and _3 - '" + valuesForRecordType123 + "'!"); } - - // we have removed all generated values for RECORD_TYPE_1, _2 and _3, so 'allPossibleValuesForRecordType123' has be empty now - for (Set valuesForRecordType123 : allPossibleValuesForRecordType123) { - Assert.fail("Oops! We have not generated combanation for for RECORD_TYPE_1, _2 and _3 - '" + valuesForRecordType123 + "'!"); - } - } catch (ModelException ex) { - Assert.fail("Oops! ModelException = " + e); - } + } catch (ModelException ex) { + Assert.fail("Oops! ModelException = " + e); + } } - - private Set> generateAllPossibleValues() { + + private Set> generateAllPossibleValues() { Set> result = new HashSet>(); - - for (String val1 : setRecordType1) { - for (String val2 : setRecordType2) { - for (String val3 : setRecordType3) { - Set record = new HashSet(); - record.add(val1); - record.add(val2); - record.add(val3); - result.add(record); - } - } - } - return result; + + for (String val1 : setRecordType1) { + for (String val2 : setRecordType2) { + for (String val3 : setRecordType3) { + Set record = new HashSet(); + record.add(val1); + record.add(val2); + record.add(val3); + result.add(record); + } + } + } + return result; } - - /** - * All variables have a default assignment of "" (empty string) - */ - @Test - public void testInitiallyEmptyAssignment() { - SCXMLEngine e = new SCXMLEngine(); - InputStream is = SCXMLEngineTest.class.getResourceAsStream("/bigtest.xml"); + + /** + * All variables have a default assignment of "" (empty string) + */ + @Test + public void testInitiallyEmptyAssignment() { + SCXMLEngine e = new SCXMLEngine(); + InputStream is = SCXMLEngineTest.class.getResourceAsStream("/bigtest.xml"); e.setModelByInputFileStream(is); - - try { - List bfs = e.bfs(1); + + try { + List bfs = e.bfs(1); Assert.assertEquals(1, bfs.size()); - - PossibleState p = bfs.get(0); + + PossibleState p = bfs.get(0); Assert.assertEquals(p.nextState.getId(), "start"); - - Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE"), ""); - Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_2"), ""); - Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_3"), ""); - Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_4"), ""); - Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_5"), ""); - Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_6"), ""); - Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_7"), ""); - Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_8"), ""); - Assert.assertEquals(p.variables.keySet().size(), 8); - } catch (ModelException ex) { - Assert.fail("Oops! ModelException = " + e); - } + + Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE"), ""); + Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_2"), ""); + Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_3"), ""); + Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_4"), ""); + Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_5"), ""); + Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_6"), ""); + Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_7"), ""); + Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_8"), ""); + Assert.assertEquals(p.variables.keySet().size(), 8); + } catch (ModelException ex) { + Assert.fail("Oops! ModelException = " + e); + } } - - /** - * Throws exception when reaching end state - */ - @Test - public void testExceptionAtEndState() { - SCXMLEngine e = new SCXMLEngine(); - InputStream is = SCXMLEngineTest.class.getResourceAsStream("/bigtest.xml"); + + /** + * Throws exception when reaching end state + */ + @Test + public void testExceptionAtEndState() { + SCXMLEngine e = new SCXMLEngine(); + InputStream is = SCXMLEngineTest.class.getResourceAsStream("/bigtest.xml"); e.setModelByInputFileStream(is); - - String errorMessageExpected = "Could not achieve required bootstrap without reaching end state"; - try { - e.bfs(4000); // too many - Assert.fail("Oops! We wait for '" + errorMessageExpected + "' error message here " - + "(bootstrap size is too big for this model), but don't have it!"); - } catch (ModelException ex) { - Assert.assertEquals("Oops! We have '" + ex.getMessage() + "' modelException error message, but we wait for " - + "'" + errorMessageExpected + "' here!", ex.getMessage(), errorMessageExpected); - } - } + + String errorMessageExpected = "Could not achieve required bootstrap without reaching end state"; + try { + e.bfs(4000); // too many + Assert.fail("Oops! We wait for '" + errorMessageExpected + "' error message here " + + "(bootstrap size is too big for this model), but don't have it!"); + } catch (ModelException ex) { + Assert.assertEquals("Oops! We have '" + ex.getMessage() + "' modelException error message, but we wait for " + + "'" + errorMessageExpected + "' here!", ex.getMessage(), errorMessageExpected); + } + } } diff --git a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/SCXMLFrontierTest.java b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/SCXMLFrontierTest.java index 95323628..20bd8cf4 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/SCXMLFrontierTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/SCXMLFrontierTest.java @@ -1,141 +1,141 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml; - -import org.apache.commons.scxml.io.SCXMLParser; -import org.apache.commons.scxml.model.CustomAction; -import org.apache.commons.scxml.model.ModelException; -import org.apache.commons.scxml.model.SCXML; -import org.finra.datagenerator.distributor.multithreaded.QueueResultsProcessing; -import org.finra.datagenerator.engine.scxml.tags.CustomTagExtension; -import org.finra.datagenerator.engine.scxml.tags.FileExtension; -import org.finra.datagenerator.engine.scxml.tags.RangeExtension; -import org.finra.datagenerator.engine.scxml.tags.SetAssignExtension; -import org.finra.datagenerator.engine.scxml.tags.SingleValueAssignExtension; -import org.junit.Assert; -import org.junit.Test; -import org.xml.sax.InputSource; + +import org.apache.commons.scxml.io.SCXMLParser; +import org.apache.commons.scxml.model.CustomAction; +import org.apache.commons.scxml.model.ModelException; +import org.apache.commons.scxml.model.SCXML; +import org.finra.datagenerator.distributor.multithreaded.QueueResultsProcessing; +import org.finra.datagenerator.engine.scxml.tags.CustomTagExtension; +import org.finra.datagenerator.engine.scxml.tags.FileExtension; +import org.finra.datagenerator.engine.scxml.tags.RangeExtension; +import org.finra.datagenerator.engine.scxml.tags.SetAssignExtension; +import org.finra.datagenerator.engine.scxml.tags.SingleValueAssignExtension; +import org.junit.Assert; +import org.junit.Test; +import org.xml.sax.InputSource; import org.xml.sax.SAXException; - -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Queue; + +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Queue; import java.util.concurrent.atomic.AtomicBoolean; - -/** - * Marshall Peters - * Date: 9/3/14 - */ + +/** + * Marshall Peters + * Date: 9/3/14 + */ public class SCXMLFrontierTest { - - private List customTagExtensionList() { - List tagExtensionList = new LinkedList<>(); - tagExtensionList.add(new SetAssignExtension()); - tagExtensionList.add(new SingleValueAssignExtension()); - tagExtensionList.add(new FileExtension()); + + private List customTagExtensionList() { + List tagExtensionList = new LinkedList<>(); + tagExtensionList.add(new SetAssignExtension()); + tagExtensionList.add(new SingleValueAssignExtension()); + tagExtensionList.add(new FileExtension()); tagExtensionList.add(new RangeExtension()); - - return tagExtensionList; + + return tagExtensionList; } - - private List customActionsFromTagExtensions(List tagExtensionList) { + + private List customActionsFromTagExtensions(List tagExtensionList) { List customActions = new ArrayList<>(); - - for (CustomTagExtension tagExtension : tagExtensionList) { - if (!tagExtension.getTagName().equals("assign")) { - CustomAction action = new CustomAction(tagExtension.getTagNameSpace(), tagExtension.getTagName(), - tagExtension.getTagActionClass()); - customActions.add(action); - } + + for (CustomTagExtension tagExtension : tagExtensionList) { + if (!tagExtension.getTagName().equals("assign")) { + CustomAction action = new CustomAction(tagExtension.getTagNameSpace(), tagExtension.getTagName(), + tagExtension.getTagActionClass()); + customActions.add(action); + } } - - return customActions; + + return customActions; } - - /** - * Multiple variable assignments using set:{} - */ - @Test - public void testMultiVariableAssignment() { - SCXMLEngine e = new SCXMLEngine(); - InputStream is = SCXMLEngineTest.class.getResourceAsStream("/bigtest.xml"); + + /** + * Multiple variable assignments using set:{} + */ + @Test + public void testMultiVariableAssignment() { + SCXMLEngine e = new SCXMLEngine(); + InputStream is = SCXMLEngineTest.class.getResourceAsStream("/bigtest.xml"); e.setModelByInputFileStream(is); - + List tagExtensionList = customTagExtensionList(); - - try { - List bfs = e.bfs(343); + + try { + List bfs = e.bfs(343); PossibleState p = bfs.get(0); - - try { - is = SCXMLEngineTest.class.getResourceAsStream("/bigtest.xml"); - SCXML model = SCXMLParser.parse(new InputSource(is), null, + + try { + is = SCXMLEngineTest.class.getResourceAsStream("/bigtest.xml"); + SCXML model = SCXMLParser.parse(new InputSource(is), null, customActionsFromTagExtensions(tagExtensionList)); - - SCXMLFrontier frontier = new SCXMLFrontier(p, model, tagExtensionList); - Queue> queue = new LinkedList<>(); - AtomicBoolean flag = new AtomicBoolean(false); + + SCXMLFrontier frontier = new SCXMLFrontier(p, model, tagExtensionList); + Queue> queue = new LinkedList<>(); + AtomicBoolean flag = new AtomicBoolean(false); frontier.searchForScenarios(new QueueResultsProcessing(queue), flag); - - Assert.assertEquals(queue.size(), 6); - } catch (IOException | SAXException ex) { - Assert.fail(); - } - } catch (ModelException ex) { - Assert.fail(); - } + + Assert.assertEquals(queue.size(), 6); + } catch (IOException | SAXException ex) { + Assert.fail(); + } + } catch (ModelException ex) { + Assert.fail(); + } } - - /** - * Test the ability of the exit flag to stop the DFS in SCXMLFrontier - */ - @Test - public void testExitFlag() { - SCXMLEngine e = new SCXMLEngine(); - InputStream is = SCXMLEngineTest.class.getResourceAsStream("/bigtest.xml"); + + /** + * Test the ability of the exit flag to stop the DFS in SCXMLFrontier + */ + @Test + public void testExitFlag() { + SCXMLEngine e = new SCXMLEngine(); + InputStream is = SCXMLEngineTest.class.getResourceAsStream("/bigtest.xml"); e.setModelByInputFileStream(is); - + List tagExtensionList = customTagExtensionList(); - - try { - List bfs = e.bfs(1); + + try { + List bfs = e.bfs(1); PossibleState p = bfs.get(0); - - try { - is = SCXMLEngineTest.class.getResourceAsStream("/bigtest.xml"); - SCXML model = SCXMLParser.parse(new InputSource(is), null, + + try { + is = SCXMLEngineTest.class.getResourceAsStream("/bigtest.xml"); + SCXML model = SCXMLParser.parse(new InputSource(is), null, customActionsFromTagExtensions(tagExtensionList)); - - SCXMLFrontier frontier = new SCXMLFrontier(p, model, tagExtensionList); - Queue> queue = new LinkedList<>(); - AtomicBoolean flag = new AtomicBoolean(true); + + SCXMLFrontier frontier = new SCXMLFrontier(p, model, tagExtensionList); + Queue> queue = new LinkedList<>(); + AtomicBoolean flag = new AtomicBoolean(true); frontier.searchForScenarios(new QueueResultsProcessing(queue), flag); - - Assert.assertEquals(queue.isEmpty(), true); - } catch (IOException | SAXException ex) { - Assert.fail(); - } - } catch (ModelException ex) { - Assert.fail(); - } + + Assert.assertEquals(queue.isEmpty(), true); + } catch (IOException | SAXException ex) { + Assert.fail(); + } + } catch (ModelException ex) { + Assert.fail(); + } } - + } diff --git a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/SCXMLGapperTest.java b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/SCXMLGapperTest.java index f525de86..28b8639a 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/SCXMLGapperTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/SCXMLGapperTest.java @@ -1,150 +1,150 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml; - -import org.apache.commons.scxml.io.SCXMLParser; -import org.apache.commons.scxml.model.ModelException; -import org.apache.commons.scxml.model.SCXML; -import org.junit.Assert; -import org.junit.Test; -import org.xml.sax.InputSource; + +import org.apache.commons.scxml.io.SCXMLParser; +import org.apache.commons.scxml.model.ModelException; +import org.apache.commons.scxml.model.SCXML; +import org.junit.Assert; +import org.junit.Test; +import org.xml.sax.InputSource; import org.xml.sax.SAXException; - -import java.io.IOException; -import java.io.InputStream; + +import java.io.IOException; +import java.io.InputStream; import java.util.List; - -/** - * Marshall Peters - * Date: 9/3/14 - */ -public class SCXMLGapperTest { - static String bigTest = "\n" - + "\n" - + " \n" - + " \n" - + " \n" - + "\n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + "\n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + "\n" - + " \n" + +/** + * Marshall Peters + * Date: 9/3/14 + */ +public class SCXMLGapperTest { + static String bigTest = "\n" + + "\n" + + " \n" + + " \n" + + " \n" + + "\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "\n" + + " \n" + ""; - - /** - * Test SCXMLGapper's ability to decompose and recompose an SCXMLFrontier with none of the variables set - */ - @Test - public void testDecomposeAndReproduceInitial() { - SCXMLEngine e = new SCXMLEngine(); + + /** + * Test SCXMLGapper's ability to decompose and recompose an SCXMLFrontier with none of the variables set + */ + @Test + public void testDecomposeAndReproduceInitial() { + SCXMLEngine e = new SCXMLEngine(); e.setModelByText(bigTest); - - try { - List bfs = e.bfs(1); + + try { + List bfs = e.bfs(1); PossibleState p = bfs.get(0); - - try { - InputStream is = SCXMLEngineTest.class.getResourceAsStream("/bigtest.xml"); + + try { + InputStream is = SCXMLEngineTest.class.getResourceAsStream("/bigtest.xml"); SCXML model = SCXMLParser.parse(new InputSource(is), null); - - SCXMLFrontier frontier = new SCXMLFrontier(p, model); - SCXMLGapper gapper = new SCXMLGapper(); + + SCXMLFrontier frontier = new SCXMLFrontier(p, model); + SCXMLGapper gapper = new SCXMLGapper(); frontier = (SCXMLFrontier) gapper.reproduce(gapper.decompose(frontier, bigTest)); - - p = frontier.getRoot(); + + p = frontier.getRoot(); Assert.assertEquals(p.nextState.getId(), "start"); - - Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE"), ""); - Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_2"), ""); - Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_3"), ""); - Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_4"), ""); - Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_5"), ""); - Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_6"), ""); - Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_7"), ""); - Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_8"), ""); - Assert.assertEquals(p.variables.keySet().size(), 8); - } catch (IOException | SAXException ex) { - Assert.fail(); - } - } catch (ModelException ex) { - Assert.fail(); - } + + Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE"), ""); + Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_2"), ""); + Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_3"), ""); + Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_4"), ""); + Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_5"), ""); + Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_6"), ""); + Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_7"), ""); + Assert.assertEquals(p.variables.get("var_out_RECORD_TYPE_8"), ""); + Assert.assertEquals(p.variables.keySet().size(), 8); + } catch (IOException | SAXException ex) { + Assert.fail(); + } + } catch (ModelException ex) { + Assert.fail(); + } } - - /** - * Test SCXMLGapper's ability to decompose and recompose an SCXMLFrontier - */ - @Test - public void testDecomposeAndRecompose() { - SCXMLEngine e = new SCXMLEngine(); + + /** + * Test SCXMLGapper's ability to decompose and recompose an SCXMLFrontier + */ + @Test + public void testDecomposeAndRecompose() { + SCXMLEngine e = new SCXMLEngine(); e.setModelByText(bigTest); - - try { - List bfs = e.bfs(343); + + try { + List bfs = e.bfs(343); PossibleState p = bfs.get(0); - - try { - InputStream is = SCXMLEngineTest.class.getResourceAsStream("/bigtest.xml"); + + try { + InputStream is = SCXMLEngineTest.class.getResourceAsStream("/bigtest.xml"); SCXML model = SCXMLParser.parse(new InputSource(is), null); - - SCXMLFrontier frontier = new SCXMLFrontier(p, model); + + SCXMLFrontier frontier = new SCXMLFrontier(p, model); SCXMLGapper gapper = new SCXMLGapper(); - - PossibleState before = frontier.getRoot(); - frontier = (SCXMLFrontier) gapper.reproduce(gapper.decompose(frontier, bigTest)); + + PossibleState before = frontier.getRoot(); + frontier = (SCXMLFrontier) gapper.reproduce(gapper.decompose(frontier, bigTest)); PossibleState after = frontier.getRoot(); - + Assert.assertEquals(after.nextState.getId(), before.nextState.getId()); - - for (String key: before.variables.keySet()) { - Assert.assertEquals(before.variables.get(key), after.variables.get(key)); + + for (String key: before.variables.keySet()) { + Assert.assertEquals(before.variables.get(key), after.variables.get(key)); + } + + for (String key: after.variables.keySet()) { + Assert.assertEquals(before.variables.get(key), after.variables.get(key)); } - - for (String key: after.variables.keySet()) { - Assert.assertEquals(before.variables.get(key), after.variables.get(key)); - } - } catch (IOException | SAXException ex) { - Assert.fail(); - } - } catch (ModelException ex) { - Assert.fail(); - } + } catch (IOException | SAXException ex) { + Assert.fail(); + } + } catch (ModelException ex) { + Assert.fail(); + } } - + } diff --git a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/InLineTransformerExtensionTest.java b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/InLineTransformerExtensionTest.java index e0813825..8f05ae0a 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/InLineTransformerExtensionTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/InLineTransformerExtensionTest.java @@ -1,193 +1,193 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags; - -import org.apache.commons.scxml.SCXMLExpressionException; -import org.apache.commons.scxml.model.ModelException; -import org.finra.datagenerator.consumer.DataPipe; -import org.finra.datagenerator.consumer.DataTransformer; -import org.junit.Assert; + +import org.apache.commons.scxml.SCXMLExpressionException; +import org.apache.commons.scxml.model.ModelException; +import org.finra.datagenerator.consumer.DataPipe; +import org.finra.datagenerator.consumer.DataTransformer; +import org.junit.Assert; import org.junit.Test; - -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; + +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; import java.util.Map; - -/** - * Marshall Peters - * Date: 12/8/14 - */ + +/** + * Marshall Peters + * Date: 12/8/14 + */ public class InLineTransformerExtensionTest { - - /** - * TransformTag is a wrapper for one String called 'name' - */ - @Test - public void getAndSetNameForTagTest() { - InLineTransformerExtension.TransformTag transformTag = new InLineTransformerExtension.TransformTag(); - transformTag.setName("foo"); - Assert.assertEquals("foo", transformTag.getName()); - transformTag.setName("bar"); - Assert.assertEquals("bar", transformTag.getName()); + + /** + * TransformTag is a wrapper for one String called 'name' + */ + @Test + public void getAndSetNameForTagTest() { + InLineTransformerExtension.TransformTag transformTag = new InLineTransformerExtension.TransformTag(); + transformTag.setName("foo"); + Assert.assertEquals("foo", transformTag.getName()); + transformTag.setName("bar"); + Assert.assertEquals("bar", transformTag.getName()); } - - /** - * execute for TransformTag does nothing - */ - @Test - public void executeDoesNothingTest() { - InLineTransformerExtension.TransformTag transformTag = new InLineTransformerExtension.TransformTag(); + + /** + * execute for TransformTag does nothing + */ + @Test + public void executeDoesNothingTest() { + InLineTransformerExtension.TransformTag transformTag = new InLineTransformerExtension.TransformTag(); transformTag.setName("test"); - - try { - transformTag.execute(null, null, null, null, null); - } catch (SCXMLExpressionException | ModelException e) { - Assert.fail("Exceptions should never be thrown"); + + try { + transformTag.execute(null, null, null, null, null); + } catch (SCXMLExpressionException | ModelException e) { + Assert.fail("Exceptions should never be thrown"); } - - Assert.assertEquals("test", transformTag.getName()); + + Assert.assertEquals("test", transformTag.getName()); } - - /** - * InLineTransformerExtension uses an inner class called TransformTag for model parsing - */ - @Test - public void actionClassTest() { - InLineTransformerExtension transformerExtension = - new InLineTransformerExtension(new HashMap()); - Assert.assertEquals(InLineTransformerExtension.TransformTag.class, transformerExtension.getTagActionClass()); + + /** + * InLineTransformerExtension uses an inner class called TransformTag for model parsing + */ + @Test + public void actionClassTest() { + InLineTransformerExtension transformerExtension = + new InLineTransformerExtension(new HashMap()); + Assert.assertEquals(InLineTransformerExtension.TransformTag.class, transformerExtension.getTagActionClass()); } - - /** - * The name of the tag is "transform" - */ - @Test - public void tagNameTest() { - InLineTransformerExtension transformerExtension = - new InLineTransformerExtension(new HashMap()); - Assert.assertEquals("transform", transformerExtension.getTagName()); + + /** + * The name of the tag is "transform" + */ + @Test + public void tagNameTest() { + InLineTransformerExtension transformerExtension = + new InLineTransformerExtension(new HashMap()); + Assert.assertEquals("transform", transformerExtension.getTagName()); } - - /** - * The tag uses the datagenerator name space - */ - @Test - public void tagNameSpaceTest() { - InLineTransformerExtension transformerExtension = - new InLineTransformerExtension(new HashMap()); - Assert.assertEquals("org.finra.datagenerator", transformerExtension.getTagNameSpace()); + + /** + * The tag uses the datagenerator name space + */ + @Test + public void tagNameSpaceTest() { + InLineTransformerExtension transformerExtension = + new InLineTransformerExtension(new HashMap()); + Assert.assertEquals("org.finra.datagenerator", transformerExtension.getTagNameSpace()); } - - /** - * A test implementation of DataTransformer that tracks whether the transform method was called - */ - private static class CallCheckTransformer implements DataTransformer { + + /** + * A test implementation of DataTransformer that tracks whether the transform method was called + */ + private static class CallCheckTransformer implements DataTransformer { private boolean wasCalled; - - /** - * Sets wasCalled to true - * - * @param cr a reference to DataPipe from which to read the current map - */ - public void transform(DataPipe cr) { - wasCalled = true; + + /** + * Sets wasCalled to true + * + * @param cr a reference to DataPipe from which to read the current map + */ + public void transform(DataPipe cr) { + wasCalled = true; + } + + public boolean isWasCalled() { + return wasCalled; } - - public boolean isWasCalled() { - return wasCalled; - } } - - /** - * DataTransformers are added and named through a map to InLineTransformerExtension's constructor. - * Individual DataTransformers are called by 'name' in the model - */ - @Test - public void addingAndCallingTransformersByNameTest() { - CallCheckTransformer dummyTransformerOne = new CallCheckTransformer(); - CallCheckTransformer dummyTransformerTwo = new CallCheckTransformer(); - CallCheckTransformer dummyTransformerThree = new CallCheckTransformer(); - HashMap transformerNames = new HashMap<>(); - transformerNames.put("one", dummyTransformerOne); - transformerNames.put("two", dummyTransformerTwo); - transformerNames.put("three", dummyTransformerThree); + + /** + * DataTransformers are added and named through a map to InLineTransformerExtension's constructor. + * Individual DataTransformers are called by 'name' in the model + */ + @Test + public void addingAndCallingTransformersByNameTest() { + CallCheckTransformer dummyTransformerOne = new CallCheckTransformer(); + CallCheckTransformer dummyTransformerTwo = new CallCheckTransformer(); + CallCheckTransformer dummyTransformerThree = new CallCheckTransformer(); + HashMap transformerNames = new HashMap<>(); + transformerNames.put("one", dummyTransformerOne); + transformerNames.put("two", dummyTransformerTwo); + transformerNames.put("three", dummyTransformerThree); InLineTransformerExtension transformerExtension = new InLineTransformerExtension(transformerNames); - - List> pipelineInput = new LinkedList<>(); - pipelineInput.add(new HashMap()); - InLineTransformerExtension.TransformTag transformTag = new InLineTransformerExtension.TransformTag(); + + List> pipelineInput = new LinkedList<>(); + pipelineInput.add(new HashMap()); + InLineTransformerExtension.TransformTag transformTag = new InLineTransformerExtension.TransformTag(); transformTag.setName("two"); - + transformerExtension.pipelinePossibleStates(transformTag, pipelineInput); - - Assert.assertFalse(dummyTransformerOne.isWasCalled()); - Assert.assertTrue(dummyTransformerTwo.isWasCalled()); - Assert.assertFalse(dummyTransformerThree.isWasCalled()); + + Assert.assertFalse(dummyTransformerOne.isWasCalled()); + Assert.assertTrue(dummyTransformerTwo.isWasCalled()); + Assert.assertFalse(dummyTransformerThree.isWasCalled()); } - - /** - * InLineTransformerExtension only transforms extant maps of variable value pairs - */ - @Test - public void emptyListTest() { - CallCheckTransformer dummyTransformer = new CallCheckTransformer(); - HashMap transformerNames = new HashMap<>(); - transformerNames.put("dummy", dummyTransformer); + + /** + * InLineTransformerExtension only transforms extant maps of variable value pairs + */ + @Test + public void emptyListTest() { + CallCheckTransformer dummyTransformer = new CallCheckTransformer(); + HashMap transformerNames = new HashMap<>(); + transformerNames.put("dummy", dummyTransformer); InLineTransformerExtension transformerExtension = new InLineTransformerExtension(transformerNames); - - List> emptyList = new LinkedList<>(); - InLineTransformerExtension.TransformTag transformTag = new InLineTransformerExtension.TransformTag(); + + List> emptyList = new LinkedList<>(); + InLineTransformerExtension.TransformTag transformTag = new InLineTransformerExtension.TransformTag(); transformTag.setName("dummy"); - - List> resultList = transformerExtension.pipelinePossibleStates(transformTag, emptyList); - Assert.assertNotNull(resultList); - Assert.assertEquals(0, resultList.size()); - Assert.assertFalse(dummyTransformer.isWasCalled()); + + List> resultList = transformerExtension.pipelinePossibleStates(transformTag, emptyList); + Assert.assertNotNull(resultList); + Assert.assertEquals(0, resultList.size()); + Assert.assertFalse(dummyTransformer.isWasCalled()); } - - /** - * Every map of variable value pairs gets transformed - */ - @Test - public void nonEmptyListTest() { - DataTransformer appendTransformer = new DataTransformer() { - public void transform(DataPipe cr) { - cr.getDataMap().put("Test", "Lorum"); - } - }; - HashMap transformerNames = new HashMap<>(); - transformerNames.put("append", appendTransformer); + + /** + * Every map of variable value pairs gets transformed + */ + @Test + public void nonEmptyListTest() { + DataTransformer appendTransformer = new DataTransformer() { + public void transform(DataPipe cr) { + cr.getDataMap().put("Test", "Lorum"); + } + }; + HashMap transformerNames = new HashMap<>(); + transformerNames.put("append", appendTransformer); InLineTransformerExtension transformerExtension = new InLineTransformerExtension(transformerNames); - - List> nonEmptyList = new LinkedList<>(); - nonEmptyList.add(new HashMap()); - nonEmptyList.add(new HashMap()); - InLineTransformerExtension.TransformTag transformTag = new InLineTransformerExtension.TransformTag(); + + List> nonEmptyList = new LinkedList<>(); + nonEmptyList.add(new HashMap()); + nonEmptyList.add(new HashMap()); + InLineTransformerExtension.TransformTag transformTag = new InLineTransformerExtension.TransformTag(); transformTag.setName("append"); - - List> resultList = transformerExtension.pipelinePossibleStates(transformTag, nonEmptyList); - Assert.assertNotNull(resultList); - Assert.assertEquals(2, resultList.size()); - Map resultMap = resultList.get(0); - Assert.assertEquals(1, resultMap.keySet().size()); - Assert.assertEquals("Lorum", resultMap.get("Test")); - resultMap = resultList.get(1); - Assert.assertEquals(1, resultMap.keySet().size()); - Assert.assertEquals("Lorum", resultMap.get("Test")); - } + + List> resultList = transformerExtension.pipelinePossibleStates(transformTag, nonEmptyList); + Assert.assertNotNull(resultList); + Assert.assertEquals(2, resultList.size()); + Map resultMap = resultList.get(0); + Assert.assertEquals(1, resultMap.keySet().size()); + Assert.assertEquals("Lorum", resultMap.get("Test")); + resultMap = resultList.get(1); + Assert.assertEquals(1, resultMap.keySet().size()); + Assert.assertEquals("Lorum", resultMap.get("Test")); + } } diff --git a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/NWiseExtensionTest.java b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/NWiseExtensionTest.java index a3cf5770..35e8d78f 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/NWiseExtensionTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/NWiseExtensionTest.java @@ -1,193 +1,193 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags; - -import org.apache.commons.scxml.SCXMLExpressionException; -import org.apache.commons.scxml.model.ModelException; -import org.junit.Assert; + +import org.apache.commons.scxml.SCXMLExpressionException; +import org.apache.commons.scxml.model.ModelException; +import org.junit.Assert; import org.junit.Test; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; import java.util.Set; - -/** - * Marshall Peters - * Date: 1/21/15 - */ + +/** + * Marshall Peters + * Date: 1/21/15 + */ public class NWiseExtensionTest { - - /** - * NWiseAction wraps a 'coVariables' value - */ - @Test - public void getSetCoVariablesTest() { + + /** + * NWiseAction wraps a 'coVariables' value + */ + @Test + public void getSetCoVariablesTest() { NWiseExtension.NWiseAction nWiseAction = new NWiseExtension.NWiseAction(); - - nWiseAction.setCoVariables("foo,bar"); + + nWiseAction.setCoVariables("foo,bar"); Assert.assertEquals("foo,bar", nWiseAction.getCoVariables()); - - nWiseAction.setCoVariables("lorem,ipsum"); - Assert.assertEquals("lorem,ipsum", nWiseAction.getCoVariables()); + + nWiseAction.setCoVariables("lorem,ipsum"); + Assert.assertEquals("lorem,ipsum", nWiseAction.getCoVariables()); } - - /** - * NWiseAction wraps an 'n' value - */ - @Test - public void getSetNTest() { + + /** + * NWiseAction wraps an 'n' value + */ + @Test + public void getSetNTest() { NWiseExtension.NWiseAction nWiseAction = new NWiseExtension.NWiseAction(); - - nWiseAction.setN("5"); + + nWiseAction.setN("5"); Assert.assertEquals("5", nWiseAction.getN()); - - nWiseAction.setN("3"); - Assert.assertEquals("3", nWiseAction.getN()); + + nWiseAction.setN("3"); + Assert.assertEquals("3", nWiseAction.getN()); } - - /** - * The execute method of NWiseAction does nothing - */ - @Test - public void executeDoesNothingTest() { + + /** + * The execute method of NWiseAction does nothing + */ + @Test + public void executeDoesNothingTest() { NWiseExtension.NWiseAction nWiseAction = new NWiseExtension.NWiseAction(); - - nWiseAction.setN("5"); + + nWiseAction.setN("5"); nWiseAction.setCoVariables("foo,bar"); - - try { - nWiseAction.execute(null, null, null, null, null); - } catch (SCXMLExpressionException | ModelException e) { - Assert.fail("Exceptions should never be thrown"); + + try { + nWiseAction.execute(null, null, null, null, null); + } catch (SCXMLExpressionException | ModelException e) { + Assert.fail("Exceptions should never be thrown"); } - - Assert.assertEquals("foo,bar", nWiseAction.getCoVariables()); - Assert.assertEquals("5", nWiseAction.getN()); + + Assert.assertEquals("foo,bar", nWiseAction.getCoVariables()); + Assert.assertEquals("5", nWiseAction.getN()); } - - /** - * The tag is named 'nwise' - */ - @Test - public void nameSpaceTest() { - NWiseExtension nWiseExtension = new NWiseExtension(); - Assert.assertEquals("org.finra.datagenerator", nWiseExtension.getTagNameSpace()); + + /** + * The tag is named 'nwise' + */ + @Test + public void nameSpaceTest() { + NWiseExtension nWiseExtension = new NWiseExtension(); + Assert.assertEquals("org.finra.datagenerator", nWiseExtension.getTagNameSpace()); } - - /** - * The nwise tag uses the data generator name space - */ - @Test - public void tagNameTest() { - NWiseExtension nWiseExtension = new NWiseExtension(); - Assert.assertEquals("nwise", nWiseExtension.getTagName()); + + /** + * The nwise tag uses the data generator name space + */ + @Test + public void tagNameTest() { + NWiseExtension nWiseExtension = new NWiseExtension(); + Assert.assertEquals("nwise", nWiseExtension.getTagName()); } - - /** - * NWiseExtension processes NWiseAction objects - */ - @Test - public void correctActionClassTest() { - NWiseExtension nWiseExtension = new NWiseExtension(); - Assert.assertEquals(NWiseExtension.NWiseAction.class, nWiseExtension.getTagActionClass()); + + /** + * NWiseExtension processes NWiseAction objects + */ + @Test + public void correctActionClassTest() { + NWiseExtension nWiseExtension = new NWiseExtension(); + Assert.assertEquals(NWiseExtension.NWiseAction.class, nWiseExtension.getTagActionClass()); } - - /** - * NWiseExtension has utility methods to produce all n tuples from a set of strings/variable names - */ - @Test - public void makeNWiseTuplesTest() { + + /** + * NWiseExtension has utility methods to produce all n tuples from a set of strings/variable names + */ + @Test + public void makeNWiseTuplesTest() { NWiseExtension nWiseExtension = new NWiseExtension(); - - List> tuples = nWiseExtension.makeNWiseTuples(new String[]{"A", "B", "C", "D", "E"}, 3); + + List> tuples = nWiseExtension.makeNWiseTuples(new String[]{"A", "B", "C", "D", "E"}, 3); Assert.assertEquals(10, tuples.size()); - - tuples = nWiseExtension.makeNWiseTuples(new String[]{"A", "B", "C", "D", "E"}, 2); + + tuples = nWiseExtension.makeNWiseTuples(new String[]{"A", "B", "C", "D", "E"}, 2); Assert.assertEquals(10, tuples.size()); - - tuples = nWiseExtension.makeNWiseTuples(new String[]{"A", "B", "C", "D", "E"}, 1); - Assert.assertEquals(5, tuples.size()); + + tuples = nWiseExtension.makeNWiseTuples(new String[]{"A", "B", "C", "D", "E"}, 1); + Assert.assertEquals(5, tuples.size()); } - - /** - * Given a tuple of variable names and a map of variable names to domain values, produces a list of all assignments - * of domain values to variables - */ - @Test - public void expandTupleIntoTestCasesTest() { + + /** + * Given a tuple of variable names and a map of variable names to domain values, produces a list of all assignments + * of domain values to variables + */ + @Test + public void expandTupleIntoTestCasesTest() { NWiseExtension nWiseExtension = new NWiseExtension(); - - Set tuple = new HashSet<>(); - tuple.add("A"); - tuple.add("B"); + + Set tuple = new HashSet<>(); + tuple.add("A"); + tuple.add("B"); tuple.add("C"); - - Map variableDomains = new HashMap<>(); - variableDomains.put("A", new String[]{"1", "2", "3", "4"}); - variableDomains.put("B", new String[]{"1", "2", "3", "4"}); + + Map variableDomains = new HashMap<>(); + variableDomains.put("A", new String[]{"1", "2", "3", "4"}); + variableDomains.put("B", new String[]{"1", "2", "3", "4"}); variableDomains.put("C", new String[]{"1", "2", "3", "4"}); - - List> testCases = nWiseExtension.expandTupleIntoTestCases(tuple, variableDomains); - Assert.assertEquals(64, testCases.size()); + + List> testCases = nWiseExtension.expandTupleIntoTestCases(tuple, variableDomains); + Assert.assertEquals(64, testCases.size()); } - - /** - * Finds all variable assignments within all tuples. - */ - @Test - public void produceNWiseTest() { + + /** + * Finds all variable assignments within all tuples. + */ + @Test + public void produceNWiseTest() { NWiseExtension nWiseExtension = new NWiseExtension(); - - Map variableDomains = new HashMap<>(); - variableDomains.put("A", new String[]{"1", "2", "3", "4"}); - variableDomains.put("B", new String[]{"1", "2", "3", "4"}); - variableDomains.put("C", new String[]{"1", "2", "3", "4"}); - variableDomains.put("D", new String[]{"1", "2", "3", "4"}); + + Map variableDomains = new HashMap<>(); + variableDomains.put("A", new String[]{"1", "2", "3", "4"}); + variableDomains.put("B", new String[]{"1", "2", "3", "4"}); + variableDomains.put("C", new String[]{"1", "2", "3", "4"}); + variableDomains.put("D", new String[]{"1", "2", "3", "4"}); variableDomains.put("E", new String[]{"1", "2", "3", "4"}); - - List> testCases = nWiseExtension.produceNWise(3, - new String[]{"A", "B", "C", "D", "E"}, variableDomains); - Assert.assertEquals(640, testCases.size()); + + List> testCases = nWiseExtension.produceNWise(3, + new String[]{"A", "B", "C", "D", "E"}, variableDomains); + Assert.assertEquals(640, testCases.size()); } - - /** - * Finds all variable assignments within all tuples based on the values in the NWiseAction and the domains given by - * assignment to variables within the input map, and then expands on all variable assignments within all tuples - */ - @Test - public void pipelinePossibleStatesTest() { - NWiseExtension.NWiseAction nWiseAction = new NWiseExtension.NWiseAction(); - nWiseAction.setCoVariables("A,B,C,D,E"); + + /** + * Finds all variable assignments within all tuples based on the values in the NWiseAction and the domains given by + * assignment to variables within the input map, and then expands on all variable assignments within all tuples + */ + @Test + public void pipelinePossibleStatesTest() { + NWiseExtension.NWiseAction nWiseAction = new NWiseExtension.NWiseAction(); + nWiseAction.setCoVariables("A,B,C,D,E"); nWiseAction.setN("3"); - - Map inputState = new HashMap<>(); - inputState.put("A", "1,2,3,4"); - inputState.put("B", "1,2,3,4"); - inputState.put("C", "1,2,3,4"); - inputState.put("D", "1,2,3,4"); - inputState.put("E", "1,2,3,4"); - List> pipelineStates = new LinkedList<>(); + + Map inputState = new HashMap<>(); + inputState.put("A", "1,2,3,4"); + inputState.put("B", "1,2,3,4"); + inputState.put("C", "1,2,3,4"); + inputState.put("D", "1,2,3,4"); + inputState.put("E", "1,2,3,4"); + List> pipelineStates = new LinkedList<>(); pipelineStates.add(inputState); - - NWiseExtension nWiseExtension = new NWiseExtension(); + + NWiseExtension nWiseExtension = new NWiseExtension(); List> resultStates = nWiseExtension.pipelinePossibleStates(nWiseAction, pipelineStates); - - Assert.assertEquals(640, resultStates.size()); - } + + Assert.assertEquals(640, resultStates.size()); + } } diff --git a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/RangeExtensionTest.java b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/RangeExtensionTest.java index a16d1ff2..07ce1ad6 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/RangeExtensionTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/RangeExtensionTest.java @@ -1,301 +1,301 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags; - -import org.apache.commons.scxml.SCXMLExpressionException; -import org.apache.commons.scxml.model.ModelException; -import org.junit.Assert; + +import org.apache.commons.scxml.SCXMLExpressionException; +import org.apache.commons.scxml.model.ModelException; +import org.junit.Assert; import org.junit.Test; - -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; + +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; import java.util.Map; - -/** - * Marshall Peters - * Date: 12/9/14 - */ + +/** + * Marshall Peters + * Date: 12/9/14 + */ public class RangeExtensionTest { - - /** - * Range tag wraps a 'name' string - */ - @Test - public void tagGetSetNameTest() { - RangeExtension.RangeTag rangeTag = new RangeExtension.RangeTag(); - rangeTag.setName("Test"); - Assert.assertEquals("Test", rangeTag.getName()); - rangeTag.setName("Foo"); - Assert.assertEquals("Foo", rangeTag.getName()); + + /** + * Range tag wraps a 'name' string + */ + @Test + public void tagGetSetNameTest() { + RangeExtension.RangeTag rangeTag = new RangeExtension.RangeTag(); + rangeTag.setName("Test"); + Assert.assertEquals("Test", rangeTag.getName()); + rangeTag.setName("Foo"); + Assert.assertEquals("Foo", rangeTag.getName()); } - - /** - * Range tag wraps a 'from' string - */ - @Test - public void tagGetSetFromTest() { - RangeExtension.RangeTag rangeTag = new RangeExtension.RangeTag(); - rangeTag.setFrom("1.1"); - Assert.assertEquals("1.1", rangeTag.getFrom()); - rangeTag.setFrom("2.2"); - Assert.assertEquals("2.2", rangeTag.getFrom()); + + /** + * Range tag wraps a 'from' string + */ + @Test + public void tagGetSetFromTest() { + RangeExtension.RangeTag rangeTag = new RangeExtension.RangeTag(); + rangeTag.setFrom("1.1"); + Assert.assertEquals("1.1", rangeTag.getFrom()); + rangeTag.setFrom("2.2"); + Assert.assertEquals("2.2", rangeTag.getFrom()); } - - /** - * Range tag wraps a 'to' string - */ - @Test - public void tagGetSetToTest() { - RangeExtension.RangeTag rangeTag = new RangeExtension.RangeTag(); - rangeTag.setTo("1.1"); - Assert.assertEquals("1.1", rangeTag.getTo()); - rangeTag.setTo("2.2"); - Assert.assertEquals("2.2", rangeTag.getTo()); + + /** + * Range tag wraps a 'to' string + */ + @Test + public void tagGetSetToTest() { + RangeExtension.RangeTag rangeTag = new RangeExtension.RangeTag(); + rangeTag.setTo("1.1"); + Assert.assertEquals("1.1", rangeTag.getTo()); + rangeTag.setTo("2.2"); + Assert.assertEquals("2.2", rangeTag.getTo()); } - - /** - * Range tag wraps a 'step' string - */ - @Test - public void tagGetSetStepTest() { - RangeExtension.RangeTag rangeTag = new RangeExtension.RangeTag(); - rangeTag.setStep("0.1"); - Assert.assertEquals("0.1", rangeTag.getStep()); - rangeTag.setStep("2.2"); - Assert.assertEquals("2.2", rangeTag.getStep()); + + /** + * Range tag wraps a 'step' string + */ + @Test + public void tagGetSetStepTest() { + RangeExtension.RangeTag rangeTag = new RangeExtension.RangeTag(); + rangeTag.setStep("0.1"); + Assert.assertEquals("0.1", rangeTag.getStep()); + rangeTag.setStep("2.2"); + Assert.assertEquals("2.2", rangeTag.getStep()); } - - /** - * Range tag execute does nothing - */ - @Test - public void executeDoesNothingTest() { - RangeExtension.RangeTag rangeTag = new RangeExtension.RangeTag(); - rangeTag.setName("Foo"); - rangeTag.setFrom("1.1"); - rangeTag.setTo("11.3"); + + /** + * Range tag execute does nothing + */ + @Test + public void executeDoesNothingTest() { + RangeExtension.RangeTag rangeTag = new RangeExtension.RangeTag(); + rangeTag.setName("Foo"); + rangeTag.setFrom("1.1"); + rangeTag.setTo("11.3"); rangeTag.setStep("1.2"); - - try { - rangeTag.execute(null, null, null, null, null); - } catch (SCXMLExpressionException | ModelException e) { - Assert.fail("Exceptions should never be thrown"); + + try { + rangeTag.execute(null, null, null, null, null); + } catch (SCXMLExpressionException | ModelException e) { + Assert.fail("Exceptions should never be thrown"); } - - Assert.assertEquals("Foo", rangeTag.getName()); - Assert.assertEquals("1.1", rangeTag.getFrom()); - Assert.assertEquals("11.3", rangeTag.getTo()); - Assert.assertEquals("1.2", rangeTag.getStep()); + + Assert.assertEquals("Foo", rangeTag.getName()); + Assert.assertEquals("1.1", rangeTag.getFrom()); + Assert.assertEquals("11.3", rangeTag.getTo()); + Assert.assertEquals("1.2", rangeTag.getStep()); } - - /** - * The tag is 'range' in the model - */ - @Test - public void tagNameTest() { - RangeExtension rangeExtension = new RangeExtension(); - Assert.assertEquals("range", rangeExtension.getTagName()); + + /** + * The tag is 'range' in the model + */ + @Test + public void tagNameTest() { + RangeExtension rangeExtension = new RangeExtension(); + Assert.assertEquals("range", rangeExtension.getTagName()); } - - /** - * The tag uses the datagenerator name space - */ - @Test - public void tagNameSpaceTest() { - RangeExtension rangeExtension = new RangeExtension(); - Assert.assertEquals("org.finra.datagenerator", rangeExtension.getTagNameSpace()); + + /** + * The tag uses the datagenerator name space + */ + @Test + public void tagNameSpaceTest() { + RangeExtension rangeExtension = new RangeExtension(); + Assert.assertEquals("org.finra.datagenerator", rangeExtension.getTagNameSpace()); } - - /** - * RangeExtension has an inner class called RangeTag used in model parsing - */ - @Test - public void actionClassTest() { - RangeExtension rangeExtension = new RangeExtension(); - Assert.assertEquals(RangeExtension.RangeTag.class, rangeExtension.getTagActionClass()); + + /** + * RangeExtension has an inner class called RangeTag used in model parsing + */ + @Test + public void actionClassTest() { + RangeExtension rangeExtension = new RangeExtension(); + Assert.assertEquals(RangeExtension.RangeTag.class, rangeExtension.getTagActionClass()); } - - /** - * If step is not provided, then a value of 1 is assumed - */ - @Test - public void defaultStepTest() { - List> pipeInputList = new LinkedList<>(); - pipeInputList.add(new HashMap()); - RangeExtension rangeExtension = new RangeExtension(); - RangeExtension.RangeTag rangeTag = new RangeExtension.RangeTag(); - rangeTag.setName("var_out_test"); - rangeTag.setFrom("1"); + + /** + * If step is not provided, then a value of 1 is assumed + */ + @Test + public void defaultStepTest() { + List> pipeInputList = new LinkedList<>(); + pipeInputList.add(new HashMap()); + RangeExtension rangeExtension = new RangeExtension(); + RangeExtension.RangeTag rangeTag = new RangeExtension.RangeTag(); + rangeTag.setName("var_out_test"); + rangeTag.setFrom("1"); rangeTag.setTo("10"); - - List> resultList = rangeExtension.pipelinePossibleStates(rangeTag, pipeInputList); - Assert.assertEquals(10, resultList.size()); + + List> resultList = rangeExtension.pipelinePossibleStates(rangeTag, pipeInputList); + Assert.assertEquals(10, resultList.size()); } - - /** - * Cannot expand an empty list - */ - @Test - public void emptyListTest() { - List> emptyList = new LinkedList<>(); - RangeExtension rangeExtension = new RangeExtension(); - RangeExtension.RangeTag rangeTag = new RangeExtension.RangeTag(); - rangeTag.setName("var_out_test"); - rangeTag.setFrom("1"); - rangeTag.setTo("5"); + + /** + * Cannot expand an empty list + */ + @Test + public void emptyListTest() { + List> emptyList = new LinkedList<>(); + RangeExtension rangeExtension = new RangeExtension(); + RangeExtension.RangeTag rangeTag = new RangeExtension.RangeTag(); + rangeTag.setName("var_out_test"); + rangeTag.setFrom("1"); + rangeTag.setTo("5"); rangeTag.setStep("0.7"); - - List> resultList = rangeExtension.pipelinePossibleStates(rangeTag, emptyList); - Assert.assertNotNull(resultList); - Assert.assertEquals(0, resultList.size()); + + List> resultList = rangeExtension.pipelinePossibleStates(rangeTag, emptyList); + Assert.assertNotNull(resultList); + Assert.assertEquals(0, resultList.size()); } - - /** - * Only touches the variable given by 'name' - */ - @Test - public void noContaminationTest() { - List> pipeInputList = new LinkedList<>(); - HashMap nonEmptyPossibleState = new HashMap<>(); - nonEmptyPossibleState.put("var_out_test", "foobar"); - pipeInputList.add(nonEmptyPossibleState); - RangeExtension rangeExtension = new RangeExtension(); - RangeExtension.RangeTag rangeTag = new RangeExtension.RangeTag(); - rangeTag.setName("var_out_test_2"); - rangeTag.setFrom("1"); - rangeTag.setTo("5"); + + /** + * Only touches the variable given by 'name' + */ + @Test + public void noContaminationTest() { + List> pipeInputList = new LinkedList<>(); + HashMap nonEmptyPossibleState = new HashMap<>(); + nonEmptyPossibleState.put("var_out_test", "foobar"); + pipeInputList.add(nonEmptyPossibleState); + RangeExtension rangeExtension = new RangeExtension(); + RangeExtension.RangeTag rangeTag = new RangeExtension.RangeTag(); + rangeTag.setName("var_out_test_2"); + rangeTag.setFrom("1"); + rangeTag.setTo("5"); rangeTag.setStep("0.7"); - - List> resultList = rangeExtension.pipelinePossibleStates(rangeTag, pipeInputList); - Assert.assertEquals(6, resultList.size()); - for (int i = 0; i < 6; i++) { - Assert.assertEquals("foobar", resultList.get(i).get("var_out_test")); - } + + List> resultList = rangeExtension.pipelinePossibleStates(rangeTag, pipeInputList); + Assert.assertEquals(6, resultList.size()); + for (int i = 0; i < 6; i++) { + Assert.assertEquals("foobar", resultList.get(i).get("var_out_test")); + } } - - /** - * Tests with a positive step - */ - @Test - public void positiveStepTest() { - List> pipeInputList = new LinkedList<>(); - pipeInputList.add(new HashMap()); - RangeExtension rangeExtension = new RangeExtension(); - RangeExtension.RangeTag rangeTag = new RangeExtension.RangeTag(); - rangeTag.setName("var_out_test"); - rangeTag.setFrom("1"); - rangeTag.setTo("5"); + + /** + * Tests with a positive step + */ + @Test + public void positiveStepTest() { + List> pipeInputList = new LinkedList<>(); + pipeInputList.add(new HashMap()); + RangeExtension rangeExtension = new RangeExtension(); + RangeExtension.RangeTag rangeTag = new RangeExtension.RangeTag(); + rangeTag.setName("var_out_test"); + rangeTag.setFrom("1"); + rangeTag.setTo("5"); rangeTag.setStep("0.7"); - - List> resultList = rangeExtension.pipelinePossibleStates(rangeTag, pipeInputList); + + List> resultList = rangeExtension.pipelinePossibleStates(rangeTag, pipeInputList); Assert.assertEquals(6, resultList.size()); - - Map resultMap = resultList.get(0); - Assert.assertEquals("1", resultMap.get("var_out_test")); - resultMap = resultList.get(1); - Assert.assertEquals("1.7", resultMap.get("var_out_test")); - resultMap = resultList.get(2); - Assert.assertEquals("2.4", resultMap.get("var_out_test")); - resultMap = resultList.get(3); - Assert.assertEquals("3.1", resultMap.get("var_out_test")); - resultMap = resultList.get(4); - Assert.assertEquals("3.8", resultMap.get("var_out_test")); - resultMap = resultList.get(5); - Assert.assertEquals("4.5", resultMap.get("var_out_test")); - } - - /** - * Tests with a big numbers - */ - @Test - public void bigNumbersTest() { - List> pipeInputList = new LinkedList<>(); - pipeInputList.add(new HashMap()); - RangeExtension rangeExtension = new RangeExtension(); - RangeExtension.RangeTag rangeTag = new RangeExtension.RangeTag(); - rangeTag.setName("var_out_test"); - rangeTag.setFrom("1"); - rangeTag.setTo("20000"); + + Map resultMap = resultList.get(0); + Assert.assertEquals("1", resultMap.get("var_out_test")); + resultMap = resultList.get(1); + Assert.assertEquals("1.7", resultMap.get("var_out_test")); + resultMap = resultList.get(2); + Assert.assertEquals("2.4", resultMap.get("var_out_test")); + resultMap = resultList.get(3); + Assert.assertEquals("3.1", resultMap.get("var_out_test")); + resultMap = resultList.get(4); + Assert.assertEquals("3.8", resultMap.get("var_out_test")); + resultMap = resultList.get(5); + Assert.assertEquals("4.5", resultMap.get("var_out_test")); + } + + /** + * Tests with a big numbers + */ + @Test + public void bigNumbersTest() { + List> pipeInputList = new LinkedList<>(); + pipeInputList.add(new HashMap()); + RangeExtension rangeExtension = new RangeExtension(); + RangeExtension.RangeTag rangeTag = new RangeExtension.RangeTag(); + rangeTag.setName("var_out_test"); + rangeTag.setFrom("1"); + rangeTag.setTo("20000"); rangeTag.setStep("10"); - - List> resultList = rangeExtension.pipelinePossibleStates(rangeTag, pipeInputList); + + List> resultList = rangeExtension.pipelinePossibleStates(rangeTag, pipeInputList); Assert.assertEquals(2000, resultList.size()); - - Map resultMap = resultList.get(0); - Assert.assertEquals("1", resultMap.get("var_out_test")); - resultMap = resultList.get(1); - Assert.assertEquals("11", resultMap.get("var_out_test")); - resultMap = resultList.get(100); - Assert.assertEquals("1001", resultMap.get("var_out_test")); - resultMap = resultList.get(1000); - Assert.assertEquals("10001", resultMap.get("var_out_test")); + + Map resultMap = resultList.get(0); + Assert.assertEquals("1", resultMap.get("var_out_test")); + resultMap = resultList.get(1); + Assert.assertEquals("11", resultMap.get("var_out_test")); + resultMap = resultList.get(100); + Assert.assertEquals("1001", resultMap.get("var_out_test")); + resultMap = resultList.get(1000); + Assert.assertEquals("10001", resultMap.get("var_out_test")); } - - /** - * Tests with a negative step - */ - @Test - public void negativeStepTest() { - List> pipeInputList = new LinkedList<>(); - pipeInputList.add(new HashMap()); - RangeExtension rangeExtension = new RangeExtension(); - RangeExtension.RangeTag rangeTag = new RangeExtension.RangeTag(); - rangeTag.setName("var_out_test"); - rangeTag.setFrom("1"); - rangeTag.setTo("-3"); + + /** + * Tests with a negative step + */ + @Test + public void negativeStepTest() { + List> pipeInputList = new LinkedList<>(); + pipeInputList.add(new HashMap()); + RangeExtension rangeExtension = new RangeExtension(); + RangeExtension.RangeTag rangeTag = new RangeExtension.RangeTag(); + rangeTag.setName("var_out_test"); + rangeTag.setFrom("1"); + rangeTag.setTo("-3"); rangeTag.setStep("-0.7"); - - List> resultList = rangeExtension.pipelinePossibleStates(rangeTag, pipeInputList); + + List> resultList = rangeExtension.pipelinePossibleStates(rangeTag, pipeInputList); Assert.assertEquals(6, resultList.size()); - - Map resultMap = resultList.get(0); - Assert.assertEquals("1", resultMap.get("var_out_test")); - resultMap = resultList.get(1); - Assert.assertEquals("0.3", resultMap.get("var_out_test")); - resultMap = resultList.get(2); - Assert.assertEquals("-0.4", resultMap.get("var_out_test")); - resultMap = resultList.get(3); - Assert.assertEquals("-1.1", resultMap.get("var_out_test")); - resultMap = resultList.get(4); - Assert.assertEquals("-1.8", resultMap.get("var_out_test")); - resultMap = resultList.get(5); - Assert.assertEquals("-2.5", resultMap.get("var_out_test")); + + Map resultMap = resultList.get(0); + Assert.assertEquals("1", resultMap.get("var_out_test")); + resultMap = resultList.get(1); + Assert.assertEquals("0.3", resultMap.get("var_out_test")); + resultMap = resultList.get(2); + Assert.assertEquals("-0.4", resultMap.get("var_out_test")); + resultMap = resultList.get(3); + Assert.assertEquals("-1.1", resultMap.get("var_out_test")); + resultMap = resultList.get(4); + Assert.assertEquals("-1.8", resultMap.get("var_out_test")); + resultMap = resultList.get(5); + Assert.assertEquals("-2.5", resultMap.get("var_out_test")); } - - /** - * A step of 0 expands only on the 'from' value - */ - @Test - public void zeroStepTest() { - List> pipeInputList = new LinkedList<>(); - pipeInputList.add(new HashMap()); - RangeExtension rangeExtension = new RangeExtension(); - RangeExtension.RangeTag rangeTag = new RangeExtension.RangeTag(); - rangeTag.setName("var_out_test"); - rangeTag.setFrom("1"); - rangeTag.setTo("-3"); + + /** + * A step of 0 expands only on the 'from' value + */ + @Test + public void zeroStepTest() { + List> pipeInputList = new LinkedList<>(); + pipeInputList.add(new HashMap()); + RangeExtension rangeExtension = new RangeExtension(); + RangeExtension.RangeTag rangeTag = new RangeExtension.RangeTag(); + rangeTag.setName("var_out_test"); + rangeTag.setFrom("1"); + rangeTag.setTo("-3"); rangeTag.setStep("0"); - - List> resultList = rangeExtension.pipelinePossibleStates(rangeTag, pipeInputList); + + List> resultList = rangeExtension.pipelinePossibleStates(rangeTag, pipeInputList); Assert.assertEquals(1, resultList.size()); - - Map resultMap = resultList.get(0); - Assert.assertEquals("1", resultMap.get("var_out_test")); + + Map resultMap = resultList.get(0); + Assert.assertEquals("1", resultMap.get("var_out_test")); } - + } diff --git a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/SetAssignExtensionTest.java b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/SetAssignExtensionTest.java index 9e48b094..97566284 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/SetAssignExtensionTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/SetAssignExtensionTest.java @@ -1,280 +1,280 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags; - -import org.apache.commons.scxml.SCXMLExpressionException; -import org.apache.commons.scxml.model.ModelException; -import org.junit.Assert; + +import org.apache.commons.scxml.SCXMLExpressionException; +import org.apache.commons.scxml.model.ModelException; +import org.junit.Assert; import org.junit.Test; - -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; + +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; import java.util.Map; - -/** - * Marshall Peters - * Date: 12/8/14 - */ + +/** + * Marshall Peters + * Date: 12/8/14 + */ public class SetAssignExtensionTest { - - /** - * SetAssignTag tracks two values: the name of a variable and a legal set of values stored as a string - */ - @Test - public void getAndSetVariableNameForTagTest() { + + /** + * SetAssignTag tracks two values: the name of a variable and a legal set of values stored as a string + */ + @Test + public void getAndSetVariableNameForTagTest() { SetAssignExtension.SetAssignTag setAssignTag = new SetAssignExtension.SetAssignTag(); - - setAssignTag.setName("var_out_test"); + + setAssignTag.setName("var_out_test"); Assert.assertEquals("var_out_test", setAssignTag.getName()); - - setAssignTag.setName("var_out_new"); - Assert.assertEquals("var_out_new", setAssignTag.getName()); + + setAssignTag.setName("var_out_new"); + Assert.assertEquals("var_out_new", setAssignTag.getName()); } - - /** - * SetAssignTag tracks two values: the name of a variable and a legal set of values stored as a string - */ - @Test - public void getAndSetValueSetForTagTest() { + + /** + * SetAssignTag tracks two values: the name of a variable and a legal set of values stored as a string + */ + @Test + public void getAndSetValueSetForTagTest() { SetAssignExtension.SetAssignTag setAssignTag = new SetAssignExtension.SetAssignTag(); - - setAssignTag.setSet("A,B,C,D,E"); + + setAssignTag.setSet("A,B,C,D,E"); Assert.assertEquals("A,B,C,D,E", setAssignTag.getSet()); - - setAssignTag.setSet("F,G"); - Assert.assertEquals("F,G", setAssignTag.getSet()); + + setAssignTag.setSet("F,G"); + Assert.assertEquals("F,G", setAssignTag.getSet()); } - - /** - * SetAssignTag has an empty execute method - */ - @Test - public void executeDoesNothingTest() { - SetAssignExtension.SetAssignTag setAssignTag = new SetAssignExtension.SetAssignTag(); - setAssignTag.setName("var_out_test"); + + /** + * SetAssignTag has an empty execute method + */ + @Test + public void executeDoesNothingTest() { + SetAssignExtension.SetAssignTag setAssignTag = new SetAssignExtension.SetAssignTag(); + setAssignTag.setName("var_out_test"); setAssignTag.setSet("A,B,C,D,E"); - - try { - setAssignTag.execute(null, null, null, null, null); - } catch (SCXMLExpressionException | ModelException e) { - Assert.fail("Exceptions should never be thrown"); + + try { + setAssignTag.execute(null, null, null, null, null); + } catch (SCXMLExpressionException | ModelException e) { + Assert.fail("Exceptions should never be thrown"); } - - Assert.assertEquals("var_out_test", setAssignTag.getName()); - Assert.assertEquals("A,B,C,D,E", setAssignTag.getSet()); + + Assert.assertEquals("var_out_test", setAssignTag.getName()); + Assert.assertEquals("A,B,C,D,E", setAssignTag.getSet()); } - - /** - * SetAssignExtension uses a custom Action class called SetAssignTag - */ - @Test - public void actionClassTest() { - SetAssignExtension setAssign = new SetAssignExtension(); - Assert.assertEquals(SetAssignExtension.SetAssignTag.class, setAssign.getTagActionClass()); + + /** + * SetAssignExtension uses a custom Action class called SetAssignTag + */ + @Test + public void actionClassTest() { + SetAssignExtension setAssign = new SetAssignExtension(); + Assert.assertEquals(SetAssignExtension.SetAssignTag.class, setAssign.getTagActionClass()); } - - /** - * 'assign' is the name of the tag - */ - @Test - public void tagNameTest() { - SetAssignExtension setAssign = new SetAssignExtension(); - Assert.assertEquals("assign", setAssign.getTagName()); + + /** + * 'assign' is the name of the tag + */ + @Test + public void tagNameTest() { + SetAssignExtension setAssign = new SetAssignExtension(); + Assert.assertEquals("assign", setAssign.getTagName()); } - - /** - * The tag uses the datagenerator namespace - */ - @Test - public void tagNameSpaceTest() { - SetAssignExtension setAssign = new SetAssignExtension(); - Assert.assertEquals("org.finra.datagenerator", setAssign.getTagNameSpace()); + + /** + * The tag uses the datagenerator namespace + */ + @Test + public void tagNameSpaceTest() { + SetAssignExtension setAssign = new SetAssignExtension(); + Assert.assertEquals("org.finra.datagenerator", setAssign.getTagNameSpace()); } - - /** - * SetAssignExtension only assigns values to extant maps of variable value pairs - */ - @Test - public void pipelineEmptyListTest() { - List> emptyList = new LinkedList<>(); + + /** + * SetAssignExtension only assigns values to extant maps of variable value pairs + */ + @Test + public void pipelineEmptyListTest() { + List> emptyList = new LinkedList<>(); SetAssignExtension setAssign = new SetAssignExtension(); - - SetAssignExtension.SetAssignTag setAssignTag = new SetAssignExtension.SetAssignTag(); - setAssignTag.setName("var_out_test"); + + SetAssignExtension.SetAssignTag setAssignTag = new SetAssignExtension.SetAssignTag(); + setAssignTag.setName("var_out_test"); setAssignTag.setSet("A,B,C,D,E"); - - List> processedList = setAssign.pipelinePossibleStates(setAssignTag, emptyList); - Assert.assertNotNull(processedList); - Assert.assertEquals(0, processedList.size()); + + List> processedList = setAssign.pipelinePossibleStates(setAssignTag, emptyList); + Assert.assertNotNull(processedList); + Assert.assertEquals(0, processedList.size()); } - - /** - * An empty set of values counts as a one value set with "" as a value - */ - @Test - public void pipelineExpandOnEmptySetTest() { - List> listWithEmptyMap = new LinkedList<>(); - listWithEmptyMap.add(new HashMap()); + + /** + * An empty set of values counts as a one value set with "" as a value + */ + @Test + public void pipelineExpandOnEmptySetTest() { + List> listWithEmptyMap = new LinkedList<>(); + listWithEmptyMap.add(new HashMap()); SetAssignExtension setAssign = new SetAssignExtension(); - - SetAssignExtension.SetAssignTag setAssignTag = new SetAssignExtension.SetAssignTag(); - setAssignTag.setName("var_out_test"); + + SetAssignExtension.SetAssignTag setAssignTag = new SetAssignExtension.SetAssignTag(); + setAssignTag.setName("var_out_test"); setAssignTag.setSet(""); - - List> processedList = setAssign.pipelinePossibleStates(setAssignTag, listWithEmptyMap); - Assert.assertEquals(1, processedList.size()); - Map resultMap = processedList.get(0); - Assert.assertEquals(1, resultMap.keySet().size()); - Assert.assertEquals("", resultMap.get("var_out_test")); + + List> processedList = setAssign.pipelinePossibleStates(setAssignTag, listWithEmptyMap); + Assert.assertEquals(1, processedList.size()); + Map resultMap = processedList.get(0); + Assert.assertEquals(1, resultMap.keySet().size()); + Assert.assertEquals("", resultMap.get("var_out_test")); } - - /** - * SingleValueAssignExtension will assign to extant but empty maps of variable value pairs - */ - @Test - public void pipelineCardinalityTest() { - List> listOfMaps = new LinkedList<>(); - listOfMaps.add(new HashMap()); - listOfMaps.add(new HashMap()); - listOfMaps.add(new HashMap()); + + /** + * SingleValueAssignExtension will assign to extant but empty maps of variable value pairs + */ + @Test + public void pipelineCardinalityTest() { + List> listOfMaps = new LinkedList<>(); + listOfMaps.add(new HashMap()); + listOfMaps.add(new HashMap()); + listOfMaps.add(new HashMap()); SetAssignExtension setAssign = new SetAssignExtension(); - - SetAssignExtension.SetAssignTag setAssignTag = new SetAssignExtension.SetAssignTag(); - setAssignTag.setName("var_out_test"); + + SetAssignExtension.SetAssignTag setAssignTag = new SetAssignExtension.SetAssignTag(); + setAssignTag.setName("var_out_test"); setAssignTag.setSet("A,B,C,D,E"); - - List> processedList = setAssign.pipelinePossibleStates(setAssignTag, listOfMaps); - Assert.assertEquals(15, processedList.size()); + + List> processedList = setAssign.pipelinePossibleStates(setAssignTag, listOfMaps); + Assert.assertEquals(15, processedList.size()); } - - /** - * The ordering of output maps reflects the ordering of elements in the value set - */ - @Test - public void pipelineExpandOrderingTest() { - List> listWithEmptyMap = new LinkedList<>(); - listWithEmptyMap.add(new HashMap()); + + /** + * The ordering of output maps reflects the ordering of elements in the value set + */ + @Test + public void pipelineExpandOrderingTest() { + List> listWithEmptyMap = new LinkedList<>(); + listWithEmptyMap.add(new HashMap()); SetAssignExtension setAssign = new SetAssignExtension(); - - SetAssignExtension.SetAssignTag setAssignTag = new SetAssignExtension.SetAssignTag(); - setAssignTag.setName("var_out_test"); + + SetAssignExtension.SetAssignTag setAssignTag = new SetAssignExtension.SetAssignTag(); + setAssignTag.setName("var_out_test"); setAssignTag.setSet("A,B,C"); - - List> processedList = setAssign.pipelinePossibleStates(setAssignTag, listWithEmptyMap); + + List> processedList = setAssign.pipelinePossibleStates(setAssignTag, listWithEmptyMap); Assert.assertEquals(3, processedList.size()); - - Map resultMap = processedList.get(0); - Assert.assertEquals(1, resultMap.keySet().size()); + + Map resultMap = processedList.get(0); + Assert.assertEquals(1, resultMap.keySet().size()); Assert.assertEquals("A", resultMap.get("var_out_test")); - - resultMap = processedList.get(1); - Assert.assertEquals(1, resultMap.keySet().size()); + + resultMap = processedList.get(1); + Assert.assertEquals(1, resultMap.keySet().size()); Assert.assertEquals("B", resultMap.get("var_out_test")); - - resultMap = processedList.get(2); - Assert.assertEquals(1, resultMap.keySet().size()); - Assert.assertEquals("C", resultMap.get("var_out_test")); + + resultMap = processedList.get(2); + Assert.assertEquals(1, resultMap.keySet().size()); + Assert.assertEquals("C", resultMap.get("var_out_test")); } - - /** - * SetAssignExtension will assign values only to the variable given in name="foo" - */ - @Test - public void pipelineExpandWithNonEmptyMapTest() { - List> listWithNonEmptyMap = new LinkedList<>(); - HashMap nonEmptyMap = new HashMap<>(); - nonEmptyMap.put("var_out_test_1", "3"); - listWithNonEmptyMap.add(nonEmptyMap); + + /** + * SetAssignExtension will assign values only to the variable given in name="foo" + */ + @Test + public void pipelineExpandWithNonEmptyMapTest() { + List> listWithNonEmptyMap = new LinkedList<>(); + HashMap nonEmptyMap = new HashMap<>(); + nonEmptyMap.put("var_out_test_1", "3"); + listWithNonEmptyMap.add(nonEmptyMap); SetAssignExtension setAssign = new SetAssignExtension(); - - SetAssignExtension.SetAssignTag setAssignTag = new SetAssignExtension.SetAssignTag(); - setAssignTag.setName("var_out_test_2"); + + SetAssignExtension.SetAssignTag setAssignTag = new SetAssignExtension.SetAssignTag(); + setAssignTag.setName("var_out_test_2"); setAssignTag.setSet("A,B,C"); - - List> processedList = setAssign.pipelinePossibleStates(setAssignTag, listWithNonEmptyMap); + + List> processedList = setAssign.pipelinePossibleStates(setAssignTag, listWithNonEmptyMap); Assert.assertEquals(3, processedList.size()); - - Map resultMap = processedList.get(0); - Assert.assertEquals(2, resultMap.keySet().size()); - Assert.assertEquals("3", resultMap.get("var_out_test_1")); + + Map resultMap = processedList.get(0); + Assert.assertEquals(2, resultMap.keySet().size()); + Assert.assertEquals("3", resultMap.get("var_out_test_1")); Assert.assertEquals("A", resultMap.get("var_out_test_2")); - - resultMap = processedList.get(1); - Assert.assertEquals(2, resultMap.keySet().size()); - Assert.assertEquals("3", resultMap.get("var_out_test_1")); + + resultMap = processedList.get(1); + Assert.assertEquals(2, resultMap.keySet().size()); + Assert.assertEquals("3", resultMap.get("var_out_test_1")); Assert.assertEquals("B", resultMap.get("var_out_test_2")); - - resultMap = processedList.get(2); - Assert.assertEquals(2, resultMap.keySet().size()); - Assert.assertEquals("3", resultMap.get("var_out_test_1")); - Assert.assertEquals("C", resultMap.get("var_out_test_2")); + + resultMap = processedList.get(2); + Assert.assertEquals(2, resultMap.keySet().size()); + Assert.assertEquals("3", resultMap.get("var_out_test_1")); + Assert.assertEquals("C", resultMap.get("var_out_test_2")); } - - /** - * SetAssignExtension will overwrite variables that already have values - */ - @Test - public void pipelineOverwriteTest() { - List> listWithNonEmptyMap = new LinkedList<>(); - HashMap nonEmptyMap = new HashMap<>(); - nonEmptyMap.put("var_out_test", "3"); - listWithNonEmptyMap.add(nonEmptyMap); + + /** + * SetAssignExtension will overwrite variables that already have values + */ + @Test + public void pipelineOverwriteTest() { + List> listWithNonEmptyMap = new LinkedList<>(); + HashMap nonEmptyMap = new HashMap<>(); + nonEmptyMap.put("var_out_test", "3"); + listWithNonEmptyMap.add(nonEmptyMap); SetAssignExtension setAssign = new SetAssignExtension(); - - SetAssignExtension.SetAssignTag setAssignTag = new SetAssignExtension.SetAssignTag(); - setAssignTag.setName("var_out_test"); + + SetAssignExtension.SetAssignTag setAssignTag = new SetAssignExtension.SetAssignTag(); + setAssignTag.setName("var_out_test"); setAssignTag.setSet("A,B,C"); - - List> processedList = setAssign.pipelinePossibleStates(setAssignTag, listWithNonEmptyMap); + + List> processedList = setAssign.pipelinePossibleStates(setAssignTag, listWithNonEmptyMap); Assert.assertEquals(3, processedList.size()); - - Map resultMap = processedList.get(0); - Assert.assertEquals(1, resultMap.keySet().size()); + + Map resultMap = processedList.get(0); + Assert.assertEquals(1, resultMap.keySet().size()); Assert.assertEquals("A", resultMap.get("var_out_test")); - - resultMap = processedList.get(1); - Assert.assertEquals(1, resultMap.keySet().size()); + + resultMap = processedList.get(1); + Assert.assertEquals(1, resultMap.keySet().size()); Assert.assertEquals("B", resultMap.get("var_out_test")); - - resultMap = processedList.get(2); - Assert.assertEquals(1, resultMap.keySet().size()); - Assert.assertEquals("C", resultMap.get("var_out_test")); - } - - /** - Tests user-defined variable separator in dg:assign tag - **/ - @Test - public void separatorTest() { - List> list = new LinkedList<>(); - list.add(new HashMap()); + + resultMap = processedList.get(2); + Assert.assertEquals(1, resultMap.keySet().size()); + Assert.assertEquals("C", resultMap.get("var_out_test")); + } + + /** + Tests user-defined variable separator in dg:assign tag + **/ + @Test + public void separatorTest() { + List> list = new LinkedList<>(); + list.add(new HashMap()); SetAssignExtension setAssign = new SetAssignExtension(); - - SetAssignExtension.SetAssignTag setAssignTag = new SetAssignExtension.SetAssignTag(); - setAssignTag.setName("var_out_test"); - setAssignTag.setSet("(A,B)|C"); + + SetAssignExtension.SetAssignTag setAssignTag = new SetAssignExtension.SetAssignTag(); + setAssignTag.setName("var_out_test"); + setAssignTag.setSet("(A,B)|C"); setAssignTag.setSeparator("|"); - - List> processedList = setAssign.pipelinePossibleStates(setAssignTag, list); + + List> processedList = setAssign.pipelinePossibleStates(setAssignTag, list); Assert.assertEquals(2, processedList.size()); - - Map resultMap = processedList.get(0); - Assert.assertEquals(1, resultMap.keySet().size()); - Assert.assertEquals("(A,B)", resultMap.get("var_out_test")); - } + + Map resultMap = processedList.get(0); + Assert.assertEquals(1, resultMap.keySet().size()); + Assert.assertEquals("(A,B)", resultMap.get("var_out_test")); + } } diff --git a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/SingleValueAssignExtensionTest.java b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/SingleValueAssignExtensionTest.java index 11cb6fc1..c3fe36e6 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/SingleValueAssignExtensionTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/SingleValueAssignExtensionTest.java @@ -1,196 +1,196 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags; - -import org.apache.commons.scxml.model.Assign; -import org.junit.Assert; + +import org.apache.commons.scxml.model.Assign; +import org.junit.Assert; import org.junit.Test; - -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; + +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; import java.util.Map; - -/** - * Marshall Peters - * Date: 12/8/14 - */ + +/** + * Marshall Peters + * Date: 12/8/14 + */ public class SingleValueAssignExtensionTest { - - /** - * SingleValueAssignExtension uses the built in scxml Assign tag class - */ - @Test - public void actionClassTest() { - SingleValueAssignExtension assign = new SingleValueAssignExtension(); - Assert.assertEquals(Assign.class, assign.getTagActionClass()); + + /** + * SingleValueAssignExtension uses the built in scxml Assign tag class + */ + @Test + public void actionClassTest() { + SingleValueAssignExtension assign = new SingleValueAssignExtension(); + Assert.assertEquals(Assign.class, assign.getTagActionClass()); } - - /** - * 'assign' is the name of the tag - */ - @Test - public void tagNameTest() { - SingleValueAssignExtension assign = new SingleValueAssignExtension(); - Assert.assertEquals("assign", assign.getTagName()); + + /** + * 'assign' is the name of the tag + */ + @Test + public void tagNameTest() { + SingleValueAssignExtension assign = new SingleValueAssignExtension(); + Assert.assertEquals("assign", assign.getTagName()); } - - /** - * The tag uses the default scxml name space - */ - @Test - public void tagNameSpaceTest() { - SingleValueAssignExtension assign = new SingleValueAssignExtension(); - Assert.assertEquals("http://www.w3.org/2005/07/scxml", assign.getTagNameSpace()); + + /** + * The tag uses the default scxml name space + */ + @Test + public void tagNameSpaceTest() { + SingleValueAssignExtension assign = new SingleValueAssignExtension(); + Assert.assertEquals("http://www.w3.org/2005/07/scxml", assign.getTagNameSpace()); } - - /** - * SingleValueAssignExtension only assigns values to extant maps of variable value pairs - */ - @Test - public void pipelineEmptyListTest() { - List> emptyList = new LinkedList<>(); + + /** + * SingleValueAssignExtension only assigns values to extant maps of variable value pairs + */ + @Test + public void pipelineEmptyListTest() { + List> emptyList = new LinkedList<>(); SingleValueAssignExtension assign = new SingleValueAssignExtension(); - - Assign concreteAssignTag = new Assign(); - concreteAssignTag.setName("var_out_test"); + + Assign concreteAssignTag = new Assign(); + concreteAssignTag.setName("var_out_test"); concreteAssignTag.setExpr("A"); - - List> processedList = assign.pipelinePossibleStates(concreteAssignTag, emptyList); - Assert.assertNotNull(processedList); - Assert.assertEquals(0, processedList.size()); + + List> processedList = assign.pipelinePossibleStates(concreteAssignTag, emptyList); + Assert.assertNotNull(processedList); + Assert.assertEquals(0, processedList.size()); } - - /** - * SingleValueAssignExtension will assign to extant but empty maps of variable value pairs - */ - @Test - public void pipelineEmptyMapTest() { - List> listWithEmptyMap = new LinkedList<>(); - listWithEmptyMap.add(new HashMap()); + + /** + * SingleValueAssignExtension will assign to extant but empty maps of variable value pairs + */ + @Test + public void pipelineEmptyMapTest() { + List> listWithEmptyMap = new LinkedList<>(); + listWithEmptyMap.add(new HashMap()); SingleValueAssignExtension assign = new SingleValueAssignExtension(); - - Assign concreteAssignTag = new Assign(); - concreteAssignTag.setName("var_out_test"); + + Assign concreteAssignTag = new Assign(); + concreteAssignTag.setName("var_out_test"); concreteAssignTag.setExpr("A"); - - List> processedList = assign.pipelinePossibleStates(concreteAssignTag, listWithEmptyMap); - Assert.assertEquals(1, processedList.size()); + + List> processedList = assign.pipelinePossibleStates(concreteAssignTag, listWithEmptyMap); + Assert.assertEquals(1, processedList.size()); Map resultMap = processedList.get(0); - - Assert.assertEquals(1, resultMap.keySet().size()); - Assert.assertEquals("A", resultMap.get("var_out_test")); + + Assert.assertEquals(1, resultMap.keySet().size()); + Assert.assertEquals("A", resultMap.get("var_out_test")); } - - /** - * SingleValueAssignExtension assigns the value in expr="foo" to - * variable given in name="bar" without touching any other variables - */ - @Test - public void pipelineNonEmptyMapTest() { - List> listWithNonEmptyMap = new LinkedList<>(); - HashMap nonEmptyMap = new HashMap<>(); - nonEmptyMap.put("var_out_test_1", "Lorem"); - nonEmptyMap.put("var_out_test_2", "ipsum"); - nonEmptyMap.put("var_out_test_3", "doler"); - nonEmptyMap.put("var_out_test_4", "sit"); - nonEmptyMap.put("var_out_test_5", "amet"); - listWithNonEmptyMap.add(nonEmptyMap); + + /** + * SingleValueAssignExtension assigns the value in expr="foo" to + * variable given in name="bar" without touching any other variables + */ + @Test + public void pipelineNonEmptyMapTest() { + List> listWithNonEmptyMap = new LinkedList<>(); + HashMap nonEmptyMap = new HashMap<>(); + nonEmptyMap.put("var_out_test_1", "Lorem"); + nonEmptyMap.put("var_out_test_2", "ipsum"); + nonEmptyMap.put("var_out_test_3", "doler"); + nonEmptyMap.put("var_out_test_4", "sit"); + nonEmptyMap.put("var_out_test_5", "amet"); + listWithNonEmptyMap.add(nonEmptyMap); SingleValueAssignExtension assign = new SingleValueAssignExtension(); - - Assign concreteAssignTag = new Assign(); - concreteAssignTag.setName("var_out_test_6"); + + Assign concreteAssignTag = new Assign(); + concreteAssignTag.setName("var_out_test_6"); concreteAssignTag.setExpr("consectetur"); - - List> processedList = assign.pipelinePossibleStates(concreteAssignTag, listWithNonEmptyMap); - Assert.assertEquals(1, processedList.size()); + + List> processedList = assign.pipelinePossibleStates(concreteAssignTag, listWithNonEmptyMap); + Assert.assertEquals(1, processedList.size()); Map resultMap = processedList.get(0); - - Assert.assertEquals(6, resultMap.keySet().size()); - Assert.assertEquals("Lorem", resultMap.get("var_out_test_1")); - Assert.assertEquals("ipsum", resultMap.get("var_out_test_2")); - Assert.assertEquals("doler", resultMap.get("var_out_test_3")); - Assert.assertEquals("sit", resultMap.get("var_out_test_4")); - Assert.assertEquals("amet", resultMap.get("var_out_test_5")); - Assert.assertEquals("consectetur", resultMap.get("var_out_test_6")); + + Assert.assertEquals(6, resultMap.keySet().size()); + Assert.assertEquals("Lorem", resultMap.get("var_out_test_1")); + Assert.assertEquals("ipsum", resultMap.get("var_out_test_2")); + Assert.assertEquals("doler", resultMap.get("var_out_test_3")); + Assert.assertEquals("sit", resultMap.get("var_out_test_4")); + Assert.assertEquals("amet", resultMap.get("var_out_test_5")); + Assert.assertEquals("consectetur", resultMap.get("var_out_test_6")); } - - /** - * SingleValueAssignExtension will overwrite the value of a variable it it already had a value - */ - @Test - public void pipelineOverwriteTest() { - List> listWithNonEmptyMap = new LinkedList<>(); - HashMap nonEmptyMap = new HashMap<>(); - nonEmptyMap.put("var_out_test", "Lorem"); - listWithNonEmptyMap.add(nonEmptyMap); + + /** + * SingleValueAssignExtension will overwrite the value of a variable it it already had a value + */ + @Test + public void pipelineOverwriteTest() { + List> listWithNonEmptyMap = new LinkedList<>(); + HashMap nonEmptyMap = new HashMap<>(); + nonEmptyMap.put("var_out_test", "Lorem"); + listWithNonEmptyMap.add(nonEmptyMap); SingleValueAssignExtension assign = new SingleValueAssignExtension(); - - Assign concreteAssignTag = new Assign(); - concreteAssignTag.setName("var_out_test"); + + Assign concreteAssignTag = new Assign(); + concreteAssignTag.setName("var_out_test"); concreteAssignTag.setExpr("consectetur"); - - List> processedList = assign.pipelinePossibleStates(concreteAssignTag, listWithNonEmptyMap); - Assert.assertEquals(1, processedList.size()); + + List> processedList = assign.pipelinePossibleStates(concreteAssignTag, listWithNonEmptyMap); + Assert.assertEquals(1, processedList.size()); Map resultMap = processedList.get(0); - - Assert.assertEquals(1, resultMap.keySet().size()); - Assert.assertEquals("consectetur", resultMap.get("var_out_test")); + + Assert.assertEquals(1, resultMap.keySet().size()); + Assert.assertEquals("consectetur", resultMap.get("var_out_test")); } - - /** - * Multiple maps of variable value pairs are all modified with the new assignment individually - */ - @Test - public void pipelineMultipleMapsTest() { - List> listWithManyMaps = new LinkedList<>(); - HashMap nonEmptyMapOne = new HashMap<>(); - nonEmptyMapOne.put("var_out_test_1", "Lorem"); - nonEmptyMapOne.put("var_out_test_2", "ipsum"); - listWithManyMaps.add(nonEmptyMapOne); - HashMap nonEmptyMapTwo = new HashMap<>(nonEmptyMapOne); - listWithManyMaps.add(nonEmptyMapTwo); - HashMap nonEmptyMapThree = new HashMap<>(nonEmptyMapOne); - listWithManyMaps.add(nonEmptyMapThree); + + /** + * Multiple maps of variable value pairs are all modified with the new assignment individually + */ + @Test + public void pipelineMultipleMapsTest() { + List> listWithManyMaps = new LinkedList<>(); + HashMap nonEmptyMapOne = new HashMap<>(); + nonEmptyMapOne.put("var_out_test_1", "Lorem"); + nonEmptyMapOne.put("var_out_test_2", "ipsum"); + listWithManyMaps.add(nonEmptyMapOne); + HashMap nonEmptyMapTwo = new HashMap<>(nonEmptyMapOne); + listWithManyMaps.add(nonEmptyMapTwo); + HashMap nonEmptyMapThree = new HashMap<>(nonEmptyMapOne); + listWithManyMaps.add(nonEmptyMapThree); SingleValueAssignExtension assign = new SingleValueAssignExtension(); - - Assign concreteAssignTag = new Assign(); - concreteAssignTag.setName("var_out_test_3"); + + Assign concreteAssignTag = new Assign(); + concreteAssignTag.setName("var_out_test_3"); concreteAssignTag.setExpr("consectetur"); - - List> processedList = assign.pipelinePossibleStates(concreteAssignTag, listWithManyMaps); + + List> processedList = assign.pipelinePossibleStates(concreteAssignTag, listWithManyMaps); Assert.assertEquals(3, processedList.size()); - - Map resultMap = processedList.get(0); - Assert.assertEquals(3, resultMap.keySet().size()); - Assert.assertEquals("Lorem", resultMap.get("var_out_test_1")); - Assert.assertEquals("ipsum", resultMap.get("var_out_test_2")); + + Map resultMap = processedList.get(0); + Assert.assertEquals(3, resultMap.keySet().size()); + Assert.assertEquals("Lorem", resultMap.get("var_out_test_1")); + Assert.assertEquals("ipsum", resultMap.get("var_out_test_2")); + Assert.assertEquals("consectetur", resultMap.get("var_out_test_3")); + + resultMap = processedList.get(1); + Assert.assertEquals(3, resultMap.keySet().size()); + Assert.assertEquals("Lorem", resultMap.get("var_out_test_1")); + Assert.assertEquals("ipsum", resultMap.get("var_out_test_2")); Assert.assertEquals("consectetur", resultMap.get("var_out_test_3")); - - resultMap = processedList.get(1); - Assert.assertEquals(3, resultMap.keySet().size()); - Assert.assertEquals("Lorem", resultMap.get("var_out_test_1")); - Assert.assertEquals("ipsum", resultMap.get("var_out_test_2")); + + resultMap = processedList.get(2); + Assert.assertEquals(3, resultMap.keySet().size()); + Assert.assertEquals("Lorem", resultMap.get("var_out_test_1")); + Assert.assertEquals("ipsum", resultMap.get("var_out_test_2")); Assert.assertEquals("consectetur", resultMap.get("var_out_test_3")); - - resultMap = processedList.get(2); - Assert.assertEquals(3, resultMap.keySet().size()); - Assert.assertEquals("Lorem", resultMap.get("var_out_test_1")); - Assert.assertEquals("ipsum", resultMap.get("var_out_test_2")); - Assert.assertEquals("consectetur", resultMap.get("var_out_test_3")); - } + } } diff --git a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveBigIntTest.java b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveBigIntTest.java index 7d6e9738..04e5dcaa 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveBigIntTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveBigIntTest.java @@ -1,175 +1,175 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary; - -import org.junit.Assert; + +import org.junit.Assert; import org.junit.Test; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; import java.util.Map; - -/** - * Nathaniel Lee - * Date: 10/27/15 - */ + +/** + * Nathaniel Lee + * Date: 10/27/15 + */ public class NegativeBoundHiveBigIntTest { - - /** - * test for setName() and getName() - */ - @Test - public void nameTest() { + + /** + * test for setName() and getName() + */ + @Test + public void nameTest() { NegativeBoundHiveBigInt.NegativeBoundHiveBigIntTag neg = new NegativeBoundHiveBigInt.NegativeBoundHiveBigIntTag(); - - neg.setName("hive_big_test"); + + neg.setName("hive_big_test"); Assert.assertEquals(neg.getName(), "hive_big_test"); - - neg.setName("hive_big_test2"); - Assert.assertEquals(neg.getName(), "hive_big_test2"); + + neg.setName("hive_big_test2"); + Assert.assertEquals(neg.getName(), "hive_big_test2"); } - - /** - * test for setNullable() and getNullable() - */ - @Test - public void nullTest() { + + /** + * test for setNullable() and getNullable() + */ + @Test + public void nullTest() { NegativeBoundHiveBigInt.NegativeBoundHiveBigIntTag neg = new NegativeBoundHiveBigInt.NegativeBoundHiveBigIntTag(); - - neg.setNullable("true"); + + neg.setNullable("true"); Assert.assertEquals(neg.getNullable(), "true"); - - neg.setNullable("false"); - Assert.assertEquals(neg.getNullable(), "false"); + + neg.setNullable("false"); + Assert.assertEquals(neg.getNullable(), "false"); } - - /** - * check to make sure null is only added when nullable is set to false - */ - @Test - public void nullTest2() { - Map variableDomains = new HashMap<>(); - NegativeBoundHiveBigInt.NegativeBoundHiveBigIntTag neg = new NegativeBoundHiveBigInt.NegativeBoundHiveBigIntTag(); - NegativeBoundHiveBigInt test = new NegativeBoundHiveBigInt(); + + /** + * check to make sure null is only added when nullable is set to false + */ + @Test + public void nullTest2() { + Map variableDomains = new HashMap<>(); + NegativeBoundHiveBigInt.NegativeBoundHiveBigIntTag neg = new NegativeBoundHiveBigInt.NegativeBoundHiveBigIntTag(); + NegativeBoundHiveBigInt test = new NegativeBoundHiveBigInt(); List> listOfMaps = new LinkedList<>(); - - variableDomains.put("test", ""); + + variableDomains.put("test", ""); listOfMaps.add(variableDomains); - - neg.setMin("10"); - neg.setMax("100"); - neg.setNullable("true"); + + neg.setMin("10"); + neg.setMax("100"); + neg.setNullable("true"); neg.setName("test"); - - List> list = test.pipelinePossibleStates(neg, listOfMaps); + + List> list = test.pipelinePossibleStates(neg, listOfMaps); Assert.assertEquals(list.size(), 2); - + neg.setNullable("false"); - - list = test.pipelinePossibleStates(neg, listOfMaps); - Assert.assertEquals(list.size(), 3); + + list = test.pipelinePossibleStates(neg, listOfMaps); + Assert.assertEquals(list.size(), 3); } - - /** - * test for setMin() and getMin() - */ - @Test - public void minTest() { + + /** + * test for setMin() and getMin() + */ + @Test + public void minTest() { NegativeBoundHiveBigInt.NegativeBoundHiveBigIntTag neg = new NegativeBoundHiveBigInt.NegativeBoundHiveBigIntTag(); - - neg.setMin("10"); + + neg.setMin("10"); Assert.assertEquals(neg.getMin(), "10"); - - neg.setMin("100"); - Assert.assertEquals(neg.getMin(), "100"); + + neg.setMin("100"); + Assert.assertEquals(neg.getMin(), "100"); } - - /** - * check to make sure min boundary conditions are being added to states list - */ - @Test - public void minTest2() { - Map variableDomains = new HashMap<>(); - NegativeBoundHiveBigInt.NegativeBoundHiveBigIntTag neg = new NegativeBoundHiveBigInt.NegativeBoundHiveBigIntTag(); - NegativeBoundHiveBigInt test = new NegativeBoundHiveBigInt(); - List> listOfMaps = new LinkedList<>(); + + /** + * check to make sure min boundary conditions are being added to states list + */ + @Test + public void minTest2() { + Map variableDomains = new HashMap<>(); + NegativeBoundHiveBigInt.NegativeBoundHiveBigIntTag neg = new NegativeBoundHiveBigInt.NegativeBoundHiveBigIntTag(); + NegativeBoundHiveBigInt test = new NegativeBoundHiveBigInt(); + List> listOfMaps = new LinkedList<>(); ArrayList al = new ArrayList<>(); - - variableDomains.put("test", ""); + + variableDomains.put("test", ""); listOfMaps.add(variableDomains); - - neg.setMin("10"); - neg.setMax("100"); - neg.setNullable("true"); + + neg.setMin("10"); + neg.setMax("100"); + neg.setNullable("true"); neg.setName("test"); - - List> list = test.pipelinePossibleStates(neg, listOfMaps); - for (Map map : list) { - for (String key : map.keySet()) { - al.add(map.get(key)); - } + + List> list = test.pipelinePossibleStates(neg, listOfMaps); + for (Map map : list) { + for (String key : map.keySet()) { + al.add(map.get(key)); + } } - - Assert.assertTrue(al.contains("9")); - Assert.assertTrue(al.contains("101")); + + Assert.assertTrue(al.contains("9")); + Assert.assertTrue(al.contains("101")); } - - /** - * test for setMax() and getMax() - */ - @Test - public void maxTest() { + + /** + * test for setMax() and getMax() + */ + @Test + public void maxTest() { NegativeBoundHiveBigInt.NegativeBoundHiveBigIntTag neg = new NegativeBoundHiveBigInt.NegativeBoundHiveBigIntTag(); - - neg.setMax("10"); + + neg.setMax("10"); Assert.assertEquals(neg.getMax(), "10"); - - neg.setMax("100"); - Assert.assertEquals(neg.getMax(), "100"); + + neg.setMax("100"); + Assert.assertEquals(neg.getMax(), "100"); } - - /** - * check to make sure max boundary conditions are being added to states list - */ - @Test - public void maxTest2() { - Map variableDomains = new HashMap<>(); - NegativeBoundHiveBigInt.NegativeBoundHiveBigIntTag neg = new NegativeBoundHiveBigInt.NegativeBoundHiveBigIntTag(); - NegativeBoundHiveBigInt test = new NegativeBoundHiveBigInt(); - List> listOfMaps = new LinkedList<>(); + + /** + * check to make sure max boundary conditions are being added to states list + */ + @Test + public void maxTest2() { + Map variableDomains = new HashMap<>(); + NegativeBoundHiveBigInt.NegativeBoundHiveBigIntTag neg = new NegativeBoundHiveBigInt.NegativeBoundHiveBigIntTag(); + NegativeBoundHiveBigInt test = new NegativeBoundHiveBigInt(); + List> listOfMaps = new LinkedList<>(); ArrayList al = new ArrayList<>(); - - variableDomains.put("test", ""); + + variableDomains.put("test", ""); listOfMaps.add(variableDomains); - - neg.setMin("10"); - neg.setMax("100"); - neg.setNullable("true"); + + neg.setMin("10"); + neg.setMax("100"); + neg.setNullable("true"); neg.setName("test"); - - List> list = test.pipelinePossibleStates(neg, listOfMaps); - for (Map map : list) { - for (String key : map.keySet()) { - al.add(map.get(key)); - } + + List> list = test.pipelinePossibleStates(neg, listOfMaps); + for (Map map : list) { + for (String key : map.keySet()) { + al.add(map.get(key)); + } } - - Assert.assertTrue(al.contains("9")); - Assert.assertTrue(al.contains("101")); - } + + Assert.assertTrue(al.contains("9")); + Assert.assertTrue(al.contains("101")); + } } diff --git a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveDateTest.java b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveDateTest.java index 31831829..597856b6 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveDateTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveDateTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 DataGenerator Contributors + * Copyright DataGenerator Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveDecimalTest.java b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveDecimalTest.java index a0d0a56f..99741149 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveDecimalTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveDecimalTest.java @@ -1,305 +1,305 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary; - -import org.apache.commons.scxml.SCXMLExpressionException; -import org.apache.commons.scxml.model.ModelException; -import org.junit.Assert; -import org.junit.Test; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; + +import org.apache.commons.scxml.SCXMLExpressionException; +import org.apache.commons.scxml.model.ModelException; +import org.junit.Assert; +import org.junit.Test; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; import java.util.Map; - -/** - * Nathaniel Lee - * Date: 10/27/15 - */ + +/** + * Nathaniel Lee + * Date: 10/27/15 + */ public class NegativeBoundHiveDecimalTest { - - /** - * test for setName() and getName() - */ - @Test - public void nameTest() { + + /** + * test for setName() and getName() + */ + @Test + public void nameTest() { NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag neg = new NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag(); - - neg.setName("decimal_test"); + + neg.setName("decimal_test"); Assert.assertEquals(neg.getName(), "decimal_test"); - - neg.setName("decimal_test2"); - Assert.assertEquals(neg.getName(), "decimal_test2"); + + neg.setName("decimal_test2"); + Assert.assertEquals(neg.getName(), "decimal_test2"); } - - /** - * test for setLength() and getLength() - */ - @Test - public void lengthTest() { + + /** + * test for setLength() and getLength() + */ + @Test + public void lengthTest() { NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag neg = new NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag(); - - neg.setLength("18,8"); + + neg.setLength("18,8"); Assert.assertEquals(neg.getLength(), "18,8"); - - neg.setLength("38,10"); - Assert.assertEquals(neg.getLength(), "38,10"); + + neg.setLength("38,10"); + Assert.assertEquals(neg.getLength(), "38,10"); } - - /** - * test for setNullable() and getNullable() - */ - @Test - public void nullTest() { + + /** + * test for setNullable() and getNullable() + */ + @Test + public void nullTest() { NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag neg = new NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag(); - - neg.setNullable("true"); + + neg.setNullable("true"); Assert.assertEquals(neg.getNullable(), "true"); - - neg.setNullable("false"); - Assert.assertEquals(neg.getNullable(), "false"); + + neg.setNullable("false"); + Assert.assertEquals(neg.getNullable(), "false"); } - - /** - * check that action does nothing - */ - @Test - public void actionTest() { - NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag neg = new NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag(); - try { - neg.execute(null, null, null, null, null); - } catch (SCXMLExpressionException | ModelException e) { - Assert.fail("Exceptions should never be thrown"); - } + + /** + * check that action does nothing + */ + @Test + public void actionTest() { + NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag neg = new NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag(); + try { + neg.execute(null, null, null, null, null); + } catch (SCXMLExpressionException | ModelException e) { + Assert.fail("Exceptions should never be thrown"); + } } - - /** - * check to make sure null is only added when nullable=true - */ - @Test - public void nullTest2() { - Map variableDomains = new HashMap<>(); - NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag neg = new NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag(); - NegativeBoundHiveDecimal test = new NegativeBoundHiveDecimal(); + + /** + * check to make sure null is only added when nullable=true + */ + @Test + public void nullTest2() { + Map variableDomains = new HashMap<>(); + NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag neg = new NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag(); + NegativeBoundHiveDecimal test = new NegativeBoundHiveDecimal(); List> listOfMaps = new LinkedList<>(); - - variableDomains.put("decimal", ""); + + variableDomains.put("decimal", ""); listOfMaps.add(variableDomains); - - neg.setLength("18,8"); + + neg.setLength("18,8"); neg.setName("decimal"); - - neg.setNullable("true"); - List> list = test.pipelinePossibleStates(neg, listOfMaps); + + neg.setNullable("true"); + List> list = test.pipelinePossibleStates(neg, listOfMaps); Assert.assertEquals(list.size(), 2); - - neg.setNullable("false"); - list = test.pipelinePossibleStates(neg, listOfMaps); - Assert.assertEquals(list.size(), 3); + + neg.setNullable("false"); + list = test.pipelinePossibleStates(neg, listOfMaps); + Assert.assertEquals(list.size(), 3); } - - /** - * check min and max parameters - */ - @Test - public void minMaxTest() { - Map variableDomains = new HashMap<>(); - List> listOfMaps = new LinkedList<>(); + + /** + * check min and max parameters + */ + @Test + public void minMaxTest() { + Map variableDomains = new HashMap<>(); + List> listOfMaps = new LinkedList<>(); listOfMaps.add(variableDomains); - - NegativeBoundHiveDecimal minMaxTest = new NegativeBoundHiveDecimal(); + + NegativeBoundHiveDecimal minMaxTest = new NegativeBoundHiveDecimal(); NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag tag = new NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag(); - - tag.setName("Name"); - tag.setMin("10"); + + tag.setName("Name"); + tag.setMin("10"); tag.setMax("20"); - - Assert.assertEquals(tag.getMin(), "10"); + + Assert.assertEquals(tag.getMin(), "10"); Assert.assertEquals(tag.getMax(), "20"); - - tag.setMin("100"); + + tag.setMin("100"); tag.setMax("200"); - - Assert.assertEquals(tag.getMin(), "100"); + + Assert.assertEquals(tag.getMin(), "100"); Assert.assertEquals(tag.getMax(), "200"); - + List> newList = minMaxTest.pipelinePossibleStates(tag, listOfMaps); - - Assert.assertEquals(newList.get(0).get("Name"), "99"); - Assert.assertEquals(newList.get(1).get("Name"), "201"); + + Assert.assertEquals(newList.get(0).get("Name"), "99"); + Assert.assertEquals(newList.get(1).get("Name"), "201"); } - - /** - * check minLen parameter - */ - @Test - public void minLenTest() { - Map variableDomains = new HashMap<>(); - List> listOfMaps = new LinkedList<>(); + + /** + * check minLen parameter + */ + @Test + public void minLenTest() { + Map variableDomains = new HashMap<>(); + List> listOfMaps = new LinkedList<>(); listOfMaps.add(variableDomains); - - NegativeBoundHiveDecimal minLenTest = new NegativeBoundHiveDecimal(); + + NegativeBoundHiveDecimal minLenTest = new NegativeBoundHiveDecimal(); NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag tag = new NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag(); - - tag.setName("name"); - tag.setMinLen("10"); + + tag.setName("name"); + tag.setMinLen("10"); Assert.assertEquals(tag.getMinLen(), "10"); - - tag.setMinLen("100"); + + tag.setMinLen("100"); Assert.assertEquals(tag.getMinLen(), "100"); - + List> newList = minLenTest.pipelinePossibleStates(tag, listOfMaps); - - Assert.assertEquals(newList.get(0).get("name").length(), 9); - Assert.assertEquals(newList.get(1).get("name").length(), 11); + + Assert.assertEquals(newList.get(0).get("name").length(), 9); + Assert.assertEquals(newList.get(1).get("name").length(), 11); } - - /** - * maxLen test - */ - @Test - public void maxLenTest() { - Map variableDomains = new HashMap<>(); - List> listOfMaps = new LinkedList<>(); + + /** + * maxLen test + */ + @Test + public void maxLenTest() { + Map variableDomains = new HashMap<>(); + List> listOfMaps = new LinkedList<>(); listOfMaps.add(variableDomains); - - NegativeBoundHiveDecimal maxLenTest = new NegativeBoundHiveDecimal(); + + NegativeBoundHiveDecimal maxLenTest = new NegativeBoundHiveDecimal(); NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag tag = new NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag(); - - tag.setName("name"); - tag.setMinLen("100"); + + tag.setName("name"); + tag.setMinLen("100"); Assert.assertEquals(tag.getMinLen(), "100"); - + List> newList = maxLenTest.pipelinePossibleStates(tag, listOfMaps); - - Assert.assertEquals(newList.get(0).get("name").length(), 9); - Assert.assertEquals(newList.get(1).get("name").length(), 11); + + Assert.assertEquals(newList.get(0).get("name").length(), 9); + Assert.assertEquals(newList.get(1).get("name").length(), 11); } - - /** - * minLen and maxLen - */ - @Test - public void minLenAndmaxLenTest() { - Map variableDomains = new HashMap<>(); - List> listOfMaps = new LinkedList<>(); + + /** + * minLen and maxLen + */ + @Test + public void minLenAndmaxLenTest() { + Map variableDomains = new HashMap<>(); + List> listOfMaps = new LinkedList<>(); listOfMaps.add(variableDomains); - - NegativeBoundHiveDecimal maxLenTest = new NegativeBoundHiveDecimal(); + + NegativeBoundHiveDecimal maxLenTest = new NegativeBoundHiveDecimal(); NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag tag = new NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag(); - - tag.setName("name"); - tag.setMinLen("5"); + + tag.setName("name"); + tag.setMinLen("5"); tag.setMaxLen("9"); - + List> newList = maxLenTest.pipelinePossibleStates(tag, listOfMaps); - - Assert.assertEquals(newList.get(0).get("name").length(), 4); - Assert.assertEquals(newList.get(1).get("name").length(), 10); + + Assert.assertEquals(newList.get(0).get("name").length(), 4); + Assert.assertEquals(newList.get(1).get("name").length(), 10); } - - /** - * no parameters set - */ - @Test - public void defaultBehaviorTest() { - Map variableDomains = new HashMap<>(); - List> listOfMaps = new LinkedList<>(); + + /** + * no parameters set + */ + @Test + public void defaultBehaviorTest() { + Map variableDomains = new HashMap<>(); + List> listOfMaps = new LinkedList<>(); listOfMaps.add(variableDomains); - - NegativeBoundHiveDecimal setTest = new NegativeBoundHiveDecimal(); - NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag tag = new NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag(); + + NegativeBoundHiveDecimal setTest = new NegativeBoundHiveDecimal(); + NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag tag = new NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag(); tag.setName("Name"); - + List> newList = setTest.pipelinePossibleStates(tag, listOfMaps); - - Assert.assertEquals(newList.get(0).get("Name").length(), 11); - Assert.assertEquals(newList.get(1).get("Name").length(), 11); + + Assert.assertEquals(newList.get(0).get("Name").length(), 11); + Assert.assertEquals(newList.get(1).get("Name").length(), 11); } - - /** - * test with minLen and max set - */ - @Test - public void minLenAndMaxTest() { - Map variableDomains = new HashMap<>(); - List> listOfMaps = new LinkedList<>(); + + /** + * test with minLen and max set + */ + @Test + public void minLenAndMaxTest() { + Map variableDomains = new HashMap<>(); + List> listOfMaps = new LinkedList<>(); listOfMaps.add(variableDomains); - - NegativeBoundHiveDecimal defaultBehavior = new NegativeBoundHiveDecimal(); + + NegativeBoundHiveDecimal defaultBehavior = new NegativeBoundHiveDecimal(); NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag tag = new NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag(); - - tag.setName("name"); - tag.setMinLen("10"); + + tag.setName("name"); + tag.setMinLen("10"); tag.setMax("1000"); - + List> newList = defaultBehavior.pipelinePossibleStates(tag, listOfMaps); - - Assert.assertEquals(newList.get(0).get("name"), "-100000000"); - Assert.assertEquals(newList.get(1).get("name"), "1001"); + + Assert.assertEquals(newList.get(0).get("name"), "-100000000"); + Assert.assertEquals(newList.get(1).get("name"), "1001"); } - - /** - * test with min and maxLen set - */ - @Test - public void minAndMaxLenTest() { - Map variableDomains = new HashMap<>(); - List> listOfMaps = new LinkedList<>(); + + /** + * test with min and maxLen set + */ + @Test + public void minAndMaxLenTest() { + Map variableDomains = new HashMap<>(); + List> listOfMaps = new LinkedList<>(); listOfMaps.add(variableDomains); - - NegativeBoundHiveDecimal defaultBehavior = new NegativeBoundHiveDecimal(); + + NegativeBoundHiveDecimal defaultBehavior = new NegativeBoundHiveDecimal(); NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag tag = new NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag(); - - tag.setName("name"); - tag.setMin("10"); + + tag.setName("name"); + tag.setMin("10"); tag.setMaxLen("12"); - + List> newList = defaultBehavior.pipelinePossibleStates(tag, listOfMaps); - - Assert.assertEquals(newList.get(0).get("name"), "9"); - Assert.assertEquals(newList.get(1).get("name").length(), 11); + + Assert.assertEquals(newList.get(0).get("name"), "9"); + Assert.assertEquals(newList.get(1).get("name").length(), 11); } - - /** - * check the size of the list of states - */ - @Test - public void setTest() { - Map variableDomains = new HashMap<>(); - List> listOfMaps = new LinkedList<>(); - variableDomains.put("A", "1"); - variableDomains.put("B", "2"); - variableDomains.put("C", "3"); + + /** + * check the size of the list of states + */ + @Test + public void setTest() { + Map variableDomains = new HashMap<>(); + List> listOfMaps = new LinkedList<>(); + variableDomains.put("A", "1"); + variableDomains.put("B", "2"); + variableDomains.put("C", "3"); listOfMaps.add(variableDomains); - - NegativeBoundHiveDecimal setTest = new NegativeBoundHiveDecimal(); - NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag tag = new NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag(); - tag.setNullable("true"); - tag.setLength("38,18"); + + NegativeBoundHiveDecimal setTest = new NegativeBoundHiveDecimal(); + NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag tag = new NegativeBoundHiveDecimal.NegativeBoundHiveDecimalTag(); + tag.setNullable("true"); + tag.setLength("38,18"); tag.setName("Name"); - - List> newList = setTest.pipelinePossibleStates(tag, listOfMaps); - Assert.assertEquals(newList.get(0).get("A"), "1"); - Assert.assertEquals(newList.get(0).get("B"), "2"); + + List> newList = setTest.pipelinePossibleStates(tag, listOfMaps); + Assert.assertEquals(newList.get(0).get("A"), "1"); + Assert.assertEquals(newList.get(0).get("B"), "2"); Assert.assertEquals(newList.get(0).get("C"), "3"); - - Assert.assertEquals(newList.get(1).get("A"), "1"); - Assert.assertEquals(newList.get(1).get("B"), "2"); + + Assert.assertEquals(newList.get(1).get("A"), "1"); + Assert.assertEquals(newList.get(1).get("B"), "2"); Assert.assertEquals(newList.get(1).get("C"), "3"); - - Assert.assertEquals(newList.size(), 2); - } + + Assert.assertEquals(newList.size(), 2); + } } diff --git a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveIntTest.java b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveIntTest.java index 8baac8c7..bd57d359 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveIntTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveIntTest.java @@ -1,82 +1,82 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary; - -import org.junit.Assert; + +import org.junit.Assert; import org.junit.Test; - -/** - * Nathaniel Lee - * Date: 10/27/15 - */ + +/** + * Nathaniel Lee + * Date: 10/27/15 + */ public class NegativeBoundHiveIntTest { - - /** - * test for setName() and getName() - */ - @Test - public void nameTest() { + + /** + * test for setName() and getName() + */ + @Test + public void nameTest() { NegativeBoundHiveInt.NegativeBoundHiveIntTag neg = new NegativeBoundHiveInt.NegativeBoundHiveIntTag(); - - neg.setName("hive_int_test"); + + neg.setName("hive_int_test"); Assert.assertEquals(neg.getName(), "hive_int_test"); - - neg.setName("hive_int_test2"); - Assert.assertEquals(neg.getName(), "hive_int_test2"); + + neg.setName("hive_int_test2"); + Assert.assertEquals(neg.getName(), "hive_int_test2"); } - - /** - * test for setNullable() and getNullable() - */ - @Test - public void nullTest() { + + /** + * test for setNullable() and getNullable() + */ + @Test + public void nullTest() { NegativeBoundHiveInt.NegativeBoundHiveIntTag neg = new NegativeBoundHiveInt.NegativeBoundHiveIntTag(); - - neg.setNullable("true"); + + neg.setNullable("true"); Assert.assertEquals(neg.getNullable(), "true"); - - neg.setNullable("false"); - Assert.assertEquals(neg.getNullable(), "false"); + + neg.setNullable("false"); + Assert.assertEquals(neg.getNullable(), "false"); } - - /** - * test for setMin() and getMin() - */ - @Test - public void minTest() { + + /** + * test for setMin() and getMin() + */ + @Test + public void minTest() { NegativeBoundHiveInt.NegativeBoundHiveIntTag neg = new NegativeBoundHiveInt.NegativeBoundHiveIntTag(); - - neg.setMin("10"); + + neg.setMin("10"); Assert.assertEquals(neg.getMin(), "10"); - - neg.setMin("100"); - Assert.assertEquals(neg.getMin(), "100"); + + neg.setMin("100"); + Assert.assertEquals(neg.getMin(), "100"); } - - /** - * test for setMax() and getMax() - */ - @Test - public void maxTest() { + + /** + * test for setMax() and getMax() + */ + @Test + public void maxTest() { NegativeBoundHiveInt.NegativeBoundHiveIntTag neg = new NegativeBoundHiveInt.NegativeBoundHiveIntTag(); - - neg.setMax("10"); + + neg.setMax("10"); Assert.assertEquals(neg.getMax(), "10"); - - neg.setMax("100"); - Assert.assertEquals(neg.getMax(), "100"); - } + + neg.setMax("100"); + Assert.assertEquals(neg.getMax(), "100"); + } } diff --git a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveSmallIntTest.java b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveSmallIntTest.java index e8ed8c71..3bb5291c 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveSmallIntTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveSmallIntTest.java @@ -1,82 +1,82 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary; - -import org.junit.Assert; + +import org.junit.Assert; import org.junit.Test; - -/** - * Nathaniel Lee - * Date: 10/27/15 - */ + +/** + * Nathaniel Lee + * Date: 10/27/15 + */ public class NegativeBoundHiveSmallIntTest { - - /** - * test for setName() and getName() - */ - @Test - public void nameTest() { + + /** + * test for setName() and getName() + */ + @Test + public void nameTest() { NegativeBoundHiveSmallInt.NegativeBoundHiveSmallIntTag neg = new NegativeBoundHiveSmallInt.NegativeBoundHiveSmallIntTag(); - - neg.setName("hive_small_test"); + + neg.setName("hive_small_test"); Assert.assertEquals(neg.getName(), "hive_small_test"); - - neg.setName("hive_small_test2"); - Assert.assertEquals(neg.getName(), "hive_small_test2"); + + neg.setName("hive_small_test2"); + Assert.assertEquals(neg.getName(), "hive_small_test2"); } - - /** - * test for setNullable() and getNullable() - */ - @Test - public void nullTest() { + + /** + * test for setNullable() and getNullable() + */ + @Test + public void nullTest() { NegativeBoundHiveSmallInt.NegativeBoundHiveSmallIntTag neg = new NegativeBoundHiveSmallInt.NegativeBoundHiveSmallIntTag(); - - neg.setNullable("true"); + + neg.setNullable("true"); Assert.assertEquals(neg.getNullable(), "true"); - - neg.setNullable("false"); - Assert.assertEquals(neg.getNullable(), "false"); + + neg.setNullable("false"); + Assert.assertEquals(neg.getNullable(), "false"); } - - /** - * test for setMin() and getMin() - */ - @Test - public void minTest() { + + /** + * test for setMin() and getMin() + */ + @Test + public void minTest() { NegativeBoundHiveSmallInt.NegativeBoundHiveSmallIntTag neg = new NegativeBoundHiveSmallInt.NegativeBoundHiveSmallIntTag(); - - neg.setMin("10"); + + neg.setMin("10"); Assert.assertEquals(neg.getMin(), "10"); - - neg.setMin("100"); - Assert.assertEquals(neg.getMin(), "100"); + + neg.setMin("100"); + Assert.assertEquals(neg.getMin(), "100"); } - - /** - * test for setMax() and getMax() - */ - @Test - public void maxTest() { + + /** + * test for setMax() and getMax() + */ + @Test + public void maxTest() { NegativeBoundHiveSmallInt.NegativeBoundHiveSmallIntTag neg = new NegativeBoundHiveSmallInt.NegativeBoundHiveSmallIntTag(); - - neg.setMax("10"); + + neg.setMax("10"); Assert.assertEquals(neg.getMax(), "10"); - - neg.setMax("100"); - Assert.assertEquals(neg.getMax(), "100"); - } + + neg.setMax("100"); + Assert.assertEquals(neg.getMax(), "100"); + } } diff --git a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveTinyIntTest.java b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveTinyIntTest.java index f35eb92a..2487510c 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveTinyIntTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveTinyIntTest.java @@ -1,137 +1,137 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary; - -import org.junit.Assert; + +import org.junit.Assert; import org.junit.Test; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; import java.util.Map; - -/** - * Nathaniel Lee - * Date: 10/27/15 - */ + +/** + * Nathaniel Lee + * Date: 10/27/15 + */ public class NegativeBoundHiveTinyIntTest { - - /** - * test for setName() and getName() - */ - @Test - public void nameTest() { + + /** + * test for setName() and getName() + */ + @Test + public void nameTest() { NegativeBoundHiveTinyInt.NegativeBoundHiveTinyIntTag neg = new NegativeBoundHiveTinyInt.NegativeBoundHiveTinyIntTag(); - - neg.setName("hive_tiny_test"); + + neg.setName("hive_tiny_test"); Assert.assertEquals(neg.getName(), "hive_tiny_test"); - - neg.setName("hive_tiny_test2"); - Assert.assertEquals(neg.getName(), "hive_tiny_test2"); + + neg.setName("hive_tiny_test2"); + Assert.assertEquals(neg.getName(), "hive_tiny_test2"); } - - /** - * test for setNullable() and getNullable() - */ - @Test - public void nullTest() { + + /** + * test for setNullable() and getNullable() + */ + @Test + public void nullTest() { NegativeBoundHiveTinyInt.NegativeBoundHiveTinyIntTag neg = new NegativeBoundHiveTinyInt.NegativeBoundHiveTinyIntTag(); - - neg.setNullable("true"); + + neg.setNullable("true"); Assert.assertEquals(neg.getNullable(), "true"); - - neg.setNullable("false"); - Assert.assertEquals(neg.getNullable(), "false"); + + neg.setNullable("false"); + Assert.assertEquals(neg.getNullable(), "false"); } - - /** - * test for setMin() and getMin() - */ - @Test - public void minTest() { + + /** + * test for setMin() and getMin() + */ + @Test + public void minTest() { NegativeBoundHiveTinyInt.NegativeBoundHiveTinyIntTag neg = new NegativeBoundHiveTinyInt.NegativeBoundHiveTinyIntTag(); - - neg.setMin("10"); + + neg.setMin("10"); Assert.assertEquals(neg.getMin(), "10"); - - neg.setMin("100"); - Assert.assertEquals(neg.getMin(), "100"); + + neg.setMin("100"); + Assert.assertEquals(neg.getMin(), "100"); } - - /** - * test for setMax() and getMax() - */ - @Test - public void maxTest() { + + /** + * test for setMax() and getMax() + */ + @Test + public void maxTest() { NegativeBoundHiveTinyInt.NegativeBoundHiveTinyIntTag neg = new NegativeBoundHiveTinyInt.NegativeBoundHiveTinyIntTag(); - - neg.setMax("10"); + + neg.setMax("10"); Assert.assertEquals(neg.getMax(), "10"); - - neg.setMax("100"); - Assert.assertEquals(neg.getMax(), "100"); + + neg.setMax("100"); + Assert.assertEquals(neg.getMax(), "100"); } - - /** - * check to make sure max boundary conditions are being added to states list - */ - @Test - public void maxTest2() { - Map variableDomains = new HashMap<>(); - NegativeBoundHiveTinyInt.NegativeBoundHiveTinyIntTag neg = new NegativeBoundHiveTinyInt.NegativeBoundHiveTinyIntTag(); - NegativeBoundHiveTinyInt test = new NegativeBoundHiveTinyInt(); - List> listOfMaps = new LinkedList<>(); + + /** + * check to make sure max boundary conditions are being added to states list + */ + @Test + public void maxTest2() { + Map variableDomains = new HashMap<>(); + NegativeBoundHiveTinyInt.NegativeBoundHiveTinyIntTag neg = new NegativeBoundHiveTinyInt.NegativeBoundHiveTinyIntTag(); + NegativeBoundHiveTinyInt test = new NegativeBoundHiveTinyInt(); + List> listOfMaps = new LinkedList<>(); ArrayList al = new ArrayList<>(); - - variableDomains.put("test", ""); + + variableDomains.put("test", ""); listOfMaps.add(variableDomains); - - neg.setMin("10"); - neg.setMax("100"); - neg.setNullable("true"); + + neg.setMin("10"); + neg.setMax("100"); + neg.setNullable("true"); neg.setName("test"); - - List> list = test.pipelinePossibleStates(neg, listOfMaps); - Assert.assertTrue(list.get(0).get("test").equals("9")); - Assert.assertTrue(list.get(1).get("test").equals("101")); + + List> list = test.pipelinePossibleStates(neg, listOfMaps); + Assert.assertTrue(list.get(0).get("test").equals("9")); + Assert.assertTrue(list.get(1).get("test").equals("101")); } - - /** - * check to make sure default values are populated for max outside of range - */ - @Test - public void maxTest3() { - Map variableDomains = new HashMap<>(); - NegativeBoundHiveTinyInt.NegativeBoundHiveTinyIntTag neg = new NegativeBoundHiveTinyInt.NegativeBoundHiveTinyIntTag(); - NegativeBoundHiveTinyInt test = new NegativeBoundHiveTinyInt(); - List> listOfMaps = new LinkedList<>(); + + /** + * check to make sure default values are populated for max outside of range + */ + @Test + public void maxTest3() { + Map variableDomains = new HashMap<>(); + NegativeBoundHiveTinyInt.NegativeBoundHiveTinyIntTag neg = new NegativeBoundHiveTinyInt.NegativeBoundHiveTinyIntTag(); + NegativeBoundHiveTinyInt test = new NegativeBoundHiveTinyInt(); + List> listOfMaps = new LinkedList<>(); ArrayList al = new ArrayList<>(); - - variableDomains.put("test", ""); + + variableDomains.put("test", ""); listOfMaps.add(variableDomains); - - neg.setMin("0"); - neg.setMax("12342"); - neg.setNullable("true"); + + neg.setMin("0"); + neg.setMax("12342"); + neg.setNullable("true"); neg.setName("test"); - + List> list = test.pipelinePossibleStates(neg, listOfMaps); - - Assert.assertTrue(list.get(0).get("test").equals("-1")); - Assert.assertTrue(list.get(1).get("test").equals("128")); - } + + Assert.assertTrue(list.get(0).get("test").equals("-1")); + Assert.assertTrue(list.get(1).get("test").equals("128")); + } } diff --git a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveVarcharTest.java b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveVarcharTest.java index 4798a244..d0537920 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveVarcharTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/NegativeBoundHiveVarcharTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 DataGenerator Contributors + * Copyright DataGenerator Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveBigIntTest.java b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveBigIntTest.java index 5902c636..d03408a2 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveBigIntTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveBigIntTest.java @@ -1,228 +1,228 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary; - -import org.junit.Assert; -import org.junit.Test; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; + +import org.junit.Assert; +import org.junit.Test; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; import java.util.Map; - -/** - * Nathaniel Lee - * Date: 10/27/15 - */ + +/** + * Nathaniel Lee + * Date: 10/27/15 + */ public class PositiveBoundHiveBigIntTest { - - /** - * test for setName() and getName() - */ - @Test - public void nameTest() { + + /** + * test for setName() and getName() + */ + @Test + public void nameTest() { PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag pos = new PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag(); - - pos.setName("hive_big_test"); + + pos.setName("hive_big_test"); Assert.assertEquals(pos.getName(), "hive_big_test"); - - pos.setName("hive_big_test2"); - Assert.assertEquals(pos.getName(), "hive_big_test2"); + + pos.setName("hive_big_test2"); + Assert.assertEquals(pos.getName(), "hive_big_test2"); } - - /** - * test for setNullable() and getNullable() - */ - @Test - public void nullTest() { + + /** + * test for setNullable() and getNullable() + */ + @Test + public void nullTest() { PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag pos = new PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag(); - - pos.setNullable("true"); + + pos.setNullable("true"); Assert.assertEquals(pos.getNullable(), "true"); - - pos.setNullable("false"); - Assert.assertEquals(pos.getNullable(), "false"); + + pos.setNullable("false"); + Assert.assertEquals(pos.getNullable(), "false"); } - - /** - * check to make sure null is only added when nullable is set to true - */ - @Test - public void nullTest2() { - Map variableDomains = new HashMap<>(); - PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag pos = new PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag(); - PositiveBoundHiveBigInt test = new PositiveBoundHiveBigInt(); + + /** + * check to make sure null is only added when nullable is set to true + */ + @Test + public void nullTest2() { + Map variableDomains = new HashMap<>(); + PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag pos = new PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag(); + PositiveBoundHiveBigInt test = new PositiveBoundHiveBigInt(); List> listOfMaps = new LinkedList<>(); - - variableDomains.put("test", ""); + + variableDomains.put("test", ""); listOfMaps.add(variableDomains); - - pos.setMin("10"); - pos.setMax("100"); + + pos.setMin("10"); + pos.setMax("100"); pos.setName("test"); - - pos.setNullable("true"); - List> list = test.pipelinePossibleStates(pos, listOfMaps); + + pos.setNullable("true"); + List> list = test.pipelinePossibleStates(pos, listOfMaps); Assert.assertEquals(list.size(), 6); - - pos.setNullable("false"); - list = test.pipelinePossibleStates(pos, listOfMaps); - Assert.assertEquals(list.size(), 5); + + pos.setNullable("false"); + list = test.pipelinePossibleStates(pos, listOfMaps); + Assert.assertEquals(list.size(), 5); } - - /** - * test for setMin() and getMin() - */ - @Test - public void minTest() { + + /** + * test for setMin() and getMin() + */ + @Test + public void minTest() { PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag pos = new PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag(); - - pos.setMin("10"); + + pos.setMin("10"); Assert.assertEquals(pos.getMin(), "10"); - - pos.setMin("100"); - Assert.assertEquals(pos.getMin(), "100"); + + pos.setMin("100"); + Assert.assertEquals(pos.getMin(), "100"); } - - /** - * check to make sure min boundary conditions are being added to states list - */ - @Test - public void minTest2() { - Map variableDomains = new HashMap<>(); - PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag pos = new PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag(); - PositiveBoundHiveBigInt test = new PositiveBoundHiveBigInt(); - List> listOfMaps = new LinkedList<>(); + + /** + * check to make sure min boundary conditions are being added to states list + */ + @Test + public void minTest2() { + Map variableDomains = new HashMap<>(); + PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag pos = new PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag(); + PositiveBoundHiveBigInt test = new PositiveBoundHiveBigInt(); + List> listOfMaps = new LinkedList<>(); ArrayList al = new ArrayList<>(); - - variableDomains.put("test", ""); + + variableDomains.put("test", ""); listOfMaps.add(variableDomains); - - pos.setMin("10"); - pos.setMax("100"); - pos.setNullable("true"); + + pos.setMin("10"); + pos.setMax("100"); + pos.setNullable("true"); pos.setName("test"); - - List> list = test.pipelinePossibleStates(pos, listOfMaps); - for (Map map : list) { - for (String key : map.keySet()) { - al.add(map.get(key)); - } + + List> list = test.pipelinePossibleStates(pos, listOfMaps); + for (Map map : list) { + for (String key : map.keySet()) { + al.add(map.get(key)); + } } - - Assert.assertTrue(al.contains("10")); - Assert.assertTrue(al.contains("11")); + + Assert.assertTrue(al.contains("10")); + Assert.assertTrue(al.contains("11")); } - - /** - * check to make sure min boundary conditions are being added to states list - */ - @Test - public void minTest3() { - Map variableDomains = new HashMap<>(); - PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag pos = new PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag(); - PositiveBoundHiveBigInt test = new PositiveBoundHiveBigInt(); - List> listOfMaps = new LinkedList<>(); + + /** + * check to make sure min boundary conditions are being added to states list + */ + @Test + public void minTest3() { + Map variableDomains = new HashMap<>(); + PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag pos = new PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag(); + PositiveBoundHiveBigInt test = new PositiveBoundHiveBigInt(); + List> listOfMaps = new LinkedList<>(); ArrayList al = new ArrayList<>(); - - variableDomains.put("test", ""); + + variableDomains.put("test", ""); listOfMaps.add(variableDomains); - - pos.setMin("1232132132234234234234234231321321213"); - pos.setMax("-9994234234234234234234234223423"); - pos.setNullable("true"); + + pos.setMin("1232132132234234234234234231321321213"); + pos.setMax("-9994234234234234234234234223423"); + pos.setNullable("true"); pos.setName("test"); - - List> list = test.pipelinePossibleStates(pos, listOfMaps); - for (Map map : list) { - for (String key : map.keySet()) { - al.add(map.get(key)); - } + + List> list = test.pipelinePossibleStates(pos, listOfMaps); + for (Map map : list) { + for (String key : map.keySet()) { + al.add(map.get(key)); + } } - - Assert.assertTrue(al.contains(Long.toString(Long.MIN_VALUE))); - Assert.assertTrue(al.contains(Long.toString(Long.MIN_VALUE + 1))); + + Assert.assertTrue(al.contains(Long.toString(Long.MIN_VALUE))); + Assert.assertTrue(al.contains(Long.toString(Long.MIN_VALUE + 1))); } - - /** - * test for setMax() and getMax() - */ - @Test - public void maxTest() { + + /** + * test for setMax() and getMax() + */ + @Test + public void maxTest() { PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag pos = new PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag(); - - pos.setMax("10"); + + pos.setMax("10"); Assert.assertEquals(pos.getMax(), "10"); - - pos.setMax("100"); - Assert.assertEquals(pos.getMax(), "100"); + + pos.setMax("100"); + Assert.assertEquals(pos.getMax(), "100"); } - - /** - * check to make sure max boundary conditions are being added to states list - */ - @Test - public void maxTest2() { - Map variableDomains = new HashMap<>(); - PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag pos = new PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag(); - PositiveBoundHiveBigInt test = new PositiveBoundHiveBigInt(); - List> listOfMaps = new LinkedList<>(); + + /** + * check to make sure max boundary conditions are being added to states list + */ + @Test + public void maxTest2() { + Map variableDomains = new HashMap<>(); + PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag pos = new PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag(); + PositiveBoundHiveBigInt test = new PositiveBoundHiveBigInt(); + List> listOfMaps = new LinkedList<>(); ArrayList al = new ArrayList<>(); - - variableDomains.put("test", ""); + + variableDomains.put("test", ""); listOfMaps.add(variableDomains); - - pos.setMin("10"); - pos.setMax("100"); - pos.setNullable("true"); + + pos.setMin("10"); + pos.setMax("100"); + pos.setNullable("true"); pos.setName("test"); - - List> list = test.pipelinePossibleStates(pos, listOfMaps); - for (Map map : list) { - for (String key : map.keySet()) { - al.add(map.get(key)); - } - } - Assert.assertTrue(al.contains("100")); - Assert.assertTrue(al.contains("99")); + + List> list = test.pipelinePossibleStates(pos, listOfMaps); + for (Map map : list) { + for (String key : map.keySet()) { + al.add(map.get(key)); + } + } + Assert.assertTrue(al.contains("100")); + Assert.assertTrue(al.contains("99")); } - - /** - * check to make sure zero is added to states when crossing the threshold - */ - @Test - public void zeroTest() { - Map variableDomains = new HashMap<>(); - PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag pos = new PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag(); - PositiveBoundHiveBigInt test = new PositiveBoundHiveBigInt(); + + /** + * check to make sure zero is added to states when crossing the threshold + */ + @Test + public void zeroTest() { + Map variableDomains = new HashMap<>(); + PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag pos = new PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag(); + PositiveBoundHiveBigInt test = new PositiveBoundHiveBigInt(); List> listOfMaps = new LinkedList<>(); - - variableDomains.put("test", ""); + + variableDomains.put("test", ""); listOfMaps.add(variableDomains); - - pos.setMin("-1"); - pos.setMax("100"); + + pos.setMin("-1"); + pos.setMax("100"); pos.setName("test"); - - pos.setNullable("true"); - List> list = test.pipelinePossibleStates(pos, listOfMaps); + + pos.setNullable("true"); + List> list = test.pipelinePossibleStates(pos, listOfMaps); Assert.assertEquals(list.size(), 7); - - pos.setNullable("false"); - list = test.pipelinePossibleStates(pos, listOfMaps); - Assert.assertEquals(list.size(), 6); - } + + pos.setNullable("false"); + list = test.pipelinePossibleStates(pos, listOfMaps); + Assert.assertEquals(list.size(), 6); + } } diff --git a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveDateTest.java b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveDateTest.java index b05502a4..bd4c6c6d 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveDateTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveDateTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 DataGenerator Contributors + * Copyright DataGenerator Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveDecimalTest.java b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveDecimalTest.java index 1cffeb3b..6c81bd04 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveDecimalTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveDecimalTest.java @@ -1,238 +1,238 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary; - -import org.junit.Assert; -import org.junit.Test; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; + +import org.junit.Assert; +import org.junit.Test; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; import java.util.Map; - -/** - * Nathaniel Lee - * Date: 10/27/15 - */ + +/** + * Nathaniel Lee + * Date: 10/27/15 + */ public class PositiveBoundHiveDecimalTest { - - /** - * test for setName() and getName() - */ - @Test - public void nameTest() { + + /** + * test for setName() and getName() + */ + @Test + public void nameTest() { PositiveBoundHiveDecimal.PositiveBoundHiveDecimalTag pos = new PositiveBoundHiveDecimal.PositiveBoundHiveDecimalTag(); - - pos.setName("decimal_test"); + + pos.setName("decimal_test"); Assert.assertEquals(pos.getName(), "decimal_test"); - - pos.setName("decimal_test2"); - Assert.assertEquals(pos.getName(), "decimal_test2"); + + pos.setName("decimal_test2"); + Assert.assertEquals(pos.getName(), "decimal_test2"); } - - /** - * test for setLength() and getLength() - */ - @Test - public void lengthTest() { + + /** + * test for setLength() and getLength() + */ + @Test + public void lengthTest() { PositiveBoundHiveDecimal.PositiveBoundHiveDecimalTag pos = new PositiveBoundHiveDecimal.PositiveBoundHiveDecimalTag(); - - pos.setLength("18,8"); + + pos.setLength("18,8"); Assert.assertEquals(pos.getLength(), "18,8"); - - pos.setLength("38,10"); - Assert.assertEquals(pos.getLength(), "38,10"); + + pos.setLength("38,10"); + Assert.assertEquals(pos.getLength(), "38,10"); } - - /** - * test for setNullable() and getNullable() - */ - @Test - public void nullTest() { + + /** + * test for setNullable() and getNullable() + */ + @Test + public void nullTest() { PositiveBoundHiveDecimal.PositiveBoundHiveDecimalTag pos = new PositiveBoundHiveDecimal.PositiveBoundHiveDecimalTag(); - - pos.setNullable("true"); + + pos.setNullable("true"); Assert.assertEquals(pos.getNullable(), "true"); - - pos.setNullable("false"); - Assert.assertEquals(pos.getNullable(), "false"); + + pos.setNullable("false"); + Assert.assertEquals(pos.getNullable(), "false"); } - - /** - * check min and max parameters - */ - @Test - public void minMaxTest() { - Map variableDomains = new HashMap<>(); - List> listOfMaps = new LinkedList<>(); + + /** + * check min and max parameters + */ + @Test + public void minMaxTest() { + Map variableDomains = new HashMap<>(); + List> listOfMaps = new LinkedList<>(); listOfMaps.add(variableDomains); - - PositiveBoundHiveDecimal minMaxTest = new PositiveBoundHiveDecimal(); + + PositiveBoundHiveDecimal minMaxTest = new PositiveBoundHiveDecimal(); PositiveBoundHiveDecimal.PositiveBoundHiveDecimalTag tag = new PositiveBoundHiveDecimal.PositiveBoundHiveDecimalTag(); - - tag.setName("Name"); - tag.setMin("10"); + + tag.setName("Name"); + tag.setMin("10"); tag.setMax("20"); - - Assert.assertEquals(tag.getMin(), "10"); + + Assert.assertEquals(tag.getMin(), "10"); Assert.assertEquals(tag.getMax(), "20"); - - tag.setMin("100"); + + tag.setMin("100"); tag.setMax("200"); - - Assert.assertEquals(tag.getMin(), "100"); + + Assert.assertEquals(tag.getMin(), "100"); Assert.assertEquals(tag.getMax(), "200"); - + List> newList = minMaxTest.pipelinePossibleStates(tag, listOfMaps); - - Assert.assertEquals(newList.get(0).get("Name"), "100"); - Assert.assertEquals(newList.get(1).get("Name"), "200"); + + Assert.assertEquals(newList.get(0).get("Name"), "100"); + Assert.assertEquals(newList.get(1).get("Name"), "200"); } - - /** - * check minLen parameter - */ - @Test - public void minLenTest() { - Map variableDomains = new HashMap<>(); - List> listOfMaps = new LinkedList<>(); + + /** + * check minLen parameter + */ + @Test + public void minLenTest() { + Map variableDomains = new HashMap<>(); + List> listOfMaps = new LinkedList<>(); listOfMaps.add(variableDomains); - - PositiveBoundHiveDecimal minLenTest = new PositiveBoundHiveDecimal(); + + PositiveBoundHiveDecimal minLenTest = new PositiveBoundHiveDecimal(); PositiveBoundHiveDecimal.PositiveBoundHiveDecimalTag tag = new PositiveBoundHiveDecimal.PositiveBoundHiveDecimalTag(); - - tag.setName("name"); - tag.setMinLen("10"); + + tag.setName("name"); + tag.setMinLen("10"); Assert.assertEquals(tag.getMinLen(), "10"); - - tag.setMinLen("100"); + + tag.setMinLen("100"); Assert.assertEquals(tag.getMinLen(), "100"); - + List> newList = minLenTest.pipelinePossibleStates(tag, listOfMaps); - - Assert.assertEquals(newList.get(1).get("name").length(), 11); - Assert.assertEquals(newList.get(2).get("name").length(), 10); + + Assert.assertEquals(newList.get(1).get("name").length(), 11); + Assert.assertEquals(newList.get(2).get("name").length(), 10); } - - /** - * maxLen test - */ - @Test - public void maxLenTest() { - Map variableDomains = new HashMap<>(); - List> listOfMaps = new LinkedList<>(); + + /** + * maxLen test + */ + @Test + public void maxLenTest() { + Map variableDomains = new HashMap<>(); + List> listOfMaps = new LinkedList<>(); listOfMaps.add(variableDomains); - - PositiveBoundHiveDecimal maxLenTest = new PositiveBoundHiveDecimal(); + + PositiveBoundHiveDecimal maxLenTest = new PositiveBoundHiveDecimal(); PositiveBoundHiveDecimal.PositiveBoundHiveDecimalTag tag = new PositiveBoundHiveDecimal.PositiveBoundHiveDecimalTag(); - - tag.setName("name"); - tag.setMinLen("100"); + + tag.setName("name"); + tag.setMinLen("100"); Assert.assertEquals(tag.getMinLen(), "100"); - + List> newList = maxLenTest.pipelinePossibleStates(tag, listOfMaps); - - Assert.assertEquals(newList.get(1).get("name").length(), 11); - Assert.assertEquals(newList.get(2).get("name").length(), 10); + + Assert.assertEquals(newList.get(1).get("name").length(), 11); + Assert.assertEquals(newList.get(2).get("name").length(), 10); } - - /** - * testing minLen and maxLen - */ - @Test - public void minLenAndmaxLenTest() { - Map variableDomains = new HashMap<>(); - List> listOfMaps = new LinkedList<>(); + + /** + * testing minLen and maxLen + */ + @Test + public void minLenAndmaxLenTest() { + Map variableDomains = new HashMap<>(); + List> listOfMaps = new LinkedList<>(); listOfMaps.add(variableDomains); - - PositiveBoundHiveDecimal maxLenTest = new PositiveBoundHiveDecimal(); + + PositiveBoundHiveDecimal maxLenTest = new PositiveBoundHiveDecimal(); PositiveBoundHiveDecimal.PositiveBoundHiveDecimalTag tag = new PositiveBoundHiveDecimal.PositiveBoundHiveDecimalTag(); - - tag.setName("name"); - tag.setMinLen("5"); + + tag.setName("name"); + tag.setMinLen("5"); tag.setMaxLen("9"); - + List> newList = maxLenTest.pipelinePossibleStates(tag, listOfMaps); - - Assert.assertEquals(newList.get(0).get("name").length(), 5); - Assert.assertEquals(newList.get(1).get("name").length(), 9); + + Assert.assertEquals(newList.get(0).get("name").length(), 5); + Assert.assertEquals(newList.get(1).get("name").length(), 9); } - - /** - * no parameters set - */ - @Test - public void defaultBehaviorTest() { - Map variableDomains = new HashMap<>(); - List> listOfMaps = new LinkedList<>(); + + /** + * no parameters set + */ + @Test + public void defaultBehaviorTest() { + Map variableDomains = new HashMap<>(); + List> listOfMaps = new LinkedList<>(); listOfMaps.add(variableDomains); - - PositiveBoundHiveDecimal setTest = new PositiveBoundHiveDecimal(); - PositiveBoundHiveDecimal.PositiveBoundHiveDecimalTag tag = new PositiveBoundHiveDecimal.PositiveBoundHiveDecimalTag(); + + PositiveBoundHiveDecimal setTest = new PositiveBoundHiveDecimal(); + PositiveBoundHiveDecimal.PositiveBoundHiveDecimalTag tag = new PositiveBoundHiveDecimal.PositiveBoundHiveDecimalTag(); tag.setName("Name"); - + List> newList = setTest.pipelinePossibleStates(tag, listOfMaps); - - Assert.assertEquals(newList.get(1).get("Name").length(), 11); - Assert.assertEquals(newList.get(2).get("Name").length(), 10); + + Assert.assertEquals(newList.get(1).get("Name").length(), 11); + Assert.assertEquals(newList.get(2).get("Name").length(), 10); } - - /** - * test with minLen and max (not maxLen) set - */ - @Test - public void minLenAndMaxTest() { - Map variableDomains = new HashMap<>(); - List> listOfMaps = new LinkedList<>(); + + /** + * test with minLen and max (not maxLen) set + */ + @Test + public void minLenAndMaxTest() { + Map variableDomains = new HashMap<>(); + List> listOfMaps = new LinkedList<>(); listOfMaps.add(variableDomains); - - PositiveBoundHiveDecimal defaultBehavior = new PositiveBoundHiveDecimal(); + + PositiveBoundHiveDecimal defaultBehavior = new PositiveBoundHiveDecimal(); PositiveBoundHiveDecimal.PositiveBoundHiveDecimalTag tag = new PositiveBoundHiveDecimal.PositiveBoundHiveDecimalTag(); - - tag.setName("name"); - tag.setMinLen("10"); + + tag.setName("name"); + tag.setMinLen("10"); tag.setMax("1000"); - + List> newList = defaultBehavior.pipelinePossibleStates(tag, listOfMaps); - - Assert.assertEquals(newList.get(0).get("name"), "0"); - Assert.assertEquals(newList.get(1).get("name"), "-9999999999"); - Assert.assertEquals(newList.get(2).get("name"), "1000"); - Assert.assertEquals(newList.get(3).get("name"), "-4999999499"); - Assert.assertEquals(newList.get(4).get("name"), ""); + + Assert.assertEquals(newList.get(0).get("name"), "0"); + Assert.assertEquals(newList.get(1).get("name"), "-9999999999"); + Assert.assertEquals(newList.get(2).get("name"), "1000"); + Assert.assertEquals(newList.get(3).get("name"), "-4999999499"); + Assert.assertEquals(newList.get(4).get("name"), ""); } - - /** - * test with min (not minLen) and maxLen set - */ - @Test - public void minAndMaxLenTest() { - Map variableDomains = new HashMap<>(); - List> listOfMaps = new LinkedList<>(); + + /** + * test with min (not minLen) and maxLen set + */ + @Test + public void minAndMaxLenTest() { + Map variableDomains = new HashMap<>(); + List> listOfMaps = new LinkedList<>(); listOfMaps.add(variableDomains); - - PositiveBoundHiveDecimal defaultBehavior = new PositiveBoundHiveDecimal(); + + PositiveBoundHiveDecimal defaultBehavior = new PositiveBoundHiveDecimal(); PositiveBoundHiveDecimal.PositiveBoundHiveDecimalTag tag = new PositiveBoundHiveDecimal.PositiveBoundHiveDecimalTag(); - - tag.setName("name"); - tag.setMin("10"); + + tag.setName("name"); + tag.setMin("10"); tag.setMaxLen("12"); - + List> newList = defaultBehavior.pipelinePossibleStates(tag, listOfMaps); - - Assert.assertEquals(newList.get(0).get("name"), "10"); - Assert.assertEquals(newList.get(1).get("name").length(), 10); - } + + Assert.assertEquals(newList.get(0).get("name"), "10"); + Assert.assertEquals(newList.get(1).get("name").length(), 10); + } } diff --git a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveIntTest.java b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveIntTest.java index eb26b0ba..1eca1ef7 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveIntTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveIntTest.java @@ -1,138 +1,138 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary; - -import org.junit.Assert; -import org.junit.Test; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; + +import org.junit.Assert; +import org.junit.Test; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; import java.util.Map; - -/** - * Nathaniel Lee - * Date: 10/27/15 - */ + +/** + * Nathaniel Lee + * Date: 10/27/15 + */ public class PositiveBoundHiveIntTest { - - /** - * test for setMax() and getMax() - */ - @Test - public void maxTest() { + + /** + * test for setMax() and getMax() + */ + @Test + public void maxTest() { PositiveBoundHiveInt.PositiveBoundHiveIntTag pos = new PositiveBoundHiveInt.PositiveBoundHiveIntTag(); - - pos.setMax("10"); + + pos.setMax("10"); Assert.assertEquals(pos.getMax(), "10"); - - pos.setMax("100"); - Assert.assertEquals(pos.getMax(), "100"); + + pos.setMax("100"); + Assert.assertEquals(pos.getMax(), "100"); } - - /** - * test for setMin() and getMin() - */ - @Test - public void minTest() { + + /** + * test for setMin() and getMin() + */ + @Test + public void minTest() { PositiveBoundHiveInt.PositiveBoundHiveIntTag pos = new PositiveBoundHiveInt.PositiveBoundHiveIntTag(); - - pos.setMin("10"); + + pos.setMin("10"); Assert.assertEquals(pos.getMin(), "10"); - - pos.setMin("100"); - Assert.assertEquals(pos.getMin(), "100"); + + pos.setMin("100"); + Assert.assertEquals(pos.getMin(), "100"); } - - /** - * test for setName() and getName() - */ - @Test - public void nameTest() { + + /** + * test for setName() and getName() + */ + @Test + public void nameTest() { PositiveBoundHiveInt.PositiveBoundHiveIntTag pos = new PositiveBoundHiveInt.PositiveBoundHiveIntTag(); - - pos.setName("hive_int_test"); + + pos.setName("hive_int_test"); Assert.assertEquals(pos.getName(), "hive_int_test"); - - pos.setName("hive_int_test2"); - Assert.assertEquals(pos.getName(), "hive_int_test2"); + + pos.setName("hive_int_test2"); + Assert.assertEquals(pos.getName(), "hive_int_test2"); } - - /** - * test for setNullable() and getNullable() - */ - @Test - public void nullTest() { + + /** + * test for setNullable() and getNullable() + */ + @Test + public void nullTest() { PositiveBoundHiveInt.PositiveBoundHiveIntTag pos = new PositiveBoundHiveInt.PositiveBoundHiveIntTag(); - - pos.setNullable("true"); + + pos.setNullable("true"); Assert.assertEquals(pos.getNullable(), "true"); - - pos.setNullable("false"); - Assert.assertEquals(pos.getNullable(), "false"); + + pos.setNullable("false"); + Assert.assertEquals(pos.getNullable(), "false"); } - - /** - * check to make sure null is only added when nullable=true - */ - @Test - public void nullTest2() { - Map variableDomains = new HashMap<>(); - PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag pos = new PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag(); - PositiveBoundHiveBigInt test = new PositiveBoundHiveBigInt(); + + /** + * check to make sure null is only added when nullable=true + */ + @Test + public void nullTest2() { + Map variableDomains = new HashMap<>(); + PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag pos = new PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag(); + PositiveBoundHiveBigInt test = new PositiveBoundHiveBigInt(); List> listOfMaps = new LinkedList<>(); - - variableDomains.put("test", ""); + + variableDomains.put("test", ""); listOfMaps.add(variableDomains); - - pos.setMin("20"); - pos.setMax("100"); + + pos.setMin("20"); + pos.setMax("100"); pos.setName("test"); - - pos.setNullable("true"); - List> list = test.pipelinePossibleStates(pos, listOfMaps); + + pos.setNullable("true"); + List> list = test.pipelinePossibleStates(pos, listOfMaps); Assert.assertEquals(list.size(), 6); - - pos.setNullable("false"); - list = test.pipelinePossibleStates(pos, listOfMaps); - Assert.assertEquals(list.size(), 5); + + pos.setNullable("false"); + list = test.pipelinePossibleStates(pos, listOfMaps); + Assert.assertEquals(list.size(), 5); } - - /** - * check to make sure zero is added to states when crossing the threshold - */ - @Test - public void zeroTest() { - Map variableDomains = new HashMap<>(); - PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag pos = new PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag(); - PositiveBoundHiveBigInt test = new PositiveBoundHiveBigInt(); + + /** + * check to make sure zero is added to states when crossing the threshold + */ + @Test + public void zeroTest() { + Map variableDomains = new HashMap<>(); + PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag pos = new PositiveBoundHiveBigInt.PositiveBoundHiveBigIntTag(); + PositiveBoundHiveBigInt test = new PositiveBoundHiveBigInt(); List> listOfMaps = new LinkedList<>(); - - variableDomains.put("test", ""); + + variableDomains.put("test", ""); listOfMaps.add(variableDomains); - - pos.setMin("-1"); - pos.setMax("100"); + + pos.setMin("-1"); + pos.setMax("100"); pos.setName("test"); - - pos.setNullable("true"); - List> list = test.pipelinePossibleStates(pos, listOfMaps); + + pos.setNullable("true"); + List> list = test.pipelinePossibleStates(pos, listOfMaps); Assert.assertEquals(list.size(), 7); - - pos.setNullable("false"); - list = test.pipelinePossibleStates(pos, listOfMaps); - Assert.assertEquals(list.size(), 6); - } + + pos.setNullable("false"); + list = test.pipelinePossibleStates(pos, listOfMaps); + Assert.assertEquals(list.size(), 6); + } } diff --git a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveSmallIntTest.java b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveSmallIntTest.java index d12292c1..c73b5b24 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveSmallIntTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveSmallIntTest.java @@ -1,137 +1,137 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary; - -import org.junit.Assert; + +import org.junit.Assert; import org.junit.Test; - -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; + +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; import java.util.Map; - -/** - * Nathaniel Lee - * Date: 10/27/15 - */ + +/** + * Nathaniel Lee + * Date: 10/27/15 + */ public class PositiveBoundHiveSmallIntTest { - - /** - * test for setName() and getName() - */ - @Test - public void nameTest() { + + /** + * test for setName() and getName() + */ + @Test + public void nameTest() { PositiveBoundHiveSmallInt.PositiveBoundHiveSmallIntTag pos = new PositiveBoundHiveSmallInt.PositiveBoundHiveSmallIntTag(); - - pos.setName("hive_small_test"); + + pos.setName("hive_small_test"); Assert.assertEquals(pos.getName(), "hive_small_test"); - - pos.setName("hive_small_test2"); - Assert.assertEquals(pos.getName(), "hive_small_test2"); + + pos.setName("hive_small_test2"); + Assert.assertEquals(pos.getName(), "hive_small_test2"); } - - /** - * test for setNullable() and getNullable() - */ - @Test - public void nullTest() { + + /** + * test for setNullable() and getNullable() + */ + @Test + public void nullTest() { PositiveBoundHiveSmallInt.PositiveBoundHiveSmallIntTag pos = new PositiveBoundHiveSmallInt.PositiveBoundHiveSmallIntTag(); - - pos.setNullable("true"); + + pos.setNullable("true"); Assert.assertEquals(pos.getNullable(), "true"); - - pos.setNullable("false"); - Assert.assertEquals(pos.getNullable(), "false"); + + pos.setNullable("false"); + Assert.assertEquals(pos.getNullable(), "false"); } - - /** - * test for setMin() and getMin() - */ - @Test - public void minTest() { + + /** + * test for setMin() and getMin() + */ + @Test + public void minTest() { PositiveBoundHiveSmallInt.PositiveBoundHiveSmallIntTag pos = new PositiveBoundHiveSmallInt.PositiveBoundHiveSmallIntTag(); - - pos.setMin("10"); + + pos.setMin("10"); Assert.assertEquals(pos.getMin(), "10"); - - pos.setMin("100"); - Assert.assertEquals(pos.getMin(), "100"); + + pos.setMin("100"); + Assert.assertEquals(pos.getMin(), "100"); } - - /** - * check to make sure min boundary conditions are being added to states list - */ - @Test - public void minTest2() { - Map variableDomains = new HashMap<>(); - PositiveBoundHiveSmallInt.PositiveBoundHiveSmallIntTag pos = new PositiveBoundHiveSmallInt.PositiveBoundHiveSmallIntTag(); - PositiveBoundHiveSmallInt test = new PositiveBoundHiveSmallInt(); - List> listOfMaps = new LinkedList<>(); + + /** + * check to make sure min boundary conditions are being added to states list + */ + @Test + public void minTest2() { + Map variableDomains = new HashMap<>(); + PositiveBoundHiveSmallInt.PositiveBoundHiveSmallIntTag pos = new PositiveBoundHiveSmallInt.PositiveBoundHiveSmallIntTag(); + PositiveBoundHiveSmallInt test = new PositiveBoundHiveSmallInt(); + List> listOfMaps = new LinkedList<>(); listOfMaps.add(variableDomains); - - pos.setMin("0"); - pos.setMax("100"); - pos.setNullable("true"); + + pos.setMin("0"); + pos.setMax("100"); + pos.setNullable("true"); pos.setName("test"); - + List> list = test.pipelinePossibleStates(pos, listOfMaps); - - Assert.assertEquals(list.get(0).get("test"), "0"); - Assert.assertEquals(list.get(1).get("test"), "1"); - Assert.assertEquals(list.get(2).get("test"), "50"); - Assert.assertEquals(list.get(3).get("test"), "99"); - Assert.assertEquals(list.get(4).get("test"), "100"); + + Assert.assertEquals(list.get(0).get("test"), "0"); + Assert.assertEquals(list.get(1).get("test"), "1"); + Assert.assertEquals(list.get(2).get("test"), "50"); + Assert.assertEquals(list.get(3).get("test"), "99"); + Assert.assertEquals(list.get(4).get("test"), "100"); } - - /** - * check to make sure min boundary conditions are being added to states list - */ - @Test - public void minTest3() { - Map variableDomains = new HashMap<>(); - PositiveBoundHiveSmallInt.PositiveBoundHiveSmallIntTag pos = new PositiveBoundHiveSmallInt.PositiveBoundHiveSmallIntTag(); - PositiveBoundHiveSmallInt test = new PositiveBoundHiveSmallInt(); - List> listOfMaps = new LinkedList<>(); + + /** + * check to make sure min boundary conditions are being added to states list + */ + @Test + public void minTest3() { + Map variableDomains = new HashMap<>(); + PositiveBoundHiveSmallInt.PositiveBoundHiveSmallIntTag pos = new PositiveBoundHiveSmallInt.PositiveBoundHiveSmallIntTag(); + PositiveBoundHiveSmallInt test = new PositiveBoundHiveSmallInt(); + List> listOfMaps = new LinkedList<>(); listOfMaps.add(variableDomains); - - pos.setMin("-1300"); - pos.setMax("100"); - pos.setNullable("true"); + + pos.setMin("-1300"); + pos.setMax("100"); + pos.setNullable("true"); pos.setName("test"); - + List> list = test.pipelinePossibleStates(pos, listOfMaps); - - Assert.assertEquals(list.get(0).get("test"), "-1300"); - Assert.assertEquals(list.get(1).get("test"), "-1299"); - Assert.assertEquals(list.get(2).get("test"), "700"); - Assert.assertEquals(list.get(3).get("test"), "99"); - Assert.assertEquals(list.get(4).get("test"), "100"); + + Assert.assertEquals(list.get(0).get("test"), "-1300"); + Assert.assertEquals(list.get(1).get("test"), "-1299"); + Assert.assertEquals(list.get(2).get("test"), "700"); + Assert.assertEquals(list.get(3).get("test"), "99"); + Assert.assertEquals(list.get(4).get("test"), "100"); } - - /** - * test for setMax() and getMax() - */ - @Test - public void maxTest() { + + /** + * test for setMax() and getMax() + */ + @Test + public void maxTest() { PositiveBoundHiveSmallInt.PositiveBoundHiveSmallIntTag pos = new PositiveBoundHiveSmallInt.PositiveBoundHiveSmallIntTag(); - - pos.setMax("10"); + + pos.setMax("10"); Assert.assertEquals(pos.getMax(), "10"); - - pos.setMax("100"); - Assert.assertEquals(pos.getMax(), "100"); - } + + pos.setMax("100"); + Assert.assertEquals(pos.getMax(), "100"); + } } diff --git a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveTinyIntTest.java b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveTinyIntTest.java index 2f70184e..dae8de64 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveTinyIntTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveTinyIntTest.java @@ -1,147 +1,147 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.engine.scxml.tags.boundary; - -import org.junit.Assert; -import org.junit.Test; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; + +import org.junit.Assert; +import org.junit.Test; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; import java.util.Map; - -/** - * Nathaniel Lee - * Date: 10/27/15 - */ + +/** + * Nathaniel Lee + * Date: 10/27/15 + */ public class PositiveBoundHiveTinyIntTest { - - /** - * test for setName() and getName() - */ - @Test - public void nameTest() { + + /** + * test for setName() and getName() + */ + @Test + public void nameTest() { PositiveBoundHiveTinyInt.PositiveBoundHiveTinyIntTag pos = new PositiveBoundHiveTinyInt.PositiveBoundHiveTinyIntTag(); - - pos.setName("hive_int_test"); + + pos.setName("hive_int_test"); Assert.assertEquals(pos.getName(), "hive_int_test"); - - pos.setName("hive_int_test2"); - Assert.assertEquals(pos.getName(), "hive_int_test2"); + + pos.setName("hive_int_test2"); + Assert.assertEquals(pos.getName(), "hive_int_test2"); } - - /** - * test for setNullable() and getNullable() - */ - @Test - public void nullTest() { + + /** + * test for setNullable() and getNullable() + */ + @Test + public void nullTest() { PositiveBoundHiveTinyInt.PositiveBoundHiveTinyIntTag pos = new PositiveBoundHiveTinyInt.PositiveBoundHiveTinyIntTag(); - - pos.setNullable("true"); + + pos.setNullable("true"); Assert.assertEquals(pos.getNullable(), "true"); - - pos.setNullable("false"); - Assert.assertEquals(pos.getNullable(), "false"); + + pos.setNullable("false"); + Assert.assertEquals(pos.getNullable(), "false"); } - - /** - * test for setMin() and getMin() - */ - @Test - public void minTest() { + + /** + * test for setMin() and getMin() + */ + @Test + public void minTest() { PositiveBoundHiveTinyInt.PositiveBoundHiveTinyIntTag pos = new PositiveBoundHiveTinyInt.PositiveBoundHiveTinyIntTag(); - - pos.setMin("10"); + + pos.setMin("10"); Assert.assertEquals(pos.getMin(), "10"); - - pos.setMin("100"); - Assert.assertEquals(pos.getMin(), "100"); + + pos.setMin("100"); + Assert.assertEquals(pos.getMin(), "100"); } - - /** - * check to make sure min boundary conditions are being added to states list - */ - @Test - public void minTest2() { - Map variableDomains = new HashMap<>(); - PositiveBoundHiveTinyInt.PositiveBoundHiveTinyIntTag pos = new PositiveBoundHiveTinyInt.PositiveBoundHiveTinyIntTag(); - PositiveBoundHiveTinyInt test = new PositiveBoundHiveTinyInt(); - List> listOfMaps = new LinkedList<>(); + + /** + * check to make sure min boundary conditions are being added to states list + */ + @Test + public void minTest2() { + Map variableDomains = new HashMap<>(); + PositiveBoundHiveTinyInt.PositiveBoundHiveTinyIntTag pos = new PositiveBoundHiveTinyInt.PositiveBoundHiveTinyIntTag(); + PositiveBoundHiveTinyInt test = new PositiveBoundHiveTinyInt(); + List> listOfMaps = new LinkedList<>(); ArrayList al = new ArrayList<>(); - - variableDomains.put("test", ""); + + variableDomains.put("test", ""); listOfMaps.add(variableDomains); - - pos.setMin("10"); - pos.setMax("100"); - pos.setNullable("true"); + + pos.setMin("10"); + pos.setMax("100"); + pos.setNullable("true"); pos.setName("test"); - - List> list = test.pipelinePossibleStates(pos, listOfMaps); - for (Map map : list) { - for (String key : map.keySet()) { - al.add(map.get(key)); - } + + List> list = test.pipelinePossibleStates(pos, listOfMaps); + for (Map map : list) { + for (String key : map.keySet()) { + al.add(map.get(key)); + } } - - Assert.assertTrue(al.contains("10")); - Assert.assertTrue(al.contains("11")); + + Assert.assertTrue(al.contains("10")); + Assert.assertTrue(al.contains("11")); } - - /** - * check to make sure min boundary conditions are being added to states list - */ - @Test - public void minTest3() { - Map variableDomains = new HashMap<>(); - PositiveBoundHiveTinyInt.PositiveBoundHiveTinyIntTag pos = new PositiveBoundHiveTinyInt.PositiveBoundHiveTinyIntTag(); - PositiveBoundHiveTinyInt test = new PositiveBoundHiveTinyInt(); - List> listOfMaps = new LinkedList<>(); + + /** + * check to make sure min boundary conditions are being added to states list + */ + @Test + public void minTest3() { + Map variableDomains = new HashMap<>(); + PositiveBoundHiveTinyInt.PositiveBoundHiveTinyIntTag pos = new PositiveBoundHiveTinyInt.PositiveBoundHiveTinyIntTag(); + PositiveBoundHiveTinyInt test = new PositiveBoundHiveTinyInt(); + List> listOfMaps = new LinkedList<>(); ArrayList al = new ArrayList<>(); - - variableDomains.put("test", ""); + + variableDomains.put("test", ""); listOfMaps.add(variableDomains); - - pos.setMin("-1300"); - pos.setMax("100"); - pos.setNullable("true"); + + pos.setMin("-1300"); + pos.setMax("100"); + pos.setNullable("true"); pos.setName("test"); - - List> list = test.pipelinePossibleStates(pos, listOfMaps); - for (Map map : list) { - for (String key : map.keySet()) { - al.add(map.get(key)); - } + + List> list = test.pipelinePossibleStates(pos, listOfMaps); + for (Map map : list) { + for (String key : map.keySet()) { + al.add(map.get(key)); + } } - - Assert.assertTrue(al.contains("-128")); - Assert.assertTrue(al.contains("-127")); + + Assert.assertTrue(al.contains("-128")); + Assert.assertTrue(al.contains("-127")); } - - /** - * test for setMax() and getMax() - */ - @Test - public void maxTest() { + + /** + * test for setMax() and getMax() + */ + @Test + public void maxTest() { PositiveBoundHiveTinyInt.PositiveBoundHiveTinyIntTag pos = new PositiveBoundHiveTinyInt.PositiveBoundHiveTinyIntTag(); - - pos.setMax("10"); + + pos.setMax("10"); Assert.assertEquals(pos.getMax(), "10"); - - pos.setMax("100"); - Assert.assertEquals(pos.getMax(), "100"); - } + + pos.setMax("100"); + Assert.assertEquals(pos.getMax(), "100"); + } } diff --git a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveVarcharTest.java b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveVarcharTest.java index 0e07e8fe..37142486 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveVarcharTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/engine/scxml/tags/boundary/PositiveBoundHiveVarcharTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 DataGenerator Contributors + * Copyright DataGenerator Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/dg-core/src/test/java/org/finra/datagenerator/writer/AllFieldsWriterTest.java b/dg-core/src/test/java/org/finra/datagenerator/writer/AllFieldsWriterTest.java index 78fa1442..16979191 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/writer/AllFieldsWriterTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/writer/AllFieldsWriterTest.java @@ -1,50 +1,50 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.writer; - -import org.finra.datagenerator.consumer.DataPipe; -import org.junit.Assert; + +import org.finra.datagenerator.consumer.DataPipe; +import org.junit.Assert; import org.junit.Test; - -import java.io.ByteArrayOutputStream; + +import java.io.ByteArrayOutputStream; import java.util.Map; - -/** - * Created by mibrahim on 9/11/15. - */ -public class AllFieldsWriterTest { - /** - * Test the delimiter - */ - @Test - public void testDelimiter() { + +/** + * Created by mibrahim on 9/11/15. + */ +public class AllFieldsWriterTest { + /** + * Test the delimiter + */ + @Test + public void testDelimiter() { ByteArrayOutputStream bos = new ByteArrayOutputStream(); - + AllFieldsWriter writer = new AllFieldsWriter(false, bos); - - writer.setSeparator("^"); - DataPipe pipe = new DataPipe(); - Map data = pipe.getDataMap(); - data.put("a", "av"); - data.put("b", "bv"); + + writer.setSeparator("^"); + DataPipe pipe = new DataPipe(); + Map data = pipe.getDataMap(); + data.put("a", "av"); + data.put("b", "bv"); data.put("c", "cv"); - + writer.writeOutput(pipe); - - String result = new String(bos.toByteArray()); - Assert.assertTrue("'" + result + "'", result.equals("av^bv^cv\n")); - } + + String result = new String(bos.toByteArray()); + Assert.assertTrue("'" + result + "'", result.equals("av^bv^cv\n")); + } } diff --git a/dg-core/src/test/java/org/finra/datagenerator/writer/DefaultWriterTest.java b/dg-core/src/test/java/org/finra/datagenerator/writer/DefaultWriterTest.java index c3dbb37e..9013c274 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/writer/DefaultWriterTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/writer/DefaultWriterTest.java @@ -1,50 +1,50 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.writer; - -import org.finra.datagenerator.consumer.DataPipe; -import org.junit.Assert; + +import org.finra.datagenerator.consumer.DataPipe; +import org.junit.Assert; import org.junit.Test; - -import java.io.ByteArrayOutputStream; + +import java.io.ByteArrayOutputStream; import java.util.Map; - -/** - * Created by mibrahim on 9/11/15. - */ -public class DefaultWriterTest { - /** - * Test the delimiter - */ - @Test - public void testDelimiter() { + +/** + * Created by mibrahim on 9/11/15. + */ +public class DefaultWriterTest { + /** + * Test the delimiter + */ + @Test + public void testDelimiter() { ByteArrayOutputStream bos = new ByteArrayOutputStream(); - + DefaultWriter writer = new DefaultWriter(bos, new String[]{"a", "b", "c"}); - - writer.setSeparator("^"); - DataPipe pipe = new DataPipe(); - Map data = pipe.getDataMap(); - data.put("a", "av"); - data.put("b", "bv"); + + writer.setSeparator("^"); + DataPipe pipe = new DataPipe(); + Map data = pipe.getDataMap(); + data.put("a", "av"); + data.put("b", "bv"); data.put("c", "cv"); - + writer.writeOutput(pipe); - - String result = new String(bos.toByteArray()); - Assert.assertTrue("'" + result + "'", result.equals("av^bv^cv\n")); - } + + String result = new String(bos.toByteArray()); + Assert.assertTrue("'" + result + "'", result.equals("av^bv^cv\n")); + } } diff --git a/dg-core/src/test/java/org/finra/datagenerator/writer/JsonWriterTest.java b/dg-core/src/test/java/org/finra/datagenerator/writer/JsonWriterTest.java index 95999883..f9daeb27 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/writer/JsonWriterTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/writer/JsonWriterTest.java @@ -1,52 +1,52 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.writer; - -import org.finra.datagenerator.consumer.DataPipe; -import org.junit.Assert; + +import org.finra.datagenerator.consumer.DataPipe; +import org.junit.Assert; import org.junit.Test; - -/** - * Created by Mauricio Silva on 3/16/2016. - */ + +/** + * Created by Mauricio Silva on 3/16/2016. + */ public class JsonWriterTest { - - /** - * Tests getJsonFormatted - */ - @Test + + /** + * Tests getJsonFormatted + */ + @Test public void testJsonWriter() { - - DataPipe dataFormatter = new DataPipe(); - dataFormatter.getDataMap().put("var1", "var1val"); - dataFormatter.getDataMap().put("var2", "var2val"); - dataFormatter.getDataMap().put("var3", "var3val"); - dataFormatter.getDataMap().put("var4", "var4val"); + + DataPipe dataFormatter = new DataPipe(); + dataFormatter.getDataMap().put("var1", "var1val"); + dataFormatter.getDataMap().put("var2", "var2val"); + dataFormatter.getDataMap().put("var3", "var3val"); + dataFormatter.getDataMap().put("var4", "var4val"); dataFormatter.getDataMap().put("var5", "var5val"); - - String[] outTemplate = new String[]{ - "var1", "var2", "var3", "var4", "var5" + + String[] outTemplate = new String[]{ + "var1", "var2", "var3", "var4", "var5" }; - + JsonWriter jsonWriter = new JsonWriter(System.out, outTemplate); - - String expected = "{\"var5\":\"var5val\",\"var4\":\"var4val\",\"var3\":\"var3val\",\"var2\":\"var2val\"," + + String expected = "{\"var5\":\"var5val\",\"var4\":\"var4val\",\"var3\":\"var3val\",\"var2\":\"var2val\"," + "\"var1\":\"var1val\"}"; - - Assert.assertEquals(5, dataFormatter.getDataMap().size()); - Assert.assertEquals(expected, jsonWriter.getJsonFormatted(dataFormatter.getDataMap()).toString()); - } + + Assert.assertEquals(5, dataFormatter.getDataMap().size()); + Assert.assertEquals(expected, jsonWriter.getJsonFormatted(dataFormatter.getDataMap()).toString()); + } } diff --git a/dg-core/src/test/java/org/finra/datagenerator/writer/SqlWriterTest.java b/dg-core/src/test/java/org/finra/datagenerator/writer/SqlWriterTest.java index 4f84be75..97a57297 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/writer/SqlWriterTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/writer/SqlWriterTest.java @@ -1,55 +1,55 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.writer; - -import org.finra.datagenerator.consumer.DataPipe; -import org.junit.Assert; + +import org.finra.datagenerator.consumer.DataPipe; +import org.junit.Assert; import org.junit.Test; - -/** - * Created by Mauricio Silva on 3/16/2016. - */ + +/** + * Created by Mauricio Silva on 3/16/2016. + */ public class SqlWriterTest { - - /** - * Tests getSqlFormatted - */ - @Test + + /** + * Tests getSqlFormatted + */ + @Test public void testSqlWriter() { - - DataPipe dataFormatter = new DataPipe(); - dataFormatter.getDataMap().put("var1", "var1val"); - dataFormatter.getDataMap().put("var2", "var2val"); - dataFormatter.getDataMap().put("var3", "var3val"); - dataFormatter.getDataMap().put("var4", "var4val"); + + DataPipe dataFormatter = new DataPipe(); + dataFormatter.getDataMap().put("var1", "var1val"); + dataFormatter.getDataMap().put("var2", "var2val"); + dataFormatter.getDataMap().put("var3", "var3val"); + dataFormatter.getDataMap().put("var4", "var4val"); dataFormatter.getDataMap().put("var5", "var5val"); - - String[] outTemplate = new String[]{ - "var1", "var2", "var3", "var4", "var5" + + String[] outTemplate = new String[]{ + "var1", "var2", "var3", "var4", "var5" }; - - String schema = "QC_ADMIN"; - String tableName = "DATA_SERVICE"; - SqlWriter.SqlStatementType sqlStatement = SqlWriter.SqlStatementType.INSERT; + + String schema = "QC_ADMIN"; + String tableName = "DATA_SERVICE"; + SqlWriter.SqlStatementType sqlStatement = SqlWriter.SqlStatementType.INSERT; SqlWriter sqlWriter = new SqlWriter(System.out, outTemplate, schema, tableName, sqlStatement); - - String expected = sqlStatement + " INTO " + schema + "." + tableName + " (var1,var2,var3,var4,var5) " + + String expected = sqlStatement + " INTO " + schema + "." + tableName + " (var1,var2,var3,var4,var5) " + "VALUES (var1val,var2val,var3val,var4val,var5val);"; - - Assert.assertEquals(5, dataFormatter.getDataMap().size()); - Assert.assertEquals(expected, sqlWriter.getSqlFormatted(dataFormatter.getDataMap())); - } + + Assert.assertEquals(5, dataFormatter.getDataMap().size()); + Assert.assertEquals(expected, sqlWriter.getSqlFormatted(dataFormatter.getDataMap())); + } } diff --git a/dg-core/src/test/java/org/finra/datagenerator/writer/XmlWriterTest.java b/dg-core/src/test/java/org/finra/datagenerator/writer/XmlWriterTest.java index 3407defc..c960d191 100644 --- a/dg-core/src/test/java/org/finra/datagenerator/writer/XmlWriterTest.java +++ b/dg-core/src/test/java/org/finra/datagenerator/writer/XmlWriterTest.java @@ -1,52 +1,52 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.writer; - -import org.finra.datagenerator.consumer.DataPipe; -import org.junit.Assert; + +import org.finra.datagenerator.consumer.DataPipe; +import org.junit.Assert; import org.junit.Test; - -/** - * Created by Mauricio Silva on 3/16/2016. - */ + +/** + * Created by Mauricio Silva on 3/16/2016. + */ public class XmlWriterTest { - - /** - * Tests getXmlFormatted - */ - @Test + + /** + * Tests getXmlFormatted + */ + @Test public void testXmlWriter() { - - DataPipe dataFormatter = new DataPipe(); - dataFormatter.getDataMap().put("var1", "var1val"); - dataFormatter.getDataMap().put("var2", "var2val"); - dataFormatter.getDataMap().put("var3", "var3val"); - dataFormatter.getDataMap().put("var4", "var4val"); + + DataPipe dataFormatter = new DataPipe(); + dataFormatter.getDataMap().put("var1", "var1val"); + dataFormatter.getDataMap().put("var2", "var2val"); + dataFormatter.getDataMap().put("var3", "var3val"); + dataFormatter.getDataMap().put("var4", "var4val"); dataFormatter.getDataMap().put("var5", "var5val"); - - String[] outTemplate = new String[]{ - "var1", "var2", "var3", "var4", "var5" + + String[] outTemplate = new String[]{ + "var1", "var2", "var3", "var4", "var5" }; - + XmlWriter xmlWriter = new XmlWriter(System.out, outTemplate, "root", "record"); - - String expected = "var1valvar2valvar3val" + + String expected = "var1valvar2valvar3val" + "var4valvar5val"; - - Assert.assertEquals(5, dataFormatter.getDataMap().size()); - Assert.assertEquals(expected, xmlWriter.getXmlFormatted(dataFormatter.getDataMap())); - } + + Assert.assertEquals(5, dataFormatter.getDataMap().size()); + Assert.assertEquals(expected, xmlWriter.getXmlFormatted(dataFormatter.getDataMap())); + } } diff --git a/dg-core/src/test/resources/DGFileTest.xml b/dg-core/src/test/resources/DGFileTest.xml index e8ef93e7..c06f8de7 100644 --- a/dg-core/src/test/resources/DGFileTest.xml +++ b/dg-core/src/test/resources/DGFileTest.xml @@ -1,5 +1,5 @@ - + diff --git a/dg-core/src/test/resources/DGRangeTest.xml b/dg-core/src/test/resources/DGRangeTest.xml index 5b1bb20d..cd75a68a 100644 --- a/dg-core/src/test/resources/DGRangeTest.xml +++ b/dg-core/src/test/resources/DGRangeTest.xml @@ -1,5 +1,5 @@ - + diff --git a/dg-core/src/test/resources/bigtest.xml b/dg-core/src/test/resources/bigtest.xml index bb58475d..b258be52 100644 --- a/dg-core/src/test/resources/bigtest.xml +++ b/dg-core/src/test/resources/bigtest.xml @@ -1,5 +1,5 @@ - + diff --git a/dg-core/src/test/resources/eqtransformerinline.xml b/dg-core/src/test/resources/eqtransformerinline.xml index de2e3f33..a9e9d8a1 100644 --- a/dg-core/src/test/resources/eqtransformerinline.xml +++ b/dg-core/src/test/resources/eqtransformerinline.xml @@ -1,5 +1,5 @@ - + diff --git a/dg-core/src/test/resources/eqtransformerpost.xml b/dg-core/src/test/resources/eqtransformerpost.xml index 849359a5..233d5f10 100644 --- a/dg-core/src/test/resources/eqtransformerpost.xml +++ b/dg-core/src/test/resources/eqtransformerpost.xml @@ -1,5 +1,5 @@ - + diff --git a/dg-core/src/test/resources/log4j.properties b/dg-core/src/test/resources/log4j.properties index 5ef39d73..3f9415ac 100644 --- a/dg-core/src/test/resources/log4j.properties +++ b/dg-core/src/test/resources/log4j.properties @@ -1,5 +1,5 @@ # -# Copyright 2014 DataGenerator Contributors +# Copyright DataGenerator Contributors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/dg-core/src/test/resources/oneStepTest.xml b/dg-core/src/test/resources/oneStepTest.xml index 7146f9d1..58df18fa 100644 --- a/dg-core/src/test/resources/oneStepTest.xml +++ b/dg-core/src/test/resources/oneStepTest.xml @@ -1,5 +1,5 @@ - + diff --git a/dg-core/src/test/resources/spark/samplemachine.xml b/dg-core/src/test/resources/spark/samplemachine.xml index b77aa48e..8b6a7c2f 100644 --- a/dg-core/src/test/resources/spark/samplemachine.xml +++ b/dg-core/src/test/resources/spark/samplemachine.xml @@ -1,5 +1,5 @@ - + diff --git a/dg-core/src/test/resources/spark/samplemachine2.xml b/dg-core/src/test/resources/spark/samplemachine2.xml index c36ee8b7..ed402e9a 100644 --- a/dg-core/src/test/resources/spark/samplemachine2.xml +++ b/dg-core/src/test/resources/spark/samplemachine2.xml @@ -1,5 +1,5 @@ - + diff --git a/dg-core/src/test/resources/test.xml b/dg-core/src/test/resources/test.xml index a8d2f4d9..551f6530 100644 --- a/dg-core/src/test/resources/test.xml +++ b/dg-core/src/test/resources/test.xml @@ -1,5 +1,5 @@ - + diff --git a/dg-example-default/src/main/java/org/finra/datagenerator/samples/CmdLine.java b/dg-example-default/src/main/java/org/finra/datagenerator/samples/CmdLine.java index 29a901ff..46ed81a9 100644 --- a/dg-example-default/src/main/java/org/finra/datagenerator/samples/CmdLine.java +++ b/dg-example-default/src/main/java/org/finra/datagenerator/samples/CmdLine.java @@ -1,91 +1,91 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.samples; - -import java.io.InputStream; -import java.util.HashMap; -import java.util.Map; + +import java.io.InputStream; +import java.util.HashMap; +import java.util.Map; import java.util.Vector; - -import org.apache.log4j.Level; -import org.apache.log4j.Logger; -import org.finra.datagenerator.consumer.DataConsumer; -import org.finra.datagenerator.consumer.DataTransformer; -import org.finra.datagenerator.consumer.EquivalenceClassTransformer; -import org.finra.datagenerator.distributor.multithreaded.DefaultDistributor; -import org.finra.datagenerator.engine.Engine; -import org.finra.datagenerator.engine.scxml.SCXMLEngine; -import org.finra.datagenerator.engine.scxml.tags.CustomTagExtension; -import org.finra.datagenerator.engine.scxml.tags.InLineTransformerExtension; -import org.finra.datagenerator.samples.transformer.SampleMachineTransformer; + +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.finra.datagenerator.consumer.DataConsumer; +import org.finra.datagenerator.consumer.DataTransformer; +import org.finra.datagenerator.consumer.EquivalenceClassTransformer; +import org.finra.datagenerator.distributor.multithreaded.DefaultDistributor; +import org.finra.datagenerator.engine.Engine; +import org.finra.datagenerator.engine.scxml.SCXMLEngine; +import org.finra.datagenerator.engine.scxml.tags.CustomTagExtension; +import org.finra.datagenerator.engine.scxml.tags.InLineTransformerExtension; +import org.finra.datagenerator.samples.transformer.SampleMachineTransformer; import org.finra.datagenerator.writer.DefaultWriter; - -/** - * Driver for a simple Data Generator example using the Default Distributor and a single transformer. - */ + +/** + * Driver for a simple Data Generator example using the Default Distributor and a single transformer. + */ public final class CmdLine { - - private CmdLine() { - // Do nothing + + private CmdLine() { + // Do nothing } - + private static final Logger log = Logger.getLogger(CmdLine.class); - - /** - * Entry point for the example. - * - * @param args Command-line arguments for the example. To use samplemachine.xml from resources, send - * no arguments. To use other file, send a filename without xml extension). + + /** + * Entry point for the example. + * + * @param args Command-line arguments for the example. To use samplemachine.xml from resources, send + * no arguments. To use other file, send a filename without xml extension). */ - - public static void main(String[] args) { - //Adding custom equivalence class generation transformer - NOTE this will get applied during graph traversal--> - //MODEL USAGE EXAMPLE: - Map transformers = new HashMap(); - transformers.put("EQ", new EquivalenceClassTransformer()); - Vector cte = new Vector(); - cte.add(new InLineTransformerExtension(transformers)); + + public static void main(String[] args) { + //Adding custom equivalence class generation transformer - NOTE this will get applied during graph traversal--> + //MODEL USAGE EXAMPLE: + Map transformers = new HashMap(); + transformers.put("EQ", new EquivalenceClassTransformer()); + Vector cte = new Vector(); + cte.add(new InLineTransformerExtension(transformers)); Engine engine = new SCXMLEngine(cte); - - //will default to samplemachine, but you could specify a different file if you choose to + + //will default to samplemachine, but you could specify a different file if you choose to InputStream is = CmdLine.class.getResourceAsStream("/" + (args.length == 0 ? "samplemachine" : args[0]) + ".xml"); - + engine.setModelByInputFileStream(is); - - // Usually, this should be more than the number of threads you intend to run + + // Usually, this should be more than the number of threads you intend to run engine.setBootstrapMin(1); - - //Prepare the consumer with the proper writer and transformer - DataConsumer consumer = new DataConsumer(); + + //Prepare the consumer with the proper writer and transformer + DataConsumer consumer = new DataConsumer(); consumer.addDataTransformer(new SampleMachineTransformer()); - - //Adding custom equivalence class generation transformer - NOTE this will get applied post data generation. - //MODEL USAGE EXAMPLE: + + //Adding custom equivalence class generation transformer - NOTE this will get applied post data generation. + //MODEL USAGE EXAMPLE: consumer.addDataTransformer(new EquivalenceClassTransformer()); - - consumer.addDataWriter(new DefaultWriter(System.out, - new String[]{"var_1_1", "var_1_2", "var_1_3", "var_1_4", "var_1_5", "var_1_6", "var_1_7", + + consumer.addDataWriter(new DefaultWriter(System.out, + new String[]{"var_1_1", "var_1_2", "var_1_3", "var_1_4", "var_1_5", "var_1_6", "var_1_7", "var_2_1", "var_2_2", "var_2_3", "var_2_4", "var_2_5", "var_2_6", "var_2_7", "var_2_8"})); - - //Prepare the distributor - DefaultDistributor defaultDistributor = new DefaultDistributor(); - defaultDistributor.setThreadCount(1); - defaultDistributor.setDataConsumer(consumer); + + //Prepare the distributor + DefaultDistributor defaultDistributor = new DefaultDistributor(); + defaultDistributor.setThreadCount(1); + defaultDistributor.setDataConsumer(consumer); Logger.getLogger("org.apache").setLevel(Level.WARN); - - engine.process(defaultDistributor); - } + + engine.process(defaultDistributor); + } } diff --git a/dg-example-default/src/main/java/org/finra/datagenerator/samples/CmdLineBulkWriter.java b/dg-example-default/src/main/java/org/finra/datagenerator/samples/CmdLineBulkWriter.java index 37331890..9e1b3458 100644 --- a/dg-example-default/src/main/java/org/finra/datagenerator/samples/CmdLineBulkWriter.java +++ b/dg-example-default/src/main/java/org/finra/datagenerator/samples/CmdLineBulkWriter.java @@ -1,99 +1,99 @@ -/* - * Copyright 2014 DataGenerator Contributors - * - * 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. - */ +/* + * Copyright DataGenerator Contributors + * + * 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.finra.datagenerator.samples; - -import org.apache.log4j.Level; -import org.apache.log4j.Logger; -import org.finra.datagenerator.consumer.DataConsumer; -import org.finra.datagenerator.consumer.DataTransformer; -import org.finra.datagenerator.consumer.EquivalenceClassTransformer; -import org.finra.datagenerator.distributor.multithreaded.DefaultDistributor; -import org.finra.datagenerator.engine.Engine; -import org.finra.datagenerator.engine.scxml.SCXMLEngine; -import org.finra.datagenerator.engine.scxml.tags.CustomTagExtension; -import org.finra.datagenerator.engine.scxml.tags.InLineTransformerExtension; -import org.finra.datagenerator.samples.transformer.SampleMachineTransformer; -import org.finra.datagenerator.writer.BulkWriter; + +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.finra.datagenerator.consumer.DataConsumer; +import org.finra.datagenerator.consumer.DataTransformer; +import org.finra.datagenerator.consumer.EquivalenceClassTransformer; +import org.finra.datagenerator.distributor.multithreaded.DefaultDistributor; +import org.finra.datagenerator.engine.Engine; +import org.finra.datagenerator.engine.scxml.SCXMLEngine; +import org.finra.datagenerator.engine.scxml.tags.CustomTagExtension; +import org.finra.datagenerator.engine.scxml.tags.InLineTransformerExtension; +import org.finra.datagenerator.samples.transformer.SampleMachineTransformer; +import org.finra.datagenerator.writer.BulkWriter; import org.finra.datagenerator.writer.JsonWriter; - -import java.io.InputStream; -import java.util.HashMap; -import java.util.Map; + +import java.io.InputStream; +import java.util.HashMap; +import java.util.Map; import java.util.Vector; - -/** - * Driver for a simple Data Generator example using the Default Distributor and a single transformer. - */ + +/** + * Driver for a simple Data Generator example using the Default Distributor and a single transformer. + */ public final class CmdLineBulkWriter { - - private CmdLineBulkWriter() { - // Do nothing + + private CmdLineBulkWriter() { + // Do nothing } - + private static final Logger log = Logger.getLogger(CmdLineBulkWriter.class); - - /** - * Entry point for the example. - * - * @param args Command-line arguments for the example. To use samplemachine.xml from resources, send - * no arguments. To use other file, send a filename without xml extension). + + /** + * Entry point for the example. + * + * @param args Command-line arguments for the example. To use samplemachine.xml from resources, send + * no arguments. To use other file, send a filename without xml extension). */ - - public static void main(String[] args) { - //Adding custom equivalence class generation transformer - NOTE this will get applied during graph traversal--> - //MODEL USAGE EXAMPLE: - Map transformers = new HashMap(); - transformers.put("EQ", new EquivalenceClassTransformer()); - Vector cte = new Vector(); - cte.add(new InLineTransformerExtension(transformers)); + + public static void main(String[] args) { + //Adding custom equivalence class generation transformer - NOTE this will get applied during graph traversal--> + //MODEL USAGE EXAMPLE: + Map transformers = new HashMap(); + transformers.put("EQ", new EquivalenceClassTransformer()); + Vector cte = new Vector(); + cte.add(new InLineTransformerExtension(transformers)); Engine engine = new SCXMLEngine(cte); - - //will default to samplemachine, but you could specify a different file if you choose to + + //will default to samplemachine, but you could specify a different file if you choose to InputStream is = CmdLineBulkWriter.class.getResourceAsStream("/" + (args.length == 0 ? "samplemachine" : args[0]) + ".xml"); - + engine.setModelByInputFileStream(is); - - // Usually, this should be more than the number of threads you intend to run + + // Usually, this should be more than the number of threads you intend to run engine.setBootstrapMin(1); - - //Prepare the consumer with the proper writer and transformer - DataConsumer consumer = new DataConsumer(); + + //Prepare the consumer with the proper writer and transformer + DataConsumer consumer = new DataConsumer(); consumer.addDataTransformer(new SampleMachineTransformer()); - - //Adding custom equivalence class generation transformer - NOTE this will get applied post data generation. - //MODEL USAGE EXAMPLE: + + //Adding custom equivalence class generation transformer - NOTE this will get applied post data generation. + //MODEL USAGE EXAMPLE: consumer.addDataTransformer(new EquivalenceClassTransformer()); - - BulkWriter jsonWriter = new JsonWriter(System.out, - new String[]{"var_1_1", "var_1_2", "var_1_3", "var_1_4", "var_1_5", "var_1_6", + + BulkWriter jsonWriter = new JsonWriter(System.out, + new String[]{"var_1_1", "var_1_2", "var_1_3", "var_1_4", "var_1_5", "var_1_6", "var_2_1", "var_2_2", "var_2_3", "var_2_4", "var_2_5", "var_2_6"}); - + consumer.addDataWriter(jsonWriter); - - //Prepare the distributor - DefaultDistributor defaultDistributor = new DefaultDistributor(); - defaultDistributor.setThreadCount(1); - defaultDistributor.setDataConsumer(consumer); + + //Prepare the distributor + DefaultDistributor defaultDistributor = new DefaultDistributor(); + defaultDistributor.setThreadCount(1); + defaultDistributor.setDataConsumer(consumer); Logger.getLogger("org.apache").setLevel(Level.WARN); - + engine.process(defaultDistributor); - - //Tells writer, it's finished processing the data + + //Tells writer, it's finished processing the data jsonWriter.finish(); - - } + + } } diff --git a/dg-example-default/src/main/java/org/finra/datagenerator/samples/transformer/SampleMachineTransformer.java b/dg-example-default/src/main/java/org/finra/datagenerator/samples/transformer/SampleMachineTransformer.java index c3c1c99a..a84bd491 100644 --- a/dg-example-default/src/main/java/org/finra/datagenerator/samples/transformer/SampleMachineTransformer.java +++ b/dg-example-default/src/main/java/org/finra/datagenerator/samples/transformer/SampleMachineTransformer.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 DataGenerator Contributors + * Copyright DataGenerator Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/dg-example-default/src/main/resources/samplemachine.xml b/dg-example-default/src/main/resources/samplemachine.xml index ce4c7268..487ec91f 100644 --- a/dg-example-default/src/main/resources/samplemachine.xml +++ b/dg-example-default/src/main/resources/samplemachine.xml @@ -1,5 +1,5 @@ - + diff --git a/dg-example-default/src/main/resources/samplemachine2.xml b/dg-example-default/src/main/resources/samplemachine2.xml index 056f810e..55de56c6 100644 --- a/dg-example-default/src/main/resources/samplemachine2.xml +++ b/dg-example-default/src/main/resources/samplemachine2.xml @@ -1,5 +1,5 @@ - + diff --git a/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/CmdLine.java b/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/CmdLine.java index 58c55b0e..4ba3d742 100644 --- a/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/CmdLine.java +++ b/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/CmdLine.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 DataGenerator Contributors + * Copyright DataGenerator Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/consumer/ContextWriter.java b/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/consumer/ContextWriter.java index 8f84588e..be0c63bf 100644 --- a/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/consumer/ContextWriter.java +++ b/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/consumer/ContextWriter.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 DataGenerator Contributors + * Copyright DataGenerator Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/consumer/SampleMachineConsumer.java b/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/consumer/SampleMachineConsumer.java index 6f7edf79..84763bcb 100644 --- a/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/consumer/SampleMachineConsumer.java +++ b/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/consumer/SampleMachineConsumer.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 DataGenerator Contributors + * Copyright DataGenerator Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/distributor/hdfs/DataGeneratorMapper.java b/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/distributor/hdfs/DataGeneratorMapper.java index 505fa356..1599cc0c 100644 --- a/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/distributor/hdfs/DataGeneratorMapper.java +++ b/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/distributor/hdfs/DataGeneratorMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 DataGenerator Contributors + * Copyright DataGenerator Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/distributor/hdfs/HDFSDistributor.java b/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/distributor/hdfs/HDFSDistributor.java index 09b9a7d2..d7726f8a 100644 --- a/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/distributor/hdfs/HDFSDistributor.java +++ b/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/distributor/hdfs/HDFSDistributor.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 DataGenerator Contributors + * Copyright DataGenerator Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/manager/JettyManager.java b/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/manager/JettyManager.java index bbfc9a32..09925517 100644 --- a/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/manager/JettyManager.java +++ b/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/manager/JettyManager.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 DataGenerator Contributors + * Copyright DataGenerator Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/manager/LineCountManager.java b/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/manager/LineCountManager.java index 0b9e4757..b481f586 100644 --- a/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/manager/LineCountManager.java +++ b/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/manager/LineCountManager.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 DataGenerator Contributors + * Copyright DataGenerator Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/manager/WorkBlock.java b/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/manager/WorkBlock.java index be13a70c..2bbb9f2d 100644 --- a/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/manager/WorkBlock.java +++ b/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/manager/WorkBlock.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 DataGenerator Contributors + * Copyright DataGenerator Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/manager/WorkManager.java b/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/manager/WorkManager.java index 44e7d920..9d4426d2 100644 --- a/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/manager/WorkManager.java +++ b/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/manager/WorkManager.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 DataGenerator Contributors + * Copyright DataGenerator Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/transformer/SampleMachineTransformer.java b/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/transformer/SampleMachineTransformer.java index 72a4cb2a..d84141fe 100644 --- a/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/transformer/SampleMachineTransformer.java +++ b/dg-example-hadoop/src/main/java/org/finra/datagenerator/samples/transformer/SampleMachineTransformer.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 DataGenerator Contributors + * Copyright DataGenerator Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/dg-example-hadoop/src/main/resources/large_mr_sample.xml b/dg-example-hadoop/src/main/resources/large_mr_sample.xml index e56e6152..1ad90e73 100644 --- a/dg-example-hadoop/src/main/resources/large_mr_sample.xml +++ b/dg-example-hadoop/src/main/resources/large_mr_sample.xml @@ -1,5 +1,5 @@ - + diff --git a/dg-example-hadoop/src/main/resources/small_mr_sample.xml b/dg-example-hadoop/src/main/resources/small_mr_sample.xml index fbd6d19b..e0e782db 100644 --- a/dg-example-hadoop/src/main/resources/small_mr_sample.xml +++ b/dg-example-hadoop/src/main/resources/small_mr_sample.xml @@ -1,5 +1,5 @@ - + diff --git a/dg-simple-csv/src/main/java/org/finra/datagenerator/simplecsv/CmdLine.java b/dg-simple-csv/src/main/java/org/finra/datagenerator/simplecsv/CmdLine.java index 730ac4ec..a518df6a 100644 --- a/dg-simple-csv/src/main/java/org/finra/datagenerator/simplecsv/CmdLine.java +++ b/dg-simple-csv/src/main/java/org/finra/datagenerator/simplecsv/CmdLine.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 DataGenerator Contributors + * Copyright DataGenerator Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/dg-simple-csv/src/main/java/org/finra/datagenerator/simplecsv/writer/CSVFileWriter.java b/dg-simple-csv/src/main/java/org/finra/datagenerator/simplecsv/writer/CSVFileWriter.java index 9d8b4496..2ee8ce4d 100644 --- a/dg-simple-csv/src/main/java/org/finra/datagenerator/simplecsv/writer/CSVFileWriter.java +++ b/dg-simple-csv/src/main/java/org/finra/datagenerator/simplecsv/writer/CSVFileWriter.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 DataGenerator Contributors + * Copyright DataGenerator Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License.