You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by el...@apache.org on 2017/09/12 18:20:29 UTC

[1/8] phoenix git commit: PHOENIX-4188 Disable inline-DTDs in Pherf XML records

Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-0.98 3aec050f7 -> 4004ed17f
  refs/heads/4.x-HBase-1.1 ef6e5366d -> 050a35382
  refs/heads/4.x-HBase-1.2 149eddcdc -> f8100caa6
  refs/heads/master 1d4025a57 -> 4ee35057c


http://git-wip-us.apache.org/repos/asf/phoenix/blob/4ee35057/phoenix-pherf/src/test/resources/malicious_results_with_dtd.xml
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/test/resources/malicious_results_with_dtd.xml b/phoenix-pherf/src/test/resources/malicious_results_with_dtd.xml
new file mode 100644
index 0000000..ab24c41
--- /dev/null
+++ b/phoenix-pherf/src/test/resources/malicious_results_with_dtd.xml
@@ -0,0 +1,676 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~   or more contributor license agreements.  See the NOTICE file
+  ~   distributed with this work for additional information
+  ~   regarding copyright ownership.  The ASF licenses this file
+  ~   to you under the Apache License, Version 2.0 (the
+  ~   "License"); you may not use this file except in compliance
+  ~   with the License.  You may obtain a copy of the License at
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~   Unless required by applicable law or agreed to in writing, software
+  ~   distributed under the License is distributed on an "AS IS" BASIS,
+  ~   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~   See the License for the specific language governing permissions and
+  ~   limitations under the License.
+  -->
+<!DOCTYPE dataModelResult
+[
+<!ENTITY name SYSTEM "/">
+]
+>
+<ns3:dataModelResult xmlns:ns2="org.apache.phoenix.pherf.configuration.DataModel" xmlns:ns3="org.apache.phoenix.pherf.result" zookeeper="localhost:2181/hbase" name="test_scenario">
+    <scenarioResult name="myscenario" rowCount="50" tableName="PHERF.USER_DEFINED_TEST">
+        <dataOverride>
+            <column>
+                <dataSequence>RANDOM</dataSequence>
+                <length>10</length>
+                <maxValue>-2147483648</maxValue>
+                <minValue>-2147483648</minValue>
+                <name>&name;</name>
+                <nullChance>-2147483648</nullChance>
+                <precision>-2147483648</precision>
+                <type>VARCHAR</type>
+                <useCurrentDate>false</useCurrentDate>
+                <userDefined>true</userDefined>
+            </column>
+        </dataOverride>
+        <phoenixProperties>
+            <entry>
+                <key>phoenix.schema.isNamespaceMappingEnabled</key>
+                <value>false</value>
+            </entry>
+            <entry>
+                <key>phoenix.queryserver.serialization</key>
+                <value>PROTOBUF</value>
+            </entry>
+            <entry>
+                <key>phoenix.queryserver.http.port</key>
+                <value>8765</value>
+            </entry>
+        </phoenixProperties>
+        <writeParams executionDurationInMs="9223372036854775807">
+            <batchSize>-9223372036854775808</batchSize>
+            <threadSleepDuration>-9223372036854775808</threadSleepDuration>
+            <writerThreadCount>-2147483648</writerThreadCount>
+        </writeParams>
+        <querySetResult concurrency="1-3" executionDurationInMs="5000" executionType="SERIAL" numberOfExecutions="100">
+            <queryResults expectedAggregateRowCount="50" id="q1" statement="select count(*) from PHERF.USER_DEFINED_TEST">
+                <threadTimes threadName="1,1">
+                    <runTimesInMs elapsedDurationInMs="37" resultRowCount="50" startTime="2017-09-08T19:27:41.556-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="20" resultRowCount="50" startTime="2017-09-08T19:27:41.671-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:41.691-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="22" resultRowCount="50" startTime="2017-09-08T19:27:41.709-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="20" resultRowCount="50" startTime="2017-09-08T19:27:41.731-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:41.751-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:41.767-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:41.784-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:41.798-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:41.810-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:41.825-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:41.836-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:41.852-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:41.865-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:41.878-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:41.895-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:41.909-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:41.924-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:41.941-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:41.959-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:41.975-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="20" resultRowCount="50" startTime="2017-09-08T19:27:41.988-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.008-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.017-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.025-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.037-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.049-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.057-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.066-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.075-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.082-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.092-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.103-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.112-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.121-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:42.130-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.143-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.153-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.161-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.169-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.177-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.186-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.196-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.206-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.217-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.227-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.239-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.251-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.260-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.269-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.278-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.288-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.298-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.308-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.317-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.326-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.334-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.342-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.350-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.358-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.366-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.375-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.384-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.395-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.404-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.413-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.422-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.433-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.443-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.452-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.461-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.470-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.482-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.493-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.504-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:42.514-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.521-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.529-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.538-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:42.548-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.555-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.563-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.571-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.581-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.589-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.598-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.606-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.615-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.624-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.633-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:42.643-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.656-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:42.664-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:42.671-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.812-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.821-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.830-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.838-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.850-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.861-04:00"/>
+                </threadTimes>
+                <threadTimes threadName="1,2">
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.871-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.884-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:42.895-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.908-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.917-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:42.928-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:42.942-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.955-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.964-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:42.975-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.982-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.990-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.998-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="34" resultRowCount="50" startTime="2017-09-08T19:27:43.006-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.040-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.051-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.061-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.076-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.090-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.101-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.112-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.121-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.136-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.143-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:43.150-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.158-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.165-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.177-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.186-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.196-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.203-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:43.213-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.221-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.231-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.242-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:43.252-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.269-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.282-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.296-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.308-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.321-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.333-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.346-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.357-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.371-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.385-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.399-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.412-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.424-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.437-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.452-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.466-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.478-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.492-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.506-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.523-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.538-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.554-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.568-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:43.583-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.601-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.617-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.631-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.645-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.660-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.673-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.686-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.697-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:43.710-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.728-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.741-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.755-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.766-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.778-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.788-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.800-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.340-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.349-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.359-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.371-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:44.384-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.401-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.414-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:44.424-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.432-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.441-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.448-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:44.458-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.466-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.473-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.481-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.488-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.495-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.501-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.508-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.517-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:44.524-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:44.532-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:44.540-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.548-04:00"/>
+                </threadTimes>
+                <threadTimes threadName="2,2">
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:42.872-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.885-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.895-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.907-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.918-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:42.929-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.936-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.945-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.955-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.965-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:42.973-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:42.988-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.006-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="33" resultRowCount="50" startTime="2017-09-08T19:27:43.017-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.050-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:43.062-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:43.070-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.078-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.091-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.100-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.112-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.123-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.131-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.141-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.151-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.165-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.176-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.185-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.194-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:43.204-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.210-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.217-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.224-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.231-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.238-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:43.247-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.255-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.269-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.283-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.296-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.308-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.320-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.333-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.345-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.357-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.369-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.385-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.398-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.411-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.425-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.437-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.451-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.466-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.478-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.492-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.507-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.523-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.538-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.553-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.568-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.584-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:43.600-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.617-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.631-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.645-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.661-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.674-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.686-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.697-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:43.710-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.727-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.742-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.754-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.766-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.776-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.788-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.800-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="51" resultRowCount="50" startTime="2017-09-08T19:27:43.812-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.224-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.230-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.236-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.243-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.250-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:44.257-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.265-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.275-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.284-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.294-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="20" resultRowCount="50" startTime="2017-09-08T19:27:44.301-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.321-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.330-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.339-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.351-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.357-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.364-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.371-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.377-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.384-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.394-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.401-04:00"/>
+                </threadTimes>
+                <threadTimes threadName="1,3">
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.556-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.569-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.583-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.595-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.611-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.623-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="22" resultRowCount="50" startTime="2017-09-08T19:27:44.635-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.657-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.672-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.688-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:44.700-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.711-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.725-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.737-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.749-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.762-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.777-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.793-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.807-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.819-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.832-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.847-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.859-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.871-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.878-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.890-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.904-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.919-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.933-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.949-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.965-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.974-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.986-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.001-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.016-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:45.031-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:45.049-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.063-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="29" resultRowCount="50" startTime="2017-09-08T19:27:45.078-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:45.107-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.123-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.138-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.153-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.168-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.180-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.192-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:45.204-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.221-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="20" resultRowCount="50" startTime="2017-09-08T19:27:45.234-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="34" resultRowCount="50" startTime="2017-09-08T19:27:45.254-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.288-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:45.300-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:45.307-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:45.317-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:45.326-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:45.333-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.520-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.532-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.543-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.555-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.562-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.570-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.578-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.586-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.595-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.605-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.611-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.617-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.625-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.633-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.640-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.648-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.656-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.662-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.669-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.679-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.687-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.694-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.699-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.705-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.711-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.716-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.722-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.730-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.736-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.743-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.751-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.756-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.762-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.768-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.774-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.780-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.786-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.792-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.798-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.805-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.810-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.816-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.825-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.832-04:00"/>
+                </threadTimes>
+                <threadTimes threadName="2,3">
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.556-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.570-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.583-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.598-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:44.612-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.623-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="22" resultRowCount="50" startTime="2017-09-08T19:27:44.635-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:44.657-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.674-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.686-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.699-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.711-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.724-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.737-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.749-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.761-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.777-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.793-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.807-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.819-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.834-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.847-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.859-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.871-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.883-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.896-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.908-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:44.922-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.939-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.953-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.965-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.975-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:44.984-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.001-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:45.016-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:45.032-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:45.049-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:45.063-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="27" resultRowCount="50" startTime="2017-09-08T19:27:45.079-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.107-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:45.122-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.138-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:45.153-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.167-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.180-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.192-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.205-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:45.220-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:45.234-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="36" resultRowCount="50" startTime="2017-09-08T19:27:45.252-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:45.288-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.299-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="22" resultRowCount="50" startTime="2017-09-08T19:27:45.312-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.334-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.079-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.089-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.097-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.106-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.113-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.119-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.124-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.130-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.136-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.144-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.152-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.160-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.166-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.174-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.183-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.190-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.199-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.207-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.219-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:46.230-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.244-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.255-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.268-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="28" resultRowCount="50" startTime="2017-09-08T19:27:46.281-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.309-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.322-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:46.335-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:46.350-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.364-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.376-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.386-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.397-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.403-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.410-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.418-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.426-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:46.435-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.449-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.457-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.463-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.469-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.477-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.482-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.488-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.495-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.502-04:00"/>
+                </threadTimes>
+                <threadTimes threadName="3,3">
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.557-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.569-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.583-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.598-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:44.612-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.623-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="22" resultRowCount="50" startTime="2017-09-08T19:27:44.636-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:44.657-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.674-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.687-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.700-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.712-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.725-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.737-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.749-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.761-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.777-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.793-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.806-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.819-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.832-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.847-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:44.859-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:44.870-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.887-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.902-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.916-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.931-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.947-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:44.963-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:44.974-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.985-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="19" resultRowCount="50" startTime="2017-09-08T19:27:45.015-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.034-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.049-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.064-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="28" resultRowCount="50" startTime="2017-09-08T19:27:45.079-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:45.107-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.124-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.138-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.152-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.167-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.180-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.192-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:45.205-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.221-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="21" resultRowCount="50" startTime="2017-09-08T19:27:45.234-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="35" resultRowCount="50" startTime="2017-09-08T19:27:45.255-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="22" resultRowCount="50" startTime="2017-09-08T19:27:45.290-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="21" resultRowCount="50" startTime="2017-09-08T19:27:45.312-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:45.333-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.079-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.090-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="23" resultRowCount="50" startTime="2017-09-08T19:27:46.102-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="20" resultRowCount="50" startTime="2017-09-08T19:27:46.125-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:46.145-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.161-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:46.174-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.190-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:46.201-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.219-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.230-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.242-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.255-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.268-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="28" resultRowCount="50" startTime="2017-09-08T19:27:46.281-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.309-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.323-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:46.335-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:46.350-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.364-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.376-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.386-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.398-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.410-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.418-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.427-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:46.435-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.449-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.457-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.469-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.475-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.484-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.494-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.501-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.509-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.516-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.525-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.533-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.544-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.554-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.563-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.570-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.578-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.586-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.595-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.604-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.617-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.625-04:00"/>
+                </threadTimes>
+            </queryResults>
+        </querySetResult>
+    </scenarioResult>
+</ns3:dataModelResult>

http://git-wip-us.apache.org/repos/asf/phoenix/blob/4ee35057/phoenix-pherf/src/test/resources/scenario/malicious_scenario_with_dtd.xml
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/test/resources/scenario/malicious_scenario_with_dtd.xml b/phoenix-pherf/src/test/resources/scenario/malicious_scenario_with_dtd.xml
new file mode 100644
index 0000000..e8528f3
--- /dev/null
+++ b/phoenix-pherf/src/test/resources/scenario/malicious_scenario_with_dtd.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~   or more contributor license agreements.  See the NOTICE file
+  ~   distributed with this work for additional information
+  ~   regarding copyright ownership.  The ASF licenses this file
+  ~   to you under the Apache License, Version 2.0 (the
+  ~   "License"); you may not use this file except in compliance
+  ~   with the License.  You may obtain a copy of the License at
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~   Unless required by applicable law or agreed to in writing, software
+  ~   distributed under the License is distributed on an "AS IS" BASIS,
+  ~   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~   See the License for the specific language governing permissions and
+  ~   limitations under the License.
+  -->
+<!DOCTYPE datamodel
+[
+<!ENTITY name SYSTEM "/">
+]
+>
+<datamodel>
+    <datamapping>
+        <column>
+            <!-- This column type defines what will generally happen to VARCHAR fields unless they are explicitly defined or overridden elsewhere -->
+            <type>VARCHAR</type>
+            <dataSequence>RANDOM</dataSequence>
+            <length>15</length>
+            <name>&name;</name>
+        </column>
+    </datamapping>
+    <scenarios>
+        <!--  Scenario level DDL that is dynamically executed before the Write Workload is run.
+              This pattern is really useful when you want to write data to multi-tenant view and the tenant id is
+              tightly bound to the scenario. In such cases you can't create the view through the data model flow.
+              The value of the tableName attribute is name of the view that is dynamically created based on the DDL
+              in the ddl attribute. Queries accessing the View will need to manually make sure Pherf was run with the -l option at
+              least once. 
+         -->
+        <scenario tableName="PHERF.TEST_MT_VIEW" tenantId="abcdefghijklmno" 
+                    ddl="CREATE VIEW IF NOT EXISTS PHERF.TEST_MT_VIEW (field1 VARCHAR) AS SELECT * FROM PHERF.TEST_MULTI_TENANT_TABLE" 
+                    rowCount="100" name="testMTDdlWriteScenario">
+        </scenario>
+        
+    </scenarios>
+</datamodel>


[7/8] phoenix git commit: PHOENIX-4188 Disable inline-DTDs in Pherf XML records

Posted by el...@apache.org.
http://git-wip-us.apache.org/repos/asf/phoenix/blob/4004ed17/phoenix-pherf/src/test/resources/malicious_results_with_dtd.xml
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/test/resources/malicious_results_with_dtd.xml b/phoenix-pherf/src/test/resources/malicious_results_with_dtd.xml
new file mode 100644
index 0000000..ab24c41
--- /dev/null
+++ b/phoenix-pherf/src/test/resources/malicious_results_with_dtd.xml
@@ -0,0 +1,676 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~   or more contributor license agreements.  See the NOTICE file
+  ~   distributed with this work for additional information
+  ~   regarding copyright ownership.  The ASF licenses this file
+  ~   to you under the Apache License, Version 2.0 (the
+  ~   "License"); you may not use this file except in compliance
+  ~   with the License.  You may obtain a copy of the License at
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~   Unless required by applicable law or agreed to in writing, software
+  ~   distributed under the License is distributed on an "AS IS" BASIS,
+  ~   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~   See the License for the specific language governing permissions and
+  ~   limitations under the License.
+  -->
+<!DOCTYPE dataModelResult
+[
+<!ENTITY name SYSTEM "/">
+]
+>
+<ns3:dataModelResult xmlns:ns2="org.apache.phoenix.pherf.configuration.DataModel" xmlns:ns3="org.apache.phoenix.pherf.result" zookeeper="localhost:2181/hbase" name="test_scenario">
+    <scenarioResult name="myscenario" rowCount="50" tableName="PHERF.USER_DEFINED_TEST">
+        <dataOverride>
+            <column>
+                <dataSequence>RANDOM</dataSequence>
+                <length>10</length>
+                <maxValue>-2147483648</maxValue>
+                <minValue>-2147483648</minValue>
+                <name>&name;</name>
+                <nullChance>-2147483648</nullChance>
+                <precision>-2147483648</precision>
+                <type>VARCHAR</type>
+                <useCurrentDate>false</useCurrentDate>
+                <userDefined>true</userDefined>
+            </column>
+        </dataOverride>
+        <phoenixProperties>
+            <entry>
+                <key>phoenix.schema.isNamespaceMappingEnabled</key>
+                <value>false</value>
+            </entry>
+            <entry>
+                <key>phoenix.queryserver.serialization</key>
+                <value>PROTOBUF</value>
+            </entry>
+            <entry>
+                <key>phoenix.queryserver.http.port</key>
+                <value>8765</value>
+            </entry>
+        </phoenixProperties>
+        <writeParams executionDurationInMs="9223372036854775807">
+            <batchSize>-9223372036854775808</batchSize>
+            <threadSleepDuration>-9223372036854775808</threadSleepDuration>
+            <writerThreadCount>-2147483648</writerThreadCount>
+        </writeParams>
+        <querySetResult concurrency="1-3" executionDurationInMs="5000" executionType="SERIAL" numberOfExecutions="100">
+            <queryResults expectedAggregateRowCount="50" id="q1" statement="select count(*) from PHERF.USER_DEFINED_TEST">
+                <threadTimes threadName="1,1">
+                    <runTimesInMs elapsedDurationInMs="37" resultRowCount="50" startTime="2017-09-08T19:27:41.556-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="20" resultRowCount="50" startTime="2017-09-08T19:27:41.671-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:41.691-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="22" resultRowCount="50" startTime="2017-09-08T19:27:41.709-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="20" resultRowCount="50" startTime="2017-09-08T19:27:41.731-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:41.751-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:41.767-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:41.784-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:41.798-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:41.810-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:41.825-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:41.836-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:41.852-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:41.865-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:41.878-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:41.895-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:41.909-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:41.924-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:41.941-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:41.959-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:41.975-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="20" resultRowCount="50" startTime="2017-09-08T19:27:41.988-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.008-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.017-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.025-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.037-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.049-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.057-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.066-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.075-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.082-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.092-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.103-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.112-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.121-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:42.130-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.143-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.153-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.161-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.169-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.177-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.186-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.196-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.206-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.217-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.227-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.239-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.251-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.260-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.269-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.278-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.288-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.298-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.308-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.317-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.326-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.334-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.342-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.350-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.358-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.366-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.375-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.384-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.395-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.404-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.413-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.422-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.433-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.443-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.452-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.461-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.470-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.482-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.493-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.504-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:42.514-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.521-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.529-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.538-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:42.548-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.555-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.563-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.571-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.581-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.589-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.598-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.606-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.615-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.624-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.633-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:42.643-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.656-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:42.664-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:42.671-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.812-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.821-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.830-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.838-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.850-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.861-04:00"/>
+                </threadTimes>
+                <threadTimes threadName="1,2">
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.871-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.884-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:42.895-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.908-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.917-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:42.928-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:42.942-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.955-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.964-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:42.975-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.982-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.990-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.998-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="34" resultRowCount="50" startTime="2017-09-08T19:27:43.006-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.040-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.051-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.061-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.076-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.090-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.101-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.112-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.121-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.136-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.143-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:43.150-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.158-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.165-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.177-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.186-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.196-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.203-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:43.213-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.221-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.231-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.242-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:43.252-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.269-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.282-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.296-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.308-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.321-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.333-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.346-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.357-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.371-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.385-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.399-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.412-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.424-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.437-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.452-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.466-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.478-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.492-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.506-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.523-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.538-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.554-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.568-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:43.583-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.601-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.617-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.631-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.645-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.660-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.673-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.686-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.697-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:43.710-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.728-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.741-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.755-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.766-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.778-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.788-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.800-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.340-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.349-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.359-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.371-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:44.384-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.401-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.414-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:44.424-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.432-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.441-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.448-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:44.458-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.466-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.473-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.481-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.488-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.495-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.501-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.508-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.517-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:44.524-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:44.532-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:44.540-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.548-04:00"/>
+                </threadTimes>
+                <threadTimes threadName="2,2">
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:42.872-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.885-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.895-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.907-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.918-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:42.929-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.936-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.945-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.955-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.965-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:42.973-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:42.988-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.006-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="33" resultRowCount="50" startTime="2017-09-08T19:27:43.017-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.050-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:43.062-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:43.070-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.078-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.091-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.100-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.112-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.123-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.131-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.141-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.151-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.165-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.176-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.185-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.194-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:43.204-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.210-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.217-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.224-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.231-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.238-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:43.247-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.255-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.269-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.283-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.296-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.308-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.320-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.333-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.345-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.357-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.369-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.385-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.398-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.411-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.425-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.437-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.451-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.466-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.478-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.492-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.507-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.523-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.538-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.553-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.568-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.584-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:43.600-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.617-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.631-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.645-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.661-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.674-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.686-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.697-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:43.710-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.727-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.742-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.754-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.766-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.776-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.788-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.800-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="51" resultRowCount="50" startTime="2017-09-08T19:27:43.812-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.224-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.230-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.236-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.243-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.250-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:44.257-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.265-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.275-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.284-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.294-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="20" resultRowCount="50" startTime="2017-09-08T19:27:44.301-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.321-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.330-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.339-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.351-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.357-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.364-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.371-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.377-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.384-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.394-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.401-04:00"/>
+                </threadTimes>
+                <threadTimes threadName="1,3">
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.556-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.569-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.583-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.595-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.611-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.623-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="22" resultRowCount="50" startTime="2017-09-08T19:27:44.635-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.657-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.672-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.688-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:44.700-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.711-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.725-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.737-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.749-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.762-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.777-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.793-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.807-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.819-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.832-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.847-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.859-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.871-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.878-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.890-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.904-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.919-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.933-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.949-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.965-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.974-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.986-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.001-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.016-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:45.031-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:45.049-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.063-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="29" resultRowCount="50" startTime="2017-09-08T19:27:45.078-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:45.107-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.123-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.138-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.153-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.168-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.180-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.192-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:45.204-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.221-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="20" resultRowCount="50" startTime="2017-09-08T19:27:45.234-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="34" resultRowCount="50" startTime="2017-09-08T19:27:45.254-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.288-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:45.300-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:45.307-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:45.317-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:45.326-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:45.333-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.520-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.532-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.543-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.555-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.562-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.570-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.578-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.586-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.595-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.605-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.611-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.617-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.625-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.633-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.640-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.648-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.656-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.662-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.669-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.679-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.687-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.694-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.699-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.705-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.711-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.716-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.722-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.730-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.736-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.743-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.751-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.756-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.762-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.768-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.774-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.780-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.786-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.792-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.798-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.805-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.810-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.816-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.825-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.832-04:00"/>
+                </threadTimes>
+                <threadTimes threadName="2,3">
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.556-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.570-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.583-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.598-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:44.612-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.623-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="22" resultRowCount="50" startTime="2017-09-08T19:27:44.635-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:44.657-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.674-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.686-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.699-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.711-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.724-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.737-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.749-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.761-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.777-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.793-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.807-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.819-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.834-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.847-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.859-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.871-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.883-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.896-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.908-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:44.922-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.939-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.953-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.965-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.975-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:44.984-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.001-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:45.016-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:45.032-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:45.049-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:45.063-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="27" resultRowCount="50" startTime="2017-09-08T19:27:45.079-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.107-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:45.122-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.138-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:45.153-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.167-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.180-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.192-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.205-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:45.220-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:45.234-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="36" resultRowCount="50" startTime="2017-09-08T19:27:45.252-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:45.288-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.299-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="22" resultRowCount="50" startTime="2017-09-08T19:27:45.312-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.334-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.079-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.089-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.097-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.106-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.113-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.119-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.124-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.130-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.136-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.144-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.152-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.160-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.166-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.174-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.183-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.190-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.199-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.207-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.219-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:46.230-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.244-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.255-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.268-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="28" resultRowCount="50" startTime="2017-09-08T19:27:46.281-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.309-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.322-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:46.335-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:46.350-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.364-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.376-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.386-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.397-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.403-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.410-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.418-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.426-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:46.435-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.449-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.457-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.463-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.469-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.477-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.482-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.488-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.495-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.502-04:00"/>
+                </threadTimes>
+                <threadTimes threadName="3,3">
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.557-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.569-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.583-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.598-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:44.612-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.623-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="22" resultRowCount="50" startTime="2017-09-08T19:27:44.636-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:44.657-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.674-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.687-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.700-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.712-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.725-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.737-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.749-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.761-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.777-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.793-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.806-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.819-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.832-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.847-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:44.859-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:44.870-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.887-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.902-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.916-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.931-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.947-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:44.963-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:44.974-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.985-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="19" resultRowCount="50" startTime="2017-09-08T19:27:45.015-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.034-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.049-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.064-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="28" resultRowCount="50" startTime="2017-09-08T19:27:45.079-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:45.107-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.124-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.138-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.152-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.167-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.180-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.192-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:45.205-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.221-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="21" resultRowCount="50" startTime="2017-09-08T19:27:45.234-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="35" resultRowCount="50" startTime="2017-09-08T19:27:45.255-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="22" resultRowCount="50" startTime="2017-09-08T19:27:45.290-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="21" resultRowCount="50" startTime="2017-09-08T19:27:45.312-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:45.333-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.079-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.090-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="23" resultRowCount="50" startTime="2017-09-08T19:27:46.102-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="20" resultRowCount="50" startTime="2017-09-08T19:27:46.125-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:46.145-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.161-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:46.174-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.190-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:46.201-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.219-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.230-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.242-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.255-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.268-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="28" resultRowCount="50" startTime="2017-09-08T19:27:46.281-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.309-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.323-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:46.335-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:46.350-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.364-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.376-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.386-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.398-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.410-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.418-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.427-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:46.435-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.449-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.457-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.469-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.475-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.484-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.494-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.501-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.509-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.516-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.525-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.533-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.544-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.554-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.563-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.570-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.578-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.586-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.595-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.604-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.617-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.625-04:00"/>
+                </threadTimes>
+            </queryResults>
+        </querySetResult>
+    </scenarioResult>
+</ns3:dataModelResult>

http://git-wip-us.apache.org/repos/asf/phoenix/blob/4004ed17/phoenix-pherf/src/test/resources/scenario/malicious_scenario_with_dtd.xml
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/test/resources/scenario/malicious_scenario_with_dtd.xml b/phoenix-pherf/src/test/resources/scenario/malicious_scenario_with_dtd.xml
new file mode 100644
index 0000000..e8528f3
--- /dev/null
+++ b/phoenix-pherf/src/test/resources/scenario/malicious_scenario_with_dtd.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~   or more contributor license agreements.  See the NOTICE file
+  ~   distributed with this work for additional information
+  ~   regarding copyright ownership.  The ASF licenses this file
+  ~   to you under the Apache License, Version 2.0 (the
+  ~   "License"); you may not use this file except in compliance
+  ~   with the License.  You may obtain a copy of the License at
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~   Unless required by applicable law or agreed to in writing, software
+  ~   distributed under the License is distributed on an "AS IS" BASIS,
+  ~   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~   See the License for the specific language governing permissions and
+  ~   limitations under the License.
+  -->
+<!DOCTYPE datamodel
+[
+<!ENTITY name SYSTEM "/">
+]
+>
+<datamodel>
+    <datamapping>
+        <column>
+            <!-- This column type defines what will generally happen to VARCHAR fields unless they are explicitly defined or overridden elsewhere -->
+            <type>VARCHAR</type>
+            <dataSequence>RANDOM</dataSequence>
+            <length>15</length>
+            <name>&name;</name>
+        </column>
+    </datamapping>
+    <scenarios>
+        <!--  Scenario level DDL that is dynamically executed before the Write Workload is run.
+              This pattern is really useful when you want to write data to multi-tenant view and the tenant id is
+              tightly bound to the scenario. In such cases you can't create the view through the data model flow.
+              The value of the tableName attribute is name of the view that is dynamically created based on the DDL
+              in the ddl attribute. Queries accessing the View will need to manually make sure Pherf was run with the -l option at
+              least once. 
+         -->
+        <scenario tableName="PHERF.TEST_MT_VIEW" tenantId="abcdefghijklmno" 
+                    ddl="CREATE VIEW IF NOT EXISTS PHERF.TEST_MT_VIEW (field1 VARCHAR) AS SELECT * FROM PHERF.TEST_MULTI_TENANT_TABLE" 
+                    rowCount="100" name="testMTDdlWriteScenario">
+        </scenario>
+        
+    </scenarios>
+</datamodel>


[4/8] phoenix git commit: PHOENIX-4188 Disable inline-DTDs in Pherf XML records

Posted by el...@apache.org.
PHOENIX-4188 Disable inline-DTDs in Pherf XML records


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/f8100caa
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/f8100caa
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/f8100caa

Branch: refs/heads/4.x-HBase-1.2
Commit: f8100caa6b8c747a535fa2b7e138456dc17bc18c
Parents: 149eddc
Author: Josh Elser <el...@apache.org>
Authored: Fri Sep 8 22:50:25 2017 -0400
Committer: Josh Elser <el...@apache.org>
Committed: Tue Sep 12 13:40:06 2017 -0400

----------------------------------------------------------------------
 .../config/scenario/user_defined_scenario.xml   |   4 +-
 phoenix-pherf/pom.xml                           |   4 +
 .../pherf/configuration/XMLConfigParser.java    |  15 +-
 .../pherf/result/impl/XMLResultHandler.java     |  17 +-
 .../phoenix/pherf/ConfigurationParserTest.java  |   5 +-
 .../phoenix/pherf/XMLConfigParserTest.java      |  53 ++
 .../pherf/result/impl/XMLResultHandlerTest.java |  53 ++
 .../resources/malicious_results_with_dtd.xml    | 676 +++++++++++++++++++
 .../scenario/malicious_scenario_with_dtd.xml    |  48 ++
 9 files changed, 863 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/f8100caa/phoenix-pherf/config/scenario/user_defined_scenario.xml
----------------------------------------------------------------------
diff --git a/phoenix-pherf/config/scenario/user_defined_scenario.xml b/phoenix-pherf/config/scenario/user_defined_scenario.xml
index e54d76a..6435e29 100644
--- a/phoenix-pherf/config/scenario/user_defined_scenario.xml
+++ b/phoenix-pherf/config/scenario/user_defined_scenario.xml
@@ -82,7 +82,7 @@
                     <maxValue>2019-09-15 11:00:00.000</maxValue>
                 </datavalue>
                 <datavalue distribution="10">
-                    <value>2019-09-19 00:01:00</value>
+                    <value>2019-09-19 00:01:00.000</value>
                 </datavalue>
                 <datavalue distribution="10">
                     <minValue>2019-09-22 00:01:00.000</minValue>
@@ -131,4 +131,4 @@
             </querySet>
         </scenario>
     </scenarios>
-</datamodel>
\ No newline at end of file
+</datamodel>

http://git-wip-us.apache.org/repos/asf/phoenix/blob/f8100caa/phoenix-pherf/pom.xml
----------------------------------------------------------------------
diff --git a/phoenix-pherf/pom.xml b/phoenix-pherf/pom.xml
index 3128785..9fc3541 100644
--- a/phoenix-pherf/pom.xml
+++ b/phoenix-pherf/pom.xml
@@ -219,6 +219,10 @@
 								<include>com.googlecode.java-diff-utils:diffutils</include>
 								<include>org.apache.commons:commons-lang3</include>
 								<include>org.apache.commons:commons-math3</include>
+								<include>commons-cli:commons-cli</include>
+								<include>joda-time:joda-time</include>
+								<include>org.apache.commons:commons-csv</include>
+								<include>commons-lang:commons-lang</include>
 							</includes>
 						</artifactSet>
 						<filters>

http://git-wip-us.apache.org/repos/asf/phoenix/blob/f8100caa/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/configuration/XMLConfigParser.java
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/configuration/XMLConfigParser.java b/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/configuration/XMLConfigParser.java
index 93dc94c..f3ec12f 100644
--- a/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/configuration/XMLConfigParser.java
+++ b/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/configuration/XMLConfigParser.java
@@ -29,6 +29,10 @@ import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBException;
 import javax.xml.bind.Marshaller;
 import javax.xml.bind.Unmarshaller;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.transform.stream.StreamSource;
 
 import org.apache.phoenix.pherf.PherfConstants;
 import org.apache.phoenix.pherf.exception.FileLoaderException;
@@ -108,16 +112,19 @@ public class XMLConfigParser {
      * @param file Name of File
      * @return {@link org.apache.phoenix.pherf.configuration.DataModel} Returns DataModel from
      * XML configuration
-     * @throws JAXBException
      */
     // TODO Remove static calls
-    public static DataModel readDataModel(Path file) throws JAXBException {
+    public static DataModel readDataModel(Path file) throws JAXBException, XMLStreamException {
+        XMLInputFactory xif = XMLInputFactory.newFactory();
+        xif.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false);
+        xif.setProperty(XMLInputFactory.SUPPORT_DTD, false);
         JAXBContext jaxbContext = JAXBContext.newInstance(DataModel.class);
         Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
         String fName = PherfConstants.RESOURCE_SCENARIO + "/" + file.getFileName().toString();
         logger.info("Open config file: " + fName);
-        return (DataModel) jaxbUnmarshaller
-                .unmarshal(XMLConfigParser.class.getResourceAsStream(fName));
+        XMLStreamReader xmlReader = xif.createXMLStreamReader(
+            new StreamSource(XMLConfigParser.class.getResourceAsStream(fName)));
+        return (DataModel) jaxbUnmarshaller.unmarshal(xmlReader);
     }
 
     // TODO Remove static calls

http://git-wip-us.apache.org/repos/asf/phoenix/blob/f8100caa/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/result/impl/XMLResultHandler.java
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/result/impl/XMLResultHandler.java b/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/result/impl/XMLResultHandler.java
index 990c9be..05b5a2b 100644
--- a/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/result/impl/XMLResultHandler.java
+++ b/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/result/impl/XMLResultHandler.java
@@ -24,6 +24,10 @@ import org.apache.phoenix.pherf.result.file.ResultFileDetails;
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.Marshaller;
 import javax.xml.bind.Unmarshaller;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.transform.stream.StreamSource;
+
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
@@ -66,12 +70,19 @@ public class XMLResultHandler extends DefaultResultHandler{
 
     @Override
     public synchronized List<Result> read() throws Exception {
+        return readFromResultFile(new File(resultFileName));
+    }
 
+    List<Result> readFromResultFile(File resultsFile) throws Exception {
+        XMLInputFactory xif = XMLInputFactory.newFactory();
+        xif.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false);
+        xif.setProperty(XMLInputFactory.SUPPORT_DTD, false);
         JAXBContext jaxbContext = JAXBContext.newInstance(DataModelResult.class);
         Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
-        File XMLfile = new File(resultFileName);
-        List<ResultValue> resultValue = new ArrayList();
-        resultValue.add(new ResultValue<>((DataModelResult) jaxbUnmarshaller.unmarshal(XMLfile)));
+        @SuppressWarnings("rawtypes")
+        List<ResultValue> resultValue = new ArrayList<>();
+        XMLStreamReader xmlReader = xif.createXMLStreamReader(new StreamSource(resultsFile));
+        resultValue.add(new ResultValue<>(jaxbUnmarshaller.unmarshal(xmlReader)));
         List<Result> results = new ArrayList<>();
         results.add(new Result(ResultFileDetails.XML, null, resultValue));
         return results;

http://git-wip-us.apache.org/repos/asf/phoenix/blob/f8100caa/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/ConfigurationParserTest.java
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/ConfigurationParserTest.java b/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/ConfigurationParserTest.java
index 2f08bc0..bd17192 100644
--- a/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/ConfigurationParserTest.java
+++ b/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/ConfigurationParserTest.java
@@ -18,7 +18,6 @@
 
 package org.apache.phoenix.pherf;
 
-import java.net.URISyntaxException;
 import java.net.URL;
 import java.nio.file.Path;
 import java.nio.file.Paths;
@@ -129,7 +128,7 @@ public class ConfigurationParserTest extends ResultBaseTest {
         return resourceUrl;
     }
 
-    private List<Scenario> getScenarios() throws URISyntaxException, JAXBException{
+    private List<Scenario> getScenarios() throws Exception {
         DataModel data = getDataModel();
         List<Scenario> scenarioList = data.getScenarios();
         assertTrue("Could not load the scenarios from xml.",
@@ -137,7 +136,7 @@ public class ConfigurationParserTest extends ResultBaseTest {
         return scenarioList;
     }
 
-    private DataModel getDataModel() throws URISyntaxException, JAXBException {
+    private DataModel getDataModel() throws Exception {
         Path resourcePath = Paths.get(getResourceUrl().toURI());
         return XMLConfigParser.readDataModel(resourcePath);
     }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/f8100caa/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/XMLConfigParserTest.java
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/XMLConfigParserTest.java b/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/XMLConfigParserTest.java
new file mode 100644
index 0000000..c5746f9
--- /dev/null
+++ b/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/XMLConfigParserTest.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.apache.phoenix.pherf;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.net.URL;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+import javax.xml.bind.UnmarshalException;
+import javax.xml.stream.XMLStreamException;
+
+import org.apache.phoenix.pherf.configuration.XMLConfigParser;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class XMLConfigParserTest {
+    private static final Logger LOG = LoggerFactory.getLogger(XMLConfigParserTest.class);
+  
+    @Test
+    public void testDTDInScenario() throws Exception {
+        URL scenarioUrl = XMLConfigParserTest.class.getResource("/scenario/malicious_scenario_with_dtd.xml");
+        assertNotNull(scenarioUrl);
+        Path p = Paths.get(scenarioUrl.toURI());
+        try {
+            XMLConfigParser.readDataModel(p);
+            fail("The scenario should have failed to parse because it contains a DTD");
+        } catch (UnmarshalException e) {
+            // If we don't parse the DTD, the variable 'name' won't be defined in the XML
+            LOG.warn("Caught expected exception", e);
+            Throwable cause = e.getLinkedException();
+            assertTrue("Cause was a " + cause.getClass(), cause instanceof XMLStreamException);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/phoenix/blob/f8100caa/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/result/impl/XMLResultHandlerTest.java
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/result/impl/XMLResultHandlerTest.java b/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/result/impl/XMLResultHandlerTest.java
new file mode 100644
index 0000000..98c492f
--- /dev/null
+++ b/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/result/impl/XMLResultHandlerTest.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.apache.phoenix.pherf.result.impl;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.File;
+import java.net.URL;
+
+import javax.xml.bind.UnmarshalException;
+import javax.xml.stream.XMLStreamException;
+
+import org.apache.phoenix.pherf.XMLConfigParserTest;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class XMLResultHandlerTest {
+    private static final Logger LOG = LoggerFactory.getLogger(XMLResultHandlerTest.class);
+
+    @Test
+    public void testDTDInResults() throws Exception {
+        URL resultsUrl = XMLConfigParserTest.class.getResource("/malicious_results_with_dtd.xml");
+        assertNotNull(resultsUrl);
+        File resultsFile = new File(resultsUrl.getFile());
+        XMLResultHandler handler = new XMLResultHandler();
+        try {
+          handler.readFromResultFile(resultsFile);
+          fail("Expected to see an exception parsing the results with a DTD");
+        } catch (UnmarshalException e) {
+          // If we don't parse the DTD, the variable 'name' won't be defined in the XML
+          LOG.debug("Caught expected exception", e);
+          Throwable cause = e.getLinkedException();
+          assertTrue("Cause was a " + cause.getClass(), cause instanceof XMLStreamException);
+        }
+    }
+}


[8/8] phoenix git commit: PHOENIX-4188 Disable inline-DTDs in Pherf XML records

Posted by el...@apache.org.
PHOENIX-4188 Disable inline-DTDs in Pherf XML records


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/4004ed17
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/4004ed17
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/4004ed17

Branch: refs/heads/4.x-HBase-0.98
Commit: 4004ed17fd67c93e7d67f8c365740e01632597be
Parents: 3aec050
Author: Josh Elser <el...@apache.org>
Authored: Fri Sep 8 22:50:25 2017 -0400
Committer: Josh Elser <el...@apache.org>
Committed: Tue Sep 12 13:50:53 2017 -0400

----------------------------------------------------------------------
 .../config/scenario/user_defined_scenario.xml   |   4 +-
 phoenix-pherf/pom.xml                           |   4 +
 .../pherf/configuration/XMLConfigParser.java    |  15 +-
 .../pherf/result/impl/XMLResultHandler.java     |  17 +-
 .../phoenix/pherf/ConfigurationParserTest.java  |   5 +-
 .../phoenix/pherf/XMLConfigParserTest.java      |  53 ++
 .../pherf/result/impl/XMLResultHandlerTest.java |  53 ++
 .../resources/malicious_results_with_dtd.xml    | 676 +++++++++++++++++++
 .../scenario/malicious_scenario_with_dtd.xml    |  48 ++
 9 files changed, 863 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/4004ed17/phoenix-pherf/config/scenario/user_defined_scenario.xml
----------------------------------------------------------------------
diff --git a/phoenix-pherf/config/scenario/user_defined_scenario.xml b/phoenix-pherf/config/scenario/user_defined_scenario.xml
index e54d76a..6435e29 100644
--- a/phoenix-pherf/config/scenario/user_defined_scenario.xml
+++ b/phoenix-pherf/config/scenario/user_defined_scenario.xml
@@ -82,7 +82,7 @@
                     <maxValue>2019-09-15 11:00:00.000</maxValue>
                 </datavalue>
                 <datavalue distribution="10">
-                    <value>2019-09-19 00:01:00</value>
+                    <value>2019-09-19 00:01:00.000</value>
                 </datavalue>
                 <datavalue distribution="10">
                     <minValue>2019-09-22 00:01:00.000</minValue>
@@ -131,4 +131,4 @@
             </querySet>
         </scenario>
     </scenarios>
-</datamodel>
\ No newline at end of file
+</datamodel>

http://git-wip-us.apache.org/repos/asf/phoenix/blob/4004ed17/phoenix-pherf/pom.xml
----------------------------------------------------------------------
diff --git a/phoenix-pherf/pom.xml b/phoenix-pherf/pom.xml
index 2b4641d..cd31fbd 100644
--- a/phoenix-pherf/pom.xml
+++ b/phoenix-pherf/pom.xml
@@ -219,6 +219,10 @@
 								<include>com.googlecode.java-diff-utils:diffutils</include>
 								<include>org.apache.commons:commons-lang3</include>
 								<include>org.apache.commons:commons-math3</include>
+								<include>commons-cli:commons-cli</include>
+								<include>joda-time:joda-time</include>
+								<include>org.apache.commons:commons-csv</include>
+								<include>commons-lang:commons-lang</include>
 							</includes>
 						</artifactSet>
 						<filters>

http://git-wip-us.apache.org/repos/asf/phoenix/blob/4004ed17/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/configuration/XMLConfigParser.java
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/configuration/XMLConfigParser.java b/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/configuration/XMLConfigParser.java
index 93dc94c..f3ec12f 100644
--- a/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/configuration/XMLConfigParser.java
+++ b/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/configuration/XMLConfigParser.java
@@ -29,6 +29,10 @@ import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBException;
 import javax.xml.bind.Marshaller;
 import javax.xml.bind.Unmarshaller;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.transform.stream.StreamSource;
 
 import org.apache.phoenix.pherf.PherfConstants;
 import org.apache.phoenix.pherf.exception.FileLoaderException;
@@ -108,16 +112,19 @@ public class XMLConfigParser {
      * @param file Name of File
      * @return {@link org.apache.phoenix.pherf.configuration.DataModel} Returns DataModel from
      * XML configuration
-     * @throws JAXBException
      */
     // TODO Remove static calls
-    public static DataModel readDataModel(Path file) throws JAXBException {
+    public static DataModel readDataModel(Path file) throws JAXBException, XMLStreamException {
+        XMLInputFactory xif = XMLInputFactory.newFactory();
+        xif.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false);
+        xif.setProperty(XMLInputFactory.SUPPORT_DTD, false);
         JAXBContext jaxbContext = JAXBContext.newInstance(DataModel.class);
         Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
         String fName = PherfConstants.RESOURCE_SCENARIO + "/" + file.getFileName().toString();
         logger.info("Open config file: " + fName);
-        return (DataModel) jaxbUnmarshaller
-                .unmarshal(XMLConfigParser.class.getResourceAsStream(fName));
+        XMLStreamReader xmlReader = xif.createXMLStreamReader(
+            new StreamSource(XMLConfigParser.class.getResourceAsStream(fName)));
+        return (DataModel) jaxbUnmarshaller.unmarshal(xmlReader);
     }
 
     // TODO Remove static calls

http://git-wip-us.apache.org/repos/asf/phoenix/blob/4004ed17/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/result/impl/XMLResultHandler.java
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/result/impl/XMLResultHandler.java b/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/result/impl/XMLResultHandler.java
index 990c9be..05b5a2b 100644
--- a/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/result/impl/XMLResultHandler.java
+++ b/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/result/impl/XMLResultHandler.java
@@ -24,6 +24,10 @@ import org.apache.phoenix.pherf.result.file.ResultFileDetails;
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.Marshaller;
 import javax.xml.bind.Unmarshaller;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.transform.stream.StreamSource;
+
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
@@ -66,12 +70,19 @@ public class XMLResultHandler extends DefaultResultHandler{
 
     @Override
     public synchronized List<Result> read() throws Exception {
+        return readFromResultFile(new File(resultFileName));
+    }
 
+    List<Result> readFromResultFile(File resultsFile) throws Exception {
+        XMLInputFactory xif = XMLInputFactory.newFactory();
+        xif.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false);
+        xif.setProperty(XMLInputFactory.SUPPORT_DTD, false);
         JAXBContext jaxbContext = JAXBContext.newInstance(DataModelResult.class);
         Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
-        File XMLfile = new File(resultFileName);
-        List<ResultValue> resultValue = new ArrayList();
-        resultValue.add(new ResultValue<>((DataModelResult) jaxbUnmarshaller.unmarshal(XMLfile)));
+        @SuppressWarnings("rawtypes")
+        List<ResultValue> resultValue = new ArrayList<>();
+        XMLStreamReader xmlReader = xif.createXMLStreamReader(new StreamSource(resultsFile));
+        resultValue.add(new ResultValue<>(jaxbUnmarshaller.unmarshal(xmlReader)));
         List<Result> results = new ArrayList<>();
         results.add(new Result(ResultFileDetails.XML, null, resultValue));
         return results;

http://git-wip-us.apache.org/repos/asf/phoenix/blob/4004ed17/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/ConfigurationParserTest.java
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/ConfigurationParserTest.java b/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/ConfigurationParserTest.java
index a5c908e..1f1006d 100644
--- a/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/ConfigurationParserTest.java
+++ b/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/ConfigurationParserTest.java
@@ -18,7 +18,6 @@
 
 package org.apache.phoenix.pherf;
 
-import java.net.URISyntaxException;
 import java.net.URL;
 import java.nio.file.Path;
 import java.nio.file.Paths;
@@ -129,7 +128,7 @@ public class ConfigurationParserTest extends ResultBaseTest {
         return resourceUrl;
     }
 
-    private List<Scenario> getScenarios() throws URISyntaxException, JAXBException{
+    private List<Scenario> getScenarios() throws Exception {
         DataModel data = getDataModel();
         List<Scenario> scenarioList = data.getScenarios();
         assertTrue("Could not load the scenarios from xml.",
@@ -137,7 +136,7 @@ public class ConfigurationParserTest extends ResultBaseTest {
         return scenarioList;
     }
 
-    private DataModel getDataModel() throws URISyntaxException, JAXBException {
+    private DataModel getDataModel() throws Exception {
         Path resourcePath = Paths.get(getResourceUrl().toURI());
         return XMLConfigParser.readDataModel(resourcePath);
     }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/4004ed17/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/XMLConfigParserTest.java
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/XMLConfigParserTest.java b/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/XMLConfigParserTest.java
new file mode 100644
index 0000000..c5746f9
--- /dev/null
+++ b/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/XMLConfigParserTest.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.apache.phoenix.pherf;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.net.URL;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+import javax.xml.bind.UnmarshalException;
+import javax.xml.stream.XMLStreamException;
+
+import org.apache.phoenix.pherf.configuration.XMLConfigParser;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class XMLConfigParserTest {
+    private static final Logger LOG = LoggerFactory.getLogger(XMLConfigParserTest.class);
+  
+    @Test
+    public void testDTDInScenario() throws Exception {
+        URL scenarioUrl = XMLConfigParserTest.class.getResource("/scenario/malicious_scenario_with_dtd.xml");
+        assertNotNull(scenarioUrl);
+        Path p = Paths.get(scenarioUrl.toURI());
+        try {
+            XMLConfigParser.readDataModel(p);
+            fail("The scenario should have failed to parse because it contains a DTD");
+        } catch (UnmarshalException e) {
+            // If we don't parse the DTD, the variable 'name' won't be defined in the XML
+            LOG.warn("Caught expected exception", e);
+            Throwable cause = e.getLinkedException();
+            assertTrue("Cause was a " + cause.getClass(), cause instanceof XMLStreamException);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/phoenix/blob/4004ed17/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/result/impl/XMLResultHandlerTest.java
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/result/impl/XMLResultHandlerTest.java b/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/result/impl/XMLResultHandlerTest.java
new file mode 100644
index 0000000..98c492f
--- /dev/null
+++ b/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/result/impl/XMLResultHandlerTest.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.apache.phoenix.pherf.result.impl;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.File;
+import java.net.URL;
+
+import javax.xml.bind.UnmarshalException;
+import javax.xml.stream.XMLStreamException;
+
+import org.apache.phoenix.pherf.XMLConfigParserTest;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class XMLResultHandlerTest {
+    private static final Logger LOG = LoggerFactory.getLogger(XMLResultHandlerTest.class);
+
+    @Test
+    public void testDTDInResults() throws Exception {
+        URL resultsUrl = XMLConfigParserTest.class.getResource("/malicious_results_with_dtd.xml");
+        assertNotNull(resultsUrl);
+        File resultsFile = new File(resultsUrl.getFile());
+        XMLResultHandler handler = new XMLResultHandler();
+        try {
+          handler.readFromResultFile(resultsFile);
+          fail("Expected to see an exception parsing the results with a DTD");
+        } catch (UnmarshalException e) {
+          // If we don't parse the DTD, the variable 'name' won't be defined in the XML
+          LOG.debug("Caught expected exception", e);
+          Throwable cause = e.getLinkedException();
+          assertTrue("Cause was a " + cause.getClass(), cause instanceof XMLStreamException);
+        }
+    }
+}


[5/8] phoenix git commit: PHOENIX-4188 Disable inline-DTDs in Pherf XML records

Posted by el...@apache.org.
http://git-wip-us.apache.org/repos/asf/phoenix/blob/050a3538/phoenix-pherf/src/test/resources/malicious_results_with_dtd.xml
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/test/resources/malicious_results_with_dtd.xml b/phoenix-pherf/src/test/resources/malicious_results_with_dtd.xml
new file mode 100644
index 0000000..ab24c41
--- /dev/null
+++ b/phoenix-pherf/src/test/resources/malicious_results_with_dtd.xml
@@ -0,0 +1,676 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~   or more contributor license agreements.  See the NOTICE file
+  ~   distributed with this work for additional information
+  ~   regarding copyright ownership.  The ASF licenses this file
+  ~   to you under the Apache License, Version 2.0 (the
+  ~   "License"); you may not use this file except in compliance
+  ~   with the License.  You may obtain a copy of the License at
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~   Unless required by applicable law or agreed to in writing, software
+  ~   distributed under the License is distributed on an "AS IS" BASIS,
+  ~   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~   See the License for the specific language governing permissions and
+  ~   limitations under the License.
+  -->
+<!DOCTYPE dataModelResult
+[
+<!ENTITY name SYSTEM "/">
+]
+>
+<ns3:dataModelResult xmlns:ns2="org.apache.phoenix.pherf.configuration.DataModel" xmlns:ns3="org.apache.phoenix.pherf.result" zookeeper="localhost:2181/hbase" name="test_scenario">
+    <scenarioResult name="myscenario" rowCount="50" tableName="PHERF.USER_DEFINED_TEST">
+        <dataOverride>
+            <column>
+                <dataSequence>RANDOM</dataSequence>
+                <length>10</length>
+                <maxValue>-2147483648</maxValue>
+                <minValue>-2147483648</minValue>
+                <name>&name;</name>
+                <nullChance>-2147483648</nullChance>
+                <precision>-2147483648</precision>
+                <type>VARCHAR</type>
+                <useCurrentDate>false</useCurrentDate>
+                <userDefined>true</userDefined>
+            </column>
+        </dataOverride>
+        <phoenixProperties>
+            <entry>
+                <key>phoenix.schema.isNamespaceMappingEnabled</key>
+                <value>false</value>
+            </entry>
+            <entry>
+                <key>phoenix.queryserver.serialization</key>
+                <value>PROTOBUF</value>
+            </entry>
+            <entry>
+                <key>phoenix.queryserver.http.port</key>
+                <value>8765</value>
+            </entry>
+        </phoenixProperties>
+        <writeParams executionDurationInMs="9223372036854775807">
+            <batchSize>-9223372036854775808</batchSize>
+            <threadSleepDuration>-9223372036854775808</threadSleepDuration>
+            <writerThreadCount>-2147483648</writerThreadCount>
+        </writeParams>
+        <querySetResult concurrency="1-3" executionDurationInMs="5000" executionType="SERIAL" numberOfExecutions="100">
+            <queryResults expectedAggregateRowCount="50" id="q1" statement="select count(*) from PHERF.USER_DEFINED_TEST">
+                <threadTimes threadName="1,1">
+                    <runTimesInMs elapsedDurationInMs="37" resultRowCount="50" startTime="2017-09-08T19:27:41.556-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="20" resultRowCount="50" startTime="2017-09-08T19:27:41.671-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:41.691-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="22" resultRowCount="50" startTime="2017-09-08T19:27:41.709-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="20" resultRowCount="50" startTime="2017-09-08T19:27:41.731-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:41.751-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:41.767-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:41.784-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:41.798-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:41.810-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:41.825-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:41.836-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:41.852-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:41.865-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:41.878-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:41.895-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:41.909-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:41.924-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:41.941-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:41.959-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:41.975-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="20" resultRowCount="50" startTime="2017-09-08T19:27:41.988-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.008-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.017-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.025-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.037-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.049-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.057-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.066-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.075-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.082-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.092-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.103-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.112-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.121-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:42.130-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.143-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.153-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.161-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.169-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.177-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.186-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.196-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.206-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.217-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.227-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.239-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.251-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.260-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.269-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.278-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.288-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.298-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.308-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.317-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.326-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.334-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.342-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.350-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.358-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.366-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.375-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.384-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.395-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.404-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.413-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.422-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.433-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.443-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.452-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.461-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.470-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.482-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.493-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.504-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:42.514-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.521-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.529-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.538-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:42.548-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.555-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.563-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.571-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.581-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.589-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.598-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.606-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.615-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.624-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.633-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:42.643-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.656-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:42.664-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:42.671-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.812-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.821-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.830-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.838-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.850-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.861-04:00"/>
+                </threadTimes>
+                <threadTimes threadName="1,2">
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.871-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.884-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:42.895-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.908-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.917-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:42.928-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:42.942-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.955-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.964-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:42.975-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.982-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.990-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.998-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="34" resultRowCount="50" startTime="2017-09-08T19:27:43.006-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.040-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.051-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.061-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.076-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.090-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.101-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.112-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.121-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.136-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.143-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:43.150-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.158-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.165-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.177-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.186-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.196-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.203-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:43.213-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.221-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.231-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.242-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:43.252-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.269-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.282-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.296-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.308-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.321-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.333-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.346-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.357-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.371-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.385-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.399-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.412-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.424-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.437-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.452-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.466-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.478-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.492-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.506-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.523-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.538-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.554-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.568-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:43.583-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.601-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.617-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.631-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.645-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.660-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.673-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.686-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.697-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:43.710-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.728-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.741-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.755-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.766-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.778-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.788-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.800-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.340-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.349-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.359-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.371-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:44.384-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.401-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.414-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:44.424-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.432-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.441-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.448-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:44.458-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.466-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.473-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.481-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.488-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.495-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.501-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.508-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.517-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:44.524-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:44.532-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:44.540-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.548-04:00"/>
+                </threadTimes>
+                <threadTimes threadName="2,2">
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:42.872-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.885-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.895-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.907-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.918-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:42.929-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.936-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.945-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.955-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.965-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:42.973-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:42.988-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.006-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="33" resultRowCount="50" startTime="2017-09-08T19:27:43.017-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.050-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:43.062-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:43.070-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.078-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.091-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.100-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.112-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.123-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.131-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.141-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.151-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.165-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.176-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.185-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.194-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:43.204-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.210-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.217-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.224-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.231-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.238-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:43.247-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.255-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.269-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.283-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.296-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.308-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.320-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.333-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.345-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.357-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.369-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.385-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.398-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.411-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.425-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.437-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.451-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.466-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.478-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.492-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.507-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.523-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.538-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.553-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.568-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.584-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:43.600-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.617-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.631-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.645-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.661-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.674-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.686-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.697-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:43.710-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.727-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.742-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.754-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.766-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.776-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.788-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.800-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="51" resultRowCount="50" startTime="2017-09-08T19:27:43.812-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.224-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.230-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.236-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.243-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.250-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:44.257-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.265-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.275-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.284-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.294-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="20" resultRowCount="50" startTime="2017-09-08T19:27:44.301-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.321-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.330-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.339-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.351-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.357-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.364-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.371-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.377-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.384-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.394-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.401-04:00"/>
+                </threadTimes>
+                <threadTimes threadName="1,3">
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.556-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.569-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.583-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.595-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.611-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.623-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="22" resultRowCount="50" startTime="2017-09-08T19:27:44.635-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.657-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.672-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.688-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:44.700-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.711-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.725-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.737-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.749-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.762-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.777-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.793-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.807-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.819-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.832-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.847-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.859-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.871-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.878-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.890-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.904-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.919-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.933-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.949-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.965-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.974-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.986-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.001-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.016-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:45.031-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:45.049-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.063-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="29" resultRowCount="50" startTime="2017-09-08T19:27:45.078-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:45.107-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.123-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.138-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.153-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.168-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.180-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.192-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:45.204-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.221-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="20" resultRowCount="50" startTime="2017-09-08T19:27:45.234-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="34" resultRowCount="50" startTime="2017-09-08T19:27:45.254-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.288-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:45.300-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:45.307-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:45.317-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:45.326-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:45.333-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.520-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.532-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.543-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.555-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.562-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.570-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.578-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.586-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.595-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.605-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.611-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.617-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.625-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.633-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.640-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.648-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.656-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.662-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.669-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.679-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.687-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.694-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.699-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.705-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.711-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.716-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.722-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.730-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.736-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.743-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.751-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.756-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.762-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.768-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.774-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.780-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.786-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.792-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.798-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.805-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.810-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.816-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.825-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.832-04:00"/>
+                </threadTimes>
+                <threadTimes threadName="2,3">
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.556-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.570-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.583-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.598-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:44.612-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.623-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="22" resultRowCount="50" startTime="2017-09-08T19:27:44.635-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:44.657-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.674-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.686-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.699-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.711-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.724-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.737-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.749-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.761-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.777-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.793-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.807-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.819-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.834-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.847-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.859-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.871-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.883-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.896-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.908-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:44.922-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.939-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.953-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.965-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.975-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:44.984-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.001-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:45.016-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:45.032-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:45.049-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:45.063-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="27" resultRowCount="50" startTime="2017-09-08T19:27:45.079-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.107-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:45.122-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.138-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:45.153-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.167-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.180-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.192-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.205-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:45.220-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:45.234-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="36" resultRowCount="50" startTime="2017-09-08T19:27:45.252-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:45.288-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.299-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="22" resultRowCount="50" startTime="2017-09-08T19:27:45.312-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.334-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.079-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.089-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.097-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.106-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.113-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.119-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.124-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.130-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.136-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.144-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.152-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.160-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.166-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.174-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.183-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.190-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.199-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.207-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.219-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:46.230-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.244-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.255-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.268-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="28" resultRowCount="50" startTime="2017-09-08T19:27:46.281-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.309-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.322-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:46.335-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:46.350-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.364-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.376-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.386-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.397-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.403-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.410-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.418-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.426-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:46.435-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.449-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.457-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.463-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.469-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.477-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.482-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.488-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.495-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.502-04:00"/>
+                </threadTimes>
+                <threadTimes threadName="3,3">
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.557-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.569-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.583-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.598-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:44.612-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.623-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="22" resultRowCount="50" startTime="2017-09-08T19:27:44.636-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:44.657-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.674-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.687-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.700-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.712-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.725-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.737-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.749-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.761-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.777-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.793-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.806-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.819-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.832-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.847-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:44.859-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:44.870-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.887-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.902-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.916-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.931-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.947-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:44.963-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:44.974-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.985-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="19" resultRowCount="50" startTime="2017-09-08T19:27:45.015-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.034-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.049-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.064-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="28" resultRowCount="50" startTime="2017-09-08T19:27:45.079-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:45.107-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.124-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.138-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.152-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.167-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.180-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.192-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:45.205-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.221-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="21" resultRowCount="50" startTime="2017-09-08T19:27:45.234-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="35" resultRowCount="50" startTime="2017-09-08T19:27:45.255-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="22" resultRowCount="50" startTime="2017-09-08T19:27:45.290-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="21" resultRowCount="50" startTime="2017-09-08T19:27:45.312-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:45.333-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.079-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.090-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="23" resultRowCount="50" startTime="2017-09-08T19:27:46.102-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="20" resultRowCount="50" startTime="2017-09-08T19:27:46.125-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:46.145-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.161-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:46.174-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.190-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:46.201-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.219-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.230-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.242-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.255-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.268-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="28" resultRowCount="50" startTime="2017-09-08T19:27:46.281-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.309-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.323-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:46.335-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:46.350-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.364-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.376-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.386-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.398-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.410-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.418-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.427-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:46.435-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.449-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.457-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.469-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.475-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.484-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.494-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.501-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.509-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.516-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.525-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.533-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.544-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.554-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.563-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.570-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.578-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.586-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.595-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.604-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.617-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.625-04:00"/>
+                </threadTimes>
+            </queryResults>
+        </querySetResult>
+    </scenarioResult>
+</ns3:dataModelResult>

http://git-wip-us.apache.org/repos/asf/phoenix/blob/050a3538/phoenix-pherf/src/test/resources/scenario/malicious_scenario_with_dtd.xml
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/test/resources/scenario/malicious_scenario_with_dtd.xml b/phoenix-pherf/src/test/resources/scenario/malicious_scenario_with_dtd.xml
new file mode 100644
index 0000000..e8528f3
--- /dev/null
+++ b/phoenix-pherf/src/test/resources/scenario/malicious_scenario_with_dtd.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~   or more contributor license agreements.  See the NOTICE file
+  ~   distributed with this work for additional information
+  ~   regarding copyright ownership.  The ASF licenses this file
+  ~   to you under the Apache License, Version 2.0 (the
+  ~   "License"); you may not use this file except in compliance
+  ~   with the License.  You may obtain a copy of the License at
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~   Unless required by applicable law or agreed to in writing, software
+  ~   distributed under the License is distributed on an "AS IS" BASIS,
+  ~   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~   See the License for the specific language governing permissions and
+  ~   limitations under the License.
+  -->
+<!DOCTYPE datamodel
+[
+<!ENTITY name SYSTEM "/">
+]
+>
+<datamodel>
+    <datamapping>
+        <column>
+            <!-- This column type defines what will generally happen to VARCHAR fields unless they are explicitly defined or overridden elsewhere -->
+            <type>VARCHAR</type>
+            <dataSequence>RANDOM</dataSequence>
+            <length>15</length>
+            <name>&name;</name>
+        </column>
+    </datamapping>
+    <scenarios>
+        <!--  Scenario level DDL that is dynamically executed before the Write Workload is run.
+              This pattern is really useful when you want to write data to multi-tenant view and the tenant id is
+              tightly bound to the scenario. In such cases you can't create the view through the data model flow.
+              The value of the tableName attribute is name of the view that is dynamically created based on the DDL
+              in the ddl attribute. Queries accessing the View will need to manually make sure Pherf was run with the -l option at
+              least once. 
+         -->
+        <scenario tableName="PHERF.TEST_MT_VIEW" tenantId="abcdefghijklmno" 
+                    ddl="CREATE VIEW IF NOT EXISTS PHERF.TEST_MT_VIEW (field1 VARCHAR) AS SELECT * FROM PHERF.TEST_MULTI_TENANT_TABLE" 
+                    rowCount="100" name="testMTDdlWriteScenario">
+        </scenario>
+        
+    </scenarios>
+</datamodel>


[3/8] phoenix git commit: PHOENIX-4188 Disable inline-DTDs in Pherf XML records

Posted by el...@apache.org.
http://git-wip-us.apache.org/repos/asf/phoenix/blob/f8100caa/phoenix-pherf/src/test/resources/malicious_results_with_dtd.xml
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/test/resources/malicious_results_with_dtd.xml b/phoenix-pherf/src/test/resources/malicious_results_with_dtd.xml
new file mode 100644
index 0000000..ab24c41
--- /dev/null
+++ b/phoenix-pherf/src/test/resources/malicious_results_with_dtd.xml
@@ -0,0 +1,676 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~   or more contributor license agreements.  See the NOTICE file
+  ~   distributed with this work for additional information
+  ~   regarding copyright ownership.  The ASF licenses this file
+  ~   to you under the Apache License, Version 2.0 (the
+  ~   "License"); you may not use this file except in compliance
+  ~   with the License.  You may obtain a copy of the License at
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~   Unless required by applicable law or agreed to in writing, software
+  ~   distributed under the License is distributed on an "AS IS" BASIS,
+  ~   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~   See the License for the specific language governing permissions and
+  ~   limitations under the License.
+  -->
+<!DOCTYPE dataModelResult
+[
+<!ENTITY name SYSTEM "/">
+]
+>
+<ns3:dataModelResult xmlns:ns2="org.apache.phoenix.pherf.configuration.DataModel" xmlns:ns3="org.apache.phoenix.pherf.result" zookeeper="localhost:2181/hbase" name="test_scenario">
+    <scenarioResult name="myscenario" rowCount="50" tableName="PHERF.USER_DEFINED_TEST">
+        <dataOverride>
+            <column>
+                <dataSequence>RANDOM</dataSequence>
+                <length>10</length>
+                <maxValue>-2147483648</maxValue>
+                <minValue>-2147483648</minValue>
+                <name>&name;</name>
+                <nullChance>-2147483648</nullChance>
+                <precision>-2147483648</precision>
+                <type>VARCHAR</type>
+                <useCurrentDate>false</useCurrentDate>
+                <userDefined>true</userDefined>
+            </column>
+        </dataOverride>
+        <phoenixProperties>
+            <entry>
+                <key>phoenix.schema.isNamespaceMappingEnabled</key>
+                <value>false</value>
+            </entry>
+            <entry>
+                <key>phoenix.queryserver.serialization</key>
+                <value>PROTOBUF</value>
+            </entry>
+            <entry>
+                <key>phoenix.queryserver.http.port</key>
+                <value>8765</value>
+            </entry>
+        </phoenixProperties>
+        <writeParams executionDurationInMs="9223372036854775807">
+            <batchSize>-9223372036854775808</batchSize>
+            <threadSleepDuration>-9223372036854775808</threadSleepDuration>
+            <writerThreadCount>-2147483648</writerThreadCount>
+        </writeParams>
+        <querySetResult concurrency="1-3" executionDurationInMs="5000" executionType="SERIAL" numberOfExecutions="100">
+            <queryResults expectedAggregateRowCount="50" id="q1" statement="select count(*) from PHERF.USER_DEFINED_TEST">
+                <threadTimes threadName="1,1">
+                    <runTimesInMs elapsedDurationInMs="37" resultRowCount="50" startTime="2017-09-08T19:27:41.556-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="20" resultRowCount="50" startTime="2017-09-08T19:27:41.671-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:41.691-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="22" resultRowCount="50" startTime="2017-09-08T19:27:41.709-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="20" resultRowCount="50" startTime="2017-09-08T19:27:41.731-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:41.751-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:41.767-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:41.784-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:41.798-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:41.810-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:41.825-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:41.836-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:41.852-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:41.865-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:41.878-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:41.895-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:41.909-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:41.924-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:41.941-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:41.959-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:41.975-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="20" resultRowCount="50" startTime="2017-09-08T19:27:41.988-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.008-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.017-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.025-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.037-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.049-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.057-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.066-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.075-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.082-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.092-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.103-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.112-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.121-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:42.130-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.143-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.153-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.161-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.169-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.177-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.186-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.196-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.206-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.217-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.227-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.239-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.251-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.260-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.269-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.278-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.288-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.298-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.308-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.317-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.326-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.334-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.342-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.350-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.358-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.366-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.375-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.384-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.395-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.404-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.413-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.422-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.433-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.443-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.452-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.461-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.470-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.482-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.493-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.504-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:42.514-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.521-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.529-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.538-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:42.548-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.555-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.563-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.571-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.581-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.589-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.598-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.606-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.615-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.624-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.633-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:42.643-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.656-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:42.664-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:42.671-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.812-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.821-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.830-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.838-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.850-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.861-04:00"/>
+                </threadTimes>
+                <threadTimes threadName="1,2">
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.871-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.884-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:42.895-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.908-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.917-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:42.928-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:42.942-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.955-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.964-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:42.975-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.982-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.990-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.998-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="34" resultRowCount="50" startTime="2017-09-08T19:27:43.006-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.040-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.051-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.061-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.076-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.090-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.101-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.112-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.121-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.136-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.143-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:43.150-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.158-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.165-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.177-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.186-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.196-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.203-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:43.213-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.221-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.231-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.242-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:43.252-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.269-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.282-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.296-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.308-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.321-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.333-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.346-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.357-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.371-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.385-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.399-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.412-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.424-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.437-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.452-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.466-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.478-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.492-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.506-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.523-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.538-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.554-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.568-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:43.583-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.601-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.617-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.631-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.645-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.660-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.673-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.686-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.697-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:43.710-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.728-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.741-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.755-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.766-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.778-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.788-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.800-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.340-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.349-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.359-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.371-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:44.384-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.401-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.414-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:44.424-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.432-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.441-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.448-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:44.458-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.466-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.473-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.481-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.488-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.495-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.501-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.508-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.517-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:44.524-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:44.532-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:44.540-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.548-04:00"/>
+                </threadTimes>
+                <threadTimes threadName="2,2">
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:42.872-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.885-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:42.895-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.907-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:42.918-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:42.929-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:42.936-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.945-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:42.955-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:42.965-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:42.973-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:42.988-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.006-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="33" resultRowCount="50" startTime="2017-09-08T19:27:43.017-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.050-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:43.062-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:43.070-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.078-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.091-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.100-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.112-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.123-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.131-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.141-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.151-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.165-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.176-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.185-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.194-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:43.204-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.210-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.217-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.224-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:43.231-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:43.238-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:43.247-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.255-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.269-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.283-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.296-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.308-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.320-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.333-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.345-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.357-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.369-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.385-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.398-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.411-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.425-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.437-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.451-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.466-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.478-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.492-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.507-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.523-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.538-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.553-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.568-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.584-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:43.600-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.617-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:43.631-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:43.645-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.661-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.674-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:43.686-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:43.697-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:43.710-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:43.727-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.742-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.754-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:43.766-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.776-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.788-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:43.800-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="51" resultRowCount="50" startTime="2017-09-08T19:27:43.812-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.224-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.230-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.236-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.243-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.250-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:44.257-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.265-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.275-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.284-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.294-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="20" resultRowCount="50" startTime="2017-09-08T19:27:44.301-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.321-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.330-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.339-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.351-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.357-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.364-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.371-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.377-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.384-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.394-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:44.401-04:00"/>
+                </threadTimes>
+                <threadTimes threadName="1,3">
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.556-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.569-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.583-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.595-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.611-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.623-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="22" resultRowCount="50" startTime="2017-09-08T19:27:44.635-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.657-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.672-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.688-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:44.700-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.711-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.725-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.737-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.749-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.762-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.777-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.793-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.807-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.819-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.832-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.847-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.859-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:44.871-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.878-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.890-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.904-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.919-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.933-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.949-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.965-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.974-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.986-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.001-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.016-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:45.031-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:45.049-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.063-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="29" resultRowCount="50" startTime="2017-09-08T19:27:45.078-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:45.107-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.123-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.138-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.153-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.168-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.180-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.192-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:45.204-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.221-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="20" resultRowCount="50" startTime="2017-09-08T19:27:45.234-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="34" resultRowCount="50" startTime="2017-09-08T19:27:45.254-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.288-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:45.300-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:45.307-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:45.317-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:45.326-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:45.333-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.520-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.532-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.543-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.555-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.562-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.570-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.578-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.586-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.595-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.605-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.611-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.617-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.625-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.633-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.640-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.648-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.656-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.662-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.669-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.679-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.687-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.694-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.699-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.705-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.711-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.716-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.722-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.730-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.736-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.743-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.751-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.756-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.762-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.768-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.774-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.780-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.786-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.792-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.798-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.805-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.810-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.816-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.825-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.832-04:00"/>
+                </threadTimes>
+                <threadTimes threadName="2,3">
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.556-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.570-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.583-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.598-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:44.612-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.623-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="22" resultRowCount="50" startTime="2017-09-08T19:27:44.635-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:44.657-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.674-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.686-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.699-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.711-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.724-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.737-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.749-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.761-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.777-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.793-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.807-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.819-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.834-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.847-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.859-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.871-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.883-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.896-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.908-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:44.922-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.939-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.953-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:44.965-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:44.975-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:44.984-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.001-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:45.016-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:45.032-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:45.049-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:45.063-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="27" resultRowCount="50" startTime="2017-09-08T19:27:45.079-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.107-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:45.122-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.138-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:45.153-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.167-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.180-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.192-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.205-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:45.220-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:45.234-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="36" resultRowCount="50" startTime="2017-09-08T19:27:45.252-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:45.288-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.299-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="22" resultRowCount="50" startTime="2017-09-08T19:27:45.312-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.334-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.079-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.089-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.097-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.106-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.113-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.119-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.124-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.130-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.136-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.144-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.152-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.160-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.166-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.174-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.183-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.190-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.199-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.207-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.219-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:46.230-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.244-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.255-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.268-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="28" resultRowCount="50" startTime="2017-09-08T19:27:46.281-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.309-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.322-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:46.335-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:46.350-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.364-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.376-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.386-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.397-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.403-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.410-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.418-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.426-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:46.435-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.449-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.457-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="6" resultRowCount="50" startTime="2017-09-08T19:27:46.463-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.469-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.477-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="5" resultRowCount="50" startTime="2017-09-08T19:27:46.482-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.488-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.495-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.502-04:00"/>
+                </threadTimes>
+                <threadTimes threadName="3,3">
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.557-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.569-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.583-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.598-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:44.612-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.623-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="22" resultRowCount="50" startTime="2017-09-08T19:27:44.636-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:44.657-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.674-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.687-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.700-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.712-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.725-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.737-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.749-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.761-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.777-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.793-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.806-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:44.819-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.832-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:44.847-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:44.859-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:44.870-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.887-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:44.902-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.916-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.931-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:44.947-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:44.963-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:44.974-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:44.985-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="19" resultRowCount="50" startTime="2017-09-08T19:27:45.015-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.034-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.049-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.064-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="28" resultRowCount="50" startTime="2017-09-08T19:27:45.079-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:45.107-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.124-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.138-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:45.152-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.167-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.180-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:45.192-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:45.205-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:45.221-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="21" resultRowCount="50" startTime="2017-09-08T19:27:45.234-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="35" resultRowCount="50" startTime="2017-09-08T19:27:45.255-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="22" resultRowCount="50" startTime="2017-09-08T19:27:45.290-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="21" resultRowCount="50" startTime="2017-09-08T19:27:45.312-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="17" resultRowCount="50" startTime="2017-09-08T19:27:45.333-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.079-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.090-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="23" resultRowCount="50" startTime="2017-09-08T19:27:46.102-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="20" resultRowCount="50" startTime="2017-09-08T19:27:46.125-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:46.145-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.161-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="16" resultRowCount="50" startTime="2017-09-08T19:27:46.174-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.190-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="18" resultRowCount="50" startTime="2017-09-08T19:27:46.201-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.219-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.230-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.242-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.255-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.268-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="28" resultRowCount="50" startTime="2017-09-08T19:27:46.281-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.309-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.323-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="15" resultRowCount="50" startTime="2017-09-08T19:27:46.335-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:46.350-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.364-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.376-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.386-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="12" resultRowCount="50" startTime="2017-09-08T19:27:46.398-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.410-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.418-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.427-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="14" resultRowCount="50" startTime="2017-09-08T19:27:46.435-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.449-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.457-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.469-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.475-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.484-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.494-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.501-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.509-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.516-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.525-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="11" resultRowCount="50" startTime="2017-09-08T19:27:46.533-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="10" resultRowCount="50" startTime="2017-09-08T19:27:46.544-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.554-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="7" resultRowCount="50" startTime="2017-09-08T19:27:46.563-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.570-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.578-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.586-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="9" resultRowCount="50" startTime="2017-09-08T19:27:46.595-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="13" resultRowCount="50" startTime="2017-09-08T19:27:46.604-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.617-04:00"/>
+                    <runTimesInMs elapsedDurationInMs="8" resultRowCount="50" startTime="2017-09-08T19:27:46.625-04:00"/>
+                </threadTimes>
+            </queryResults>
+        </querySetResult>
+    </scenarioResult>
+</ns3:dataModelResult>

http://git-wip-us.apache.org/repos/asf/phoenix/blob/f8100caa/phoenix-pherf/src/test/resources/scenario/malicious_scenario_with_dtd.xml
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/test/resources/scenario/malicious_scenario_with_dtd.xml b/phoenix-pherf/src/test/resources/scenario/malicious_scenario_with_dtd.xml
new file mode 100644
index 0000000..e8528f3
--- /dev/null
+++ b/phoenix-pherf/src/test/resources/scenario/malicious_scenario_with_dtd.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~   or more contributor license agreements.  See the NOTICE file
+  ~   distributed with this work for additional information
+  ~   regarding copyright ownership.  The ASF licenses this file
+  ~   to you under the Apache License, Version 2.0 (the
+  ~   "License"); you may not use this file except in compliance
+  ~   with the License.  You may obtain a copy of the License at
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~   Unless required by applicable law or agreed to in writing, software
+  ~   distributed under the License is distributed on an "AS IS" BASIS,
+  ~   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~   See the License for the specific language governing permissions and
+  ~   limitations under the License.
+  -->
+<!DOCTYPE datamodel
+[
+<!ENTITY name SYSTEM "/">
+]
+>
+<datamodel>
+    <datamapping>
+        <column>
+            <!-- This column type defines what will generally happen to VARCHAR fields unless they are explicitly defined or overridden elsewhere -->
+            <type>VARCHAR</type>
+            <dataSequence>RANDOM</dataSequence>
+            <length>15</length>
+            <name>&name;</name>
+        </column>
+    </datamapping>
+    <scenarios>
+        <!--  Scenario level DDL that is dynamically executed before the Write Workload is run.
+              This pattern is really useful when you want to write data to multi-tenant view and the tenant id is
+              tightly bound to the scenario. In such cases you can't create the view through the data model flow.
+              The value of the tableName attribute is name of the view that is dynamically created based on the DDL
+              in the ddl attribute. Queries accessing the View will need to manually make sure Pherf was run with the -l option at
+              least once. 
+         -->
+        <scenario tableName="PHERF.TEST_MT_VIEW" tenantId="abcdefghijklmno" 
+                    ddl="CREATE VIEW IF NOT EXISTS PHERF.TEST_MT_VIEW (field1 VARCHAR) AS SELECT * FROM PHERF.TEST_MULTI_TENANT_TABLE" 
+                    rowCount="100" name="testMTDdlWriteScenario">
+        </scenario>
+        
+    </scenarios>
+</datamodel>


[6/8] phoenix git commit: PHOENIX-4188 Disable inline-DTDs in Pherf XML records

Posted by el...@apache.org.
PHOENIX-4188 Disable inline-DTDs in Pherf XML records


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/050a3538
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/050a3538
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/050a3538

Branch: refs/heads/4.x-HBase-1.1
Commit: 050a35382fe6921e3163d4158d3306ec8964e49d
Parents: ef6e536
Author: Josh Elser <el...@apache.org>
Authored: Fri Sep 8 22:50:25 2017 -0400
Committer: Josh Elser <el...@apache.org>
Committed: Tue Sep 12 13:45:33 2017 -0400

----------------------------------------------------------------------
 .../config/scenario/user_defined_scenario.xml   |   4 +-
 phoenix-pherf/pom.xml                           |   4 +
 .../pherf/configuration/XMLConfigParser.java    |  15 +-
 .../pherf/result/impl/XMLResultHandler.java     |  17 +-
 .../phoenix/pherf/ConfigurationParserTest.java  |   5 +-
 .../phoenix/pherf/XMLConfigParserTest.java      |  53 ++
 .../pherf/result/impl/XMLResultHandlerTest.java |  53 ++
 .../resources/malicious_results_with_dtd.xml    | 676 +++++++++++++++++++
 .../scenario/malicious_scenario_with_dtd.xml    |  48 ++
 9 files changed, 863 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/050a3538/phoenix-pherf/config/scenario/user_defined_scenario.xml
----------------------------------------------------------------------
diff --git a/phoenix-pherf/config/scenario/user_defined_scenario.xml b/phoenix-pherf/config/scenario/user_defined_scenario.xml
index e54d76a..6435e29 100644
--- a/phoenix-pherf/config/scenario/user_defined_scenario.xml
+++ b/phoenix-pherf/config/scenario/user_defined_scenario.xml
@@ -82,7 +82,7 @@
                     <maxValue>2019-09-15 11:00:00.000</maxValue>
                 </datavalue>
                 <datavalue distribution="10">
-                    <value>2019-09-19 00:01:00</value>
+                    <value>2019-09-19 00:01:00.000</value>
                 </datavalue>
                 <datavalue distribution="10">
                     <minValue>2019-09-22 00:01:00.000</minValue>
@@ -131,4 +131,4 @@
             </querySet>
         </scenario>
     </scenarios>
-</datamodel>
\ No newline at end of file
+</datamodel>

http://git-wip-us.apache.org/repos/asf/phoenix/blob/050a3538/phoenix-pherf/pom.xml
----------------------------------------------------------------------
diff --git a/phoenix-pherf/pom.xml b/phoenix-pherf/pom.xml
index 1c38768..4d0ed15 100644
--- a/phoenix-pherf/pom.xml
+++ b/phoenix-pherf/pom.xml
@@ -219,6 +219,10 @@
 								<include>com.googlecode.java-diff-utils:diffutils</include>
 								<include>org.apache.commons:commons-lang3</include>
 								<include>org.apache.commons:commons-math3</include>
+								<include>commons-cli:commons-cli</include>
+								<include>joda-time:joda-time</include>
+								<include>org.apache.commons:commons-csv</include>
+								<include>commons-lang:commons-lang</include>
 							</includes>
 						</artifactSet>
 						<filters>

http://git-wip-us.apache.org/repos/asf/phoenix/blob/050a3538/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/configuration/XMLConfigParser.java
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/configuration/XMLConfigParser.java b/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/configuration/XMLConfigParser.java
index 93dc94c..f3ec12f 100644
--- a/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/configuration/XMLConfigParser.java
+++ b/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/configuration/XMLConfigParser.java
@@ -29,6 +29,10 @@ import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBException;
 import javax.xml.bind.Marshaller;
 import javax.xml.bind.Unmarshaller;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.transform.stream.StreamSource;
 
 import org.apache.phoenix.pherf.PherfConstants;
 import org.apache.phoenix.pherf.exception.FileLoaderException;
@@ -108,16 +112,19 @@ public class XMLConfigParser {
      * @param file Name of File
      * @return {@link org.apache.phoenix.pherf.configuration.DataModel} Returns DataModel from
      * XML configuration
-     * @throws JAXBException
      */
     // TODO Remove static calls
-    public static DataModel readDataModel(Path file) throws JAXBException {
+    public static DataModel readDataModel(Path file) throws JAXBException, XMLStreamException {
+        XMLInputFactory xif = XMLInputFactory.newFactory();
+        xif.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false);
+        xif.setProperty(XMLInputFactory.SUPPORT_DTD, false);
         JAXBContext jaxbContext = JAXBContext.newInstance(DataModel.class);
         Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
         String fName = PherfConstants.RESOURCE_SCENARIO + "/" + file.getFileName().toString();
         logger.info("Open config file: " + fName);
-        return (DataModel) jaxbUnmarshaller
-                .unmarshal(XMLConfigParser.class.getResourceAsStream(fName));
+        XMLStreamReader xmlReader = xif.createXMLStreamReader(
+            new StreamSource(XMLConfigParser.class.getResourceAsStream(fName)));
+        return (DataModel) jaxbUnmarshaller.unmarshal(xmlReader);
     }
 
     // TODO Remove static calls

http://git-wip-us.apache.org/repos/asf/phoenix/blob/050a3538/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/result/impl/XMLResultHandler.java
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/result/impl/XMLResultHandler.java b/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/result/impl/XMLResultHandler.java
index 990c9be..05b5a2b 100644
--- a/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/result/impl/XMLResultHandler.java
+++ b/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/result/impl/XMLResultHandler.java
@@ -24,6 +24,10 @@ import org.apache.phoenix.pherf.result.file.ResultFileDetails;
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.Marshaller;
 import javax.xml.bind.Unmarshaller;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.transform.stream.StreamSource;
+
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
@@ -66,12 +70,19 @@ public class XMLResultHandler extends DefaultResultHandler{
 
     @Override
     public synchronized List<Result> read() throws Exception {
+        return readFromResultFile(new File(resultFileName));
+    }
 
+    List<Result> readFromResultFile(File resultsFile) throws Exception {
+        XMLInputFactory xif = XMLInputFactory.newFactory();
+        xif.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false);
+        xif.setProperty(XMLInputFactory.SUPPORT_DTD, false);
         JAXBContext jaxbContext = JAXBContext.newInstance(DataModelResult.class);
         Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
-        File XMLfile = new File(resultFileName);
-        List<ResultValue> resultValue = new ArrayList();
-        resultValue.add(new ResultValue<>((DataModelResult) jaxbUnmarshaller.unmarshal(XMLfile)));
+        @SuppressWarnings("rawtypes")
+        List<ResultValue> resultValue = new ArrayList<>();
+        XMLStreamReader xmlReader = xif.createXMLStreamReader(new StreamSource(resultsFile));
+        resultValue.add(new ResultValue<>(jaxbUnmarshaller.unmarshal(xmlReader)));
         List<Result> results = new ArrayList<>();
         results.add(new Result(ResultFileDetails.XML, null, resultValue));
         return results;

http://git-wip-us.apache.org/repos/asf/phoenix/blob/050a3538/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/ConfigurationParserTest.java
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/ConfigurationParserTest.java b/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/ConfigurationParserTest.java
index a5c908e..1f1006d 100644
--- a/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/ConfigurationParserTest.java
+++ b/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/ConfigurationParserTest.java
@@ -18,7 +18,6 @@
 
 package org.apache.phoenix.pherf;
 
-import java.net.URISyntaxException;
 import java.net.URL;
 import java.nio.file.Path;
 import java.nio.file.Paths;
@@ -129,7 +128,7 @@ public class ConfigurationParserTest extends ResultBaseTest {
         return resourceUrl;
     }
 
-    private List<Scenario> getScenarios() throws URISyntaxException, JAXBException{
+    private List<Scenario> getScenarios() throws Exception {
         DataModel data = getDataModel();
         List<Scenario> scenarioList = data.getScenarios();
         assertTrue("Could not load the scenarios from xml.",
@@ -137,7 +136,7 @@ public class ConfigurationParserTest extends ResultBaseTest {
         return scenarioList;
     }
 
-    private DataModel getDataModel() throws URISyntaxException, JAXBException {
+    private DataModel getDataModel() throws Exception {
         Path resourcePath = Paths.get(getResourceUrl().toURI());
         return XMLConfigParser.readDataModel(resourcePath);
     }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/050a3538/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/XMLConfigParserTest.java
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/XMLConfigParserTest.java b/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/XMLConfigParserTest.java
new file mode 100644
index 0000000..c5746f9
--- /dev/null
+++ b/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/XMLConfigParserTest.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.apache.phoenix.pherf;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.net.URL;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+import javax.xml.bind.UnmarshalException;
+import javax.xml.stream.XMLStreamException;
+
+import org.apache.phoenix.pherf.configuration.XMLConfigParser;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class XMLConfigParserTest {
+    private static final Logger LOG = LoggerFactory.getLogger(XMLConfigParserTest.class);
+  
+    @Test
+    public void testDTDInScenario() throws Exception {
+        URL scenarioUrl = XMLConfigParserTest.class.getResource("/scenario/malicious_scenario_with_dtd.xml");
+        assertNotNull(scenarioUrl);
+        Path p = Paths.get(scenarioUrl.toURI());
+        try {
+            XMLConfigParser.readDataModel(p);
+            fail("The scenario should have failed to parse because it contains a DTD");
+        } catch (UnmarshalException e) {
+            // If we don't parse the DTD, the variable 'name' won't be defined in the XML
+            LOG.warn("Caught expected exception", e);
+            Throwable cause = e.getLinkedException();
+            assertTrue("Cause was a " + cause.getClass(), cause instanceof XMLStreamException);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/phoenix/blob/050a3538/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/result/impl/XMLResultHandlerTest.java
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/result/impl/XMLResultHandlerTest.java b/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/result/impl/XMLResultHandlerTest.java
new file mode 100644
index 0000000..98c492f
--- /dev/null
+++ b/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/result/impl/XMLResultHandlerTest.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.apache.phoenix.pherf.result.impl;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.File;
+import java.net.URL;
+
+import javax.xml.bind.UnmarshalException;
+import javax.xml.stream.XMLStreamException;
+
+import org.apache.phoenix.pherf.XMLConfigParserTest;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class XMLResultHandlerTest {
+    private static final Logger LOG = LoggerFactory.getLogger(XMLResultHandlerTest.class);
+
+    @Test
+    public void testDTDInResults() throws Exception {
+        URL resultsUrl = XMLConfigParserTest.class.getResource("/malicious_results_with_dtd.xml");
+        assertNotNull(resultsUrl);
+        File resultsFile = new File(resultsUrl.getFile());
+        XMLResultHandler handler = new XMLResultHandler();
+        try {
+          handler.readFromResultFile(resultsFile);
+          fail("Expected to see an exception parsing the results with a DTD");
+        } catch (UnmarshalException e) {
+          // If we don't parse the DTD, the variable 'name' won't be defined in the XML
+          LOG.debug("Caught expected exception", e);
+          Throwable cause = e.getLinkedException();
+          assertTrue("Cause was a " + cause.getClass(), cause instanceof XMLStreamException);
+        }
+    }
+}


[2/8] phoenix git commit: PHOENIX-4188 Disable inline-DTDs in Pherf XML records

Posted by el...@apache.org.
PHOENIX-4188 Disable inline-DTDs in Pherf XML records


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/4ee35057
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/4ee35057
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/4ee35057

Branch: refs/heads/master
Commit: 4ee35057c6a63c347f959361338b517d4f5b38c4
Parents: 1d4025a
Author: Josh Elser <el...@apache.org>
Authored: Fri Sep 8 22:50:25 2017 -0400
Committer: Josh Elser <el...@apache.org>
Committed: Tue Sep 12 13:28:33 2017 -0400

----------------------------------------------------------------------
 .../config/scenario/user_defined_scenario.xml   |   4 +-
 phoenix-pherf/pom.xml                           |   4 +
 .../pherf/configuration/XMLConfigParser.java    |  15 +-
 .../pherf/result/impl/XMLResultHandler.java     |  17 +-
 .../phoenix/pherf/ConfigurationParserTest.java  |   5 +-
 .../phoenix/pherf/XMLConfigParserTest.java      |  53 ++
 .../pherf/result/impl/XMLResultHandlerTest.java |  53 ++
 .../resources/malicious_results_with_dtd.xml    | 676 +++++++++++++++++++
 .../scenario/malicious_scenario_with_dtd.xml    |  48 ++
 9 files changed, 863 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/4ee35057/phoenix-pherf/config/scenario/user_defined_scenario.xml
----------------------------------------------------------------------
diff --git a/phoenix-pherf/config/scenario/user_defined_scenario.xml b/phoenix-pherf/config/scenario/user_defined_scenario.xml
index e54d76a..6435e29 100644
--- a/phoenix-pherf/config/scenario/user_defined_scenario.xml
+++ b/phoenix-pherf/config/scenario/user_defined_scenario.xml
@@ -82,7 +82,7 @@
                     <maxValue>2019-09-15 11:00:00.000</maxValue>
                 </datavalue>
                 <datavalue distribution="10">
-                    <value>2019-09-19 00:01:00</value>
+                    <value>2019-09-19 00:01:00.000</value>
                 </datavalue>
                 <datavalue distribution="10">
                     <minValue>2019-09-22 00:01:00.000</minValue>
@@ -131,4 +131,4 @@
             </querySet>
         </scenario>
     </scenarios>
-</datamodel>
\ No newline at end of file
+</datamodel>

http://git-wip-us.apache.org/repos/asf/phoenix/blob/4ee35057/phoenix-pherf/pom.xml
----------------------------------------------------------------------
diff --git a/phoenix-pherf/pom.xml b/phoenix-pherf/pom.xml
index 029ec6c..f65f026 100644
--- a/phoenix-pherf/pom.xml
+++ b/phoenix-pherf/pom.xml
@@ -219,6 +219,10 @@
 								<include>com.googlecode.java-diff-utils:diffutils</include>
 								<include>org.apache.commons:commons-lang3</include>
 								<include>org.apache.commons:commons-math3</include>
+								<include>commons-cli:commons-cli</include>
+								<include>joda-time:joda-time</include>
+								<include>org.apache.commons:commons-csv</include>
+								<include>commons-lang:commons-lang</include>
 							</includes>
 						</artifactSet>
 						<filters>

http://git-wip-us.apache.org/repos/asf/phoenix/blob/4ee35057/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/configuration/XMLConfigParser.java
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/configuration/XMLConfigParser.java b/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/configuration/XMLConfigParser.java
index 93dc94c..f3ec12f 100644
--- a/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/configuration/XMLConfigParser.java
+++ b/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/configuration/XMLConfigParser.java
@@ -29,6 +29,10 @@ import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBException;
 import javax.xml.bind.Marshaller;
 import javax.xml.bind.Unmarshaller;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.transform.stream.StreamSource;
 
 import org.apache.phoenix.pherf.PherfConstants;
 import org.apache.phoenix.pherf.exception.FileLoaderException;
@@ -108,16 +112,19 @@ public class XMLConfigParser {
      * @param file Name of File
      * @return {@link org.apache.phoenix.pherf.configuration.DataModel} Returns DataModel from
      * XML configuration
-     * @throws JAXBException
      */
     // TODO Remove static calls
-    public static DataModel readDataModel(Path file) throws JAXBException {
+    public static DataModel readDataModel(Path file) throws JAXBException, XMLStreamException {
+        XMLInputFactory xif = XMLInputFactory.newFactory();
+        xif.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false);
+        xif.setProperty(XMLInputFactory.SUPPORT_DTD, false);
         JAXBContext jaxbContext = JAXBContext.newInstance(DataModel.class);
         Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
         String fName = PherfConstants.RESOURCE_SCENARIO + "/" + file.getFileName().toString();
         logger.info("Open config file: " + fName);
-        return (DataModel) jaxbUnmarshaller
-                .unmarshal(XMLConfigParser.class.getResourceAsStream(fName));
+        XMLStreamReader xmlReader = xif.createXMLStreamReader(
+            new StreamSource(XMLConfigParser.class.getResourceAsStream(fName)));
+        return (DataModel) jaxbUnmarshaller.unmarshal(xmlReader);
     }
 
     // TODO Remove static calls

http://git-wip-us.apache.org/repos/asf/phoenix/blob/4ee35057/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/result/impl/XMLResultHandler.java
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/result/impl/XMLResultHandler.java b/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/result/impl/XMLResultHandler.java
index 990c9be..05b5a2b 100644
--- a/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/result/impl/XMLResultHandler.java
+++ b/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/result/impl/XMLResultHandler.java
@@ -24,6 +24,10 @@ import org.apache.phoenix.pherf.result.file.ResultFileDetails;
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.Marshaller;
 import javax.xml.bind.Unmarshaller;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.transform.stream.StreamSource;
+
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
@@ -66,12 +70,19 @@ public class XMLResultHandler extends DefaultResultHandler{
 
     @Override
     public synchronized List<Result> read() throws Exception {
+        return readFromResultFile(new File(resultFileName));
+    }
 
+    List<Result> readFromResultFile(File resultsFile) throws Exception {
+        XMLInputFactory xif = XMLInputFactory.newFactory();
+        xif.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false);
+        xif.setProperty(XMLInputFactory.SUPPORT_DTD, false);
         JAXBContext jaxbContext = JAXBContext.newInstance(DataModelResult.class);
         Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
-        File XMLfile = new File(resultFileName);
-        List<ResultValue> resultValue = new ArrayList();
-        resultValue.add(new ResultValue<>((DataModelResult) jaxbUnmarshaller.unmarshal(XMLfile)));
+        @SuppressWarnings("rawtypes")
+        List<ResultValue> resultValue = new ArrayList<>();
+        XMLStreamReader xmlReader = xif.createXMLStreamReader(new StreamSource(resultsFile));
+        resultValue.add(new ResultValue<>(jaxbUnmarshaller.unmarshal(xmlReader)));
         List<Result> results = new ArrayList<>();
         results.add(new Result(ResultFileDetails.XML, null, resultValue));
         return results;

http://git-wip-us.apache.org/repos/asf/phoenix/blob/4ee35057/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/ConfigurationParserTest.java
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/ConfigurationParserTest.java b/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/ConfigurationParserTest.java
index a5c908e..1f1006d 100644
--- a/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/ConfigurationParserTest.java
+++ b/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/ConfigurationParserTest.java
@@ -18,7 +18,6 @@
 
 package org.apache.phoenix.pherf;
 
-import java.net.URISyntaxException;
 import java.net.URL;
 import java.nio.file.Path;
 import java.nio.file.Paths;
@@ -129,7 +128,7 @@ public class ConfigurationParserTest extends ResultBaseTest {
         return resourceUrl;
     }
 
-    private List<Scenario> getScenarios() throws URISyntaxException, JAXBException{
+    private List<Scenario> getScenarios() throws Exception {
         DataModel data = getDataModel();
         List<Scenario> scenarioList = data.getScenarios();
         assertTrue("Could not load the scenarios from xml.",
@@ -137,7 +136,7 @@ public class ConfigurationParserTest extends ResultBaseTest {
         return scenarioList;
     }
 
-    private DataModel getDataModel() throws URISyntaxException, JAXBException {
+    private DataModel getDataModel() throws Exception {
         Path resourcePath = Paths.get(getResourceUrl().toURI());
         return XMLConfigParser.readDataModel(resourcePath);
     }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/4ee35057/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/XMLConfigParserTest.java
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/XMLConfigParserTest.java b/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/XMLConfigParserTest.java
new file mode 100644
index 0000000..c5746f9
--- /dev/null
+++ b/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/XMLConfigParserTest.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.apache.phoenix.pherf;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.net.URL;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+import javax.xml.bind.UnmarshalException;
+import javax.xml.stream.XMLStreamException;
+
+import org.apache.phoenix.pherf.configuration.XMLConfigParser;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class XMLConfigParserTest {
+    private static final Logger LOG = LoggerFactory.getLogger(XMLConfigParserTest.class);
+  
+    @Test
+    public void testDTDInScenario() throws Exception {
+        URL scenarioUrl = XMLConfigParserTest.class.getResource("/scenario/malicious_scenario_with_dtd.xml");
+        assertNotNull(scenarioUrl);
+        Path p = Paths.get(scenarioUrl.toURI());
+        try {
+            XMLConfigParser.readDataModel(p);
+            fail("The scenario should have failed to parse because it contains a DTD");
+        } catch (UnmarshalException e) {
+            // If we don't parse the DTD, the variable 'name' won't be defined in the XML
+            LOG.warn("Caught expected exception", e);
+            Throwable cause = e.getLinkedException();
+            assertTrue("Cause was a " + cause.getClass(), cause instanceof XMLStreamException);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/phoenix/blob/4ee35057/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/result/impl/XMLResultHandlerTest.java
----------------------------------------------------------------------
diff --git a/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/result/impl/XMLResultHandlerTest.java b/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/result/impl/XMLResultHandlerTest.java
new file mode 100644
index 0000000..98c492f
--- /dev/null
+++ b/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/result/impl/XMLResultHandlerTest.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.apache.phoenix.pherf.result.impl;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.File;
+import java.net.URL;
+
+import javax.xml.bind.UnmarshalException;
+import javax.xml.stream.XMLStreamException;
+
+import org.apache.phoenix.pherf.XMLConfigParserTest;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class XMLResultHandlerTest {
+    private static final Logger LOG = LoggerFactory.getLogger(XMLResultHandlerTest.class);
+
+    @Test
+    public void testDTDInResults() throws Exception {
+        URL resultsUrl = XMLConfigParserTest.class.getResource("/malicious_results_with_dtd.xml");
+        assertNotNull(resultsUrl);
+        File resultsFile = new File(resultsUrl.getFile());
+        XMLResultHandler handler = new XMLResultHandler();
+        try {
+          handler.readFromResultFile(resultsFile);
+          fail("Expected to see an exception parsing the results with a DTD");
+        } catch (UnmarshalException e) {
+          // If we don't parse the DTD, the variable 'name' won't be defined in the XML
+          LOG.debug("Caught expected exception", e);
+          Throwable cause = e.getLinkedException();
+          assertTrue("Cause was a " + cause.getClass(), cause instanceof XMLStreamException);
+        }
+    }
+}