From b0806dcf21ab811c46b715cfdff8a6307e117810 Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Wed, 1 Sep 2021 18:28:34 +0200 Subject: feat(trace): Add API for trace reading This change introduces a new OpenDC API for reading various trace formats in a streaming manner. --- opendc-trace/opendc-trace-api/build.gradle.kts | 32 ++++++++ .../kotlin/org/opendc/trace/ResourceColumns.kt | 29 ++++++++ .../org/opendc/trace/ResourceStateColumns.kt | 86 ++++++++++++++++++++++ .../src/main/kotlin/org/opendc/trace/Table.kt | 53 +++++++++++++ .../main/kotlin/org/opendc/trace/TableColumn.kt | 59 +++++++++++++++ .../main/kotlin/org/opendc/trace/TableColumns.kt | 59 +++++++++++++++ .../main/kotlin/org/opendc/trace/TableReader.kt | 70 ++++++++++++++++++ .../src/main/kotlin/org/opendc/trace/Tables.kt | 44 +++++++++++ .../main/kotlin/org/opendc/trace/TaskColumns.kt | 86 ++++++++++++++++++++++ .../src/main/kotlin/org/opendc/trace/Trace.kt | 43 +++++++++++ .../kotlin/org/opendc/trace/spi/TraceFormat.kt | 62 ++++++++++++++++ 11 files changed, 623 insertions(+) create mode 100644 opendc-trace/opendc-trace-api/build.gradle.kts create mode 100644 opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceColumns.kt create mode 100644 opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceStateColumns.kt create mode 100644 opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Table.kt create mode 100644 opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableColumn.kt create mode 100644 opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableColumns.kt create mode 100644 opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableReader.kt create mode 100644 opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Tables.kt create mode 100644 opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TaskColumns.kt create mode 100644 opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Trace.kt create mode 100644 opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt (limited to 'opendc-trace') diff --git a/opendc-trace/opendc-trace-api/build.gradle.kts b/opendc-trace/opendc-trace-api/build.gradle.kts new file mode 100644 index 00000000..b2f91593 --- /dev/null +++ b/opendc-trace/opendc-trace-api/build.gradle.kts @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +description = "Workload trace library for OpenDC" + +/* Build configuration */ +plugins { + `kotlin-library-conventions` +} + +dependencies { + api(platform(projects.opendcPlatform)) +} diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceColumns.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceColumns.kt new file mode 100644 index 00000000..65055762 --- /dev/null +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceColumns.kt @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +@file:JvmName("ResourceColumns") +package org.opendc.trace + +/** + * Identifier of the resource. + */ +public val RESOURCE_ID: TableColumn = stringColumn("resource:id") diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceStateColumns.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceStateColumns.kt new file mode 100644 index 00000000..17f52ab6 --- /dev/null +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceStateColumns.kt @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +@file:JvmName("ResourceStateColumns") +package org.opendc.trace + +import java.time.Instant + +/** + * Identifier of the resource. + */ +public val RESOURCE_STATE_ID: TableColumn = stringColumn("resource_state:id") + +/** + * Timestamp for the state. + */ +public val RESOURCE_STATE_TIMESTAMP: TableColumn = TableColumn("resource_state:timestamp", Instant::class.java) + +/** + * Number of CPUs for the resource. + */ +public val RESOURCE_STATE_NCPUS: TableColumn = intColumn("resource_state:ncpus") + +/** + * Total CPU capacity of the resource in MHz. + */ +public val RESOURCE_STATE_CPU_CAPACITY: TableColumn = doubleColumn("resource_state:cpu_capacity") + +/** + * Total CPU usage of the resource in MHz. + */ +public val RESOURCE_STATE_CPU_USAGE: TableColumn = doubleColumn("resource_state:cpu_usage") + +/** + * Total CPU usage of the resource in percentage. + */ +public val RESOURCE_STATE_CPU_USAGE_PCT: TableColumn = doubleColumn("resource_state:cpu_usage_pct") + +/** + * Memory capacity of the resource in KB. + */ +public val RESOURCE_STATE_MEM_CAPACITY: TableColumn = doubleColumn("resource_state:mem_capacity") + +/** + * Memory usage of the resource in KB. + */ +public val RESOURCE_STATE_MEM_USAGE: TableColumn = doubleColumn("resource_state:mem_usage") + +/** + * Disk read throughput of the resource in KB/s. + */ +public val RESOURCE_STATE_DISK_READ: TableColumn = doubleColumn("resource_state:disk_read") + +/** + * Disk write throughput of the resource in KB/s. + */ +public val RESOURCE_STATE_DISK_WRITE: TableColumn = doubleColumn("resource_state:disk_write") + +/** + * Network receive throughput of the resource in KB/s. + */ +public val RESOURCE_STATE_NET_RX: TableColumn = doubleColumn("resource_state:net_rx") + +/** + * Network transmit throughput of the resource in KB/s. + */ +public val RESOURCE_STATE_NET_TX: TableColumn = doubleColumn("resource_state:net_tx") diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Table.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Table.kt new file mode 100644 index 00000000..11e5d6b7 --- /dev/null +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Table.kt @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace + +/** + * A table is collection of rows consisting of typed columns. + */ +public interface Table { + /** + * The name of the table. + */ + public val name: String + + /** + * A flag to indicate that the table is synthetic (derived from another table). + */ + public val isSynthetic: Boolean + + /** + * Determine whether the specified [column] is supported by this table. + */ + public fun isSupported(column: TableColumn<*>): Boolean + + /** + * Open a [TableReader] for this table. + */ + public fun newReader(): TableReader + + /** + * Open a [TableReader] for [partition] of the table. + */ + public fun newReader(partition: String): TableReader +} diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableColumn.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableColumn.kt new file mode 100644 index 00000000..247e7312 --- /dev/null +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableColumn.kt @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace + +import java.util.* + +/** + * A column in a trace table. + * + * @param name The universal name of this column. + */ +public class TableColumn(public val name: String, type: Class) { + /** + * The type of the column. + */ + private val type: Class<*> = type + + /** + * Determine whether the type of the column is a subtype of [column]. + */ + public fun isAssignableTo(column: TableColumn<*>): Boolean { + return type.isAssignableFrom(column.type) + } + + /** + * Compute a hash code for this column. + */ + public override fun hashCode(): Int = Objects.hash(name, type) + + /** + * Determine whether this column is equal to [other]. + */ + public override fun equals(other: Any?): Boolean = other is TableColumn<*> && name == other.name && type == other.type + + /** + * Return a string representation of this column. + */ + public override fun toString(): String = "TableColumn[$name,$type]" +} diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableColumns.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableColumns.kt new file mode 100644 index 00000000..64920498 --- /dev/null +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableColumns.kt @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +@file:JvmName("TableColumns") +package org.opendc.trace + +/** + * Construct a [TableColumn] with [Any] type. + */ +public fun objectColumn(name: String): TableColumn = TableColumn(name, Any::class.java) + +/** + * Construct a [TableColumn] with a [String] type. + */ +public fun stringColumn(name: String): TableColumn = TableColumn(name, String::class.java) + +/** + * Construct a [TableColumn] with a [Number] type. + */ +public fun numberColumn(name: String): TableColumn = TableColumn(name, Number::class.java) + +/** + * Construct a [TableColumn] with an [Int] type. + */ +public fun intColumn(name: String): TableColumn = TableColumn(name, Int::class.java) + +/** + * Construct a [TableColumn] with a [Long] type. + */ +public fun longColumn(name: String): TableColumn = TableColumn(name, Long::class.java) + +/** + * Construct a [TableColumn] with a [Double] type. + */ +public fun doubleColumn(name: String): TableColumn = TableColumn(name, Double::class.java) + +/** + * Construct a [TableColumn] with a [Boolean] type. + */ +public fun booleanColumn(name: String): TableColumn = TableColumn(name, Boolean::class.java) diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableReader.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableReader.kt new file mode 100644 index 00000000..b5e7669f --- /dev/null +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableReader.kt @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace + +/** + * Base class for reading entities from a workload trace table in streaming fashion. + */ +public interface TableReader : AutoCloseable { + /** + * Advance the stream until the next row is reached. + * + * @return `true` if the row is valid, `false` if there are no more rows. + */ + public fun nextRow(): Boolean + + /** + * Determine whether the [TableReader] supports the specified [column]. + */ + public fun hasColumn(column: TableColumn<*>): Boolean + + /** + * Obtain the value of the current column with type [T]. + */ + public fun get(column: TableColumn): T + + /** + * Read the specified [column] as boolean. + */ + public fun getBoolean(column: TableColumn): Boolean + + /** + * Read the specified [column] as integer. + */ + public fun getInt(column: TableColumn): Int + + /** + * Read the specified [column] as long. + */ + public fun getLong(column: TableColumn): Long + + /** + * Read the specified [column] as double. + */ + public fun getDouble(column: TableColumn): Double + + /** + * Closes the reader so that no further iteration or data access can be made. + */ + public override fun close() +} diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Tables.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Tables.kt new file mode 100644 index 00000000..bb9d93e2 --- /dev/null +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Tables.kt @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +@file:JvmName("Tables") +package org.opendc.trace + +/** + * A table containing all workflows in a workload. + */ +public const val TABLE_WORKFLOWS: String = "workflows" + +/** + * A table containing all tasks in a workload. + */ +public const val TABLE_TASKS: String = "tasks" + +/** + * A table containing all resources in a workload. + */ +public const val TABLE_RESOURCES: String = "resources" + +/** + * A table containing all resource states in a workload. + */ +public const val TABLE_RESOURCE_STATES: String = "resource_states" diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TaskColumns.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TaskColumns.kt new file mode 100644 index 00000000..5d3143ff --- /dev/null +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TaskColumns.kt @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +@file:JvmName("TaskColumns") +package org.opendc.trace + +/** + * A column containing the task identifier. + */ +public val TASK_ID: TableColumn = longColumn("task:id") + +/** + * A column containing the identifier of the workflow. + */ +public val TASK_WORKFLOW_ID: TableColumn = longColumn("task:workflow_id") + +/** + * A column containing the submit time of the task. + */ +public val TASK_SUBMIT_TIME: TableColumn = longColumn("task:submit_time") + +/** + * A column containing the wait time of the task. + */ +public val TASK_WAIT_TIME: TableColumn = longColumn("task:wait_time") + +/** + * A column containing the runtime time of the task. + */ +public val TASK_RUNTIME: TableColumn = longColumn("task:runtime") + +/** + * A column containing the parents of a task. + */ +@Suppress("UNCHECKED_CAST") +public val TASK_PARENTS: TableColumn> = TableColumn("task:parents", type = Set::class.java as Class>) + +/** + * A column containing the children of a task. + */ +@Suppress("UNCHECKED_CAST") +public val TASK_CHILDREN: TableColumn> = TableColumn("task:children", type = Set::class.java as Class>) + +/** + * A column containing the requested CPUs of a task. + */ +public val TASK_REQ_NCPUS: TableColumn = intColumn("task:req_ncpus") + +/** + * A column containing the allocated CPUs of a task. + */ +public val TASK_ALLOC_NCPUS: TableColumn = intColumn("task:alloc_ncpus") + +/** + * A column containing the status of a task. + */ +public val TASK_STATUS: TableColumn = intColumn("task:status") + +/** + * A column containing the group id of a task. + */ +public val TASK_GROUP_ID: TableColumn = intColumn("task:group_id") + +/** + * A column containing the user id of a task. + */ +public val TASK_USER_ID: TableColumn = intColumn("task:user_id") diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Trace.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Trace.kt new file mode 100644 index 00000000..36e93b52 --- /dev/null +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Trace.kt @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace + +/** + * A trace is a collection of related tables that characterize a workload. + */ +public interface Trace { + /** + * The list of table names in the workload trace. + */ + public val tables: List + + /** + * Determine if the trace contains a table with the specified [name]. + */ + public fun containsTable(name: String): Boolean + + /** + * Obtain a [Table] with the specified [name]. + */ + public fun getTable(name: String): Table? +} diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt new file mode 100644 index 00000000..54029fcf --- /dev/null +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.spi + +import org.opendc.trace.Trace +import java.net.URL +import java.util.* + +/** + * A service-provider class for parsing trace formats. + */ +public interface TraceFormat { + /** + * The name of the trace format. + */ + public val name: String + + /** + * Open a new [Trace] with this provider. + * + * @param url A reference to the trace. + */ + public fun open(url: URL): Trace + + /** + * A helper object for resolving providers. + */ + public companion object { + /** + * A list of [TraceFormat] that are available on this system. + */ + public val installedProviders: List by lazy { + val loader = ServiceLoader.load(TraceFormat::class.java) + loader.toList() + } + + /** + * Obtain a [TraceFormat] implementation by [name]. + */ + public fun byName(name: String): TraceFormat? = installedProviders.find { it.name == name } + } +} -- cgit v1.2.3 From 23c1502c2668305fd5f4c38c6c794c985d2037e3 Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Tue, 31 Aug 2021 14:56:08 +0200 Subject: refactor(trace): Move GWF trace reader into separate module This change starts the process of moving the different trace formats into separate modules. This change in particular moves the GWF trace format into a new module, opendc-trace-gwf. Furthermore, this change also implements the trace API for the GWF module. --- opendc-trace/build.gradle.kts | 21 ++ opendc-trace/opendc-trace-gwf/build.gradle.kts | 37 ++++ .../kotlin/org/opendc/trace/gwf/GwfTaskTable.kt | 59 ++++++ .../org/opendc/trace/gwf/GwfTaskTableReader.kt | 211 +++++++++++++++++++++ .../main/kotlin/org/opendc/trace/gwf/GwfTrace.kt | 46 +++++ .../kotlin/org/opendc/trace/gwf/GwfTraceFormat.kt | 56 ++++++ .../services/org.opendc.trace.spi.TraceFormat | 1 + .../org/opendc/trace/gwf/GwfTraceFormatTest.kt | 109 +++++++++++ .../opendc-trace-gwf/src/test/resources/trace.gwf | 71 +++++++ 9 files changed, 611 insertions(+) create mode 100644 opendc-trace/build.gradle.kts create mode 100644 opendc-trace/opendc-trace-gwf/build.gradle.kts create mode 100644 opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTable.kt create mode 100644 opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTableReader.kt create mode 100644 opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTrace.kt create mode 100644 opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTraceFormat.kt create mode 100644 opendc-trace/opendc-trace-gwf/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat create mode 100644 opendc-trace/opendc-trace-gwf/src/test/kotlin/org/opendc/trace/gwf/GwfTraceFormatTest.kt create mode 100644 opendc-trace/opendc-trace-gwf/src/test/resources/trace.gwf (limited to 'opendc-trace') diff --git a/opendc-trace/build.gradle.kts b/opendc-trace/build.gradle.kts new file mode 100644 index 00000000..7edfd134 --- /dev/null +++ b/opendc-trace/build.gradle.kts @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ diff --git a/opendc-trace/opendc-trace-gwf/build.gradle.kts b/opendc-trace/opendc-trace-gwf/build.gradle.kts new file mode 100644 index 00000000..f3dfd6ef --- /dev/null +++ b/opendc-trace/opendc-trace-gwf/build.gradle.kts @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +description = "Support for GWF traces in OpenDC" + +/* Build configuration */ +plugins { + `kotlin-library-conventions` + `testing-conventions` + `jacoco-conventions` +} + +dependencies { + api(platform(projects.opendcPlatform)) + api(projects.opendcTrace.opendcTraceApi) + + implementation(libs.jackson.dataformat.csv) +} diff --git a/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTable.kt b/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTable.kt new file mode 100644 index 00000000..80a99d10 --- /dev/null +++ b/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTable.kt @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.gwf + +import com.fasterxml.jackson.dataformat.csv.CsvFactory +import org.opendc.trace.* +import java.net.URL + +/** + * A [Table] containing the tasks in a GWF trace. + */ +internal class GwfTaskTable(private val factory: CsvFactory, private val url: URL) : Table { + override val name: String = TABLE_TASKS + + override val isSynthetic: Boolean = false + + override fun isSupported(column: TableColumn<*>): Boolean { + return when (column) { + TASK_WORKFLOW_ID -> true + TASK_ID -> true + TASK_SUBMIT_TIME -> true + TASK_RUNTIME -> true + TASK_REQ_NCPUS -> true + TASK_ALLOC_NCPUS -> true + TASK_PARENTS -> true + else -> false + } + } + + override fun newReader(): TableReader { + return GwfTaskTableReader(factory.createParser(url)) + } + + override fun newReader(partition: String): TableReader { + throw IllegalArgumentException("Invalid partition $partition") + } + + override fun toString(): String = "GwfTaskTable" +} diff --git a/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTableReader.kt b/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTableReader.kt new file mode 100644 index 00000000..64b7d465 --- /dev/null +++ b/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTableReader.kt @@ -0,0 +1,211 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.gwf + +import com.fasterxml.jackson.core.JsonToken +import com.fasterxml.jackson.dataformat.csv.CsvParser +import com.fasterxml.jackson.dataformat.csv.CsvSchema +import org.opendc.trace.* +import java.util.regex.Pattern + +/** + * A [TableReader] implementation for the GWF format. + */ +internal class GwfTaskTableReader(private val parser: CsvParser) : TableReader { + /** + * The current parser state. + */ + private val state = RowState() + + init { + parser.schema = schema + } + + override fun nextRow(): Boolean { + // Reset the row state + state.reset() + + if (!nextStart()) { + return false + } + + while (true) { + val token = parser.nextValue() + + if (token == null || token == JsonToken.END_OBJECT) { + break + } + + when (parser.currentName) { + "WorkflowID" -> state.workflowId = parser.longValue + "JobID" -> state.jobId = parser.longValue + "SubmitTime" -> state.submitTime = parser.longValue + "RunTime" -> state.runtime = parser.longValue + "NProcs" -> state.nProcs = parser.intValue + "ReqNProcs" -> state.reqNProcs = parser.intValue + "Dependencies" -> parseParents(parser.valueAsString) + } + } + + return true + } + + override fun hasColumn(column: TableColumn<*>): Boolean { + return when (column) { + TASK_WORKFLOW_ID -> true + TASK_ID -> true + TASK_SUBMIT_TIME -> true + TASK_RUNTIME -> true + TASK_REQ_NCPUS -> true + TASK_ALLOC_NCPUS -> true + TASK_PARENTS -> true + else -> false + } + } + + override fun get(column: TableColumn): T { + val res: Any = when (column) { + TASK_WORKFLOW_ID -> state.workflowId + TASK_ID -> state.jobId + TASK_SUBMIT_TIME -> state.submitTime + TASK_RUNTIME -> state.runtime + TASK_REQ_NCPUS -> state.nProcs + TASK_ALLOC_NCPUS -> state.reqNProcs + TASK_PARENTS -> state.dependencies + else -> throw IllegalArgumentException("Invalid column") + } + + @Suppress("UNCHECKED_CAST") + return res as T + } + + override fun getBoolean(column: TableColumn): Boolean { + throw IllegalArgumentException("Invalid column") + } + + override fun getInt(column: TableColumn): Int { + return when (column) { + TASK_REQ_NCPUS -> state.nProcs + TASK_ALLOC_NCPUS -> state.reqNProcs + else -> throw IllegalArgumentException("Invalid column") + } + } + + override fun getLong(column: TableColumn): Long { + return when (column) { + TASK_WORKFLOW_ID -> state.workflowId + TASK_ID -> state.jobId + TASK_SUBMIT_TIME -> state.submitTime + TASK_RUNTIME -> state.runtime + else -> throw IllegalArgumentException("Invalid column") + } + } + + override fun getDouble(column: TableColumn): Double { + throw IllegalArgumentException("Invalid column") + } + + override fun close() { + parser.close() + } + + /** + * The pattern used to parse the parents. + */ + private val pattern = Pattern.compile("\\s+") + + /** + * Parse the parents into a set of longs. + */ + private fun parseParents(value: String): Set { + val result = mutableSetOf() + val deps = value.split(pattern) + + for (dep in deps) { + if (dep.isBlank()) { + continue + } + + result.add(dep.toLong(10)) + } + + return result + } + + /** + * Advance the parser until the next object start. + */ + private fun nextStart(): Boolean { + var token = parser.nextValue() + + while (token != null && token != JsonToken.START_OBJECT) { + token = parser.nextValue() + } + + return token != null + } + + /** + * The current row state. + */ + private class RowState { + var workflowId = -1L + var jobId = -1L + var submitTime = -1L + var runtime = -1L + var nProcs = -1 + var reqNProcs = -1 + var dependencies = emptySet() + + /** + * Reset the state. + */ + fun reset() { + workflowId = -1 + jobId = -1 + submitTime = -1 + runtime = -1 + nProcs = -1 + reqNProcs = -1 + dependencies = emptySet() + } + } + + companion object { + /** + * The [CsvSchema] that is used to parse the trace. + */ + private val schema = CsvSchema.builder() + .addColumn("WorkflowID", CsvSchema.ColumnType.NUMBER) + .addColumn("JobID", CsvSchema.ColumnType.NUMBER) + .addColumn("SubmitTime", CsvSchema.ColumnType.NUMBER) + .addColumn("RunTime", CsvSchema.ColumnType.NUMBER) + .addColumn("NProcs", CsvSchema.ColumnType.NUMBER) + .addColumn("ReqNProcs", CsvSchema.ColumnType.NUMBER) + .addColumn("Dependencies", CsvSchema.ColumnType.STRING) + .setAllowComments(true) + .setUseHeader(true) + .setColumnSeparator(',') + .build() + } +} diff --git a/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTrace.kt b/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTrace.kt new file mode 100644 index 00000000..166c1e56 --- /dev/null +++ b/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTrace.kt @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.gwf + +import com.fasterxml.jackson.dataformat.csv.CsvFactory +import org.opendc.trace.* +import java.net.URL + +/** + * [Trace] implementation for the GWF format. + */ +public class GwfTrace internal constructor(private val factory: CsvFactory, private val url: URL) : Trace { + override val tables: List = listOf(TABLE_TASKS) + + override fun containsTable(name: String): Boolean = TABLE_TASKS == name + + override fun getTable(name: String): Table? { + if (!containsTable(name)) { + return null + } + + return GwfTaskTable(factory, url) + } + + override fun toString(): String = "GwfTrace[$url]" +} diff --git a/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTraceFormat.kt b/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTraceFormat.kt new file mode 100644 index 00000000..6d542503 --- /dev/null +++ b/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTraceFormat.kt @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.gwf + +import com.fasterxml.jackson.dataformat.csv.CsvFactory +import com.fasterxml.jackson.dataformat.csv.CsvParser +import org.opendc.trace.spi.TraceFormat +import java.net.URL +import java.nio.file.Paths +import kotlin.io.path.exists + +/** + * A [TraceFormat] implementation for the GWF trace format. + */ +public class GwfTraceFormat : TraceFormat { + /** + * The name of this trace format. + */ + override val name: String = "gwf" + + /** + * The [CsvFactory] used to create the parser. + */ + private val factory = CsvFactory() + .enable(CsvParser.Feature.ALLOW_COMMENTS) + .enable(CsvParser.Feature.TRIM_SPACES) + + /** + * Read the tasks in the GWF trace. + */ + public override fun open(url: URL): GwfTrace { + val path = Paths.get(url.toURI()) + require(path.exists()) { "URL $url does not exist" } + return GwfTrace(factory, url) + } +} diff --git a/opendc-trace/opendc-trace-gwf/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat b/opendc-trace/opendc-trace-gwf/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat new file mode 100644 index 00000000..99a874c8 --- /dev/null +++ b/opendc-trace/opendc-trace-gwf/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat @@ -0,0 +1 @@ +org.opendc.trace.gwf.GwfTraceFormat diff --git a/opendc-trace/opendc-trace-gwf/src/test/kotlin/org/opendc/trace/gwf/GwfTraceFormatTest.kt b/opendc-trace/opendc-trace-gwf/src/test/kotlin/org/opendc/trace/gwf/GwfTraceFormatTest.kt new file mode 100644 index 00000000..6b0568fe --- /dev/null +++ b/opendc-trace/opendc-trace-gwf/src/test/kotlin/org/opendc/trace/gwf/GwfTraceFormatTest.kt @@ -0,0 +1,109 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.gwf + +import org.junit.jupiter.api.Assertions.* +import org.junit.jupiter.api.Test +import org.junit.jupiter.api.assertAll +import org.junit.jupiter.api.assertDoesNotThrow +import org.junit.jupiter.api.assertThrows +import org.opendc.trace.* +import java.net.URL + +/** + * Test suite for the [GwfTraceFormat] class. + */ +internal class GwfTraceFormatTest { + @Test + fun testTraceExists() { + val input = checkNotNull(GwfTraceFormatTest::class.java.getResource("/trace.gwf")) + val format = GwfTraceFormat() + assertDoesNotThrow { + format.open(input) + } + } + + @Test + fun testTraceDoesNotExists() { + val input = checkNotNull(GwfTraceFormatTest::class.java.getResource("/trace.gwf")) + val format = GwfTraceFormat() + assertThrows { + format.open(URL(input.toString() + "help")) + } + } + + @Test + fun testTables() { + val input = checkNotNull(GwfTraceFormatTest::class.java.getResource("/trace.gwf")) + val format = GwfTraceFormat() + val trace = format.open(input) + + assertEquals(listOf(TABLE_TASKS), trace.tables) + } + + @Test + fun testTableExists() { + val input = checkNotNull(GwfTraceFormatTest::class.java.getResource("/trace.gwf")) + val format = GwfTraceFormat() + val table = format.open(input).getTable(TABLE_TASKS) + + assertNotNull(table) + assertDoesNotThrow { table!!.newReader() } + } + + @Test + fun testTableDoesNotExist() { + val input = checkNotNull(GwfTraceFormatTest::class.java.getResource("/trace.gwf")) + val format = GwfTraceFormat() + val trace = format.open(input) + + assertFalse(trace.containsTable("test")) + assertNull(trace.getTable("test")) + } + + @Test + fun testTableReader() { + val input = checkNotNull(GwfTraceFormatTest::class.java.getResource("/trace.gwf")) + val format = GwfTraceFormat() + val table = format.open(input).getTable(TABLE_TASKS)!! + val reader = table.newReader() + + assertAll( + { assertTrue(reader.nextRow()) }, + { assertEquals(0L, reader.getLong(TASK_WORKFLOW_ID)) }, + { assertEquals(1L, reader.getLong(TASK_ID)) }, + { assertEquals(16, reader.getLong(TASK_SUBMIT_TIME)) }, + { assertEquals(11, reader.getLong(TASK_RUNTIME)) }, + { assertEquals(setOf(), reader.get(TASK_PARENTS)) }, + ) + } + + @Test + fun testTableReaderPartition() { + val input = checkNotNull(GwfTraceFormatTest::class.java.getResource("/trace.gwf")) + val format = GwfTraceFormat() + val table = format.open(input).getTable(TABLE_TASKS)!! + + assertThrows { table.newReader("test") } + } +} diff --git a/opendc-trace/opendc-trace-gwf/src/test/resources/trace.gwf b/opendc-trace/opendc-trace-gwf/src/test/resources/trace.gwf new file mode 100644 index 00000000..2f99616d --- /dev/null +++ b/opendc-trace/opendc-trace-gwf/src/test/resources/trace.gwf @@ -0,0 +1,71 @@ +WorkflowID, JobID , SubmitTime, RunTime , NProcs , ReqNProcs , Dependencies +0 , 1 , 16 , 11 , 1 , 1 , +0 , 2 , 40 , 11 , 1 , 1 , 1 +0 , 3 , 40 , 11 , 1 , 1 , 1 +0 , 4 , 64 , 11 , 1 , 1 , 2 +0 , 5 , 63 , 11 , 1 , 1 , 3 +0 , 6 , 64 , 11 , 1 , 1 , 3 +0 , 7 , 87 , 11 , 1 , 1 , 4 5 6 +1 , 8 , 4 , 11 , 1 , 1 , +1 , 9 , 15 , 11 , 1 , 1 , 8 +1 , 10 , 15 , 11 , 1 , 1 , 8 +1 , 11 , 27 , 11 , 1 , 1 , 9 +1 , 12 , 27 , 11 , 1 , 1 , 10 +1 , 13 , 27 , 11 , 1 , 1 , 10 +1 , 14 , 38 , 11 , 1 , 1 , 12 11 13 +2 , 15 , 3 , 11 , 1 , 1 , +2 , 16 , 27 , 11 , 1 , 1 , 15 +2 , 17 , 27 , 11 , 1 , 1 , 15 +2 , 18 , 52 , 11 , 1 , 1 , 16 +2 , 19 , 51 , 11 , 1 , 1 , 17 +2 , 20 , 51 , 11 , 1 , 1 , 17 +2 , 21 , 75 , 11 , 1 , 1 , 20 18 19 +3 , 22 , 3 , 11 , 1 , 1 , +3 , 23 , 27 , 11 , 1 , 1 , 22 +3 , 24 , 27 , 11 , 1 , 1 , 22 +3 , 25 , 51 , 11 , 1 , 1 , 23 +3 , 26 , 50 , 11 , 1 , 1 , 24 +3 , 27 , 51 , 11 , 1 , 1 , 24 +3 , 28 , 75 , 11 , 1 , 1 , 25 27 26 +4 , 29 , 3 , 11 , 1 , 1 , +4 , 30 , 27 , 11 , 1 , 1 , 29 +4 , 31 , 27 , 11 , 1 , 1 , 29 +4 , 32 , 50 , 11 , 1 , 1 , 30 +4 , 33 , 50 , 11 , 1 , 1 , 31 +4 , 34 , 51 , 11 , 1 , 1 , 31 +4 , 35 , 74 , 11 , 1 , 1 , 33 32 34 +5 , 36 , 3 , 11 , 1 , 1 , +5 , 37 , 27 , 11 , 1 , 1 , 36 +5 , 38 , 26 , 11 , 1 , 1 , 36 +5 , 39 , 51 , 11 , 1 , 1 , 37 +5 , 40 , 50 , 11 , 1 , 1 , 38 +5 , 41 , 50 , 11 , 1 , 1 , 38 +5 , 42 , 74 , 11 , 1 , 1 , 39 40 41 +6 , 43 , 4 , 11 , 1 , 1 , +6 , 44 , 27 , 11 , 1 , 1 , 43 +6 , 45 , 27 , 11 , 1 , 1 , 43 +6 , 46 , 51 , 11 , 1 , 1 , 44 +6 , 47 , 51 , 11 , 1 , 1 , 45 +6 , 48 , 51 , 11 , 1 , 1 , 45 +6 , 49 , 75 , 11 , 1 , 1 , 46 47 48 +7 , 50 , 3 , 0 , 1 , 1 , +7 , 51 , 17 , 0 , 1 , 1 , 50 +7 , 52 , 17 , 0 , 1 , 1 , 50 +7 , 53 , 30 , 0 , 1 , 1 , 51 +7 , 54 , 30 , 0 , 1 , 1 , 52 +7 , 55 , 31 , 0 , 1 , 1 , 52 +7 , 56 , 44 , 0 , 1 , 1 , 55 54 53 +8 , 57 , 3 , 11 , 1 , 1 , +8 , 58 , 26 , 11 , 1 , 1 , 57 +8 , 59 , 27 , 11 , 1 , 1 , 57 +8 , 60 , 50 , 11 , 1 , 1 , 58 +8 , 61 , 51 , 11 , 1 , 1 , 59 +8 , 62 , 50 , 11 , 1 , 1 , 59 +8 , 63 , 74 , 11 , 1 , 1 , 62 61 60 +9 , 64 , 3 , 11 , 1 , 1 , +9 , 65 , 27 , 11 , 1 , 1 , 64 +9 , 66 , 27 , 11 , 1 , 1 , 64 +9 , 67 , 51 , 11 , 1 , 1 , 65 +9 , 68 , 50 , 11 , 1 , 1 , 66 +9 , 69 , 51 , 11 , 1 , 1 , 66 +9 , 70 , 74 , 11 , 1 , 1 , 68 69 67 -- cgit v1.2.3 From e8cdfbcec3f75b3f303ce52bac5f5595a94555e4 Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Tue, 31 Aug 2021 15:14:46 +0200 Subject: refactor(trace): Extract Parquet helpers into separate module This change extracts the Parquet helpers outside format module into a new module, in order to improve re-usability of these helpers. --- opendc-trace/opendc-trace-parquet/build.gradle.kts | 60 ++++++++++ .../opendc/trace/util/parquet/LocalInputFile.kt | 107 ++++++++++++++++++ .../opendc/trace/util/parquet/LocalOutputFile.kt | 95 ++++++++++++++++ .../trace/util/parquet/LocalParquetReader.kt | 112 ++++++++++++++++++ .../org/opendc/trace/util/parquet/ParquetTest.kt | 125 +++++++++++++++++++++ 5 files changed, 499 insertions(+) create mode 100644 opendc-trace/opendc-trace-parquet/build.gradle.kts create mode 100644 opendc-trace/opendc-trace-parquet/src/main/kotlin/org/opendc/trace/util/parquet/LocalInputFile.kt create mode 100644 opendc-trace/opendc-trace-parquet/src/main/kotlin/org/opendc/trace/util/parquet/LocalOutputFile.kt create mode 100644 opendc-trace/opendc-trace-parquet/src/main/kotlin/org/opendc/trace/util/parquet/LocalParquetReader.kt create mode 100644 opendc-trace/opendc-trace-parquet/src/test/kotlin/org/opendc/trace/util/parquet/ParquetTest.kt (limited to 'opendc-trace') diff --git a/opendc-trace/opendc-trace-parquet/build.gradle.kts b/opendc-trace/opendc-trace-parquet/build.gradle.kts new file mode 100644 index 00000000..75378509 --- /dev/null +++ b/opendc-trace/opendc-trace-parquet/build.gradle.kts @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +description = "Parquet helpers for traces in OpenDC" + +/* Build configuration */ +plugins { + `kotlin-library-conventions` + `testing-conventions` + `jacoco-conventions` +} + +dependencies { + api(platform(projects.opendcPlatform)) + + /* This configuration is necessary for a slim dependency on Apache Parquet */ + api(libs.parquet) { + exclude(group = "org.apache.hadoop") + } + runtimeOnly(libs.hadoop.common) { + exclude(group = "org.slf4j", module = "slf4j-log4j12") + exclude(group = "log4j") + exclude(group = "org.apache.hadoop") + exclude(group = "org.apache.curator") + exclude(group = "org.apache.zookeeper") + exclude(group = "org.apache.kerby") + exclude(group = "org.apache.httpcomponents") + exclude(group = "org.apache.htrace") + exclude(group = "commons-cli") + exclude(group = "javax.servlet") + exclude(group = "org.eclipse.jetty") + exclude(group = "com.sun.jersey") + exclude(group = "com.jcraft") + exclude(group = "dnsjava") + } + runtimeOnly(libs.hadoop.mapreduce.client.core) { + isTransitive = false + } + + testRuntimeOnly(libs.slf4j.simple) +} diff --git a/opendc-trace/opendc-trace-parquet/src/main/kotlin/org/opendc/trace/util/parquet/LocalInputFile.kt b/opendc-trace/opendc-trace-parquet/src/main/kotlin/org/opendc/trace/util/parquet/LocalInputFile.kt new file mode 100644 index 00000000..fd2e00cd --- /dev/null +++ b/opendc-trace/opendc-trace-parquet/src/main/kotlin/org/opendc/trace/util/parquet/LocalInputFile.kt @@ -0,0 +1,107 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.util.parquet + +import org.apache.parquet.io.InputFile +import org.apache.parquet.io.SeekableInputStream +import java.io.EOFException +import java.io.File +import java.nio.ByteBuffer +import java.nio.channels.FileChannel +import java.nio.file.Path +import java.nio.file.StandardOpenOption + +/** + * An [InputFile] on the local filesystem. + */ +public class LocalInputFile(private val path: Path) : InputFile { + /** + * The [FileChannel] used for accessing the input path. + */ + private val channel = FileChannel.open(path, StandardOpenOption.READ) + + /** + * Construct a [LocalInputFile] for the specified [file]. + */ + public constructor(file: File) : this(file.toPath()) + + override fun getLength(): Long = channel.size() + + override fun newStream(): SeekableInputStream = object : SeekableInputStream() { + override fun read(buf: ByteBuffer): Int { + return channel.read(buf) + } + + override fun read(): Int { + val single = ByteBuffer.allocate(1) + var read: Int + + // ReadableByteChannel#read might read zero bytes so continue until we read at least one byte + do { + read = channel.read(single) + } while (read == 0) + + return if (read == -1) { + read + } else { + single.get(0).toInt() and 0xff + } + } + + override fun getPos(): Long { + return channel.position() + } + + override fun seek(newPos: Long) { + channel.position(newPos) + } + + override fun readFully(bytes: ByteArray) { + readFully(ByteBuffer.wrap(bytes)) + } + + override fun readFully(bytes: ByteArray, start: Int, len: Int) { + readFully(ByteBuffer.wrap(bytes, start, len)) + } + + override fun readFully(buf: ByteBuffer) { + var remainder = buf.remaining() + while (remainder > 0) { + val read = channel.read(buf) + remainder -= read + + if (read == -1 && remainder > 0) { + throw EOFException() + } + } + } + + override fun close() { + channel.close() + } + + override fun toString(): String = "NioSeekableInputStream" + } + + override fun toString(): String = "LocalInputFile[path=$path]" +} diff --git a/opendc-trace/opendc-trace-parquet/src/main/kotlin/org/opendc/trace/util/parquet/LocalOutputFile.kt b/opendc-trace/opendc-trace-parquet/src/main/kotlin/org/opendc/trace/util/parquet/LocalOutputFile.kt new file mode 100644 index 00000000..1b17ae5d --- /dev/null +++ b/opendc-trace/opendc-trace-parquet/src/main/kotlin/org/opendc/trace/util/parquet/LocalOutputFile.kt @@ -0,0 +1,95 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.util.parquet + +import org.apache.parquet.io.OutputFile +import org.apache.parquet.io.PositionOutputStream +import java.io.File +import java.io.OutputStream +import java.nio.file.Files +import java.nio.file.Path +import java.nio.file.StandardOpenOption + +/** + * An [OutputFile] on the local filesystem. + */ +public class LocalOutputFile(private val path: Path) : OutputFile { + /** + * Construct a [LocalOutputFile] from the specified [file] + */ + public constructor(file: File) : this(file.toPath()) + + override fun create(blockSizeHint: Long): PositionOutputStream { + val output = Files.newOutputStream(path, StandardOpenOption.CREATE_NEW, StandardOpenOption.WRITE) + return NioPositionOutputStream(output) + } + + override fun createOrOverwrite(blockSizeHint: Long): PositionOutputStream { + val output = Files.newOutputStream(path, StandardOpenOption.CREATE, StandardOpenOption.WRITE, StandardOpenOption.TRUNCATE_EXISTING) + return NioPositionOutputStream(output) + } + + override fun supportsBlockSize(): Boolean = false + + override fun defaultBlockSize(): Long = + throw UnsupportedOperationException("Local filesystem does not have default block size") + + override fun getPath(): String = path.toString() + + /** + * Implementation of [PositionOutputStream] for an [OutputStream]. + */ + private class NioPositionOutputStream(private val output: OutputStream) : PositionOutputStream() { + /** + * The current position in the file. + */ + private var _pos = 0L + + override fun getPos(): Long = _pos + + override fun write(b: Int) { + output.write(b) + _pos++ + } + + override fun write(b: ByteArray) { + output.write(b) + _pos += b.size + } + + override fun write(b: ByteArray, off: Int, len: Int) { + output.write(b, off, len) + _pos += len + } + + override fun flush() { + output.flush() + } + + override fun close() { + output.close() + } + + override fun toString(): String = "NioPositionOutputStream[output=$output]" + } +} diff --git a/opendc-trace/opendc-trace-parquet/src/main/kotlin/org/opendc/trace/util/parquet/LocalParquetReader.kt b/opendc-trace/opendc-trace-parquet/src/main/kotlin/org/opendc/trace/util/parquet/LocalParquetReader.kt new file mode 100644 index 00000000..ef9eaeb3 --- /dev/null +++ b/opendc-trace/opendc-trace-parquet/src/main/kotlin/org/opendc/trace/util/parquet/LocalParquetReader.kt @@ -0,0 +1,112 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.util.parquet + +import org.apache.parquet.avro.AvroParquetReader +import org.apache.parquet.hadoop.ParquetReader +import org.apache.parquet.io.InputFile +import java.io.File +import java.io.IOException +import java.nio.file.Files +import java.nio.file.Path +import kotlin.io.path.isDirectory + +/** + * A helper class to read Parquet files. + * + * @param path The path to the Parquet file or directory to read. + */ +public class LocalParquetReader(path: Path) : AutoCloseable { + /** + * The input files to process. + */ + private val filesIterator = if (path.isDirectory()) + Files.list(path) + .filter { !it.isDirectory() } + .sorted() + .map { LocalInputFile(it) } + .iterator() + else + listOf(LocalInputFile(path)).iterator() + + /** + * The Parquet reader to use. + */ + private var reader: ParquetReader? = null + + /** + * Construct a [LocalParquetReader] for the specified [file]. + */ + public constructor(file: File) : this(file.toPath()) + + /** + * Read a single entry in the Parquet file. + */ + public fun read(): T? { + return try { + val next = reader?.read() + if (next != null) { + next + } else { + initReader() + + if (reader == null) + null + else + read() + } + } catch (e: InterruptedException) { + throw IOException(e) + } + } + + /** + * Close the Parquet reader. + */ + override fun close() { + reader?.close() + } + + /** + * Initialize the next reader. + */ + private fun initReader() { + reader?.close() + + this.reader = if (filesIterator.hasNext()) { + createReader(filesIterator.next()) + } else { + null + } + } + + /** + * Create a Parquet reader for the specified file. + */ + private fun createReader(input: InputFile): ParquetReader { + return AvroParquetReader + .builder(input) + .disableCompatibility() + .build() + } +} diff --git a/opendc-trace/opendc-trace-parquet/src/test/kotlin/org/opendc/trace/util/parquet/ParquetTest.kt b/opendc-trace/opendc-trace-parquet/src/test/kotlin/org/opendc/trace/util/parquet/ParquetTest.kt new file mode 100644 index 00000000..8ef4d1fb --- /dev/null +++ b/opendc-trace/opendc-trace-parquet/src/test/kotlin/org/opendc/trace/util/parquet/ParquetTest.kt @@ -0,0 +1,125 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.util.parquet + +import org.apache.avro.SchemaBuilder +import org.apache.avro.generic.GenericData +import org.apache.parquet.avro.AvroParquetReader +import org.apache.parquet.avro.AvroParquetWriter +import org.apache.parquet.hadoop.ParquetFileWriter +import org.junit.jupiter.api.* +import org.junit.jupiter.api.Assertions.assertEquals +import java.io.File +import java.nio.file.FileAlreadyExistsException +import java.nio.file.NoSuchFileException + +/** + * Test suite for the Parquet helper classes. + */ +internal class ParquetTest { + private val schema = SchemaBuilder + .record("test") + .namespace("org.opendc.format.util") + .fields() + .name("field").type().intType().noDefault() + .endRecord() + + private lateinit var file: File + + /** + * Setup the test + */ + @BeforeEach + fun setUp() { + file = File.createTempFile("opendc", "parquet") + } + + /** + * Tear down the test. + */ + @AfterEach + fun tearDown() { + file.delete() + } + + /** + * Initial test to verify whether the Parquet writer works. + */ + @Test + fun testSmoke() { + val n = 4 + val writer = AvroParquetWriter.builder(LocalOutputFile(file)) + .withSchema(schema) + .withWriteMode(ParquetFileWriter.Mode.OVERWRITE) + .build() + + try { + repeat(n) { i -> + val record = GenericData.Record(schema) + record.put("field", i) + writer.write(record) + } + } finally { + writer.close() + } + + val reader = AvroParquetReader.builder(LocalInputFile(file)) + .build() + + var counter = 0 + try { + while (true) { + val record = reader.read() ?: break + assertEquals(counter++, record.get("field")) + } + } finally { + reader.close() + } + + assertEquals(n, counter) + } + + /** + * Test if overwriting fails if not specified. + */ + @Test + fun testOverwrite() { + assertThrows { + AvroParquetWriter.builder(LocalOutputFile(file)) + .withSchema(schema) + .build() + } + } + + /** + * Test non-existent file. + */ + @Test + fun testNonExistent() { + file.delete() + assertThrows { + AvroParquetReader.builder(LocalInputFile(file)) + .build() + } + } +} -- cgit v1.2.3 From 214480d154771f0b783829b6e5ec82b837304ad2 Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Tue, 31 Aug 2021 16:18:56 +0200 Subject: refactor(trace): Move Bitbrains format into separate module This change moves Bitbrains trace support into a separate module and adds support for the new trace api. --- .../opendc-trace-bitbrains/build.gradle.kts | 36 + .../trace/bitbrains/BitbrainsResourceStateTable.kt | 139 + .../bitbrains/BitbrainsResourceStateTableReader.kt | 218 + .../org/opendc/trace/bitbrains/BitbrainsTrace.kt | 46 + .../opendc/trace/bitbrains/BitbrainsTraceFormat.kt | 56 + .../services/org.opendc.trace.spi.TraceFormat | 1 + .../trace/bitbrains/BitbrainsTraceFormatTest.kt | 100 + .../src/test/resources/bitbrains.csv | 8620 ++++++++++++++++++++ 8 files changed, 9216 insertions(+) create mode 100644 opendc-trace/opendc-trace-bitbrains/build.gradle.kts create mode 100644 opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt create mode 100644 opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTableReader.kt create mode 100644 opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTrace.kt create mode 100644 opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormat.kt create mode 100644 opendc-trace/opendc-trace-bitbrains/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat create mode 100644 opendc-trace/opendc-trace-bitbrains/src/test/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormatTest.kt create mode 100644 opendc-trace/opendc-trace-bitbrains/src/test/resources/bitbrains.csv (limited to 'opendc-trace') diff --git a/opendc-trace/opendc-trace-bitbrains/build.gradle.kts b/opendc-trace/opendc-trace-bitbrains/build.gradle.kts new file mode 100644 index 00000000..d195cbbb --- /dev/null +++ b/opendc-trace/opendc-trace-bitbrains/build.gradle.kts @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +description = "Support for GWF traces in OpenDC" + +/* Build configuration */ +plugins { + `kotlin-library-conventions` + `testing-conventions` + `jacoco-conventions` +} + +dependencies { + api(platform(projects.opendcPlatform)) + api(projects.opendcTrace.opendcTraceApi) + implementation(libs.jackson.dataformat.csv) +} diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt new file mode 100644 index 00000000..767ef919 --- /dev/null +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt @@ -0,0 +1,139 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.bitbrains + +import com.fasterxml.jackson.dataformat.csv.CsvFactory +import org.opendc.trace.* +import java.nio.file.Files +import java.nio.file.Path +import java.util.stream.Collectors +import kotlin.io.path.extension +import kotlin.io.path.nameWithoutExtension + +/** + * The resource state [Table] in the Bitbrains format. + */ +internal class BitbrainsResourceStateTable(private val factory: CsvFactory, private val path: Path) : Table { + /** + * The partitions that belong to the table. + */ + private val partitions = + Files.walk(path, 1) + .filter { !Files.isDirectory(it) && it.extension == "csv" } + .collect(Collectors.toMap({ it.nameWithoutExtension }, { it })) + + override val name: String = TABLE_RESOURCE_STATES + + override val isSynthetic: Boolean = false + + override fun isSupported(column: TableColumn<*>): Boolean { + return when (column) { + RESOURCE_STATE_ID -> true + RESOURCE_STATE_TIMESTAMP -> true + RESOURCE_STATE_NCPUS -> true + RESOURCE_STATE_CPU_CAPACITY -> true + RESOURCE_STATE_CPU_USAGE -> true + RESOURCE_STATE_CPU_USAGE_PCT -> true + RESOURCE_STATE_MEM_CAPACITY -> true + RESOURCE_STATE_MEM_USAGE -> true + RESOURCE_STATE_DISK_READ -> true + RESOURCE_STATE_DISK_WRITE -> true + RESOURCE_STATE_NET_RX -> true + RESOURCE_STATE_NET_TX -> true + else -> false + } + } + + override fun newReader(): TableReader { + val it = partitions.iterator() + + return object : TableReader { + var delegate: TableReader? = nextDelegate() + + override fun nextRow(): Boolean { + var delegate = delegate + + while (delegate != null) { + if (delegate.nextRow()) { + break + } + + delegate.close() + delegate = nextDelegate() + } + + this.delegate = delegate + return delegate != null + } + + override fun hasColumn(column: TableColumn<*>): Boolean = delegate?.hasColumn(column) ?: false + + override fun get(column: TableColumn): T { + val delegate = checkNotNull(delegate) { "Invalid reader state" } + return delegate.get(column) + } + + override fun getBoolean(column: TableColumn): Boolean { + val delegate = checkNotNull(delegate) { "Invalid reader state" } + return delegate.getBoolean(column) + } + + override fun getInt(column: TableColumn): Int { + val delegate = checkNotNull(delegate) { "Invalid reader state" } + return delegate.getInt(column) + } + + override fun getLong(column: TableColumn): Long { + val delegate = checkNotNull(delegate) { "Invalid reader state" } + return delegate.getLong(column) + } + + override fun getDouble(column: TableColumn): Double { + val delegate = checkNotNull(delegate) { "Invalid reader state" } + return delegate.getDouble(column) + } + + override fun close() { + delegate?.close() + } + + private fun nextDelegate(): TableReader? { + return if (it.hasNext()) { + val (partition, path) = it.next() + return BitbrainsResourceStateTableReader(partition, factory.createParser(path.toFile())) + } else { + null + } + } + + override fun toString(): String = "BitbrainsCompositeTableReader" + } + } + + override fun newReader(partition: String): TableReader { + val path = requireNotNull(partitions[partition]) { "Invalid partition $partition" } + return BitbrainsResourceStateTableReader(partition, factory.createParser(path.toFile())) + } + + override fun toString(): String = "BitbrainsResourceStateTable" +} diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTableReader.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTableReader.kt new file mode 100644 index 00000000..5687ac7f --- /dev/null +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTableReader.kt @@ -0,0 +1,218 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.bitbrains + +import com.fasterxml.jackson.core.JsonToken +import com.fasterxml.jackson.dataformat.csv.CsvParser +import com.fasterxml.jackson.dataformat.csv.CsvSchema +import org.opendc.trace.* +import java.time.Instant + +/** + * A [TableReader] for the Bitbrains resource state table. + */ +internal class BitbrainsResourceStateTableReader(private val partition: String, private val parser: CsvParser) : TableReader { + /** + * The current parser state. + */ + private val state = RowState() + + init { + parser.schema = schema + } + + override fun nextRow(): Boolean { + // Reset the row state + state.reset() + + if (!nextStart()) { + return false + } + + while (true) { + val token = parser.nextValue() + + if (token == null || token == JsonToken.END_OBJECT) { + break + } + + when (parser.currentName) { + "Timestamp [ms]" -> state.timestamp = Instant.ofEpochSecond(parser.longValue) + "CPU cores" -> state.cpuCores = parser.intValue + "CPU capacity provisioned [MHZ]" -> state.cpuCapacity = parser.doubleValue + "CPU usage [MHZ]" -> state.cpuUsage = parser.doubleValue + "CPU usage [%]" -> state.cpuUsagePct = parser.doubleValue + "Memory capacity provisioned [KB]" -> state.memCapacity = parser.doubleValue + "Memory usage [KB]" -> state.memUsage = parser.doubleValue + "Disk read throughput [KB/s]" -> state.diskRead = parser.doubleValue + "Disk write throughput [KB/s]" -> state.diskWrite = parser.doubleValue + "Network received throughput [KB/s]" -> state.netReceived = parser.doubleValue + "Network transmitted throughput [KB/s]" -> state.netTransmitted = parser.doubleValue + } + } + + return true + } + + override fun hasColumn(column: TableColumn<*>): Boolean { + return when (column) { + RESOURCE_STATE_ID -> true + RESOURCE_STATE_TIMESTAMP -> true + RESOURCE_STATE_NCPUS -> true + RESOURCE_STATE_CPU_CAPACITY -> true + RESOURCE_STATE_CPU_USAGE -> true + RESOURCE_STATE_CPU_USAGE_PCT -> true + RESOURCE_STATE_MEM_CAPACITY -> true + RESOURCE_STATE_MEM_USAGE -> true + RESOURCE_STATE_DISK_READ -> true + RESOURCE_STATE_DISK_WRITE -> true + RESOURCE_STATE_NET_RX -> true + RESOURCE_STATE_NET_TX -> true + else -> false + } + } + + override fun get(column: TableColumn): T { + val res: Any? = when (column) { + RESOURCE_STATE_ID -> partition + RESOURCE_STATE_TIMESTAMP -> state.timestamp + RESOURCE_STATE_NCPUS -> state.cpuCores + RESOURCE_STATE_CPU_CAPACITY -> state.cpuCapacity + RESOURCE_STATE_CPU_USAGE -> state.cpuUsage + RESOURCE_STATE_CPU_USAGE_PCT -> state.cpuUsagePct + RESOURCE_STATE_MEM_CAPACITY -> state.memCapacity + RESOURCE_STATE_MEM_USAGE -> state.memUsage + RESOURCE_STATE_DISK_READ -> state.diskRead + RESOURCE_STATE_DISK_WRITE -> state.diskWrite + RESOURCE_STATE_NET_RX -> state.netReceived + RESOURCE_STATE_NET_TX -> state.netTransmitted + else -> throw IllegalArgumentException("Invalid column") + } + + @Suppress("UNCHECKED_CAST") + return res as T + } + + override fun getBoolean(column: TableColumn): Boolean { + throw IllegalArgumentException("Invalid column") + } + + override fun getInt(column: TableColumn): Int { + return when (column) { + RESOURCE_STATE_NCPUS -> state.cpuCores + else -> throw IllegalArgumentException("Invalid column") + } + } + + override fun getLong(column: TableColumn): Long { + throw IllegalArgumentException("Invalid column") + } + + override fun getDouble(column: TableColumn): Double { + return when (column) { + RESOURCE_STATE_CPU_CAPACITY -> state.cpuCapacity + RESOURCE_STATE_CPU_USAGE -> state.cpuUsage + RESOURCE_STATE_CPU_USAGE_PCT -> state.cpuUsagePct + RESOURCE_STATE_MEM_CAPACITY -> state.memCapacity + RESOURCE_STATE_MEM_USAGE -> state.memUsage + RESOURCE_STATE_DISK_READ -> state.diskRead + RESOURCE_STATE_DISK_WRITE -> state.diskWrite + RESOURCE_STATE_NET_RX -> state.netReceived + RESOURCE_STATE_NET_TX -> state.netTransmitted + else -> throw IllegalArgumentException("Invalid column") + } + } + + override fun close() { + parser.close() + } + + /** + * Advance the parser until the next object start. + */ + private fun nextStart(): Boolean { + var token = parser.nextValue() + + while (token != null && token != JsonToken.START_OBJECT) { + token = parser.nextValue() + } + + return token != null + } + + /** + * The current row state. + */ + private class RowState { + var timestamp: Instant? = null + var cpuCores = -1 + var cpuCapacity = Double.NaN + var cpuUsage = Double.NaN + var cpuUsagePct = Double.NaN + var memCapacity = Double.NaN + var memUsage = Double.NaN + var diskRead = Double.NaN + var diskWrite = Double.NaN + var netReceived = Double.NaN + var netTransmitted = Double.NaN + + /** + * Reset the state. + */ + fun reset() { + timestamp = null + cpuCores = -1 + cpuCapacity = Double.NaN + cpuUsage = Double.NaN + cpuUsagePct = Double.NaN + memCapacity = Double.NaN + memUsage = Double.NaN + diskRead = Double.NaN + diskWrite = Double.NaN + netReceived = Double.NaN + netTransmitted = Double.NaN + } + } + + companion object { + /** + * The [CsvSchema] that is used to parse the trace. + */ + private val schema = CsvSchema.builder() + .addColumn("Timestamp [ms]", CsvSchema.ColumnType.NUMBER) + .addColumn("CPU cores", CsvSchema.ColumnType.NUMBER) + .addColumn("CPU capacity provisioned [MHZ]", CsvSchema.ColumnType.NUMBER) + .addColumn("CPU usage [MHZ]", CsvSchema.ColumnType.NUMBER) + .addColumn("CPU usage [%]", CsvSchema.ColumnType.NUMBER) + .addColumn("Memory capacity provisioned [KB]", CsvSchema.ColumnType.NUMBER) + .addColumn("Memory usage [KB]", CsvSchema.ColumnType.NUMBER) + .addColumn("Disk read throughput [KB/s]", CsvSchema.ColumnType.NUMBER) + .addColumn("Disk write throughput [KB/s]", CsvSchema.ColumnType.NUMBER) + .addColumn("Network received throughput [KB/s]", CsvSchema.ColumnType.NUMBER) + .addColumn("Network transmitted throughput [KB/s]", CsvSchema.ColumnType.NUMBER) + .setAllowComments(true) + .setUseHeader(true) + .setColumnSeparator(';') + .build() + } +} diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTrace.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTrace.kt new file mode 100644 index 00000000..5a2d4243 --- /dev/null +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTrace.kt @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.bitbrains + +import com.fasterxml.jackson.dataformat.csv.CsvFactory +import org.opendc.trace.* +import java.nio.file.Path + +/** + * [Trace] implementation for the Bitbrains format. + */ +public class BitbrainsTrace internal constructor(private val factory: CsvFactory, private val path: Path) : Trace { + override val tables: List = listOf(TABLE_RESOURCE_STATES) + + override fun containsTable(name: String): Boolean = TABLE_RESOURCE_STATES == name + + override fun getTable(name: String): Table? { + if (!containsTable(name)) { + return null + } + + return BitbrainsResourceStateTable(factory, path) + } + + override fun toString(): String = "BitbrainsTrace[$path]" +} diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormat.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormat.kt new file mode 100644 index 00000000..55b11fe3 --- /dev/null +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormat.kt @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.bitbrains + +import com.fasterxml.jackson.dataformat.csv.CsvFactory +import com.fasterxml.jackson.dataformat.csv.CsvParser +import org.opendc.trace.spi.TraceFormat +import java.net.URL +import java.nio.file.Paths +import kotlin.io.path.exists + +/** + * A format implementation for the GWF trace format. + */ +public class BitbrainsTraceFormat : TraceFormat { + /** + * The name of this trace format. + */ + override val name: String = "bitbrains" + + /** + * The [CsvFactory] used to create the parser. + */ + private val factory = CsvFactory() + .enable(CsvParser.Feature.ALLOW_COMMENTS) + .enable(CsvParser.Feature.TRIM_SPACES) + + /** + * Open a Bitbrains trace. + */ + override fun open(url: URL): BitbrainsTrace { + val path = Paths.get(url.toURI()) + require(path.exists()) { "URL $url does not exist" } + return BitbrainsTrace(factory, path) + } +} diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat b/opendc-trace/opendc-trace-bitbrains/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat new file mode 100644 index 00000000..f18135d0 --- /dev/null +++ b/opendc-trace/opendc-trace-bitbrains/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat @@ -0,0 +1 @@ +org.opendc.trace.bitbrains.BitbrainsTraceFormat diff --git a/opendc-trace/opendc-trace-bitbrains/src/test/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormatTest.kt b/opendc-trace/opendc-trace-bitbrains/src/test/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormatTest.kt new file mode 100644 index 00000000..550805d3 --- /dev/null +++ b/opendc-trace/opendc-trace-bitbrains/src/test/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormatTest.kt @@ -0,0 +1,100 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.bitbrains + +import org.junit.jupiter.api.Assertions.* +import org.junit.jupiter.api.Test +import org.junit.jupiter.api.assertThrows +import org.opendc.trace.RESOURCE_STATE_CPU_USAGE +import org.opendc.trace.RESOURCE_STATE_TIMESTAMP +import org.opendc.trace.TABLE_RESOURCE_STATES +import java.net.URL + +/** + * Test suite for the [BitbrainsTraceFormat] class. + */ +class BitbrainsTraceFormatTest { + @Test + fun testTraceExists() { + val format = BitbrainsTraceFormat() + val url = checkNotNull(BitbrainsTraceFormatTest::class.java.getResource("/bitbrains.csv")) + assertDoesNotThrow { + format.open(url) + } + } + + @Test + fun testTraceDoesNotExists() { + val format = BitbrainsTraceFormat() + val url = checkNotNull(BitbrainsTraceFormatTest::class.java.getResource("/bitbrains.csv")) + assertThrows { + format.open(URL(url.toString() + "help")) + } + } + + @Test + fun testTables() { + val format = BitbrainsTraceFormat() + val url = checkNotNull(BitbrainsTraceFormatTest::class.java.getResource("/bitbrains.csv")) + val trace = format.open(url) + + assertEquals(listOf(TABLE_RESOURCE_STATES), trace.tables) + } + + @Test + fun testTableExists() { + val format = BitbrainsTraceFormat() + val url = checkNotNull(BitbrainsTraceFormatTest::class.java.getResource("/bitbrains.csv")) + val table = format.open(url).getTable(TABLE_RESOURCE_STATES) + + assertNotNull(table) + assertDoesNotThrow { table!!.newReader() } + } + + @Test + fun testTableDoesNotExist() { + val format = BitbrainsTraceFormat() + val url = checkNotNull(BitbrainsTraceFormatTest::class.java.getResource("/bitbrains.csv")) + val trace = format.open(url) + + assertFalse(trace.containsTable("test")) + assertNull(trace.getTable("test")) + } + + @Test + fun testSmoke() { + val format = BitbrainsTraceFormat() + val url = checkNotNull(BitbrainsTraceFormatTest::class.java.getResource("/bitbrains.csv")) + val trace = format.open(url) + + val reader = trace.getTable(TABLE_RESOURCE_STATES)!!.newReader() + + assertAll( + { assertTrue(reader.nextRow()) }, + { assertEquals(1376314846, reader.get(RESOURCE_STATE_TIMESTAMP).epochSecond) }, + { assertEquals(19.066, reader.getDouble(RESOURCE_STATE_CPU_USAGE), 0.01) } + ) + + reader.close() + } +} diff --git a/opendc-trace/opendc-trace-bitbrains/src/test/resources/bitbrains.csv b/opendc-trace/opendc-trace-bitbrains/src/test/resources/bitbrains.csv new file mode 100644 index 00000000..f5e300e8 --- /dev/null +++ b/opendc-trace/opendc-trace-bitbrains/src/test/resources/bitbrains.csv @@ -0,0 +1,8620 @@ +Timestamp [ms]; CPU cores; CPU capacity provisioned [MHZ]; CPU usage [MHZ]; CPU usage [%]; Memory capacity provisioned [KB]; Memory usage [KB]; Disk read throughput [KB/s]; Disk write throughput [KB/s]; Network received throughput [KB/s]; Network transmitted throughput [KB/s] +1376314846; 1; 2599.999309; 19.06666159933333; 0.7333333333333333; 2097152.0; 110448.53333333334; 0.0; 1.4666666666666666; 0.0; 0.0 +1376315146; 1; 2599.999309; 19.06666159933333; 0.7333333333333333; 2097152.0; 106254.13333333333; 0.0; 1.3333333333333333; 0.0; 0.0 +1376315446; 1; 2599.999309; 17.333328726666668; 0.6666666666666667; 2097152.0; 103457.86666666667; 0.0; 1.3333333333333333; 0.0; 0.0 +1376315746; 1; 2599.999309; 13.86666298133333; 0.5333333333333333; 2097152.0; 76893.33333333333; 0.0; 1.2666666666666666; 0.06666666666666667; 0.0 +1376316046; 1; 2599.999309; 13.86666298133333; 0.5333333333333333; 2097152.0; 111846.66666666667; 0.0; 1.3333333333333333; 0.0; 0.0 +1376316346; 1; 2599.999309; 17.333328726666668; 0.6666666666666667; 2097152.0; 90874.66666666667; 0.0; 1.2; 0.0; 0.0 +1376316646; 1; 2599.999309; 19.06666159933333; 0.7333333333333333; 2097152.0; 128624.26666666666; 0.06666666666666667; 8.733333333333333; 0.3333333333333333; 0.6 +1376316946; 1; 2599.999309; 19.06666159933333; 0.7333333333333333; 2097152.0; 134216.8; 0.0; 1.2; 0.0; 0.0 +1376317246; 1; 2599.999309; 13.86666298133333; 0.5333333333333333; 2097152.0; 121633.6; 0.0; 1.2666666666666666; 0.0; 0.0 +1376317546; 1; 2599.999309; 13.86666298133333; 0.5333333333333333; 2097152.0; 117439.2; 0.0; 1.5333333333333334; 0.0; 0.0 +1376317846; 1; 2599.999309; 13.86666298133333; 0.5333333333333333; 2097152.0; 81087.73333333334; 0.0; 1.2666666666666666; 0.0; 0.0 +1376318146; 1; 2599.999309; 17.333328726666668; 0.6666666666666667; 2097152.0; 95069.06666666667; 0.06666666666666667; 1.6; 0.06666666666666667; 0.13333333333333333 +1376318446; 1; 2599.999309; 20.799994471999998; 0.8; 2097152.0; 82485.86666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1376318746; 1; 2599.999309; 13.86666298133333; 0.5333333333333333; 2097152.0; 100661.6; 0.0; 1.2; 0.0; 0.0 +1376319046; 1; 2599.999309; 13.86666298133333; 0.5333333333333333; 2097152.0; 97865.33333333333; 0.0; 1.2; 0.0; 0.0 +1376319346; 1; 2599.999626; 38.99999439; 1.5; 2097152.0; 104856.0; 0.0; 1.2; 0.0; 0.0 +1376319646; 1; 2599.999626; 13.866664671999999; 0.5333333333333333; 2097152.0; 113244.8; 0.0; 1.0; 0.0; 0.0 +1376319946; 1; 2599.999626; 8.666665420000001; 0.33333333333333337; 2097152.0; 100661.6; 0.0; 1.0; 0.0; 0.0 +1376320246; 1; 2599.999626; 41.599994016000004; 1.6; 2097152.0; 150993.6; 0.0; 2.7333333333333334; 67.46666666666667; 0.5333333333333333 +1376320546; 1; 2599.999626; 10.399998504000001; 0.4; 2097152.0; 141207.46666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376320846; 1; 2599.999626; 0.0; 0.0; 2097152.0; 130022.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1376321146; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 71300.8; 0.0; 1.0; 0.06666666666666667; 0.0 +1376321446; 1; 2599.999626; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1376321746; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 121633.6; 0.0; 1.3333333333333333; 0.06666666666666667; 0.0 +1376322046; 1; 2599.999626; 8.666665420000001; 0.33333333333333337; 2097152.0; 104856.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1376322346; 1; 2599.999626; 8.666665420000001; 0.33333333333333337; 2097152.0; 121633.6; 0.0; 1.4666666666666666; 0.6; 0.0 +1376322647; 1; 2599.999626; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1376322947; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 75495.2; 0.0; 1.2666666666666666; 0.0; 0.0 +1376323247; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 117439.2; 0.0; 7.266666666666667; 0.2; 0.13333333333333333 +1376323547; 1; 2599.999626; 12.133331587999999; 0.4666666666666666; 2097152.0; 130022.4; 0.0; 1.2; 0.0; 0.0 +1376323847; 1; 2599.999626; 13.866664671999999; 0.5333333333333333; 2097152.0; 146800.0; 0.0; 2.466666666666667; 0.0; 0.5333333333333333 +1376324147; 1; 2599.999626; 12.133331587999999; 0.4666666666666666; 2097152.0; 110448.53333333334; 0.2; 1.5333333333333334; 0.0; 0.0 +1376324447; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 1.5333333333333334; 0.0; 0.0 +1376324747; 1; 2599.999626; 0.0; 0.0; 2097152.0; 62912.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1376325047; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 82485.86666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1376325347; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 125828.0; 0.0; 1.0; 0.0; 0.0 +1376325647; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 125827.2; 0.0; 1.2; 0.0; 0.0 +1376325947; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 83884.0; 0.0; 1.3333333333333333; 0.06666666666666667; 0.0 +1376326247; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 100661.6; 0.0; 1.2666666666666666; 0.0; 0.0 +1376326547; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 86680.26666666666; 0.0; 1.2666666666666666; 0.0; 0.0 +1376326847; 1; 2599.999626; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 1.2666666666666666; 0.0; 0.0 +1376327147; 1; 2599.999626; 8.666665420000001; 0.33333333333333337; 2097152.0; 102059.73333333334; 0.0; 1.3333333333333333; 0.0; 0.0 +1376327447; 1; 2599.999626; 13.866664671999999; 0.5333333333333333; 2097152.0; 198527.73333333334; 0.0; 2.533333333333333; 0.06666666666666667; 0.4666666666666667 +1376327747; 1; 2599.999626; 6.933332335999999; 0.26666666666666666; 2097152.0; 130021.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1376328047; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 83884.0; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1376328347; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 113244.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1376328647; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 117439.2; 0.0; 1.4; 0.0; 0.0 +1376328947; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 96467.2; 0.0; 1.2666666666666666; 0.0; 0.0 +1376329247; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 1.2; 0.0; 0.0 +1376329547; 1; 2599.999626; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 1.2; 0.0; 0.0 +1376329847; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 85282.13333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1376330147; 1; 2599.999626; 6.933332335999999; 0.26666666666666666; 2097152.0; 125828.0; 0.2; 7.466666666666667; 0.2; 0.13333333333333333 +1376330447; 1; 2599.999626; 8.666665420000001; 0.33333333333333337; 2097152.0; 113244.8; 0.0; 1.2; 0.0; 0.0 +1376330747; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 155188.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1376331047; 1; 2599.999626; 12.133331587999999; 0.4666666666666666; 2097152.0; 167771.2; 0.0; 2.466666666666667; 0.3333333333333333; 0.4666666666666667 +1376331347; 1; 2599.999626; 8.666665420000001; 0.33333333333333337; 2097152.0; 132817.6; 0.0; 1.6666666666666667; 0.0; 0.0 +1376331647; 1; 2599.999626; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 1.2666666666666666; 0.0; 0.0 +1376331947; 1; 2599.999626; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1376332247; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 113244.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1376332547; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1376332847; 1; 2599.999626; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 1.6; 0.0; 0.0 +1376333147; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 88078.4; 0.0; 1.2666666666666666; 0.0; 0.0 +1376333447; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 111846.66666666667; 0.0; 1.2666666666666666; 0.0; 0.0 +1376333747; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 88078.4; 0.0; 1.3333333333333333; 0.06666666666666667; 0.0 +1376334047; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 82485.86666666667; 0.0; 1.4666666666666666; 0.0; 0.0 +1376334347; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 97865.33333333333; 0.0; 1.2666666666666666; 0.0; 0.0 +1376334647; 1; 2599.999626; 17.333330840000002; 0.6666666666666667; 2097152.0; 170565.86666666667; 0.0; 2.2666666666666666; 0.13333333333333333; 0.4666666666666667 +1376334947; 1; 2599.999626; 6.933332335999999; 0.26666666666666666; 2097152.0; 128624.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1376335247; 1; 2599.999626; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 1.2; 0.0; 0.0 +1376335547; 1; 2599.999626; 46.799993268; 1.8; 2097152.0; 341134.4; 161.73333333333332; 14.666666666666666; 0.0; 0.2 +1376335847; 1; 2599.999626; 13.866664671999999; 0.5333333333333333; 2097152.0; 216702.93333333332; 0.0; 7.733333333333333; 0.26666666666666666; 0.13333333333333333 +1376336147; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 160780.53333333333; 31.8; 3.8666666666666667; 0.0; 0.0 +1376336447; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 135614.13333333333; 0.0; 1.3333333333333333; 0.26666666666666666; 0.0 +1376336747; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 106254.13333333333; 0.0; 1.3333333333333333; 0.06666666666666667; 0.0 +1376337047; 1; 2599.999626; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 1.2; 0.0; 0.0 +1376337347; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 111846.66666666667; 0.0; 1.0; 0.0; 0.0 +1376337647; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 117439.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1376337947; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 135614.93333333332; 0.0; 1.0; 0.0; 0.0 +1376338248; 1; 2599.999626; 12.133331587999999; 0.4666666666666666; 2097152.0; 205518.66666666666; 0.0; 3.066666666666667; 0.0; 0.4666666666666667 +1376338548; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 138410.93333333332; 0.06666666666666667; 1.5333333333333334; 0.0; 0.0 +1376338848; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 118837.33333333333; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1376339148; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 89476.53333333334; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1376339448; 1; 2599.999626; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1376339748; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 118837.33333333333; 0.0; 1.3333333333333333; 0.0; 0.0 +1376340048; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 131420.53333333333; 0.0; 1.2; 0.0; 0.0 +1376340348; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 120235.46666666666; 0.0; 1.2; 0.6666666666666666; 0.0 +1376340648; 1; 2599.999626; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 1.3333333333333333; 0.0; 0.0 +1376340948; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 111846.66666666667; 0.0; 1.4666666666666666; 0.0; 0.0 +1376341248; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 123030.93333333333; 0.0; 1.3333333333333333; 0.0; 0.0 +1376341548; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 118837.33333333333; 0.0; 1.2; 0.0; 0.0 +1376341848; 1; 2599.999626; 17.333330840000002; 0.6666666666666667; 2097152.0; 127225.33333333333; 0.2; 2.6666666666666665; 0.0; 0.4666666666666667 +1376342148; 1; 2599.999626; 6.933332335999999; 0.26666666666666666; 2097152.0; 130022.4; 0.0; 1.2; 0.06666666666666667; 0.0 +1376342448; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 121633.6; 0.0; 1.4; 0.0; 0.0 +1376342748; 1; 2599.999626; 8.666665420000001; 0.33333333333333337; 2097152.0; 111846.66666666667; 0.06666666666666667; 7.2; 0.26666666666666666; 0.13333333333333333 +1376343048; 1; 2599.999626; 8.666665420000001; 0.33333333333333337; 2097152.0; 100661.6; 0.0; 1.3333333333333333; 0.0; 0.0 +1376343348; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 118837.33333333333; 0.0; 1.3333333333333333; 0.13333333333333333; 0.0 +1376343648; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 1.3333333333333333; 0.3333333333333333; 0.0 +1376343948; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 149594.4; 0.0; 1.3333333333333333; 0.0; 0.0 +1376344248; 1; 2599.999626; 6.933332335999999; 0.26666666666666666; 2097152.0; 150993.6; 0.0; 1.1333333333333333; 0.6; 0.0 +1376344548; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 100661.6; 0.0; 1.2666666666666666; 0.06666666666666667; 0.0 +1376344848; 1; 2599.999626; 6.933332335999999; 0.26666666666666666; 2097152.0; 96467.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1376345148; 1; 2599.999626; 6.933332335999999; 0.26666666666666666; 2097152.0; 109050.4; 0.0; 1.5333333333333334; 0.0; 0.0 +1376345448; 1; 2599.999626; 12.133331587999999; 0.4666666666666666; 2097152.0; 162177.86666666667; 0.0; 2.8; 0.06666666666666667; 0.4666666666666667 +1376345748; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 131420.26666666666; 0.0; 1.2666666666666666; 0.0; 0.0 +1376346048; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 118837.33333333333; 0.0; 1.2; 0.0; 0.0 +1376346348; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 90874.66666666667; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1376346648; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 74097.06666666667; 2.6666666666666665; 1.4666666666666666; 0.13333333333333333; 0.0 +1376346948; 1; 2599.999626; 10.399998504000001; 0.4; 2097152.0; 118837.33333333333; 0.0; 1.4666666666666666; 0.06666666666666667; 0.13333333333333333 +1376347248; 1; 2599.999626; 8.666665420000001; 0.33333333333333337; 2097152.0; 113244.8; 0.0; 1.4; 0.0; 0.0 +1376347548; 1; 2599.999626; 0.0; 0.0; 2097152.0; 74097.06666666667; 0.0; 1.3333333333333333; 0.0; 0.0 +1376347848; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 83884.0; 0.0; 1.4666666666666666; 0.0; 0.0 +1376348148; 1; 2599.999626; 8.666665420000001; 0.33333333333333337; 2097152.0; 106254.13333333333; 0.0; 7.466666666666667; 0.26666666666666666; 0.2 +1376348448; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 120235.46666666666; 0.0; 1.2; 0.0; 0.0 +1376348749; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 107652.26666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1376349049; 1; 2599.999626; 8.666665420000001; 0.33333333333333337; 2097152.0; 137012.26666666666; 0.0; 2.533333333333333; 0.06666666666666667; 0.4666666666666667 +1376349349; 1; 2599.999626; 41.599994016000004; 1.6; 2097152.0; 187343.73333333334; 161.0; 21.6; 0.06666666666666667; 0.4 +1376349649; 1; 2599.999626; 22.533330092; 0.8666666666666667; 2097152.0; 577414.1333333333; 0.0; 2.466666666666667; 0.0; 0.0 +1376349949; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 234878.4; 31.8; 3.6666666666666665; 0.0; 0.0 +1376350249; 1; 2599.999626; 6.933332335999999; 0.26666666666666666; 2097152.0; 178954.4; 0.8; 2.466666666666667; 0.0; 0.06666666666666667 +1376350549; 1; 2599.999626; 6.933332335999999; 0.26666666666666666; 2097152.0; 142605.6; 0.0; 1.7333333333333334; 0.0; 0.0 +1376350849; 1; 2599.999626; 6.933332335999999; 0.26666666666666666; 2097152.0; 121633.6; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1376351149; 1; 2599.999626; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 1.2; 0.06666666666666667; 0.0 +1376351449; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 141206.66666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1376351749; 1; 2599.999626; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1376352049; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 82485.86666666667; 1.4666666666666666; 1.6666666666666667; 0.0; 0.0 +1376352349; 1; 2599.999626; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1376352649; 1; 2599.999626; 8.666665420000001; 0.33333333333333337; 2097152.0; 178954.13333333333; 3.8666666666666667; 2.7333333333333334; 0.06666666666666667; 0.5333333333333333 +1376352949; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 141206.4; 0.0; 1.0; 0.0; 0.0 +1376353249; 1; 2599.999626; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1376353549; 1; 2599.999626; 6.933332335999999; 0.26666666666666666; 2097152.0; 95069.06666666667; 0.0; 1.2; 0.0; 0.0 +1376353849; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 114642.93333333333; 0.6; 12.4; 0.0; 0.0 +1376354149; 1; 2599.999626; 6.933332335999999; 0.26666666666666666; 2097152.0; 192936.0; 12.733333333333333; 13.266666666666667; 0.3333333333333333; 0.13333333333333333 +1376354449; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 130022.4; 0.0; 1.6666666666666667; 0.06666666666666667; 0.0 +1376354749; 1; 2599.999626; 0.0; 0.0; 2097152.0; 134216.8; 0.0; 1.4; 0.0; 0.0 +1376355049; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 131420.53333333333; 0.0; 1.3333333333333333; 0.0; 0.0 +1376355349; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 134216.0; 0.0; 1.2; 0.0; 0.0 +1376355649; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 135614.93333333332; 0.0; 1.1333333333333333; 0.0; 0.0 +1376355949; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 99263.46666666666; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1376356249; 1; 2599.999626; 13.866664671999999; 0.5333333333333333; 2097152.0; 138410.66666666666; 0.0; 2.8; 0.06666666666666667; 0.4666666666666667 +1376356549; 1; 2599.999626; 12.133331587999999; 0.4666666666666666; 2097152.0; 121633.33333333333; 0.0; 2.066666666666667; 0.0; 0.0 +1376356849; 1; 2599.999626; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 1.2; 0.06666666666666667; 0.0 +1376357149; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 121633.6; 0.0; 1.3333333333333333; 0.0; 0.0 +1376357449; 1; 2599.999626; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1376357749; 1; 2599.999626; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 1.2666666666666666; 0.0; 0.0 +1376358049; 1; 2599.999626; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1376358349; 1; 2599.999626; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 1.2666666666666666; 0.0; 0.0 +1376358649; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 118837.33333333333; 0.0; 1.2; 0.0; 0.0 +1376358949; 1; 2599.999626; 0.0; 0.0; 2097152.0; 60115.73333333333; 0.0; 1.4666666666666666; 0.0; 0.0 +1376359250; 1; 2599.999626; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 1.3333333333333333; 0.06666666666666667; 0.0 +1376359550; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 138411.2; 0.0; 7.4; 0.2; 0.13333333333333333 +1376359850; 1; 2599.999626; 10.399998504000001; 0.4; 2097152.0; 160780.53333333333; 0.0; 2.6; 0.06666666666666667; 0.4666666666666667 +1376360150; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 107652.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1376360450; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 82485.86666666667; 0.0; 1.2666666666666666; 0.0; 0.0 +1376360750; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 111846.66666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1376361050; 1; 2599.999626; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 1.2; 0.06666666666666667; 0.0 +1376361350; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 117439.2; 0.0; 1.2; 0.0; 0.0 +1376361650; 1; 2599.999626; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 1.4; 0.06666666666666667; 0.0 +1376361950; 1; 2599.999626; 0.0; 0.0; 2097152.0; 75495.2; 0.0; 1.4666666666666666; 0.0; 0.0 +1376362250; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 131420.53333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1376362550; 1; 2599.999626; 0.0; 0.0; 2097152.0; 124429.86666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1376362849; 1; 2599.999626; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 1.0; 0.0; 0.0 +1376363149; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 109050.4; 0.0; 1.3333333333333333; 0.0; 0.0 +1376363449; 1; 2599.999626; 8.666665420000001; 0.33333333333333337; 2097152.0; 169168.53333333333; 0.06666666666666667; 2.933333333333333; 0.06666666666666667; 0.4666666666666667 +1376363749; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 137013.06666666668; 0.0; 1.2666666666666666; 0.0; 0.0 +1376364049; 1; 2599.999626; 0.0; 0.0; 2097152.0; 123030.93333333333; 0.0; 1.2666666666666666; 0.0; 0.0 +1376364349; 1; 2599.999626; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 1.2; 0.0; 0.0 +1376364650; 1; 2599.999626; 0.0; 0.0; 2097152.0; 135614.66666666666; 0.0; 1.3333333333333333; 0.0; 0.0 +1376364950; 1; 2599.999626; 0.0; 0.0; 2097152.0; 111846.13333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1376365250; 1; 2599.999626; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 1.2; 0.0; 0.0 +1376365550; 1; 2599.999626; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 1.5333333333333334; 0.0; 0.0 +1376365850; 1; 2599.999626; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 1.3333333333333333; 0.0; 0.0 +1376366150; 1; 2599.999626; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 1.4666666666666666; 0.0; 0.0 +1376366450; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 111846.66666666667; 0.06666666666666667; 7.466666666666667; 0.2; 0.13333333333333333 +1376366750; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 109050.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1376367050; 1; 2599.999626; 8.666665420000001; 0.33333333333333337; 2097152.0; 117439.2; 0.0; 2.6; 0.4; 0.5333333333333333 +1376367350; 1; 2599.999626; 6.933332335999999; 0.26666666666666666; 2097152.0; 139809.33333333334; 0.0; 1.3333333333333333; 0.0; 0.0 +1376367650; 1; 2599.999626; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1376367950; 1; 2599.999626; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 1.2; 0.0; 0.0 +1376368250; 1; 2599.999626; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 1.3333333333333333; 0.0; 0.0 +1376368550; 1; 2599.999626; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 1.2666666666666666; 0.0; 0.0 +1376368850; 1; 2599.999626; 0.0; 0.0; 2097152.0; 144002.93333333332; 0.0; 1.6; 0.0; 0.0 +1376369150; 1; 2599.999626; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1376369450; 1; 2599.999626; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 1.1333333333333333; 0.26666666666666666; 0.0 +1376369750; 1; 2599.999626; 6.933332335999999; 0.26666666666666666; 2097152.0; 75495.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1376370050; 1; 2599.999626; 0.0; 0.0; 2097152.0; 58717.6; 0.0; 1.3333333333333333; 0.0; 0.0 +1376370350; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 86680.26666666666; 0.0; 1.3333333333333333; 0.0; 0.0 +1376370650; 1; 2599.999626; 8.666665420000001; 0.33333333333333337; 2097152.0; 142604.0; 0.06666666666666667; 3.066666666666667; 0.06666666666666667; 0.4666666666666667 +1376370950; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 114642.93333333333; 0.0; 1.3333333333333333; 0.6666666666666666; 0.0 +1376371250; 1; 2599.999626; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 1.2; 0.2; 0.0 +1376371550; 1; 2599.999626; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 1.3333333333333333; 0.0; 0.0 +1376371850; 1; 2599.999626; 6.933332335999999; 0.26666666666666666; 2097152.0; 167770.13333333333; 0.0; 7.066666666666666; 0.3333333333333333; 0.13333333333333333 +1376372150; 1; 2599.999626; 0.0; 0.0; 2097152.0; 139808.8; 0.0; 1.2; 0.0; 0.0 +1376372450; 1; 2599.999626; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 1.3333333333333333; 0.0; 0.0 +1376372750; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 96467.2; 0.0; 1.4; 0.0; 0.0 +1376373050; 1; 2599.999626; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 1.5333333333333334; 0.0; 0.0 +1376373350; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 125827.2; 0.0; 1.2666666666666666; 0.0; 0.0 +1376373651; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 116041.06666666667; 0.0; 1.2; 0.0; 0.0 +1376373951; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 106254.13333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1376374251; 1; 2599.999626; 10.399998504000001; 0.4; 2097152.0; 163575.46666666667; 0.06666666666666667; 2.8666666666666667; 0.06666666666666667; 0.4666666666666667 +1376374551; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 128623.73333333334; 0.0; 1.2; 0.0; 0.0 +1376374851; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 86680.26666666666; 0.0; 1.2666666666666666; 0.06666666666666667; 0.0 +1376375151; 1; 2599.999626; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 1.2666666666666666; 0.0; 0.0 +1376375451; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 123031.73333333334; 0.0; 1.2666666666666666; 0.0; 0.0 +1376375751; 1; 2599.999626; 12.133331587999999; 0.4666666666666666; 2097152.0; 117439.2; 0.0; 3.0; 0.13333333333333333; 0.13333333333333333 +1376376051; 1; 2599.999626; 8.666665420000001; 0.33333333333333337; 2097152.0; 142604.8; 0.0; 2.066666666666667; 0.06666666666666667; 0.0 +1376376351; 1; 2599.999626; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1376376651; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 127225.33333333333; 0.0; 1.2; 0.0; 0.0 +1376376951; 1; 2599.999626; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 1.4; 0.0; 0.0 +1376377251; 1; 2599.999626; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 1.2666666666666666; 0.0; 0.0 +1376377551; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 118837.33333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1376377851; 1; 2599.999626; 12.133331587999999; 0.4666666666666666; 2097152.0; 180353.6; 0.6; 2.6666666666666665; 0.13333333333333333; 0.4666666666666667 +1376378151; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 99263.46666666666; 0.0; 1.2666666666666666; 0.0; 0.0 +1376378451; 1; 2599.999626; 10.399998504000001; 0.4; 2097152.0; 116041.06666666667; 0.0; 7.333333333333333; 0.2; 0.13333333333333333 +1376378751; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 110448.53333333334; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1376379051; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 86680.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1376379351; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 96467.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1376379651; 1; 2599.999626; 0.0; 0.0; 2097152.0; 118836.53333333334; 0.0; 1.3333333333333333; 0.0; 0.0 +1376379951; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 111846.66666666667; 0.0; 2.0; 0.0; 0.0 +1376380251; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1376380551; 1; 2599.999626; 0.0; 0.0; 2097152.0; 74097.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1376380851; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 131420.53333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1376381151; 1; 2599.999626; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 1.3333333333333333; 0.0; 0.0 +1376381451; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 144003.73333333334; 0.0; 2.533333333333333; 0.06666666666666667; 0.5333333333333333 +1376381751; 1; 2599.999626; 0.0; 0.0; 2097152.0; 131420.53333333333; 0.0; 1.2; 0.06666666666666667; 0.0 +1376382051; 1; 2599.999626; 0.0; 0.0; 2097152.0; 138409.6; 0.0; 1.2666666666666666; 0.0; 0.0 +1376382351; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 75495.2; 0.0; 1.2; 0.0; 0.0 +1376382651; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 81087.73333333334; 0.0; 1.4; 0.0; 0.0 +1376382951; 1; 2599.999626; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1376383251; 1; 2599.999626; 0.0; 0.0; 2097152.0; 71300.8; 0.0; 1.2; 0.0; 0.0 +1376383551; 1; 2599.999626; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1376383851; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 107652.26666666666; 0.0; 1.4; 0.0; 0.0 +1376384151; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 89476.53333333334; 0.0; 1.3333333333333333; 0.0; 0.0 +1376384451; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 99263.46666666666; 0.0; 1.2; 0.0; 0.0 +1376384752; 1; 2599.999626; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1376385052; 1; 2599.999626; 8.666665420000001; 0.33333333333333337; 2097152.0; 113244.8; 0.0; 2.6666666666666665; 0.06666666666666667; 0.4666666666666667 +1376385352; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 111846.66666666667; 0.0; 1.2666666666666666; 0.06666666666666667; 0.0 +1376385652; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 95069.06666666667; 0.0; 7.0; 1.0666666666666667; 0.2 +1376385952; 1; 2599.999626; 0.0; 0.0; 2097152.0; 76893.33333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1376386252; 1; 2599.999626; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 1.0; 0.0; 0.0 +1376386552; 1; 2599.999626; 0.0; 0.0; 2097152.0; 127225.86666666667; 0.0; 1.2; 0.0; 0.0 +1376386852; 1; 2599.999626; 0.0; 0.0; 2097152.0; 132818.4; 0.0; 1.3333333333333333; 0.06666666666666667; 0.0 +1376387152; 1; 2599.999626; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 1.2666666666666666; 0.0; 0.0 +1376387452; 1; 2599.999626; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 1.0; 0.2; 0.0 +1376387752; 1; 2599.999626; 0.0; 0.0; 2097152.0; 128624.26666666666; 0.0; 1.2; 0.0; 0.0 +1376388052; 1; 2599.999626; 6.933332335999999; 0.26666666666666666; 2097152.0; 130022.4; 0.0; 1.2666666666666666; 0.0; 0.0 +1376388352; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 111846.66666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1376388652; 1; 2599.999626; 10.399998504000001; 0.4; 2097152.0; 169168.26666666666; 0.0; 2.933333333333333; 0.06666666666666667; 0.4666666666666667 +1376388952; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 146799.2; 0.0; 1.2; 0.0; 0.0 +1376389252; 1; 2599.999626; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1376389552; 1; 2599.999626; 3.4666661679999997; 0.13333333333333333; 2097152.0; 128624.26666666666; 0.0; 1.4; 0.0; 0.0 +1376389852; 1; 2599.999626; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1376390152; 1; 2599.999626; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1376390452; 1; 2599.999626; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1376390752; 1; 2599.999626; 5.1999992520000005; 0.2; 2097152.0; 97865.33333333333; 0.0; 1.4666666666666666; 0.0; 0.0 +1376391052; 1; 2599.999626; 1.7333330839999999; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 1.2666666666666666; 0.0; 0.0 +1376391352; 1; 2599.999626; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1376391652; 1; 2599.999626; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1376391952; 1; 2599.999626; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 1.2; 0.0; 0.0 +1376392252; 1; 2599.999626; 6.933332335999999; 0.26666666666666666; 2097152.0; 191537.33333333334; 0.0; 2.8666666666666667; 0.06666666666666667; 0.4666666666666667 +1376392552; 1; 2599.999626; 8.666665420000001; 0.33333333333333337; 2097152.0; 163576.0; 0.0; 7.266666666666667; 0.26666666666666666; 0.13333333333333333 +1376392853; 1; 2599.999626; 0.0; 0.0; 2097152.0; 138409.6; 0.0; 1.2; 0.13333333333333333; 0.0 +1376393153; 1; 2599.999602; 38.999994029999996; 1.5; 2097152.0; 111846.66666666667; 0.0; 1.2; 0.0; 0.0 +1376393453; 1; 2599.999602; 20.799996815999997; 0.8; 2097152.0; 109049.6; 0.0; 1.5333333333333334; 0.0; 0.0 +1376393753; 1; 2599.999602; 17.333330680000003; 0.6666666666666667; 2097152.0; 93670.93333333333; 0.0; 1.3333333333333333; 0.0; 0.0 +1376394053; 1; 2599.999602; 15.599997612; 0.6; 2097152.0; 107652.26666666666; 0.0; 1.2666666666666666; 0.0; 0.0 +1376394353; 1; 2599.999602; 15.599997612; 0.6; 2097152.0; 111846.66666666667; 0.0; 1.6666666666666667; 0.0; 0.0 +1376394653; 1; 2599.999602; 17.333330680000003; 0.6666666666666667; 2097152.0; 75495.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1376394953; 1; 2599.999602; 15.599997612; 0.6; 2097152.0; 60115.73333333333; 0.0; 1.3333333333333333; 0.0; 0.0 +1376395253; 1; 2599.999602; 17.333330680000003; 0.6666666666666667; 2097152.0; 110448.53333333334; 0.0; 1.2; 0.0; 0.0 +1376395552; 1; 2599.999602; 19.066663748; 0.7333333333333333; 2097152.0; 120235.46666666666; 0.0; 1.3333333333333333; 0.0; 0.0 +1376395852; 1; 2599.999602; 19.066663748; 0.7333333333333333; 2097152.0; 113244.8; 0.0; 2.6; 0.06666666666666667; 0.4666666666666667 +1376396152; 1; 2599.999602; 15.599997612; 0.6; 2097152.0; 103457.86666666667; 0.0; 1.4666666666666666; 0.0; 0.0 +1376396452; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 116041.06666666667; 0.0; 1.4666666666666666; 0.0; 0.0 +1376396752; 1; 2599.999602; 10.399998407999998; 0.4; 2097152.0; 117439.2; 0.0; 1.2; 0.0; 0.0 +1376397052; 1; 2599.999602; 17.333330680000003; 0.6666666666666667; 2097152.0; 113244.8; 0.0; 1.2; 0.0; 0.0 +1376397352; 1; 2599.999602; 6.933332272; 0.26666666666666666; 2097152.0; 92272.8; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1376397652; 1; 2599.999602; 15.599997612; 0.6; 2097152.0; 97865.33333333333; 0.0; 12.533333333333333; 0.0; 0.0 +1376397952; 1; 2599.999602; 15.599997612; 0.6; 2097152.0; 81087.73333333334; 0.0; 1.5333333333333334; 0.0; 0.0 +1376398252; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 106254.13333333333; 0.0; 1.3333333333333333; 0.0; 0.0 +1376398552; 1; 2599.999602; 10.399998407999998; 0.4; 2097152.0; 100661.6; 0.0; 1.3333333333333333; 0.0; 0.0 +1376398853; 1; 2599.999602; 13.866664544; 0.5333333333333333; 2097152.0; 99263.46666666666; 0.0; 7.2; 7.2; 0.13333333333333333 +1376399153; 1; 2599.999602; 13.866664544; 0.5333333333333333; 2097152.0; 155188.0; 0.0; 1.4; 0.0; 0.0 +1376399453; 1; 2599.999602; 22.533329884; 0.8666666666666667; 2097152.0; 178955.46666666667; 0.0; 2.6666666666666665; 0.06666666666666667; 0.5333333333333333 +1376399753; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 100661.6; 0.0; 1.2; 0.0; 0.0 +1376400053; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 111846.66666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1376400353; 1; 2599.999602; 10.399998407999998; 0.4; 2097152.0; 74097.06666666667; 0.0; 1.4666666666666666; 0.0; 0.0 +1376400653; 1; 2599.999602; 15.599997612; 0.6; 2097152.0; 92272.8; 0.0; 1.6666666666666667; 0.0; 0.0 +1376400953; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 88078.4; 0.0; 2.0; 0.0; 0.0 +1376401253; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 69902.66666666667; 0.0; 1.2; 0.0; 0.0 +1376401553; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 114642.93333333333; 0.0; 1.2666666666666666; 0.0; 0.0 +1376401853; 1; 2599.999602; 15.599997612; 0.6; 2097152.0; 130022.4; 0.0; 1.4; 0.0; 0.0 +1376402153; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 130022.4; 0.0; 1.2; 0.0; 0.0 +1376402453; 1; 2599.999602; 13.866664544; 0.5333333333333333; 2097152.0; 92272.8; 0.0; 1.2666666666666666; 0.0; 0.0 +1376402753; 1; 2599.999602; 15.599997612; 0.6; 2097152.0; 83884.0; 0.0; 1.3333333333333333; 0.06666666666666667; 0.0 +1376403053; 1; 2599.999602; 15.599997612; 0.6; 2097152.0; 113244.8; 0.0; 3.1333333333333333; 0.0; 0.4666666666666667 +1376403353; 1; 2599.999602; 17.333330680000003; 0.6666666666666667; 2097152.0; 113244.8; 0.0; 1.3333333333333333; 0.0; 0.0 +1376403653; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 111846.66666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1376403953; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 93670.93333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1376404253; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 74097.06666666667; 0.0; 1.2; 0.06666666666666667; 0.0 +1376404553; 1; 2599.999602; 17.333330680000003; 0.6666666666666667; 2097152.0; 90874.66666666667; 0.06666666666666667; 2.066666666666667; 0.06666666666666667; 0.13333333333333333 +1376404853; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 92272.8; 0.0; 1.2666666666666666; 0.0; 0.0 +1376405153; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 65708.26666666666; 0.0; 1.3333333333333333; 0.0; 0.0 +1376405453; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 100661.6; 0.0; 1.3333333333333333; 0.0; 0.0 +1376405753; 1; 2599.999602; 10.399998407999998; 0.4; 2097152.0; 106254.13333333333; 0.0; 7.4; 0.2; 0.13333333333333333 +1376406053; 1; 2599.999602; 13.866664544; 0.5333333333333333; 2097152.0; 83884.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1376406353; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 135614.93333333332; 0.0; 0.9333333333333333; 0.0; 0.0 +1376406653; 1; 2599.999602; 74.53332192399999; 2.8666666666666667; 2097152.0; 630542.1333333333; 161.13333333333333; 23.266666666666666; 0.06666666666666667; 0.8666666666666667 +1376406954; 1; 2599.999602; 19.066663748; 0.7333333333333333; 2097152.0; 369096.8; 0.3333333333333333; 20.2; 0.0; 0.0 +1376407254; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 237674.93333333332; 31.8; 3.933333333333333; 0.0; 0.0 +1376407554; 1; 2599.999602; 19.066663748; 0.7333333333333333; 2097152.0; 141207.46666666667; 4.266666666666667; 2.533333333333333; 0.06666666666666667; 0.0 +1376407854; 1; 2599.999602; 17.333330680000003; 0.6666666666666667; 2097152.0; 96467.2; 0.0; 1.7333333333333334; 0.0; 0.0 +1376408154; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 106254.13333333333; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1376408454; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 132818.66666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1376408754; 1; 2599.999602; 13.866664544; 0.5333333333333333; 2097152.0; 100661.6; 0.0; 1.5333333333333334; 0.2; 0.0 +1376409054; 1; 2599.999602; 10.399998407999998; 0.4; 2097152.0; 110448.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1376409354; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 99263.46666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1376409654; 1; 2599.999602; 15.599997612; 0.6; 2097152.0; 81087.73333333334; 0.0; 1.2; 0.0; 0.0 +1376409954; 1; 2599.999602; 13.866664544; 0.5333333333333333; 2097152.0; 92272.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1376410254; 1; 2599.999602; 15.599997612; 0.6; 2097152.0; 149595.46666666667; 0.0; 2.8; 0.06666666666666667; 0.4666666666666667 +1376410554; 1; 2599.999602; 17.333330680000003; 0.6666666666666667; 2097152.0; 114642.93333333333; 0.0; 1.2; 0.0; 0.0 +1376410854; 1; 2599.999602; 13.866664544; 0.5333333333333333; 2097152.0; 118837.33333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1376411154; 1; 2599.999602; 17.333330680000003; 0.6666666666666667; 2097152.0; 102059.73333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1376411454; 1; 2599.999602; 15.599997612; 0.6; 2097152.0; 109050.4; 0.0; 1.4; 0.0; 0.0 +1376411754; 1; 2599.999602; 20.799996815999997; 0.8; 2097152.0; 100661.6; 12.733333333333333; 13.466666666666667; 0.3333333333333333; 0.2 +1376412054; 1; 2599.999602; 13.866664544; 0.5333333333333333; 2097152.0; 128624.26666666666; 0.0; 1.6666666666666667; 0.0; 0.0 +1376412354; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 106254.13333333333; 0.0; 1.3333333333333333; 0.0; 0.0 +1376412654; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 121633.6; 0.0; 1.2; 0.0; 0.0 +1376412954; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 85282.13333333333; 0.0; 1.2; 0.0; 0.0 +1376413255; 1; 2599.999602; 10.399998407999998; 0.4; 2097152.0; 90874.66666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1376413555; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 74097.06666666667; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1376413855; 1; 2599.999602; 20.799996815999997; 0.8; 2097152.0; 138409.6; 0.06666666666666667; 2.8; 0.06666666666666667; 0.4666666666666667 +1376414155; 1; 2599.999602; 10.399998407999998; 0.4; 2097152.0; 96467.2; 0.0; 1.4666666666666666; 0.0; 0.0 +1376414455; 1; 2599.999602; 13.866664544; 0.5333333333333333; 2097152.0; 90874.66666666667; 0.0; 1.3333333333333333; 0.0; 0.0 +1376414755; 1; 2599.999602; 15.599997612; 0.6; 2097152.0; 92272.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1376415055; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 96467.2; 0.0; 1.2666666666666666; 0.0; 0.0 +1376415355; 1; 2599.999602; 10.399998407999998; 0.4; 2097152.0; 95069.06666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1376415655; 1; 2599.999602; 13.866664544; 0.5333333333333333; 2097152.0; 93670.93333333333; 0.0; 1.3333333333333333; 0.0; 0.0 +1376415955; 1; 2599.999602; 13.866664544; 0.5333333333333333; 2097152.0; 85282.13333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1376416255; 1; 2599.999602; 6.933332272; 0.26666666666666666; 2097152.0; 95069.06666666667; 0.0; 1.3333333333333333; 0.0; 0.0 +1376416555; 1; 2599.999602; 13.866664544; 0.5333333333333333; 2097152.0; 95069.06666666667; 0.0; 1.2; 0.0; 0.0 +1376416855; 1; 2599.999602; 15.599997612; 0.6; 2097152.0; 82485.86666666667; 1.0666666666666667; 1.9333333333333333; 0.0; 0.0 +1376417155; 1; 2599.999602; 13.866664544; 0.5333333333333333; 2097152.0; 120235.46666666666; 0.0; 1.4666666666666666; 0.0; 0.0 +1376417455; 1; 2599.999602; 20.799996815999997; 0.8; 2097152.0; 195732.26666666666; 0.0; 2.4; 0.0; 0.5333333333333333 +1376417755; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 102059.73333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1376418055; 1; 2599.999602; 15.599997612; 0.6; 2097152.0; 95069.06666666667; 0.0; 1.2; 0.0; 0.0 +1376418355; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 125828.0; 0.0; 7.333333333333333; 0.26666666666666666; 0.2 +1376418655; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 102059.73333333334; 0.0; 1.2666666666666666; 0.0; 0.0 +1376418955; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 117438.4; 0.0; 1.2666666666666666; 0.0; 0.0 +1376419255; 1; 2599.999602; 6.933332272; 0.26666666666666666; 2097152.0; 102059.73333333334; 0.0; 1.3333333333333333; 0.0; 0.0 +1376419555; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 118836.53333333334; 0.0; 1.2; 0.0; 0.0 +1376419855; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 64310.13333333333; 0.0; 1.4666666666666666; 0.0; 0.0 +1376420155; 1; 2599.999602; 0.0; 0.0; 2097152.0; 76893.33333333333; 0.0; 1.2; 0.0; 0.0 +1376420455; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 109050.4; 0.0; 1.6; 0.0; 0.06666666666666667 +1376420755; 1; 2599.999602; 6.933332272; 0.26666666666666666; 2097152.0; 109050.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1376421055; 1; 2599.999602; 10.399998407999998; 0.4; 2097152.0; 202721.86666666667; 0.0; 2.8666666666666667; 0.06666666666666667; 0.5333333333333333 +1376421355; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 100661.6; 0.0; 1.4666666666666666; 0.0; 0.0 +1376421655; 1; 2599.999602; 0.0; 0.0; 2097152.0; 76893.33333333333; 0.0; 1.2666666666666666; 0.06666666666666667; 0.0 +1376421955; 1; 2599.999602; 45.066659768; 1.7333333333333334; 2097152.0; 360707.73333333334; 161.73333333333332; 14.466666666666667; 0.0; 0.2 +1376422255; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 282414.4; 0.0; 1.5333333333333334; 0.0; 0.0 +1376422555; 1; 2599.999602; 6.933332272; 0.26666666666666666; 2097152.0; 194334.13333333333; 31.8; 3.8666666666666667; 0.0; 0.0 +1376422856; 1; 2599.999602; 0.0; 0.0; 2097152.0; 137012.26666666666; 0.0; 1.2666666666666666; 0.0; 0.0 +1376423156; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 110448.53333333334; 0.0; 1.3333333333333333; 0.0; 0.0 +1376423456; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 120235.46666666666; 0.0; 1.2; 0.0; 0.0 +1376423756; 1; 2599.999602; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 1.2; 0.0; 0.0 +1376424056; 1; 2599.999602; 6.933332272; 0.26666666666666666; 2097152.0; 99263.46666666666; 0.0; 1.3333333333333333; 0.0; 0.0 +1376424356; 1; 2599.999602; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 1.2; 0.0; 0.0 +1376424656; 1; 2599.999602; 15.599997612; 0.6; 2097152.0; 153790.13333333333; 0.06666666666666667; 8.933333333333334; 0.26666666666666666; 0.6 +1376424956; 1; 2599.999602; 15.599997612; 0.6; 2097152.0; 127226.13333333333; 0.0; 1.0; 0.0; 0.0 +1376425256; 1; 2599.999602; 10.399998407999998; 0.4; 2097152.0; 82485.86666666667; 0.0; 1.3333333333333333; 0.0; 0.0 +1376425556; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 102059.73333333334; 0.0; 1.2; 0.0; 0.0 +1376425856; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 99263.46666666666; 0.0; 1.2; 0.0; 0.0 +1376426156; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 89476.53333333334; 0.0; 1.2; 0.0; 0.0 +1376426456; 1; 2599.999602; 10.399998407999998; 0.4; 2097152.0; 83884.0; 0.0; 1.4; 0.0; 0.0 +1376426756; 1; 2599.999602; 6.933332272; 0.26666666666666666; 2097152.0; 82485.86666666667; 0.0; 1.2666666666666666; 0.0; 0.0 +1376427056; 1; 2599.999602; 10.399998407999998; 0.4; 2097152.0; 100661.6; 0.0; 1.0; 0.06666666666666667; 0.0 +1376427356; 1; 2599.999602; 6.933332272; 0.26666666666666666; 2097152.0; 89476.53333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1376427656; 1; 2599.999602; 13.866664544; 0.5333333333333333; 2097152.0; 100661.6; 0.0; 1.2; 0.06666666666666667; 0.0 +1376427956; 1; 2599.999602; 10.399998407999998; 0.4; 2097152.0; 100661.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1376428256; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 199926.4; 0.06666666666666667; 3.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1376428556; 1; 2599.999602; 15.599997612; 0.6; 2097152.0; 163576.8; 0.0; 1.3333333333333333; 0.0; 0.0 +1376428856; 1; 2599.999602; 13.866664544; 0.5333333333333333; 2097152.0; 104856.0; 0.0; 1.2; 0.0; 0.0 +1376429156; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 113244.8; 0.0; 1.2; 0.0; 0.0 +1376429456; 1; 2599.999602; 13.866664544; 0.5333333333333333; 2097152.0; 109050.4; 0.0; 1.2; 0.0; 0.0 +1376429756; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 74097.06666666667; 0.0; 1.2; 0.0; 0.0 +1376430056; 1; 2599.999602; 10.399998407999998; 0.4; 2097152.0; 111846.66666666667; 0.0; 1.2; 0.0; 0.0 +1376430356; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 134216.0; 0.0; 1.3333333333333333; 0.0; 0.0 +1376430656; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 92272.8; 0.0; 1.3333333333333333; 0.0; 0.0 +1376430956; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 96467.2; 0.0; 1.5333333333333334; 0.0; 0.0 +1376431256; 1; 2599.999602; 10.399998407999998; 0.4; 2097152.0; 121633.6; 0.0; 7.266666666666667; 0.2; 0.13333333333333333 +1376431556; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 125828.0; 0.0; 1.2; 0.0; 0.0 +1376431856; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 131420.53333333333; 0.0; 2.6; 0.06666666666666667; 0.4666666666666667 +1376432156; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 102059.73333333334; 0.0; 1.4; 0.0; 0.0 +1376432456; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 92272.8; 0.0; 1.4; 0.0; 0.0 +1376432756; 1; 2599.999602; 6.933332272; 0.26666666666666666; 2097152.0; 96467.2; 0.0; 1.3333333333333333; 0.06666666666666667; 0.0 +1376433056; 1; 2599.999602; 15.599997612; 0.6; 2097152.0; 131419.73333333334; 0.06666666666666667; 2.7333333333333334; 0.0; 0.0 +1376433356; 1; 2599.999602; 15.599997612; 0.6; 2097152.0; 137013.06666666668; 0.0; 1.6666666666666667; 0.4666666666666667; 0.13333333333333333 +1376433656; 1; 2599.999602; 10.399998407999998; 0.4; 2097152.0; 92272.8; 0.0; 1.4; 0.0; 0.0 +1376433956; 1; 2599.999602; 6.933332272; 0.26666666666666666; 2097152.0; 114642.93333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1376434256; 1; 2599.999602; 6.933332272; 0.26666666666666666; 2097152.0; 117439.2; 0.0; 1.2; 0.0; 0.0 +1376434556; 1; 2599.999602; 6.933332272; 0.26666666666666666; 2097152.0; 100661.6; 0.0; 1.2; 0.0; 0.0 +1376434856; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 79689.6; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1376435156; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 103457.86666666667; 0.0; 1.6; 0.0; 0.0 +1376435456; 1; 2599.999602; 15.599997612; 0.6; 2097152.0; 178955.46666666667; 0.13333333333333333; 3.066666666666667; 0.06666666666666667; 0.4666666666666667 +1376435756; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 117439.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1376436056; 1; 2599.999602; 6.933332272; 0.26666666666666666; 2097152.0; 137013.06666666668; 0.0; 1.2; 0.0; 0.0 +1376436356; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 100661.6; 0.0; 1.4; 0.0; 0.0 +1376436656; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 113244.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1376436956; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 85282.13333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1376437256; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 104856.0; 0.0; 1.4; 0.0; 0.0 +1376437556; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 97865.33333333333; 0.06666666666666667; 7.8; 0.3333333333333333; 0.13333333333333333 +1376437856; 1; 2599.999602; 13.866664544; 0.5333333333333333; 2097152.0; 89476.53333333334; 0.0; 1.5333333333333334; 0.0; 0.0 +1376438156; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 90874.66666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1376438456; 1; 2599.999602; 10.399998407999998; 0.4; 2097152.0; 113244.8; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1376438756; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 93670.93333333333; 0.0; 1.2; 0.0; 0.0 +1376439056; 1; 2599.999602; 15.599997612; 0.6; 2097152.0; 197130.4; 0.0; 2.8666666666666667; 0.06666666666666667; 0.4666666666666667 +1376439356; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 118836.53333333334; 0.0; 1.2; 0.0; 0.0 +1376439656; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 103457.86666666667; 0.0; 1.3333333333333333; 0.0; 0.0 +1376439956; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 93670.93333333333; 0.0; 1.3333333333333333; 0.2; 0.0 +1376440256; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 67106.4; 0.0; 1.8; 0.0; 0.0 +1376440557; 1; 2599.999602; 13.866664544; 0.5333333333333333; 2097152.0; 69902.66666666667; 0.0; 1.4; 0.0; 0.0 +1376440857; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 75495.2; 0.0; 1.2; 0.0; 0.0 +1376441157; 1; 2599.999602; 6.933332272; 0.26666666666666666; 2097152.0; 81087.73333333334; 0.0; 12.0; 0.06666666666666667; 0.0 +1376441457; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 92272.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1376441757; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 99263.46666666666; 0.0; 1.0; 0.0; 0.0 +1376442057; 1; 2599.999602; 10.399998407999998; 0.4; 2097152.0; 134216.0; 0.0; 1.3333333333333333; 0.0; 0.0 +1376442357; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 96467.2; 0.0; 1.0; 0.0; 0.0 +1376442657; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 180353.6; 0.0; 2.4; 0.06666666666666667; 0.5333333333333333 +1376442957; 1; 2599.99945; 31.777771055555554; 1.2222222222222223; 2097152.0; 97865.33333333333; 0.0; 0.625; 0.0; 0.0 +1376443257; 1; 2599.99945; 8.666664833333334; 0.33333333333333337; 2097152.0; 156585.33333333334; 0.0; 7.2; 0.3333333333333333; 0.13333333333333333 +1376443557; 1; 2599.99945; 1.7333329666666666; 0.06666666666666667; 2097152.0; 146800.0; 0.0; 1.2; 0.0; 0.0 +1376443857; 1; 2599.99945; 3.466665933333333; 0.13333333333333333; 2097152.0; 123031.73333333334; 0.0; 1.2; 0.0; 0.0 +1376444157; 1; 2599.99945; 6.933331866666666; 0.26666666666666666; 2097152.0; 114642.4; 0.0; 1.2666666666666666; 0.0; 0.0 +1376444457; 1; 2599.99945; 12.133330766666665; 0.4666666666666666; 2097152.0; 148197.33333333334; 0.0; 1.2; 0.06666666666666667; 0.0 +1376444757; 1; 2599.99945; 1.7333329666666666; 0.06666666666666667; 2097152.0; 142604.8; 0.0; 1.4666666666666666; 0.0; 0.0 +1376445057; 1; 2599.99945; 1.7333329666666666; 0.06666666666666667; 2097152.0; 121633.6; 0.0; 1.0; 0.0; 0.0 +1376445357; 1; 2599.99945; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1376445657; 1; 2599.99945; 5.1999989; 0.2; 2097152.0; 96467.2; 0.0; 1.8666666666666667; 10.933333333333334; 0.0 +1376445957; 1; 2599.99945; 1.7333329666666666; 0.06666666666666667; 2097152.0; 88078.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1376446257; 1; 2599.99945; 10.3999978; 0.4; 2097152.0; 134216.0; 0.0; 2.933333333333333; 0.06666666666666667; 0.4666666666666667 +1376446557; 1; 2599.99945; 1.7333329666666666; 0.06666666666666667; 2097152.0; 138411.2; 0.0; 1.2666666666666666; 0.06666666666666667; 0.0 +1376446857; 1; 2599.99945; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 1.2; 0.0; 0.0 +1376447157; 1; 2599.99945; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1376447457; 1; 2599.99945; 8.666664833333334; 0.33333333333333337; 2097152.0; 141206.66666666666; 0.0; 1.2; 0.06666666666666667; 0.0 +1376447757; 1; 2599.99945; 8.666664833333334; 0.33333333333333337; 2097152.0; 153789.6; 0.0; 1.2; 0.13333333333333333; 0.0 +1376448057; 1; 2599.99945; 3.466665933333333; 0.13333333333333333; 2097152.0; 104856.0; 0.0; 1.2; 0.0; 0.0 +1376448357; 1; 2599.99945; 3.466665933333333; 0.13333333333333333; 2097152.0; 120235.46666666666; 0.0; 1.2; 0.0; 0.0 +1376448657; 1; 2599.99945; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1376448957; 1; 2599.99945; 10.3999978; 0.4; 2097152.0; 103457.86666666667; 0.0; 1.6; 0.3333333333333333; 0.0 +1376449257; 1; 2599.99945; 12.133330766666665; 0.4666666666666666; 2097152.0; 90874.66666666667; 0.0; 1.2; 0.0; 0.0 +1376449558; 1; 2599.99945; 8.666664833333334; 0.33333333333333337; 2097152.0; 104856.0; 0.0; 1.2; 0.0; 0.0 +1376449858; 1; 2599.99945; 15.599996699999998; 0.6; 2097152.0; 152390.93333333332; 0.06666666666666667; 2.6666666666666665; 0.06666666666666667; 0.4666666666666667 +1376450158; 1; 2599.99945; 12.133330766666665; 0.4666666666666666; 2097152.0; 137012.8; 0.0; 7.333333333333333; 0.26666666666666666; 0.13333333333333333 +1376450458; 1; 2599.99945; 1.7333329666666666; 0.06666666666666667; 2097152.0; 132818.66666666666; 0.0; 1.2666666666666666; 0.0; 0.0 +1376450758; 1; 2599.99945; 6.933331866666666; 0.26666666666666666; 2097152.0; 149595.46666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1376451058; 1; 2599.99945; 5.1999989; 0.2; 2097152.0; 110448.53333333334; 0.0; 1.2666666666666666; 0.0; 0.0 +1376451358; 1; 2599.99945; 3.466665933333333; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 1.2; 0.0; 0.0 +1376451658; 1; 2599.99945; 0.0; 0.0; 2097152.0; 76893.33333333333; 0.0; 1.6666666666666667; 0.0; 0.0 +1376451958; 1; 2599.99945; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 1.4; 0.0; 0.0 +1376452258; 1; 2599.99945; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1376452558; 1; 2599.99945; 3.466665933333333; 0.13333333333333333; 2097152.0; 95069.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1376452858; 1; 2599.99945; 5.1999989; 0.2; 2097152.0; 111846.66666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1376453158; 1; 2599.99945; 5.1999989; 0.2; 2097152.0; 102059.73333333334; 0.0; 1.4666666666666666; 0.0; 0.0 +1376453458; 1; 2599.99945; 13.866663733333333; 0.5333333333333333; 2097152.0; 130022.4; 0.0; 2.6; 0.2; 0.4666666666666667 +1376453758; 1; 2599.99945; 5.1999989; 0.2; 2097152.0; 104856.0; 0.0; 1.3333333333333333; 0.0; 0.0 +1376454058; 1; 2599.99945; 1.7333329666666666; 0.06666666666666667; 2097152.0; 92272.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1376454358; 1; 2599.99945; 3.466665933333333; 0.13333333333333333; 2097152.0; 76893.33333333333; 0.0; 1.2; 0.0; 0.0 +1376454658; 1; 2599.99945; 3.466665933333333; 0.13333333333333333; 2097152.0; 67106.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1376454958; 1; 2599.99945; 6.933331866666666; 0.26666666666666666; 2097152.0; 124429.86666666667; 0.0; 1.2; 0.0; 0.0 +1376455258; 1; 2599.99945; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1376455558; 1; 2599.99945; 5.1999989; 0.2; 2097152.0; 89476.53333333334; 0.0; 6.933333333333334; 0.3333333333333333; 0.2 +1376455858; 1; 2599.99945; 5.1999989; 0.2; 2097152.0; 116041.06666666667; 0.0; 2.1333333333333333; 0.0; 0.0 +1376456158; 1; 2599.99945; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 1.3333333333333333; 0.0; 0.0 +1376456458; 1; 2599.99945; 5.1999989; 0.2; 2097152.0; 90874.66666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1376456758; 1; 2599.99945; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 1.2; 0.0; 0.0 +1376457058; 1; 2599.99945; 6.933331866666666; 0.26666666666666666; 2097152.0; 107652.26666666666; 0.0; 2.533333333333333; 0.0; 0.4666666666666667 +1376457359; 1; 2599.99945; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 1.3333333333333333; 0.06666666666666667; 0.0 +1376457659; 1; 2599.99945; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1376457959; 1; 2599.99945; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 1.3333333333333333; 0.0; 0.0 +1376458259; 1; 2599.99945; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 1.3333333333333333; 0.0; 0.0 +1376458559; 1; 2599.99945; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 1.5333333333333334; 0.06666666666666667; 0.0 +1376458859; 1; 2599.99945; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1376459159; 1; 2599.99945; 1.7333329666666666; 0.06666666666666667; 2097152.0; 106254.13333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1376459459; 1; 2599.99945; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1376459759; 1; 2599.99945; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 1.2; 0.0; 0.0 +1376460059; 1; 2599.99945; 0.0; 0.0; 2097152.0; 69902.66666666667; 0.0; 1.4; 0.0; 0.0 +1376460359; 1; 2599.99945; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 1.3333333333333333; 1.6; 0.0 +1376460659; 1; 2599.99945; 5.1999989; 0.2; 2097152.0; 150993.6; 0.06666666666666667; 2.8; 0.06666666666666667; 0.4666666666666667 +1376460959; 1; 2599.99945; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 1.2666666666666666; 0.06666666666666667; 0.0 +1376461258; 1; 2599.99945; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 1.2; 0.0; 0.0 +1376461558; 1; 2599.99945; 3.466665933333333; 0.13333333333333333; 2097152.0; 75495.2; 0.06666666666666667; 6.8; 0.26666666666666666; 0.2 +1376461858; 1; 2599.99945; 124.79997359999999; 4.8; 2097152.0; 524285.86666666664; 161.46666666666667; 170.26666666666668; 20.866666666666667; 1.0666666666666667 +1376462158; 1; 2599.99945; 17.333329666666668; 0.6666666666666667; 2097152.0; 541063.2; 5.066666666666666; 12.2; 0.13333333333333333; 0.06666666666666667 +1376462458; 1; 2599.99945; 15.599996699999998; 0.6; 2097152.0; 243267.2; 31.8; 4.6; 0.06666666666666667; 0.0 +1376462758; 1; 2599.99945; 6.933331866666666; 0.26666666666666666; 2097152.0; 187343.2; 0.0; 2.8666666666666667; 0.0; 0.0 +1376463059; 1; 2599.99945; 1.7333329666666666; 0.06666666666666667; 2097152.0; 123030.93333333333; 0.0; 2.066666666666667; 0.0; 0.0 +1376463359; 1; 2599.99945; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 1.2; 0.06666666666666667; 0.0 +1376463659; 1; 2599.99945; 20.7999956; 0.8; 2097152.0; 116041.06666666667; 0.0; 1.2; 0.0; 0.0 +1376463959; 1; 2599.99945; 5.1999989; 0.2; 2097152.0; 111846.66666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1376464259; 1; 2599.999602; 28.599995622; 1.1; 2097152.0; 188740.0; 0.0; 1.4444444444444444; 0.1111111111111111; 0.0 +1376464559; 1; 2599.999602; 17.333330680000003; 0.6666666666666667; 2097152.0; 125827.46666666666; 0.0; 1.2; 0.06666666666666667; 0.0 +1376464859; 1; 2599.999602; 10.399998407999998; 0.4; 2097152.0; 109050.4; 0.0; 1.3333333333333333; 0.0; 0.0 +1376465159; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 104856.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1376465459; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 92272.8; 0.0; 1.5333333333333334; 0.0; 0.0 +1376465759; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 81087.73333333334; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1376466059; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 103457.86666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1376466359; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 125828.0; 0.0; 1.6; 0.0; 0.0 +1376466659; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 138411.2; 0.0; 1.2; 0.0; 0.0 +1376466959; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 124429.86666666667; 0.0; 1.3333333333333333; 0.0; 0.0 +1376467259; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 107651.46666666666; 0.0; 1.2; 0.0; 0.0 +1376467559; 1; 2599.999602; 0.0; 0.0; 2097152.0; 125827.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1376467859; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 152391.73333333334; 0.06666666666666667; 2.4; 0.06666666666666667; 0.4666666666666667 +1376468159; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 92272.8; 0.0; 1.2666666666666666; 0.06666666666666667; 0.0 +1376468459; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 131420.53333333333; 0.0; 7.4; 0.26666666666666666; 0.13333333333333333 +1376468759; 1; 2599.999602; 0.0; 0.0; 2097152.0; 125827.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1376469059; 1; 2599.999602; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1376469359; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 120235.46666666666; 0.0; 1.3333333333333333; 0.06666666666666667; 0.0 +1376469659; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 114642.93333333333; 0.0; 1.6; 0.0; 0.0 +1376469959; 1; 2599.999602; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1376470259; 1; 2599.999602; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1376470559; 1; 2599.999602; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1376470859; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 85282.13333333333; 0.0; 1.3333333333333333; 0.9333333333333333; 0.0 +1376471159; 1; 2599.999602; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1376471459; 1; 2599.999602; 6.933332272; 0.26666666666666666; 2097152.0; 159381.6; 0.06666666666666667; 2.8; 0.13333333333333333; 0.4666666666666667 +1376471759; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 88078.4; 0.0; 1.2; 0.0; 0.0 +1376472059; 1; 2599.999602; 0.0; 0.0; 2097152.0; 62912.0; 0.0; 1.2; 0.0; 0.0 +1376472359; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 72698.93333333333; 0.0; 1.4; 0.0; 0.0 +1376472659; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 97865.33333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1376472959; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 150993.6; 20.6; 2.2666666666666666; 0.0; 0.06666666666666667 +1376473260; 1; 2599.999602; 20.799996815999997; 0.8; 2097152.0; 114642.93333333333; 0.0; 4.2; 0.0; 0.0 +1376473560; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 110448.53333333334; 0.0; 2.933333333333333; 0.0; 0.0 +1376473860; 1; 2599.999602; 6.933332272; 0.26666666666666666; 2097152.0; 142604.53333333333; 12.733333333333333; 13.666666666666666; 0.26666666666666666; 0.13333333333333333 +1376474160; 1; 2599.999602; 0.0; 0.0; 2097152.0; 139808.53333333333; 0.0; 1.4666666666666666; 0.0; 0.0 +1376474460; 1; 2599.999602; 0.0; 0.0; 2097152.0; 131420.53333333333; 0.0; 1.3333333333333333; 0.0; 0.0 +1376474760; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 131420.53333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1376475060; 1; 2599.999602; 12.133331475999999; 0.4666666666666666; 2097152.0; 162177.86666666667; 0.0; 2.4; 0.06666666666666667; 0.4666666666666667 +1376475360; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 130021.6; 0.0; 1.0666666666666667; 0.13333333333333333; 0.0 +1376475660; 1; 2599.999602; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 1.1333333333333333; 0.0; 0.0 +1376475960; 1; 2599.999602; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1376476260; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 127226.13333333333; 0.0; 1.2; 0.0; 0.0 +1376476560; 1; 2599.999602; 0.0; 0.0; 2097152.0; 113244.0; 0.0; 1.4666666666666666; 0.0; 0.0 +1376476860; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 92272.8; 0.0; 1.2666666666666666; 0.06666666666666667; 0.0 +1376477160; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 88078.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1376477460; 1; 2599.999602; 0.0; 0.0; 2097152.0; 148197.06666666668; 0.0; 1.1333333333333333; 0.0; 0.0 +1376477760; 1; 2599.99945; 31.199993399999997; 1.2; 2097152.0; 134216.8; 0.0; 1.2222222222222223; 0.0; 0.0 +1376478060; 1; 2599.99945; 13.866663733333333; 0.5333333333333333; 2097152.0; 109050.4; 0.0; 1.4; 0.0; 0.0 +1376478360; 1; 2599.99945; 15.599996699999998; 0.6; 2097152.0; 93670.93333333333; 0.0; 1.3333333333333333; 0.0; 0.0 +1376478660; 1; 2599.99945; 12.133330766666665; 0.4666666666666666; 2097152.0; 174760.0; 0.0; 2.6; 0.06666666666666667; 0.5333333333333333 +1376478960; 1; 2599.99945; 12.133330766666665; 0.4666666666666666; 2097152.0; 121632.8; 0.0; 1.3333333333333333; 0.06666666666666667; 0.0 +1376479260; 1; 2599.99945; 17.333329666666668; 0.6666666666666667; 2097152.0; 96467.2; 0.0; 1.6; 0.06666666666666667; 0.0 +1376479560; 1; 2599.99945; 6.933331866666666; 0.26666666666666666; 2097152.0; 83884.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1376479860; 1; 2599.99945; 8.666664833333334; 0.33333333333333337; 2097152.0; 113244.8; 0.0; 7.333333333333333; 0.26666666666666666; 0.13333333333333333 +1376480160; 1; 2599.99945; 10.3999978; 0.4; 2097152.0; 124429.06666666667; 0.0; 1.2; 0.0; 0.0 +1376480460; 1; 2599.999343; 37.55554606555556; 1.4444444444444446; 2097152.0; 83884.0; 0.0; 1.0; 0.0; 0.0 +1376480760; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 97865.33333333333; 0.0; 1.8; 0.06666666666666667; 0.0 +1376481060; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 111846.66666666667; 0.0; 1.3333333333333333; 0.0; 0.0 +1376481360; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 117439.2; 0.0; 1.2666666666666666; 0.0; 0.0 +1376481660; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 113244.0; 0.0; 1.2666666666666666; 0.0; 0.0 +1376481960; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 92272.8; 0.0; 1.4; 0.0; 0.0 +1376482261; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 142604.0; 0.0; 2.533333333333333; 0.0; 0.4666666666666667 +1376482561; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 92272.8; 0.0; 1.2666666666666666; 0.0; 0.0 +1376482861; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 109050.4; 0.0; 1.2; 0.0; 0.0 +1376483161; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 97865.33333333333; 0.0; 1.3333333333333333; 0.0; 0.0 +1376483461; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 117439.2; 0.0; 1.6; 0.0; 0.0 +1376483761; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 86680.26666666666; 0.0; 1.2; 0.0; 0.0 +1376484061; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 83884.0; 0.0; 1.2; 0.0; 0.0 +1376484361; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 81087.73333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1376484661; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 116041.06666666667; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1376484961; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 79689.6; 0.0; 12.266666666666667; 0.0; 0.0 +1376485261; 1; 2599.999343; 22.533327639333333; 0.8666666666666667; 2097152.0; 142605.6; 0.06666666666666667; 7.6; 0.2; 0.13333333333333333 +1376485561; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 130021.6; 0.0; 1.3333333333333333; 0.06666666666666667; 0.0 +1376485861; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 166371.46666666667; 0.06666666666666667; 2.7333333333333334; 0.0; 0.4666666666666667 +1376486161; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 113244.8; 0.0; 1.5333333333333334; 0.0; 0.0 +1376486461; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 100661.6; 0.0; 1.2; 0.0; 0.0 +1376486761; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 109050.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1376487061; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 79689.6; 0.0; 1.2; 0.0; 0.0 +1376487361; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 104856.0; 0.0; 1.2; 0.0; 0.0 +1376487661; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 130021.6; 0.0; 1.6; 0.0; 0.0 +1376487961; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 97865.33333333333; 0.0; 1.3333333333333333; 0.0; 0.0 +1376488261; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 102059.73333333334; 0.0; 1.2666666666666666; 0.0; 0.0 +1376488561; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 134216.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1376488861; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 163576.8; 1.8; 1.5333333333333334; 0.0; 0.06666666666666667 +1376489161; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 100661.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1376489461; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 148197.33333333334; 0.0; 2.3333333333333335; 0.0; 0.5333333333333333 +1376489761; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 83884.0; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1376490061; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 109050.4; 0.0; 1.8; 0.06666666666666667; 0.0 +1376490362; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 121633.6; 0.0; 1.4; 0.0; 0.0 +1376490662; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 142605.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1376490962; 1; 2599.999343; 22.533327639333333; 0.8666666666666667; 2097152.0; 130022.4; 0.0; 7.6; 0.26666666666666666; 0.26666666666666666 +1376491262; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 111846.66666666667; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1376491562; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1376491862; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 125827.2; 0.0; 1.3333333333333333; 0.13333333333333333; 0.0 +1376492162; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 121633.6; 0.0; 1.0; 0.0; 0.0 +1376492462; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 83884.0; 0.0; 1.2666666666666666; 0.13333333333333333; 0.0 +1376492762; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 111846.66666666667; 0.0; 1.2666666666666666; 0.0; 0.0 +1376493062; 1; 2599.999343; 24.266660534666663; 0.9333333333333332; 2097152.0; 162177.86666666667; 0.0; 2.8666666666666667; 0.06666666666666667; 0.4666666666666667 +1376493362; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 121632.8; 0.0; 1.2666666666666666; 0.0; 0.0 +1376493662; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 95069.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1376493962; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 75495.2; 0.0; 1.0; 2.4; 0.0 +1376494261; 1; 2599.999309; 25.999993089999997; 1.0; 2097152.0; 71300.8; 0.0; 1.1111111111111112; 0.0; 0.0 +1376494561; 1; 2599.999309; 19.06666159933333; 0.7333333333333333; 2097152.0; 97865.33333333333; 0.0; 1.2666666666666666; 0.0; 0.0 +1376494861; 1; 2599.999309; 19.06666159933333; 0.7333333333333333; 2097152.0; 99263.46666666666; 0.0; 1.3333333333333333; 0.06666666666666667; 0.0 +1376495161; 1; 2599.999309; 17.333328726666668; 0.6666666666666667; 2097152.0; 86680.26666666666; 0.0; 1.5333333333333334; 0.0; 0.0 +1376495461; 1; 2599.999309; 20.799994471999998; 0.8; 2097152.0; 93670.93333333333; 0.0; 1.0; 0.0; 0.0 +1376495761; 1; 2599.999309; 19.06666159933333; 0.7333333333333333; 2097152.0; 85282.13333333333; 0.0; 1.2; 0.06666666666666667; 0.0 +1376496061; 1; 2599.999309; 17.333328726666668; 0.6666666666666667; 2097152.0; 97865.33333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1376496362; 1; 2599.999309; 20.799994471999998; 0.8; 2097152.0; 96467.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1376496662; 1; 2599.999309; 20.799994471999998; 0.8; 2097152.0; 163575.2; 0.2; 2.8666666666666667; 0.13333333333333333; 0.5333333333333333 +1376496962; 1; 2599.999309; 19.06666159933333; 0.7333333333333333; 2097152.0; 93670.93333333333; 0.0; 7.466666666666667; 0.3333333333333333; 0.13333333333333333 +1376497262; 1; 2599.999309; 20.799994471999998; 0.8; 2097152.0; 120235.46666666666; 0.0; 1.6; 0.0; 0.0 +1376497562; 1; 2599.999309; 13.86666298133333; 0.5333333333333333; 2097152.0; 72698.93333333333; 0.0; 1.2; 0.0; 0.0 +1376497862; 1; 2599.999309; 19.06666159933333; 0.7333333333333333; 2097152.0; 85282.13333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1376498162; 1; 2599.999309; 20.799994471999998; 0.8; 2097152.0; 89476.53333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1376498462; 1; 2599.999297; 29.249992091249997; 1.125; 2097152.0; 76019.5; 0.0; 1.0; 0.0; 0.0 +1376498762; 1; 2599.999297; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 1.3333333333333333; 0.06666666666666667; 0.0 +1376499062; 1; 2599.999297; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 1.2; 0.0; 0.0 +1376499362; 1; 2599.999297; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 1.2666666666666666; 0.0; 0.0 +1376499662; 1; 2599.999297; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1376499962; 1; 2599.999297; 5.199998594; 0.2; 2097152.0; 86680.26666666666; 0.0; 1.4; 0.0; 0.0 +1376500262; 1; 2599.999297; 6.933331458666666; 0.26666666666666666; 2097152.0; 152391.2; 0.06666666666666667; 2.533333333333333; 0.06666666666666667; 0.5333333333333333 +1376500562; 1; 2599.999297; 0.0; 0.0; 2097152.0; 117438.93333333333; 0.0; 1.2; 0.2; 0.0 +1376500862; 1; 2599.999297; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1376501162; 1; 2599.999297; 8.666664323333334; 0.33333333333333337; 2097152.0; 114642.93333333333; 0.0; 1.1333333333333333; 143.66666666666666; 0.0 +1376501462; 1; 2599.999297; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 1.5333333333333334; 0.0; 0.0 +1376501762; 1; 2599.999297; 0.0; 0.0; 2097152.0; 76893.33333333333; 0.0; 1.2666666666666666; 0.26666666666666666; 0.0 +1376502062; 1; 2599.999297; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 1.4; 0.0; 0.0 +1376502362; 1; 2599.999297; 3.466665729333333; 0.13333333333333333; 2097152.0; 121633.6; 0.0; 1.0; 0.0; 0.0 +1376502662; 1; 2599.999297; 3.466665729333333; 0.13333333333333333; 2097152.0; 104856.0; 0.0; 1.2; 8.4; 0.0 +1376502962; 1; 2599.999297; 0.0; 0.0; 2097152.0; 128624.26666666666; 0.0; 1.2; 0.0; 0.0 +1376503263; 1; 2599.999297; 0.0; 0.0; 2097152.0; 113244.26666666666; 0.0; 1.2; 0.0; 0.0 +1376503563; 1; 2599.999297; 5.199998594; 0.2; 2097152.0; 138410.93333333332; 0.0; 7.466666666666667; 0.2; 0.13333333333333333 +1376503863; 1; 2599.999297; 6.933331458666666; 0.26666666666666666; 2097152.0; 169168.0; 0.0; 2.7333333333333334; 0.06666666666666667; 0.4666666666666667 +1376504163; 1; 2599.999297; 0.0; 0.0; 2097152.0; 130022.13333333333; 0.0; 1.6; 0.0; 0.0 +1376504463; 1; 2599.999297; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 1.2666666666666666; 0.0; 0.0 +1376504763; 1; 2599.999297; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1376505063; 1; 2599.999297; 0.0; 0.0; 2097152.0; 134216.8; 0.0; 1.2; 0.0; 0.0 +1376505363; 1; 2599.999297; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1376505663; 1; 2599.999297; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 1.5333333333333334; 0.0; 0.0 +1376505963; 1; 2599.999297; 0.0; 0.0; 2097152.0; 72698.93333333333; 0.0; 1.2; 0.0; 0.0 +1376506263; 1; 2599.999297; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.2666666666666666; 0.0; 0.0 +1376506563; 1; 2599.999297; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 1.2666666666666666; 0.0; 0.0 +1376506863; 1; 2599.999297; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 1.4; 0.0; 0.0 +1376507163; 1; 2599.999297; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1376507463; 1; 2599.999297; 5.199998594; 0.2; 2097152.0; 162177.86666666667; 0.06666666666666667; 2.7333333333333334; 0.0; 0.4666666666666667 +1376507763; 1; 2599.999297; 3.466665729333333; 0.13333333333333333; 2097152.0; 116041.06666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1376508063; 1; 2599.999297; 317.19991423399995; 12.2; 2097152.0; 437603.2; 907.8; 1409.7333333333333; 246.6; 7.866666666666666 +1376508363; 1; 2599.999297; 109.199970474; 4.2; 2097152.0; 829071.7333333333; 1.4666666666666666; 6.466666666666667; 0.0; 0.13333333333333333 +1376508663; 1; 2599.999304; 31.199991648; 1.2; 2097152.0; 419428.0; 0.0; 1.7777777777777777; 0.0; 0.0 +1376508963; 1; 2599.999304; 34.66665738666667; 1.3333333333333335; 2097152.0; 321561.86666666664; 0.8; 5.0; 0.0; 0.06666666666666667 +1376509263; 1; 2599.999304; 20.799994432; 0.8; 2097152.0; 223693.33333333334; 0.0; 1.5333333333333334; 0.0; 0.0 +1376509563; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 130022.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1376509863; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 88078.4; 0.0; 1.0; 0.13333333333333333; 0.0 +1376510163; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 78291.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1376510463; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1376510763; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 131420.53333333333; 0.0; 7.133333333333334; 0.2; 0.13333333333333333 +1376511064; 1; 2599.999304; 20.799994432; 0.8; 2097152.0; 201324.8; 17.266666666666666; 2.6; 0.06666666666666667; 0.4666666666666667 +1376511364; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 152391.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1376511664; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 113244.8; 0.0; 1.2; 0.0; 0.0 +1376511964; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1376512264; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 83884.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1376512564; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 83884.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1376512864; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 93670.93333333333; 0.0; 1.0; 0.0; 0.0 +1376513164; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 97865.33333333333; 0.0; 1.0; 0.0; 0.0 +1376513464; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1376513764; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 75495.2; 0.0; 1.0; 0.0; 0.0 +1376514064; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 90874.66666666667; 0.0; 1.0; 0.0; 0.0 +1376514364; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 110448.53333333334; 0.0; 0.6; 0.06666666666666667; 0.0 +1376514664; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 155187.2; 0.0; 2.3333333333333335; 0.0; 0.5333333333333333 +1376514964; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 100661.6; 0.0; 0.8; 0.0; 0.0 +1376515264; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 114642.93333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1376515564; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 130022.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1376515864; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 134216.8; 0.0; 0.7333333333333333; 0.0; 0.0 +1376516164; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 113244.8; 0.0; 0.8; 0.0; 0.0 +1376516464; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 90874.66666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1376516764; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 75495.2; 0.0; 1.0; 0.0; 0.0 +1376517064; 1; 2599.999304; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1376517365; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 121632.8; 0.0; 6.866666666666666; 0.2; 0.13333333333333333 +1376517665; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 121632.8; 0.0; 0.8; 0.0; 0.0 +1376517965; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 96467.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1376518265; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 163576.0; 0.06666666666666667; 2.6; 0.06666666666666667; 0.5333333333333333 +1376518565; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 125827.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1376518865; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 100661.6; 0.0; 0.5333333333333333; 0.0; 0.0 +1376519165; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 131420.53333333333; 0.0; 0.6; 0.0; 0.0 +1376519465; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 85282.13333333333; 2.7333333333333334; 1.2; 0.0; 0.0 +1376519765; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 127226.13333333333; 0.0; 1.0; 0.06666666666666667; 0.06666666666666667 +1376520065; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 137013.06666666668; 0.0; 0.8; 0.0; 0.0 +1376520365; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 125828.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1376520665; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 121633.6; 0.0; 0.6; 0.0; 0.0 +1376520965; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 97865.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1376521265; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 120235.46666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1376521565; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 141206.66666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1376521865; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 164974.13333333333; 0.0; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1376522165; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 113244.8; 0.0; 1.0; 0.0; 0.0 +1376522465; 1; 2599.999304; 136.93329667733332; 5.266666666666667; 2097152.0; 171964.0; 161.86666666666667; 14.466666666666667; 0.0; 0.0 +1376522765; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 289404.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1376523065; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 170567.46666666667; 31.8; 3.7333333333333334; 0.0; 0.0 +1376523365; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 226490.4; 0.0; 0.8; 0.0; 0.0 +1376523665; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 117439.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1376523965; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 76893.33333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1376524265; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 120235.46666666666; 0.0; 7.0; 0.2; 0.13333333333333333 +1376524565; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 146798.4; 0.0; 0.8; 0.0; 0.0 +1376524865; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 100661.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1376525165; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 116041.06666666667; 0.0; 1.0; 0.0; 0.0 +1376525465; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 159380.8; 0.0; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1376525765; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 117439.2; 0.06666666666666667; 0.9333333333333333; 0.0; 0.0 +1376526065; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 142605.6; 0.0; 0.8; 0.0; 0.0 +1376526365; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 107652.26666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1376526665; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 120235.46666666666; 0.6666666666666666; 1.1333333333333333; 0.0; 0.0 +1376526965; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 116041.06666666667; 0.0; 0.8; 0.0; 0.0 +1376527265; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 107652.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1376527565; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1376527865; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 96467.2; 0.0; 0.8; 0.0; 0.0 +1376528165; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 83884.0; 0.0; 0.8; 0.0; 0.0 +1376528465; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 86680.26666666666; 0.0; 11.666666666666666; 0.0; 0.0 +1376528765; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 142604.8; 0.0; 0.6666666666666666; 0.0; 0.0 +1376529065; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 163576.0; 0.06666666666666667; 2.6; 0.06666666666666667; 0.4666666666666667 +1376529365; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 114642.93333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1376529666; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 109050.4; 0.0; 0.6; 0.0; 0.0 +1376529966; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 89476.53333333334; 0.0; 0.6; 0.06666666666666667; 0.0 +1376530266; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 128624.26666666666; 0.06666666666666667; 0.8666666666666667; 0.0; 0.0 +1376530566; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 130022.4; 0.0; 0.6; 0.0; 0.0 +1376530866; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 159382.4; 0.0; 6.933333333333334; 0.26666666666666666; 0.13333333333333333 +1376531166; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 93670.93333333333; 0.0; 0.8; 0.0; 0.0 +1376531466; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 0.8; 0.0; 0.0 +1376531766; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 120235.46666666666; 0.0; 0.8; 0.0; 0.0 +1376532066; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 100661.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1376532366; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 79689.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1376532666; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 163575.73333333334; 0.0; 2.066666666666667; 0.0; 0.5333333333333333 +1376532966; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 155188.0; 0.0; 0.8; 0.0; 0.0 +1376533266; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 138411.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1376533566; 1; 2599.999304; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1376533866; 1; 2599.999304; 0.0; 0.0; 2097152.0; 124429.86666666667; 0.0; 0.5333333333333333; 0.0; 0.0 +1376534166; 1; 2599.999304; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.6; 0.0; 0.0 +1376534466; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 116041.06666666667; 0.0; 1.6; 0.0; 0.0 +1376534766; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 83884.0; 0.0; 0.8; 0.0; 0.0 +1376535066; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 93670.93333333333; 0.0; 1.0; 0.0; 0.0 +1376535366; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 121633.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1376535666; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 104856.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1376535966; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 114642.93333333333; 0.0; 1.0; 0.0; 0.0 +1376536266; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 199926.13333333333; 0.0; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1376536566; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 128624.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1376536866; 1; 2599.999304; 0.0; 0.0; 2097152.0; 132818.66666666666; 0.0; 0.6; 0.0; 0.0 +1376537166; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 103457.86666666667; 0.0; 0.5333333333333333; 0.0; 0.0 +1376537466; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376537766; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 104856.0; 12.733333333333333; 13.066666666666666; 0.3333333333333333; 0.2 +1376538066; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 155188.8; 0.0; 0.8; 0.0; 0.0 +1376538366; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 121633.6; 0.0; 1.4; 0.0; 0.0 +1376538666; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 128624.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1376538967; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 174761.33333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1376539267; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 117438.13333333333; 0.0; 0.6; 0.0; 0.0 +1376539567; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 125828.0; 0.0; 0.8; 0.0; 0.0 +1376539867; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 174760.53333333333; 0.06666666666666667; 2.4; 0.06666666666666667; 0.4666666666666667 +1376540167; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 100661.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1376540466; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 104856.0; 0.0; 0.5333333333333333; 0.0; 0.0 +1376540766; 1; 2599.999304; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.6; 0.0; 0.0 +1376541066; 1; 2599.999304; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.6666666666666666; 0.0; 0.0 +1376541366; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 97865.33333333333; 0.0; 0.6; 0.0; 0.0 +1376541666; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 88078.4; 0.0; 1.0; 0.0; 0.0 +1376541966; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 71300.8; 0.0; 0.5333333333333333; 0.0; 0.0 +1376542267; 1; 2599.999304; 0.0; 0.0; 2097152.0; 110448.26666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1376542567; 1; 2599.999304; 0.0; 0.0; 2097152.0; 148196.26666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1376542867; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 86680.26666666666; 0.0; 0.8; 0.0; 0.0 +1376543167; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 102059.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1376543467; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 188741.33333333334; 0.06666666666666667; 1.8666666666666667; 0.06666666666666667; 0.4666666666666667 +1376543767; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 142605.33333333334; 0.0; 6.8; 0.2; 0.13333333333333333 +1376544067; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 121633.6; 0.0; 0.6; 0.0; 0.0 +1376544367; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1376544667; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 93670.93333333333; 0.0; 0.6; 0.0; 0.0 +1376544967; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 132818.66666666666; 0.0; 0.6; 0.0; 0.0 +1376545267; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 106254.13333333333; 0.0; 0.6; 0.0; 0.0 +1376545567; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 100661.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1376545867; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 109050.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1376546167; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 83884.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1376546467; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 103457.86666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1376546767; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 103457.86666666667; 0.0; 0.5333333333333333; 0.0; 0.0 +1376547067; 1; 2599.999304; 19.066661562666667; 0.7333333333333333; 2097152.0; 166371.73333333334; 0.0; 2.466666666666667; 0.06666666666666667; 0.4666666666666667 +1376547367; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 131420.26666666666; 0.0; 0.8; 0.0; 0.0 +1376547667; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 97865.33333333333; 0.0; 0.6; 0.0; 0.0 +1376547967; 1; 2599.999304; 0.0; 0.0; 2097152.0; 118836.53333333334; 0.0; 0.6; 0.0; 0.0 +1376548267; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 114642.93333333333; 0.0; 0.6; 0.0; 0.0 +1376548567; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 159382.4; 0.0; 1.9333333333333333; 0.0; 0.0 +1376548867; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 118837.33333333333; 0.0; 1.3333333333333333; 0.0; 0.0 +1376549167; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 72698.93333333333; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1376549467; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 93670.93333333333; 0.0; 0.8; 0.0; 0.0 +1376549767; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 103457.86666666667; 0.0; 0.8; 0.0; 0.0 +1376550067; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 153789.06666666668; 0.0; 6.866666666666666; 0.2; 0.13333333333333333 +1376550367; 1; 2599.999304; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1376550667; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 192936.0; 0.0; 2.066666666666667; 0.06666666666666667; 0.4666666666666667 +1376550968; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 134216.53333333333; 0.0; 0.6; 0.0; 0.0 +1376551268; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 102059.73333333334; 0.0; 0.8; 0.0; 0.0 +1376551568; 1; 2599.999304; 0.0; 0.0; 2097152.0; 72698.93333333333; 0.0; 0.6; 0.0; 0.0 +1376551868; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 81087.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1376552168; 1; 2599.999304; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.5333333333333333; 0.0; 0.0 +1376552468; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 95069.06666666667; 0.0; 1.0; 0.0; 0.0 +1376552768; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 125828.0; 0.0; 1.6; 0.0; 0.0 +1376553068; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 82485.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376553368; 1; 2599.999304; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1376553668; 1; 2599.999304; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1376553968; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 102059.73333333334; 0.7333333333333333; 1.9333333333333333; 1.2; 0.0 +1376554268; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 159381.86666666667; 0.06666666666666667; 2.6; 0.06666666666666667; 0.4666666666666667 +1376554568; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 155187.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1376554868; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 118837.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1376555168; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 89476.53333333334; 0.0; 1.0; 0.0; 0.0 +1376555468; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 113244.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1376555768; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 110448.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1376556068; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 109050.4; 0.0; 1.0; 0.0; 0.0 +1376556368; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 141207.46666666667; 0.0; 6.8; 0.2; 0.13333333333333333 +1376556668; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 150993.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1376556968; 1; 2599.999304; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1376557268; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 99263.46666666666; 1.5333333333333334; 1.4666666666666666; 0.0; 0.0 +1376557568; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 134216.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1376557868; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 176159.2; 0.06666666666666667; 2.2666666666666666; 0.06666666666666667; 0.5333333333333333 +1376558168; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 123031.73333333334; 0.0; 1.0; 0.06666666666666667; 0.0 +1376558468; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376558768; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 71300.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1376559068; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 69902.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376559368; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 71300.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1376559668; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 116041.06666666667; 0.0; 1.0; 0.0; 0.0 +1376559968; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 141207.46666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376560268; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 90874.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376560568; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1376560868; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 130021.6; 0.0; 1.1333333333333333; 0.0; 0.0 +1376561168; 1; 2599.999304; 0.0; 0.0; 2097152.0; 134215.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1376561468; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 132818.4; 0.0; 2.4; 0.06666666666666667; 0.4666666666666667 +1376561768; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 92272.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1376562068; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 96467.2; 0.0; 7.2; 0.26666666666666666; 0.13333333333333333 +1376562368; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 110448.53333333334; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1376562668; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1376562968; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376563269; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 92272.8; 0.0; 1.0; 0.0; 0.0 +1376563569; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 117439.2; 0.0; 1.0; 0.0; 0.0 +1376563869; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 117439.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1376564169; 1; 2599.999304; 195.86661423466666; 7.533333333333334; 2097152.0; 359310.4; 162.26666666666668; 117.66666666666667; 0.0; 0.4 +1376564469; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 655707.7333333333; 0.0; 6.0; 0.06666666666666667; 0.0 +1376564769; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 292200.8; 31.8; 3.466666666666667; 0.0; 0.0 +1376565069; 1; 2599.999304; 24.266660170666665; 0.9333333333333332; 2097152.0; 255850.4; 18.0; 3.933333333333333; 0.7333333333333333; 0.4666666666666667 +1376565369; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 169168.26666666666; 0.0; 1.5333333333333334; 0.0; 0.0 +1376565669; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 103457.86666666667; 0.0; 0.6; 0.06666666666666667; 0.0 +1376565969; 1; 2599.999304; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1376566269; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 121633.33333333333; 0.0; 0.6; 0.06666666666666667; 0.0 +1376566569; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 113244.53333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1376566869; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 107652.26666666666; 0.0; 0.8; 0.0; 0.0 +1376567169; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 111846.66666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1376567469; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 82485.86666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1376567769; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 95069.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1376568069; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 104856.0; 0.0; 0.5333333333333333; 0.0; 0.0 +1376568369; 1; 2599.999304; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1376568669; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 211111.2; 0.06666666666666667; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1376568969; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 149595.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1376569269; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 109050.4; 0.0; 7.333333333333333; 0.26666666666666666; 0.2 +1376569569; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 0.8; 0.0; 0.0 +1376569869; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 78291.46666666666; 0.0; 0.6; 0.0; 0.0 +1376570169; 1; 2599.999304; 0.0; 0.0; 2097152.0; 71300.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1376570469; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 92272.8; 0.0; 1.0; 0.06666666666666667; 0.0 +1376570769; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 124429.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376571069; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 107652.26666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1376571369; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.3333333333333333; 0.0 +1376571669; 1; 2599.999304; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1376571969; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 79689.6; 0.0; 11.6; 0.0; 0.0 +1376572269; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 141207.2; 1.0; 3.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1376572569; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 132818.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1376572869; 1; 2599.999304; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.6; 0.0; 0.0 +1376573169; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1376573469; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 118837.33333333333; 0.0; 1.0; 0.0; 0.0 +1376573769; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 116041.06666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1376574069; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1376574369; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1376574669; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 72698.93333333333; 0.0; 1.0; 0.0; 0.0 +1376574969; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 76893.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1376575269; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 92272.8; 0.0; 0.6666666666666666; 0.0; 0.0 +1376575569; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 137013.06666666668; 0.0; 0.6; 0.0; 0.0 +1376575869; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 163576.0; 0.06666666666666667; 2.533333333333333; 0.06666666666666667; 0.5333333333333333 +1376576169; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 155188.0; 0.06666666666666667; 6.866666666666666; 0.26666666666666666; 0.13333333333333333 +1376576469; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 121633.6; 0.0; 0.8; 0.13333333333333333; 0.0 +1376576769; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 92272.8; 0.0; 0.6666666666666666; 0.3333333333333333; 0.0 +1376577069; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 89476.53333333334; 0.0; 1.0666666666666667; 0.8; 0.06666666666666667 +1376577369; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 111846.66666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1376577669; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 111846.66666666667; 0.0; 0.8; 0.0; 0.0 +1376577970; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 100661.6; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1376578270; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.26666666666666666; 0.0 +1376578570; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 117438.4; 0.0; 0.6; 0.0; 0.0 +1376578870; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 120235.46666666666; 0.0; 1.8; 0.0; 0.0 +1376579170; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 124429.86666666667; 0.0; 0.8; 0.0; 0.0 +1376579470; 1; 2599.999304; 19.066661562666667; 0.7333333333333333; 2097152.0; 155188.0; 0.0; 1.8666666666666667; 0.06666666666666667; 0.4666666666666667 +1376579770; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 114642.93333333333; 0.0; 0.6; 0.06666666666666667; 0.0 +1376580070; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 125827.2; 0.0; 0.6; 0.0; 0.0 +1376580370; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 123031.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1376580670; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 141206.66666666666; 0.0; 0.6; 0.0; 0.0 +1376580970; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 86680.26666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1376581270; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 141206.66666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1376581570; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 155188.0; 0.0; 7.4; 0.3333333333333333; 0.13333333333333333 +1376581870; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 144002.93333333332; 0.0; 0.6666666666666666; 0.0; 0.0 +1376582170; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 127226.13333333333; 0.0; 0.9333333333333333; 0.13333333333333333; 0.0 +1376582470; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1376582770; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 111846.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376583070; 1; 2599.999304; 19.066661562666667; 0.7333333333333333; 2097152.0; 192936.0; 0.0; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1376583370; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 90874.66666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1376583670; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 93670.93333333333; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1376583970; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 79689.6; 0.0; 0.8; 0.0; 0.0 +1376584270; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 86680.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1376584570; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 89476.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1376584870; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 89476.53333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1376585170; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 90874.66666666667; 0.0; 0.6; 0.0; 0.0 +1376585470; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 86680.26666666666; 0.0; 0.6666666666666666; 2.8; 0.0 +1376585770; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 82485.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376586070; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 99263.46666666666; 0.0; 0.6; 0.13333333333333333; 0.0 +1376586370; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 142604.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1376586670; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 176159.2; 0.06666666666666667; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1376586970; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 99263.46666666666; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1376587270; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 93670.93333333333; 0.0; 1.0; 0.0; 0.0 +1376587571; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 118837.33333333333; 0.06666666666666667; 6.933333333333334; 0.2; 0.13333333333333333 +1376587871; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 90874.66666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1376588171; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 86680.26666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1376588471; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 145401.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376588771; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 121633.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1376589071; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 107652.26666666666; 0.0; 0.6; 0.0; 0.0 +1376589371; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 118837.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1376589670; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1376589970; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 109050.4; 0.0; 0.8; 0.0; 0.0 +1376590270; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 150993.6; 0.2; 2.0; 0.06666666666666667; 0.4666666666666667 +1376590570; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 123031.73333333334; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1376590870; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 95069.06666666667; 0.0; 0.6; 0.06666666666666667; 0.0 +1376591170; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 82485.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1376591470; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376591771; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 71300.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1376592071; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 74097.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376592371; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 62912.0; 0.0; 0.5333333333333333; 0.13333333333333333; 0.0 +1376592671; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 116041.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376592971; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 0.8; 0.0; 0.0 +1376593271; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 120235.46666666666; 0.0; 0.5333333333333333; 0.0; 0.0 +1376593571; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 103457.86666666667; 0.0; 0.6; 0.0; 0.0 +1376593871; 1; 2599.999304; 20.799994432; 0.8; 2097152.0; 170565.86666666667; 0.0; 8.2; 0.26666666666666666; 0.6666666666666666 +1376594171; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 125828.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1376594471; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 79689.6; 0.0; 0.6; 0.0; 0.0 +1376594771; 1; 2599.999304; 65.86664903466666; 2.533333333333333; 2097152.0; 329950.13333333336; 161.73333333333332; 22.933333333333334; 0.0; 0.2 +1376595071; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 486536.8; 0.0; 1.2; 0.06666666666666667; 0.0 +1376595371; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 174760.8; 31.8; 3.6666666666666665; 0.0; 0.0 +1376595671; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 135614.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1376595971; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1376596271; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 121633.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376596571; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 110448.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1376596871; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 97865.33333333333; 0.0; 1.2; 0.0; 0.0 +1376597171; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 92272.8; 0.0; 0.6; 0.0; 0.0 +1376597471; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 190138.66666666666; 0.0; 2.066666666666667; 0.06666666666666667; 0.5333333333333333 +1376597771; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 127226.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376598071; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 89476.53333333334; 0.0; 1.0; 0.0; 0.0 +1376598371; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 81087.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1376598671; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 100661.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1376598971; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1376599271; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 109050.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1376599571; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 159381.6; 12.733333333333333; 13.0; 0.4; 0.13333333333333333 +1376599871; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 111846.66666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1376600171; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 118837.33333333333; 0.0; 0.8; 0.0; 0.0 +1376600471; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 127226.13333333333; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1376600771; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 109050.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1376601072; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 156586.13333333333; 0.06666666666666667; 2.7333333333333334; 0.06666666666666667; 0.4666666666666667 +1376601372; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 132818.66666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1376601672; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 118837.33333333333; 0.0; 0.8; 0.0; 0.0 +1376601972; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 145401.86666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1376602272; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 97865.33333333333; 0.0; 1.0; 0.0; 0.0 +1376602572; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 103457.86666666667; 0.0; 0.8; 0.06666666666666667; 0.0 +1376602872; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 99263.46666666666; 0.0; 0.8; 0.06666666666666667; 0.0 +1376603172; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 85282.13333333333; 0.0; 0.6; 0.0; 0.0 +1376603472; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 107652.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1376603772; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 103457.86666666667; 0.0; 1.0; 0.0; 0.0 +1376604072; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 75495.2; 0.0; 0.6666666666666666; 0.0; 0.0 +1376604372; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 106254.13333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1376604672; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 220897.6; 0.0; 2.2; 0.06666666666666667; 0.4666666666666667 +1376604972; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 128624.26666666666; 0.0; 7.266666666666667; 0.3333333333333333; 0.13333333333333333 +1376605272; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1376605572; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376605872; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 97865.33333333333; 2.6666666666666665; 1.2666666666666666; 0.06666666666666667; 0.13333333333333333 +1376606172; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 127226.13333333333; 0.0; 1.2; 0.0; 0.0 +1376606472; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 125828.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1376606772; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 107652.26666666666; 0.0; 0.6; 0.06666666666666667; 0.0 +1376607072; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 99263.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1376607372; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 99263.46666666666; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1376607672; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1376607972; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 110448.53333333334; 0.0; 1.2; 0.0; 0.0 +1376608272; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 145401.06666666668; 0.0; 2.2666666666666666; 0.13333333333333333; 0.4666666666666667 +1376608572; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 104856.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1376608872; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 103457.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1376609172; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 111846.66666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1376609472; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376609772; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 62912.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1376610072; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 82485.86666666667; 0.0; 0.8; 0.06666666666666667; 0.0 +1376610372; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 99263.46666666666; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1376610672; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 121633.6; 0.0; 1.0; 0.0; 0.0 +1376610972; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 135614.93333333332; 0.0; 0.6666666666666666; 0.0; 0.0 +1376611272; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 109050.4; 0.0; 6.866666666666666; 0.2; 0.13333333333333333 +1376611572; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 118837.33333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1376611872; 1; 2599.999304; 19.066661562666667; 0.7333333333333333; 2097152.0; 201324.53333333333; 0.06666666666666667; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1376612172; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 114642.93333333333; 0.0; 1.2; 0.0; 0.0 +1376612472; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 116041.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376612772; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 89476.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1376613072; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 92272.8; 0.6; 1.2; 0.0; 0.0 +1376613372; 1; 2599.999304; 19.066661562666667; 0.7333333333333333; 2097152.0; 123031.73333333334; 0.0; 0.8; 0.0; 0.0 +1376613672; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1376613972; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 125827.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1376614272; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 142605.06666666668; 0.0; 0.8666666666666667; 0.0; 0.0 +1376614572; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 90874.66666666667; 0.0; 0.6; 0.0; 0.0 +1376614872; 1; 2599.999304; 19.066661562666667; 0.7333333333333333; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376615172; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 83884.0; 0.0; 0.6; 0.0; 0.0 +1376615472; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 170565.86666666667; 0.0; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1376615772; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 107652.26666666666; 0.0; 11.733333333333333; 0.06666666666666667; 0.0 +1376616072; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 111846.66666666667; 0.0; 0.8; 0.0; 0.0 +1376616372; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376616672; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 104856.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1376616973; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1376617273; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1376617573; 1; 2599.999304; 19.066661562666667; 0.7333333333333333; 2097152.0; 117439.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1376617873; 1; 2599.999304; 19.066661562666667; 0.7333333333333333; 2097152.0; 124429.86666666667; 0.0; 6.8; 0.26666666666666666; 0.13333333333333333 +1376618173; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 102059.73333333334; 0.0; 0.6666666666666666; 0.13333333333333333; 0.0 +1376618473; 1; 2599.999304; 71.06664764266665; 2.733333333333333; 2097152.0; 571821.6; 166.6; 21.533333333333335; 0.06666666666666667; 0.4 +1376618773; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 569025.0666666667; 0.0; 2.466666666666667; 0.0; 0.0 +1376619073; 1; 2599.999304; 24.266660170666665; 0.9333333333333332; 2097152.0; 293599.4666666667; 31.866666666666667; 5.466666666666667; 0.06666666666666667; 0.5333333333333333 +1376619373; 1; 2599.999304; 20.799994432; 0.8; 2097152.0; 197130.93333333332; 0.0; 2.2666666666666666; 0.0; 0.0 +1376619673; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 139808.8; 0.0; 1.5333333333333334; 0.0; 0.0 +1376619973; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 95069.06666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1376620273; 1; 2599.999304; 19.066661562666667; 0.7333333333333333; 2097152.0; 125828.0; 0.0; 4.333333333333333; 0.0; 0.0 +1376620573; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 110448.53333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1376620873; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 93670.93333333333; 0.0; 0.6; 0.0; 0.0 +1376621173; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 132818.4; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1376621473; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 109049.86666666667; 0.0; 0.6; 0.0; 0.0 +1376621773; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 135614.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376622073; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 113244.8; 0.0; 0.6; 0.0; 0.0 +1376622373; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 102059.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1376622673; 1; 2599.999304; 20.799994432; 0.8; 2097152.0; 146798.93333333332; 0.2; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1376622973; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 123030.93333333333; 0.0; 0.8; 0.0; 0.0 +1376623273; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 104856.0; 0.0; 0.6; 0.0; 0.0 +1376623573; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 104856.0; 0.0; 1.4666666666666666; 0.0; 0.0 +1376623873; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 100661.6; 0.06666666666666667; 6.933333333333334; 0.2; 0.13333333333333333 +1376624173; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 113244.8; 0.0; 0.6; 0.0; 0.0 +1376624473; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 83884.0; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1376624773; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376625073; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 118837.33333333333; 0.0; 0.8; 0.0; 0.0 +1376625373; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 100661.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1376625673; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 113244.8; 1.4666666666666666; 1.0; 0.06666666666666667; 0.06666666666666667 +1376625973; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 95069.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376626273; 1; 2599.999304; 22.533327301333333; 0.8666666666666667; 2097152.0; 104856.0; 0.0; 2.2; 0.06666666666666667; 0.4666666666666667 +1376626573; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 123031.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1376626873; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 88078.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1376627173; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 90874.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376627473; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 125828.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1376627773; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 132818.66666666666; 0.0; 0.5333333333333333; 0.0; 0.0 +1376628073; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 103457.86666666667; 0.0; 0.8; 0.0; 0.0 +1376628373; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 106254.13333333333; 0.0; 0.8; 0.0; 0.0 +1376628673; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 142605.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1376628973; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 150993.6; 0.0; 0.6; 0.0; 0.0 +1376629273; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 132818.66666666666; 0.0; 0.5333333333333333; 0.0; 0.0 +1376629573; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 103457.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1376629873; 1; 2599.999304; 22.533327301333333; 0.8666666666666667; 2097152.0; 139808.8; 0.0; 8.2; 0.26666666666666666; 0.6 +1376630173; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 152391.46666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1376630474; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 103457.86666666667; 0.0; 0.5333333333333333; 0.0; 0.0 +1376630774; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 120235.46666666666; 0.0; 0.8; 0.0; 0.0 +1376631074; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 110448.53333333334; 0.0; 0.8; 0.0; 0.0 +1376631374; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1376631674; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 125828.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1376631974; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 109050.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1376632274; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 99263.46666666666; 0.0; 0.6; 0.0; 0.0 +1376632574; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 121633.6; 0.0; 0.6; 0.06666666666666667; 0.0 +1376632874; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1376633174; 1; 2599.999304; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 0.6; 0.06666666666666667; 0.0 +1376633474; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 173362.93333333332; 0.0; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1376633774; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 123031.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1376634074; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 117439.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1376634374; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1376634674; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 125827.2; 0.0; 1.0666666666666667; 0.06666666666666667; 0.06666666666666667 +1376634974; 1; 2599.999304; 19.066661562666667; 0.7333333333333333; 2097152.0; 96467.2; 0.0; 2.066666666666667; 0.0; 0.0 +1376635274; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 106254.13333333333; 0.0; 1.6666666666666667; 0.0; 0.0 +1376635574; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 121633.6; 0.0; 1.1333333333333333; 0.0; 0.0 +1376635874; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 110448.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1376636174; 1; 2599.999304; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1376636474; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 83884.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1376636774; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1376637074; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 157983.46666666667; 0.6; 8.666666666666666; 0.3333333333333333; 0.6666666666666666 +1376637374; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1376637674; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1376637974; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1376638274; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 111846.66666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1376638574; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 104856.0; 0.0; 0.8; 0.0; 0.0 +1376638874; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 88078.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1376639174; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 83884.0; 0.0; 1.4666666666666666; 0.0; 0.0 +1376639474; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 96467.2; 0.0; 0.8; 0.0; 0.0 +1376639774; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 117439.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1376640074; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 107652.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1376640374; 1; 2599.999304; 0.0; 0.0; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1376640674; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 130022.4; 0.0; 2.3333333333333335; 0.06666666666666667; 0.5333333333333333 +1376640974; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 132818.66666666666; 0.0; 1.0; 0.0; 0.0 +1376641275; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 146799.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1376641575; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 96467.2; 0.0; 0.8; 0.0; 0.0 +1376641875; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 93670.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376642175; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1376642475; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 117439.2; 0.0; 1.2; 0.0; 0.0 +1376642775; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 104856.0; 0.0; 1.0; 0.0; 0.0 +1376643075; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 113244.8; 0.0; 0.8; 0.0; 0.0 +1376643375; 1; 2599.999304; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1376643675; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 83884.0; 0.0; 7.0; 0.26666666666666666; 0.13333333333333333 +1376643975; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 134216.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1376644275; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 155187.2; 0.0; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1376644575; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 109050.4; 0.0; 1.0; 0.0; 0.0 +1376644875; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1376645175; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 109050.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1376645475; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 2.2666666666666666; 0.0 +1376645775; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1376646075; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 1.0; 0.0; 0.0 +1376646375; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 89476.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1376646675; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 103457.86666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1376646975; 1; 2599.999304; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.6; 0.0; 0.0 +1376647275; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 83884.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1376647575; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1376647875; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 209713.6; 0.0; 2.2; 0.0; 0.4666666666666667 +1376648175; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 130021.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1376648475; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 92272.8; 0.0; 0.7333333333333333; 0.0; 0.0 +1376648775; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 83884.0; 0.0; 0.8; 0.0; 0.0 +1376649075; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 113244.8; 0.0; 7.266666666666667; 0.2; 0.13333333333333333 +1376649375; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 134216.0; 0.0; 1.0; 0.0; 0.0 +1376649675; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1376649975; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 155188.0; 0.0; 0.8; 0.0; 0.0 +1376650276; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 138410.4; 0.0; 0.8; 0.0; 0.0 +1376650576; 1; 2599.999304; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1376650876; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 74097.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376651176; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1376651476; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 170566.66666666666; 0.0; 2.2; 0.0; 0.4666666666666667 +1376651776; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 113244.8; 0.0; 0.6666666666666666; 0.0; 0.0 +1376652076; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 104856.0; 0.0; 1.0666666666666667; 2.933333333333333; 0.0 +1376652376; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 90874.66666666667; 0.0; 0.8; 0.0; 0.0 +1376652676; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 88078.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1376652976; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 120235.46666666666; 0.0; 0.6; 4.933333333333334; 0.0 +1376653276; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 96467.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1376653576; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 121632.8; 0.0; 1.2; 0.0; 0.0 +1376653876; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1376654176; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 86680.26666666666; 0.0; 0.9333333333333333; 0.6666666666666666; 0.0 +1376654476; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 93670.93333333333; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1376654776; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1376655076; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 157983.46666666667; 0.06666666666666667; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1376655376; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 128624.0; 0.0; 0.8; 0.06666666666666667; 0.0 +1376655676; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 62912.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1376655976; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 86680.26666666666; 0.0; 7.066666666666666; 0.26666666666666666; 0.13333333333333333 +1376656276; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 92272.8; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1376656576; 1; 2599.999304; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1376656876; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1376657176; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 1.3333333333333333; 0.0 +1376657476; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 0.8; 1.5333333333333334; 0.0 +1376657776; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 113244.8; 0.0; 1.0666666666666667; 0.3333333333333333; 0.0 +1376658076; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 118837.33333333333; 0.0; 0.8666666666666667; 0.6; 0.0 +1376658376; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 118837.33333333333; 0.0; 0.8666666666666667; 0.7333333333333333; 0.0 +1376658676; 1; 2599.999304; 19.066661562666667; 0.7333333333333333; 2097152.0; 188741.6; 0.06666666666666667; 2.4; 0.4; 0.5333333333333333 +1376658976; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 139809.06666666668; 0.0; 1.0666666666666667; 0.13333333333333333; 0.0 +1376659276; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 125828.0; 0.0; 11.533333333333333; 0.0; 0.0 +1376659576; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 96467.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1376659876; 1; 2599.999304; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.7333333333333333; 0.13333333333333333; 0.0 +1376660176; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 102059.73333333334; 0.0; 0.6666666666666666; 0.13333333333333333; 0.0 +1376660476; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 99263.46666666666; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1376660776; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1376661076; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 142604.53333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1376661376; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 117439.2; 0.0; 0.6666666666666666; 0.13333333333333333; 0.0 +1376661676; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 103457.86666666667; 0.0; 0.6; 0.13333333333333333; 0.0 +1376661976; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 106254.13333333333; 0.0; 1.0; 0.06666666666666667; 0.0 +1376662276; 1; 2599.999304; 24.266660170666665; 0.9333333333333332; 2097152.0; 198528.53333333333; 12.733333333333333; 14.733333333333333; 0.4; 0.6 +1376662576; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 169169.06666666668; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1376662876; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 82485.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376663176; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 57319.46666666667; 0.0; 1.2; 0.06666666666666667; 0.0 +1376663476; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 62912.0; 0.0; 0.8; 0.2; 0.13333333333333333 +1376663777; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 75495.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1376664077; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 117439.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1376664377; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 121632.8; 0.0; 0.6666666666666666; 0.0; 0.0 +1376664677; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 116041.06666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1376664977; 1; 2599.999304; 0.0; 0.0; 2097152.0; 132818.66666666666; 0.0; 0.6; 0.06666666666666667; 0.0 +1376665277; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 76893.33333333333; 0.0; 0.6; 0.13333333333333333; 0.0 +1376665577; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 96467.2; 0.0; 0.6; 0.06666666666666667; 0.0 +1376665877; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 171964.0; 0.0; 2.466666666666667; 0.06666666666666667; 0.4666666666666667 +1376666177; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 118837.33333333333; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1376666477; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 72698.93333333333; 0.0; 0.8; 0.0; 0.0 +1376666777; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 75495.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1376667077; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 83884.0; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1376667377; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 88078.4; 0.0; 1.1333333333333333; 0.13333333333333333; 0.0 +1376667677; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 78291.46666666666; 0.0; 1.0; 0.0; 0.0 +1376667977; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 125827.2; 0.0; 1.7333333333333334; 0.0; 0.0 +1376668277; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 83884.0; 0.0; 1.0; 0.0; 0.0 +1376668577; 1; 2599.999304; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.5333333333333333; 0.06666666666666667; 0.0 +1376668877; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 79689.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1376669177; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 118837.33333333333; 0.0; 7.2; 0.2; 0.13333333333333333 +1376669477; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 169168.53333333333; 0.0; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1376669777; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 131420.26666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1376670077; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 83884.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1376670377; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 90874.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376670677; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 85282.13333333333; 0.0; 0.6; 0.0; 0.0 +1376670977; 1; 2599.999304; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8; 0.0; 0.0 +1376671277; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 82485.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376671577; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 106254.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376671878; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 110448.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1376672178; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 110448.53333333334; 0.0; 0.6; 0.0; 0.0 +1376672478; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 146799.2; 0.0; 0.6; 0.0; 0.0 +1376672778; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1376673078; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 195732.26666666666; 0.06666666666666667; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1376673378; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 104856.0; 0.0; 0.8; 0.0; 0.0 +1376673678; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 95069.06666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1376673978; 1; 2599.999304; 0.0; 0.0; 2097152.0; 67106.4; 0.0; 0.5333333333333333; 0.06666666666666667; 0.0 +1376674278; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 76893.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376674578; 1; 2599.999304; 25.99999304; 1.0; 2097152.0; 155188.26666666666; 161.06666666666666; 27.466666666666665; 0.4; 0.5333333333333333 +1376674878; 1; 2599.999304; 48.53332034133333; 1.8666666666666665; 2097152.0; 722816.5333333333; 0.0; 2.6; 0.0; 0.0 +1376675178; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 324357.86666666664; 31.8; 3.0; 0.06666666666666667; 0.0 +1376675478; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 174760.8; 0.0; 2.4; 0.0; 0.0 +1376675778; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 187343.73333333334; 0.0; 1.7333333333333334; 0.0; 0.0 +1376676078; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 130022.13333333333; 0.0; 0.5333333333333333; 0.06666666666666667; 0.0 +1376676378; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 85282.13333333333; 0.0; 0.5333333333333333; 0.0; 0.0 +1376676678; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 156585.33333333334; 0.0; 2.0; 0.13333333333333333; 0.4666666666666667 +1376676978; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 131420.53333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1376677278; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 117439.2; 0.0; 0.6666666666666666; 0.0; 0.0 +1376677578; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 92272.8; 0.0; 0.6; 0.0; 0.0 +1376677878; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 83884.0; 0.0; 0.6; 0.13333333333333333; 0.0 +1376678178; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 137013.06666666668; 0.0; 0.8; 0.06666666666666667; 0.0 +1376678478; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1376678778; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 106254.13333333333; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1376679078; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 142605.6; 0.0; 0.6; 0.0; 0.0 +1376679378; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 100661.6; 0.0; 0.8; 0.06666666666666667; 0.0 +1376679679; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 96467.2; 0.0; 0.5333333333333333; 0.13333333333333333; 0.0 +1376679979; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 90874.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376680279; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 183149.86666666667; 0.0; 1.8666666666666667; 0.06666666666666667; 0.4666666666666667 +1376680579; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 142605.6; 0.0; 7.133333333333334; 0.26666666666666666; 0.13333333333333333 +1376680879; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 164973.33333333334; 0.0; 0.6; 0.0; 0.0 +1376681179; 1; 2599.999304; 43.333321733333335; 1.6666666666666665; 2097152.0; 267036.26666666666; 161.0; 14.466666666666667; 0.0; 0.2 +1376681479; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 459973.6; 0.0; 1.2666666666666666; 0.0; 0.0 +1376681779; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 187344.0; 31.8; 3.466666666666667; 0.0; 0.0 +1376682079; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 123031.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1376682379; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 96467.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1376682679; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 116041.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1376682979; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 144003.73333333334; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1376683279; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 121633.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1376683579; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 121632.8; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1376683879; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 150994.4; 0.06666666666666667; 2.466666666666667; 0.06666666666666667; 0.4666666666666667 +1376684179; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 116041.06666666667; 0.06666666666666667; 1.6666666666666667; 0.0; 0.0 +1376684479; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 111846.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376684779; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 113244.8; 0.0; 0.8; 0.0; 0.0 +1376685079; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 93670.93333333333; 0.0; 0.8; 0.06666666666666667; 0.0 +1376685379; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 149595.73333333334; 0.0; 1.0; 0.0; 0.0 +1376685679; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 102059.46666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1376685979; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 81087.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1376686279; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376686579; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 111846.66666666667; 0.0; 0.6; 0.0; 0.0 +1376686879; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 82485.86666666667; 0.0; 1.0; 0.0; 0.0 +1376687179; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 145401.33333333334; 0.0; 6.666666666666667; 0.2; 0.13333333333333333 +1376687479; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 192935.73333333334; 0.06666666666666667; 2.533333333333333; 0.06666666666666667; 0.4666666666666667 +1376687779; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 102059.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1376688079; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 97865.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1376688379; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 89476.53333333334; 0.0; 0.8; 0.0; 0.0 +1376688679; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 117439.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1376688979; 1; 2599.999304; 0.0; 0.0; 2097152.0; 124429.86666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1376689279; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 120235.46666666666; 0.0; 0.8; 0.0; 0.0 +1376689579; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 65708.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1376689879; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 69902.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376690179; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 62912.0; 0.0; 1.4666666666666666; 0.0; 0.0 +1376690479; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 100661.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1376690779; 1; 2599.999304; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1376691079; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 187342.93333333332; 0.06666666666666667; 2.6; 0.06666666666666667; 0.5333333333333333 +1376691379; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 137012.8; 0.0; 0.8; 0.0; 0.0 +1376691679; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 82485.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376691979; 1; 2599.999304; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1376692279; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 111846.66666666667; 0.0; 1.0666666666666667; 0.13333333333333333; 0.13333333333333333 +1376692579; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 156586.4; 0.0; 1.2666666666666666; 0.0; 0.0 +1376692879; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 131420.53333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1376693179; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 137012.26666666666; 0.06666666666666667; 7.466666666666667; 0.2; 0.13333333333333333 +1376693480; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 107652.26666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1376693780; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 117439.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1376694080; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 102059.73333333334; 0.0; 1.0; 0.2; 0.06666666666666667 +1376694380; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 90874.66666666667; 0.0; 0.8; 0.0; 0.0 +1376694680; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 123031.73333333334; 0.06666666666666667; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1376694980; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 96467.2; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1376695280; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 90874.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376695580; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 93670.93333333333; 0.0; 0.8; 0.0; 0.0 +1376695880; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1376696180; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 114642.93333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1376696480; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 174760.8; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1376696780; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 146800.0; 0.0; 1.0; 0.0; 0.0 +1376697080; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 116041.06666666667; 0.0; 0.6; 0.0; 0.0 +1376697380; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 113244.8; 0.0; 0.8; 0.06666666666666667; 0.0 +1376697680; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 114642.93333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1376697980; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 81087.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1376698280; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 139808.53333333333; 0.06666666666666667; 2.0; 0.06666666666666667; 0.5333333333333333 +1376698580; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 145401.06666666668; 0.0; 0.5333333333333333; 0.0; 0.0 +1376698880; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 120235.46666666666; 0.0; 0.6; 0.0; 0.0 +1376699180; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 124429.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1376699480; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 124429.86666666667; 0.0; 1.0; 0.0; 0.0 +1376699780; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 138411.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1376700080; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 99263.46666666666; 0.06666666666666667; 6.8; 0.2; 0.13333333333333333 +1376700380; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1376700680; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 82485.86666666667; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1376700980; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 116041.06666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1376701280; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 86680.26666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1376701581; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 106254.13333333333; 0.0; 0.8; 0.0; 0.0 +1376701881; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 198529.06666666668; 0.0; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1376702181; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 123031.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1376702481; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 79689.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1376702781; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 110448.53333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1376703081; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 171964.53333333333; 0.0; 11.666666666666666; 0.0; 0.0 +1376703381; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 135614.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1376703681; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1376703981; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 103457.86666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1376704281; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 113244.8; 0.0; 0.7333333333333333; 0.0; 0.0 +1376704581; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1376704881; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 123031.73333333334; 0.0; 1.2; 0.0; 0.0 +1376705181; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1376705481; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 146799.2; 0.0; 2.066666666666667; 0.06666666666666667; 0.4666666666666667 +1376705781; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 145401.06666666668; 0.0; 6.733333333333333; 0.26666666666666666; 0.13333333333333333 +1376706081; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 114642.93333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1376706381; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 107652.26666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1376706681; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 83884.0; 0.0; 0.6; 0.0; 0.0 +1376706981; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 92272.8; 0.0; 0.6; 0.0; 0.0 +1376707281; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 69902.66666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1376707581; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.4; 0.0 +1376707881; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 124429.86666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1376708181; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 118837.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1376708481; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 107652.26666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1376708781; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 110448.53333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1376709081; 1; 2599.999304; 19.066661562666667; 0.7333333333333333; 2097152.0; 159383.2; 0.06666666666666667; 2.2666666666666666; 1.0666666666666667; 0.5333333333333333 +1376709381; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 125827.2; 0.0; 0.6; 0.0; 0.0 +1376709681; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 72698.93333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1376709981; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 83884.0; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1376710281; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1376710581; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 107652.26666666666; 0.0; 0.5333333333333333; 0.06666666666666667; 0.0 +1376710881; 1; 2599.999304; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.8; 0.0; 0.0 +1376711181; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 76893.33333333333; 0.0; 0.9333333333333333; 0.13333333333333333; 0.0 +1376711481; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 95069.06666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1376711781; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376712082; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 86680.26666666666; 0.0; 6.933333333333334; 0.26666666666666666; 0.2 +1376712382; 1; 2599.999304; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 1.6; 0.06666666666666667; 0.0 +1376712682; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 134216.0; 0.0; 2.0; 0.06666666666666667; 0.4666666666666667 +1376712982; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 113244.8; 0.0; 0.8; 0.0; 0.0 +1376713282; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 121633.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1376713582; 1; 2599.999304; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1376713882; 1; 2599.999304; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 0.6; 0.0; 0.0 +1376714182; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 69902.66666666667; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1376714482; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 85282.13333333333; 0.0; 1.0; 0.0; 0.0 +1376714782; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 82485.86666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1376715082; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 106254.13333333333; 0.0; 0.6; 0.0; 0.0 +1376715382; 1; 2599.999304; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.5333333333333333; 0.06666666666666667; 0.0 +1376715682; 1; 2599.999304; 0.0; 0.0; 2097152.0; 68504.53333333334; 0.0; 0.8; 0.0; 0.0 +1376715982; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 75495.2; 0.0; 1.0; 0.0; 0.0 +1376716282; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 150993.06666666668; 0.06666666666666667; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1376716582; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 131420.53333333333; 0.0; 0.5333333333333333; 0.0; 0.0 +1376716882; 1; 2599.999304; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1376717182; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 89476.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1376717482; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 82485.86666666667; 0.0; 0.6; 0.0; 0.0 +1376717782; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.5333333333333333; 0.0; 0.0 +1376718082; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 138410.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1376718382; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 190138.93333333332; 0.0; 6.733333333333333; 0.26666666666666666; 0.13333333333333333 +1376718682; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 121633.6; 0.0; 1.0; 0.06666666666666667; 0.0 +1376718982; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 86680.26666666666; 0.0; 0.5333333333333333; 0.0; 0.0 +1376719282; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 117437.6; 0.0; 0.5333333333333333; 0.0; 0.0 +1376719582; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 104856.0; 0.0; 0.8; 0.0; 0.0 +1376719882; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 187343.2; 0.2; 2.466666666666667; 0.0; 0.5333333333333333 +1376720182; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 117439.2; 0.0; 0.6; 0.0; 0.0 +1376720482; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 118837.33333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1376720782; 1; 2599.999304; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1376721082; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 96467.2; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1376721382; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 123031.73333333334; 0.06666666666666667; 2.2666666666666666; 0.26666666666666666; 0.13333333333333333 +1376721682; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 142604.8; 0.0; 1.4666666666666666; 0.13333333333333333; 0.0 +1376721982; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 113244.8; 0.0; 0.6; 0.0; 0.0 +1376722282; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 127225.33333333333; 0.0; 0.6; 0.0; 0.0 +1376722582; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 92272.8; 0.0; 0.8; 3.7333333333333334; 0.0 +1376722882; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 83884.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1376723182; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 85282.13333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1376723482; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 173362.13333333333; 0.0; 2.2; 0.06666666666666667; 0.4666666666666667 +1376723782; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 134216.8; 12.733333333333333; 17.0; 0.3333333333333333; 0.2 +1376724082; 1; 2599.999304; 60.66665042666666; 2.3333333333333335; 2097152.0; 279618.6666666667; 161.0; 22.133333333333333; 0.06666666666666667; 0.4 +1376724382; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 763362.4; 0.0; 2.7333333333333334; 0.06666666666666667; 0.0 +1376724682; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 348124.8; 31.8; 3.533333333333333; 0.0; 0.0 +1376724982; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 188741.6; 0.0; 2.3333333333333335; 0.0; 0.0 +1376725282; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 134216.8; 0.0; 1.8; 0.0; 0.0 +1376725582; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 130022.4; 0.0; 1.7333333333333334; 0.0; 0.0 +1376725882; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1376726182; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.13333333333333333; 0.0 +1376726482; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 120235.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1376726782; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 130021.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1376727082; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 181750.93333333332; 0.0; 2.2666666666666666; 0.06666666666666667; 0.5333333333333333 +1376727382; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 113244.8; 0.0; 1.6666666666666667; 0.06666666666666667; 0.0 +1376727682; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 141207.46666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376727982; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1376728282; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 96467.2; 0.0; 1.1333333333333333; 0.2; 0.0 +1376728583; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 83884.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1376728883; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1376729183; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1376729483; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1376729783; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 125828.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1376730083; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 93670.93333333333; 0.0; 7.0; 0.3333333333333333; 0.13333333333333333 +1376730383; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 130021.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1376730683; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 166372.0; 0.06666666666666667; 2.4; 0.13333333333333333; 0.4666666666666667 +1376730983; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 117439.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1376731283; 1; 2599.999304; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376731583; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1376731883; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1376732183; 1; 2599.999304; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1376732483; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 121633.6; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1376732783; 1; 2599.999304; 0.0; 0.0; 2097152.0; 100660.8; 0.0; 1.0; 0.0; 0.0 +1376733083; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1376733383; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1376733683; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 89476.53333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1376733983; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 114642.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376734283; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 184547.2; 0.06666666666666667; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1376734583; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1376734883; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 64310.13333333333; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1376735184; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 114642.93333333333; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1376735484; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 7.866666666666666; 0.0 +1376735784; 1; 2599.999304; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1376736084; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 144002.93333333332; 0.0; 7.533333333333333; 0.2; 0.13333333333333333 +1376736384; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 155188.0; 0.0; 0.8; 0.13333333333333333; 0.0 +1376736684; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 88078.4; 0.0; 1.2; 0.06666666666666667; 0.0 +1376736984; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 72698.93333333333; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1376737284; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 93670.93333333333; 0.0; 0.7333333333333333; 0.2; 0.0 +1376737584; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 92272.8; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1376737884; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 160779.46666666667; 0.0; 2.466666666666667; 0.2; 0.5333333333333333 +1376738184; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 114642.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1376738484; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 130022.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1376738784; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 106254.13333333333; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1376739084; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 71300.8; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1376739384; 1; 2599.999304; 0.0; 0.0; 2097152.0; 75495.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1376739684; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 88078.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1376739984; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 96467.2; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1376740284; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1376740584; 1; 2599.999304; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 1.0; 0.0; 0.0 +1376740884; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 104856.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1376741184; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 114642.93333333333; 0.0; 0.6; 0.13333333333333333; 0.0 +1376741484; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 171964.8; 0.0; 2.2; 0.13333333333333333; 0.4666666666666667 +1376741784; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 110448.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1376742084; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 97865.33333333333; 0.0; 0.8; 0.0; 0.0 +1376742384; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 88078.4; 0.0; 6.866666666666666; 0.3333333333333333; 0.2 +1376742684; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 88078.4; 0.0; 0.8; 0.0; 0.0 +1376742984; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1376743284; 1; 2599.999304; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1376743584; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 103457.86666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1376743885; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 130022.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1376744185; 1; 2599.999304; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1376744485; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 83884.0; 0.0; 0.7333333333333333; 0.13333333333333333; 0.0 +1376744785; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1376745085; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 139808.53333333333; 0.06666666666666667; 2.3333333333333335; 0.2; 0.4666666666666667 +1376745385; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 104856.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1376745685; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 90874.66666666667; 0.0; 0.6; 0.0; 0.0 +1376745985; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 81087.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1376746285; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 81087.73333333334; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1376746585; 1; 2599.999304; 19.066661562666667; 0.7333333333333333; 2097152.0; 75495.2; 0.0; 11.6; 0.13333333333333333; 0.0 +1376746885; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 78291.46666666666; 0.0; 0.8; 0.0; 0.0 +1376747185; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 100661.6; 0.0; 0.8; 0.0; 0.0 +1376747485; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 110448.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1376747785; 1; 2599.999304; 0.0; 0.0; 2097152.0; 74097.06666666667; 0.0; 1.0; 0.06666666666666667; 0.0 +1376748085; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1376748385; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 116041.06666666667; 0.0; 7.0; 0.2; 0.13333333333333333 +1376748685; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 167769.86666666667; 0.0; 2.066666666666667; 0.06666666666666667; 0.4666666666666667 +1376748985; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 138411.2; 0.06666666666666667; 1.1333333333333333; 0.0; 0.0 +1376749285; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 100661.6; 0.0; 0.8; 0.0; 0.0 +1376749585; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 117439.2; 0.0; 0.6; 0.0; 0.0 +1376749885; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 123031.73333333334; 0.06666666666666667; 1.0666666666666667; 0.06666666666666667; 0.13333333333333333 +1376750185; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 128624.26666666666; 0.06666666666666667; 1.2666666666666666; 0.06666666666666667; 0.13333333333333333 +1376750485; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376750785; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 110448.53333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1376751085; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 102059.73333333334; 0.0; 0.6; 0.06666666666666667; 0.0 +1376751385; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 0.6; 0.0; 0.0 +1376751685; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1376751985; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376752285; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 141207.46666666667; 0.0; 2.1333333333333333; 0.06666666666666667; 0.5333333333333333 +1376752586; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1376752886; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 92272.8; 0.0; 0.6; 0.0; 0.0 +1376753186; 1; 2599.999304; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1376753485; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 130022.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1376753785; 1; 2599.999304; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1376754085; 1; 2599.999304; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1376754385; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 79689.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1376754685; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 81087.73333333334; 0.0; 7.2; 0.2; 0.13333333333333333 +1376754985; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 139808.53333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1376755285; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 95069.06666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1376755585; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 100661.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1376755885; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 155188.26666666666; 0.06666666666666667; 2.466666666666667; 0.0; 0.4666666666666667 +1376756185; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 124429.6; 0.0; 0.8; 0.0; 0.0 +1376756485; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 125826.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1376756785; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 95068.8; 0.0; 0.5333333333333333; 0.0; 0.0 +1376757085; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 99263.46666666666; 0.0; 1.4; 0.0; 0.0 +1376757385; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1376757685; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 85282.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376757985; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 121633.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1376758285; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 155188.8; 0.0; 0.6; 0.0; 0.0 +1376758585; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 89476.53333333334; 0.0; 1.0; 0.0; 0.0 +1376758885; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 65708.26666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1376759186; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 81087.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1376759486; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 169168.8; 0.06666666666666667; 2.1333333333333333; 0.06666666666666667; 0.5333333333333333 +1376759786; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 125827.73333333334; 0.0; 1.0; 0.0; 0.0 +1376760086; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 137012.26666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1376760386; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 117438.66666666667; 0.0; 6.6; 0.2; 0.13333333333333333 +1376760686; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 117438.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1376760986; 1; 2599.999304; 20.799994432; 0.8; 2097152.0; 104856.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1376761286; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 125827.2; 0.0; 1.0; 0.0; 0.0 +1376761586; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 100661.6; 0.0; 1.2; 0.0; 0.0 +1376761886; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376762186; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 95069.06666666667; 0.0; 0.6; 0.0; 0.0 +1376762486; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 102059.73333333334; 0.0; 1.0666666666666667; 0.06666666666666667; 0.06666666666666667 +1376762786; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 135614.93333333332; 0.0; 0.8666666666666667; 0.0; 0.0 +1376763086; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 198528.8; 0.0; 2.2; 0.06666666666666667; 0.4666666666666667 +1376763386; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 125827.73333333334; 0.0; 0.8; 0.0; 0.0 +1376763686; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 100661.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1376763986; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 88078.4; 0.0; 0.5333333333333333; 0.0; 0.0 +1376764286; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 100661.6; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1376764586; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 96467.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1376764886; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 93670.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1376765186; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 93670.93333333333; 0.0; 0.6; 0.0; 0.0 +1376765486; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 74097.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376765786; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 89476.53333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1376766086; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 104856.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1376766386; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 139808.53333333333; 0.0; 7.0; 0.26666666666666666; 0.13333333333333333 +1376766686; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 185944.53333333333; 0.0; 2.066666666666667; 0.06666666666666667; 0.4666666666666667 +1376766986; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 116041.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1376767286; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 138411.2; 0.0; 0.5333333333333333; 0.0; 0.0 +1376767586; 1; 2599.999304; 45.06665460266667; 1.7333333333333334; 2097152.0; 166371.73333333334; 161.2; 14.133333333333333; 0.0; 0.2 +1376767886; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 432010.93333333335; 0.0; 1.2; 0.0; 0.0 +1376768187; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 177556.53333333333; 31.8; 3.4; 0.0; 0.0 +1376768487; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 184546.93333333332; 0.0; 1.0666666666666667; 0.0; 0.0 +1376768787; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 130022.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1376769087; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 130022.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1376769387; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 142605.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1376769687; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 125828.0; 0.0; 1.0; 0.0; 0.0 +1376769987; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 82485.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376770287; 1; 2599.999304; 19.066661562666667; 0.7333333333333333; 2097152.0; 155188.0; 0.0; 2.1333333333333333; 0.06666666666666667; 0.5333333333333333 +1376770587; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 125828.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1376770887; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 1.0; 0.0; 0.0 +1376771187; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 100661.6; 0.0; 1.1333333333333333; 0.0; 0.0 +1376771487; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1376771787; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1376772087; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 106254.13333333333; 0.0; 1.0; 0.0; 0.0 +1376772387; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 86680.26666666666; 0.0; 1.0; 0.0; 0.0 +1376772687; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 82485.86666666667; 0.0; 1.0; 0.0; 0.0 +1376772987; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 117438.4; 0.0; 7.0; 0.26666666666666666; 0.13333333333333333 +1376773287; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 110448.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1376773587; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 75495.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1376773887; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 180352.8; 0.0; 2.1333333333333333; 0.06666666666666667; 0.5333333333333333 +1376774187; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 138411.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1376774487; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 90874.66666666667; 0.0; 0.8; 0.0; 0.0 +1376774787; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 95069.06666666667; 0.0; 0.8; 0.0; 0.0 +1376775087; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 102059.73333333334; 0.0; 0.8; 0.0; 0.0 +1376775387; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 117439.2; 0.0; 1.0; 0.0; 0.0 +1376775687; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 90874.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376775988; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 90874.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376776288; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1376776588; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 79689.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1376776891; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 79689.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1376777191; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 109050.4; 0.0; 0.6; 0.0; 0.0 +1376777491; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 149594.4; 0.0; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1376777791; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 127225.33333333333; 0.0; 0.8; 0.0; 0.0 +1376778091; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 92272.8; 0.0; 1.0; 0.0; 0.0 +1376778391; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 97865.33333333333; 0.0; 0.6; 0.0; 0.0 +1376778691; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 123031.73333333334; 0.0; 1.3333333333333333; 0.06666666666666667; 0.13333333333333333 +1376778991; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 114642.93333333333; 0.06666666666666667; 0.9333333333333333; 0.0; 0.0 +1376779291; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 82485.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376779591; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1376779891; 1; 2599.999304; 46.799987472000005; 1.8; 2097152.0; 153789.6; 161.46666666666667; 27.933333333333334; 0.3333333333333333; 0.6 +1376780191; 1; 2599.999304; 34.66665738666667; 1.3333333333333335; 2097152.0; 735398.9333333333; 0.0; 2.4; 0.0; 0.0 +1376780491; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 290802.93333333335; 31.8; 3.3333333333333335; 0.0; 0.0 +1376780791; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 178954.4; 0.0; 2.3333333333333335; 0.0; 0.0 +1376781091; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 184547.73333333334; 0.06666666666666667; 3.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1376781391; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 132818.66666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1376781691; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 114642.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1376781991; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 82485.86666666667; 0.0; 0.8; 0.0; 0.0 +1376782291; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 121633.6; 0.06666666666666667; 1.0666666666666667; 0.0; 0.0 +1376782591; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 130021.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1376782891; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 99263.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1376783191; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 137012.53333333333; 0.0; 1.2; 0.0; 0.0 +1376783491; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 164973.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1376783791; 1; 2599.999304; 0.0; 0.0; 2097152.0; 68504.53333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1376784091; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 102059.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1376784392; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1376784692; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 156586.13333333333; 0.0; 2.4; 0.06666666666666667; 0.4666666666666667 +1376784992; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 127226.13333333333; 0.0; 1.2; 0.0; 0.0 +1376785292; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 121632.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1376785592; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 83884.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1376785892; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 100661.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1376786191; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 134216.8; 12.733333333333333; 13.066666666666666; 0.3333333333333333; 0.13333333333333333 +1376786491; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 134216.8; 0.0; 1.3333333333333333; 0.0; 0.0 +1376786791; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 111846.66666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1376787091; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 120235.46666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1376787391; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 113244.8; 0.0; 0.8; 0.0; 0.0 +1376787691; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 138411.2; 0.0; 1.0; 0.0; 0.0 +1376787991; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 78291.46666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1376788291; 1; 2599.999304; 19.066661562666667; 0.7333333333333333; 2097152.0; 131419.73333333334; 0.0; 2.2; 0.06666666666666667; 0.5333333333333333 +1376788591; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 96467.2; 0.0; 0.8; 0.0; 0.0 +1376788891; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 89476.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1376789191; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 68504.53333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1376789491; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 99263.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1376789791; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 110448.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1376790092; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 88078.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1376790392; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 127225.6; 0.0; 12.0; 0.0; 0.0 +1376790692; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 130022.13333333333; 0.0; 0.5333333333333333; 0.0; 0.0 +1376790992; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 132818.66666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1376791292; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 100661.6; 0.0; 0.8; 0.0; 0.0 +1376791592; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 102059.73333333334; 0.0; 0.6; 0.0; 0.0 +1376791892; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 127226.13333333333; 0.0; 2.8; 0.06666666666666667; 0.4666666666666667 +1376792192; 1; 2599.999304; 19.066661562666667; 0.7333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376792492; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 114642.93333333333; 0.0; 7.066666666666666; 0.26666666666666666; 0.13333333333333333 +1376792792; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 96467.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1376793092; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 106254.13333333333; 0.0; 0.8; 0.0; 0.0 +1376793392; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 97865.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1376793692; 1; 2599.999304; 19.066661562666667; 0.7333333333333333; 2097152.0; 72698.93333333333; 0.0; 0.8; 0.0; 0.0 +1376793992; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 104856.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1376794292; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 90874.66666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1376794592; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 86680.26666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1376794892; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 81087.73333333334; 0.0; 0.8; 0.0; 0.0 +1376795192; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 103457.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1376795492; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 159380.8; 0.0; 2.3333333333333335; 0.0; 0.4666666666666667 +1376795792; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 107652.26666666666; 0.0; 0.6; 0.0; 0.0 +1376796092; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 78291.46666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1376796392; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 114642.93333333333; 0.0; 0.6; 0.0; 0.0 +1376796692; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 128623.46666666666; 0.0; 0.6; 0.0; 0.0 +1376796992; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 74097.06666666667; 0.0; 0.6; 0.0; 0.0 +1376797292; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 111846.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376797592; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 145401.86666666667; 0.0; 1.2; 0.0; 0.0 +1376797892; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 96467.2; 0.0; 0.6666666666666666; 0.0; 0.0 +1376798193; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 81087.73333333334; 0.0; 0.5333333333333333; 0.0; 0.0 +1376798493; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 95069.06666666667; 0.0; 0.6; 0.0; 0.0 +1376798793; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 123031.73333333334; 0.0; 7.133333333333334; 0.2; 0.13333333333333333 +1376799093; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 185945.33333333334; 0.0; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1376799393; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 123031.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1376799693; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 82485.86666666667; 0.0; 0.8; 0.0; 0.0 +1376799993; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 79689.6; 0.0; 0.8; 0.0; 0.0 +1376800293; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 127226.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376800593; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 116041.06666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1376800893; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 93670.93333333333; 0.0; 1.0; 0.0; 0.0 +1376801193; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 79689.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1376801493; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 76893.33333333333; 0.0; 1.6; 0.0; 0.0 +1376801793; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 109050.4; 0.0; 0.5333333333333333; 0.0; 0.0 +1376802093; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 144003.73333333334; 0.0; 0.6; 0.0; 0.0 +1376802393; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 138410.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1376802693; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 195731.2; 0.0; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1376802993; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 127226.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376803293; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 135614.93333333332; 0.0; 0.6666666666666666; 0.0; 0.0 +1376803593; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 117439.2; 0.0; 0.6; 0.0; 0.0 +1376803893; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 127226.13333333333; 0.0; 0.6; 0.0; 0.0 +1376804193; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 88078.4; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1376804493; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 113244.8; 0.0; 0.7333333333333333; 0.0; 0.0 +1376804793; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 138411.2; 0.0; 7.0; 0.2; 0.13333333333333333 +1376805093; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 130021.6; 0.0; 0.6; 0.0; 0.0 +1376805393; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 86680.26666666666; 0.0; 0.5333333333333333; 0.0; 0.0 +1376805693; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 107652.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1376805993; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 83884.0; 0.0; 0.6; 0.0; 0.0 +1376806293; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 208314.93333333332; 0.0; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1376806593; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 169169.33333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1376806893; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 149595.46666666667; 0.0; 0.8; 0.0; 0.0 +1376807193; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 132817.86666666667; 0.0; 0.8; 0.0; 0.0 +1376807493; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 103457.86666666667; 0.0; 0.8; 0.06666666666666667; 0.13333333333333333 +1376807793; 1; 2599.999304; 17.333328693333335; 0.6666666666666667; 2097152.0; 111846.66666666667; 0.0; 1.8; 0.06666666666666667; 0.0 +1376808093; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 81087.73333333334; 0.0; 1.4666666666666666; 0.06666666666666667; 0.0 +1376808393; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 88078.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1376808693; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 79689.6; 0.0; 0.5333333333333333; 0.0; 0.0 +1376808993; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 102059.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1376809293; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 123030.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1376809593; 1; 2599.999304; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.5333333333333333; 0.0; 0.0 +1376809894; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 191537.86666666667; 0.0; 2.2666666666666666; 0.06666666666666667; 0.5333333333333333 +1376810194; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 99263.46666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1376810494; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 131420.53333333333; 0.0; 6.866666666666666; 0.2; 0.13333333333333333 +1376810794; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 97865.33333333333; 0.0; 0.6; 0.0; 0.0 +1376811094; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 102059.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1376811394; 1; 2599.999304; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.6; 0.0; 0.0 +1376811694; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 93670.93333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1376811994; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 95069.06666666667; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1376812294; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 95069.06666666667; 0.0; 0.6; 0.0; 0.0 +1376812594; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 88078.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1376812894; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1376813194; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 102059.73333333334; 0.0; 0.6; 0.0; 0.0 +1376813494; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 191537.86666666667; 0.06666666666666667; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1376813794; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 117439.2; 0.0; 1.0; 0.0; 0.0 +1376814094; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 110448.53333333334; 0.0; 0.6; 0.0; 0.0 +1376814394; 1; 2599.999304; 0.0; 0.0; 2097152.0; 67106.4; 0.0; 0.5333333333333333; 0.0; 0.0 +1376814694; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 118837.33333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1376814994; 1; 2599.999304; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.6; 0.06666666666666667; 0.0 +1376815294; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 75495.2; 0.0; 1.2; 0.0; 0.0 +1376815594; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 89476.53333333334; 0.0; 0.6; 0.0; 0.0 +1376815894; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 93670.93333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1376816194; 1; 2599.999304; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 0.8; 0.0; 0.0 +1376816494; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 114642.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376816794; 1; 2599.999304; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1376817094; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 150993.6; 0.2; 2.533333333333333; 0.06666666666666667; 0.4666666666666667 +1376817394; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 114642.93333333333; 0.0; 7.066666666666666; 0.26666666666666666; 0.13333333333333333 +1376817694; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 102059.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1376817994; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 121633.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1376818294; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 132817.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376818594; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 89476.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1376818894; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1376819194; 1; 2599.999304; 0.0; 0.0; 2097152.0; 57319.46666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376819494; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 96467.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1376819794; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1376820094; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 123031.73333333334; 0.0; 1.8; 0.0; 0.0 +1376820394; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1376820694; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 150993.6; 0.0; 2.3333333333333335; 0.0; 0.4666666666666667 +1376820994; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 104856.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1376821294; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 121632.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1376821594; 1; 2599.999304; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1376821894; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376822194; 1; 2599.999304; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 1.1333333333333333; 0.0; 0.0 +1376822494; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376822794; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 138411.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1376823094; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 173362.93333333332; 0.0; 7.133333333333334; 0.2; 0.13333333333333333 +1376823394; 1; 2599.999304; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1376823694; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 79689.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1376823995; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 83884.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1376824295; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 142604.8; 0.0; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1376824595; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 116041.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376824895; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 106254.13333333333; 0.0; 1.0; 0.0; 0.0 +1376825195; 1; 2599.999304; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376825495; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 114642.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376825795; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 107652.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1376826095; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 107652.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1376826395; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 117439.2; 0.0; 1.4; 0.0; 0.0 +1376826695; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 120234.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1376826995; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 134216.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1376827295; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 110448.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1376827595; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 123031.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1376827895; 1; 2599.999304; 25.99999304; 1.0; 2097152.0; 185945.6; 161.06666666666666; 22.0; 0.13333333333333333; 0.8666666666666667 +1376828195; 1; 2599.999304; 51.99998608; 2.0; 2097152.0; 812294.1333333333; 0.0; 3.533333333333333; 0.0; 0.0 +1376828495; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 402650.93333333335; 31.8; 3.066666666666667; 0.0; 0.0 +1376828795; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 215304.53333333333; 0.06666666666666667; 2.3333333333333335; 0.0; 0.0 +1376829095; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 138411.2; 0.0; 1.8666666666666667; 0.0; 0.0 +1376829395; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 85282.13333333333; 0.0; 1.0; 0.0; 0.0 +1376829695; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 109050.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1376829995; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 111846.66666666667; 0.0; 6.666666666666667; 0.2; 0.13333333333333333 +1376830295; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 107652.26666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1376830595; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1376830895; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 106254.13333333333; 0.0; 1.0666666666666667; 0.13333333333333333; 0.06666666666666667 +1376831195; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 83884.0; 0.0; 0.7333333333333333; 0.13333333333333333; 0.0 +1376831495; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 163575.73333333334; 0.0; 2.3333333333333335; 0.13333333333333333; 0.5333333333333333 +1376831795; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 111846.66666666667; 0.0; 0.8; 0.0; 0.0 +1376832096; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1376832396; 1; 2599.999304; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376832696; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 85282.13333333333; 0.0; 0.7333333333333333; 0.13333333333333333; 0.0 +1376832996; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 107652.26666666666; 0.0; 0.8; 0.0; 0.0 +1376833296; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1376833596; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 95069.06666666667; 0.0; 1.0; 0.0; 0.0 +1376833896; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 125828.0; 0.0; 11.4; 0.0; 0.0 +1376834196; 1; 2599.999304; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1376834495; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 134215.73333333334; 0.0; 0.8; 0.0; 0.0 +1376834795; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 110448.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1376835095; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 187343.73333333334; 0.0; 2.2; 0.06666666666666667; 0.5333333333333333 +1376835395; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 0.6666666666666666; 0.0; 0.0 +1376835695; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 88078.4; 0.0; 0.8; 0.13333333333333333; 0.0 +1376835995; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 102059.73333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1376836295; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 141206.66666666666; 0.0; 7.066666666666666; 0.26666666666666666; 0.2 +1376836595; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 146800.0; 0.0; 0.8; 0.0; 0.0 +1376836895; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1376837195; 1; 2599.999304; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1376837495; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 121633.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1376837795; 1; 2599.999304; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1376838096; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1376838396; 1; 2599.999304; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1376838696; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 192935.73333333334; 0.06666666666666667; 2.3333333333333335; 0.06666666666666667; 0.5333333333333333 +1376838996; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 146800.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1376839296; 1; 2599.999304; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1376839596; 1; 2599.999304; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376839896; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 109050.4; 0.0; 0.8; 0.0; 0.0 +1376840196; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 92272.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1376840496; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 92272.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1376840796; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 72698.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1376841096; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 81087.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1376841396; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 120235.46666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1376841696; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 120235.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1376841996; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 125828.0; 0.0; 0.8; 0.0; 0.0 +1376842296; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 155188.0; 0.06666666666666667; 8.266666666666667; 0.26666666666666666; 0.6 +1376842596; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 130022.4; 0.06666666666666667; 1.0; 0.06666666666666667; 0.0 +1376842896; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 95069.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1376843196; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 114642.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1376843496; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1376843796; 1; 2599.999304; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1376844096; 1; 2599.999304; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1376844396; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 130022.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1376844696; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 138410.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1376844996; 1; 2599.999304; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1376845296; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 88078.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1376845596; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 96467.2; 0.0; 0.8; 0.0; 0.0 +1376845896; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 104855.2; 0.06666666666666667; 2.8; 0.06666666666666667; 0.5333333333333333 +1376846196; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 137011.73333333334; 0.0; 0.8; 0.0; 0.0 +1376846496; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 138410.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1376846796; 1; 2599.999304; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1376847096; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 116041.06666666667; 0.0; 0.8; 0.0; 0.0 +1376847396; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 118837.33333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1376847696; 1; 2599.999304; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1376847996; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 79689.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1376848296; 1; 2599.999304; 0.0; 0.0; 2097152.0; 72698.93333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1376848596; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 121633.6; 12.733333333333333; 13.4; 0.3333333333333333; 0.2 +1376848896; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 159381.6; 0.0; 1.0; 0.0; 0.0 +1376849196; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 167771.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1376849496; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 142605.6; 0.0; 1.6666666666666667; 0.06666666666666667; 0.4666666666666667 +1376849796; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 76893.33333333333; 0.0; 0.8; 0.0; 0.0 +1376850096; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 88078.4; 0.0; 0.8; 0.0; 0.0 +1376850396; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 96467.2; 0.0; 0.6666666666666666; 0.0; 0.0 +1376850696; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 110448.53333333334; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1376850996; 1; 2599.999304; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1376851296; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 96467.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1376851596; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 79689.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1376851896; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 114642.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376852196; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 121633.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1376852496; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 118837.33333333333; 0.0; 0.8; 0.0; 0.0 +1376852796; 1; 2599.999304; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 1.0; 0.0; 0.0 +1376853096; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 184548.0; 0.06666666666666667; 2.2; 0.06666666666666667; 0.4666666666666667 +1376853396; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 114642.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1376853697; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 96467.2; 0.0; 0.6; 0.06666666666666667; 0.0 +1376853996; 1; 2599.999304; 36.399990255999995; 1.4; 2097152.0; 171964.8; 161.06666666666666; 14.333333333333334; 0.0; 0.2 +1376854297; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 461372.0; 0.0; 1.3333333333333333; 0.0; 0.0 +1376854597; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 222295.2; 31.8; 9.666666666666666; 0.2; 0.13333333333333333 +1376854897; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 218100.8; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1376855197; 1; 2599.999304; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1376855497; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 111846.66666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1376855797; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 130021.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1376856097; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 118837.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376856397; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1376856697; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 167769.6; 0.0; 2.466666666666667; 0.06666666666666667; 0.4666666666666667 +1376856997; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 159381.6; 0.0; 1.0; 0.0; 0.0 +1376857297; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 100661.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1376857597; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 85282.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376857897; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 148197.33333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1376858197; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 124429.86666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1376858497; 1; 2599.999304; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 1.0; 0.0; 0.0 +1376858797; 1; 2599.999304; 0.0; 0.0; 2097152.0; 74097.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376859097; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1376859397; 1; 2599.999304; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376859697; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 113244.8; 0.0; 1.2; 0.0; 0.0 +1376859997; 1; 2599.999304; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376860297; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 197129.6; 0.0; 2.2; 0.06666666666666667; 0.4666666666666667 +1376860597; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 137012.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1376860897; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 132818.66666666666; 0.0; 7.266666666666667; 0.2; 0.13333333333333333 +1376861197; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 144002.66666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1376861497; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1376861797; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 132818.13333333333; 0.0; 0.8; 0.06666666666666667; 0.0 +1376862097; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 110448.53333333334; 0.0; 1.0; 0.0; 0.0 +1376862397; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 86680.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1376862697; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 86680.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1376862997; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 93670.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376863298; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 69902.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376863598; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 69902.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376863898; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 118837.33333333333; 0.06666666666666667; 2.2; 0.06666666666666667; 0.4666666666666667 +1376864198; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 97865.33333333333; 0.0; 0.8; 0.0; 0.0 +1376864498; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 107652.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1376864798; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1376865098; 1; 2599.999304; 9.2857118; 0.35714285714285715; 2097152.0; 140808.0; 0.07142857142857142; 1.4285714285714286; 0.14285714285714285; 0.14285714285714285 +1376865398; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 120235.46666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1376865698; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1376865998; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1376866298; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 110448.53333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1376866599; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 92272.8; 0.0; 7.133333333333334; 0.2; 0.13333333333333333 +1376866899; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 107652.26666666666; 0.2; 0.9333333333333333; 0.0; 0.0 +1376867199; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 128623.46666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1376867500; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 174761.06666666668; 0.0; 2.2666666666666666; 0.06666666666666667; 0.5333333333333333 +1376867801; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 130022.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1376868101; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 92272.8; 0.0; 1.0; 0.0; 0.0 +1376868401; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 102059.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1376868701; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 83884.0; 0.0; 0.6; 0.0; 0.0 +1376869001; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 75495.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1376869301; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 85282.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376869601; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 75495.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1376869901; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 90874.66666666667; 0.0; 0.6; 0.0; 0.0 +1376870201; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1376870501; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1376870801; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 162178.66666666666; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1376871101; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 167770.4; 0.0; 2.8; 0.06666666666666667; 0.5333333333333333 +1376871401; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 118837.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1376871701; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 109049.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1376872001; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 104856.0; 0.0; 1.1333333333333333; 0.13333333333333333; 0.0 +1376872301; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 90874.66666666667; 0.06666666666666667; 1.4; 0.0; 0.0 +1376872601; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1376872901; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1376873201; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 117439.2; 0.0; 0.7333333333333333; 0.13333333333333333; 0.0 +1376873501; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 113244.8; 0.0; 6.866666666666666; 0.2; 0.13333333333333333 +1376873801; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 123031.73333333334; 0.0; 0.5333333333333333; 0.0; 0.0 +1376874101; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 106254.13333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1376874401; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1376874701; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 181751.2; 0.2; 2.533333333333333; 0.06666666666666667; 0.4666666666666667 +1376875001; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 127225.86666666667; 0.0; 1.0; 0.0; 0.0 +1376875301; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 82485.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1376875601; 1; 2599.999304; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1376875901; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 102059.73333333334; 0.0; 0.8; 0.0; 0.0 +1376876201; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 82485.86666666667; 0.0; 1.0; 0.0; 0.0 +1376876501; 1; 2599.999304; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.7333333333333333; 0.0; 0.0 +1376876801; 1; 2599.999304; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1376877101; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1376877401; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 125827.2; 0.0; 11.6; 0.0; 0.0 +1376877701; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 125828.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1376878001; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 145401.06666666668; 0.0; 0.8; 0.0; 0.0 +1376878302; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 171965.06666666668; 0.06666666666666667; 1.9333333333333333; 0.06666666666666667; 0.4666666666666667 +1376878602; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 138410.93333333332; 0.0; 0.8; 0.0; 0.0 +1376878902; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1376879202; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 118837.33333333333; 0.0; 0.8; 0.0; 0.0 +1376879502; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 82485.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376879802; 1; 2599.999304; 71.06664764266665; 2.733333333333333; 2097152.0; 661299.7333333333; 161.0; 21.466666666666665; 0.06666666666666667; 0.4 +1376880102; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 416631.73333333334; 0.0; 8.733333333333333; 0.2; 0.13333333333333333 +1376880402; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 262841.06666666665; 31.8; 3.7333333333333334; 0.0; 0.0 +1376880702; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 163576.53333333333; 0.0; 2.2666666666666666; 0.0; 0.0 +1376881002; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 96467.2; 0.0; 1.4; 0.0; 0.0 +1376881302; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 113244.8; 0.0; 0.7333333333333333; 0.0; 0.0 +1376881602; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 128623.46666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1376881902; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 206917.33333333334; 0.0; 1.9333333333333333; 0.06666666666666667; 0.4666666666666667 +1376882202; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 131419.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1376882502; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 96466.66666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1376882802; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 83883.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1376883102; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1376883402; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 104856.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1376883702; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 104856.0; 0.0; 0.8; 0.0; 0.0 +1376884002; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 120235.46666666666; 0.0; 1.2; 0.0; 0.0 +1376884302; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 99263.46666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1376884602; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376884902; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 81087.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1376885202; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 69902.66666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1376885502; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 232082.93333333332; 0.06666666666666667; 2.3333333333333335; 0.06666666666666667; 0.5333333333333333 +1376885802; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 128624.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1376886102; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 95069.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376886402; 1; 2599.999304; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1376886702; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 99263.46666666666; 0.06666666666666667; 6.8; 0.26666666666666666; 0.2 +1376887002; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 155186.93333333332; 0.0; 0.7333333333333333; 0.0; 0.0 +1376887302; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 120235.2; 0.0; 1.0; 0.0; 0.0 +1376887602; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 125828.0; 0.0; 0.8; 0.0; 0.0 +1376887902; 1; 2599.999304; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1376888202; 1; 2599.999304; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1376888502; 1; 2599.999304; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1376888802; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 89476.53333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1376889102; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 180352.53333333333; 0.0; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1376889403; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 125828.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1376889703; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 123031.73333333334; 0.0; 0.8; 0.0; 0.0 +1376890003; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 124429.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376890303; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 81087.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1376890603; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 110448.53333333334; 0.0; 1.4666666666666666; 0.0; 0.0 +1376890903; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 93670.93333333333; 0.0; 0.8; 0.0; 0.0 +1376891203; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 116041.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376891503; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 125828.0; 0.0; 1.0; 0.0; 0.0 +1376891803; 1; 2599.999304; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.8; 0.0; 0.0 +1376892103; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 82485.86666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1376892403; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 145401.06666666668; 0.0; 6.533333333333333; 0.2; 0.13333333333333333 +1376892703; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 176158.13333333333; 0.0; 2.4; 0.06666666666666667; 0.4666666666666667 +1376893003; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 111846.66666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1376893303; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 125828.0; 0.0; 0.6; 0.0; 0.0 +1376893603; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 109050.4; 0.0; 0.6; 0.0; 0.0 +1376893903; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 88078.4; 0.0; 0.9333333333333333; 0.06666666666666667; 0.06666666666666667 +1376894203; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 120235.46666666666; 0.0; 2.0; 0.06666666666666667; 0.0 +1376894503; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 144003.73333333334; 0.0; 1.4; 0.0; 0.0 +1376894803; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 104856.0; 0.0; 0.5333333333333333; 0.0; 0.0 +1376895103; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 81087.73333333334; 0.0; 0.6; 0.0; 0.0 +1376895403; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 92272.8; 0.0; 0.7333333333333333; 0.0; 0.0 +1376895703; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 110448.53333333334; 0.0; 1.2; 0.0; 0.0 +1376896003; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 109050.4; 0.0; 0.6; 0.0; 0.0 +1376896304; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 128623.46666666666; 0.0; 2.0; 0.06666666666666667; 0.4666666666666667 +1376896604; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 88078.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1376896904; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1376897204; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 0.5333333333333333; 0.0; 0.0 +1376897504; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 95069.06666666667; 0.0; 0.6; 0.0; 0.0 +1376897804; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 81087.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1376898104; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 111846.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376898404; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 156586.13333333333; 0.0; 1.4666666666666666; 0.06666666666666667; 0.0 +1376898704; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 123031.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1376899004; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 117439.2; 0.0; 0.6; 0.0; 0.0 +1376899304; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 123031.73333333334; 0.0; 7.333333333333333; 0.26666666666666666; 0.13333333333333333 +1376899604; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 107652.26666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1376899904; 1; 2599.999304; 15.599995824; 0.6; 2097152.0; 167771.46666666667; 0.6; 2.2; 0.06666666666666667; 0.5333333333333333 +1376900204; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 135614.93333333332; 0.0; 0.9333333333333333; 0.0; 0.0 +1376900504; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 71300.8; 0.0; 0.6666666666666666; 0.0; 0.0 +1376900804; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 103457.86666666667; 0.0; 0.5333333333333333; 0.0; 0.0 +1376901104; 1; 2599.999304; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 0.8; 0.0; 0.0 +1376901404; 1; 2599.999304; 0.0; 0.0; 2097152.0; 71300.8; 0.0; 0.7333333333333333; 0.0; 0.0 +1376901704; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 116041.06666666667; 0.0; 0.8; 0.0; 0.0 +1376902004; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 113244.8; 0.0; 0.5333333333333333; 0.06666666666666667; 0.0 +1376902304; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 104856.0; 0.0; 0.8; 0.0; 0.0 +1376902604; 1; 2599.999304; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1376902904; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 102059.73333333334; 0.0; 0.6; 0.0; 0.0 +1376903204; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 132818.4; 0.0; 0.6; 0.0; 0.0 +1376903504; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 218101.06666666668; 0.0; 1.9333333333333333; 0.06666666666666667; 0.5333333333333333 +1376903804; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 90874.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376904104; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 114642.93333333333; 0.0; 0.6; 0.0; 0.0 +1376904404; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 102059.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1376904704; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 127225.86666666667; 0.0; 6.733333333333333; 0.4; 0.06666666666666667 +1376905004; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 142605.06666666668; 0.0; 0.8666666666666667; 0.0; 0.0 +1376905304; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 99263.46666666666; 0.0; 1.2; 0.0; 0.0 +1376905604; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1376905904; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 132818.4; 0.0; 0.8; 0.0; 0.0 +1376906204; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 117438.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376906504; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 62912.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1376906804; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 85282.13333333333; 0.0; 1.0; 0.0; 0.0 +1376907104; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 184548.0; 0.06666666666666667; 2.533333333333333; 0.06666666666666667; 0.4666666666666667 +1376907404; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 132818.66666666666; 0.0; 1.0; 0.0; 0.0 +1376907704; 1; 2599.999304; 1.7333328693333334; 0.06666666666666667; 2097152.0; 132818.66666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1376908004; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 92272.8; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1376908304; 1; 2599.999304; 3.466665738666667; 0.13333333333333333; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1376908604; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.26666666666666666; 0.0 +1376908904; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 106254.13333333333; 0.0; 0.8666666666666667; 0.4; 0.0 +1376909204; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 131420.53333333333; 0.0; 1.0; 0.0; 0.0 +1376909504; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 90874.66666666667; 0.0; 1.0666666666666667; 2.4; 0.0 +1376909804; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 118837.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376910104; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 89476.53333333334; 0.0; 0.8; 0.13333333333333333; 0.0 +1376910404; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 121632.8; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1376910705; 1; 2599.999304; 22.533327301333333; 0.8666666666666667; 2097152.0; 170566.66666666666; 12.8; 16.466666666666665; 0.4666666666666667; 0.7333333333333333 +1376911005; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 106254.13333333333; 0.0; 1.2; 0.0; 0.0 +1376911305; 1; 2599.999304; 10.399997216; 0.4; 2097152.0; 89476.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1376911605; 1; 2599.999304; 5.199998608; 0.2; 2097152.0; 123031.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1376911905; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 162178.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1376912205; 1; 2599.999304; 8.666664346666668; 0.33333333333333337; 2097152.0; 148197.33333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1376912505; 1; 2599.999304; 6.933331477333334; 0.26666666666666666; 2097152.0; 96466.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376912805; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 85282.13333333333; 0.0; 1.2; 0.0; 0.0 +1376913105; 1; 2599.999304; 13.866662954666667; 0.5333333333333333; 2097152.0; 110448.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1376913405; 1; 2599.999304; 12.133330085333332; 0.4666666666666666; 2097152.0; 85282.13333333333; 0.0; 1.0; 0.0; 0.0 +1376913705; 1; 2599.9993; 28.888881111111115; 1.1111111111111112; 2097152.0; 125828.0; 0.0; 1.125; 0.0; 0.0 +1376914005; 1; 2599.9993; 8.666664333333335; 0.33333333333333337; 2097152.0; 99263.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1376914305; 1; 2599.9993; 13.866662933333332; 0.5333333333333333; 2097152.0; 166372.26666666666; 0.0; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1376914605; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1376914905; 1; 2599.9993; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1376915205; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 61513.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376915505; 1; 2599.999343; 28.599992773000004; 1.1; 2097152.0; 77592.4; 0.0; 1.0; 0.1111111111111111; 0.0 +1376915805; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 99263.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1376916105; 1; 2599.999343; 6.933331581333333; 0.26666666666666666; 2097152.0; 146800.0; 0.0; 6.8; 0.3333333333333333; 0.13333333333333333 +1376916405; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 104856.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1376916705; 1; 2599.999343; 5.199998686; 0.2; 2097152.0; 93670.93333333333; 0.0; 0.6; 0.0; 0.0 +1376917005; 1; 2599.999343; 5.199998686; 0.2; 2097152.0; 111846.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376917305; 1; 2599.999343; 3.4666657906666667; 0.13333333333333333; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376917605; 1; 2599.999343; 6.933331581333333; 0.26666666666666666; 2097152.0; 124429.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1376917905; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 199925.33333333334; 0.0; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1376918205; 1; 2599.999343; 3.4666657906666667; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1376918505; 1; 2599.999343; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1376918805; 1; 2599.999343; 5.199998686; 0.2; 2097152.0; 106254.13333333333; 0.0; 0.6; 0.0; 0.0 +1376919105; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1376919405; 1; 2599.999343; 3.4666657906666667; 0.13333333333333333; 2097152.0; 107652.26666666666; 0.0; 0.8; 0.0; 0.0 +1376919705; 1; 2599.999343; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.8; 0.0; 0.0 +1376920005; 1; 2599.999343; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.8; 0.0; 0.0 +1376920306; 1; 2599.999343; 3.4666657906666667; 0.13333333333333333; 2097152.0; 118837.33333333333; 0.0; 0.8; 0.0; 0.0 +1376920606; 1; 2599.99945; 25.9999945; 1.0; 2097152.0; 76257.81818181818; 0.0; 1.1; 0.0; 0.0 +1376920906; 1; 2599.99945; 8.666664833333334; 0.33333333333333337; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1376921206; 1; 2599.99945; 12.133330766666665; 0.4666666666666666; 2097152.0; 83884.0; 0.0; 11.6; 0.0; 0.0 +1376921506; 1; 2599.99945; 12.133330766666665; 0.4666666666666666; 2097152.0; 156584.8; 0.0; 2.2; 0.0; 0.4666666666666667 +1376921806; 1; 2599.99945; 10.3999978; 0.4; 2097152.0; 130022.13333333333; 0.0; 7.2; 0.4; 0.2 +1376922106; 1; 2599.99945; 1.7333329666666666; 0.06666666666666667; 2097152.0; 159382.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1376922406; 1; 2599.99945; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.8; 0.0; 0.0 +1376922706; 1; 2599.99945; 5.1999989; 0.2; 2097152.0; 86680.26666666666; 0.0; 1.1333333333333333; 0.06666666666666667; 0.13333333333333333 +1376923006; 1; 2599.99945; 5.1999989; 0.2; 2097152.0; 121633.06666666667; 0.0; 1.0; 0.0; 0.0 +1376923306; 1; 2599.99945; 5.1999989; 0.2; 2097152.0; 110448.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1376923606; 1; 2599.99945; 1.7333329666666666; 0.06666666666666667; 2097152.0; 107652.26666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1376923906; 1; 2599.999306; 21.272721594545455; 0.8181818181818181; 2097152.0; 114388.72727272728; 0.0; 1.0; 0.0; 0.0 +1376924206; 1; 2599.999306; 3.4666657413333337; 0.13333333333333333; 2097152.0; 114642.93333333333; 0.0; 0.8; 0.06666666666666667; 0.0 +1376924506; 1; 2599.999297; 28.88888107777778; 1.1111111111111112; 2097152.0; 88544.44444444444; 0.0; 0.75; 0.0; 0.0 +1376924806; 1; 2599.999334; 28.363629098181818; 1.0909090909090908; 2097152.0; 101042.90909090909; 0.0; 0.8; 0.1; 0.0 +1376925106; 1; 2599.999334; 20.799994672000004; 0.8; 2097152.0; 141206.66666666666; 0.0; 2.2; 1.0; 0.5333333333333333 +1376925406; 1; 2599.999334; 17.333328893333338; 0.6666666666666667; 2097152.0; 106254.13333333333; 0.0; 0.6666666666666666; 2.066666666666667; 0.0 +1376925706; 1; 2599.999334; 12.133330225333331; 0.4666666666666666; 2097152.0; 88078.4; 0.0; 0.6; 0.06666666666666667; 0.0 +1376926006; 1; 2599.999334; 13.866663114666666; 0.5333333333333333; 2097152.0; 114642.93333333333; 0.0; 1.0; 0.06666666666666667; 0.0 +1376926306; 1; 2599.999334; 12.133330225333331; 0.4666666666666666; 2097152.0; 89476.53333333334; 0.0; 0.6; 0.06666666666666667; 0.0 +1376926606; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 61513.86666666667; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1376926906; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 106254.13333333333; 0.0; 0.8; 0.13333333333333333; 0.0 +1376927206; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 102059.73333333334; 0.0; 1.1333333333333333; 0.13333333333333333; 0.0 +1376927506; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 104856.0; 0.0; 1.2666666666666666; 0.0; 0.0 +1376927806; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 85282.13333333333; 0.0; 0.9333333333333333; 0.13333333333333333; 0.0 +1376928106; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 71300.8; 0.0; 0.7333333333333333; 0.0; 0.0 +1376928406; 1; 2599.999334; 13.866663114666666; 0.5333333333333333; 2097152.0; 86680.26666666666; 0.0; 6.733333333333333; 0.2; 0.13333333333333333 +1376928706; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 155188.0; 0.0; 2.533333333333333; 0.06666666666666667; 0.5333333333333333 +1376929006; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 145401.86666666667; 0.0; 0.8; 0.0; 0.0 +1376929306; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 124429.86666666667; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1376929606; 1; 2599.999334; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8; 0.0; 0.0 +1376929906; 1; 2599.999334; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376930207; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 111846.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376930507; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 75495.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1376930807; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 134216.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1376931107; 1; 2599.999334; 0.0; 0.0; 2097152.0; 90874.4; 0.0; 0.6; 0.0; 0.0 +1376931407; 1; 2599.999334; 57.19998534800001; 2.2; 2097152.0; 268433.3333333333; 161.0; 21.733333333333334; 0.0; 0.4 +1376931707; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 773148.0; 0.0; 2.6; 0.0; 0.0 +1376932007; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 304784.0; 31.8; 3.2666666666666666; 0.0; 0.0 +1376932307; 1; 2599.999334; 17.333328893333338; 0.6666666666666667; 2097152.0; 219498.93333333332; 0.0; 3.6; 0.0; 0.4666666666666667 +1376932607; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 124429.6; 0.0; 1.4666666666666666; 0.0; 0.0 +1376932907; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 102059.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1376933207; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 99263.46666666666; 0.0; 0.6; 0.0; 0.0 +1376933507; 1; 2599.999334; 0.0; 0.0; 2097152.0; 145400.53333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1376933807; 1; 2599.999334; 0.0; 0.0; 2097152.0; 134216.0; 0.0; 0.8; 0.0; 0.0 +1376934107; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 83884.0; 0.0; 0.8; 0.0; 0.0 +1376934407; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 146799.46666666667; 0.0; 7.333333333333333; 0.2; 0.13333333333333333 +1376934707; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 138410.93333333332; 0.0; 0.7333333333333333; 0.0; 0.0 +1376935007; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 121633.6; 0.0; 1.4666666666666666; 0.0; 0.0 +1376935307; 1; 2599.999334; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.8; 0.0; 0.0 +1376935607; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 92272.8; 0.0; 0.8; 0.0; 0.0 +1376935907; 1; 2599.999334; 12.133330225333331; 0.4666666666666666; 2097152.0; 138410.4; 0.06666666666666667; 2.3333333333333335; 0.0; 0.4666666666666667 +1376936207; 1; 2599.999334; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.8; 0.0; 0.0 +1376936507; 1; 2599.999334; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1376936807; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 92272.8; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1376937107; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 107652.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1376937407; 1; 2599.999334; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1376937707; 1; 2599.999334; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1376938007; 1; 2599.999334; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.6; 0.0; 0.0 +1376938307; 1; 2599.999334; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 0.8; 0.0; 0.0 +1376938607; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 121632.8; 0.0; 0.6; 0.06666666666666667; 0.0 +1376938907; 1; 2599.999334; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.6; 0.0; 0.0 +1376939208; 1; 2599.999334; 0.0; 0.0; 2097152.0; 127226.13333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1376939508; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 139809.33333333334; 0.0; 2.2; 0.06666666666666667; 0.4666666666666667 +1376939808; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 120235.46666666666; 0.06666666666666667; 1.1333333333333333; 0.0; 0.0 +1376940108; 1; 2599.999334; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.5333333333333333; 0.0; 0.0 +1376940408; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 111846.13333333333; 161.0; 13.266666666666667; 0.0; 0.2 +1376940708; 1; 2599.999334; 38.13332356533333; 1.4666666666666666; 2097152.0; 518693.6; 0.0; 7.933333333333334; 0.26666666666666666; 0.13333333333333333 +1376941008; 1; 2599.999334; 0.0; 0.0; 2097152.0; 225092.53333333333; 31.8; 3.0; 0.0; 0.0 +1376941308; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 219499.73333333334; 0.0; 1.8; 0.0; 0.0 +1376941608; 1; 2599.999334; 0.0; 0.0; 2097152.0; 116040.8; 0.0; 1.2; 0.0; 0.0 +1376941908; 1; 2599.999334; 0.0; 0.0; 2097152.0; 68504.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1376942208; 1; 2599.999334; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376942508; 1; 2599.999334; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 1.0; 0.0; 0.0 +1376942808; 1; 2599.999334; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1376943108; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 190139.73333333334; 0.06666666666666667; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1376943408; 1; 2599.999334; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376943708; 1; 2599.999334; 0.0; 0.0; 2097152.0; 131420.53333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376944008; 1; 2599.999334; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1376944308; 1; 2599.999334; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1376944608; 1; 2599.999334; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376944908; 1; 2599.999334; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1376945208; 1; 2599.999334; 0.0; 0.0; 2097152.0; 62912.0; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1376945508; 1; 2599.999334; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1376945808; 1; 2599.999334; 0.0; 0.0; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 0.4; 0.0 +1376946108; 1; 2599.999334; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1376946408; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 92272.8; 0.0; 6.933333333333334; 0.2; 0.13333333333333333 +1376946708; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 195732.26666666666; 0.06666666666666667; 2.6666666666666665; 0.06666666666666667; 0.4666666666666667 +1376947008; 1; 2599.999334; 0.0; 0.0; 2097152.0; 121633.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376947309; 1; 2599.999334; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.8; 0.0; 0.0 +1376947609; 1; 2599.999334; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1376947909; 1; 2599.999334; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1376948209; 1; 2599.999334; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1376948509; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1376948809; 1; 2599.999334; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.6; 0.0; 0.0 +1376949109; 1; 2599.999334; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.8; 0.0; 0.0 +1376949408; 1; 2599.999334; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1376949709; 1; 2599.999334; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1376950009; 1; 2599.999334; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 0.7333333333333333; 0.13333333333333333; 0.0 +1376950309; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 176158.4; 0.06666666666666667; 2.533333333333333; 0.06666666666666667; 0.4666666666666667 +1376950609; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 149594.66666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1376950909; 1; 2599.999334; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1376951209; 1; 2599.999334; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1376951509; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 114642.93333333333; 0.0; 1.2; 0.13333333333333333; 0.13333333333333333 +1376951809; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 111846.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376952109; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 118837.33333333333; 0.0; 0.8; 0.0; 0.0 +1376952409; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 114642.93333333333; 0.0; 7.266666666666667; 0.26666666666666666; 0.13333333333333333 +1376952709; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 110448.53333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1376953009; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.13333333333333333; 0.0 +1376953309; 1; 2599.999334; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.6666666666666666; 0.13333333333333333; 0.0 +1376953610; 1; 2599.999334; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1376953910; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 137012.26666666666; 0.0; 2.0; 0.06666666666666667; 0.4666666666666667 +1376954210; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 96467.2; 0.0; 0.8; 0.0; 0.0 +1376954510; 1; 2599.999334; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1376954810; 1; 2599.999334; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1376955110; 1; 2599.999334; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1376955410; 1; 2599.999334; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.6; 0.0; 0.0 +1376955710; 1; 2599.999334; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1376956010; 1; 2599.999334; 0.0; 0.0; 2097152.0; 132818.66666666666; 0.0; 1.2; 0.0; 0.0 +1376956310; 1; 2599.999334; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376956610; 1; 2599.999334; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1376956910; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 99263.46666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1376957210; 1; 2599.999334; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1376957510; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 176159.2; 0.06666666666666667; 2.533333333333333; 0.06666666666666667; 0.4666666666666667 +1376957810; 1; 2599.999334; 0.0; 0.0; 2097152.0; 124429.86666666667; 0.0; 1.2; 0.0; 0.0 +1376958110; 1; 2599.999334; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 8.466666666666667; 0.0 +1376958410; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1376958710; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 96467.2; 0.06666666666666667; 7.4; 0.26666666666666666; 0.2 +1376959010; 1; 2599.999334; 0.0; 0.0; 2097152.0; 135614.93333333332; 0.0; 0.7333333333333333; 0.0; 0.0 +1376959310; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 95069.06666666667; 0.0; 1.0; 0.0; 0.0 +1376959610; 1; 2599.999334; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376959910; 1; 2599.999334; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.8; 0.0; 0.0 +1376960210; 1; 2599.999334; 0.0; 0.0; 2097152.0; 145401.86666666667; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1376960510; 1; 2599.999334; 0.0; 0.0; 2097152.0; 141206.66666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1376960810; 1; 2599.999334; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.8; 0.0; 0.0 +1376961110; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 141205.86666666667; 0.0; 2.2; 0.06666666666666667; 0.4666666666666667 +1376961410; 1; 2599.999334; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.6; 0.06666666666666667; 0.0 +1376961710; 1; 2599.999334; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1376962010; 1; 2599.999334; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1376962311; 1; 2599.999334; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1376962611; 1; 2599.999334; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.8; 0.0; 0.0 +1376962911; 1; 2599.999334; 0.0; 0.0; 2097152.0; 74097.06666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1376963211; 1; 2599.999334; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1376963511; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 139808.53333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1376963811; 1; 2599.999334; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.6666666666666666; 0.0; 0.0 +1376964111; 1; 2599.999334; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.8; 0.0; 0.0 +1376964411; 1; 2599.999334; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 0.8; 0.0; 0.0 +1376964711; 1; 2599.999334; 13.866663114666666; 0.5333333333333333; 2097152.0; 153789.86666666667; 0.0; 13.4; 0.06666666666666667; 0.4666666666666667 +1376965011; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 138410.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1376965311; 1; 2599.999334; 0.0; 0.0; 2097152.0; 128623.46666666666; 0.0; 0.6; 0.0; 0.0 +1376965611; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 106254.13333333333; 0.0; 6.933333333333334; 0.26666666666666666; 0.13333333333333333 +1376965911; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1376966211; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1376966511; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 107652.26666666666; 0.0; 1.0; 0.0; 0.0 +1376966811; 1; 2599.999334; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1376967111; 1; 2599.999334; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.6; 0.0; 0.0 +1376967411; 1; 2599.999334; 0.0; 0.0; 2097152.0; 76893.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376967711; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 83884.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1376968011; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 131419.46666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1376968311; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 162177.86666666667; 0.06666666666666667; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1376968611; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 88078.4; 0.06666666666666667; 0.6666666666666666; 0.0; 0.0 +1376968911; 1; 2599.999334; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1376969211; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 88078.4; 0.0; 0.8; 0.0; 0.0 +1376969511; 1; 2599.999334; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 0.6; 0.06666666666666667; 0.0 +1376969811; 1; 2599.999334; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1376970111; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 1.0; 0.0; 0.0 +1376970411; 1; 2599.999334; 0.0; 0.0; 2097152.0; 130022.4; 0.0; 1.2; 0.0; 0.0 +1376970711; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 118837.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1376971011; 1; 2599.999334; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1376971311; 1; 2599.999334; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1376971611; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 130021.6; 12.733333333333333; 13.466666666666667; 0.3333333333333333; 0.2 +1376971911; 1; 2599.999334; 12.133330225333331; 0.4666666666666666; 2097152.0; 156586.93333333332; 0.06666666666666667; 2.6; 0.06666666666666667; 0.4666666666666667 +1376972211; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 120235.46666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1376972512; 1; 2599.999334; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1376972812; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 88078.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1376973112; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 156585.6; 0.0; 1.1333333333333333; 0.0; 0.0 +1376973412; 1; 2599.999334; 0.0; 0.0; 2097152.0; 149594.93333333332; 0.0; 0.6; 0.0; 0.0 +1376973712; 1; 2599.999334; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1376974012; 1; 2599.999334; 0.0; 0.0; 2097152.0; 76893.33333333333; 0.0; 0.6; 0.13333333333333333; 0.0 +1376974312; 1; 2599.999626; 28.599995886000002; 1.1; 2097152.0; 62912.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1376974612; 1; 2599.999626; 19.066663923999997; 0.7333333333333333; 2097152.0; 97865.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1376974912; 1; 2599.999626; 13.866664671999999; 0.5333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1376975212; 1; 2599.999626; 17.333330840000002; 0.6666666666666667; 2097152.0; 86680.26666666666; 0.0; 0.6; 0.0; 0.0 +1376975512; 1; 2599.999626; 19.066663923999997; 0.7333333333333333; 2097152.0; 191537.86666666667; 0.0; 2.066666666666667; 0.06666666666666667; 0.4666666666666667 +1376975812; 1; 2599.999334; 28.363629098181818; 1.0909090909090908; 2097152.0; 83884.0; 0.0; 0.9; 0.0; 0.0 +1376976112; 1; 2599.999334; 13.866663114666666; 0.5333333333333333; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1376976412; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 110448.53333333334; 0.0; 0.6; 0.0; 0.0 +1376976712; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 74097.06666666667; 0.0; 0.6; 0.06666666666666667; 0.0 +1376977012; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 93670.93333333333; 0.0; 0.6; 0.06666666666666667; 0.0 +1376977312; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 97865.33333333333; 0.0; 1.1333333333333333; 0.13333333333333333; 0.0 +1376977612; 1; 2599.999334; 13.866663114666666; 0.5333333333333333; 2097152.0; 81087.73333333334; 0.0; 6.8; 0.2; 0.13333333333333333 +1376977912; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 116040.26666666666; 0.0; 0.5333333333333333; 0.0; 0.0 +1376978212; 1; 2599.999334; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1376978512; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 117439.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1376978812; 1; 2599.999334; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1376979112; 1; 2599.999334; 13.866663114666666; 0.5333333333333333; 2097152.0; 185945.6; 0.0; 2.0; 0.06666666666666667; 0.5333333333333333 +1376979412; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 148197.86666666667; 0.0; 1.4666666666666666; 0.0; 0.0 +1376979712; 1; 2599.999334; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.6; 0.0; 0.0 +1376980012; 1; 2599.999334; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376980312; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 113244.8; 0.0; 0.5333333333333333; 0.26666666666666666; 0.13333333333333333 +1376980612; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 146799.2; 0.0; 2.2; 0.06666666666666667; 0.0 +1376980912; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 125828.0; 0.0; 1.4666666666666666; 0.0; 0.0 +1376981212; 1; 2599.999334; 0.0; 0.0; 2097152.0; 137013.06666666668; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1376981512; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 92272.8; 0.0; 1.0; 0.0; 0.0 +1376981812; 1; 2599.999334; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.6; 0.2; 0.0 +1376982112; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 79689.6; 0.0; 0.6; 0.2; 0.0 +1376982412; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 128623.46666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1376982712; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 150994.4; 0.06666666666666667; 2.8666666666666667; 2.3333333333333335; 0.4666666666666667 +1376983012; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 132818.66666666666; 0.06666666666666667; 6.533333333333333; 0.2; 0.13333333333333333 +1376983312; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 146799.2; 0.0; 0.8; 0.0; 0.0 +1376983612; 1; 2599.999334; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.6; 0.0; 0.0 +1376983912; 1; 2599.999334; 0.0; 0.0; 2097152.0; 131420.53333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1376984212; 1; 2599.999334; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.0; 0.0; 0.0 +1376984512; 1; 2599.999334; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1376984812; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 111845.86666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1376985112; 1; 2599.999334; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8; 0.0; 0.0 +1376985412; 1; 2599.999334; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 1.0; 0.06666666666666667; 0.0 +1376985712; 1; 2599.999334; 0.0; 0.0; 2097152.0; 71300.8; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1376986012; 1; 2599.999334; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 0.26666666666666666; 0.0 +1376986312; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 150993.06666666668; 0.0; 2.2666666666666666; 0.13333333333333333; 0.5333333333333333 +1376986612; 1; 2599.999334; 0.0; 0.0; 2097152.0; 144003.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1376986912; 1; 2599.999334; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1376987212; 1; 2599.999334; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1376987512; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 113244.8; 1.3333333333333333; 4.0; 0.0; 0.0 +1376987812; 1; 2599.999334; 45.066655122666674; 1.7333333333333334; 2097152.0; 232082.4; 181.86666666666667; 31.2; 0.5333333333333333; 0.4 +1376988112; 1; 2599.999334; 41.59998934400001; 1.6; 2097152.0; 844450.9333333333; 0.0; 5.2; 0.0; 0.0 +1376988412; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 409641.3333333333; 31.8; 3.3333333333333335; 0.0; 0.0 +1376988712; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 244665.33333333334; 0.0; 2.533333333333333; 0.0; 0.0 +1376989012; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 184547.46666666667; 0.0; 7.666666666666667; 0.26666666666666666; 0.2 +1376989312; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 174761.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1376989612; 1; 2599.999334; 0.0; 0.0; 2097152.0; 127226.13333333333; 0.0; 1.2666666666666666; 0.6666666666666666; 0.0 +1376989912; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 192935.73333333334; 0.0; 2.2; 0.06666666666666667; 0.4666666666666667 +1376990212; 1; 2599.999334; 0.0; 0.0; 2097152.0; 130021.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1376990512; 1; 2599.999334; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1376990812; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376991112; 1; 2599.999334; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1376991412; 1; 2599.999334; 0.0; 0.0; 2097152.0; 135614.93333333332; 0.0; 0.8666666666666667; 0.0; 0.0 +1376991712; 1; 2599.999334; 0.0; 0.0; 2097152.0; 134216.0; 0.0; 0.8; 0.0; 0.0 +1376992012; 1; 2599.999334; 0.0; 0.0; 2097152.0; 128623.2; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1376992312; 1; 2599.999334; 0.0; 0.0; 2097152.0; 142604.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1376992612; 1; 2599.999334; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 1.0; 0.0; 0.0 +1376992913; 1; 2599.999334; 0.0; 0.0; 2097152.0; 75495.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1376993213; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 104855.73333333334; 0.0; 1.5333333333333334; 0.06666666666666667; 0.4666666666666667 +1376993513; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 178955.2; 0.06666666666666667; 1.8; 0.0; 0.0 +1376993813; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1376994123; 1; 2599.999334; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1376994423; 1; 2599.999334; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1376994724; 1; 2599.999334; 0.0; 0.0; 2097152.0; 69902.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1376995024; 1; 2599.999334; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1376995324; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 183150.13333333333; 0.06666666666666667; 7.066666666666666; 0.26666666666666666; 0.13333333333333333 +1376995624; 1; 2599.999334; 0.0; 0.0; 2097152.0; 130022.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1376995924; 1; 2599.999334; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1376996224; 1; 2599.999334; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1376996524; 1; 2599.999334; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1376996824; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 1.4; 0.06666666666666667; 0.4666666666666667 +1376997124; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 153789.06666666668; 0.0; 1.9333333333333333; 0.0; 0.0 +1376997424; 1; 2599.999334; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1376997724; 1; 2599.999334; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.8; 0.06666666666666667; 0.0 +1376998024; 1; 2599.999334; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1376998324; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1376998624; 1; 2599.999334; 0.0; 0.0; 2097152.0; 137013.06666666668; 0.0; 0.8666666666666667; 0.0; 0.0 +1376998924; 1; 2599.999334; 0.0; 0.0; 2097152.0; 149596.26666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1376999224; 1; 2599.999334; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 1.3333333333333333; 0.2; 0.0 +1376999524; 1; 2599.999334; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1376999824; 1; 2599.999334; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.8; 0.13333333333333333; 0.0 +1377000124; 1; 2599.999334; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1377000424; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 96467.2; 0.0; 1.0666666666666667; 0.7333333333333333; 0.4666666666666667 +1377000724; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 149595.46666666667; 0.0; 1.6; 0.0; 0.0 +1377001024; 1; 2599.999334; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1377001324; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 146799.46666666667; 0.0; 6.666666666666667; 0.2; 0.13333333333333333 +1377001624; 1; 2599.999334; 0.0; 0.0; 2097152.0; 137012.0; 0.0; 0.8; 0.0; 0.0 +1377001924; 1; 2599.999334; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1377002224; 1; 2599.999334; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.8; 0.0; 0.0 +1377002524; 1; 2599.999334; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.8; 0.0; 0.0 +1377002824; 1; 2599.999334; 0.0; 0.0; 2097152.0; 139808.8; 0.0; 0.6666666666666666; 0.13333333333333333; 0.0 +1377003125; 1; 2599.999334; 0.0; 0.0; 2097152.0; 130022.13333333333; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377003425; 1; 2599.999334; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1377003725; 1; 2599.999334; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377004025; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 124429.33333333333; 0.0; 1.4666666666666666; 0.06666666666666667; 0.4666666666666667 +1377004325; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 159382.13333333333; 0.13333333333333333; 1.8666666666666667; 0.06666666666666667; 0.0 +1377004625; 1; 2599.999334; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377004925; 1; 2599.999334; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.7333333333333333; 0.13333333333333333; 0.0 +1377005225; 1; 2599.999334; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.8; 0.06666666666666667; 0.0 +1377005525; 1; 2599.999334; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377005825; 1; 2599.999334; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.8; 0.06666666666666667; 0.0 +1377006125; 1; 2599.999334; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 1.2; 0.0; 0.0 +1377006425; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 78291.46666666666; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377006725; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 103457.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377007025; 1; 2599.999334; 0.0; 0.0; 2097152.0; 120234.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377007325; 1; 2599.999334; 0.0; 0.0; 2097152.0; 137013.06666666668; 0.0; 0.6666666666666666; 0.0; 0.0 +1377007625; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 109050.4; 0.0; 1.6; 0.06666666666666667; 0.4666666666666667 +1377007925; 1; 2599.999334; 15.599996004; 0.6; 2097152.0; 188741.86666666667; 0.06666666666666667; 7.733333333333333; 0.4666666666666667; 0.13333333333333333 +1377008225; 1; 2599.999334; 0.0; 0.0; 2097152.0; 137012.8; 0.0; 0.8; 0.0; 0.0 +1377008525; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 148197.33333333334; 0.0; 11.8; 0.06666666666666667; 0.0 +1377008825; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 96467.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1377009125; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 125828.0; 0.06666666666666667; 0.9333333333333333; 0.13333333333333333; 0.06666666666666667 +1377009425; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 139809.33333333334; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1377009725; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 90874.66666666667; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1377010025; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 120234.93333333333; 0.0; 0.7333333333333333; 1.0; 0.0 +1377010325; 1; 2599.999334; 0.0; 0.0; 2097152.0; 107652.0; 0.0; 1.0; 0.2; 0.0 +1377010625; 1; 2599.999334; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.8; 0.13333333333333333; 0.0 +1377010925; 1; 2599.999334; 0.0; 0.0; 2097152.0; 127226.13333333333; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1377011226; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 82485.86666666667; 0.0; 1.1333333333333333; 0.13333333333333333; 0.4666666666666667 +1377011526; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 137013.06666666668; 0.0; 1.7333333333333334; 0.0; 0.0 +1377011826; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377012126; 1; 2599.999334; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8; 0.0; 0.0 +1377012426; 1; 2599.999334; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377012726; 1; 2599.999334; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.6; 0.06666666666666667; 0.0 +1377013026; 1; 2599.999334; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 1.2; 0.06666666666666667; 0.0 +1377013326; 1; 2599.999334; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8; 0.06666666666666667; 0.0 +1377013626; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.2; 0.0 +1377013926; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 176159.2; 0.0; 6.866666666666666; 0.26666666666666666; 0.13333333333333333 +1377014226; 1; 2599.999334; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1377014526; 1; 2599.999334; 0.0; 0.0; 2097152.0; 145401.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377014825; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 103457.86666666667; 0.0; 1.2; 0.06666666666666667; 0.4666666666666667 +1377015125; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 144003.73333333334; 0.0; 1.8666666666666667; 0.0; 0.0 +1377015425; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 134216.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377015725; 1; 2599.999334; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377016025; 1; 2599.999334; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.8; 0.0; 0.0 +1377016325; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 97865.33333333333; 0.0; 0.6; 0.0; 0.0 +1377016625; 1; 2599.999334; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377016925; 1; 2599.999334; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377017225; 1; 2599.999334; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377017526; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 78291.46666666666; 0.0; 0.8; 0.2; 0.0 +1377017826; 1; 2599.999334; 0.0; 0.0; 2097152.0; 162177.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377018126; 1; 2599.999334; 0.0; 0.0; 2097152.0; 146798.93333333332; 0.0; 0.8; 0.13333333333333333; 0.0 +1377018426; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 107652.26666666666; 0.0; 1.2; 0.0; 0.4666666666666667 +1377018726; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 171964.8; 0.06666666666666667; 1.9333333333333333; 0.0; 0.0 +1377019026; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 110448.53333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1377019326; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 110448.53333333334; 0.06666666666666667; 7.0; 1.4; 0.13333333333333333 +1377019626; 1; 2599.999334; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.8; 0.0; 0.0 +1377019926; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 0.8; 0.0; 0.0 +1377020226; 1; 2599.999334; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.6; 0.0; 0.0 +1377020526; 1; 2599.999334; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377020826; 1; 2599.999334; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1377021126; 1; 2599.999334; 0.0; 0.0; 2097152.0; 71300.8; 0.0; 0.8; 0.0; 0.0 +1377021426; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 135614.93333333332; 0.0; 0.8666666666666667; 0.0; 0.0 +1377021726; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 89476.53333333334; 0.0; 0.8; 0.0; 0.0 +1377022026; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 93670.93333333333; 0.0; 1.3333333333333333; 0.0; 0.4666666666666667 +1377022326; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 152391.46666666667; 0.0; 1.6666666666666667; 0.0; 0.0 +1377022626; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 120234.93333333333; 0.0; 0.8; 0.0; 0.0 +1377022926; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 116041.06666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377023226; 1; 2599.999334; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377023526; 1; 2599.999334; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377023826; 1; 2599.999334; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 1.4666666666666666; 0.0; 0.0 +1377024126; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 123031.73333333334; 0.0; 1.0; 0.0; 0.0 +1377024426; 1; 2599.999334; 0.0; 0.0; 2097152.0; 128624.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377024726; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 121633.06666666667; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377025026; 1; 2599.999334; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.5333333333333333; 0.0; 0.0 +1377025326; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 106254.13333333333; 0.0; 0.7333333333333333; 2.2666666666666666; 0.0 +1377025627; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 83884.0; 0.0; 1.3333333333333333; 0.13333333333333333; 0.4666666666666667 +1377025927; 1; 2599.999334; 12.133330225333331; 0.4666666666666666; 2097152.0; 163576.8; 0.0; 7.6; 0.26666666666666666; 0.13333333333333333 +1377026227; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 142605.6; 0.0; 0.6; 0.06666666666666667; 0.0 +1377026527; 1; 2599.999334; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.6; 0.0; 0.0 +1377026827; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377027127; 1; 2599.999334; 43.33332223333333; 1.6666666666666665; 2097152.0; 510304.5333333333; 161.0; 14.333333333333334; 0.0; 0.2 +1377027427; 1; 2599.999334; 0.0; 0.0; 2097152.0; 223694.4; 0.0; 1.2; 0.0; 0.0 +1377027727; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 222296.8; 31.8; 3.6; 0.0; 0.0 +1377028027; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 109050.4; 0.0; 1.2; 0.0; 0.0 +1377028327; 1; 2599.999334; 0.0; 0.0; 2097152.0; 144003.73333333334; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1377028627; 1; 2599.999334; 0.0; 0.0; 2097152.0; 132818.66666666666; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377028927; 1; 2599.999334; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377029227; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 93670.93333333333; 0.0; 1.6; 0.06666666666666667; 0.4666666666666667 +1377029527; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 201324.0; 0.06666666666666667; 1.7333333333333334; 0.0; 0.0 +1377029827; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 128624.26666666666; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1377030127; 1; 2599.999334; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.8; 0.0; 0.0 +1377030427; 1; 2599.999334; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377030727; 1; 2599.999334; 0.0; 0.0; 2097152.0; 138411.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377031027; 1; 2599.999334; 0.0; 0.0; 2097152.0; 128623.46666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1377031327; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 124428.8; 12.8; 13.4; 0.3333333333333333; 0.13333333333333333 +1377031627; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 145401.06666666668; 0.0; 1.2666666666666666; 0.0; 0.0 +1377031927; 1; 2599.999334; 0.0; 0.0; 2097152.0; 146799.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377032227; 1; 2599.999334; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377032527; 1; 2599.999334; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1377032827; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 99263.46666666666; 0.0; 1.3333333333333333; 0.06666666666666667; 0.4666666666666667 +1377033127; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 160780.53333333333; 0.0; 1.6666666666666667; 0.0; 0.0 +1377033427; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 132817.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377033727; 1; 2599.999334; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1377034027; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 111846.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377034327; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377034627; 1; 2599.999334; 0.0; 0.0; 2097152.0; 131420.53333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377034928; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377035228; 1; 2599.999334; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 1.0666666666666667; 0.13333333333333333; 0.0 +1377035528; 1; 2599.999334; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377035828; 1; 2599.999334; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.8; 0.0; 0.0 +1377036128; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 103457.86666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1377036428; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 162177.86666666667; 0.0; 1.3333333333333333; 0.06666666666666667; 0.4666666666666667 +1377036728; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 233480.8; 0.13333333333333333; 2.066666666666667; 0.0; 0.0 +1377037028; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 141207.46666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377037328; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 132817.86666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1377037628; 1; 2599.999334; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.5333333333333333; 0.0; 0.0 +1377037928; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 120234.66666666667; 0.0; 1.6; 0.13333333333333333; 0.13333333333333333 +1377038229; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 96467.2; 0.0; 7.133333333333334; 0.26666666666666666; 0.13333333333333333 +1377038529; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377038829; 1; 2599.999334; 0.0; 0.0; 2097152.0; 76893.33333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1377039129; 1; 2599.999334; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1377039429; 1; 2599.999334; 50.266653790666666; 1.9333333333333333; 2097152.0; 225093.06666666668; 161.0; 21.333333333333332; 0.06666666666666667; 0.4 +1377039729; 1; 2599.999334; 13.866663114666666; 0.5333333333333333; 2097152.0; 724214.9333333333; 0.0; 2.2666666666666666; 0.0; 0.0 +1377040029; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 320164.0; 31.8; 4.0; 0.06666666666666667; 0.4666666666666667 +1377040329; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 229286.4; 0.06666666666666667; 2.2666666666666666; 0.0; 0.0 +1377040629; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 149595.46666666667; 0.0; 1.8; 0.0; 0.0 +1377040929; 1; 2599.999334; 0.0; 0.0; 2097152.0; 135614.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377041229; 1; 2599.999334; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.8; 0.0; 0.0 +1377041529; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 120234.66666666667; 0.06666666666666667; 0.9333333333333333; 0.0; 0.0 +1377041829; 1; 2599.999334; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.8; 0.0; 0.0 +1377042129; 1; 2599.999334; 0.0; 0.0; 2097152.0; 103457.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1377042429; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 90874.66666666667; 0.0; 1.9333333333333333; 0.0; 0.0 +1377042729; 1; 2599.999334; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377043029; 1; 2599.999334; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.6666666666666666; 0.0; 0.0 +1377043329; 1; 2599.999334; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.6; 0.0; 0.0 +1377043629; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 113244.8; 0.0; 1.5333333333333334; 0.06666666666666667; 0.4666666666666667 +1377043929; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 153790.66666666666; 0.0; 1.9333333333333333; 0.0; 0.0 +1377044229; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 128624.26666666666; 0.0; 0.8; 0.0; 0.0 +1377044529; 1; 2599.999334; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.6666666666666666; 0.0; 0.0 +1377044829; 1; 2599.999334; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 1.0; 0.0; 0.0 +1377045129; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 88078.4; 0.0; 1.4; 0.0; 0.0 +1377045429; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 88078.4; 0.0; 6.933333333333334; 0.2; 0.13333333333333333 +1377045729; 1; 2599.999334; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1377046029; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 92272.8; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377046329; 1; 2599.999334; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.0; 0.0; 0.0 +1377046629; 1; 2599.999334; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.6; 0.0; 0.0 +1377046929; 1; 2599.999334; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1377047230; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 127225.86666666667; 0.0; 1.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1377047529; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 205517.86666666667; 0.0; 2.1333333333333333; 0.0; 0.0 +1377047829; 1; 2599.999334; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377048129; 1; 2599.999334; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8; 0.0; 0.0 +1377048429; 1; 2599.999334; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.6; 0.0; 0.0 +1377048729; 1; 2599.999334; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8; 0.0; 0.0 +1377049029; 1; 2599.999334; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8; 0.0; 0.0 +1377049329; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 71300.8; 0.0; 0.8; 0.0; 0.0 +1377049629; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 128624.26666666666; 0.0; 0.8; 0.0; 0.0 +1377049929; 1; 2599.999334; 0.0; 0.0; 2097152.0; 114642.13333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377050229; 1; 2599.999334; 0.0; 0.0; 2097152.0; 76893.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377050529; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 85282.13333333333; 0.0; 1.0; 0.0; 0.0 +1377050829; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 72698.93333333333; 0.0; 1.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1377051129; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 167770.4; 0.0; 1.4666666666666666; 0.0; 0.0 +1377051429; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377051729; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 95069.06666666667; 0.0; 0.8; 0.0; 0.0 +1377052029; 1; 2599.999334; 12.133330225333331; 0.4666666666666666; 2097152.0; 109050.4; 0.0; 17.933333333333334; 0.26666666666666666; 0.13333333333333333 +1377052329; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 71300.8; 0.0; 0.8; 0.0; 0.0 +1377052629; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 118837.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377052929; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 109050.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377053229; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 135614.13333333333; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377053529; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1377053830; 1; 2599.999334; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377054130; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 83884.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377054430; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 109050.4; 0.0; 1.7333333333333334; 0.06666666666666667; 0.4666666666666667 +1377054730; 1; 2599.999334; 13.866663114666666; 0.5333333333333333; 2097152.0; 146799.2; 0.06666666666666667; 1.6666666666666667; 0.0; 0.0 +1377055030; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 113244.8; 0.0; 0.6666666666666666; 0.0; 0.0 +1377055330; 1; 2599.999334; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1377055630; 1; 2599.999334; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1377055930; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 95069.06666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1377056230; 1; 2599.999334; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.6; 0.0; 0.0 +1377056530; 1; 2599.999334; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377056830; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 106254.13333333333; 0.0; 1.0; 0.0; 0.0 +1377057130; 1; 2599.999334; 0.0; 0.0; 2097152.0; 104855.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377057430; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 104856.0; 0.0; 0.8; 0.0; 0.0 +1377057730; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 88078.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377058030; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 109050.4; 0.06666666666666667; 7.2; 0.3333333333333333; 0.6666666666666666 +1377058330; 1; 2599.999334; 13.866663114666666; 0.5333333333333333; 2097152.0; 176158.4; 0.0; 1.6666666666666667; 0.0; 0.0 +1377058630; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 99263.46666666666; 0.0; 1.0; 0.06666666666666667; 0.0 +1377058930; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 111846.66666666667; 0.0; 0.6; 0.0; 0.0 +1377059230; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 0.6666666666666666; 0.0; 0.0 +1377059530; 1; 2599.999334; 0.0; 0.0; 2097152.0; 146799.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377059830; 1; 2599.999334; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1377060130; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 124429.86666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1377060430; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 114642.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377060730; 1; 2599.999334; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377061030; 1; 2599.999334; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1377061330; 1; 2599.999334; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377061631; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 89476.53333333334; 0.0; 1.2; 0.06666666666666667; 0.4666666666666667 +1377061931; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 150994.4; 0.0; 1.5333333333333334; 0.0; 0.0 +1377062231; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 130021.6; 0.0; 0.8; 0.0; 0.0 +1377062531; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 109049.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1377062831; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 121633.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377063131; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 86680.26666666666; 0.0; 0.5333333333333333; 0.0; 0.0 +1377063431; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 114642.93333333333; 0.0; 0.6; 0.0; 0.0 +1377063731; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 130022.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1377064031; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 92272.8; 0.0; 6.733333333333333; 0.2; 0.13333333333333333 +1377064331; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 155187.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1377064631; 1; 2599.999334; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1377064931; 1; 2599.999334; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1377065231; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 111846.66666666667; 0.0; 1.4666666666666666; 0.06666666666666667; 0.4666666666666667 +1377065531; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 180353.6; 0.26666666666666666; 1.7333333333333334; 0.0; 0.0 +1377065831; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 138411.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377066131; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 110448.53333333334; 0.0; 0.6; 0.0; 0.0 +1377066431; 1; 2599.999334; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.6; 0.0; 0.0 +1377066731; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 96467.2; 0.06666666666666667; 0.8666666666666667; 0.06666666666666667; 0.06666666666666667 +1377067031; 1; 2599.999334; 13.866663114666666; 0.5333333333333333; 2097152.0; 100661.6; 0.0; 1.9333333333333333; 0.0; 0.0 +1377067331; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 50328.8; 0.0; 1.4; 0.0; 0.0 +1377067631; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 78291.46666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1377067931; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 128624.26666666666; 0.0; 0.8; 0.2; 0.0 +1377068231; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 114642.93333333333; 0.0; 0.6; 0.2; 0.0 +1377068531; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 114642.93333333333; 0.0; 1.7333333333333334; 0.06666666666666667; 0.0 +1377068831; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 1.0666666666666667; 0.06666666666666667; 0.4666666666666667 +1377069131; 1; 2599.999334; 13.866663114666666; 0.5333333333333333; 2097152.0; 146798.4; 0.0; 1.7333333333333334; 0.0; 0.0 +1377069432; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 93670.93333333333; 0.0; 0.6; 0.06666666666666667; 0.0 +1377069732; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 113244.8; 0.0; 6.866666666666666; 0.6; 0.13333333333333333 +1377070032; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 92272.8; 0.0; 0.6; 0.0; 0.0 +1377070332; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 100661.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1377070632; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 106254.13333333333; 0.0; 0.6; 0.0; 0.0 +1377070932; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1377071232; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 114642.93333333333; 0.0; 1.2; 0.0; 0.0 +1377071532; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1377071832; 1; 2599.999334; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.6; 0.0; 0.0 +1377072132; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 121633.6; 0.0; 0.6; 0.0; 0.0 +1377072432; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 89476.53333333334; 0.0; 1.2; 0.13333333333333333; 0.4666666666666667 +1377072732; 1; 2599.999334; 13.866663114666666; 0.5333333333333333; 2097152.0; 155188.0; 0.0; 2.2666666666666666; 0.0; 0.0 +1377073032; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 121633.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1377073332; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 117439.2; 0.0; 0.6; 0.06666666666666667; 0.0 +1377073632; 1; 2599.999334; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.6; 0.0; 0.0 +1377073932; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 92272.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1377074232; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 71300.8; 0.0; 0.6; 0.0; 0.0 +1377074532; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 86680.26666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1377074832; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 109050.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1377075132; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1377075432; 1; 2599.999334; 13.866663114666666; 0.5333333333333333; 2097152.0; 79689.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377075732; 1; 2599.999334; 13.866663114666666; 0.5333333333333333; 2097152.0; 71300.8; 0.0; 0.8; 0.0; 0.0 +1377076032; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 109050.13333333333; 0.0; 1.5333333333333334; 0.06666666666666667; 0.4666666666666667 +1377076332; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 176159.2; 0.0; 1.6666666666666667; 0.0; 0.0 +1377076632; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 130022.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1377076932; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 141207.46666666667; 0.0; 6.8; 0.2; 0.13333333333333333 +1377077232; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1377077532; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 90874.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377077832; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 99263.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377078132; 1; 2599.999334; 17.333328893333338; 0.6666666666666667; 2097152.0; 152390.13333333333; 20.2; 2.3333333333333335; 0.0; 0.06666666666666667 +1377078432; 1; 2599.999334; 24.266660450666663; 0.9333333333333332; 2097152.0; 138410.4; 0.0; 4.133333333333334; 0.0; 0.0 +1377078732; 1; 2599.999334; 13.866663114666666; 0.5333333333333333; 2097152.0; 125827.2; 0.2; 2.466666666666667; 0.0; 0.0 +1377079032; 1; 2599.999334; 15.599996004; 0.6; 2097152.0; 76893.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377079332; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 92272.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1377079632; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 96467.2; 0.0; 1.7333333333333334; 0.06666666666666667; 0.4666666666666667 +1377079932; 1; 2599.999334; 12.133330225333331; 0.4666666666666666; 2097152.0; 150993.33333333334; 0.0; 1.4; 0.0; 0.0 +1377080232; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 102059.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1377080532; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377080832; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 92272.8; 0.0; 1.7333333333333334; 0.0; 0.0 +1377081132; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 90874.66666666667; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377081432; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 120235.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377081732; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 111846.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377082032; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 89476.53333333334; 0.0; 1.0; 0.0; 0.0 +1377082332; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 137013.06666666668; 0.0; 1.0666666666666667; 0.0; 0.0 +1377082632; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377082932; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 111846.66666666667; 0.0; 0.8; 0.0; 0.0 +1377083232; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 124429.33333333333; 0.0; 7.533333333333333; 0.26666666666666666; 0.6666666666666666 +1377083532; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 206916.26666666666; 0.0; 1.8; 0.0; 0.0 +1377083832; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 144003.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377084132; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 128624.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377084432; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 117439.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377084732; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 125828.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377085032; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 116041.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1377085332; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 124429.86666666667; 0.0; 1.0; 0.0; 0.0 +1377085632; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 75495.2; 0.0; 1.2; 0.0; 0.0 +1377085932; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 89476.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377086232; 1; 2599.999334; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 1.0; 0.0; 0.0 +1377086532; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 124429.86666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1377086832; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 132818.66666666666; 0.0; 1.6; 0.06666666666666667; 0.4666666666666667 +1377087132; 1; 2599.999334; 12.133330225333331; 0.4666666666666666; 2097152.0; 146799.2; 0.0; 1.6; 0.0; 0.0 +1377087432; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 104856.0; 0.0; 0.8; 0.2; 0.0 +1377087732; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 99263.46666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1377088032; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 82485.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377088332; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377088633; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1377088933; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 103457.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377089233; 1; 2599.999334; 15.599996004; 0.6; 2097152.0; 131419.73333333334; 12.733333333333333; 13.6; 0.4; 0.13333333333333333 +1377089533; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 146799.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1377089833; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 113244.8; 0.0; 0.7333333333333333; 0.0; 0.0 +1377090133; 1; 2599.999334; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8; 0.0; 0.0 +1377090433; 1; 2599.999334; 12.133330225333331; 0.4666666666666666; 2097152.0; 96467.2; 0.0; 1.5333333333333334; 0.06666666666666667; 0.4666666666666667 +1377090733; 1; 2599.999334; 20.799994672000004; 0.8; 2097152.0; 169169.33333333334; 0.06666666666666667; 1.4; 0.06666666666666667; 0.0 +1377091033; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 104856.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1377091333; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 107652.26666666666; 0.0; 0.6; 0.0; 0.0 +1377091633; 1; 2599.999334; 12.133330225333331; 0.4666666666666666; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377091933; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 107652.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377092233; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 124429.86666666667; 0.0; 0.6; 0.0; 0.0 +1377092533; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 116041.06666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377092833; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 93670.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377093133; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 69902.66666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377093433; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377093733; 1; 2599.999334; 62.399984016; 2.4; 2097152.0; 388670.93333333335; 161.06666666666666; 21.533333333333335; 0.13333333333333333; 0.4 +1377094033; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 581607.7333333333; 0.0; 4.2; 0.06666666666666667; 0.5333333333333333 +1377094333; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 320163.4666666667; 31.8; 4.333333333333333; 0.0; 0.0 +1377094633; 1; 2599.999334; 15.599996004; 0.6; 2097152.0; 216703.2; 0.06666666666666667; 8.533333333333333; 0.26666666666666666; 0.13333333333333333 +1377094933; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 142605.6; 0.0; 1.3333333333333333; 0.0; 0.0 +1377095233; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 142604.53333333333; 0.0; 0.8; 0.0; 0.0 +1377095533; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 150993.6; 0.06666666666666667; 11.866666666666667; 0.06666666666666667; 0.06666666666666667 +1377095833; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 156586.13333333333; 0.0; 11.733333333333333; 0.0; 0.0 +1377096133; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 116041.06666666667; 0.0; 1.2666666666666666; 0.0; 0.0 +1377096433; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 107652.26666666666; 0.0; 0.8; 0.0; 0.0 +1377096733; 1; 2599.999334; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377097033; 1; 2599.999334; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1377097333; 1; 2599.999334; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377097633; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 102059.46666666666; 0.0; 1.3333333333333333; 0.06666666666666667; 0.5333333333333333 +1377097933; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 215305.06666666668; 0.0; 1.8; 0.0; 0.0 +1377098234; 1; 2599.999334; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377098534; 1; 2599.999334; 0.0; 0.0; 2097152.0; 124429.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377098834; 1; 2599.999334; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 1.0; 0.0; 0.0 +1377099134; 1; 2599.999334; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.6; 0.0; 0.0 +1377099434; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 76893.33333333333; 0.0; 0.8; 0.13333333333333333; 0.0 +1377099734; 1; 2599.999334; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377100034; 1; 2599.999334; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 1.0; 0.0; 0.0 +1377100334; 1; 2599.999334; 0.0; 0.0; 2097152.0; 141206.66666666666; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377100634; 1; 2599.999334; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.6; 0.06666666666666667; 0.0 +1377100934; 1; 2599.999334; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.6; 3.6666666666666665; 0.0 +1377101234; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 102059.73333333334; 0.0; 1.2666666666666666; 0.2; 0.4666666666666667 +1377101534; 1; 2599.999334; 15.599996004; 0.6; 2097152.0; 156586.13333333333; 0.06666666666666667; 8.2; 0.26666666666666666; 0.13333333333333333 +1377101834; 1; 2599.999334; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1377102134; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 110448.53333333334; 0.0; 0.8; 0.06666666666666667; 0.0 +1377102434; 1; 2599.999334; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.6; 0.0; 0.0 +1377102734; 1; 2599.999334; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1377103034; 1; 2599.999334; 0.0; 0.0; 2097152.0; 134216.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377103334; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 92272.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377103634; 1; 2599.999334; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1377103934; 1; 2599.999334; 0.0; 0.0; 2097152.0; 54523.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377104234; 1; 2599.999334; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377104534; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 88078.4; 0.06666666666666667; 1.1333333333333333; 0.0; 0.0 +1377104834; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 92272.8; 0.0; 1.1333333333333333; 0.13333333333333333; 0.4666666666666667 +1377105134; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 155187.2; 0.0; 0.8; 0.0; 0.0 +1377105434; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 0.8; 0.06666666666666667; 0.0 +1377105735; 1; 2599.999334; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 1.0; 0.0; 0.0 +1377106035; 1; 2599.999334; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377106335; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 54523.2; 0.0; 0.6; 0.06666666666666667; 0.0 +1377106635; 1; 2599.999334; 0.0; 0.0; 2097152.0; 64310.13333333333; 0.0; 0.8; 0.0; 0.0 +1377106935; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 111846.66666666667; 0.0; 0.8; 0.0; 0.0 +1377107235; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 74097.06666666667; 0.0; 6.8; 0.26666666666666666; 0.2 +1377107535; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 111846.66666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1377107835; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1377108135; 1; 2599.999334; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1377108435; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 89476.26666666666; 0.0; 1.4; 0.06666666666666667; 0.4666666666666667 +1377108735; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 187342.66666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377109035; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 96467.2; 0.0; 0.6666666666666666; 0.0; 0.0 +1377109335; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 92272.8; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1377109635; 1; 2599.999334; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377109935; 1; 2599.999334; 0.0; 0.0; 2097152.0; 131420.53333333333; 0.0; 1.0; 0.06666666666666667; 0.0 +1377110235; 1; 2599.999334; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377110535; 1; 2599.999334; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.8; 0.0; 0.0 +1377110835; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 135614.93333333332; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377111135; 1; 2599.999334; 0.0; 0.0; 2097152.0; 132817.86666666667; 0.0; 1.0; 0.0; 0.0 +1377111435; 1; 2599.999334; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.6; 0.0; 0.0 +1377111735; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 92272.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377112036; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 75495.2; 0.0; 2.3333333333333335; 0.13333333333333333; 0.4666666666666667 +1377112336; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 125828.0; 0.0; 1.8; 0.0; 0.0 +1377112636; 1; 2599.999334; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377112935; 1; 2599.999334; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 1.5333333333333334; 0.06666666666666667; 0.0 +1377113235; 1; 2599.999334; 0.0; 0.0; 2097152.0; 68504.53333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1377113535; 1; 2599.999334; 46.799988012; 1.8; 2097152.0; 466963.73333333334; 161.2; 20.266666666666666; 0.2; 0.3333333333333333 +1377113835; 1; 2599.999334; 0.0; 0.0; 2097152.0; 255851.2; 0.0; 1.3333333333333333; 0.0; 0.0 +1377114135; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 167771.46666666667; 31.8; 3.6666666666666665; 0.0; 0.0 +1377114435; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 146799.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1377114735; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 134215.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377115035; 1; 2599.999334; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377115335; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 47532.53333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1377115635; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 74097.06666666667; 0.0; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1377115935; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 146799.2; 0.0; 1.0; 0.0; 0.0 +1377116235; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 135614.13333333333; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377116535; 1; 2599.999334; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377116835; 1; 2599.999334; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 1.2; 0.0; 0.0 +1377117135; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377117435; 1; 2599.999334; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377117735; 1; 2599.999334; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 1.0; 0.0; 0.0 +1377118036; 1; 2599.999334; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1377118336; 1; 2599.999334; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.8; 0.0; 0.0 +1377118636; 1; 2599.999334; 0.0; 0.0; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1377118936; 1; 2599.999334; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377119236; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 83884.0; 0.0; 9.066666666666666; 0.4; 0.6 +1377119536; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 138411.2; 0.0; 1.2666666666666666; 0.0; 0.0 +1377119836; 1; 2599.999334; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1377120136; 1; 2599.999334; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377120436; 1; 2599.999334; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.2; 0.0 +1377120736; 1; 2599.999334; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1377121036; 1; 2599.999334; 0.0; 0.0; 2097152.0; 152392.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377121336; 1; 2599.999334; 0.0; 0.0; 2097152.0; 111846.4; 0.0; 1.0; 0.0; 0.0 +1377121636; 1; 2599.999334; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377121936; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 92272.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377122236; 1; 2599.999334; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 1.0; 0.0; 0.0 +1377122537; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 109049.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377122837; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 111846.66666666667; 0.0; 2.1333333333333333; 0.2; 0.4666666666666667 +1377123137; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 185945.33333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377123437; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377123737; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 90874.66666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1377124037; 1; 2599.999334; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377124337; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 99263.46666666666; 0.06666666666666667; 1.6; 0.06666666666666667; 0.13333333333333333 +1377124637; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 144002.93333333332; 0.0; 0.8; 0.0; 0.0 +1377124937; 1; 2599.999334; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1377125237; 1; 2599.999334; 20.799994672000004; 0.8; 2097152.0; 135614.13333333333; 169.73333333333332; 186.0; 0.2; 0.13333333333333333 +1377125537; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 260044.53333333333; 0.0; 0.8; 0.0; 0.0 +1377125837; 1; 2599.999334; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377126137; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 81087.73333333334; 0.7333333333333333; 1.2; 0.0; 0.0 +1377126437; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 93670.93333333333; 0.0; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1377126737; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 176158.93333333332; 0.0; 0.8666666666666667; 0.0; 0.0 +1377127037; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 102059.73333333334; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377127337; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 0.8; 0.0; 0.0 +1377127637; 1; 2599.999334; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377127937; 1; 2599.999334; 0.0; 0.0; 2097152.0; 75495.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377128237; 1; 2599.999334; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377128537; 1; 2599.999334; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377128837; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 106254.13333333333; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1377129137; 1; 2599.999334; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1377129437; 1; 2599.999334; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377129737; 1; 2599.999334; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377130037; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 97864.8; 0.0; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1377130337; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 215304.53333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1377130637; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 167770.93333333332; 0.0; 1.1333333333333333; 0.0; 0.0 +1377130937; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 92272.8; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377131237; 1; 2599.999334; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8; 0.0; 0.0 +1377131537; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 83884.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1377131837; 1; 2599.999334; 0.0; 0.0; 2097152.0; 141207.46666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377132138; 1; 2599.999334; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377132438; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 113244.8; 0.0; 6.8; 0.2; 0.13333333333333333 +1377132738; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 111846.66666666667; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377133038; 1; 2599.999334; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377133338; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 99263.46666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1377133638; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 90874.66666666667; 0.0; 1.7333333333333334; 0.06666666666666667; 0.4666666666666667 +1377133938; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 135614.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377134238; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 76893.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377134538; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 107652.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377134838; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 97865.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377135138; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 78291.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377135438; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 68504.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1377135738; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 58717.6; 0.0; 1.0; 0.0; 0.0 +1377136038; 1; 2599.999334; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 1.0; 0.0; 0.0 +1377136338; 1; 2599.999334; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1377136638; 1; 2599.999334; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377136938; 1; 2599.999334; 0.0; 0.0; 2097152.0; 127225.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377137238; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 109050.4; 0.0; 2.4; 0.06666666666666667; 0.5333333333333333 +1377137538; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 170565.86666666667; 0.06666666666666667; 1.1333333333333333; 0.0; 0.0 +1377137838; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 111846.66666666667; 0.0; 0.8; 0.0; 0.0 +1377138138; 1; 2599.999334; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1377138438; 1; 2599.999334; 0.0; 0.0; 2097152.0; 131420.53333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377138738; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 124429.86666666667; 0.06666666666666667; 7.133333333333334; 0.26666666666666666; 0.13333333333333333 +1377139038; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 95069.06666666667; 0.0; 0.8; 0.0; 0.0 +1377139338; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 83884.0; 0.0; 11.8; 0.0; 0.0 +1377139638; 1; 2599.999334; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377139938; 1; 2599.999334; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.8; 0.0; 0.0 +1377140238; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 83884.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1377140538; 1; 2599.999334; 67.59998268400001; 2.6; 2097152.0; 669688.5333333333; 161.06666666666666; 22.0; 0.06666666666666667; 0.4 +1377140838; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 408244.26666666666; 0.0; 3.533333333333333; 0.0; 0.4666666666666667 +1377141138; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 258645.86666666667; 31.8; 3.533333333333333; 0.0; 0.0 +1377141438; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 149596.0; 0.0; 2.2666666666666666; 0.0; 0.0 +1377141738; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 160781.06666666668; 0.0; 1.9333333333333333; 0.0; 0.0 +1377142038; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 145400.8; 0.0; 0.8; 0.0; 0.0 +1377142338; 1; 2599.999334; 0.0; 0.0; 2097152.0; 148197.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377142638; 1; 2599.999334; 0.0; 0.0; 2097152.0; 128624.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377142938; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 144002.93333333332; 0.0; 0.8666666666666667; 0.0; 0.0 +1377143238; 1; 2599.999334; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1377143538; 1; 2599.999334; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377143838; 1; 2599.999334; 0.0; 0.0; 2097152.0; 141207.46666666667; 0.0; 0.8; 0.0; 0.0 +1377144138; 1; 2599.999334; 0.0; 0.0; 2097152.0; 134216.0; 0.0; 0.8; 0.0; 0.0 +1377144438; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 152391.73333333334; 0.0; 8.4; 0.26666666666666666; 0.6 +1377144738; 1; 2599.999334; 12.133330225333331; 0.4666666666666666; 2097152.0; 125828.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377145039; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377145339; 1; 2599.999334; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377145638; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 90874.66666666667; 0.0; 1.0; 0.0; 0.0 +1377145938; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 125828.0; 0.0; 0.8; 0.0; 0.0 +1377146238; 1; 2599.999334; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377146538; 1; 2599.999334; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377146838; 1; 2599.999334; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.8; 0.0; 0.0 +1377147138; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 86680.26666666666; 0.0; 1.0; 0.0; 0.0 +1377147438; 1; 2599.999334; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1377147738; 1; 2599.999334; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8; 0.0; 0.0 +1377148038; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 96467.2; 0.0; 2.4; 0.0; 0.5333333333333333 +1377148338; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 173362.93333333332; 0.06666666666666667; 0.7333333333333333; 0.0; 0.0 +1377148638; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 124429.86666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1377148938; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 106254.13333333333; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377149238; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 83884.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377149538; 1; 2599.999334; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.8; 0.0; 0.0 +1377149839; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377150139; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377150439; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 109050.4; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377150739; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 110448.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377151039; 1; 2599.999334; 12.133330225333331; 0.4666666666666666; 2097152.0; 173363.46666666667; 12.8; 13.4; 0.26666666666666666; 0.13333333333333333 +1377151339; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 142604.26666666666; 0.0; 1.4; 0.0; 0.0 +1377151639; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 107652.0; 0.0; 2.2; 0.0; 0.4666666666666667 +1377151939; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 209712.26666666666; 0.0; 0.6; 0.0; 0.0 +1377152239; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 109050.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377152539; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 130022.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377152839; 1; 2599.999334; 0.0; 0.0; 2097152.0; 117438.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1377153139; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 113244.8; 0.0; 1.0666666666666667; 0.06666666666666667; 0.13333333333333333 +1377153439; 1; 2599.999334; 15.599996004; 0.6; 2097152.0; 164973.86666666667; 0.0; 1.7333333333333334; 0.0; 0.0 +1377153739; 1; 2599.999334; 12.133330225333331; 0.4666666666666666; 2097152.0; 121633.6; 0.0; 1.3333333333333333; 0.0; 0.0 +1377154039; 1; 2599.999334; 15.599996004; 0.6; 2097152.0; 104856.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1377154339; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 116041.06666666667; 0.0; 0.5333333333333333; 0.0; 0.0 +1377154639; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 83884.0; 0.0; 0.6; 0.0; 0.0 +1377154939; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 109050.4; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377155239; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 110448.53333333334; 0.0; 2.3333333333333335; 0.0; 0.4666666666666667 +1377155539; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 132817.86666666667; 0.06666666666666667; 1.0; 0.13333333333333333; 0.0 +1377155839; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 116041.06666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1377156139; 1; 2599.999334; 0.0; 0.0; 2097152.0; 134216.8; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1377156439; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 90874.66666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377156739; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377157039; 1; 2599.999334; 13.866663114666666; 0.5333333333333333; 2097152.0; 96467.2; 0.0; 0.6666666666666666; 0.0; 0.0 +1377157339; 1; 2599.999334; 13.866663114666666; 0.5333333333333333; 2097152.0; 128624.26666666666; 0.0; 8.2; 0.26666666666666666; 0.13333333333333333 +1377157639; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 130022.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1377157939; 1; 2599.999334; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.6; 0.13333333333333333; 0.0 +1377158239; 1; 2599.999334; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 1.0; 0.0; 0.0 +1377158539; 1; 2599.999334; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 0.6; 0.06666666666666667; 0.0 +1377158839; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 100661.6; 0.06666666666666667; 2.466666666666667; 0.0; 0.4666666666666667 +1377159140; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 178955.46666666667; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1377159440; 1; 2599.999334; 0.0; 0.0; 2097152.0; 131420.53333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377159740; 1; 2599.999334; 0.0; 0.0; 2097152.0; 131420.53333333333; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1377160040; 1; 2599.999334; 0.0; 0.0; 2097152.0; 127226.13333333333; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1377160340; 1; 2599.999334; 0.0; 0.0; 2097152.0; 131420.53333333333; 0.0; 0.6; 0.0; 0.0 +1377160640; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377160940; 1; 2599.999334; 15.599996004; 0.6; 2097152.0; 111846.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377161240; 1; 2599.999334; 0.0; 0.0; 2097152.0; 134216.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377161540; 1; 2599.999334; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.6; 0.0; 0.0 +1377161840; 1; 2599.999334; 0.0; 0.0; 2097152.0; 138411.2; 0.0; 0.6; 0.0; 0.0 +1377162140; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 121633.6; 0.0; 0.6; 0.0; 0.0 +1377162439; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 107652.26666666666; 0.2; 2.6666666666666665; 0.0; 0.4666666666666667 +1377162739; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 162177.86666666667; 0.0; 0.6; 0.0; 0.0 +1377163039; 1; 2599.999334; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.6; 0.0; 0.0 +1377163339; 1; 2599.999334; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.6; 0.0; 0.0 +1377163639; 1; 2599.999334; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 1.0; 0.0; 0.0 +1377163939; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 97865.33333333333; 0.0; 7.0; 0.2; 0.13333333333333333 +1377164239; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 81087.73333333334; 0.0; 0.5333333333333333; 0.0; 0.0 +1377164539; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 71300.8; 0.0; 0.7333333333333333; 0.0; 0.0 +1377164840; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1377165140; 1; 2599.999334; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1377165440; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 125828.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377165740; 1; 2599.999334; 15.599996004; 0.6; 2097152.0; 81087.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377166040; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 113244.53333333334; 0.0; 2.066666666666667; 0.06666666666666667; 0.4666666666666667 +1377166340; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 184546.66666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377166640; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 86680.26666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1377166940; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377167240; 1; 2599.999334; 0.0; 0.0; 2097152.0; 132818.66666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377167540; 1; 2599.999334; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377167840; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 118837.33333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1377168140; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 86680.26666666666; 0.0; 0.8666666666666667; 4.733333333333333; 0.0 +1377168440; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 83884.0; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377168740; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 90874.66666666667; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377169040; 1; 2599.999334; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377169340; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 96467.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1377169640; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 2.3333333333333335; 0.13333333333333333; 0.4666666666666667 +1377169940; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 150993.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377170240; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 130021.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377170540; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 113244.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1377170840; 1; 2599.999334; 0.0; 0.0; 2097152.0; 72698.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377171140; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 92272.8; 0.0; 6.8; 0.26666666666666666; 0.13333333333333333 +1377171440; 1; 2599.999334; 0.0; 0.0; 2097152.0; 69902.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377171740; 1; 2599.999334; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1377172041; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 88078.4; 0.0; 1.3333333333333333; 0.0; 0.0 +1377172341; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 125828.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377172641; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377172941; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 102059.73333333334; 0.0; 1.2666666666666666; 0.0; 0.0 +1377173241; 1; 2599.999334; 20.799994672000004; 0.8; 2097152.0; 83884.0; 0.06666666666666667; 2.533333333333333; 0.06666666666666667; 0.4666666666666667 +1377173541; 1; 2599.999334; 19.066661782666664; 0.7333333333333333; 2097152.0; 159381.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1377173841; 1; 2599.999334; 20.799994672000004; 0.8; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377174141; 1; 2599.999334; 12.133330225333331; 0.4666666666666666; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377174441; 1; 2599.999334; 15.599996004; 0.6; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377174741; 1; 2599.999334; 12.133330225333331; 0.4666666666666666; 2097152.0; 100661.6; 0.0; 1.1333333333333333; 0.0; 0.0 +1377175041; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 83884.0; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377175341; 1; 2599.999334; 19.066661782666664; 0.7333333333333333; 2097152.0; 75495.2; 0.0; 1.0; 0.0; 0.0 +1377175641; 1; 2599.999334; 17.333328893333338; 0.6666666666666667; 2097152.0; 114642.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377175941; 1; 2599.999334; 15.599996004; 0.6; 2097152.0; 149594.66666666666; 0.0; 1.0; 0.0; 0.0 +1377176241; 1; 2599.999334; 17.333328893333338; 0.6666666666666667; 2097152.0; 121633.6; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1377176541; 1; 2599.999334; 13.866663114666666; 0.5333333333333333; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377176841; 1; 2599.999334; 13.866663114666666; 0.5333333333333333; 2097152.0; 92272.8; 0.06666666666666667; 2.466666666666667; 0.06666666666666667; 0.4666666666666667 +1377177141; 1; 2599.999334; 20.799994672000004; 0.8; 2097152.0; 142604.8; 0.0; 7.0; 0.26666666666666666; 0.2 +1377177441; 1; 2599.999334; 13.866663114666666; 0.5333333333333333; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1377177741; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377178041; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377178341; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 83884.0; 0.0; 0.8; 0.0; 0.0 +1377178641; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377178941; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 93670.93333333333; 0.0; 1.2666666666666666; 0.0; 0.0 +1377179241; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377179541; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 79689.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1377179841; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 117439.2; 0.0; 0.6; 0.0; 0.0 +1377180141; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 113244.8; 0.0; 0.7333333333333333; 0.0; 0.0 +1377180441; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 142604.8; 0.0; 2.533333333333333; 0.0; 0.4666666666666667 +1377180741; 1; 2599.999334; 15.599996004; 0.6; 2097152.0; 134216.0; 0.0; 0.8; 0.0; 0.0 +1377181041; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 125828.0; 0.0; 0.8; 0.0; 0.0 +1377181341; 1; 2599.999334; 1.7333328893333333; 0.06666666666666667; 2097152.0; 134216.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377181641; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 121633.6; 0.0; 1.1333333333333333; 0.0; 0.0 +1377181941; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 99263.46666666666; 0.0; 1.2666666666666666; 0.06666666666666667; 0.13333333333333333 +1377182241; 1; 2599.999334; 12.133330225333331; 0.4666666666666666; 2097152.0; 142604.0; 0.0; 0.8; 0.0; 0.0 +1377182542; 1; 2599.999334; 6.933331557333333; 0.26666666666666666; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377182842; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 85282.13333333333; 0.0; 11.733333333333333; 0.0; 0.0 +1377183142; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 121633.6; 0.0; 1.1333333333333333; 0.0; 0.0 +1377183442; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 81087.73333333334; 0.0; 0.8; 0.0; 0.0 +1377183742; 1; 2599.999334; 13.866663114666666; 0.5333333333333333; 2097152.0; 130022.4; 0.0; 6.933333333333334; 0.2; 0.13333333333333333 +1377184042; 1; 2599.999334; 5.199998668000001; 0.2; 2097152.0; 110448.53333333334; 0.06666666666666667; 2.4; 0.06666666666666667; 0.5333333333333333 +1377184342; 1; 2599.999334; 12.133330225333331; 0.4666666666666666; 2097152.0; 155187.2; 0.0; 0.7333333333333333; 0.2; 0.0 +1377184642; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377184942; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 121633.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1377185242; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377185542; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1377185842; 1; 2599.999334; 12.133330225333331; 0.4666666666666666; 2097152.0; 100661.6; 0.0; 1.0; 0.0; 0.0 +1377186142; 1; 2599.999334; 13.866663114666666; 0.5333333333333333; 2097152.0; 92272.8; 0.0; 0.8; 0.06666666666666667; 0.0 +1377186442; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 110448.53333333334; 0.0; 1.0; 0.0; 0.0 +1377186742; 1; 2599.999334; 19.066661782666664; 0.7333333333333333; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377187042; 1; 2599.999334; 15.599996004; 0.6; 2097152.0; 109050.4; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1377187342; 1; 2599.999334; 17.333328893333338; 0.6666666666666667; 2097152.0; 103457.86666666667; 0.0; 1.0; 0.0; 0.0 +1377187642; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 88078.4; 0.13333333333333333; 2.4; 0.06666666666666667; 0.4666666666666667 +1377187942; 1; 2599.999334; 19.066661782666664; 0.7333333333333333; 2097152.0; 163576.0; 0.0; 1.0; 0.0; 0.0 +1377188242; 1; 2599.999334; 12.133330225333331; 0.4666666666666666; 2097152.0; 88078.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377188542; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 97865.33333333333; 0.0; 1.0; 0.0; 0.0 +1377188842; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 121633.6; 0.0; 0.8; 0.0; 0.0 +1377189142; 1; 2599.999334; 12.133330225333331; 0.4666666666666666; 2097152.0; 96467.2; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1377189442; 1; 2599.999334; 12.133330225333331; 0.4666666666666666; 2097152.0; 100661.6; 0.0; 6.866666666666666; 0.2; 0.13333333333333333 +1377189742; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 134216.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377190042; 1; 2599.999334; 17.333328893333338; 0.6666666666666667; 2097152.0; 121633.6; 0.0; 1.1333333333333333; 0.0; 0.0 +1377190342; 1; 2599.999334; 19.066661782666664; 0.7333333333333333; 2097152.0; 109050.4; 0.0; 1.0; 0.0; 0.0 +1377190643; 1; 2599.999334; 12.133330225333331; 0.4666666666666666; 2097152.0; 86680.26666666666; 0.0; 0.8; 0.13333333333333333; 0.0 +1377190943; 1; 2599.999334; 15.599996004; 0.6; 2097152.0; 83884.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1377191243; 1; 2599.999334; 13.866663114666666; 0.5333333333333333; 2097152.0; 106254.13333333333; 0.06666666666666667; 2.1333333333333333; 0.13333333333333333; 0.4666666666666667 +1377191543; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 142605.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1377191843; 1; 2599.999334; 13.866663114666666; 0.5333333333333333; 2097152.0; 124429.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377192143; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 88078.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377192443; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 100661.6; 0.0; 0.8; 0.0; 0.0 +1377192743; 1; 2599.999334; 13.866663114666666; 0.5333333333333333; 2097152.0; 121633.6; 0.0; 1.1333333333333333; 0.0; 0.0 +1377193043; 1; 2599.999297; 27.999992429230765; 1.0769230769230769; 2097152.0; 77431.07692307692; 0.0; 0.8333333333333334; 0.08333333333333333; 0.0 +1377193343; 1; 2599.999297; 17.33332864666667; 0.6666666666666667; 2097152.0; 72698.93333333333; 0.0; 0.8; 0.06666666666666667; 0.0 +1377193643; 1; 2599.999297; 34.66665729333334; 1.3333333333333335; 2097152.0; 100661.06666666667; 161.13333333333333; 20.6; 0.06666666666666667; 0.4 +1377193943; 1; 2599.999297; 55.46665166933333; 2.1333333333333333; 2097152.0; 746584.8; 0.0; 3.6666666666666665; 0.0; 0.0 +1377194243; 1; 2599.999297; 6.933331458666666; 0.26666666666666666; 2097152.0; 327154.13333333336; 31.8; 3.4; 0.06666666666666667; 0.0 +1377194543; 1; 2599.999297; 6.933331458666666; 0.26666666666666666; 2097152.0; 181752.53333333333; 0.0; 2.466666666666667; 0.0; 0.0 +1377194843; 1; 2599.999297; 20.799994376; 0.8; 2097152.0; 121633.6; 0.0; 9.2; 0.26666666666666666; 0.6666666666666666 +1377195143; 1; 2599.999297; 8.666664323333334; 0.33333333333333337; 2097152.0; 181751.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377195443; 1; 2599.999297; 8.666664323333334; 0.33333333333333337; 2097152.0; 103457.86666666667; 0.0; 1.0; 0.0; 0.0 +1377195743; 1; 2599.999297; 8.666664323333334; 0.33333333333333337; 2097152.0; 123031.73333333334; 0.0; 0.8; 0.0; 0.0 +1377196043; 1; 2599.999297; 5.199998594; 0.2; 2097152.0; 97865.33333333333; 0.0; 0.8; 0.0; 0.0 +1377196343; 1; 2599.999297; 8.666664323333334; 0.33333333333333337; 2097152.0; 116041.06666666667; 0.0; 0.8; 0.0; 0.0 +1377196643; 1; 2599.999297; 10.399997188; 0.4; 2097152.0; 86680.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377196943; 1; 2599.999297; 15.599995781999999; 0.6; 2097152.0; 100661.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1377197243; 1; 2599.999297; 1.7333328646666666; 0.06666666666666667; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377197543; 1; 2599.999297; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.8; 0.0; 0.0 +1377197843; 1; 2599.999297; 1.7333328646666666; 0.06666666666666667; 2097152.0; 89476.53333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1377198143; 1; 2599.999297; 3.466665729333333; 0.13333333333333333; 2097152.0; 111845.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377198443; 1; 2599.999297; 3.466665729333333; 0.13333333333333333; 2097152.0; 103457.33333333333; 0.06666666666666667; 2.6; 0.06666666666666667; 0.5333333333333333 +1377198743; 1; 2599.999297; 10.399997188; 0.4; 2097152.0; 157982.93333333332; 0.0; 0.8666666666666667; 0.0; 0.0 +1377199043; 1; 2599.999297; 6.933331458666666; 0.26666666666666666; 2097152.0; 104856.0; 0.0; 0.8; 0.0; 0.0 +1377199343; 1; 2599.999297; 1.7333328646666666; 0.06666666666666667; 2097152.0; 106254.13333333333; 0.0; 0.8; 0.0; 0.0 +1377199643; 1; 2599.999297; 6.933331458666666; 0.26666666666666666; 2097152.0; 107651.46666666666; 0.0; 0.9333333333333333; 0.2; 0.0 +1377199943; 1; 2599.999297; 45.06665448133334; 1.7333333333333334; 2097152.0; 392864.0; 161.06666666666666; 14.4; 0.06666666666666667; 0.2 +1377200243; 1; 2599.999297; 10.399997188; 0.4; 2097152.0; 290802.6666666667; 0.0; 1.3333333333333333; 0.0; 0.0 +1377200543; 1; 2599.999297; 10.399997188; 0.4; 2097152.0; 243268.0; 31.8; 4.466666666666667; 0.0; 0.0 +1377200843; 1; 2599.999297; 12.133330052666665; 0.4666666666666666; 2097152.0; 171965.06666666668; 0.0; 7.266666666666667; 0.2; 0.13333333333333333 +1377201143; 1; 2599.999297; 3.466665729333333; 0.13333333333333333; 2097152.0; 102059.73333333334; 0.0; 1.0666666666666667; 0.13333333333333333; 0.0 +1377201443; 1; 2599.999297; 5.199998594; 0.2; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377201743; 1; 2599.999297; 3.466665729333333; 0.13333333333333333; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377202043; 1; 2599.999297; 6.933331458666666; 0.26666666666666666; 2097152.0; 96467.2; 0.0; 3.1333333333333333; 0.0; 0.4666666666666667 +1377202343; 1; 2599.999297; 10.399997188; 0.4; 2097152.0; 160779.73333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1377202643; 1; 2599.999297; 3.466665729333333; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 1.0; 0.0; 0.0 +1377202943; 1; 2599.999297; 8.666664323333334; 0.33333333333333337; 2097152.0; 123031.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377203243; 1; 2599.999306; 18.571423614285717; 0.7142857142857143; 2097152.0; 101860.0; 0.0; 0.9230769230769231; 1.9230769230769231; 0.0 +1377203543; 1; 2599.999306; 3.4666657413333337; 0.13333333333333333; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377203844; 1; 2599.999306; 1.7333328706666669; 0.06666666666666667; 2097152.0; 138410.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1377204144; 1; 2599.999306; 0.0; 0.0; 2097152.0; 137012.26666666666; 0.0; 1.0; 0.0; 0.0 +1377204444; 1; 2599.999306; 3.4666657413333337; 0.13333333333333333; 2097152.0; 111846.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377204744; 1; 2599.999306; 1.7333328706666669; 0.06666666666666667; 2097152.0; 86680.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377205044; 1; 2599.999306; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377205344; 1; 2599.999306; 3.4666657413333337; 0.13333333333333333; 2097152.0; 144002.93333333332; 0.0; 1.1333333333333333; 2.466666666666667; 0.0 +1377205644; 1; 2599.999306; 5.199998612000001; 0.2; 2097152.0; 117439.2; 0.0; 2.4; 0.06666666666666667; 0.4666666666666667 +1377205944; 1; 2599.999306; 3.4666657413333337; 0.13333333333333333; 2097152.0; 170566.66666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377206244; 1; 2599.999306; 3.4666657413333337; 0.13333333333333333; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.2; 0.0 +1377206844; 1; 2599.999306; 8.666664353333335; 0.33333333333333337; 2097152.0; 100661.6; 0.0; 7.066666666666666; 0.26666666666666666; 0.13333333333333333 +1377207144; 1; 2599.999306; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377207444; 1; 2599.999306; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377208044; 1; 2599.999306; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1377208344; 1; 2599.999306; 3.4666657413333337; 0.13333333333333333; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377208644; 1; 2599.999306; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377208944; 1; 2599.999306; 8.666664353333335; 0.33333333333333337; 2097152.0; 82485.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377209245; 1; 2599.999306; 5.199998612000001; 0.2; 2097152.0; 134216.0; 0.06666666666666667; 2.6666666666666665; 0.06666666666666667; 0.4666666666666667 +1377209845; 1; 2599.999306; 1.7333328706666669; 0.06666666666666667; 2097152.0; 123030.93333333333; 0.0; 1.0; 0.0; 0.0 +1377210145; 1; 2599.999601; 25.99999601; 1.0; 2097152.0; 102059.73333333334; 0.0; 0.8571428571428571; 0.0; 0.0 +1377210445; 1; 2599.999601; 5.199999202; 0.2; 2097152.0; 120235.46666666666; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377210745; 1; 2599.999601; 13.866664538666667; 0.5333333333333333; 2097152.0; 130021.6; 0.06666666666666667; 1.7333333333333334; 0.06666666666666667; 0.13333333333333333 +1377211045; 1; 2599.999601; 5.199999202; 0.2; 2097152.0; 106254.13333333333; 0.0; 1.0; 0.0; 0.0 +1377211345; 1; 2599.999601; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 1.0; 0.0; 0.0 +1377211645; 1; 2599.999601; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377211945; 1; 2599.999601; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377212245; 1; 2599.999601; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1377212545; 1; 2599.999601; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377212845; 1; 2599.999601; 8.666665336666668; 0.33333333333333337; 2097152.0; 83884.0; 0.0; 2.4; 0.06666666666666667; 0.4666666666666667 +1377213145; 1; 2599.999601; 15.599997605999999; 0.6; 2097152.0; 177557.33333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377213445; 1; 2599.999601; 17.333330673333336; 0.6666666666666667; 2097152.0; 135614.93333333332; 12.733333333333333; 13.266666666666667; 0.3333333333333333; 0.13333333333333333 +1377213745; 1; 2599.999601; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 1.2666666666666666; 0.0; 0.0 +1377214045; 1; 2599.999601; 3.4666661346666667; 0.13333333333333333; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377214345; 1; 2599.999601; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377214645; 1; 2599.999601; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377214945; 1; 2599.999601; 3.4666661346666667; 0.13333333333333333; 2097152.0; 113244.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1377215245; 1; 2599.999601; 0.0; 0.0; 2097152.0; 134216.0; 0.0; 1.2; 0.0; 0.0 +1377215545; 1; 2599.999601; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1377215845; 1; 2599.999601; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377216145; 1; 2599.999601; 5.199999202; 0.2; 2097152.0; 130022.4; 0.0; 1.0; 0.0; 0.0 +1377216445; 1; 2599.999601; 10.399998404; 0.4; 2097152.0; 99263.46666666666; 0.0; 2.466666666666667; 0.06666666666666667; 0.4666666666666667 +1377216745; 1; 2599.999601; 15.599997605999999; 0.6; 2097152.0; 114642.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377217045; 1; 2599.999601; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1377217345; 1; 2599.999601; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377217645; 1; 2599.999601; 1.7333330673333334; 0.06666666666666667; 2097152.0; 131419.73333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1377217945; 1; 2599.999601; 1.7333330673333334; 0.06666666666666667; 2097152.0; 109049.6; 0.06666666666666667; 1.4666666666666666; 0.0; 0.0 +1377218245; 1; 2599.999601; 1.7333330673333334; 0.06666666666666667; 2097152.0; 99263.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377218545; 1; 2599.999601; 0.0; 0.0; 2097152.0; 134216.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377218845; 1; 2599.999601; 12.133331471333332; 0.4666666666666666; 2097152.0; 117438.4; 0.0; 1.0; 0.0; 0.0 +1377219145; 1; 2599.999601; 0.0; 0.0; 2097152.0; 142604.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1377219445; 1; 2599.999601; 1.7333330673333334; 0.06666666666666667; 2097152.0; 120235.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377219745; 1; 2599.999601; 6.9333322693333335; 0.26666666666666666; 2097152.0; 120235.46666666666; 0.0; 7.066666666666666; 0.2; 0.13333333333333333 +1377220045; 1; 2599.999601; 5.199999202; 0.2; 2097152.0; 118837.33333333333; 0.13333333333333333; 2.4; 0.0; 0.5333333333333333 +1377220345; 1; 2599.999601; 6.9333322693333335; 0.26666666666666666; 2097152.0; 163576.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1377220646; 1; 2599.999601; 10.399998404; 0.4; 2097152.0; 85282.13333333333; 0.06666666666666667; 1.7333333333333334; 0.0; 0.0 +1377220946; 1; 2599.999601; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1377221246; 1; 2599.999601; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1377221546; 1; 2599.999601; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377221846; 1; 2599.999601; 5.199999202; 0.2; 2097152.0; 86680.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1377222146; 1; 2599.999601; 1.7333330673333334; 0.06666666666666667; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377222446; 1; 2599.999601; 3.4666661346666667; 0.13333333333333333; 2097152.0; 90874.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377222746; 1; 2599.999601; 3.4666661346666667; 0.13333333333333333; 2097152.0; 111846.66666666667; 0.0; 1.0; 0.06666666666666667; 0.0 +1377223046; 1; 2599.999601; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377223346; 1; 2599.999601; 3.4666661346666667; 0.13333333333333333; 2097152.0; 113244.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1377223646; 1; 2599.999601; 3.4666661346666667; 0.13333333333333333; 2097152.0; 107652.26666666666; 0.0; 1.8666666666666667; 0.0; 0.4666666666666667 +1377223946; 1; 2599.999601; 5.199999202; 0.2; 2097152.0; 141206.66666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377224246; 1; 2599.999601; 0.0; 0.0; 2097152.0; 128624.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377224546; 1; 2599.999601; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1377224846; 1; 2599.999601; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377225146; 1; 2599.999601; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377225446; 1; 2599.999601; 1.7333330673333334; 0.06666666666666667; 2097152.0; 123031.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377225746; 1; 2599.999601; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377226046; 1; 2599.999601; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1377226346; 1; 2599.999601; 6.9333322693333335; 0.26666666666666666; 2097152.0; 93670.93333333333; 0.0; 6.866666666666666; 0.2; 0.13333333333333333 +1377226646; 1; 2599.999601; 3.4666661346666667; 0.13333333333333333; 2097152.0; 123031.73333333334; 0.0; 11.733333333333333; 0.0; 0.0 +1377226946; 1; 2599.999601; 0.0; 0.0; 2097152.0; 145401.86666666667; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377227246; 1; 2599.999601; 5.199999202; 0.2; 2097152.0; 107652.0; 0.0; 2.466666666666667; 0.0; 0.4666666666666667 +1377227546; 1; 2599.999601; 1.7333330673333334; 0.06666666666666667; 2097152.0; 183148.53333333333; 0.0; 1.0; 0.0; 0.0 +1377227846; 1; 2599.999601; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377228146; 1; 2599.999601; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377228446; 1; 2599.999601; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377228746; 1; 2599.999601; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1377229046; 1; 2599.999601; 3.4666661346666667; 0.13333333333333333; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377229346; 1; 2599.999601; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 1.0; 0.0; 0.0 +1377229646; 1; 2599.999601; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 1.2; 0.0; 0.0 +1377229946; 1; 2599.999601; 1.7333330673333334; 0.06666666666666667; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377230246; 1; 2599.999601; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1377230546; 1; 2599.999601; 1.7333330673333334; 0.06666666666666667; 2097152.0; 97865.33333333333; 0.0; 0.8; 0.0; 0.0 +1377230846; 1; 2599.999601; 5.199999202; 0.2; 2097152.0; 83884.0; 0.0; 2.1333333333333333; 0.0; 0.4666666666666667 +1377231146; 1; 2599.999601; 0.0; 0.0; 2097152.0; 150992.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377231446; 1; 2599.999601; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1377231746; 1; 2599.999601; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377232046; 1; 2599.999601; 0.0; 0.0; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377232346; 1; 2599.999601; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377232646; 1; 2599.999601; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377232946; 1; 2599.999601; 3.4666661346666667; 0.13333333333333333; 2097152.0; 170566.13333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1377233246; 1; 2599.999601; 3.4666661346666667; 0.13333333333333333; 2097152.0; 125827.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377233547; 1; 2599.999601; 6.9333322693333335; 0.26666666666666666; 2097152.0; 155187.2; 0.2; 6.933333333333334; 0.2; 0.13333333333333333 +1377233847; 1; 2599.999309; 15.166662635833333; 0.5833333333333334; 2097152.0; 83884.0; 0.0; 1.0; 0.0; 0.0 +1377234147; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377234447; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 78291.46666666666; 0.0; 2.3333333333333335; 0.0; 0.4666666666666667 +1377234747; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 171964.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377235047; 1; 2599.999309; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377235347; 1; 2599.999309; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.6; 0.0; 0.0 +1377235647; 1; 2599.999309; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 1.0; 0.0; 0.0 +1377235947; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 75495.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377236247; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 90874.66666666667; 0.0; 0.6; 0.0; 0.0 +1377236547; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 107652.26666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1377236847; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 125827.2; 0.0; 1.0; 0.06666666666666667; 0.0 +1377237147; 1; 2599.999309; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 1.0; 0.0; 0.0 +1377237447; 1; 2599.999309; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.6; 0.0; 0.0 +1377237747; 1; 2599.999309; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 0.6; 0.0; 0.0 +1377238047; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 96467.2; 0.0; 2.066666666666667; 0.0; 0.4666666666666667 +1377238347; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 146798.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377238647; 1; 2599.999309; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1377238947; 1; 2599.999309; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1377239247; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 150992.8; 0.0; 6.666666666666667; 0.3333333333333333; 0.13333333333333333 +1377239547; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 111846.66666666667; 0.0; 1.2666666666666666; 0.06666666666666667; 0.06666666666666667 +1377239847; 1; 2599.999309; 10.399997235999999; 0.4; 2097152.0; 121633.6; 0.0; 1.8; 0.0; 0.0 +1377240147; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 149595.46666666667; 0.0; 1.6666666666666667; 0.13333333333333333; 0.0 +1377240447; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 113244.8; 0.0; 0.5333333333333333; 0.0; 0.0 +1377240747; 1; 2599.999309; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1377241047; 1; 2599.999309; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1377241347; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 95069.06666666667; 0.0; 1.4; 0.0; 0.0 +1377241647; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 118837.33333333333; 0.0; 2.0; 0.06666666666666667; 0.4666666666666667 +1377241947; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 192936.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377242247; 1; 2599.999309; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.8; 0.0; 0.0 +1377242547; 1; 2599.999309; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.8; 0.0; 0.0 +1377242848; 1; 2599.999309; 0.0; 0.0; 2097152.0; 130022.4; 0.0; 0.6; 0.0; 0.0 +1377243148; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377243448; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 75495.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377243748; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 76893.33333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1377244048; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1377244347; 1; 2599.999309; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.6; 0.06666666666666667; 0.0 +1377244647; 1; 2599.999309; 57.199984798; 2.2; 2097152.0; 736797.0666666667; 161.0; 21.866666666666667; 0.13333333333333333; 0.4 +1377244947; 1; 2599.999309; 8.666664363333334; 0.33333333333333337; 2097152.0; 394262.4; 0.0; 2.466666666666667; 0.06666666666666667; 0.0 +1377245247; 1; 2599.999309; 6.933331490666665; 0.26666666666666666; 2097152.0; 247461.6; 32.06666666666667; 4.8; 0.0; 0.4666666666666667 +1377245547; 1; 2599.999309; 10.399997235999999; 0.4; 2097152.0; 197130.4; 0.0; 2.4; 0.06666666666666667; 0.0 +1377245847; 1; 2599.999309; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 1.4; 0.0; 0.0 +1377246147; 1; 2599.999309; 6.933331490666665; 0.26666666666666666; 2097152.0; 117439.2; 0.0; 6.666666666666667; 0.3333333333333333; 0.2 +1377246447; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 138410.4; 0.0; 1.4; 1.2666666666666666; 0.0 +1377246748; 1; 2599.999309; 0.0; 0.0; 2097152.0; 134216.8; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1377247048; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 116041.06666666667; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1377247348; 1; 2599.999309; 0.0; 0.0; 2097152.0; 142605.6; 0.0; 0.6; 0.0; 0.0 +1377247648; 1; 2599.999309; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.8; 0.0; 0.0 +1377247948; 1; 2599.999309; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377248248; 1; 2599.999309; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 1.2666666666666666; 0.06666666666666667; 0.0 +1377248548; 1; 2599.999309; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377248848; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 111846.66666666667; 0.06666666666666667; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1377249148; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 176158.4; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377249448; 1; 2599.999309; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1377249748; 1; 2599.999309; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377250048; 1; 2599.999309; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377250348; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377250648; 1; 2599.999309; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377250948; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 109050.4; 0.0; 1.2; 0.0; 0.0 +1377251248; 1; 2599.999309; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377251548; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377251848; 1; 2599.999309; 8.666664363333334; 0.33333333333333337; 2097152.0; 97865.33333333333; 0.0; 6.933333333333334; 0.2; 0.13333333333333333 +1377252148; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 163576.0; 0.0; 1.0; 0.06666666666666667; 0.0 +1377252448; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 99263.46666666666; 0.06666666666666667; 2.3333333333333335; 0.0; 0.4666666666666667 +1377252748; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 130022.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1377253048; 1; 2599.999309; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377253348; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 85282.13333333333; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377253648; 1; 2599.999309; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 1.0; 0.0; 0.0 +1377253948; 1; 2599.999309; 0.0; 0.0; 2097152.0; 65708.26666666666; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1377254248; 1; 2599.999309; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377254548; 1; 2599.999309; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1377254848; 1; 2599.999309; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377255148; 1; 2599.999309; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1377255448; 1; 2599.999309; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377255748; 1; 2599.999309; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377256048; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 102059.73333333334; 0.06666666666666667; 2.4; 0.06666666666666667; 0.4666666666666667 +1377256348; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 163576.0; 0.0; 1.2; 0.0; 0.0 +1377256648; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377256948; 1; 2599.999309; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377257249; 1; 2599.999309; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377257549; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 96467.2; 0.0; 1.0; 0.0; 0.0 +1377257849; 1; 2599.999309; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1377258149; 1; 2599.999309; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377258449; 1; 2599.999309; 0.0; 0.0; 2097152.0; 132818.66666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1377258749; 1; 2599.999309; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377259049; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 118837.33333333333; 0.06666666666666667; 7.066666666666666; 0.2; 0.13333333333333333 +1377259349; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 148197.33333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1377259649; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 2.2666666666666666; 0.13333333333333333; 0.4666666666666667 +1377259949; 1; 2599.999309; 6.933331490666665; 0.26666666666666666; 2097152.0; 155186.93333333332; 0.0; 0.9333333333333333; 0.0; 0.0 +1377260249; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 117438.13333333333; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377260549; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 156585.86666666667; 0.0; 1.0666666666666667; 0.13333333333333333; 0.0 +1377260849; 1; 2599.999309; 0.0; 0.0; 2097152.0; 145401.06666666668; 0.0; 0.8666666666666667; 0.8666666666666667; 0.0 +1377261149; 1; 2599.999309; 8.666664363333334; 0.33333333333333337; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 82.06666666666666; 0.0 +1377261449; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1377261749; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377262049; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1377262349; 1; 2599.999309; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.8; 0.0; 0.0 +1377262649; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 121633.6; 0.0; 0.8; 0.0; 0.0 +1377262949; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 118837.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377263249; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 139808.53333333333; 0.0; 2.4; 0.06666666666666667; 0.4666666666666667 +1377263549; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 197130.4; 0.0; 1.0; 0.0; 0.0 +1377263849; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 125828.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377264149; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 85282.13333333333; 0.0; 0.8; 0.0; 0.0 +1377264449; 1; 2599.999309; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377264749; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 113244.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1377265049; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 81087.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1377265349; 1; 2599.999309; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 1.0; 0.0; 0.0 +1377265649; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 116041.06666666667; 0.0; 7.133333333333334; 0.3333333333333333; 0.13333333333333333 +1377265949; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 106254.13333333333; 0.0; 0.8; 0.0; 0.0 +1377266249; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 127226.13333333333; 0.0; 1.2; 0.0; 0.0 +1377266549; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 78291.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377266849; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 107651.73333333334; 0.0; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1377267149; 1; 2599.999309; 6.933331490666665; 0.26666666666666666; 2097152.0; 188742.13333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377267449; 1; 2599.999309; 6.933331490666665; 0.26666666666666666; 2097152.0; 123031.73333333334; 0.0; 1.0; 0.0; 0.0 +1377267749; 1; 2599.999309; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377268049; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 96467.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377268349; 1; 2599.999309; 15.599995854; 0.6; 2097152.0; 90874.66666666667; 0.06666666666666667; 1.4; 0.06666666666666667; 0.13333333333333333 +1377268649; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 132818.66666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377268949; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 89476.53333333334; 0.0; 1.2666666666666666; 0.06666666666666667; 0.0 +1377269249; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 82485.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377269549; 1; 2599.999309; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1377269849; 1; 2599.999309; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377270149; 1; 2599.999309; 6.933331490666665; 0.26666666666666666; 2097152.0; 97865.33333333333; 0.0; 11.933333333333334; 0.13333333333333333; 0.0 +1377270449; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 93670.4; 0.4666666666666667; 2.466666666666667; 0.06666666666666667; 0.4666666666666667 +1377270749; 1; 2599.999309; 13.86666298133333; 0.5333333333333333; 2097152.0; 137012.8; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1377271049; 1; 2599.999309; 8.666664363333334; 0.33333333333333337; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377271349; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 117438.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1377271649; 1; 2599.999309; 0.0; 0.0; 2097152.0; 76893.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377271950; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 92272.8; 0.0; 0.7333333333333333; 0.0; 0.0 +1377272250; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 88078.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1377272550; 1; 2599.999309; 8.666664363333334; 0.33333333333333337; 2097152.0; 121633.6; 12.733333333333333; 16.733333333333334; 0.3333333333333333; 0.13333333333333333 +1377272850; 1; 2599.999309; 0.0; 0.0; 2097152.0; 131420.53333333333; 0.0; 1.6; 0.0; 0.0 +1377273150; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 85282.13333333333; 0.0; 1.2; 0.0; 0.0 +1377273450; 1; 2599.999309; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.8; 0.0; 0.0 +1377273750; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377274050; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 86680.26666666666; 0.0; 2.2; 0.06666666666666667; 0.4666666666666667 +1377274350; 1; 2599.999309; 6.933331490666665; 0.26666666666666666; 2097152.0; 114642.4; 0.0; 1.0; 0.0; 0.0 +1377274650; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 144002.66666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377274950; 1; 2599.999309; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377275250; 1; 2599.999309; 0.0; 0.0; 2097152.0; 76893.33333333333; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377275550; 1; 2599.999309; 0.0; 0.0; 2097152.0; 130021.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377275850; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 132818.4; 0.0; 1.2; 0.0; 0.0 +1377276150; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 121633.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1377276450; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 99263.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377276750; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 100661.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1377277050; 1; 2599.999309; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377277350; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 130021.86666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1377277650; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 131420.26666666666; 0.0; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1377277950; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 142604.0; 0.0; 0.8; 0.0; 0.0 +1377278250; 1; 2599.999309; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.8; 0.0; 0.0 +1377278550; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 97865.33333333333; 0.0; 1.0; 0.0; 0.0 +1377278850; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 103457.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377279150; 1; 2599.999309; 6.933331490666665; 0.26666666666666666; 2097152.0; 130022.4; 0.0; 0.8; 0.0; 0.0 +1377279450; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 128624.26666666666; 0.0; 6.866666666666666; 0.26666666666666666; 0.2 +1377279750; 1; 2599.999309; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377280050; 1; 2599.999309; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1377280350; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 0.8; 0.0; 0.0 +1377280650; 1; 2599.999309; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1377280950; 1; 2599.999309; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.8; 0.06666666666666667; 0.0 +1377281250; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 99262.93333333333; 0.0; 2.533333333333333; 0.13333333333333333; 0.4666666666666667 +1377281551; 1; 2599.999309; 8.666664363333334; 0.33333333333333337; 2097152.0; 171964.0; 0.06666666666666667; 1.0666666666666667; 0.06666666666666667; 0.0 +1377281851; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 153790.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1377282151; 1; 2599.999309; 0.0; 0.0; 2097152.0; 145401.06666666668; 0.0; 0.8; 0.0; 0.0 +1377282451; 1; 2599.999309; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8; 0.0; 0.0 +1377282751; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 100661.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1377283051; 1; 2599.999309; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1377283351; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 178955.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377283651; 1; 2599.999309; 0.0; 0.0; 2097152.0; 137012.8; 0.0; 0.7333333333333333; 0.0; 0.0 +1377283951; 1; 2599.999309; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377284251; 1; 2599.999309; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 1.2; 0.13333333333333333; 0.0 +1377284551; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 65708.26666666666; 0.0; 0.8; 0.0; 0.0 +1377284851; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 100661.6; 0.06666666666666667; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1377285151; 1; 2599.999309; 10.399997235999999; 0.4; 2097152.0; 159382.4; 0.0; 6.933333333333334; 0.2; 0.13333333333333333 +1377285451; 1; 2599.999309; 0.0; 0.0; 2097152.0; 138411.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377285751; 1; 2599.999309; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377286051; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.8; 0.0; 0.0 +1377286351; 1; 2599.999309; 38.13332319866666; 1.4666666666666666; 2097152.0; 430614.4; 161.53333333333333; 14.333333333333334; 0.0; 0.2 +1377286651; 1; 2599.999309; 0.0; 0.0; 2097152.0; 394262.6666666667; 0.0; 1.2666666666666666; 0.0; 0.0 +1377286951; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 197129.86666666667; 31.8; 3.933333333333333; 0.0; 0.0 +1377287251; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 155187.73333333334; 0.0; 1.2; 0.06666666666666667; 0.0 +1377287551; 1; 2599.999309; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377287851; 1; 2599.999309; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.8; 0.0; 0.0 +1377288151; 1; 2599.999309; 0.0; 0.0; 2097152.0; 71300.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377288451; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 139808.8; 0.0; 2.466666666666667; 0.06666666666666667; 0.4666666666666667 +1377288751; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 181750.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377289051; 1; 2599.999309; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.8; 0.0; 0.0 +1377289351; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377289651; 1; 2599.999309; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 1.1333333333333333; 0.0; 0.0 +1377289951; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 92272.8; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377290251; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 86680.26666666666; 0.0; 0.8; 0.0; 0.0 +1377290551; 1; 2599.999309; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377290852; 1; 2599.999309; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 1.6666666666666667; 0.0; 0.0 +1377291152; 1; 2599.999309; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1377291452; 1; 2599.999309; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8; 0.0; 0.0 +1377291752; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 110448.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377292052; 1; 2599.999309; 8.666664363333334; 0.33333333333333337; 2097152.0; 139808.26666666666; 0.0; 8.466666666666667; 0.3333333333333333; 0.6 +1377292352; 1; 2599.999309; 10.399997235999999; 0.4; 2097152.0; 177556.0; 0.0; 1.2; 0.0; 0.0 +1377292652; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 149596.26666666666; 0.0; 0.8; 0.0; 0.0 +1377292952; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377293251; 1; 2599.999309; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.8; 0.0; 0.0 +1377293551; 1; 2599.999309; 55.46665192533332; 2.1333333333333333; 2097152.0; 268433.6; 161.0; 21.533333333333335; 0.06666666666666667; 0.4 +1377293851; 1; 2599.999309; 15.599995854; 0.6; 2097152.0; 717224.2666666667; 0.0; 2.6666666666666665; 0.0; 0.0 +1377294151; 1; 2599.999309; 12.133330108666664; 0.4666666666666666; 2097152.0; 317366.93333333335; 31.8; 3.6; 0.0; 0.0 +1377294451; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 212508.53333333333; 0.0; 2.1333333333333333; 0.0; 0.0 +1377294751; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 121633.6; 0.0; 1.8; 0.0; 0.0 +1377295051; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 85282.13333333333; 0.0; 0.8; 0.0; 0.0 +1377295352; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 89476.53333333334; 0.0; 0.8; 0.0; 0.0 +1377295652; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 132818.66666666666; 0.0; 2.2666666666666666; 0.06666666666666667; 0.5333333333333333 +1377295952; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 153789.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377296252; 1; 2599.999309; 0.0; 0.0; 2097152.0; 72698.93333333333; 0.0; 0.8; 0.0; 0.0 +1377296552; 1; 2599.999309; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1377296852; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 97865.33333333333; 0.0; 0.8; 0.0; 0.0 +1377297152; 1; 2599.999309; 6.933331490666665; 0.26666666666666666; 2097152.0; 120235.46666666666; 0.0; 1.3333333333333333; 0.06666666666666667; 0.13333333333333333 +1377297452; 1; 2599.999309; 13.86666298133333; 0.5333333333333333; 2097152.0; 120235.46666666666; 0.0; 6.933333333333334; 0.26666666666666666; 0.13333333333333333 +1377297752; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 121632.8; 0.0; 0.7333333333333333; 0.0; 0.0 +1377298052; 1; 2599.999309; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1377298352; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 120235.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377298652; 1; 2599.999309; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.8; 0.0; 0.0 +1377298952; 1; 2599.999309; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377299252; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 127225.86666666667; 0.0; 2.466666666666667; 0.06666666666666667; 0.4666666666666667 +1377299552; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 166371.73333333334; 0.0; 0.8; 0.0; 0.0 +1377299852; 1; 2599.999309; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377300152; 1; 2599.999309; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377300452; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377300752; 1; 2599.999309; 10.399997235999999; 0.4; 2097152.0; 142605.6; 0.0; 1.1333333333333333; 0.0; 0.0 +1377301052; 1; 2599.999309; 10.399997235999999; 0.4; 2097152.0; 111846.66666666667; 0.0; 0.8; 0.26666666666666666; 0.0 +1377301352; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 97865.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377301652; 1; 2599.999309; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1377301952; 1; 2599.999309; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377302252; 1; 2599.999309; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.0; 0.0; 0.0 +1377302552; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 110448.53333333334; 0.0; 0.8; 0.0; 0.0 +1377302852; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 116041.06666666667; 0.06666666666666667; 2.4; 0.06666666666666667; 0.4666666666666667 +1377303152; 1; 2599.999309; 6.933331490666665; 0.26666666666666666; 2097152.0; 188741.6; 0.0; 6.866666666666666; 0.26666666666666666; 0.13333333333333333 +1377303452; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 130022.4; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1377303752; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 88078.4; 0.0; 0.8; 0.0; 0.0 +1377304052; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377304352; 1; 2599.999309; 8.666664363333334; 0.33333333333333337; 2097152.0; 157984.26666666666; 0.06666666666666667; 1.4; 0.0; 0.0 +1377304652; 1; 2599.999309; 8.666664363333334; 0.33333333333333337; 2097152.0; 86680.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377304953; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 76893.33333333333; 0.0; 1.2; 0.0; 0.0 +1377305253; 1; 2599.999309; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.8; 0.0; 0.0 +1377305553; 1; 2599.999309; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377305853; 1; 2599.999309; 0.0; 0.0; 2097152.0; 128624.26666666666; 0.0; 0.8; 0.0; 0.0 +1377306153; 1; 2599.999309; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377306453; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 113244.8; 0.0; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1377306753; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 127225.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377307053; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 120234.66666666667; 0.0; 0.8; 0.0; 0.0 +1377307353; 1; 2599.999309; 0.0; 0.0; 2097152.0; 134216.8; 0.0; 0.8; 0.0; 0.0 +1377307653; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 97865.33333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1377307953; 1; 2599.999309; 6.933331490666665; 0.26666666666666666; 2097152.0; 102059.73333333334; 0.0; 0.8; 0.0; 0.0 +1377308253; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 109050.4; 0.0; 0.8; 0.0; 0.0 +1377308553; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377308853; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 97865.33333333333; 0.0; 0.8; 0.06666666666666667; 0.0 +1377309153; 1; 2599.999309; 6.933331490666665; 0.26666666666666666; 2097152.0; 109050.4; 0.0; 7.133333333333334; 0.2; 0.13333333333333333 +1377309453; 1; 2599.999309; 0.0; 0.0; 2097152.0; 149596.0; 0.0; 0.6; 0.0; 0.0 +1377309753; 1; 2599.999309; 10.399997235999999; 0.4; 2097152.0; 114642.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1377310053; 1; 2599.999309; 15.599995854; 0.6; 2097152.0; 121633.33333333333; 0.0; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1377310353; 1; 2599.999309; 8.666664363333334; 0.33333333333333337; 2097152.0; 171965.06666666668; 0.0; 1.2; 0.0; 0.0 +1377310653; 1; 2599.999309; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377310953; 1; 2599.999309; 0.0; 0.0; 2097152.0; 132818.66666666666; 0.0; 0.6; 0.0; 0.0 +1377311253; 1; 2599.999309; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.6; 0.13333333333333333; 0.0 +1377311553; 1; 2599.999309; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.6; 0.0; 0.0 +1377311853; 1; 2599.999309; 0.0; 0.0; 2097152.0; 72698.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377312153; 1; 2599.999309; 0.0; 0.0; 2097152.0; 75495.2; 0.0; 0.6666666666666666; 0.0; 0.0 +1377312453; 1; 2599.999309; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.8; 0.0; 0.0 +1377312753; 1; 2599.999309; 0.0; 0.0; 2097152.0; 72698.93333333333; 0.0; 0.6; 0.0; 0.0 +1377313053; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 93670.93333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1377313353; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 132818.66666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1377313653; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 162178.13333333333; 0.06666666666666667; 2.2666666666666666; 0.06666666666666667; 0.5333333333333333 +1377313953; 1; 2599.999309; 8.666664363333334; 0.33333333333333337; 2097152.0; 164974.4; 0.0; 11.6; 0.0; 0.0 +1377314253; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377314553; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377314853; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 106254.13333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1377315154; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 109050.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1377315454; 1; 2599.999309; 6.933331490666665; 0.26666666666666666; 2097152.0; 92272.8; 0.0; 0.8; 0.0; 0.0 +1377315754; 1; 2599.999309; 8.666664363333334; 0.33333333333333337; 2097152.0; 139807.73333333334; 0.0; 6.933333333333334; 0.26666666666666666; 0.2 +1377316054; 1; 2599.999309; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 1.2; 0.0; 0.0 +1377316354; 1; 2599.999309; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.6; 0.0; 0.0 +1377316654; 1; 2599.999309; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.6; 0.0; 0.0 +1377316954; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 125828.0; 0.0; 0.8; 0.0; 0.0 +1377317254; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 124429.6; 0.13333333333333333; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1377317554; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 180353.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1377317854; 1; 2599.999309; 0.0; 0.0; 2097152.0; 144003.2; 0.0; 0.8; 0.0; 0.0 +1377318154; 1; 2599.999309; 0.0; 0.0; 2097152.0; 75495.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377318454; 1; 2599.999309; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.6; 0.0; 0.0 +1377318754; 1; 2599.999309; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.8; 0.0; 0.0 +1377319054; 1; 2599.999309; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.6; 0.0; 0.0 +1377319354; 1; 2599.999309; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 1.0; 0.0; 0.0 +1377319654; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 93670.93333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1377319954; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 123031.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1377320254; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 74097.06666666667; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377320554; 1; 2599.999309; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377320854; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 128624.26666666666; 0.06666666666666667; 2.0; 0.06666666666666667; 0.4666666666666667 +1377321154; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 171963.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1377321454; 1; 2599.999309; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1377321754; 1; 2599.999309; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8; 0.0; 0.0 +1377322054; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 128624.26666666666; 0.0; 6.6; 0.26666666666666666; 0.13333333333333333 +1377322354; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 131420.53333333333; 0.0; 0.6; 0.0; 0.0 +1377322655; 1; 2599.999309; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.6; 0.0; 0.0 +1377322955; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1377323255; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 116041.06666666667; 0.0; 1.0; 0.0; 0.0 +1377323555; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377323855; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 128624.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377324155; 1; 2599.999309; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.0; 0.0; 0.0 +1377324455; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 109050.4; 0.0; 2.3333333333333335; 0.0; 0.4666666666666667 +1377324755; 1; 2599.999309; 8.666664363333334; 0.33333333333333337; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1377325055; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377325355; 1; 2599.999309; 0.0; 0.0; 2097152.0; 127226.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377325655; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1377325955; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 92272.8; 0.0; 1.1333333333333333; 0.13333333333333333; 0.06666666666666667 +1377326255; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 146799.2; 0.0; 1.9333333333333333; 0.0; 0.0 +1377326554; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 134216.8; 0.0; 1.7333333333333334; 0.0; 0.0 +1377326854; 1; 2599.999309; 0.0; 0.0; 2097152.0; 130022.4; 0.0; 1.0; 0.0; 0.0 +1377327154; 1; 2599.999309; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1377327454; 1; 2599.999309; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377327755; 1; 2599.999309; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377328055; 1; 2599.999309; 10.399997235999999; 0.4; 2097152.0; 134216.8; 0.06666666666666667; 8.6; 0.26666666666666666; 0.6 +1377328355; 1; 2599.999309; 10.399997235999999; 0.4; 2097152.0; 146800.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1377328655; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377328955; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 121633.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377329255; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377329555; 1; 2599.999309; 0.0; 0.0; 2097152.0; 130022.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1377329855; 1; 2599.999309; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1377330155; 1; 2599.999309; 0.0; 0.0; 2097152.0; 75495.2; 0.0; 1.2; 0.0; 0.0 +1377330455; 1; 2599.999309; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 1.2; 0.0; 0.0 +1377330755; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 95069.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377331055; 1; 2599.999309; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1377331355; 1; 2599.999309; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377331655; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 118837.33333333333; 0.06666666666666667; 1.9333333333333333; 0.13333333333333333; 0.5333333333333333 +1377331955; 1; 2599.999309; 12.133330108666664; 0.4666666666666666; 2097152.0; 176158.4; 0.0; 1.0; 0.0; 0.0 +1377332255; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377332555; 1; 2599.999309; 0.0; 0.0; 2097152.0; 74097.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1377332855; 1; 2599.999309; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377333155; 1; 2599.999309; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377333455; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 90874.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377333755; 1; 2599.999309; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377334055; 1; 2599.999309; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1377334355; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 132818.66666666666; 12.733333333333333; 14.066666666666666; 0.3333333333333333; 0.2 +1377334655; 1; 2599.999309; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 1.2; 0.0; 0.0 +1377334955; 1; 2599.999309; 0.0; 0.0; 2097152.0; 134216.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377335255; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 2.6666666666666665; 0.0; 0.4666666666666667 +1377335555; 1; 2599.999309; 10.399997235999999; 0.4; 2097152.0; 150993.6; 0.0; 1.7333333333333334; 0.0; 0.0 +1377335855; 1; 2599.999309; 6.933331490666665; 0.26666666666666666; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1377336155; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 116041.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377336455; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 121633.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377336755; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 92272.8; 0.0; 1.0; 0.0; 0.0 +1377337055; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 109050.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377337355; 1; 2599.999309; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.8; 0.0; 0.0 +1377337655; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377337955; 1; 2599.999309; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1377338255; 1; 2599.999309; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377338555; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 92272.8; 0.0; 1.0; 0.0; 0.0 +1377338855; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 110448.53333333334; 0.0; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1377339156; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 130022.4; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377339456; 1; 2599.999309; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 1.0; 0.0; 0.0 +1377339756; 1; 2599.999309; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.8; 0.0; 0.0 +1377340056; 1; 2599.999309; 0.0; 0.0; 2097152.0; 57319.46666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377340356; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 90874.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377340656; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 100661.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1377340956; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 110448.53333333334; 0.0; 1.0; 0.0; 0.0 +1377341256; 1; 2599.999309; 8.666664363333334; 0.33333333333333337; 2097152.0; 113244.8; 0.0; 6.933333333333334; 0.2; 0.13333333333333333 +1377341556; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377341856; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 100661.6; 0.0; 0.8; 0.0; 0.0 +1377342156; 1; 2599.999309; 1.7333328726666664; 0.06666666666666667; 2097152.0; 79689.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1377342456; 1; 2599.999309; 8.666664363333334; 0.33333333333333337; 2097152.0; 107652.0; 0.06666666666666667; 2.466666666666667; 0.06666666666666667; 0.4666666666666667 +1377342756; 1; 2599.999309; 8.666664363333334; 0.33333333333333337; 2097152.0; 180353.6; 0.0; 1.0; 0.0; 0.0 +1377343056; 1; 2599.999309; 64.13331628866666; 2.466666666666667; 2097152.0; 328552.5333333333; 161.06666666666666; 21.533333333333335; 0.2; 0.4 +1377343356; 1; 2599.999309; 15.599995854; 0.6; 2097152.0; 658504.0; 0.0; 2.533333333333333; 0.0; 0.0 +1377343656; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 268433.6; 31.8; 3.7333333333333334; 0.0; 0.0 +1377343956; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 167771.2; 0.0; 2.1333333333333333; 0.0; 0.0 +1377344256; 1; 2599.999309; 10.399997235999999; 0.4; 2097152.0; 109050.4; 0.0; 1.5333333333333334; 0.0; 0.0 +1377344556; 1; 2599.999309; 0.0; 0.0; 2097152.0; 113244.0; 0.0; 1.0; 0.0; 0.0 +1377344856; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 99263.46666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1377345156; 1; 2599.999309; 3.4666657453333327; 0.13333333333333333; 2097152.0; 141207.46666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1377345456; 1; 2599.999309; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.8; 0.0; 0.0 +1377345756; 1; 2599.999309; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.8; 0.0; 0.0 +1377346056; 1; 2599.999309; 5.1999986179999995; 0.2; 2097152.0; 110448.53333333334; 0.0; 1.9333333333333333; 0.06666666666666667; 0.4666666666666667 +1377346356; 1; 2599.999309; 8.666664363333334; 0.33333333333333337; 2097152.0; 159381.6; 0.06666666666666667; 1.1333333333333333; 0.0; 0.0 +1377346656; 1; 2599.999309; 6.933331490666665; 0.26666666666666666; 2097152.0; 120235.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377346956; 1; 2599.999309; 0.0; 0.0; 2097152.0; 68504.53333333334; 0.0; 0.8; 0.06666666666666667; 0.0 +1377347256; 1; 2599.999601; 11.999998158461537; 0.4615384615384615; 2097152.0; 79044.30769230769; 0.0; 0.9166666666666666; 0.0; 0.0 +1377347556; 1; 2599.999601; 5.199999202; 0.2; 2097152.0; 107652.26666666666; 0.0; 6.866666666666666; 0.26666666666666666; 0.2 +1377347856; 1; 2599.99931; 25.9999931; 1.0; 2097152.0; 116840.0; 0.0; 0.8461538461538461; 0.0; 0.0 +1377348156; 1; 2599.99931; 13.866662986666668; 0.5333333333333333; 2097152.0; 110448.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377348456; 1; 2599.99931; 12.133330113333335; 0.4666666666666666; 2097152.0; 99263.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377348757; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 88078.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377349057; 1; 2599.99931; 10.39999724; 0.4; 2097152.0; 89476.53333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1377349357; 1; 2599.99931; 8.66666436666667; 0.33333333333333337; 2097152.0; 85282.13333333333; 0.0; 0.8; 0.0; 0.0 +1377349657; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 142605.06666666668; 0.06666666666666667; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1377349957; 1; 2599.99931; 13.866662986666668; 0.5333333333333333; 2097152.0; 162178.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1377350257; 1; 2599.99931; 8.66666436666667; 0.33333333333333337; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377350557; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 123031.73333333334; 0.0; 1.0; 0.06666666666666667; 0.0 +1377350857; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.8; 0.06666666666666667; 0.0 +1377351157; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 103457.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377351457; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 123031.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377351757; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 139808.53333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1377352057; 1; 2599.99931; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1377352357; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 134216.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377352657; 1; 2599.99931; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1377352957; 1; 2599.99931; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377353257; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 127226.13333333333; 0.06666666666666667; 2.6666666666666665; 0.06666666666666667; 0.4666666666666667 +1377353557; 1; 2599.99931; 10.39999724; 0.4; 2097152.0; 169169.33333333334; 0.0; 7.066666666666666; 0.2; 0.13333333333333333 +1377353857; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 113244.8; 0.0; 0.8; 0.0; 0.0 +1377354157; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 123031.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1377354457; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 111846.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377354757; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 72698.93333333333; 0.06666666666666667; 1.1333333333333333; 0.06666666666666667; 0.13333333333333333 +1377355057; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 89476.53333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1377355357; 1; 2599.99931; 12.133330113333335; 0.4666666666666666; 2097152.0; 95069.06666666667; 0.0; 1.8; 0.26666666666666666; 0.0 +1377355657; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 99263.46666666666; 0.0; 0.8; 0.06666666666666667; 0.0 +1377355957; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 99263.46666666666; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1377356257; 1; 2599.99931; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 0.8; 0.0; 0.0 +1377356557; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 138411.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377356857; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 109050.4; 0.0; 2.2; 0.0; 0.4666666666666667 +1377357157; 1; 2599.99931; 8.66666436666667; 0.33333333333333337; 2097152.0; 146798.4; 0.0; 1.5333333333333334; 0.0; 0.0 +1377357457; 1; 2599.99931; 12.133330113333335; 0.4666666666666666; 2097152.0; 127226.13333333333; 0.0; 11.933333333333334; 0.0; 0.0 +1377357757; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 130021.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377358057; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 109050.4; 0.0; 0.8; 0.0; 0.0 +1377358357; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 93670.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377358658; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 86680.26666666666; 0.0; 1.0; 0.0; 0.0 +1377358957; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 88078.4; 0.0; 1.0; 0.06666666666666667; 0.0 +1377359257; 1; 2599.99931; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 1.0; 0.06666666666666667; 0.0 +1377359557; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 85282.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377359857; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 92272.8; 0.0; 6.866666666666666; 0.2; 0.13333333333333333 +1377360157; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 121633.6; 0.0; 1.0; 0.0; 0.0 +1377360457; 1; 2599.99931; 8.66666436666667; 0.33333333333333337; 2097152.0; 110448.53333333334; 0.0; 2.2; 0.06666666666666667; 0.4666666666666667 +1377360757; 1; 2599.99931; 8.66666436666667; 0.33333333333333337; 2097152.0; 163576.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377361057; 1; 2599.99931; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377361357; 1; 2599.99931; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1377361657; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377361957; 1; 2599.99931; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377362257; 1; 2599.99931; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 0.8; 0.0; 0.0 +1377362557; 1; 2599.99931; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1377362857; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 81087.73333333334; 0.0; 1.2; 0.0; 0.0 +1377363157; 1; 2599.99931; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377363457; 1; 2599.99931; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.6; 0.0; 0.0 +1377363757; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 76893.33333333333; 0.0; 0.6; 0.0; 0.0 +1377364057; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 103457.06666666667; 0.06666666666666667; 2.2666666666666666; 0.0; 0.4666666666666667 +1377364357; 1; 2599.99931; 8.66666436666667; 0.33333333333333337; 2097152.0; 164974.66666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1377364657; 1; 2599.99931; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.5333333333333333; 0.0; 0.0 +1377364957; 1; 2599.99931; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.6; 0.0; 0.0 +1377365257; 1; 2599.99931; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1377365558; 1; 2599.99931; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1377365858; 1; 2599.99931; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.8; 0.0; 0.0 +1377366158; 1; 2599.99931; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377366458; 1; 2599.99931; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.6666666666666666; 0.0; 0.0 +1377366758; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 145401.06666666668; 0.06666666666666667; 7.066666666666666; 0.2; 0.13333333333333333 +1377367058; 1; 2599.99931; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377367358; 1; 2599.99931; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1377367658; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 88078.4; 0.0; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1377367958; 1; 2599.99931; 0.0; 0.0; 2097152.0; 138411.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377368258; 1; 2599.99931; 0.0; 0.0; 2097152.0; 127226.13333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377368558; 1; 2599.99931; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377368858; 1; 2599.99931; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.5333333333333333; 0.0; 0.0 +1377369158; 1; 2599.99931; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377369458; 1; 2599.99931; 0.0; 0.0; 2097152.0; 128624.26666666666; 0.0; 0.6666666666666666; 0.26666666666666666; 0.0 +1377369758; 1; 2599.99931; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 1.0; 0.9333333333333333; 0.0 +1377370058; 1; 2599.99931; 0.0; 0.0; 2097152.0; 127226.13333333333; 0.0; 0.8; 0.0; 0.0 +1377370358; 1; 2599.99931; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.7333333333333333; 0.0; 0.0 +1377370658; 1; 2599.99931; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1377370958; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 81087.73333333334; 0.0; 0.6; 0.0; 0.0 +1377371258; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 86680.26666666666; 0.0; 2.4; 0.0; 0.4666666666666667 +1377371558; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 174761.06666666668; 0.0; 0.6666666666666666; 0.0; 0.0 +1377371858; 1; 2599.99931; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377372158; 1; 2599.99931; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1377372458; 1; 2599.99931; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8; 0.0; 0.0 +1377372758; 1; 2599.99931; 41.59998896; 1.6; 2097152.0; 369097.3333333333; 161.0; 14.266666666666667; 0.0; 0.2 +1377373058; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 426419.2; 0.0; 7.2; 0.2; 0.13333333333333333 +1377373358; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 208315.46666666667; 31.8; 3.4; 0.06666666666666667; 0.0 +1377373658; 1; 2599.99931; 0.0; 0.0; 2097152.0; 178954.93333333332; 0.0; 1.1333333333333333; 0.0; 0.0 +1377373958; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 109050.4; 0.0; 1.0; 0.0; 0.0 +1377374259; 1; 2599.99931; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.8; 0.06666666666666667; 0.0 +1377374559; 1; 2599.99931; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1377374859; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 106254.13333333333; 0.0; 2.466666666666667; 0.0; 0.4666666666666667 +1377375159; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 152391.73333333334; 0.0; 0.8; 0.0; 0.0 +1377375459; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 120235.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377375759; 1; 2599.99931; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377376059; 1; 2599.99931; 0.0; 0.0; 2097152.0; 130022.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377376359; 1; 2599.99931; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377376659; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 107652.26666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1377376959; 1; 2599.99931; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377377259; 1; 2599.99931; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377377559; 1; 2599.99931; 0.0; 0.0; 2097152.0; 72698.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377377859; 1; 2599.99931; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1377378159; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 96467.2; 0.6666666666666666; 1.5333333333333334; 0.0; 0.0 +1377378459; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 100661.33333333333; 0.06666666666666667; 2.4; 0.06666666666666667; 0.4666666666666667 +1377378759; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 159381.86666666667; 0.0; 0.8; 0.0; 0.0 +1377379059; 1; 2599.99931; 0.0; 0.0; 2097152.0; 71300.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377379359; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 75495.2; 0.06666666666666667; 7.2; 0.2; 0.13333333333333333 +1377379659; 1; 2599.99931; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 1.0; 0.0; 0.0 +1377379959; 1; 2599.99931; 0.0; 0.0; 2097152.0; 134216.8; 0.0; 1.5333333333333334; 0.0; 0.0 +1377380259; 1; 2599.99931; 0.0; 0.0; 2097152.0; 130021.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1377380559; 1; 2599.99931; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377380859; 1; 2599.99931; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1377381159; 1; 2599.99931; 0.0; 0.0; 2097152.0; 74097.06666666667; 0.0; 0.8; 0.0; 0.0 +1377381459; 1; 2599.99931; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1377381759; 1; 2599.99931; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377382059; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 99262.66666666667; 0.0; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1377382359; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 184547.46666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377382659; 1; 2599.99931; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377382959; 1; 2599.99931; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1377383259; 1; 2599.99931; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377383559; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 90874.66666666667; 0.0; 1.7333333333333334; 0.06666666666666667; 0.13333333333333333 +1377383859; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 90874.66666666667; 0.0; 1.0; 0.0; 0.0 +1377384159; 1; 2599.99931; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.8; 0.0; 0.0 +1377384459; 1; 2599.99931; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1377384759; 1; 2599.99931; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1377385059; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 113244.8; 0.06666666666666667; 7.066666666666666; 0.26666666666666666; 0.13333333333333333 +1377385360; 1; 2599.99931; 0.0; 0.0; 2097152.0; 139808.53333333333; 0.0; 0.6; 0.0; 0.0 +1377385660; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 138411.2; 0.0; 2.2666666666666666; 0.0; 0.4666666666666667 +1377385960; 1; 2599.99931; 0.0; 0.0; 2097152.0; 138410.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1377386260; 1; 2599.99931; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.8; 0.06666666666666667; 0.0 +1377386560; 1; 2599.99931; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.8; 0.0; 0.0 +1377386860; 1; 2599.99931; 0.0; 0.0; 2097152.0; 113244.0; 0.0; 0.8; 0.0; 0.0 +1377387160; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 142604.8; 0.0; 0.8; 0.0; 0.0 +1377387460; 1; 2599.99931; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1377387760; 1; 2599.99931; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377388060; 1; 2599.99931; 0.0; 0.0; 2097152.0; 69902.66666666667; 0.0; 1.0; 0.0; 0.0 +1377388360; 1; 2599.99931; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377388660; 1; 2599.99931; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1377388960; 1; 2599.99931; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.6; 0.0; 0.0 +1377389260; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 130021.86666666667; 0.0; 2.8; 0.0; 0.4666666666666667 +1377389560; 1; 2599.99931; 0.0; 0.0; 2097152.0; 178954.13333333333; 0.0; 0.8; 0.0; 0.0 +1377389860; 1; 2599.99931; 0.0; 0.0; 2097152.0; 137013.06666666668; 0.0; 0.6; 0.0; 0.0 +1377390160; 1; 2599.99931; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.6; 0.0; 0.0 +1377390460; 1; 2599.99931; 0.0; 0.0; 2097152.0; 71300.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377390760; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 61513.86666666667; 0.0; 1.3333333333333333; 0.0; 0.0 +1377391060; 1; 2599.99931; 0.0; 0.0; 2097152.0; 120234.66666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377391360; 1; 2599.99931; 57.19998482000001; 2.2; 2097152.0; 357911.73333333334; 161.0; 21.733333333333334; 0.06666666666666667; 0.3333333333333333 +1377391660; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 665494.4; 0.0; 2.2666666666666666; 0.0; 0.0 +1377391961; 1; 2599.99931; 8.66666436666667; 0.33333333333333337; 2097152.0; 247461.06666666668; 44.6; 15.8; 0.3333333333333333; 0.2 +1377392261; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 178954.66666666666; 0.0; 2.466666666666667; 0.0; 0.0 +1377392561; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 146800.0; 0.0; 1.4666666666666666; 0.0; 0.0 +1377392861; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 121633.33333333333; 0.0; 2.066666666666667; 0.06666666666666667; 0.4666666666666667 +1377393161; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 174760.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377393461; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 88078.4; 0.0; 1.2; 0.0; 0.0 +1377393761; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 74097.06666666667; 0.0; 0.6; 0.0; 0.0 +1377394061; 1; 2599.99931; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 0.6; 0.0; 0.0 +1377394361; 1; 2599.99931; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1377394661; 1; 2599.99931; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 1.2; 0.0; 0.0 +1377394961; 1; 2599.99931; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1377395261; 1; 2599.99931; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 0.8; 0.0; 0.0 +1377395561; 1; 2599.99931; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 0.6; 0.0; 0.0 +1377395861; 1; 2599.99931; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377396161; 1; 2599.99931; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 1.0; 0.0; 0.0 +1377396461; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 120235.46666666666; 0.0; 2.066666666666667; 0.06666666666666667; 0.4666666666666667 +1377396761; 1; 2599.99931; 8.66666436666667; 0.33333333333333337; 2097152.0; 162178.66666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1377397061; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377397361; 1; 2599.99931; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 1.2; 0.0; 0.0 +1377397661; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 75495.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377397961; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 82485.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377398261; 1; 2599.99931; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377398561; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 148197.06666666668; 0.0; 7.2; 0.2; 0.13333333333333333 +1377398861; 1; 2599.99931; 0.0; 0.0; 2097152.0; 130021.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1377399161; 1; 2599.99931; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1377399461; 1; 2599.99931; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377399761; 1; 2599.99931; 0.0; 0.0; 2097152.0; 62912.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377400061; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 71300.8; 0.0; 2.6; 0.06666666666666667; 0.4666666666666667 +1377400362; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 128624.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1377400662; 1; 2599.99931; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377400962; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 130022.4; 0.0; 11.733333333333333; 0.0; 0.0 +1377401262; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 130022.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1377401562; 1; 2599.99931; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1377401862; 1; 2599.99931; 0.0; 0.0; 2097152.0; 60115.73333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377402162; 1; 2599.99931; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 1.0; 0.0; 0.0 +1377402462; 1; 2599.99931; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1377402762; 1; 2599.99931; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 1.0; 0.0; 0.0 +1377403062; 1; 2599.99931; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1377403362; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 90874.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377403662; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 148197.33333333334; 0.0; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1377403962; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 205519.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377404262; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 125828.0; 0.0; 1.0; 0.0; 0.0 +1377404562; 1; 2599.99931; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1377404862; 1; 2599.99931; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377405162; 1; 2599.99931; 8.66666436666667; 0.33333333333333337; 2097152.0; 104856.0; 0.0; 6.866666666666666; 0.2; 0.13333333333333333 +1377405462; 1; 2599.99931; 0.0; 0.0; 2097152.0; 138410.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377405762; 1; 2599.99931; 0.0; 0.0; 2097152.0; 128624.26666666666; 0.0; 1.2; 0.0; 0.0 +1377406062; 1; 2599.99931; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377406362; 1; 2599.99931; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 1.0; 0.0; 0.0 +1377406662; 1; 2599.99931; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377406962; 1; 2599.99931; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377407262; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 83884.0; 0.0; 2.533333333333333; 0.06666666666666667; 0.5333333333333333 +1377407562; 1; 2599.99931; 0.0; 0.0; 2097152.0; 142604.8; 0.06666666666666667; 1.0666666666666667; 0.0; 0.0 +1377407862; 1; 2599.99931; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377408162; 1; 2599.99931; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377408462; 1; 2599.99931; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1377408762; 1; 2599.99931; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377409062; 1; 2599.99931; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377409362; 1; 2599.99931; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377409662; 1; 2599.99931; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377409962; 1; 2599.99931; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 1.2; 0.0; 0.0 +1377410262; 1; 2599.99931; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377410562; 1; 2599.99931; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377410862; 1; 2599.99931; 10.39999724; 0.4; 2097152.0; 159382.4; 0.06666666666666667; 8.533333333333333; 0.26666666666666666; 0.6 +1377411162; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 163576.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377411462; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 113244.8; 0.0; 1.2; 0.0; 0.0 +1377411763; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 116041.06666666667; 0.0; 0.8; 0.0; 0.0 +1377412063; 1; 2599.99931; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.8; 0.0; 0.0 +1377412363; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 96467.2; 0.06666666666666667; 1.4666666666666666; 0.06666666666666667; 0.13333333333333333 +1377412663; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 138410.4; 0.0; 2.066666666666667; 0.0; 0.0 +1377412963; 1; 2599.99931; 0.0; 0.0; 2097152.0; 131420.53333333333; 0.0; 1.4666666666666666; 0.0; 0.0 +1377413263; 1; 2599.99931; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.8; 0.0; 0.0 +1377413563; 1; 2599.99931; 0.0; 0.0; 2097152.0; 61513.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377413863; 1; 2599.99931; 0.0; 0.0; 2097152.0; 72698.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377414163; 1; 2599.99931; 0.0; 0.0; 2097152.0; 113244.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377414463; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 142604.8; 0.06666666666666667; 2.2666666666666666; 0.0; 0.4666666666666667 +1377414763; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 176158.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377415063; 1; 2599.99931; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8; 0.0; 0.0 +1377415363; 1; 2599.99931; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377415663; 1; 2599.99931; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377415963; 1; 2599.99931; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377416263; 1; 2599.99931; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377416563; 1; 2599.99931; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 1.2; 0.0; 0.0 +1377416863; 1; 2599.99931; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 1.2666666666666666; 0.0; 0.0 +1377417163; 1; 2599.99931; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377417463; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 82485.86666666667; 0.0; 6.866666666666666; 0.26666666666666666; 0.13333333333333333 +1377417763; 1; 2599.99931; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377418063; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 90874.66666666667; 0.0; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1377418363; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 138410.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1377418663; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377418963; 1; 2599.99931; 0.0; 0.0; 2097152.0; 104855.2; 0.0; 0.8; 0.0; 0.0 +1377419263; 1; 2599.99931; 0.0; 0.0; 2097152.0; 64310.13333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377419564; 1; 2599.99931; 0.0; 0.0; 2097152.0; 76893.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377419864; 1; 2599.99931; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377420164; 1; 2599.99931; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1377420464; 1; 2599.99931; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377420764; 1; 2599.99931; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 1.0; 0.0; 0.0 +1377421064; 1; 2599.99931; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1377421364; 1; 2599.99931; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377421664; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 125827.2; 0.0; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1377421964; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 205519.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377422264; 1; 2599.99931; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377422564; 1; 2599.99931; 0.0; 0.0; 2097152.0; 75495.2; 0.0; 0.8; 0.0; 0.0 +1377422864; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 97865.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377423164; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 88078.4; 0.0; 0.8; 0.0; 0.0 +1377423464; 1; 2599.99931; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377424064; 1; 2599.99931; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1377424364; 1; 2599.99931; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 1.6; 0.0; 0.0 +1377424663; 1; 2599.99931; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8; 0.0; 0.0 +1377424963; 1; 2599.99931; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377425263; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 109050.4; 0.06666666666666667; 2.933333333333333; 0.0; 0.4666666666666667 +1377425563; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 130021.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1377425863; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 111846.66666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377426163; 1; 2599.99931; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377426463; 1; 2599.99931; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 1.0; 0.0; 0.0 +1377426763; 1; 2599.99931; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.8; 0.0; 0.0 +1377427063; 1; 2599.99931; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377427363; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377427663; 1; 2599.99931; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1377427963; 1; 2599.99931; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1377428263; 1; 2599.99931; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1377428563; 1; 2599.99931; 0.0; 0.0; 2097152.0; 64310.13333333333; 0.0; 0.8; 0.0; 0.0 +1377428863; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 81087.73333333334; 0.06666666666666667; 2.2; 0.06666666666666667; 0.4666666666666667 +1377429163; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1377429463; 1; 2599.99931; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377429763; 1; 2599.99931; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377430063; 1; 2599.99931; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377430363; 1; 2599.99931; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1377430664; 1; 2599.99931; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 1.0; 0.0; 0.0 +1377430964; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 130021.6; 0.0; 6.866666666666666; 0.2; 0.13333333333333333 +1377431264; 1; 2599.99931; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 1.2; 0.0; 0.0 +1377431564; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 96467.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377431864; 1; 2599.99931; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1377432164; 1; 2599.99931; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 1.2; 0.0; 0.0 +1377432464; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 118837.33333333333; 0.0; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1377432764; 1; 2599.99931; 0.0; 0.0; 2097152.0; 144002.93333333332; 0.0; 0.6666666666666666; 0.0; 0.0 +1377433064; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 156585.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1377433364; 1; 2599.99931; 0.0; 0.0; 2097152.0; 118837.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377433664; 1; 2599.99931; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377433964; 1; 2599.99931; 0.0; 0.0; 2097152.0; 166372.26666666666; 0.0; 0.8; 0.0; 0.0 +1377434264; 1; 2599.99931; 0.0; 0.0; 2097152.0; 125826.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377434564; 1; 2599.99931; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 1.0; 0.0; 0.0 +1377434864; 1; 2599.99931; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1377435164; 1; 2599.99931; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.8; 0.0; 0.0 +1377435464; 1; 2599.99931; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1377435764; 1; 2599.99931; 0.0; 0.0; 2097152.0; 146800.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377436064; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 117439.2; 0.0; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1377436364; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 195731.46666666667; 0.0; 1.2; 0.0; 0.0 +1377436664; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 124429.6; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377436964; 1; 2599.99931; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1377437264; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 118837.33333333333; 0.06666666666666667; 7.133333333333334; 0.2; 0.13333333333333333 +1377437564; 1; 2599.99931; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377437864; 1; 2599.99931; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.6; 0.0; 0.0 +1377438164; 1; 2599.99931; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8; 0.0; 0.0 +1377438464; 1; 2599.99931; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.8; 0.0; 0.0 +1377438764; 1; 2599.99931; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.5333333333333333; 0.0; 0.0 +1377439064; 1; 2599.99931; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377439364; 1; 2599.99931; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.6666666666666666; 0.0; 0.0 +1377439664; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 138411.2; 0.06666666666666667; 2.3333333333333335; 0.0; 0.4666666666666667 +1377439964; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 157984.26666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1377440264; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 100661.6; 0.0; 0.8; 0.0; 0.0 +1377440564; 1; 2599.99931; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1377440864; 1; 2599.99931; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1377441164; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 135614.93333333332; 0.0; 1.0; 0.06666666666666667; 0.06666666666666667 +1377441464; 1; 2599.99931; 0.0; 0.0; 2097152.0; 146798.4; 0.0; 0.8; 0.0; 0.0 +1377441764; 1; 2599.99931; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 1.0; 0.0; 0.0 +1377442064; 1; 2599.99931; 0.0; 0.0; 2097152.0; 71300.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377442364; 1; 2599.99931; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.6; 0.0; 0.0 +1377442665; 1; 2599.99931; 0.0; 0.0; 2097152.0; 134216.8; 0.0; 0.5333333333333333; 0.0; 0.0 +1377442965; 1; 2599.99931; 0.0; 0.0; 2097152.0; 150993.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1377443265; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 118837.33333333333; 0.06666666666666667; 2.466666666666667; 0.0; 0.4666666666666667 +1377443565; 1; 2599.99931; 0.0; 0.0; 2097152.0; 150993.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1377443865; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 123031.73333333334; 0.0; 6.866666666666666; 0.2; 0.13333333333333333 +1377444165; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 114642.93333333333; 0.0; 0.5333333333333333; 0.0; 0.0 +1377444465; 1; 2599.99931; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 1.0; 0.0; 0.0 +1377444765; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 93670.93333333333; 0.0; 11.533333333333333; 0.0; 0.0 +1377445065; 1; 2599.99931; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377445365; 1; 2599.99931; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1377445665; 1; 2599.99931; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1377445965; 1; 2599.99931; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377446265; 1; 2599.99931; 0.0; 0.0; 2097152.0; 68504.53333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1377446565; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 99263.46666666666; 0.06666666666666667; 1.1333333333333333; 0.0; 0.0 +1377446865; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 144002.4; 0.0; 1.9333333333333333; 0.0; 0.4666666666666667 +1377447165; 1; 2599.99931; 62.39998344000001; 2.4; 2097152.0; 454381.6; 161.0; 21.733333333333334; 0.0; 0.4 +1377447465; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 671087.2; 0.0; 2.533333333333333; 0.0; 0.0 +1377447765; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 264238.93333333335; 31.8; 3.3333333333333335; 0.0; 0.0 +1377448065; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 150993.33333333334; 0.0; 2.2666666666666666; 0.0; 0.0 +1377448365; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 139808.53333333333; 0.0; 1.3333333333333333; 0.0; 0.0 +1377448665; 1; 2599.99931; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 1.2; 0.0; 0.0 +1377448965; 1; 2599.99931; 0.0; 0.0; 2097152.0; 130022.4; 0.0; 0.6; 0.0; 0.0 +1377449265; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 159382.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377449565; 1; 2599.99931; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.6; 0.0; 0.0 +1377449865; 1; 2599.99931; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1377450165; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 130021.86666666667; 12.733333333333333; 13.333333333333334; 0.3333333333333333; 0.13333333333333333 +1377450465; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 233481.06666666668; 0.06666666666666667; 2.4; 0.0; 0.4666666666666667 +1377450765; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 194334.66666666666; 0.0; 1.2666666666666666; 0.0; 0.0 +1377451065; 1; 2599.99931; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377451365; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 120235.46666666666; 0.0; 1.0; 0.0; 0.0 +1377451665; 1; 2599.99931; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377451965; 1; 2599.99931; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377452265; 1; 2599.99931; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377452566; 1; 2599.99931; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377452866; 1; 2599.99931; 0.0; 0.0; 2097152.0; 75495.2; 0.0; 1.2; 0.0; 0.0 +1377453166; 1; 2599.99931; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 1.0; 0.0; 0.0 +1377453466; 1; 2599.99931; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377453766; 1; 2599.99931; 0.0; 0.0; 2097152.0; 127226.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377454066; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 114642.4; 0.0; 2.6; 0.06666666666666667; 0.5333333333333333 +1377454366; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 171964.53333333333; 0.0; 0.8; 0.0; 0.0 +1377454666; 1; 2599.99931; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377454966; 1; 2599.99931; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377455266; 1; 2599.99931; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1377455566; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1377455866; 1; 2599.99931; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377456166; 1; 2599.99931; 0.0; 0.0; 2097152.0; 75495.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377456466; 1; 2599.99931; 0.0; 0.0; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377456766; 1; 2599.99931; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 1.0; 0.0; 0.0 +1377457066; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 141207.46666666667; 0.0; 7.266666666666667; 0.26666666666666666; 0.13333333333333333 +1377457366; 1; 2599.99931; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377457666; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 142604.8; 0.0; 2.4; 0.06666666666666667; 0.4666666666666667 +1377457966; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 174760.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377458266; 1; 2599.99931; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 1.0; 0.0; 0.0 +1377458566; 1; 2599.99931; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1377458866; 1; 2599.99931; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377459166; 1; 2599.99931; 36.39999034; 1.4; 2097152.0; 297793.6; 161.0; 14.333333333333334; 0.0; 0.13333333333333333 +1377459466; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 466963.2; 0.0; 1.0; 0.0; 0.0 +1377459766; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 211110.66666666666; 31.8; 3.8; 0.0; 0.0 +1377460066; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 169169.06666666668; 0.0; 1.0; 0.0; 0.0 +1377460366; 1; 2599.99931; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377460666; 1; 2599.99931; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1377460966; 1; 2599.99931; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.6; 0.0; 0.0 +1377461266; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 120234.66666666667; 0.06666666666666667; 2.533333333333333; 0.0; 0.4666666666666667 +1377461566; 1; 2599.99931; 0.0; 0.0; 2097152.0; 173362.4; 0.0; 0.8; 0.0; 0.0 +1377461866; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 134216.8; 0.0; 0.5333333333333333; 0.0; 0.0 +1377462166; 1; 2599.99931; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.5333333333333333; 0.0; 0.0 +1377462466; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 76893.33333333333; 0.06666666666666667; 7.2; 0.2; 0.13333333333333333 +1377462766; 1; 2599.99931; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.8; 0.0; 0.0 +1377463066; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 78291.46666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1377463366; 1; 2599.99931; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377463666; 1; 2599.99931; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.6; 0.0; 0.0 +1377463966; 1; 2599.99931; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 1.0; 0.0; 0.0 +1377464266; 1; 2599.99931; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1377464566; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 127226.13333333333; 0.0; 0.6; 0.0; 0.0 +1377464866; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 99263.46666666666; 0.0; 2.2; 0.0; 0.4666666666666667 +1377465167; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 146799.2; 0.0; 1.0; 0.0; 0.0 +1377465467; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 92272.8; 0.0; 0.8; 0.0; 0.0 +1377465767; 1; 2599.99931; 0.0; 0.0; 2097152.0; 65708.26666666666; 0.0; 0.5333333333333333; 0.0; 0.0 +1377466067; 1; 2599.99931; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 0.6; 0.0; 0.0 +1377466367; 1; 2599.99931; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.8; 0.0; 0.0 +1377466667; 1; 2599.99931; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1377466967; 1; 2599.99931; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.8; 0.0; 0.0 +1377467267; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 104855.2; 0.0; 0.6666666666666666; 0.0; 0.0 +1377467567; 1; 2599.99931; 0.0; 0.0; 2097152.0; 128624.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377467867; 1; 2599.99931; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1377468167; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377468467; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 118837.33333333333; 0.0; 2.1333333333333333; 0.0; 0.4666666666666667 +1377468767; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 144002.13333333333; 0.0; 0.6; 0.0; 0.0 +1377469067; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 125828.0; 0.0; 1.4666666666666666; 0.0; 0.0 +1377469367; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 137013.06666666668; 0.0; 7.133333333333334; 0.2; 0.13333333333333333 +1377469667; 1; 2599.99931; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377469967; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 113244.8; 0.0; 1.4; 0.06666666666666667; 0.06666666666666667 +1377470267; 1; 2599.99931; 0.0; 0.0; 2097152.0; 135614.93333333332; 0.0; 0.6; 0.0; 0.0 +1377470567; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 102059.73333333334; 0.0; 0.8; 0.0; 0.0 +1377470867; 1; 2599.99931; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 1.0; 0.0; 0.0 +1377471167; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 97865.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377471467; 1; 2599.99931; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.6; 0.0; 0.0 +1377471767; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 114642.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377472067; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 128624.26666666666; 0.2; 2.8; 0.0; 0.4666666666666667 +1377472367; 1; 2599.99931; 0.0; 0.0; 2097152.0; 148197.33333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1377472667; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 110448.53333333334; 0.0; 1.0; 0.0; 0.0 +1377472967; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377473267; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 89476.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377473567; 1; 2599.99931; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1377473867; 1; 2599.99931; 0.0; 0.0; 2097152.0; 72698.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377474167; 1; 2599.99931; 0.0; 0.0; 2097152.0; 76893.33333333333; 0.0; 1.0; 0.0; 0.0 +1377474467; 1; 2599.99931; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 1.2; 0.0; 0.0 +1377474767; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 100661.6; 0.06666666666666667; 6.933333333333334; 0.2; 0.13333333333333333 +1377475067; 1; 2599.99931; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1377475367; 1; 2599.99931; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377475667; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 96466.93333333333; 0.06666666666666667; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1377475967; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 176158.66666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377476267; 1; 2599.99931; 8.66666436666667; 0.33333333333333337; 2097152.0; 116041.06666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1377476567; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 88078.4; 0.0; 1.0; 0.0; 0.0 +1377476867; 1; 2599.99931; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377477168; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 75495.2; 0.0; 1.3333333333333333; 0.0; 0.0 +1377477468; 1; 2599.99931; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377477768; 1; 2599.99931; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1377478068; 1; 2599.99931; 0.0; 0.0; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377478368; 1; 2599.99931; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377478668; 1; 2599.99931; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377478968; 1; 2599.99931; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377479268; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 117439.2; 0.0; 2.466666666666667; 0.0; 0.4666666666666667 +1377479568; 1; 2599.99931; 0.0; 0.0; 2097152.0; 155188.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377479868; 1; 2599.99931; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377480168; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377480468; 1; 2599.99931; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1377480768; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 100661.6; 0.0; 7.066666666666666; 0.2; 0.13333333333333333 +1377481068; 1; 2599.99931; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377481368; 1; 2599.99931; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377481668; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 92272.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377481968; 1; 2599.99931; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1377482268; 1; 2599.99931; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377482568; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 128624.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377482868; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 93670.93333333333; 0.0; 2.2666666666666666; 0.0; 0.4666666666666667 +1377483168; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 145401.86666666667; 0.0; 1.0; 0.0; 0.0 +1377483468; 1; 2599.99931; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377483768; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 92272.8; 0.0; 0.8; 0.0; 0.0 +1377484068; 1; 2599.99931; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.8; 0.0; 0.0 +1377484368; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 128624.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377484668; 1; 2599.99931; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 1.0; 0.0; 0.0 +1377484968; 1; 2599.99931; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377485268; 1; 2599.99931; 0.0; 0.0; 2097152.0; 124429.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377485568; 1; 2599.99931; 0.0; 0.0; 2097152.0; 160780.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377485868; 1; 2599.99931; 0.0; 0.0; 2097152.0; 124429.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377486168; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 85282.13333333333; 0.06666666666666667; 7.2; 0.26666666666666666; 0.13333333333333333 +1377486468; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 99263.46666666666; 0.06666666666666667; 2.2; 0.0; 0.4666666666666667 +1377486768; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 190139.73333333334; 0.0; 0.8; 0.0; 0.0 +1377487068; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 0.8; 0.0; 0.0 +1377487368; 1; 2599.99931; 0.0; 0.0; 2097152.0; 111845.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377487668; 1; 2599.99931; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1377487968; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 107652.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377488269; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 11.733333333333333; 0.0; 0.0 +1377488569; 1; 2599.99931; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377488869; 1; 2599.99931; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 1.3333333333333333; 0.0; 0.0 +1377489169; 1; 2599.99931; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377489469; 1; 2599.99931; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.8; 0.0; 0.0 +1377489769; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 1.6666666666666667; 0.0; 0.0 +1377490068; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 118837.33333333333; 0.0; 2.6; 0.06666666666666667; 0.4666666666666667 +1377490368; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 180353.6; 0.0; 1.0; 0.0; 0.0 +1377490668; 1; 2599.99931; 0.0; 0.0; 2097152.0; 142604.8; 0.0; 0.8; 0.0; 0.0 +1377490968; 1; 2599.99931; 0.0; 0.0; 2097152.0; 134216.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377491268; 1; 2599.99931; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.8; 0.0; 0.0 +1377491568; 1; 2599.99931; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1377491868; 1; 2599.99931; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1377492168; 1; 2599.99931; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377492468; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 128624.26666666666; 0.0; 1.0; 0.0; 0.0 +1377492768; 1; 2599.99931; 0.0; 0.0; 2097152.0; 142604.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377493068; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 109050.4; 0.0; 6.866666666666666; 0.26666666666666666; 0.13333333333333333 +1377493368; 1; 2599.99931; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.8; 0.0; 0.0 +1377493668; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 106254.13333333333; 0.0; 2.2; 0.06666666666666667; 0.4666666666666667 +1377493968; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 176157.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377494268; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 155187.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377494569; 1; 2599.99931; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.8; 0.0; 0.0 +1377494869; 1; 2599.99931; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1377495169; 1; 2599.99931; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1377495469; 1; 2599.99931; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377495769; 1; 2599.99931; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1377496069; 1; 2599.99931; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1377496369; 1; 2599.99931; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.8; 0.0; 0.0 +1377496669; 1; 2599.99931; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1377496969; 1; 2599.99931; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 1.0; 0.0; 0.0 +1377497269; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 107651.46666666666; 0.06666666666666667; 2.6666666666666665; 0.06666666666666667; 0.4666666666666667 +1377497569; 1; 2599.99931; 0.0; 0.0; 2097152.0; 146799.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377497869; 1; 2599.99931; 0.0; 0.0; 2097152.0; 139809.33333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1377498169; 1; 2599.99931; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.6666666666666666; 0.0; 0.0 +1377498469; 1; 2599.99931; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1377498769; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 61513.86666666667; 0.06666666666666667; 1.1333333333333333; 0.06666666666666667; 0.13333333333333333 +1377499069; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 58717.6; 0.0; 1.8; 0.0; 0.0 +1377499369; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 103457.86666666667; 0.0; 1.5333333333333334; 0.0; 0.0 +1377499669; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 104856.0; 0.0; 6.8; 0.2; 0.13333333333333333 +1377499969; 1; 2599.99931; 60.666650566666675; 2.3333333333333335; 2097152.0; 359311.4666666667; 161.0; 21.733333333333334; 0.06666666666666667; 0.4 +1377500269; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 654309.6; 0.0; 2.6; 0.0; 0.0 +1377500569; 1; 2599.99931; 8.66666436666667; 0.33333333333333337; 2097152.0; 310376.8; 31.8; 3.4; 0.0; 0.0 +1377500869; 1; 2599.99931; 8.66666436666667; 0.33333333333333337; 2097152.0; 192935.2; 0.0; 3.7333333333333334; 0.06666666666666667; 0.4666666666666667 +1377501169; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 192936.0; 0.0; 1.8666666666666667; 0.0; 0.0 +1377501470; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1377501770; 1; 2599.99931; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377502070; 1; 2599.99931; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1377502370; 1; 2599.99931; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.8; 0.0; 0.0 +1377502670; 1; 2599.99931; 0.0; 0.0; 2097152.0; 75495.2; 0.0; 1.0; 0.06666666666666667; 0.0 +1377502970; 1; 2599.99931; 36.39999034; 1.4; 2097152.0; 92272.8; 0.0; 1.2; 104.86666666666666; 0.0 +1377503270; 1; 2599.99931; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1377503570; 1; 2599.99931; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377503870; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 125828.0; 0.0; 0.8; 0.4; 0.0 +1377504170; 1; 2599.99931; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1377504470; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 99262.66666666667; 0.06666666666666667; 2.4; 0.06666666666666667; 0.4666666666666667 +1377504770; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 159381.6; 0.0; 0.8; 0.0; 0.0 +1377505070; 1; 2599.99931; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.8; 0.06666666666666667; 0.0 +1377505370; 1; 2599.99931; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 1.0; 0.0; 0.0 +1377505670; 1; 2599.99931; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.8; 0.0; 0.0 +1377505970; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 89476.53333333334; 0.0; 0.8; 0.0; 0.0 +1377506270; 1; 2599.99931; 8.66666436666667; 0.33333333333333337; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377506570; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 113244.8; 0.0; 6.866666666666666; 0.2; 0.13333333333333333 +1377506870; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 110448.53333333334; 0.0; 1.0; 0.0; 0.0 +1377507170; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 88078.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377507470; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 121633.6; 0.0; 0.8; 0.0; 0.0 +1377507770; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 99263.46666666666; 0.0; 0.8; 0.06666666666666667; 0.0 +1377508070; 1; 2599.99931; 13.866662986666668; 0.5333333333333333; 2097152.0; 142605.6; 0.13333333333333333; 2.466666666666667; 0.0; 0.4666666666666667 +1377508370; 1; 2599.99931; 10.39999724; 0.4; 2097152.0; 142605.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1377508670; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 83884.0; 0.0; 0.8; 0.0; 0.0 +1377508970; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 89476.53333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1377509270; 1; 2599.99931; 10.39999724; 0.4; 2097152.0; 125828.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377509570; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 1.0; 0.0; 0.0 +1377509870; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377510170; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 109050.4; 0.0; 1.0; 0.0; 0.0 +1377510470; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 83884.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377510771; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377511071; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 86680.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1377511371; 1; 2599.99931; 10.39999724; 0.4; 2097152.0; 152391.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1377511671; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 95069.06666666667; 0.06666666666666667; 2.2666666666666666; 0.13333333333333333; 0.4666666666666667 +1377511971; 1; 2599.99931; 10.39999724; 0.4; 2097152.0; 156586.13333333333; 12.733333333333333; 12.933333333333334; 0.4666666666666667; 0.2 +1377512271; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 121633.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1377512571; 1; 2599.99931; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 1.0; 0.0; 0.0 +1377512871; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 125828.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377513171; 1; 2599.99931; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377513471; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 102059.73333333334; 0.0; 1.4; 0.0; 0.0 +1377513771; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1377514071; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 100661.6; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377515571; 1; 2599.99931; 10.39999724; 0.4; 2097152.0; 125828.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377515871; 1; 2599.99931; 10.39999724; 0.4; 2097152.0; 111846.66666666667; 0.0; 0.6; 0.0; 0.0 +1377516171; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 134216.8; 0.0; 0.6666666666666666; 0.13333333333333333; 0.0 +1377516471; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1377516771; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 121633.6; 0.0; 0.6666666666666666; 3.1333333333333333; 0.0 +1377517071; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 116041.06666666667; 0.0; 0.5333333333333333; 0.0; 0.0 +1377517371; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 109050.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377517671; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 118837.33333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1377517971; 1; 2599.99931; 8.66666436666667; 0.33333333333333337; 2097152.0; 85282.13333333333; 0.0; 6.866666666666666; 0.2; 0.13333333333333333 +1377518271; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 134216.8; 0.0; 0.8; 0.0; 0.0 +1377518571; 1; 2599.99931; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.6; 0.0; 0.0 +1377518871; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 106254.13333333333; 0.0; 2.1333333333333333; 0.06666666666666667; 0.5333333333333333 +1377519171; 1; 2599.99931; 0.0; 0.0; 2097152.0; 169168.53333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377519472; 1; 2599.99931; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1377519772; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 95069.06666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377520072; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377520372; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 82485.86666666667; 0.0; 0.8; 0.06666666666666667; 0.0 +1377520672; 1; 2599.99931; 8.66666436666667; 0.33333333333333337; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1377520972; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 131420.53333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1377521272; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 121633.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1377521572; 1; 2599.99931; 12.133330113333335; 0.4666666666666666; 2097152.0; 134216.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377521872; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 90874.66666666667; 0.0; 0.8; 0.0; 0.0 +1377522172; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 71300.8; 0.0; 0.6; 0.0; 0.0 +1377522472; 1; 2599.99931; 12.133330113333335; 0.4666666666666666; 2097152.0; 107652.26666666666; 0.06666666666666667; 2.533333333333333; 0.06666666666666667; 0.4666666666666667 +1377522771; 1; 2599.99931; 8.66666436666667; 0.33333333333333337; 2097152.0; 204121.06666666668; 0.0; 0.8; 0.0; 0.0 +1377523071; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377523371; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 79689.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1377523671; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377523971; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377524271; 1; 2599.99931; 12.133330113333335; 0.4666666666666666; 2097152.0; 96467.2; 0.0; 1.6666666666666667; 0.0; 0.0 +1377524571; 1; 2599.99931; 10.39999724; 0.4; 2097152.0; 100661.6; 0.0; 7.4; 0.6; 0.2 +1377524871; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 116041.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377525171; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 117439.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377525471; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 78291.46666666666; 0.0; 0.8; 0.0; 0.0 +1377525771; 1; 2599.99931; 10.39999724; 0.4; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377526071; 1; 2599.99931; 8.66666436666667; 0.33333333333333337; 2097152.0; 130022.4; 0.0; 2.6; 0.06666666666666667; 0.4666666666666667 +1377526371; 1; 2599.99931; 10.39999724; 0.4; 2097152.0; 139808.53333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377526671; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 89476.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1377526971; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 111846.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377527271; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 99263.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377527571; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 102059.73333333334; 0.0; 1.4666666666666666; 0.06666666666666667; 0.13333333333333333 +1377527871; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377528171; 1; 2599.99931; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377528472; 1; 2599.99931; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377528772; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 120235.46666666666; 0.0; 0.9333333333333333; 0.5333333333333333; 0.0 +1377529072; 1; 2599.99931; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1377529372; 1; 2599.99931; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1377529672; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 150992.8; 0.0; 2.4; 0.06666666666666667; 0.4666666666666667 +1377529972; 1; 2599.99931; 0.0; 0.0; 2097152.0; 171965.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377530272; 1; 2599.99931; 0.0; 0.0; 2097152.0; 128624.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1377530572; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 103457.86666666667; 0.0; 6.6; 0.2; 0.13333333333333333 +1377530872; 1; 2599.99931; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377531172; 1; 2599.99931; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1377531472; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 89476.53333333334; 0.0; 1.0; 0.06666666666666667; 0.0 +1377531772; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 150994.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1377532072; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 118837.33333333333; 0.0; 12.066666666666666; 0.06666666666666667; 0.0 +1377532372; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 114642.93333333333; 0.0; 1.0666666666666667; 1.8; 0.0 +1377532672; 1; 2599.99931; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 0.8666666666666667; 2.2666666666666666; 0.0 +1377532972; 1; 2599.99931; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1377533272; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 121633.6; 0.06666666666666667; 2.6; 0.06666666666666667; 0.4666666666666667 +1377533572; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 114642.93333333333; 0.0; 1.0; 0.0; 0.0 +1377533872; 1; 2599.99931; 0.0; 0.0; 2097152.0; 142604.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377534172; 1; 2599.99931; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 4.2; 0.0 +1377534472; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 100661.6; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1377534772; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 128624.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377535072; 1; 2599.99931; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377535372; 1; 2599.99931; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 1.0; 0.0; 0.0 +1377535672; 1; 2599.99931; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 1.0; 0.0; 0.0 +1377535972; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 97865.33333333333; 0.0; 1.2; 0.0; 0.0 +1377536272; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 102059.73333333334; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377536572; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377536872; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 128623.46666666666; 0.13333333333333333; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1377537172; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 155188.0; 0.0; 7.2; 0.2; 0.13333333333333333 +1377537472; 1; 2599.99931; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377537772; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 104856.0; 0.0; 0.8; 0.0; 0.0 +1377538072; 1; 2599.99931; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 1.0; 0.06666666666666667; 0.0 +1377538372; 1; 2599.99931; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 1.0666666666666667; 2.2666666666666666; 0.0 +1377538672; 1; 2599.99931; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377538972; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 86680.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377539272; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 131420.53333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377539572; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 137013.06666666668; 0.0; 0.6666666666666666; 0.0; 0.0 +1377539873; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 142604.53333333333; 0.0; 1.0; 0.06666666666666667; 0.0 +1377540173; 1; 2599.99931; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.13333333333333333; 0.0 +1377540473; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 142604.8; 0.06666666666666667; 2.4; 0.06666666666666667; 0.4666666666666667 +1377540773; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 169169.33333333334; 0.0; 0.8; 0.0; 0.0 +1377541073; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 146799.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377541373; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 146799.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1377541673; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 125828.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377541973; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 111846.13333333333; 0.0; 0.8; 0.6; 0.0 +1377542273; 1; 2599.99931; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.6; 0.0; 0.0 +1377542573; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 116041.06666666667; 0.0; 0.8; 3.2; 0.0 +1377542873; 1; 2599.99931; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 1.0; 0.0; 0.0 +1377543173; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 141207.46666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377543473; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 173363.2; 0.0; 6.8; 0.2; 0.13333333333333333 +1377543773; 1; 2599.99931; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377544073; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 106254.13333333333; 0.0; 2.6666666666666665; 0.06666666666666667; 0.4666666666666667 +1377544373; 1; 2599.99931; 0.0; 0.0; 2097152.0; 156585.33333333334; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377544673; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 125827.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377544973; 1; 2599.99931; 0.0; 0.0; 2097152.0; 130021.6; 0.0; 0.8; 0.0; 0.0 +1377545273; 1; 2599.99931; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.8; 0.0; 0.0 +1377545573; 1; 2599.99931; 50.26665332666667; 1.9333333333333333; 2097152.0; 233481.6; 161.2; 14.6; 0.06666666666666667; 0.2 +1377545873; 1; 2599.99931; 13.866662986666668; 0.5333333333333333; 2097152.0; 486537.06666666665; 0.0; 1.2666666666666666; 0.0; 0.0 +1377546173; 1; 2599.99931; 12.133330113333335; 0.4666666666666666; 2097152.0; 208314.66666666666; 31.8; 3.6666666666666665; 0.0; 0.0 +1377546473; 1; 2599.99931; 0.0; 0.0; 2097152.0; 201324.53333333333; 0.0; 1.2666666666666666; 0.0; 0.0 +1377546773; 1; 2599.99931; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.0; 0.0; 0.0 +1377547073; 1; 2599.99931; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377547373; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 86680.26666666666; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377547673; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 128623.73333333334; 0.0; 2.533333333333333; 0.06666666666666667; 0.4666666666666667 +1377547973; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 190140.26666666666; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377548273; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 97865.33333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1377548573; 1; 2599.99931; 8.66666436666667; 0.33333333333333337; 2097152.0; 127226.13333333333; 0.0; 0.8666666666666667; 1.8666666666666667; 0.0 +1377548873; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 131420.53333333333; 0.0; 7.333333333333333; 0.2; 0.13333333333333333 +1377549173; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 124429.86666666667; 0.0; 1.0; 0.0; 0.0 +1377549473; 1; 2599.99931; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1377549774; 1; 2599.99931; 0.0; 0.0; 2097152.0; 137013.06666666668; 0.0; 0.9333333333333333; 0.0; 0.0 +1377550074; 1; 2599.99931; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 1.0; 0.0; 0.0 +1377550374; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 107652.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377550674; 1; 2599.99931; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377550974; 1; 2599.99931; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1377551274; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 132817.6; 0.0; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1377551574; 1; 2599.99931; 60.666650566666675; 2.3333333333333335; 2097152.0; 423622.93333333335; 161.0; 21.6; 0.5333333333333333; 0.4 +1377551874; 1; 2599.99931; 12.133330113333335; 0.4666666666666666; 2097152.0; 608172.0; 0.0; 2.533333333333333; 0.0; 0.0 +1377552174; 1; 2599.99931; 13.866662986666668; 0.5333333333333333; 2097152.0; 232082.13333333333; 31.8; 3.533333333333333; 0.0; 0.0 +1377552474; 1; 2599.99931; 8.66666436666667; 0.33333333333333337; 2097152.0; 149595.2; 0.0; 2.533333333333333; 0.0; 0.0 +1377552774; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 116041.06666666667; 0.0; 1.6666666666666667; 0.0; 0.0 +1377553074; 1; 2599.99931; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377553374; 1; 2599.99931; 0.0; 0.0; 2097152.0; 128624.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377553674; 1; 2599.99931; 0.0; 0.0; 2097152.0; 124429.33333333333; 0.0; 1.2; 0.0; 0.0 +1377553974; 1; 2599.99931; 0.0; 0.0; 2097152.0; 120235.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377554274; 1; 2599.99931; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377554574; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 86680.26666666666; 0.0; 0.9333333333333333; 1.5333333333333334; 0.0 +1377554874; 1; 2599.99931; 8.66666436666667; 0.33333333333333337; 2097152.0; 102059.73333333334; 0.0; 2.4; 0.0; 0.4666666666666667 +1377555174; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 113244.0; 0.0; 1.2; 0.06666666666666667; 0.0 +1377555474; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 75495.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377555774; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 99263.46666666666; 0.0; 7.266666666666667; 0.26666666666666666; 0.13333333333333333 +1377556074; 1; 2599.99931; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377556374; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 149595.46666666667; 0.06666666666666667; 1.8; 0.13333333333333333; 0.06666666666666667 +1377556674; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 124429.86666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1377556974; 1; 2599.99931; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 1.0; 0.0; 0.0 +1377557274; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 120235.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377557574; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 134216.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377557874; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 121633.6; 0.0; 1.9333333333333333; 0.0; 0.0 +1377558174; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 102059.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1377558474; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 106253.6; 0.06666666666666667; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1377558774; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 157984.0; 0.0; 0.8; 0.0; 0.0 +1377559074; 1; 2599.99931; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 1.0; 0.0; 0.0 +1377559374; 1; 2599.99931; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1377559674; 1; 2599.99931; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377559974; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 110448.53333333334; 0.0; 1.0; 0.0; 0.0 +1377560274; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 120235.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377560574; 1; 2599.99931; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 1.0; 0.0; 0.0 +1377560874; 1; 2599.99931; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.2; 0.0; 0.0 +1377561174; 1; 2599.99931; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.8; 0.0; 0.0 +1377561474; 1; 2599.99931; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377561774; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 124429.86666666667; 0.0; 6.933333333333334; 0.26666666666666666; 0.13333333333333333 +1377562074; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 128623.73333333334; 0.0; 2.466666666666667; 0.0; 0.4666666666666667 +1377562374; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 148197.06666666668; 0.0; 0.7333333333333333; 0.0; 0.0 +1377562674; 1; 2599.99931; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377562974; 1; 2599.99931; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1377563274; 1; 2599.99931; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377563574; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 95069.06666666667; 0.0; 1.4666666666666666; 0.0; 0.0 +1377563874; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 89476.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377564174; 1; 2599.99931; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377564474; 1; 2599.99931; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1377564774; 1; 2599.99931; 0.0; 0.0; 2097152.0; 67106.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1377565074; 1; 2599.99931; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8; 0.0; 0.0 +1377565374; 1; 2599.99931; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377565674; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 123031.2; 0.06666666666666667; 2.0; 0.06666666666666667; 0.4666666666666667 +1377565974; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 177557.06666666668; 0.0; 0.9333333333333333; 0.0; 0.0 +1377566274; 1; 2599.99931; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1377566574; 1; 2599.99931; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377566874; 1; 2599.99931; 0.0; 0.0; 2097152.0; 75495.2; 0.0; 0.6666666666666666; 0.0; 0.0 +1377567175; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 110448.53333333334; 0.0; 7.133333333333334; 0.2; 0.13333333333333333 +1377567475; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 107652.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377567775; 1; 2599.99931; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377568075; 1; 2599.99931; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377568375; 1; 2599.99931; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377568675; 1; 2599.99931; 0.0; 0.0; 2097152.0; 134216.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377568975; 1; 2599.99931; 0.0; 0.0; 2097152.0; 148198.13333333333; 0.0; 1.2; 0.0; 0.0 +1377569275; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 102059.73333333334; 0.2; 2.066666666666667; 0.0; 0.4666666666666667 +1377569575; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 164974.93333333332; 0.0; 0.7333333333333333; 0.0; 0.0 +1377569875; 1; 2599.99931; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.8; 0.0; 0.0 +1377570175; 1; 2599.99931; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.8; 0.0; 0.0 +1377570475; 1; 2599.99931; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377570775; 1; 2599.99931; 0.0; 0.0; 2097152.0; 113244.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377571075; 1; 2599.99931; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 1.0; 0.0; 0.0 +1377571375; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 113244.26666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1377571675; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 96466.93333333333; 0.0; 1.0; 0.0; 0.0 +1377571975; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 76893.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377572275; 1; 2599.99931; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.8; 0.0; 0.0 +1377572575; 1; 2599.99931; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.8; 0.0; 0.0 +1377572875; 1; 2599.99931; 12.133330113333335; 0.4666666666666666; 2097152.0; 162177.86666666667; 12.8; 14.466666666666667; 0.4; 0.6 +1377573175; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 152391.73333333334; 0.0; 1.4; 0.0; 0.0 +1377573475; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 0.8; 0.0; 0.0 +1377573776; 1; 2599.99931; 0.0; 0.0; 2097152.0; 75495.2; 0.0; 0.6666666666666666; 0.0; 0.0 +1377574076; 1; 2599.99931; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377574376; 1; 2599.99931; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1377574676; 1; 2599.99931; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377574976; 1; 2599.99931; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377575276; 1; 2599.99931; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377575576; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 128624.26666666666; 0.0; 11.8; 0.0; 0.0 +1377575876; 1; 2599.99931; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.0; 0.0; 0.0 +1377576176; 1; 2599.99931; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.6; 0.06666666666666667; 0.0 +1377576476; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 102058.66666666667; 0.0; 2.066666666666667; 0.06666666666666667; 0.4666666666666667 +1377576776; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 170566.93333333332; 0.0; 0.7333333333333333; 0.0; 0.0 +1377577076; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 137013.06666666668; 0.0; 0.8; 0.0; 0.0 +1377577376; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 82485.86666666667; 0.0; 1.0; 0.0; 0.0 +1377577676; 1; 2599.99931; 0.0; 0.0; 2097152.0; 76893.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377577976; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 85282.13333333333; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377578276; 1; 2599.99931; 0.0; 0.0; 2097152.0; 138411.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377578576; 1; 2599.99931; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377578876; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 97865.33333333333; 0.0; 7.066666666666666; 0.4; 0.13333333333333333 +1377579176; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 148196.53333333333; 0.0; 0.8; 0.0; 0.0 +1377579476; 1; 2599.99931; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377579776; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 106254.13333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377580076; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 113243.73333333334; 0.06666666666666667; 2.7333333333333334; 0.06666666666666667; 0.4666666666666667 +1377580376; 1; 2599.99931; 0.0; 0.0; 2097152.0; 198528.8; 0.0; 0.7333333333333333; 0.0; 0.0 +1377580676; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 127226.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377580976; 1; 2599.99931; 0.0; 0.0; 2097152.0; 138410.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377581276; 1; 2599.99931; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377581576; 1; 2599.99931; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377581876; 1; 2599.99931; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377582176; 1; 2599.99931; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8; 0.0; 0.0 +1377582476; 1; 2599.99931; 0.0; 0.0; 2097152.0; 128624.26666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1377582776; 1; 2599.99931; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 1.0; 0.06666666666666667; 0.0 +1377583077; 1; 2599.99931; 0.0; 0.0; 2097152.0; 107651.46666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1377583377; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 65708.26666666666; 0.06666666666666667; 1.2; 0.0; 0.0 +1377583677; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 92272.8; 0.0; 2.1333333333333333; 0.06666666666666667; 0.5333333333333333 +1377583977; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 121633.6; 0.0; 0.8; 0.0; 0.0 +1377584277; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 109050.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1377584577; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 104856.0; 0.0; 6.866666666666666; 0.2; 0.13333333333333333 +1377584877; 1; 2599.99931; 0.0; 0.0; 2097152.0; 128624.26666666666; 0.0; 0.9333333333333333; 0.2; 0.0 +1377585177; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 120235.46666666666; 0.0; 1.8666666666666667; 0.26666666666666666; 0.06666666666666667 +1377585477; 1; 2599.99931; 8.66666436666667; 0.33333333333333337; 2097152.0; 145401.06666666668; 0.0; 1.5333333333333334; 0.0; 0.0 +1377585777; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 106254.13333333333; 0.0; 1.0; 0.0; 0.0 +1377586077; 1; 2599.99931; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377586377; 1; 2599.99931; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377586677; 1; 2599.99931; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.6; 0.06666666666666667; 0.0 +1377586977; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 85282.13333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1377587277; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 107652.0; 0.0; 2.2; 0.2; 0.4666666666666667 +1377587577; 1; 2599.99931; 8.66666436666667; 0.33333333333333337; 2097152.0; 170566.13333333333; 0.0; 0.6; 0.26666666666666666; 0.0 +1377587877; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 137013.06666666668; 0.0; 0.6; 0.0; 0.0 +1377588177; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 159382.13333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377588477; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 132818.13333333333; 0.0; 0.7333333333333333; 0.13333333333333333; 0.0 +1377588776; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 148198.13333333333; 0.0; 0.6; 0.13333333333333333; 0.0 +1377589076; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 132818.66666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1377589376; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 111846.66666666667; 0.0; 1.1333333333333333; 0.13333333333333333; 0.0 +1377589676; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 90874.66666666667; 0.0; 1.4666666666666666; 0.0; 0.0 +1377589976; 1; 2599.99931; 8.66666436666667; 0.33333333333333337; 2097152.0; 83884.0; 0.0; 0.6; 5.2; 0.0 +1377590277; 1; 2599.99931; 10.39999724; 0.4; 2097152.0; 118837.33333333333; 0.0; 6.733333333333333; 0.26666666666666666; 0.13333333333333333 +1377590577; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 93670.93333333333; 0.0; 0.6; 0.0; 0.0 +1377590877; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 113244.8; 0.0; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1377591177; 1; 2599.99931; 12.133330113333335; 0.4666666666666666; 2097152.0; 181751.73333333334; 0.0; 1.0; 0.06666666666666667; 0.0 +1377591477; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 123031.73333333334; 0.0; 0.6; 0.13333333333333333; 0.0 +1377591777; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 118837.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377592077; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 135614.93333333332; 0.0; 0.9333333333333333; 0.0; 0.0 +1377592377; 1; 2599.99931; 8.66666436666667; 0.33333333333333337; 2097152.0; 90874.66666666667; 0.0; 0.8; 0.06666666666666667; 0.0 +1377592677; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 114642.93333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1377592977; 1; 2599.99931; 0.0; 0.0; 2097152.0; 149595.46666666667; 0.0; 0.6; 0.0; 0.0 +1377593277; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 131420.53333333333; 0.0; 0.8; 0.06666666666666667; 0.0 +1377593577; 1; 2599.99931; 0.0; 0.0; 2097152.0; 128623.46666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1377593877; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 125828.0; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377594177; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 137013.06666666668; 0.0; 0.5333333333333333; 0.06666666666666667; 0.0 +1377594477; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 93670.93333333333; 0.2; 2.066666666666667; 0.13333333333333333; 0.4666666666666667 +1377594777; 1; 2599.99931; 8.66666436666667; 0.33333333333333337; 2097152.0; 127226.13333333333; 0.0; 0.6; 0.5333333333333333; 0.0 +1377595077; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 107652.26666666666; 0.0; 0.6; 9.4; 0.0 +1377595377; 1; 2599.99931; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8; 0.0; 0.0 +1377595677; 1; 2599.99931; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1377595977; 1; 2599.99931; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377596277; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 106254.13333333333; 0.0; 6.8; 0.3333333333333333; 0.13333333333333333 +1377596577; 1; 2599.99931; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377596877; 1; 2599.99931; 0.0; 0.0; 2097152.0; 132817.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377597177; 1; 2599.99931; 0.0; 0.0; 2097152.0; 132817.86666666667; 0.0; 0.8; 0.0; 0.0 +1377597477; 1; 2599.99931; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1377597777; 1; 2599.99931; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.6666666666666666; 0.13333333333333333; 0.0 +1377598077; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 109050.4; 0.0; 2.4; 0.0; 0.5333333333333333 +1377598377; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 137012.26666666666; 0.06666666666666667; 0.9333333333333333; 1.2666666666666666; 0.0 +1377598677; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 111846.66666666667; 0.0; 0.6; 0.0; 0.0 +1377598977; 1; 2599.99931; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.6; 0.0; 0.0 +1377599277; 1; 2599.99931; 64.13331631333334; 2.466666666666667; 2097152.0; 603977.0666666667; 161.0; 22.8; 0.0; 0.4 +1377599577; 1; 2599.99931; 12.133330113333335; 0.4666666666666666; 2097152.0; 394262.4; 0.0; 4.8; 0.0; 0.0 +1377599877; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 190140.0; 31.8; 3.533333333333333; 0.0; 0.0 +1377600177; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 156586.13333333333; 0.0; 2.3333333333333335; 0.06666666666666667; 0.0 +1377600477; 1; 2599.99931; 6.933331493333334; 0.26666666666666666; 2097152.0; 118837.33333333333; 0.0; 1.5333333333333334; 0.0; 0.0 +1377600777; 1; 2599.99931; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1377601077; 1; 2599.99931; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377601377; 1; 2599.99931; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377601677; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 96467.2; 0.06666666666666667; 2.0; 0.0; 0.4666666666666667 +1377601977; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 141207.46666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377602278; 1; 2599.99931; 10.39999724; 0.4; 2097152.0; 113244.8; 0.0; 1.8666666666666667; 0.0; 0.0 +1377602578; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 102059.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1377602878; 1; 2599.99931; 8.66666436666667; 0.33333333333333337; 2097152.0; 117439.2; 0.0; 6.866666666666666; 0.26666666666666666; 0.13333333333333333 +1377603178; 1; 2599.99931; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377603478; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 1.1333333333333333; 0.0; 0.0 +1377603778; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377604078; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 95069.06666666667; 0.0; 1.2; 0.06666666666666667; 0.0 +1377604378; 1; 2599.99931; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 1.1333333333333333; 0.0 +1377604678; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 121632.8; 0.0; 0.8666666666666667; 2.6666666666666665; 0.0 +1377604978; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 106254.13333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1377605278; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 121632.8; 0.06666666666666667; 2.6; 0.0; 0.4666666666666667 +1377605578; 1; 2599.99931; 10.39999724; 0.4; 2097152.0; 187343.46666666667; 0.0; 1.0; 0.06666666666666667; 0.0 +1377605878; 1; 2599.99931; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377606178; 1; 2599.99931; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1377606478; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 128624.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377606778; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1377607078; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377607378; 1; 2599.99931; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377607678; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 74097.06666666667; 0.0; 1.1333333333333333; 0.13333333333333333; 0.0 +1377607978; 1; 2599.99931; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377608278; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 83884.0; 0.0; 0.8666666666666667; 0.7333333333333333; 0.0 +1377608578; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 128624.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377608878; 1; 2599.99931; 10.39999724; 0.4; 2097152.0; 138410.4; 0.06666666666666667; 2.2666666666666666; 80.73333333333333; 0.4666666666666667 +1377609178; 1; 2599.99931; 10.39999724; 0.4; 2097152.0; 170566.66666666666; 0.0; 7.266666666666667; 0.26666666666666666; 0.13333333333333333 +1377609478; 1; 2599.99931; 5.19999862; 0.2; 2097152.0; 138410.66666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377609778; 1; 2599.99931; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377610078; 1; 2599.99931; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377610378; 1; 2599.99931; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 1.0666666666666667; 0.13333333333333333; 0.0 +1377610678; 1; 2599.99931; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377610978; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 125828.0; 0.0; 0.8; 0.0; 0.0 +1377611278; 1; 2599.99931; 1.7333328733333335; 0.06666666666666667; 2097152.0; 139809.33333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377611578; 1; 2599.99931; 3.466665746666667; 0.13333333333333333; 2097152.0; 99263.46666666666; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377611878; 1; 2599.99931; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1377612178; 1; 2599.99931; 10.39999724; 0.4; 2097152.0; 142604.8; 0.0; 0.8; 10.6; 0.0 +1377612478; 1; 2599.998991; 40.44442874888888; 1.5555555555555554; 2097152.0; 130486.66666666667; 0.0; 3.875; 0.125; 0.875 +1377612778; 1; 2599.998991; 19.066659267333332; 0.7333333333333333; 2097152.0; 201324.0; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377613078; 1; 2599.998991; 17.33332660666667; 0.6666666666666667; 2097152.0; 100661.6; 0.0; 0.8; 0.0; 0.0 +1377613378; 1; 2599.999334; 25.99999334; 1.0; 2097152.0; 83884.0; 0.0; 1.0; 0.0; 0.0 +1377613678; 1; 2599.999334; 10.399997336000002; 0.4; 2097152.0; 109050.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377613978; 1; 2599.999334; 17.333328893333338; 0.6666666666666667; 2097152.0; 121633.6; 0.0; 1.0; 0.13333333333333333; 0.13333333333333333 +1377614279; 1; 2599.999334; 8.666664446666669; 0.33333333333333337; 2097152.0; 120235.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377614579; 1; 2599.999334; 3.4666657786666666; 0.13333333333333333; 2097152.0; 121633.6; 0.0; 1.2; 0.0; 0.0 +1377614879; 1; 2599.999602; 34.666661360000006; 1.3333333333333335; 2097152.0; 83884.0; 0.0; 1.0; 0.0; 0.0 +1377615179; 1; 2599.999602; 17.333330680000003; 0.6666666666666667; 2097152.0; 110448.53333333334; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377615479; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377615779; 1; 2599.999602; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.6666666666666666; 0.13333333333333333; 0.0 +1377616079; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 150993.6; 0.06666666666666667; 2.8; 0.06666666666666667; 0.4666666666666667 +1377616379; 1; 2599.999602; 13.866664544; 0.5333333333333333; 2097152.0; 184547.2; 0.0; 1.0; 0.06666666666666667; 0.0 +1377616679; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377616979; 1; 2599.999602; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377617279; 1; 2599.999602; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1377617579; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 134216.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377617879; 1; 2599.999602; 0.0; 0.0; 2097152.0; 125827.2; 0.0; 0.8; 0.06666666666666667; 0.0 +1377618179; 1; 2599.999602; 0.0; 0.0; 2097152.0; 71300.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377618479; 1; 2599.999602; 0.0; 0.0; 2097152.0; 67106.4; 0.0; 1.2; 0.0; 0.0 +1377618779; 1; 2599.999602; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1377619079; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377619379; 1; 2599.999602; 6.933332272; 0.26666666666666666; 2097152.0; 100661.6; 0.0; 11.733333333333333; 0.0; 0.0 +1377619679; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 99263.46666666666; 0.06666666666666667; 2.4; 0.0; 0.4666666666666667 +1377619979; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 153789.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377620279; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377620579; 1; 2599.999602; 0.0; 0.0; 2097152.0; 71300.8; 0.0; 0.7333333333333333; 0.0; 0.0 +1377620879; 1; 2599.999602; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377621179; 1; 2599.999602; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1377621479; 1; 2599.999602; 10.399998407999998; 0.4; 2097152.0; 90874.66666666667; 0.0; 7.266666666666667; 0.2; 0.13333333333333333 +1377621779; 1; 2599.999602; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377622079; 1; 2599.999602; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377622379; 1; 2599.999602; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377622679; 1; 2599.999602; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377622979; 1; 2599.999602; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 1.0; 0.0; 0.0 +1377623279; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 121633.6; 0.0; 2.1333333333333333; 0.0; 0.4666666666666667 +1377623579; 1; 2599.999602; 0.0; 0.0; 2097152.0; 171964.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377623879; 1; 2599.999602; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377624179; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.26666666666666666; 0.0 +1377624479; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 93670.93333333333; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377624779; 1; 2599.999602; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377625079; 1; 2599.999602; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1377625379; 1; 2599.999602; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377625679; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 150994.4; 0.0; 0.9333333333333333; 0.6; 0.0 +1377625979; 1; 2599.999602; 0.0; 0.0; 2097152.0; 142605.6; 0.0; 0.8; 0.0; 0.0 +1377626279; 1; 2599.999602; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377626579; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 114642.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377626879; 1; 2599.999602; 6.933332272; 0.26666666666666666; 2097152.0; 109050.4; 0.0; 2.2666666666666666; 0.0; 0.4666666666666667 +1377627179; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 138411.2; 0.0; 1.0; 0.0; 0.0 +1377627479; 1; 2599.999602; 0.0; 0.0; 2097152.0; 159381.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1377627779; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 113244.8; 0.0; 7.266666666666667; 0.26666666666666666; 0.2 +1377628079; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 116041.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1377628379; 1; 2599.999602; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1377628679; 1; 2599.999602; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377628979; 1; 2599.999602; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 1.0; 0.06666666666666667; 0.0 +1377629279; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 67106.4; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377629580; 1; 2599.999602; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377629880; 1; 2599.999602; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 1.0; 0.0; 0.0 +1377630180; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377630480; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 137012.26666666666; 0.06666666666666667; 2.2666666666666666; 0.0; 0.4666666666666667 +1377630780; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 146799.2; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377631080; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 0.8; 0.0; 0.0 +1377631380; 1; 2599.999602; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377631680; 1; 2599.999602; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377631980; 1; 2599.999602; 39.866660564; 1.5333333333333334; 2097152.0; 181751.73333333334; 161.06666666666666; 14.266666666666667; 0.13333333333333333; 0.2 +1377632280; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 536869.6; 0.0; 1.2; 0.0; 0.0 +1377632580; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 184548.0; 31.8; 3.8; 0.0; 0.0 +1377632880; 1; 2599.999602; 0.0; 0.0; 2097152.0; 213908.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1377633180; 1; 2599.999602; 0.0; 0.0; 2097152.0; 134216.8; 0.0; 1.0; 0.0; 0.0 +1377633480; 1; 2599.999602; 0.0; 0.0; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377633780; 1; 2599.999602; 6.933332272; 0.26666666666666666; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377634080; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 131419.46666666667; 0.06666666666666667; 2.933333333333333; 0.0; 0.5333333333333333 +1377634380; 1; 2599.999602; 0.0; 0.0; 2097152.0; 176159.2; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377634680; 1; 2599.999602; 6.933332272; 0.26666666666666666; 2097152.0; 171964.0; 12.733333333333333; 13.066666666666666; 0.3333333333333333; 0.13333333333333333 +1377634980; 1; 2599.999602; 0.0; 0.0; 2097152.0; 142604.8; 0.0; 1.0; 0.0; 0.0 +1377635280; 1; 2599.999602; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 1.0; 0.06666666666666667; 0.0 +1377635580; 1; 2599.999602; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377635880; 1; 2599.999602; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377636180; 1; 2599.999602; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377636480; 1; 2599.999602; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377636780; 1; 2599.999602; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1377637080; 1; 2599.999602; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377637380; 1; 2599.999602; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377637680; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 123031.73333333334; 0.06666666666666667; 2.3333333333333335; 0.13333333333333333; 0.4666666666666667 +1377637980; 1; 2599.999602; 0.0; 0.0; 2097152.0; 146798.4; 0.0; 1.0; 0.0; 0.0 +1377638280; 1; 2599.999602; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377638581; 1; 2599.999602; 0.0; 0.0; 2097152.0; 159382.4; 0.0; 0.8; 0.0; 0.0 +1377638881; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377639181; 1; 2599.999602; 0.0; 0.0; 2097152.0; 72698.93333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1377639481; 1; 2599.999602; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1377639781; 1; 2599.999602; 0.0; 0.0; 2097152.0; 134216.8; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1377640081; 1; 2599.999602; 0.0; 0.0; 2097152.0; 121632.8; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377640381; 1; 2599.999602; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 1.0; 0.0; 0.0 +1377640681; 1; 2599.999602; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377640981; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 81087.73333333334; 0.0; 7.133333333333334; 0.2; 0.13333333333333333 +1377641281; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 131420.53333333333; 0.06666666666666667; 2.466666666666667; 0.06666666666666667; 0.4666666666666667 +1377641581; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 171963.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377641881; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377642181; 1; 2599.999602; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 1.0; 0.0; 0.0 +1377642481; 1; 2599.999602; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 0.8; 0.06666666666666667; 0.0 +1377642781; 1; 2599.999602; 10.399998407999998; 0.4; 2097152.0; 109050.4; 0.06666666666666667; 1.4666666666666666; 0.06666666666666667; 0.13333333333333333 +1377643081; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 125828.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377643381; 1; 2599.999602; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1377643681; 1; 2599.999602; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377643981; 1; 2599.999602; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 1.0; 0.0; 0.0 +1377644281; 1; 2599.999602; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1377644581; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1377644881; 1; 2599.999602; 6.933332272; 0.26666666666666666; 2097152.0; 107652.26666666666; 0.0; 2.3333333333333335; 0.06666666666666667; 0.5333333333333333 +1377645181; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 152392.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1377645481; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 137013.06666666668; 0.0; 0.8; 0.0; 0.0 +1377645781; 1; 2599.999602; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377646081; 1; 2599.999602; 0.0; 0.0; 2097152.0; 60115.73333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377646381; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 128623.46666666666; 0.0; 1.0; 0.0; 0.0 +1377646681; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377646981; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 85282.13333333333; 0.0; 7.733333333333333; 0.2; 0.13333333333333333 +1377647281; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 113244.8; 0.0; 1.0; 0.06666666666666667; 0.0 +1377647581; 1; 2599.999602; 0.0; 0.0; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377647881; 1; 2599.999602; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377648181; 1; 2599.999602; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.8; 0.0; 0.0 +1377648481; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 102059.73333333334; 0.0; 2.2666666666666666; 0.0; 0.4666666666666667 +1377648781; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 160779.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377649081; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 1.1333333333333333; 0.0 +1377649381; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1377649681; 1; 2599.999602; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8; 0.0; 0.0 +1377649982; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 89476.53333333334; 0.0; 1.2; 0.13333333333333333; 0.0 +1377650282; 1; 2599.999602; 60.66665738; 2.3333333333333335; 2097152.0; 592792.2666666667; 161.06666666666666; 21.8; 0.06666666666666667; 0.4 +1377650582; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 596986.9333333333; 0.0; 2.8666666666666667; 0.06666666666666667; 0.0 +1377650882; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 241868.8; 31.8; 3.533333333333333; 0.13333333333333333; 0.0 +1377651182; 1; 2599.999602; 6.933332272; 0.26666666666666666; 2097152.0; 171964.53333333333; 0.0; 2.2666666666666666; 0.06666666666666667; 0.0 +1377651482; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 137013.06666666668; 0.0; 1.4666666666666666; 0.0; 0.0 +1377651782; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 95069.06666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1377652082; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 82485.33333333333; 0.06666666666666667; 2.6; 0.0; 0.4666666666666667 +1377652382; 1; 2599.999602; 0.0; 0.0; 2097152.0; 137012.53333333333; 0.0; 0.8; 0.0; 0.0 +1377652682; 1; 2599.999602; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.8; 0.0; 0.0 +1377652982; 1; 2599.999602; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.6; 0.0; 0.0 +1377653282; 1; 2599.999602; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377653582; 1; 2599.999602; 13.866664544; 0.5333333333333333; 2097152.0; 121633.06666666667; 0.06666666666666667; 7.266666666666667; 0.26666666666666666; 0.13333333333333333 +1377653882; 1; 2599.999602; 6.933332272; 0.26666666666666666; 2097152.0; 100661.33333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1377654182; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 83884.0; 0.0; 0.6666666666666666; 0.2; 0.0 +1377654482; 1; 2599.999602; 0.0; 0.0; 2097152.0; 76893.33333333333; 0.0; 0.8; 0.0; 0.0 +1377654782; 1; 2599.999602; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1377655082; 1; 2599.999602; 0.0; 0.0; 2097152.0; 75495.2; 0.0; 0.5333333333333333; 0.0; 0.0 +1377655382; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 93670.93333333333; 0.0; 0.6; 0.0; 0.0 +1377655682; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 145401.33333333334; 0.0; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1377655982; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 144003.46666666667; 0.0; 1.0; 0.06666666666666667; 0.0 +1377656282; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 106254.13333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377656582; 1; 2599.999602; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.6; 0.0; 0.0 +1377656882; 1; 2599.999602; 0.0; 0.0; 2097152.0; 159381.6; 0.0; 0.6; 0.0; 0.0 +1377657182; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 97865.33333333333; 0.0; 0.8; 0.06666666666666667; 0.0 +1377657482; 1; 2599.999602; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377657782; 1; 2599.999602; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.6; 0.0; 0.0 +1377658082; 1; 2599.999602; 0.0; 0.0; 2097152.0; 134216.8; 0.0; 0.6666666666666666; 0.0; 0.0 +1377658382; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 92272.8; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377658682; 1; 2599.999602; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1377658982; 1; 2599.999602; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.8; 0.0; 0.0 +1377659282; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 127226.13333333333; 0.0; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1377659582; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 135614.13333333333; 0.0; 1.0; 0.0; 0.0 +1377659882; 1; 2599.999602; 0.0; 0.0; 2097152.0; 132818.66666666666; 0.0; 0.6; 0.0; 0.0 +1377660182; 1; 2599.999602; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.8; 0.0; 0.0 +1377660482; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 135614.93333333332; 0.0; 6.733333333333333; 0.26666666666666666; 0.2 +1377660782; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 152391.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377661082; 1; 2599.999602; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.8; 0.0; 0.0 +1377661382; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 109050.4; 0.0; 0.8; 0.0; 0.0 +1377661682; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 90874.66666666667; 0.0; 1.2; 0.0; 0.0 +1377661982; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 102059.73333333334; 0.0; 0.6; 3.8666666666666667; 0.0 +1377662282; 1; 2599.999602; 6.933332272; 0.26666666666666666; 2097152.0; 125828.0; 0.06666666666666667; 1.6666666666666667; 0.06666666666666667; 0.0 +1377662582; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 120235.46666666666; 0.0; 0.5333333333333333; 0.0; 0.0 +1377662882; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 116040.0; 0.13333333333333333; 13.133333333333333; 0.06666666666666667; 0.4666666666666667 +1377663182; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 166372.0; 0.0; 0.8; 0.0; 0.0 +1377663482; 1; 2599.999602; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.6; 1.0; 0.0 +1377663782; 1; 2599.999602; 0.0; 0.0; 2097152.0; 138411.2; 0.0; 0.6; 0.0; 0.0 +1377664082; 1; 2599.999602; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1377664382; 1; 2599.999602; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377664683; 1; 2599.999602; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.6; 0.06666666666666667; 0.0 +1377664983; 1; 2599.999602; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1377665283; 1; 2599.999602; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1377665583; 1; 2599.999602; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1377665883; 1; 2599.999602; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1377666183; 1; 2599.999602; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377666483; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 127225.06666666667; 0.06666666666666667; 2.3333333333333335; 0.0; 0.4666666666666667 +1377666783; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 209713.33333333334; 0.0; 7.066666666666666; 0.26666666666666666; 0.13333333333333333 +1377667083; 1; 2599.999602; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1377667383; 1; 2599.999602; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377667683; 1; 2599.999602; 1.733333068; 0.06666666666666667; 2097152.0; 110448.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1377667983; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377668283; 1; 2599.999602; 0.0; 0.0; 2097152.0; 114642.13333333333; 0.0; 0.9333333333333333; 0.8666666666666667; 0.0 +1377668583; 1; 2599.999602; 0.0; 0.0; 2097152.0; 109049.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1377668883; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 88078.4; 0.0; 1.0; 0.7333333333333333; 0.0 +1377669183; 1; 2599.999602; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377669483; 1; 2599.999602; 0.0; 0.0; 2097152.0; 64310.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377669783; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 76893.33333333333; 0.0; 0.9333333333333333; 0.3333333333333333; 0.0 +1377670083; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 81087.73333333334; 0.0; 2.7333333333333334; 0.0; 0.4666666666666667 +1377670383; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 155188.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377670683; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 120234.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377670983; 1; 2599.999602; 0.0; 0.0; 2097152.0; 68504.53333333334; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377671283; 1; 2599.999602; 3.466666136; 0.13333333333333333; 2097152.0; 95069.06666666667; 0.0; 1.0666666666666667; 0.2; 0.0 +1377671583; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 85282.13333333333; 0.0; 2.1333333333333333; 0.13333333333333333; 0.13333333333333333 +1377671883; 1; 2599.999602; 13.866664544; 0.5333333333333333; 2097152.0; 110448.53333333334; 0.0; 1.5333333333333334; 0.3333333333333333; 0.0 +1377672183; 1; 2599.999602; 8.666665340000002; 0.33333333333333337; 2097152.0; 137013.06666666668; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1377672483; 1; 2599.999602; 0.0; 0.0; 2097152.0; 142604.0; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377672783; 1; 2599.9993; 25.999993; 1.0; 2097152.0; 62912.0; 0.0; 1.125; 0.0; 0.0 +1377673083; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 86680.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377673383; 1; 2599.9993; 12.133330066666666; 0.4666666666666666; 2097152.0; 96467.2; 0.0; 7.0; 0.26666666666666666; 0.2 +1377673683; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 123030.93333333333; 0.0; 2.533333333333333; 0.06666666666666667; 0.4666666666666667 +1377673983; 1; 2599.9993; 8.666664333333335; 0.33333333333333337; 2097152.0; 125828.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1377674283; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377674583; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377674883; 1; 2599.9993; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377675183; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 85282.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377675483; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 96467.2; 0.0; 1.2; 0.06666666666666667; 0.0 +1377675783; 1; 2599.9993; 0.0; 0.0; 2097152.0; 61513.86666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1377676083; 1; 2599.9993; 0.0; 0.0; 2097152.0; 71300.8; 0.0; 1.2; 0.06666666666666667; 0.0 +1377676383; 1; 2599.9993; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377676684; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377676984; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 148197.33333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1377677284; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 135614.13333333333; 0.2; 2.4; 0.0; 0.5333333333333333 +1377677584; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 138410.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377677884; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377678184; 1; 2599.9993; 0.0; 0.0; 2097152.0; 134216.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1377678484; 1; 2599.9993; 0.0; 0.0; 2097152.0; 117438.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377678784; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 92272.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377679084; 1; 2599.9993; 10.3999972; 0.4; 2097152.0; 100661.6; 0.0; 1.0; 0.0; 0.0 +1377679384; 1; 2599.9993; 17.33332866666667; 0.6666666666666667; 2097152.0; 74097.06666666667; 0.0; 6.933333333333334; 0.2; 0.13333333333333333 +1377679684; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 150993.6; 0.0; 1.1333333333333333; 0.0; 0.0 +1377679984; 1; 2599.9993; 0.0; 0.0; 2097152.0; 146799.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377680284; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 96467.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377680584; 1; 2599.9993; 6.933331466666666; 0.26666666666666666; 2097152.0; 107652.26666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1377680884; 1; 2599.9993; 6.933331466666666; 0.26666666666666666; 2097152.0; 120234.66666666667; 0.0; 2.1333333333333333; 0.06666666666666667; 0.5333333333333333 +1377681184; 1; 2599.9993; 10.3999972; 0.4; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377681484; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8; 0.0; 0.0 +1377681784; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 109050.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377682084; 1; 2599.9993; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1377682384; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377682684; 1; 2599.9993; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.6; 0.0; 0.0 +1377682984; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 123030.66666666667; 0.0; 1.8666666666666667; 0.0; 0.06666666666666667 +1377683284; 1; 2599.9993; 24.266660133333332; 0.9333333333333332; 2097152.0; 184548.0; 0.0; 3.6666666666666665; 0.0; 0.0 +1377683584; 1; 2599.9993; 13.866662933333332; 0.5333333333333333; 2097152.0; 130022.4; 0.0; 2.8666666666666667; 0.0; 0.0 +1377683884; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 96467.2; 0.0; 1.2; 0.0; 0.0 +1377684184; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377684484; 1; 2599.9993; 8.666664333333335; 0.33333333333333337; 2097152.0; 109050.4; 0.0; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1377684784; 1; 2599.9993; 13.866662933333332; 0.5333333333333333; 2097152.0; 153789.86666666667; 0.0; 7.0; 0.2; 0.13333333333333333 +1377685084; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 150993.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377685384; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377685684; 1; 2599.9993; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377685984; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377686284; 1; 2599.9993; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.8; 0.06666666666666667; 0.0 +1377686584; 1; 2599.9993; 0.0; 0.0; 2097152.0; 142605.6; 0.0; 1.1333333333333333; 0.0; 0.0 +1377686884; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 142604.8; 0.0; 0.7333333333333333; 0.0; 0.0 +1377687184; 1; 2599.9993; 0.0; 0.0; 2097152.0; 134216.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377687484; 1; 2599.9993; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377687784; 1; 2599.9993; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.7333333333333333; 0.0; 0.0 +1377688084; 1; 2599.9993; 6.933331466666666; 0.26666666666666666; 2097152.0; 100661.6; 0.06666666666666667; 2.6; 0.06666666666666667; 0.4666666666666667 +1377688384; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 167770.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377688684; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1377688984; 1; 2599.9993; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1377689284; 1; 2599.9993; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1377689584; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377689884; 1; 2599.9993; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8; 0.0; 0.0 +1377690184; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377690484; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 104856.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1377690784; 1; 2599.9993; 6.933331466666666; 0.26666666666666666; 2097152.0; 157983.46666666667; 0.06666666666666667; 7.2; 0.2; 0.13333333333333333 +1377691084; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 130020.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377691384; 1; 2599.9993; 0.0; 0.0; 2097152.0; 128623.46666666666; 0.0; 1.5333333333333334; 0.0; 0.0 +1377691684; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 109050.4; 0.0; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1377691984; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 127226.13333333333; 0.06666666666666667; 1.1333333333333333; 0.0; 0.0 +1377692284; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 0.8; 0.0; 0.0 +1377692584; 1; 2599.9993; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377692884; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 110448.53333333334; 0.0; 0.8; 0.0; 0.0 +1377693184; 1; 2599.9993; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377693484; 1; 2599.9993; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 1.0; 0.0; 0.0 +1377693784; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377694084; 1; 2599.9993; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1377694384; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377694684; 1; 2599.9993; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377694984; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 106254.13333333333; 0.0; 1.0; 0.0; 0.0 +1377695284; 1; 2599.9993; 6.933331466666666; 0.26666666666666666; 2097152.0; 120234.93333333333; 0.06666666666666667; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1377695584; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 170567.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377695884; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 90874.66666666667; 0.0; 0.8; 0.13333333333333333; 0.0 +1377696184; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 134216.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377696484; 1; 2599.9993; 0.0; 0.0; 2097152.0; 127226.13333333333; 0.0; 0.8666666666666667; 0.2; 0.0 +1377696785; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.7333333333333333; 0.13333333333333333; 0.0 +1377697085; 1; 2599.9993; 6.933331466666666; 0.26666666666666666; 2097152.0; 124429.06666666667; 12.933333333333334; 13.133333333333333; 0.4666666666666667; 0.13333333333333333 +1377697385; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 95069.06666666667; 0.0; 1.2; 0.06666666666666667; 0.0 +1377697685; 1; 2599.9993; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 1.0; 0.0; 0.0 +1377697985; 1; 2599.9993; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377698285; 1; 2599.9993; 0.0; 0.0; 2097152.0; 76893.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377698585; 1; 2599.9993; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377698885; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 121633.6; 0.06666666666666667; 2.466666666666667; 0.06666666666666667; 0.5333333333333333 +1377699185; 1; 2599.9993; 0.0; 0.0; 2097152.0; 155188.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377699485; 1; 2599.9993; 0.0; 0.0; 2097152.0; 127226.13333333333; 0.0; 0.8; 0.0; 0.0 +1377699785; 1; 2599.9993; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.8; 0.0; 0.0 +1377700085; 1; 2599.9993; 0.0; 0.0; 2097152.0; 138411.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377700385; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 149595.46666666667; 0.06666666666666667; 1.4666666666666666; 0.13333333333333333; 0.06666666666666667 +1377700685; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 109050.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377700985; 1; 2599.9993; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377701285; 1; 2599.9993; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.8; 0.0; 0.0 +1377701585; 1; 2599.9993; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.8; 0.0; 0.0 +1377701885; 1; 2599.9993; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1377702185; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 97865.33333333333; 0.0; 0.8; 0.0; 0.0 +1377702485; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 107652.26666666666; 0.0; 2.066666666666667; 0.06666666666666667; 0.4666666666666667 +1377702785; 1; 2599.9993; 0.0; 0.0; 2097152.0; 184547.2; 0.0; 0.6666666666666666; 0.0; 0.0 +1377703085; 1; 2599.9993; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 1.0; 0.0; 0.0 +1377703385; 1; 2599.9993; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377703685; 1; 2599.9993; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.8; 0.0; 0.0 +1377703985; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 123031.73333333334; 0.0; 6.8; 0.2; 0.13333333333333333 +1377704285; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377704585; 1; 2599.9993; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 1.2666666666666666; 0.0; 0.0 +1377704885; 1; 2599.9993; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.8; 0.0; 0.0 +1377705185; 1; 2599.9993; 74.53331326666667; 2.8666666666666667; 2097152.0; 657105.6; 161.33333333333334; 22.2; 0.26666666666666666; 0.4 +1377705485; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 374688.26666666666; 0.0; 5.133333333333334; 1.2666666666666666; 0.0 +1377705785; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 218101.33333333334; 31.8; 3.4; 0.0; 0.0 +1377706085; 1; 2599.9993; 10.3999972; 0.4; 2097152.0; 160780.53333333333; 0.0; 3.8; 0.0; 0.5333333333333333 +1377706385; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 137013.06666666668; 0.0; 1.3333333333333333; 0.0; 0.0 +1377706685; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 139809.33333333334; 0.0; 11.533333333333333; 0.0; 0.0 +1377706986; 1; 2599.9993; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377707286; 1; 2599.9993; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 1.0; 0.0; 0.0 +1377707586; 1; 2599.9993; 0.0; 0.0; 2097152.0; 128624.26666666666; 0.0; 0.5333333333333333; 0.0; 0.0 +1377707886; 1; 2599.9993; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 0.6; 0.0; 0.0 +1377708186; 1; 2599.9993; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1377708486; 1; 2599.9993; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.6; 0.06666666666666667; 0.0 +1377708786; 1; 2599.9993; 0.0; 0.0; 2097152.0; 124429.86666666667; 0.0; 1.0; 0.0; 0.0 +1377709086; 1; 2599.9993; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.6; 0.0; 0.0 +1377709386; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 102059.73333333334; 0.0; 6.866666666666666; 0.26666666666666666; 0.2 +1377709686; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 152392.53333333333; 0.0; 2.4; 0.06666666666666667; 0.4666666666666667 +1377709986; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 131420.53333333333; 0.0; 0.8; 0.0; 0.0 +1377710286; 1; 2599.9993; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1377710586; 1; 2599.9993; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1377710886; 1; 2599.9993; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1377711186; 1; 2599.9993; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.6; 0.0; 0.0 +1377711486; 1; 2599.9993; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377711786; 1; 2599.9993; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377712086; 1; 2599.9993; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377712386; 1; 2599.9993; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1377712686; 1; 2599.9993; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.6; 0.0; 0.0 +1377712986; 1; 2599.9993; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377713286; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 110448.26666666666; 0.2; 2.2666666666666666; 0.06666666666666667; 0.5333333333333333 +1377713586; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 142604.53333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1377713886; 1; 2599.9993; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1377714186; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 111846.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377714486; 1; 2599.9993; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377714786; 1; 2599.9993; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.6; 0.0; 0.0 +1377715086; 1; 2599.9993; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.5333333333333333; 0.0; 0.0 +1377715386; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 89476.53333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1377715686; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 130021.6; 0.0; 7.066666666666666; 0.2; 0.13333333333333333 +1377715987; 1; 2599.9993; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377716287; 1; 2599.9993; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 0.6; 0.0; 0.0 +1377716587; 1; 2599.9993; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 0.6; 0.0; 0.0 +1377716887; 1; 2599.9993; 6.933331466666666; 0.26666666666666666; 2097152.0; 86680.26666666666; 0.0; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1377717187; 1; 2599.9993; 0.0; 0.0; 2097152.0; 144003.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1377717487; 1; 2599.9993; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 0.5333333333333333; 0.0; 0.0 +1377717787; 1; 2599.9993; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377718087; 1; 2599.9993; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377718387; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 88078.4; 161.73333333333332; 13.333333333333334; 0.0; 0.06666666666666667 +1377718687; 1; 2599.9993; 38.13332306666666; 1.4666666666666666; 2097152.0; 517296.0; 0.0; 2.2666666666666666; 0.0; 0.06666666666666667 +1377718987; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 223694.4; 0.0; 1.3333333333333333; 0.0; 0.0 +1377719286; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 197129.33333333334; 31.8; 3.8666666666666667; 0.0; 0.0 +1377719586; 1; 2599.9993; 0.0; 0.0; 2097152.0; 127225.6; 0.0; 0.8; 0.0; 0.0 +1377719886; 1; 2599.9993; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377720186; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 132818.4; 0.0; 1.2666666666666666; 0.0; 0.0 +1377720486; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 141206.66666666666; 0.0; 2.466666666666667; 0.06666666666666667; 0.4666666666666667 +1377720786; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 169168.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377721086; 1; 2599.9993; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1377721386; 1; 2599.9993; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1377721686; 1; 2599.9993; 0.0; 0.0; 2097152.0; 76893.33333333333; 0.0; 0.8; 0.0; 0.0 +1377721986; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 93670.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377722286; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 104856.0; 0.0; 7.133333333333334; 0.2; 0.13333333333333333 +1377722586; 1; 2599.9993; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1377722886; 1; 2599.9993; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377723186; 1; 2599.9993; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377723486; 1; 2599.9993; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377723787; 1; 2599.9993; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377724087; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 88078.4; 0.06666666666666667; 2.533333333333333; 0.06666666666666667; 0.5333333333333333 +1377724387; 1; 2599.9993; 0.0; 0.0; 2097152.0; 148196.53333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377724687; 1; 2599.9993; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377724987; 1; 2599.9993; 0.0; 0.0; 2097152.0; 124429.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377725287; 1; 2599.9993; 0.0; 0.0; 2097152.0; 162177.33333333334; 0.0; 0.8; 0.0; 0.0 +1377725587; 1; 2599.9993; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1377725887; 1; 2599.9993; 0.0; 0.0; 2097152.0; 130022.4; 0.0; 0.8; 0.0; 0.0 +1377726187; 1; 2599.9993; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377726487; 1; 2599.9993; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1377726787; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377727087; 1; 2599.9993; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1377727387; 1; 2599.9993; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377727687; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 127225.86666666667; 0.06666666666666667; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1377727987; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 170566.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377728287; 1; 2599.9993; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377728587; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 128624.26666666666; 0.0; 7.0; 0.26666666666666666; 0.13333333333333333 +1377728887; 1; 2599.9993; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1377729187; 1; 2599.9993; 6.933331466666666; 0.26666666666666666; 2097152.0; 81087.73333333334; 0.06666666666666667; 1.3333333333333333; 0.06666666666666667; 0.06666666666666667 +1377729487; 1; 2599.9993; 0.0; 0.0; 2097152.0; 144003.73333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1377729787; 1; 2599.9993; 0.0; 0.0; 2097152.0; 113244.26666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1377730087; 1; 2599.9993; 0.0; 0.0; 2097152.0; 138409.86666666667; 0.0; 0.8; 0.0; 0.0 +1377730387; 1; 2599.9993; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1377730687; 1; 2599.9993; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 1.0; 0.0; 0.0 +1377730987; 1; 2599.9993; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377731288; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 138410.4; 0.4666666666666667; 2.2666666666666666; 0.0; 0.5333333333333333 +1377731588; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 138410.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377731888; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 79689.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1377732188; 1; 2599.9993; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377732488; 1; 2599.9993; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.6; 0.0; 0.0 +1377732788; 1; 2599.9993; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.8; 0.0; 0.0 +1377733088; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 67106.4; 0.0; 1.0; 0.0; 0.0 +1377733388; 1; 2599.9993; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.6; 0.0; 0.0 +1377733688; 1; 2599.9993; 0.0; 0.0; 2097152.0; 131420.53333333333; 0.0; 1.2666666666666666; 0.0; 0.0 +1377733988; 1; 2599.9993; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377734288; 1; 2599.9993; 0.0; 0.0; 2097152.0; 128624.26666666666; 0.0; 0.8; 0.0; 0.0 +1377734588; 1; 2599.9993; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1377734888; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 111846.66666666667; 0.06666666666666667; 2.533333333333333; 0.06666666666666667; 0.4666666666666667 +1377735188; 1; 2599.9993; 0.0; 0.0; 2097152.0; 171964.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377735488; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 146799.2; 0.06666666666666667; 6.933333333333334; 0.2; 0.13333333333333333 +1377735788; 1; 2599.9993; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 1.4; 0.0; 0.0 +1377736088; 1; 2599.9993; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1377736388; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 130022.4; 0.0; 1.4; 0.0; 0.0 +1377736688; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1377736988; 1; 2599.9993; 0.0; 0.0; 2097152.0; 69902.66666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1377737288; 1; 2599.9993; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1377737588; 1; 2599.9993; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1377738188; 1; 2599.9993; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 0.6; 0.0; 0.0 +1377738489; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 106253.33333333333; 0.0; 2.066666666666667; 0.06666666666666667; 0.4666666666666667 +1377738789; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 149594.66666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1377739089; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 123031.73333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1377739389; 1; 2599.9993; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.8; 0.0; 0.0 +1377739689; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.6; 0.0; 0.0 +1377739989; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 99263.46666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1377740289; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 107652.26666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1377740589; 1; 2599.9993; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1377740889; 1; 2599.9993; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377741189; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 144002.66666666666; 0.0; 7.133333333333334; 0.26666666666666666; 0.13333333333333333 +1377741489; 1; 2599.9993; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377741789; 1; 2599.9993; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 1.0; 0.0; 0.0 +1377742089; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 92272.8; 0.0; 2.4; 0.06666666666666667; 0.4666666666666667 +1377742389; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 118837.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377742689; 1; 2599.9993; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377742989; 1; 2599.9993; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377743289; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 99263.46666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1377743589; 1; 2599.9993; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377743889; 1; 2599.9993; 0.0; 0.0; 2097152.0; 127225.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377744189; 1; 2599.9993; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1377744489; 1; 2599.9993; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377744789; 1; 2599.9993; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1377745089; 1; 2599.9993; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377745389; 1; 2599.9993; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377745689; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 131420.53333333333; 0.0; 2.533333333333333; 0.06666666666666667; 0.4666666666666667 +1377745989; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 171964.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1377746289; 1; 2599.9993; 0.0; 0.0; 2097152.0; 127225.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377746589; 1; 2599.9993; 0.0; 0.0; 2097152.0; 142604.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377746889; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377747189; 1; 2599.9993; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377747489; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 92272.8; 0.2; 7.133333333333334; 0.3333333333333333; 0.13333333333333333 +1377747789; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 142605.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1377748089; 1; 2599.9993; 0.0; 0.0; 2097152.0; 146799.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1377748389; 1; 2599.9993; 0.0; 0.0; 2097152.0; 134216.8; 0.0; 1.0; 0.0; 0.0 +1377748690; 1; 2599.9993; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1377748990; 1; 2599.9993; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 1.0; 0.0; 0.0 +1377749290; 1; 2599.9993; 8.666664333333335; 0.33333333333333337; 2097152.0; 96467.2; 0.0; 2.3333333333333335; 0.0; 0.4666666666666667 +1377749590; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377749890; 1; 2599.9993; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377750190; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 113244.8; 0.0; 11.933333333333334; 0.0; 0.0 +1377750490; 1; 2599.9993; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377750790; 1; 2599.9993; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377751090; 1; 2599.9993; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377751390; 1; 2599.9993; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1377751690; 1; 2599.9993; 0.0; 0.0; 2097152.0; 138411.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1377751990; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.0; 0.0; 0.0 +1377752289; 1; 2599.9993; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377752589; 1; 2599.9993; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377752889; 1; 2599.9993; 12.133330066666666; 0.4666666666666666; 2097152.0; 142604.53333333333; 0.0; 8.8; 0.26666666666666666; 0.6666666666666666 +1377753189; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 171965.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1377753489; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377753789; 1; 2599.9993; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377754089; 1; 2599.9993; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377754389; 1; 2599.9993; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 1.0; 0.0; 0.0 +1377754689; 1; 2599.9993; 0.0; 0.0; 2097152.0; 135614.93333333332; 0.0; 0.8; 0.0; 0.0 +1377754989; 1; 2599.9993; 0.0; 0.0; 2097152.0; 125827.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1377755289; 1; 2599.9993; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1377755589; 1; 2599.9993; 0.0; 0.0; 2097152.0; 167770.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1377755890; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377756190; 1; 2599.9993; 0.0; 0.0; 2097152.0; 71300.8; 0.0; 0.8; 0.0; 0.0 +1377756490; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 103456.8; 0.06666666666666667; 2.466666666666667; 0.06666666666666667; 0.4666666666666667 +1377756790; 1; 2599.9993; 0.0; 0.0; 2097152.0; 159381.6; 0.06666666666666667; 0.8666666666666667; 0.0; 0.0 +1377757090; 1; 2599.9993; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377757390; 1; 2599.9993; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 1.0; 0.0; 0.0 +1377757690; 1; 2599.9993; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377757990; 1; 2599.9993; 6.933331466666666; 0.26666666666666666; 2097152.0; 96467.2; 0.0; 1.9333333333333333; 0.06666666666666667; 0.06666666666666667 +1377758290; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 121633.6; 0.0; 1.6; 0.0; 0.0 +1377758590; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 83884.0; 0.0; 1.3333333333333333; 0.0; 0.0 +1377758890; 1; 2599.9993; 6.933331466666666; 0.26666666666666666; 2097152.0; 149594.66666666666; 12.733333333333333; 12.866666666666667; 0.26666666666666666; 0.13333333333333333 +1377759190; 1; 2599.9993; 0.0; 0.0; 2097152.0; 138411.2; 0.0; 1.4; 0.0; 0.0 +1377759490; 1; 2599.9993; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.7333333333333333; 0.0; 0.0 +1377759790; 1; 2599.9993; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1377760090; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 120235.46666666666; 0.06666666666666667; 2.6; 0.0; 0.4666666666666667 +1377760390; 1; 2599.9993; 0.0; 0.0; 2097152.0; 176158.4; 0.0; 0.8; 0.0; 0.0 +1377760690; 1; 2599.9993; 0.0; 0.0; 2097152.0; 125827.2; 0.0; 0.8; 0.0; 0.0 +1377760990; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8; 0.0; 0.0 +1377761290; 1; 2599.9993; 0.0; 0.0; 2097152.0; 62912.0; 0.0; 1.0; 0.0; 0.0 +1377761590; 1; 2599.9993; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.8; 0.0; 0.0 +1377761890; 1; 2599.9993; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377762190; 1; 2599.9993; 57.19998460000001; 2.2; 2097152.0; 634736.5333333333; 161.06666666666666; 22.533333333333335; 0.06666666666666667; 0.4 +1377762490; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 507508.8; 0.0; 2.7333333333333334; 0.0; 0.0 +1377762790; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 260044.8; 31.8; 3.8666666666666667; 0.0; 0.0 +1377763090; 1; 2599.9993; 6.933331466666666; 0.26666666666666666; 2097152.0; 159382.4; 0.0; 2.2; 0.0; 0.0 +1377763390; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 145401.06666666668; 0.0; 2.2666666666666666; 0.0; 0.0 +1377763690; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 117439.2; 0.0; 2.4; 0.06666666666666667; 0.4666666666666667 +1377763990; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 163576.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1377764290; 1; 2599.9993; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1377764590; 1; 2599.9993; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377764890; 1; 2599.9993; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1377765191; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 113244.8; 0.0; 6.733333333333333; 0.2; 0.13333333333333333 +1377765491; 1; 2599.9993; 6.933331466666666; 0.26666666666666666; 2097152.0; 117438.4; 0.0; 1.3333333333333333; 0.0; 0.0 +1377765791; 1; 2599.9993; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.8; 0.0; 0.0 +1377766091; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 117439.2; 0.0; 0.8; 0.06666666666666667; 0.0 +1377766391; 1; 2599.9993; 0.0; 0.0; 2097152.0; 67106.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1377766691; 1; 2599.9993; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 1.0; 0.0; 0.0 +1377766991; 1; 2599.9993; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377767291; 1; 2599.9993; 6.933331466666666; 0.26666666666666666; 2097152.0; 180353.06666666668; 0.0; 2.2; 0.06666666666666667; 0.4666666666666667 +1377767591; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 216704.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377767891; 1; 2599.9993; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.6666666666666666; 0.0; 0.0 +1377768191; 1; 2599.9993; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 1.0; 0.0; 0.0 +1377768491; 1; 2599.9993; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8; 0.0; 0.0 +1377768791; 1; 2599.9993; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.8; 0.0; 0.0 +1377769091; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 81087.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1377769391; 1; 2599.9993; 0.0; 0.0; 2097152.0; 72698.93333333333; 0.0; 1.0; 0.0; 0.0 +1377769691; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 57319.46666666667; 0.0; 1.2; 0.0; 0.0 +1377769991; 1; 2599.9993; 0.0; 0.0; 2097152.0; 68504.53333333334; 0.0; 0.8; 0.0; 0.0 +1377770291; 1; 2599.9993; 0.0; 0.0; 2097152.0; 64310.13333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1377770591; 1; 2599.9993; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1377770891; 1; 2599.9993; 6.933331466666666; 0.26666666666666666; 2097152.0; 107652.26666666666; 0.06666666666666667; 2.6666666666666665; 0.0; 0.4666666666666667 +1377771191; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 145401.06666666668; 0.0; 0.8; 0.0; 0.0 +1377771491; 1; 2599.9993; 0.0; 0.0; 2097152.0; 131420.53333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377771791; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377772091; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 137013.06666666668; 0.06666666666666667; 6.666666666666667; 0.2; 0.13333333333333333 +1377772391; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 1.3333333333333333; 0.0; 0.0 +1377772691; 1; 2599.9993; 0.0; 0.0; 2097152.0; 130022.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377772991; 1; 2599.9993; 0.0; 0.0; 2097152.0; 131420.0; 0.0; 0.8; 0.0; 0.0 +1377773291; 1; 2599.9993; 0.0; 0.0; 2097152.0; 109050.13333333333; 0.0; 1.0; 0.0; 0.0 +1377773591; 1; 2599.9993; 0.0; 0.0; 2097152.0; 76893.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377773891; 1; 2599.9993; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377774191; 1; 2599.9993; 0.0; 0.0; 2097152.0; 124429.86666666667; 0.0; 0.8; 0.0; 0.0 +1377774491; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 113244.8; 0.0; 2.2; 0.0; 0.4666666666666667 +1377774791; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 197130.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377775091; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 120235.46666666666; 0.0; 1.0; 0.0; 0.0 +1377775391; 1; 2599.9993; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8; 0.0; 0.0 +1377775691; 1; 2599.9993; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377775991; 1; 2599.9993; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377776291; 1; 2599.9993; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1377776591; 1; 2599.9993; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1377776892; 1; 2599.9993; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 1.2; 0.0; 0.0 +1377777192; 1; 2599.9993; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1377777492; 1; 2599.9993; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377777792; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 120235.46666666666; 0.0; 6.866666666666666; 0.26666666666666666; 0.13333333333333333 +1377778092; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 138410.4; 0.0; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1377778392; 1; 2599.9993; 0.0; 0.0; 2097152.0; 135614.93333333332; 0.0; 0.9333333333333333; 0.0; 0.0 +1377778692; 1; 2599.9993; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1377778992; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 124429.86666666667; 0.0; 0.5333333333333333; 0.0; 0.0 +1377779292; 1; 2599.9993; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377779592; 1; 2599.9993; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1377779892; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 93670.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377780192; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 102059.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1377780492; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 93670.93333333333; 0.0; 1.6666666666666667; 0.0; 0.0 +1377780792; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1377781092; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 99263.46666666666; 0.0; 0.6; 4.066666666666666; 0.0 +1377781392; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 124429.86666666667; 0.0; 0.6; 0.0; 0.0 +1377781692; 1; 2599.9993; 8.666664333333335; 0.33333333333333337; 2097152.0; 103457.86666666667; 0.0; 2.1333333333333333; 0.0; 0.4666666666666667 +1377781992; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 166372.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1377782292; 1; 2599.9993; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.5333333333333333; 0.0; 0.0 +1377782592; 1; 2599.9993; 0.0; 0.0; 2097152.0; 76893.33333333333; 0.0; 0.6; 0.0; 0.0 +1377782892; 1; 2599.9993; 0.0; 0.0; 2097152.0; 68504.53333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1377783192; 1; 2599.9993; 0.0; 0.0; 2097152.0; 120234.66666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377783492; 1; 2599.9993; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 1.0; 0.0; 0.0 +1377783792; 1; 2599.9993; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1377784092; 1; 2599.9993; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377784392; 1; 2599.9993; 0.0; 0.0; 2097152.0; 131419.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377784692; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 106254.13333333333; 0.0; 7.0; 0.2; 0.13333333333333333 +1377784992; 1; 2599.9993; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.6; 0.0; 0.0 +1377785292; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 96467.2; 0.06666666666666667; 2.066666666666667; 0.06666666666666667; 0.4666666666666667 +1377785591; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 159381.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377785891; 1; 2599.9993; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377786192; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 114642.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377786492; 1; 2599.9993; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 0.6; 0.0; 0.0 +1377786792; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 92272.8; 0.06666666666666667; 1.4; 0.06666666666666667; 0.13333333333333333 +1377787092; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 104856.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377787392; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 97865.33333333333; 0.0; 0.6; 0.0; 0.0 +1377787692; 1; 2599.9993; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1377787992; 1; 2599.9993; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1377788292; 1; 2599.9993; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1377788592; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 97865.33333333333; 0.06666666666666667; 1.0; 0.0; 0.0 +1377788892; 1; 2599.9993; 6.933331466666666; 0.26666666666666666; 2097152.0; 118837.33333333333; 0.0; 2.3333333333333335; 0.26666666666666666; 0.4666666666666667 +1377789192; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 162177.86666666667; 0.0; 0.8; 0.0; 0.0 +1377789492; 1; 2599.9993; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.6; 0.0; 0.0 +1377789792; 1; 2599.9993; 0.0; 0.0; 2097152.0; 68504.53333333334; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1377790092; 1; 2599.9993; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1377790392; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 124429.06666666667; 0.0; 7.066666666666666; 0.2; 0.13333333333333333 +1377790692; 1; 2599.9993; 0.0; 0.0; 2097152.0; 128624.26666666666; 0.0; 0.8; 0.0; 0.0 +1377790992; 1; 2599.9993; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.6; 0.0; 0.0 +1377791292; 1; 2599.9993; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 1.0; 0.0; 0.0 +1377791592; 1; 2599.9993; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377791892; 1; 2599.9993; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1377792192; 1; 2599.9993; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1377792492; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 114642.93333333333; 0.0; 2.2666666666666666; 0.0; 0.4666666666666667 +1377792792; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 146798.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1377793092; 1; 2599.9993; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1377793392; 1; 2599.9993; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377793692; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 106254.13333333333; 0.0; 11.733333333333333; 0.0; 0.0 +1377793992; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 131420.53333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377794292; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1377794592; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 111846.66666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1377794892; 1; 2599.9993; 0.0; 0.0; 2097152.0; 135614.93333333332; 0.0; 1.0; 0.0; 0.0 +1377795192; 1; 2599.9993; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377795492; 1; 2599.9993; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377795793; 1; 2599.9993; 0.0; 0.0; 2097152.0; 74097.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1377796093; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 125828.0; 0.06666666666666667; 2.533333333333333; 0.06666666666666667; 0.4666666666666667 +1377796393; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 159381.6; 0.0; 7.066666666666666; 0.26666666666666666; 0.13333333333333333 +1377796693; 1; 2599.9993; 0.0; 0.0; 2097152.0; 131420.53333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377796993; 1; 2599.9993; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377797293; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 88078.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1377797593; 1; 2599.9993; 0.0; 0.0; 2097152.0; 135614.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377797893; 1; 2599.9993; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377798193; 1; 2599.9993; 0.0; 0.0; 2097152.0; 146800.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377798493; 1; 2599.9993; 0.0; 0.0; 2097152.0; 135614.93333333332; 0.0; 1.1333333333333333; 0.0; 0.0 +1377798793; 1; 2599.9993; 0.0; 0.0; 2097152.0; 155187.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377799093; 1; 2599.9993; 0.0; 0.0; 2097152.0; 139809.33333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1377799393; 1; 2599.9993; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377799693; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 81087.73333333334; 0.06666666666666667; 2.4; 0.06666666666666667; 0.4666666666666667 +1377799993; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 107652.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1377800293; 1; 2599.9993; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377800593; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377800893; 1; 2599.9993; 0.0; 0.0; 2097152.0; 169168.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377801193; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377801493; 1; 2599.9993; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1377801793; 1; 2599.9993; 6.933331466666666; 0.26666666666666666; 2097152.0; 103457.86666666667; 0.0; 6.733333333333333; 0.2; 0.13333333333333333 +1377802093; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377802393; 1; 2599.9993; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 1.0; 0.0; 0.0 +1377802693; 1; 2599.9993; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1377802993; 1; 2599.9993; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377803293; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 99263.46666666666; 0.0; 2.066666666666667; 0.06666666666666667; 0.4666666666666667 +1377803593; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 160779.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377803893; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377804194; 1; 2599.9993; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1377804494; 1; 2599.9993; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377804794; 1; 2599.9993; 0.0; 0.0; 2097152.0; 69902.66666666667; 0.0; 0.8; 0.0; 0.0 +1377805094; 1; 2599.9993; 39.866655933333334; 1.5333333333333334; 2097152.0; 436205.86666666664; 161.0; 14.2; 0.0; 0.2 +1377805394; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 257248.26666666666; 0.0; 1.4; 0.0; 0.0 +1377805694; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 184547.73333333334; 31.8; 3.7333333333333334; 0.0; 0.0 +1377805994; 1; 2599.9993; 0.0; 0.0; 2097152.0; 155187.46666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377806294; 1; 2599.9993; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377806594; 1; 2599.9993; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.6; 0.0; 0.0 +1377806894; 1; 2599.9993; 6.933331466666666; 0.26666666666666666; 2097152.0; 90874.66666666667; 0.06666666666666667; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1377807194; 1; 2599.9993; 0.0; 0.0; 2097152.0; 153789.06666666668; 0.0; 0.5333333333333333; 0.0; 0.0 +1377807494; 1; 2599.9993; 0.0; 0.0; 2097152.0; 169169.33333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377807794; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 131420.26666666666; 0.06666666666666667; 6.8; 0.2; 0.13333333333333333 +1377808094; 1; 2599.9993; 0.0; 0.0; 2097152.0; 130021.86666666667; 0.0; 0.6; 0.0; 0.0 +1377808394; 1; 2599.9993; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 1.0; 0.0; 0.0 +1377808694; 1; 2599.9993; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1377808994; 1; 2599.9993; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1377809294; 1; 2599.9993; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.6; 0.0; 0.0 +1377809594; 1; 2599.9993; 0.0; 0.0; 2097152.0; 141207.46666666667; 0.0; 1.0; 0.0; 0.0 +1377809894; 1; 2599.9993; 0.0; 0.0; 2097152.0; 132818.66666666666; 0.0; 0.8; 0.0; 0.0 +1377810194; 1; 2599.9993; 0.0; 0.0; 2097152.0; 127226.13333333333; 0.0; 0.6; 0.0; 0.0 +1377810494; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 124429.06666666667; 0.0; 1.8666666666666667; 0.06666666666666667; 0.4666666666666667 +1377810794; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 180353.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1377811094; 1; 2599.9993; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 1.0; 0.0; 0.0 +1377811394; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 116041.06666666667; 0.0; 0.6; 0.06666666666666667; 0.0 +1377811694; 1; 2599.9993; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.6; 0.0; 0.0 +1377811994; 1; 2599.9993; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.6; 0.0; 0.0 +1377812294; 1; 2599.9993; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8; 0.0; 0.0 +1377812594; 1; 2599.9993; 0.0; 0.0; 2097152.0; 163576.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377812894; 1; 2599.9993; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377813194; 1; 2599.9993; 0.0; 0.0; 2097152.0; 71300.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377813494; 1; 2599.9993; 0.0; 0.0; 2097152.0; 76893.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377813794; 1; 2599.9993; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1377814094; 1; 2599.9993; 10.3999972; 0.4; 2097152.0; 92272.8; 0.0; 8.0; 0.3333333333333333; 0.6666666666666666 +1377814395; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 145401.06666666668; 0.0; 0.8666666666666667; 0.0; 0.0 +1377814695; 1; 2599.9993; 0.0; 0.0; 2097152.0; 146800.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377814995; 1; 2599.9993; 0.0; 0.0; 2097152.0; 138411.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377815295; 1; 2599.9993; 17.33332866666667; 0.6666666666666667; 2097152.0; 160780.53333333333; 161.0; 20.6; 0.06666666666666667; 0.4 +1377815595; 1; 2599.9993; 48.533320266666664; 1.8666666666666665; 2097152.0; 781536.8; 0.0; 4.2; 0.06666666666666667; 0.13333333333333333 +1377815895; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 367698.93333333335; 31.8; 3.0; 0.0; 0.0 +1377816195; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 219500.0; 0.0; 2.6; 0.0; 0.0 +1377816495; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 134216.8; 0.0; 1.8; 0.0; 0.0 +1377816795; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 132818.66666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1377817095; 1; 2599.9993; 0.0; 0.0; 2097152.0; 134216.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377817395; 1; 2599.9993; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377817694; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 114642.66666666667; 0.2; 2.7333333333333334; 0.0; 0.4666666666666667 +1377817994; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 157982.93333333332; 0.0; 1.1333333333333333; 0.0; 0.0 +1377818294; 1; 2599.9993; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377818594; 1; 2599.9993; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377818894; 1; 2599.9993; 0.0; 0.0; 2097152.0; 128624.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377819194; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 102059.73333333334; 0.2; 1.0; 0.0; 0.0 +1377819494; 1; 2599.9993; 0.0; 0.0; 2097152.0; 127226.13333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1377819794; 1; 2599.9993; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1377820094; 1; 2599.9993; 0.0; 0.0; 2097152.0; 141206.66666666666; 0.0; 1.2; 0.0; 0.0 +1377820394; 1; 2599.9993; 6.933331466666666; 0.26666666666666666; 2097152.0; 170566.66666666666; 12.733333333333333; 16.8; 0.4; 0.13333333333333333 +1377820694; 1; 2599.9993; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 1.5333333333333334; 0.0; 0.0 +1377820994; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377821294; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 114642.13333333333; 0.0; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1377821594; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 157983.46666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377821894; 1; 2599.9993; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377822194; 1; 2599.9993; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1377822494; 1; 2599.9993; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377822794; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 146800.0; 0.0; 1.4; 0.0; 0.0 +1377823094; 1; 2599.9993; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377823394; 1; 2599.9993; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1377823694; 1; 2599.9993; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377823994; 1; 2599.9993; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1377824294; 1; 2599.9993; 0.0; 0.0; 2097152.0; 71300.8; 0.0; 0.8; 0.0; 0.0 +1377824595; 1; 2599.9993; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1377824895; 1; 2599.9993; 6.933331466666666; 0.26666666666666666; 2097152.0; 117438.93333333333; 0.0; 3.2; 0.06666666666666667; 0.4666666666666667 +1377825195; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 145400.53333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377825495; 1; 2599.9993; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.8; 0.0; 0.0 +1377825795; 1; 2599.9993; 0.0; 0.0; 2097152.0; 114642.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377826095; 1; 2599.9993; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1377826395; 1; 2599.9993; 8.666664333333335; 0.33333333333333337; 2097152.0; 90874.66666666667; 0.0; 7.2; 0.2; 0.13333333333333333 +1377826695; 1; 2599.9993; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377826995; 1; 2599.9993; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377827295; 1; 2599.9993; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377827595; 1; 2599.9993; 0.0; 0.0; 2097152.0; 128624.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1377827895; 1; 2599.9993; 0.0; 0.0; 2097152.0; 127226.13333333333; 0.0; 0.8; 0.0; 0.0 +1377828195; 1; 2599.9993; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377828495; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 130021.6; 0.0; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1377828795; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 167771.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377829095; 1; 2599.9993; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 1.0; 0.0; 0.0 +1377829395; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8; 0.0; 0.0 +1377829695; 1; 2599.9993; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377829995; 1; 2599.9993; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8; 0.0; 0.0 +1377830295; 1; 2599.9993; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377830595; 1; 2599.9993; 0.0; 0.0; 2097152.0; 125827.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377830895; 1; 2599.9993; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.8; 0.0; 0.0 +1377831195; 1; 2599.9993; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377831495; 1; 2599.9993; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1377831795; 1; 2599.9993; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 1.0; 0.0; 0.0 +1377832095; 1; 2599.9993; 10.3999972; 0.4; 2097152.0; 125826.93333333333; 0.06666666666666667; 8.6; 0.2; 0.6 +1377832395; 1; 2599.9993; 0.0; 0.0; 2097152.0; 146798.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1377832695; 1; 2599.9993; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377832995; 1; 2599.9993; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 0.8; 0.0; 0.0 +1377833295; 1; 2599.9993; 0.0; 0.0; 2097152.0; 130022.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1377833595; 1; 2599.9993; 0.0; 0.0; 2097152.0; 159382.13333333333; 0.0; 0.8; 0.0; 0.0 +1377833895; 1; 2599.9993; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377834195; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 95069.06666666667; 0.0; 1.0; 0.0; 0.0 +1377834495; 1; 2599.9993; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 1.2666666666666666; 0.0; 0.0 +1377834795; 1; 2599.9993; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8; 0.0; 0.0 +1377835095; 1; 2599.9993; 0.0; 0.0; 2097152.0; 134216.0; 0.0; 0.8; 0.0; 0.0 +1377835395; 1; 2599.9993; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.8; 0.0; 0.0 +1377835695; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 103457.86666666667; 0.0; 2.2; 0.0; 0.4666666666666667 +1377835996; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 142605.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1377836296; 1; 2599.9993; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377836596; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377836896; 1; 2599.9993; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377837196; 1; 2599.9993; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377837496; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 109050.4; 0.0; 11.733333333333333; 0.0; 0.0 +1377837796; 1; 2599.9993; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8; 0.0; 0.0 +1377838096; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 127226.13333333333; 0.0; 6.933333333333334; 0.2; 0.13333333333333333 +1377838396; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377838696; 1; 2599.9993; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1377838996; 1; 2599.9993; 0.0; 0.0; 2097152.0; 67106.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1377839296; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 89476.53333333334; 0.0; 1.9333333333333333; 0.06666666666666667; 0.4666666666666667 +1377839596; 1; 2599.9993; 0.0; 0.0; 2097152.0; 163576.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377839896; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 99263.46666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1377840196; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1377840496; 1; 2599.9993; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.8; 0.0; 0.0 +1377840796; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 145401.86666666667; 0.0; 1.6666666666666667; 0.0; 0.0 +1377841096; 1; 2599.9993; 0.0; 0.0; 2097152.0; 146799.2; 0.0; 1.0; 0.0; 0.0 +1377841396; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 100661.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1377841696; 1; 2599.9993; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.8; 0.0; 0.0 +1377841996; 1; 2599.9993; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377842296; 1; 2599.9993; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8; 0.0; 0.0 +1377842596; 1; 2599.9993; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377842896; 1; 2599.9993; 6.933331466666666; 0.26666666666666666; 2097152.0; 113244.8; 0.06666666666666667; 2.6666666666666665; 0.06666666666666667; 0.4666666666666667 +1377843196; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 159382.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377843496; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 113244.8; 0.06666666666666667; 6.933333333333334; 0.2; 0.13333333333333333 +1377843796; 1; 2599.9993; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1377844096; 1; 2599.9993; 0.0; 0.0; 2097152.0; 106253.6; 0.0; 0.8; 0.0; 0.0 +1377844396; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 141205.86666666667; 0.0; 1.9333333333333333; 0.06666666666666667; 0.13333333333333333 +1377844696; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 130022.4; 0.0; 1.4666666666666666; 0.0; 0.0 +1377844997; 1; 2599.9993; 0.0; 0.0; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377845297; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377845597; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.0; 0.0; 0.0 +1377845897; 1; 2599.9993; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.8; 0.0; 0.0 +1377846197; 1; 2599.9993; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1377846497; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 106254.13333333333; 0.0; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1377846797; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 163576.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377847097; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 88078.4; 0.0; 1.0; 0.0; 0.0 +1377847397; 1; 2599.9993; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8; 0.0; 0.0 +1377847697; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8; 0.0; 0.0 +1377847997; 1; 2599.9993; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1377848297; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 138411.2; 0.0; 1.0; 0.0; 0.0 +1377848597; 1; 2599.9993; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 1.3333333333333333; 0.0; 0.0 +1377848897; 1; 2599.9993; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 1.2; 0.0; 0.0 +1377849197; 1; 2599.9993; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.8; 0.0; 0.0 +1377849497; 1; 2599.9993; 8.666664333333335; 0.33333333333333337; 2097152.0; 121633.6; 0.0; 7.333333333333333; 0.26666666666666666; 0.2 +1377849797; 1; 2599.9993; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1377850097; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 100661.6; 0.06666666666666667; 2.533333333333333; 0.06666666666666667; 0.4666666666666667 +1377850397; 1; 2599.9993; 0.0; 0.0; 2097152.0; 130021.6; 0.0; 0.7333333333333333; 0.26666666666666666; 0.0 +1377850696; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.6; 0.06666666666666667; 0.0 +1377850996; 1; 2599.9993; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.8; 0.0; 0.0 +1377851296; 1; 2599.9993; 0.0; 0.0; 2097152.0; 134216.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377851596; 1; 2599.9993; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.6; 0.0; 0.0 +1377851896; 1; 2599.9993; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1377852196; 1; 2599.9993; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377852496; 1; 2599.9993; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 1.0; 0.0; 0.0 +1377852796; 1; 2599.9993; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1377853096; 1; 2599.9993; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.6; 0.0; 0.0 +1377853396; 1; 2599.9993; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.8; 0.0; 0.0 +1377853696; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 120235.46666666666; 0.06666666666666667; 2.466666666666667; 0.06666666666666667; 0.4666666666666667 +1377853996; 1; 2599.9993; 8.666664333333335; 0.33333333333333337; 2097152.0; 159383.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377854297; 1; 2599.9993; 0.0; 0.0; 2097152.0; 100660.8; 0.0; 0.6666666666666666; 0.0; 0.0 +1377854597; 1; 2599.9993; 0.0; 0.0; 2097152.0; 127226.13333333333; 0.0; 0.8; 0.0; 0.0 +1377854897; 1; 2599.9993; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8; 0.06666666666666667; 0.0 +1377855197; 1; 2599.9993; 0.0; 0.0; 2097152.0; 134216.8; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377855497; 1; 2599.9993; 0.0; 0.0; 2097152.0; 138411.2; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377855797; 1; 2599.9993; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.8; 0.13333333333333333; 0.0 +1377856097; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 144003.73333333334; 0.2; 7.133333333333334; 0.2; 0.13333333333333333 +1377856397; 1; 2599.9993; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.5333333333333333; 0.0; 0.0 +1377856697; 1; 2599.9993; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.3333333333333333; 0.0 +1377856997; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 104856.0; 0.0; 1.2666666666666666; 0.0; 0.0 +1377857297; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 127225.06666666667; 0.0; 1.8666666666666667; 0.0; 0.4666666666666667 +1377857597; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 121632.8; 0.0; 0.6666666666666666; 0.0; 0.0 +1377857897; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1377858197; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 99263.46666666666; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1377858497; 1; 2599.9993; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1377858797; 1; 2599.9993; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.5333333333333333; 0.0; 0.0 +1377859097; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 92272.8; 0.0; 0.6666666666666666; 0.0; 0.0 +1377859397; 1; 2599.9993; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1377859697; 1; 2599.9993; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377859997; 1; 2599.9993; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1377860297; 1; 2599.9993; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 0.6; 0.13333333333333333; 0.0 +1377860597; 1; 2599.9993; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377860897; 1; 2599.9993; 6.933331466666666; 0.26666666666666666; 2097152.0; 125827.46666666666; 0.0; 2.466666666666667; 0.06666666666666667; 0.4666666666666667 +1377861197; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 192935.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1377861497; 1; 2599.9993; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.6; 0.0; 0.0 +1377861797; 1; 2599.9993; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377862097; 1; 2599.9993; 6.933331466666666; 0.26666666666666666; 2097152.0; 130021.6; 0.0; 6.866666666666666; 0.4; 0.13333333333333333 +1377862397; 1; 2599.9993; 0.0; 0.0; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377862698; 1; 2599.9993; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.6; 0.0; 0.0 +1377862998; 1; 2599.9993; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.6; 0.0; 0.0 +1377863298; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 89476.53333333334; 0.0; 1.0666666666666667; 0.13333333333333333; 0.0 +1377863598; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 79689.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377863898; 1; 2599.9993; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377864198; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 82485.86666666667; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377864498; 1; 2599.9993; 10.3999972; 0.4; 2097152.0; 128624.26666666666; 0.0; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1377864798; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 156586.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377865098; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 128623.46666666666; 0.0; 1.0666666666666667; 0.13333333333333333; 0.0 +1377865398; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377865698; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.2; 0.0 +1377865998; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 132818.66666666666; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377866298; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 103457.86666666667; 0.0; 1.0; 0.06666666666666667; 0.0 +1377866598; 1; 2599.9993; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1377866898; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 75495.2; 0.0; 0.9333333333333333; 3.066666666666667; 0.0 +1377867198; 1; 2599.9993; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377867498; 1; 2599.9993; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377867798; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 99263.46666666666; 0.0; 1.0666666666666667; 0.2; 0.0 +1377868098; 1; 2599.9993; 10.3999972; 0.4; 2097152.0; 181750.93333333332; 0.06666666666666667; 8.533333333333333; 0.4; 0.6 +1377868398; 1; 2599.9993; 6.933331466666666; 0.26666666666666666; 2097152.0; 208315.2; 0.0; 1.0; 0.13333333333333333; 0.0 +1377868698; 1; 2599.9993; 60.66665033333334; 2.3333333333333335; 2097152.0; 227889.33333333334; 161.06666666666666; 21.933333333333334; 0.06666666666666667; 0.4 +1377868998; 1; 2599.9993; 13.866662933333332; 0.5333333333333333; 2097152.0; 673882.4; 0.0; 2.466666666666667; 0.06666666666666667; 0.0 +1377869298; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 285210.13333333336; 31.8; 4.466666666666667; 0.06666666666666667; 0.0 +1377869598; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 208314.4; 0.0; 2.2666666666666666; 0.0; 0.0 +1377869898; 1; 2599.9993; 8.666664333333335; 0.33333333333333337; 2097152.0; 149596.26666666666; 0.0; 1.6; 0.0; 0.0 +1377870198; 1; 2599.9993; 6.933331466666666; 0.26666666666666666; 2097152.0; 109050.4; 0.0; 1.0; 0.0; 0.0 +1377870498; 1; 2599.9993; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.0666666666666667; 0.26666666666666666; 0.0 +1377870798; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 139808.53333333333; 0.0; 1.0; 0.06666666666666667; 0.0 +1377871098; 1; 2599.9993; 0.0; 0.0; 2097152.0; 124429.86666666667; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377871398; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 93670.93333333333; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377871698; 1; 2599.9993; 8.666664333333335; 0.33333333333333337; 2097152.0; 118837.33333333333; 0.0; 2.3333333333333335; 0.13333333333333333; 0.4666666666666667 +1377871998; 1; 2599.9993; 10.3999972; 0.4; 2097152.0; 174760.26666666666; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1377872299; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 138410.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377872599; 1; 2599.9993; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377872899; 1; 2599.9993; 0.0; 0.0; 2097152.0; 75495.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377873199; 1; 2599.9993; 6.933331466666666; 0.26666666666666666; 2097152.0; 114642.93333333333; 0.0; 1.4; 0.06666666666666667; 0.06666666666666667 +1377873499; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 127226.13333333333; 0.0; 1.0; 0.06666666666666667; 0.0 +1377873799; 1; 2599.9993; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 1.0; 0.0; 0.0 +1377874099; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377874399; 1; 2599.9993; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377874699; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 106254.13333333333; 0.0; 1.0666666666666667; 6.666666666666667; 0.0 +1377874999; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 96467.2; 0.0; 6.0; 0.3333333333333333; 0.13333333333333333 +1377875299; 1; 2599.9993; 8.666664333333335; 0.33333333333333337; 2097152.0; 150993.86666666667; 0.0; 3.2; 0.0; 0.5333333333333333 +1377875599; 1; 2599.9993; 6.933331466666666; 0.26666666666666666; 2097152.0; 160780.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377875899; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 96467.2; 0.0; 0.8; 0.13333333333333333; 0.0 +1377876199; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 88078.4; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1377876499; 1; 2599.9993; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.4; 0.0 +1377876799; 1; 2599.9993; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377877099; 1; 2599.9993; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 0.8; 0.06666666666666667; 0.0 +1377877399; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 75495.2; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1377877699; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 79689.6; 0.0; 1.2666666666666666; 0.06666666666666667; 0.0 +1377877999; 1; 2599.9993; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 1.0; 0.06666666666666667; 0.0 +1377878299; 1; 2599.9993; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377878599; 1; 2599.9993; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377878899; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 95068.53333333334; 0.06666666666666667; 2.7333333333333334; 0.13333333333333333; 0.4666666666666667 +1377879199; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 124428.8; 0.0; 0.7333333333333333; 0.0; 0.0 +1377879499; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 125828.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377879799; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 120235.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377880100; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377880400; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 99263.46666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1377880700; 1; 2599.9993; 0.0; 0.0; 2097152.0; 71300.8; 0.0; 0.6666666666666666; 0.0; 0.0 +1377881000; 1; 2599.9993; 15.599995799999999; 0.6; 2097152.0; 128624.26666666666; 12.8; 23.933333333333334; 0.3333333333333333; 0.2 +1377881300; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 134216.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1377881600; 1; 2599.9993; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 1.2; 0.0; 0.0 +1377881900; 1; 2599.9993; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377882200; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 83884.0; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1377882500; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 79689.6; 0.06666666666666667; 2.6; 0.2; 0.4666666666666667 +1377882800; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 132818.66666666666; 0.0; 0.8; 0.0; 0.0 +1377883100; 1; 2599.9993; 5.1999986; 0.2; 2097152.0; 109050.4; 0.0; 1.0; 0.13333333333333333; 0.0 +1377883399; 1; 2599.9993; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.8; 0.06666666666666667; 0.0 +1377883699; 1; 2599.9993; 1.7333328666666665; 0.06666666666666667; 2097152.0; 138411.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377883999; 1; 2599.9993; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377884299; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 79689.6; 0.0; 1.2; 0.0; 0.0 +1377884599; 1; 2599.9993; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377884899; 1; 2599.9993; 3.466665733333333; 0.13333333333333333; 2097152.0; 86680.26666666666; 0.0; 1.0; 0.06666666666666667; 0.0 +1377885199; 1; 2599.9993; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.8; 0.06666666666666667; 0.0 +1377885499; 1; 2599.9993; 0.0; 0.0; 2097152.0; 132817.86666666667; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377885799; 1; 2599.999602; 11.99999816307692; 0.4615384615384615; 2097152.0; 96789.84615384616; 0.0; 0.8333333333333334; 0.0; 0.0 +1377886099; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 162178.4; 0.06666666666666667; 2.3333333333333335; 0.13333333333333333; 0.4666666666666667 +1377886400; 1; 2599.999602; 0.0; 0.0; 2097152.0; 163575.46666666667; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377886700; 1; 2599.999602; 5.199999203999999; 0.2; 2097152.0; 162178.66666666666; 0.0; 7.0; 0.26666666666666666; 0.2 +1377887000; 1; 2599.999602; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1377887300; 1; 2599.999602; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1377887600; 1; 2599.999343; 25.99999343; 1.0; 2097152.0; 119836.0; 0.0; 0.8461538461538461; 0.07692307692307693; 0.0 +1377887900; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 114642.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377888200; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 127226.13333333333; 0.0; 0.8; 0.0; 0.0 +1377888500; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 103457.86666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1377888800; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 125828.0; 0.0; 0.8; 0.5333333333333333; 0.0 +1377889100; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.8; 0.0; 0.0 +1377889400; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 68504.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377889700; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 117439.2; 0.0; 2.466666666666667; 0.0; 0.4666666666666667 +1377890000; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 157984.26666666666; 0.0; 0.8; 0.0; 0.0 +1377890300; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1377890600; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 82485.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377890900; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 86680.26666666666; 0.0; 0.8; 0.0; 0.0 +1377891200; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 95069.06666666667; 0.0; 1.0; 0.0; 0.0 +1377891500; 1; 2599.999343; 50.266653964666666; 1.9333333333333333; 2097152.0; 462770.4; 161.06666666666666; 14.533333333333333; 0.06666666666666667; 0.2 +1377891800; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 276821.6; 0.0; 1.4666666666666666; 0.0; 0.0 +1377892100; 1; 2599.999343; 22.533327639333333; 0.8666666666666667; 2097152.0; 212510.13333333333; 31.8; 4.0; 0.0; 0.0 +1377892400; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 150994.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377892700; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 125828.0; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1377893000; 1; 2599.999343; 22.533327639333333; 0.8666666666666667; 2097152.0; 124429.86666666667; 0.06666666666666667; 7.066666666666666; 0.2; 0.13333333333333333 +1377893300; 1; 2599.999343; 22.533327639333333; 0.8666666666666667; 2097152.0; 142604.26666666666; 0.0; 2.466666666666667; 0.0; 0.5333333333333333 +1377893600; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 148197.06666666668; 0.0; 0.8666666666666667; 0.0; 0.0 +1377893900; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 88078.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1377894200; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377894500; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 86680.26666666666; 0.0; 0.9333333333333333; 0.4666666666666667; 0.0 +1377894800; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 124429.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377895100; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 125828.0; 0.0; 1.0; 1.0666666666666667; 0.0 +1377895400; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 114642.93333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1377895700; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 88078.4; 0.0; 1.0; 0.0; 0.0 +1377896000; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 100661.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1377896300; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377896600; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 113244.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1377896901; 1; 2599.999343; 22.533327639333333; 0.8666666666666667; 2097152.0; 141207.46666666667; 0.0; 2.466666666666667; 0.06666666666666667; 0.5333333333333333 +1377897201; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 144002.93333333332; 0.0; 0.8; 0.0; 0.0 +1377897501; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 93670.93333333333; 0.0; 0.8; 0.0; 0.0 +1377897801; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 95069.06666666667; 0.0; 0.8; 0.0; 0.0 +1377898101; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 81087.73333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1377898401; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 79689.6; 0.0; 0.8; 0.2; 0.0 +1377898701; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 139809.33333333334; 0.0; 6.866666666666666; 0.2; 0.13333333333333333 +1377899001; 1; 2599.999343; 6.933331581333333; 0.26666666666666666; 2097152.0; 131420.53333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377899301; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 123031.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1377899601; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 116041.06666666667; 0.0; 0.8; 0.0; 0.0 +1377899901; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 88078.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1377900201; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377900501; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 130022.13333333333; 0.0; 1.8666666666666667; 0.06666666666666667; 0.4666666666666667 +1377900801; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 159381.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1377901101; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 118836.8; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377901401; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 106253.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1377901701; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 102059.73333333334; 0.0; 1.5333333333333334; 0.0; 0.0 +1377902001; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 114642.93333333333; 0.06666666666666667; 1.7333333333333334; 0.06666666666666667; 0.13333333333333333 +1377902301; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 106254.13333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1377902601; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 96467.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1377902901; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1377903201; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 116041.06666666667; 0.0; 0.9333333333333333; 0.13333333333333333; 0.0 +1377903502; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377903802; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 81087.73333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1377904102; 1; 2599.999343; 25.99999343; 1.0; 2097152.0; 156585.6; 0.26666666666666666; 2.0; 0.06666666666666667; 0.4666666666666667 +1377904402; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 176159.46666666667; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377904702; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 118837.33333333333; 0.0; 0.8; 0.0; 0.0 +1377905002; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 100661.6; 0.0; 7.0; 0.2; 0.13333333333333333 +1377905302; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 139808.53333333333; 0.0; 1.2; 0.06666666666666667; 0.0 +1377905602; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 102059.46666666666; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377905902; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 92272.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377906202; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 90874.66666666667; 0.0; 0.8; 0.0; 0.0 +1377906502; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 85282.13333333333; 0.0; 1.3333333333333333; 0.0; 0.0 +1377906802; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 95069.06666666667; 0.0; 0.8; 0.06666666666666667; 0.0 +1377907102; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 113244.8; 0.0; 0.7333333333333333; 0.0; 0.0 +1377907402; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377907702; 1; 2599.999343; 24.266660534666663; 0.9333333333333332; 2097152.0; 125827.73333333334; 0.0; 2.533333333333333; 0.06666666666666667; 0.5333333333333333 +1377908002; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 169168.0; 0.0; 0.9333333333333333; 0.13333333333333333; 0.0 +1377908302; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 110448.53333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1377908602; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 90874.66666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1377908902; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 89476.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377909202; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 110448.53333333334; 0.0; 1.4666666666666666; 0.0; 0.0 +1377909502; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 110448.53333333334; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377909802; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 111846.66666666667; 0.0; 0.7333333333333333; 0.26666666666666666; 0.0 +1377910102; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 97865.33333333333; 0.0; 0.9333333333333333; 0.26666666666666666; 0.0 +1377910402; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 121633.6; 0.0; 0.8; 0.0; 0.0 +1377910702; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 120235.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1377911002; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 123031.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1377911302; 1; 2599.999343; 22.533327639333333; 0.8666666666666667; 2097152.0; 139808.0; 0.06666666666666667; 2.2666666666666666; 0.0; 0.5333333333333333 +1377911602; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 152391.2; 0.06666666666666667; 0.7333333333333333; 0.0; 0.0 +1377911902; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 123031.46666666666; 0.0; 7.2; 0.2; 0.13333333333333333 +1377912202; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 134216.26666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1377912502; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 116041.06666666667; 0.0; 0.8; 0.0; 0.0 +1377912802; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377913102; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 85282.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377913402; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 83884.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377913702; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 93670.93333333333; 0.0; 0.8; 0.06666666666666667; 0.0 +1377914003; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 96467.2; 0.0; 1.6; 0.0; 0.0 +1377914303; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 107652.26666666666; 0.0; 0.8; 0.0; 0.0 +1377914603; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 88078.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1377914903; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 99263.46666666666; 0.0; 2.6; 0.06666666666666667; 0.5333333333333333 +1377915203; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 123031.73333333334; 0.0; 0.8; 0.0; 0.0 +1377915503; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 139809.33333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1377915803; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 134216.8; 0.0; 0.8; 0.0; 0.0 +1377916102; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 107652.26666666666; 0.0; 1.0; 0.0; 0.0 +1377916402; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 118837.33333333333; 0.0; 0.8; 0.0; 0.0 +1377916702; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 106254.13333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377917002; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 83884.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377917302; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 104856.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377917602; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 111846.66666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1377917902; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377918202; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 120234.4; 0.0; 6.8; 0.26666666666666666; 0.13333333333333333 +1377918502; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 155187.2; 0.0; 2.1333333333333333; 0.06666666666666667; 0.5333333333333333 +1377918802; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 128624.26666666666; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377919102; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 5.133333333333334; 0.0 +1377919402; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 85282.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377919702; 1; 2599.999343; 6.933331581333333; 0.26666666666666666; 2097152.0; 93670.93333333333; 0.0; 0.8; 0.0; 0.0 +1377920002; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 130022.4; 0.0; 0.6; 0.0; 0.0 +1377920302; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 88078.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1377920602; 1; 2599.999343; 67.59998291800001; 2.6; 2097152.0; 336940.0; 161.0; 21.8; 0.06666666666666667; 0.4 +1377920903; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 634736.0; 0.0; 2.7333333333333334; 0.0; 0.0 +1377921203; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 292201.3333333333; 31.8; 3.4; 0.06666666666666667; 0.0 +1377921503; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 205517.86666666667; 0.0; 2.3333333333333335; 0.0; 0.0 +1377921803; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 150993.6; 0.0; 1.5333333333333334; 0.0; 0.0 +1377922103; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 139808.53333333333; 0.0; 2.066666666666667; 0.06666666666666667; 0.4666666666666667 +1377922403; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 166372.26666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1377922703; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 123031.73333333334; 0.0; 0.6; 0.0; 0.0 +1377923003; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377923303; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 125828.0; 0.0; 0.6; 0.0; 0.0 +1377923603; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 128624.26666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1377923903; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 88078.4; 0.0; 0.6; 0.0; 0.0 +1377924203; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 81087.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1377924503; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 61513.86666666667; 0.0; 1.0; 0.0; 0.0 +1377924803; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 71300.8; 0.0; 11.666666666666666; 0.0; 0.0 +1377925103; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 95069.06666666667; 0.0; 6.2; 0.2; 0.13333333333333333 +1377925403; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 116041.06666666667; 0.0; 1.7333333333333334; 0.0; 0.0 +1377925703; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 153789.6; 0.06666666666666667; 2.533333333333333; 0.13333333333333333; 0.5333333333333333 +1377926003; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 226490.13333333333; 0.0; 0.6666666666666666; 0.13333333333333333; 0.0 +1377926303; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 132818.66666666666; 0.0; 0.6; 0.06666666666666667; 0.0 +1377926603; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 92272.8; 0.0; 0.6; 0.0; 0.0 +1377926903; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 85282.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377927203; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 86680.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377927503; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 124429.86666666667; 0.0; 0.5333333333333333; 0.0; 0.0 +1377927803; 1; 2599.999343; 6.933331581333333; 0.26666666666666666; 2097152.0; 83884.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1377928103; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 104856.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377928403; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 100661.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1377928703; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 88078.4; 0.0; 0.9333333333333333; 0.13333333333333333; 0.0 +1377929003; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 81087.73333333334; 0.0; 0.6; 0.06666666666666667; 0.0 +1377929303; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 134215.73333333334; 0.06666666666666667; 2.2666666666666666; 0.2; 0.5333333333333333 +1377929604; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 121633.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1377929904; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377930204; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 132818.66666666666; 0.0; 0.5333333333333333; 0.0; 0.0 +1377930504; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 88078.4; 0.0; 0.8; 0.0; 0.0 +1377930804; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 104856.0; 0.0; 8.133333333333333; 0.26666666666666666; 0.2 +1377931104; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 118837.33333333333; 0.0; 1.4; 0.0; 0.0 +1377931404; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 100661.6; 0.0; 1.1333333333333333; 0.0; 0.0 +1377931704; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 104856.0; 0.0; 0.6; 0.0; 0.0 +1377932004; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 118837.33333333333; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1377932304; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 96467.2; 0.0; 0.6; 0.0; 0.0 +1377932604; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 88078.4; 0.0; 0.8; 0.0; 0.0 +1377932904; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 79689.6; 0.0; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1377933204; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 134216.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377933504; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 121632.8; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377933804; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 83884.0; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1377934104; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 92272.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1377934404; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377934704; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 118837.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377935004; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 103457.86666666667; 0.0; 1.3333333333333333; 0.0; 0.0 +1377935304; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 104856.0; 0.0; 1.2; 0.0; 0.0 +1377935604; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 109050.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1377935904; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 110448.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1377936204; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 110448.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377936504; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 130021.6; 0.0; 2.4; 0.06666666666666667; 0.4666666666666667 +1377936804; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 152390.93333333332; 0.0; 6.8; 0.2; 0.13333333333333333 +1377937104; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 130022.4; 0.06666666666666667; 1.5333333333333334; 0.06666666666666667; 0.0 +1377937404; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 135614.93333333332; 0.0; 0.8666666666666667; 0.0; 0.0 +1377937704; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 121633.6; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377938004; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377938304; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 117439.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1377938604; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377938905; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377939205; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 1.2; 0.0 +1377939505; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 121632.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1377939805; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377940105; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 135613.6; 0.06666666666666667; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1377940405; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 176160.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1377940705; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377941005; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 104856.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1377941305; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 83884.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377941605; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377941905; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 111846.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377942205; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 123031.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1377942505; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 142604.8; 12.733333333333333; 13.266666666666667; 0.3333333333333333; 0.2 +1377942805; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 102059.73333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1377943105; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 83884.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377943405; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 79689.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1377943705; 1; 2599.999343; 25.99999343; 1.0; 2097152.0; 103457.86666666667; 0.06666666666666667; 2.466666666666667; 0.06666666666666667; 0.5333333333333333 +1377944005; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 138410.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377944305; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377944605; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377944905; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377945205; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 113244.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1377945505; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 75495.2; 0.0; 0.8; 0.0; 0.0 +1377945805; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377946105; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377946405; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 75495.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377946706; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 72698.93333333333; 0.0; 1.0; 0.0; 0.0 +1377947006; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377947306; 1; 2599.999343; 24.266660534666663; 0.9333333333333332; 2097152.0; 139808.53333333333; 0.06666666666666667; 2.2666666666666666; 0.0; 0.5333333333333333 +1377947606; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 188741.6; 0.0; 0.8; 0.0; 0.0 +1377947906; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 117439.2; 0.0; 1.0; 3.066666666666667; 0.0 +1377948206; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 64310.13333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377948506; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 97865.33333333333; 0.0; 0.8; 0.0; 0.0 +1377948805; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1377949105; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 152391.73333333334; 0.0; 7.466666666666667; 0.26666666666666666; 0.13333333333333333 +1377949405; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 113244.8; 0.0; 1.2; 0.0; 0.0 +1377949705; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 118836.26666666666; 0.0; 1.0; 0.0; 0.0 +1377950005; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 130021.33333333333; 0.0; 0.6; 0.0; 0.0 +1377950305; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 85282.13333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1377950605; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 114642.93333333333; 0.0; 0.8; 0.0; 0.0 +1377950905; 1; 2599.999343; 24.266660534666663; 0.9333333333333332; 2097152.0; 125828.0; 0.06666666666666667; 2.4; 0.06666666666666667; 0.5333333333333333 +1377951205; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 159382.4; 0.0; 0.8; 0.0; 0.0 +1377951505; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377951805; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 110448.53333333334; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377952105; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 109049.6; 0.0; 1.2666666666666666; 0.0; 0.0 +1377952405; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 76893.33333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1377952705; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377953005; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 92272.8; 0.0; 0.6666666666666666; 0.0; 0.0 +1377953306; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 95069.06666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377953606; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 103457.86666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1377953906; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 121633.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377954206; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 124429.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377954506; 1; 2599.999343; 22.533327639333333; 0.8666666666666667; 2097152.0; 142604.0; 0.06666666666666667; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1377954806; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 167770.4; 0.0; 1.0; 0.0; 0.0 +1377955106; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1377955406; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 89476.53333333334; 0.0; 0.8; 0.0; 0.0 +1377955706; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377956006; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 118837.33333333333; 0.0; 7.066666666666666; 0.26666666666666666; 0.13333333333333333 +1377956306; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 178954.93333333332; 0.0; 1.1333333333333333; 0.0; 0.0 +1377956606; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 124429.86666666667; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377956906; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 100661.6; 0.0; 0.8; 0.0; 0.0 +1377957206; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 109050.4; 0.0; 0.8; 0.0; 0.0 +1377957506; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1377957806; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 127226.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377958106; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 150993.33333333334; 0.0; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1377958406; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 173363.46666666667; 0.0; 1.6666666666666667; 0.0; 0.0 +1377958706; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 107652.26666666666; 0.0; 0.8; 0.0; 0.0 +1377959006; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 100661.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1377959306; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 107652.26666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1377959606; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 106254.13333333333; 0.0; 1.0; 0.06666666666666667; 0.13333333333333333 +1377959906; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 102059.73333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1377960206; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1377960506; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 117439.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1377960806; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1377961106; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 110448.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1377961406; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 89476.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1377961706; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 118837.33333333333; 0.06666666666666667; 2.6; 0.06666666666666667; 0.5333333333333333 +1377962006; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 141206.66666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1377962307; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 121633.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1377962607; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 138411.2; 0.0; 0.8; 0.0; 0.0 +1377962907; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 125828.0; 0.06666666666666667; 6.8; 0.2; 0.13333333333333333 +1377963207; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 132818.66666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1377963507; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1377963807; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377964107; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 95069.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1377964407; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 121632.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377964707; 1; 2599.999343; 5.199998686; 0.2; 2097152.0; 85282.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377965007; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 50328.8; 0.0; 0.8; 0.0; 0.0 +1377965307; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 109049.86666666667; 0.0; 2.0; 0.06666666666666667; 0.4666666666666667 +1377965607; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 171964.53333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377965907; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 110448.53333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1377966207; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 118837.33333333333; 0.0; 0.8; 0.0; 0.0 +1377966507; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377966807; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 90874.66666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377967107; 1; 2599.999343; 6.933331581333333; 0.26666666666666666; 2097152.0; 68504.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377967407; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 109050.4; 0.0; 1.0; 0.0; 0.0 +1377967707; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 86680.26666666666; 0.0; 1.0; 0.0; 0.0 +1377968007; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 142604.8; 0.0; 0.7333333333333333; 0.0; 0.0 +1377968307; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 103457.86666666667; 0.0; 17.666666666666668; 0.2; 0.13333333333333333 +1377968607; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 88078.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1377968907; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 99263.46666666666; 0.0; 2.4; 0.06666666666666667; 0.4666666666666667 +1377969207; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 144002.93333333332; 0.0; 0.8; 0.0; 0.0 +1377969507; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 121633.6; 0.0; 0.8; 0.0; 0.0 +1377969807; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 97865.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377970107; 1; 2599.999343; 6.933331581333333; 0.26666666666666666; 2097152.0; 114642.93333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1377970407; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1377970707; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 116041.06666666667; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1377971007; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 89476.53333333334; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1377971307; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 75495.2; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1377971607; 1; 2599.999343; 67.59998291800001; 2.6; 2097152.0; 232082.93333333332; 161.0; 21.866666666666667; 0.13333333333333333; 0.3333333333333333 +1377971907; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 727010.4; 0.0; 2.466666666666667; 0.0; 0.0 +1377972207; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 279618.4; 31.8; 3.6; 1.1333333333333333; 0.0 +1377972507; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 191537.6; 0.0; 3.6; 0.06666666666666667; 0.4666666666666667 +1377972807; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 164974.93333333332; 0.0; 1.6; 0.0; 0.0 +1377973107; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 124429.86666666667; 0.0; 0.8; 0.0; 0.0 +1377973407; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 110448.53333333334; 0.0; 0.6; 0.0; 0.0 +1377973707; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 95069.06666666667; 0.0; 0.6; 0.0; 0.0 +1377974008; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 110448.53333333334; 0.0; 6.733333333333333; 0.2; 0.13333333333333333 +1377974308; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 85282.13333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1377974608; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 89476.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377974908; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 93670.93333333333; 0.0; 0.6; 0.0; 0.0 +1377975208; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 110448.53333333334; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1377975508; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 95069.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1377975808; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 97865.33333333333; 0.0; 0.8; 0.0; 0.0 +1377976108; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 149595.46666666667; 0.06666666666666667; 2.3333333333333335; 0.06666666666666667; 0.5333333333333333 +1377976408; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 181751.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1377976708; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 111846.66666666667; 0.0; 0.8; 0.0; 0.0 +1377977008; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 116041.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1377977308; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 83884.0; 0.0; 0.6; 0.0; 0.0 +1377977608; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 79689.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1377977908; 1; 2599.999343; 50.266653964666666; 1.9333333333333333; 2097152.0; 387272.0; 161.06666666666666; 14.6; 0.0; 0.2 +1377978208; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 315969.6; 0.0; 1.2666666666666666; 0.06666666666666667; 0.0 +1377978508; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 155188.0; 31.8; 3.8666666666666667; 0.0; 0.0 +1377978808; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 134216.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1377979108; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 93670.93333333333; 0.0; 0.8; 0.0; 0.0 +1377979408; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 93670.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377979708; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 130021.06666666667; 0.06666666666666667; 3.0; 0.06666666666666667; 0.4666666666666667 +1377980008; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 120235.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1377980308; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 113244.8; 0.0; 7.2; 0.2; 0.13333333333333333 +1377980608; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 111846.66666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1377980908; 1; 2599.999343; 6.933331581333333; 0.26666666666666666; 2097152.0; 128624.26666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1377981208; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 85282.13333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1377981508; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 114642.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1377981808; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 118837.33333333333; 0.0; 1.0; 0.0; 0.0 +1377982108; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 131420.53333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1377982408; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 100661.6; 0.0; 1.0; 0.0; 0.0 +1377982708; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 107652.26666666666; 0.0; 0.8; 0.0; 0.0 +1377983008; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 88078.4; 0.0; 0.8; 0.0; 0.0 +1377983308; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 124429.86666666667; 0.06666666666666667; 2.2666666666666666; 0.0; 0.5333333333333333 +1377983608; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 118837.33333333333; 0.0; 0.8; 0.0; 0.0 +1377983908; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 121633.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1377984208; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 110448.53333333334; 0.0; 0.8; 0.0; 0.0 +1377984508; 1; 2599.999343; 6.933331581333333; 0.26666666666666666; 2097152.0; 125828.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377984808; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 110448.53333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1377985108; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377985408; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 93670.93333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1377985708; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 149596.26666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1377986008; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 155188.26666666666; 0.0; 0.8; 0.0; 0.0 +1377986308; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 131420.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377986608; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 89476.53333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1377986908; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 110448.53333333334; 0.06666666666666667; 8.533333333333333; 0.26666666666666666; 0.7333333333333333 +1377987208; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 170566.66666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1377987508; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 148197.33333333334; 169.66666666666666; 179.2; 0.0; 0.0 +1377987808; 1; 2599.999343; 25.99999343; 1.0; 2097152.0; 243268.0; 0.0; 1.2; 0.0; 0.0 +1377988108; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 145401.33333333334; 0.0; 1.0; 0.0; 0.0 +1377988408; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 134216.8; 0.0; 1.5333333333333334; 0.06666666666666667; 0.13333333333333333 +1377988708; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 142604.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377989008; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 81087.73333333334; 0.0; 0.8; 0.0; 0.0 +1377989309; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1377989609; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 135614.13333333333; 0.0; 1.0; 0.0; 0.0 +1377989909; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 97865.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377990209; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 85282.13333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1377990509; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 138410.13333333333; 0.0; 2.4; 0.06666666666666667; 0.4666666666666667 +1377990809; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 148197.33333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1377991109; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 109050.4; 0.0; 0.8; 0.0; 0.0 +1377991409; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 89476.53333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1377991709; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 71300.8; 0.0; 0.7333333333333333; 0.0; 0.0 +1377992009; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 86680.26666666666; 0.0; 0.8; 0.0; 0.0 +1377992309; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 88078.4; 0.0; 1.0; 0.0; 0.0 +1377992609; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1377992909; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 93670.93333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1377993209; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 86680.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1377993509; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 109050.4; 0.0; 1.0; 0.0; 0.0 +1377993809; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 131420.53333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1377994109; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 164974.66666666666; 0.0; 8.6; 0.26666666666666666; 0.6 +1377994409; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 185944.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1377994709; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 118837.06666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1377995009; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 86679.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1377995309; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 114642.93333333333; 0.0; 0.6; 0.0; 0.0 +1377995609; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 99263.46666666666; 0.0; 1.2666666666666666; 0.0; 0.0 +1377995909; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 68504.53333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1377996209; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 106254.13333333333; 0.0; 0.8; 0.0; 0.0 +1377996509; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 104856.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1377996809; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1377997109; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 135614.93333333332; 0.0; 0.6; 0.0; 0.0 +1377997409; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 117439.2; 0.0; 0.5333333333333333; 0.0; 0.0 +1377997709; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 104856.0; 0.06666666666666667; 2.7333333333333334; 0.06666666666666667; 0.5333333333333333 +1377998009; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 163576.0; 0.0; 1.0; 0.0; 0.0 +1377998310; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 95069.06666666667; 0.0; 0.6; 0.0; 0.0 +1377998610; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 93670.93333333333; 0.0; 0.6; 0.0; 0.0 +1377998910; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 120235.46666666666; 0.0; 0.6; 0.0; 0.0 +1377999210; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 125827.2; 0.0; 1.0; 0.0; 0.0 +1377999510; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 102059.73333333334; 0.0; 0.6666666666666666; 0.0; 0.0 +1377999810; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 113244.8; 0.06666666666666667; 6.866666666666666; 0.26666666666666666; 0.13333333333333333 +1378000110; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 128624.26666666666; 0.0; 0.8; 0.0; 0.0 +1378000410; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 116041.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378000710; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378001010; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 111846.66666666667; 0.0; 0.6; 0.0; 0.0 +1378001310; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 124428.8; 0.0; 2.1333333333333333; 0.06666666666666667; 0.5333333333333333 +1378001610; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 177556.53333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378001910; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 110447.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378002210; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 86680.26666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1378002510; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 163576.53333333333; 0.0; 0.6; 0.0; 0.0 +1378002810; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 141206.13333333333; 0.0; 1.5333333333333334; 0.13333333333333333; 0.0 +1378003110; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 144002.93333333332; 0.0; 0.8; 0.0; 0.0 +1378003410; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 114642.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378003710; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 116041.06666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1378004010; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 145400.53333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1378004310; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 144002.93333333332; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1378004610; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 120235.46666666666; 0.0; 0.8; 0.06666666666666667; 0.0 +1378004910; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 127225.06666666667; 0.0; 2.1333333333333333; 0.06666666666666667; 0.5333333333333333 +1378005210; 1; 2599.999343; 327.599917218; 12.6; 2097152.0; 534072.8; 34.2; 753.7333333333333; 149.46666666666667; 32.13333333333333 +1378005510; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 322958.93333333335; 0.0; 1.4; 0.0; 0.0 +1378005810; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 152391.73333333334; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378006110; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 127226.13333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1378006410; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 83884.0; 0.0; 0.8; 0.0; 0.0 +1378006711; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 117439.2; 12.733333333333333; 13.133333333333333; 0.3333333333333333; 0.2 +1378007011; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 153789.86666666667; 0.0; 1.3333333333333333; 0.0; 0.0 +1378007311; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 116041.06666666667; 0.0; 1.4666666666666666; 0.0; 0.0 +1378007611; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 123030.93333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1378007911; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 116041.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378008211; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378008511; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 113244.8; 0.13333333333333333; 2.6666666666666665; 0.06666666666666667; 0.4666666666666667 +1378008811; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 199926.66666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1378009111; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 137012.26666666666; 0.0; 1.0; 0.0; 0.0 +1378009411; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 109050.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1378009711; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 93670.93333333333; 0.0; 1.0; 0.0; 0.0 +1378010011; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378010311; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 120235.46666666666; 0.0; 1.2; 0.0; 0.0 +1378010611; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 75495.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378010911; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 121633.6; 0.0; 1.1333333333333333; 0.0; 0.0 +1378011211; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 75495.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378011511; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 75495.2; 0.0; 1.2; 0.0; 0.0 +1378011811; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378012111; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 113243.46666666666; 0.13333333333333333; 13.533333333333333; 0.0; 0.4666666666666667 +1378012411; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 174761.06666666668; 0.0; 6.133333333333334; 0.2; 0.13333333333333333 +1378012711; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 156586.93333333332; 0.0; 1.9333333333333333; 0.0; 0.0 +1378013011; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 142604.8; 0.0; 1.2666666666666666; 0.0; 0.0 +1378013311; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 99263.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378013611; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 99263.46666666666; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378013912; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 99263.46666666666; 0.0; 1.0; 0.0; 0.0 +1378014211; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 104856.0; 0.0; 1.4; 0.0; 0.0 +1378014511; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 113244.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1378014811; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378015111; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378015411; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 88078.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1378015711; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 134216.0; 0.0; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1378016011; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 167771.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378016311; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378016611; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 121633.6; 0.0; 1.1333333333333333; 0.0; 0.0 +1378016911; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378017211; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 123031.73333333334; 0.0; 2.6; 0.06666666666666667; 0.13333333333333333 +1378017511; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 159381.6; 0.0; 1.8666666666666667; 0.0; 0.0 +1378017811; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 106254.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378018111; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378018411; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 109050.4; 0.0; 1.3333333333333333; 0.0; 0.0 +1378018711; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 117439.2; 0.0; 6.066666666666666; 0.2; 0.13333333333333333 +1378019011; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 92272.8; 0.0; 2.066666666666667; 0.0; 0.0 +1378019312; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 104856.0; 0.0; 2.2; 0.06666666666666667; 0.4666666666666667 +1378019612; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 163576.0; 0.0; 1.0; 0.0; 0.0 +1378019912; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 125828.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1378020212; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 120235.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378020512; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378020812; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 102059.73333333334; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378021112; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 113244.8; 0.0; 1.3333333333333333; 0.3333333333333333; 0.0 +1378021412; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 117439.2; 0.0; 1.3333333333333333; 0.06666666666666667; 0.0 +1378021712; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 104856.0; 0.0; 1.2666666666666666; 0.2; 0.0 +1378022012; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 141206.13333333333; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378022312; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 167770.4; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378022612; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 117439.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378022912; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 95069.06666666667; 0.2; 2.4; 0.06666666666666667; 0.5333333333333333 +1378023212; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 142605.6; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378023512; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 75495.2; 0.0; 1.0; 0.13333333333333333; 0.0 +1378023812; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 78291.46666666666; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378024112; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 121633.6; 0.0; 1.0; 0.0; 0.0 +1378024412; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 100661.6; 0.0; 0.8; 0.13333333333333333; 0.0 +1378024712; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 132818.66666666666; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378025012; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 134216.0; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378025312; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 142604.8; 0.0; 6.266666666666667; 0.3333333333333333; 0.2 +1378025612; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 192936.0; 0.0; 2.1333333333333333; 0.0; 0.0 +1378025912; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 99263.46666666666; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378026212; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 139809.33333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378026512; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 149596.26666666666; 0.0; 2.3333333333333335; 0.0; 0.4666666666666667 +1378026812; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 171964.8; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378027112; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378027412; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 85282.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378027713; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378028013; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 102059.73333333334; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378028313; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 156586.13333333333; 0.0; 1.2; 0.0; 0.0 +1378028613; 1; 2599.999343; 69.33331581333334; 2.666666666666667; 2097152.0; 422225.06666666665; 161.0; 21.933333333333334; 0.06666666666666667; 0.4 +1378028913; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 603977.6; 0.0; 2.6; 0.06666666666666667; 0.0 +1378029213; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 226489.6; 31.8; 3.6; 0.0; 0.0 +1378029513; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 184548.0; 0.8; 2.6; 0.0; 0.0 +1378029813; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 130022.4; 0.0; 1.7333333333333334; 0.0; 0.0 +1378030113; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 137013.06666666668; 0.0; 2.3333333333333335; 1.4666666666666666; 0.5333333333333333 +1378030413; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 174761.33333333334; 0.0; 1.0; 0.0; 0.0 +1378030713; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378031013; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 159381.6; 0.0; 7.0; 0.26666666666666666; 0.13333333333333333 +1378031313; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378031613; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378031913; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 92272.8; 0.0; 0.8; 0.0; 0.0 +1378032213; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 75495.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1378032513; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 96467.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378032813; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 104856.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1378033113; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 128624.26666666666; 0.0; 0.8; 0.0; 0.0 +1378033413; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378033713; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 121633.6; 0.06666666666666667; 2.7333333333333334; 0.06666666666666667; 0.4666666666666667 +1378034013; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 170566.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378034313; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 93670.93333333333; 0.0; 1.0; 0.0; 0.0 +1378034613; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 79689.6; 0.06666666666666667; 1.4; 0.13333333333333333; 0.0 +1378034913; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 110448.53333333334; 0.06666666666666667; 1.4666666666666666; 0.06666666666666667; 0.0 +1378035214; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 90874.66666666667; 0.0; 1.0; 0.0; 0.0 +1378035514; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378035814; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 131419.73333333334; 0.0; 1.2666666666666666; 0.06666666666666667; 0.0 +1378036114; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 111846.66666666667; 0.0; 1.2; 0.0; 0.0 +1378036414; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 111846.66666666667; 0.0; 1.2; 0.0; 0.0 +1378036714; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 97865.33333333333; 0.0; 7.266666666666667; 0.26666666666666666; 0.13333333333333333 +1378037014; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 113244.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1378037314; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 104856.0; 0.06666666666666667; 2.4; 0.06666666666666667; 0.5333333333333333 +1378037614; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 144002.93333333332; 0.0; 0.8; 0.0; 0.0 +1378037914; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 125828.0; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1378038214; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 113244.8; 0.0; 1.0; 0.0; 0.0 +1378038514; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 113244.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1378038814; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378039114; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 89476.53333333334; 0.0; 1.2; 0.0; 0.0 +1378039414; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 103457.86666666667; 0.0; 1.3333333333333333; 0.0; 0.0 +1378039714; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 75495.2; 0.0; 1.0; 0.06666666666666667; 0.0 +1378040014; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 60115.73333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378040314; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 99263.46666666666; 0.0; 0.8; 0.0; 0.0 +1378040614; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 114642.93333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1378040914; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 128623.73333333334; 0.0; 2.4; 0.13333333333333333; 0.5333333333333333 +1378041214; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 155188.0; 0.0; 1.0; 0.0; 0.0 +1378041514; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 125828.0; 0.0; 1.0; 0.0; 0.0 +1378041814; 1; 2599.999343; 5.199998686; 0.2; 2097152.0; 130022.4; 0.0; 1.2; 0.0; 0.0 +1378042114; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 124429.33333333333; 0.0; 7.4; 0.2; 0.13333333333333333 +1378042414; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 137012.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378042715; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378043015; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 107652.26666666666; 0.0; 1.0; 0.0; 0.0 +1378043315; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 121633.6; 0.0; 1.4666666666666666; 0.0; 0.0 +1378043615; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 125828.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1378043915; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 88078.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378044215; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378044515; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 124429.06666666667; 0.06666666666666667; 2.533333333333333; 0.13333333333333333; 0.4666666666666667 +1378044815; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 159382.13333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378045115; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 125828.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378045415; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 127226.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378045715; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 102059.73333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1378046015; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 113244.8; 0.06666666666666667; 1.3333333333333333; 0.06666666666666667; 0.13333333333333333 +1378046315; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 107652.26666666666; 0.0; 1.2; 0.0; 0.0 +1378046615; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 130022.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378046915; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378047215; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 149594.66666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378047515; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 95069.06666666667; 0.0; 1.8666666666666667; 0.0; 0.0 +1378047815; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 113244.8; 0.0; 0.8; 0.0; 0.0 +1378048115; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 176157.86666666667; 0.0; 8.333333333333334; 0.26666666666666666; 0.6 +1378048415; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 138410.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378048715; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 103457.86666666667; 0.0; 1.0; 0.06666666666666667; 0.0 +1378049015; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 135614.93333333332; 0.0; 1.0666666666666667; 0.0; 0.0 +1378049315; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 127226.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378049615; 1; 2599.999343; 6.933331581333333; 0.26666666666666666; 2097152.0; 164974.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378049915; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1378050215; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 88078.4; 0.0; 1.2666666666666666; 0.0; 0.0 +1378050515; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 90874.66666666667; 0.0; 1.4; 0.0; 0.0 +1378050815; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 75495.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378051115; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 114642.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1378051415; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 164975.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378051715; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 150992.8; 0.0; 2.3333333333333335; 0.06666666666666667; 0.5333333333333333 +1378052015; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 121633.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378052315; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 138411.2; 0.0; 0.8; 0.0; 0.0 +1378052615; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 121633.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378052915; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 145401.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378053215; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 113244.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1378053515; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378053815; 1; 2599.999343; 6.933331581333333; 0.26666666666666666; 2097152.0; 103457.86666666667; 0.0; 0.8; 0.0; 0.0 +1378054115; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 130021.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378054415; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 88078.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1378054715; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 72698.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1378055015; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 125827.2; 0.0; 7.133333333333334; 0.2; 0.13333333333333333 +1378055315; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 167770.4; 0.0; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1378055615; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 144002.93333333332; 0.0; 12.0; 0.0; 0.0 +1378055916; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378056216; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378056516; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 79689.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378056816; 1; 2599.999343; 6.933331581333333; 0.26666666666666666; 2097152.0; 85282.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378057116; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 92272.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1378057416; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 99263.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378057716; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 125828.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1378058016; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378058316; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378058616; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 110448.53333333334; 0.0; 1.1333333333333333; 0.13333333333333333; 0.0 +1378058916; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 176159.2; 0.06666666666666667; 2.6; 0.06666666666666667; 0.5333333333333333 +1378059216; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 222296.0; 0.0; 0.8; 0.06666666666666667; 0.0 +1378059516; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 125828.0; 0.0; 0.8; 0.0; 0.0 +1378059816; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 99263.46666666666; 0.0; 1.0; 0.0; 0.0 +1378060116; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 121633.6; 0.0; 1.2; 0.0; 0.0 +1378060416; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 120235.46666666666; 0.0; 1.0; 0.0; 0.0 +1378060716; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 131420.53333333333; 0.06666666666666667; 7.133333333333334; 0.26666666666666666; 0.13333333333333333 +1378061016; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 160779.73333333334; 0.06666666666666667; 1.9333333333333333; 0.0; 0.0 +1378061316; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 134216.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1378061616; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 107652.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1378061916; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378062216; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 113244.8; 1.4; 1.3333333333333333; 0.0; 0.0 +1378062516; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 127226.13333333333; 0.0; 2.4; 0.06666666666666667; 0.4666666666666667 +1378062816; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 109050.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1378063116; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378063416; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 103457.86666666667; 0.0; 1.0; 0.0; 0.0 +1378063716; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 118837.33333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378064017; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 163576.0; 0.0; 1.2666666666666666; 0.0; 0.0 +1378064317; 1; 2599.999343; 50.266653964666666; 1.9333333333333333; 2097152.0; 303386.4; 161.66666666666666; 14.466666666666667; 0.0; 0.2 +1378064617; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 373291.2; 0.0; 1.4; 0.0; 0.0 +1378064917; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 204120.53333333333; 31.8; 4.0; 0.0; 0.0 +1378065217; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 188741.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378065517; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 134216.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1378065817; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 117439.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378066117; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 117439.2; 0.0; 2.4; 0.06666666666666667; 0.5333333333333333 +1378066417; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 150993.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378066717; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378067017; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 117439.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378067317; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 150993.6; 12.866666666666667; 13.066666666666666; 0.3333333333333333; 0.13333333333333333 +1378067617; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 184547.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1378067917; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 104856.0; 0.0; 1.0; 0.0; 0.0 +1378068217; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 100661.6; 0.0; 1.2; 0.0; 0.0 +1378068517; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 107652.26666666666; 0.0; 0.8; 0.0; 0.0 +1378068817; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 125828.0; 0.0; 0.8; 0.0; 0.0 +1378069117; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 134216.8; 0.0; 0.8; 0.0; 0.0 +1378069417; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378069717; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 117439.2; 0.2; 3.2; 0.06666666666666667; 0.4666666666666667 +1378070017; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 148197.33333333334; 0.06666666666666667; 0.8; 0.0; 0.0 +1378070317; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378070617; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 100661.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378070917; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 130022.4; 0.0; 1.0; 0.0; 0.0 +1378071217; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 117439.2; 0.0; 0.8; 0.06666666666666667; 0.0 +1378071517; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 109049.6; 0.0; 1.2; 0.0; 0.0 +1378071817; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 95069.06666666667; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378072117; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 78291.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378072418; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 79689.6; 0.0; 1.0; 0.0; 0.0 +1378072718; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 118837.33333333333; 0.0; 6.8; 0.2; 0.13333333333333333 +1378073018; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 173362.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378073318; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 144003.46666666667; 0.0; 2.4; 0.2; 0.4666666666666667 +1378073618; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 153789.06666666668; 0.0; 1.0666666666666667; 0.0; 0.0 +1378073918; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 127226.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378074218; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378074518; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 113244.8; 0.0; 0.8; 0.0; 0.0 +1378074818; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 124429.06666666667; 0.0; 1.4; 0.06666666666666667; 0.13333333333333333 +1378075118; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 123031.73333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1378075418; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 132818.66666666666; 0.0; 0.8; 0.0; 0.0 +1378075718; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 155188.0; 0.0; 0.8; 0.0; 0.0 +1378076018; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378076318; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 116041.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378076618; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 86680.26666666666; 0.2; 1.4; 0.0; 0.0 +1378076918; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 139807.73333333334; 0.0; 2.2666666666666666; 0.06666666666666667; 0.5333333333333333 +1378077218; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 223694.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378077518; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 138410.93333333332; 0.0; 0.8666666666666667; 0.0; 0.0 +1378077818; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 92272.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1378078118; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 104856.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1378078418; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 141207.46666666667; 0.0; 7.4; 0.26666666666666666; 0.13333333333333333 +1378078718; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 132818.66666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378079018; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 148198.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378079318; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 90874.66666666667; 0.0; 1.4666666666666666; 0.0; 0.0 +1378079618; 1; 2599.999343; 6.933331581333333; 0.26666666666666666; 2097152.0; 106254.13333333333; 0.0; 1.0; 0.0; 0.0 +1378079918; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 117439.2; 0.0; 1.0; 0.0; 0.0 +1378080218; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378080518; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 155188.0; 0.06666666666666667; 2.8666666666666667; 0.06666666666666667; 0.5333333333333333 +1378080818; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 149594.66666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1378081118; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 107652.26666666666; 0.0; 1.0; 0.0; 0.0 +1378081418; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 123031.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378081718; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378082018; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 120235.46666666666; 0.6; 1.7333333333333334; 0.0; 0.0 +1378082318; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 132818.66666666666; 0.0; 1.0; 0.0; 0.0 +1378082618; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 106254.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378082918; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 89476.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378083218; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 107652.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1378083518; 1; 2599.999343; 51.99998686; 2.0; 2097152.0; 160779.73333333334; 161.0; 22.066666666666666; 0.2; 0.3333333333333333 +1378083818; 1; 2599.999343; 36.399990802; 1.4; 2097152.0; 598384.8; 0.0; 2.7333333333333334; 0.0; 0.0 +1378084118; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 282414.6666666667; 32.6; 5.066666666666666; 0.06666666666666667; 0.5333333333333333 +1378084418; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 209713.33333333334; 0.0; 2.6; 0.0; 0.0 +1378084718; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 153790.66666666666; 0.0; 1.8666666666666667; 0.0; 0.0 +1378085018; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 139808.53333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378085318; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 130022.4; 0.0; 7.066666666666666; 0.2; 0.13333333333333333 +1378085618; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 111846.66666666667; 0.0; 1.0; 0.0; 0.0 +1378085918; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 99263.46666666666; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378086218; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 103457.86666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1378086518; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 114642.13333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378086818; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378087118; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 141206.66666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378087418; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 120235.46666666666; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378087718; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 167770.4; 0.0; 2.6666666666666665; 0.06666666666666667; 0.4666666666666667 +1378088018; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 192936.53333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1378088319; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 157985.06666666668; 0.0; 0.9333333333333333; 0.0; 0.0 +1378088619; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 150994.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378088919; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 93670.93333333333; 0.0; 1.2; 0.0; 0.0 +1378089219; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 114642.93333333333; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378089519; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 86680.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378089819; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 81087.73333333334; 0.0; 1.0; 0.0; 0.0 +1378090119; 1; 2599.999343; 6.933331581333333; 0.26666666666666666; 2097152.0; 96467.2; 0.0; 1.0; 0.0; 0.0 +1378090419; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 142605.6; 0.0; 1.3333333333333333; 0.0; 0.0 +1378090719; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 90874.66666666667; 0.0; 6.8; 0.26666666666666666; 0.13333333333333333 +1378091019; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 123031.73333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1378091319; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 128624.26666666666; 0.06666666666666667; 2.6; 0.06666666666666667; 0.5333333333333333 +1378091619; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 170567.46666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378091919; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 120235.46666666666; 0.0; 1.7333333333333334; 0.0; 0.0 +1378092219; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 71300.8; 0.0; 1.0; 0.13333333333333333; 0.0 +1378092519; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378092819; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 90874.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378093119; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 90874.66666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1378093419; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 64310.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378093719; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 114642.93333333333; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1378094019; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378094319; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 85282.13333333333; 0.0; 0.8; 0.0; 0.0 +1378094619; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 120235.46666666666; 0.0; 1.2; 0.06666666666666667; 0.0 +1378094919; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 142605.33333333334; 0.06666666666666667; 2.4; 0.06666666666666667; 0.5333333333333333 +1378095219; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 153788.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378095519; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 106254.13333333333; 0.0; 0.8; 0.06666666666666667; 0.0 +1378095819; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 104856.0; 0.0; 1.0; 0.0; 0.0 +1378096119; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.2; 0.0 +1378096419; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 127226.13333333333; 0.0; 0.8; 0.0; 0.0 +1378096719; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378097019; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 99263.46666666666; 0.0; 1.2; 0.0; 0.0 +1378097319; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 65708.26666666666; 0.0; 1.3333333333333333; 0.06666666666666667; 0.0 +1378097619; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 89476.53333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1378097919; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 97865.33333333333; 0.0; 6.933333333333334; 0.26666666666666666; 0.13333333333333333 +1378098219; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 113244.8; 0.0; 0.8; 0.0; 0.0 +1378098519; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 141207.46666666667; 0.06666666666666667; 2.466666666666667; 0.06666666666666667; 0.4666666666666667 +1378098819; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 130021.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378099119; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 83884.0; 0.0; 11.866666666666667; 0.0; 0.0 +1378099419; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378099719; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 111846.66666666667; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378100019; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 128624.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1378100319; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 144003.73333333334; 0.0; 0.8; 0.0; 0.0 +1378100620; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 107652.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378100920; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378101220; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378101520; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 75495.2; 0.0; 1.2; 0.0; 0.0 +1378101820; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 110448.53333333334; 0.0; 1.0; 0.0; 0.0 +1378102120; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 99263.46666666666; 0.06666666666666667; 2.4; 0.06666666666666667; 0.4666666666666667 +1378102420; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 127225.33333333333; 0.0; 0.8; 0.0; 0.0 +1378102720; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 124429.86666666667; 0.0; 1.0; 0.0; 0.0 +1378103020; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1378103320; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 146800.0; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378103620; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 103457.86666666667; 0.06666666666666667; 2.6; 0.2; 0.13333333333333333 +1378103920; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 109050.4; 0.0; 1.7333333333333334; 0.0; 0.0 +1378104220; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 144002.93333333332; 0.0; 1.2666666666666666; 0.0; 0.0 +1378104520; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 132817.86666666667; 0.26666666666666666; 7.466666666666667; 0.26666666666666666; 0.13333333333333333 +1378104820; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 128624.26666666666; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378105120; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 124429.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378105420; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 86680.26666666666; 0.0; 1.0; 0.0; 0.0 +1378105720; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 164974.4; 0.0; 2.3333333333333335; 0.13333333333333333; 0.5333333333333333 +1378106020; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 188742.4; 0.0; 1.0; 0.06666666666666667; 0.0 +1378106320; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 86680.26666666666; 0.0; 0.9333333333333333; 0.2; 0.0 +1378106620; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 85282.13333333333; 0.0; 0.9333333333333333; 0.2; 0.0 +1378106920; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 121633.6; 0.0; 1.3333333333333333; 0.0; 0.0 +1378107220; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 120235.46666666666; 0.0; 0.7333333333333333; 0.26666666666666666; 0.0 +1378107520; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 121633.6; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378107820; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 93670.93333333333; 0.0; 1.2666666666666666; 0.26666666666666666; 0.0 +1378108120; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 121633.6; 0.0; 1.4; 0.06666666666666667; 0.0 +1378108420; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 104856.0; 0.0; 1.4; 0.06666666666666667; 0.0 +1378108720; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378109020; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 118836.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378109320; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 135613.86666666667; 0.0; 2.6; 0.06666666666666667; 0.5333333333333333 +1378109620; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 137012.53333333333; 0.0; 1.0; 0.0; 0.0 +1378109921; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 117439.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378110221; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 128624.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378110521; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 128624.26666666666; 0.0; 7.133333333333334; 0.26666666666666666; 0.13333333333333333 +1378110820; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 95069.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378111120; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 90874.66666666667; 0.0; 1.2; 0.0; 0.0 +1378111420; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 97865.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378111720; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 114642.93333333333; 0.0; 1.0; 0.0; 0.0 +1378112020; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 113244.8; 0.0; 1.0; 0.0; 0.0 +1378112320; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 102059.73333333334; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378112621; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 111846.66666666667; 0.0; 1.2666666666666666; 0.0; 0.0 +1378112921; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 139808.0; 0.0; 2.1333333333333333; 0.0; 0.4666666666666667 +1378113221; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 144002.93333333332; 0.0; 1.0; 0.0; 0.0 +1378113521; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 117439.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378113821; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 107652.26666666666; 0.0; 1.0; 0.0; 0.0 +1378114121; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 130022.4; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378114421; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 132818.66666666666; 0.0; 1.0; 0.0; 0.0 +1378114721; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378115021; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 103457.86666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378115321; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 118837.33333333333; 0.0; 1.4; 0.0; 0.0 +1378115621; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 121633.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1378115921; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 135614.13333333333; 0.0; 0.8; 0.0; 0.0 +1378116221; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 138410.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378116521; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 128624.0; 0.0; 2.7333333333333334; 0.06666666666666667; 0.4666666666666667 +1378116821; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 170566.13333333333; 0.0; 7.0; 0.2; 0.13333333333333333 +1378117121; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 114642.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378117421; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378117721; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 132818.66666666666; 0.0; 1.0; 0.0; 0.0 +1378118021; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 111846.66666666667; 0.0; 1.2; 0.0; 0.0 +1378118321; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 137013.06666666668; 0.0; 0.8; 0.0; 0.0 +1378118621; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 134216.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378118921; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 113244.8; 0.0; 1.0; 0.0; 0.0 +1378119221; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 104856.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1378119521; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 134215.2; 0.0; 1.2666666666666666; 0.0; 0.0 +1378119821; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378120121; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 141206.66666666666; 0.0; 2.4; 0.2; 0.5333333333333333 +1378120421; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 134216.8; 0.0; 1.0; 0.0; 0.0 +1378120721; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 124429.86666666667; 0.0; 1.0; 0.0; 0.0 +1378121021; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 93670.93333333333; 0.0; 0.8; 0.06666666666666667; 0.0 +1378121321; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 114642.93333333333; 0.0; 0.8; 0.0; 0.0 +1378121622; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 128624.26666666666; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1378121922; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 111846.66666666667; 0.0; 0.8; 0.0; 0.0 +1378122222; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 106254.13333333333; 0.0; 1.0; 0.0; 0.0 +1378122522; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 104856.0; 0.0; 1.3333333333333333; 0.0; 0.0 +1378122822; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378123122; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 148197.33333333334; 0.0; 0.8; 0.0; 0.0 +1378123422; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 167770.13333333333; 0.0; 7.2; 0.2; 0.13333333333333333 +1378123722; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 152392.0; 0.0; 2.2666666666666666; 0.06666666666666667; 0.5333333333333333 +1378124022; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 173362.93333333332; 0.0; 0.8666666666666667; 0.0; 0.0 +1378124322; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 139809.33333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378124622; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 97865.33333333333; 0.0; 0.8; 0.06666666666666667; 0.0 +1378124922; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 118837.33333333333; 0.0; 1.2; 0.0; 0.0 +1378125222; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 86680.26666666666; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1378125522; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 106254.13333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378125822; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 92272.8; 0.0; 0.7333333333333333; 0.0; 0.0 +1378126122; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378126422; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 104856.0; 0.0; 1.0; 0.0; 0.0 +1378126722; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 109050.4; 0.0; 0.8; 0.0; 0.0 +1378127022; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 120235.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378127322; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 170567.2; 0.0; 2.2666666666666666; 0.0; 0.4666666666666667 +1378127622; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 150993.06666666668; 0.0; 1.1333333333333333; 0.0; 0.0 +1378127922; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 106254.13333333333; 0.0; 0.8; 0.0; 0.0 +1378128222; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 90874.66666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1378128522; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 103457.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1378128822; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 109050.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1378129122; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 139809.33333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1378129422; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 138410.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378129722; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378130022; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 110448.53333333334; 0.0; 0.8; 0.0; 0.0 +1378130322; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 104856.0; 12.733333333333333; 13.066666666666666; 0.3333333333333333; 0.2 +1378130622; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 127225.33333333333; 0.06666666666666667; 1.5333333333333334; 0.0; 0.0 +1378130922; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 139808.53333333333; 0.13333333333333333; 2.7333333333333334; 0.06666666666666667; 0.4666666666666667 +1378131222; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 167770.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378131522; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378131822; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 114642.93333333333; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1378132122; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 118837.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378132422; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 92272.8; 0.06666666666666667; 1.3333333333333333; 0.06666666666666667; 0.06666666666666667 +1378132722; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 116041.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378133023; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 137013.06666666668; 0.0; 1.0; 0.0; 0.0 +1378133323; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 118837.33333333333; 0.0; 1.3333333333333333; 0.0; 0.0 +1378133623; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 95069.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378133923; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 127226.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378134223; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 144003.73333333334; 0.0; 1.0; 0.0; 0.0 +1378134523; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 169168.8; 0.0; 2.6; 0.06666666666666667; 0.5333333333333333 +1378134823; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 180353.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378135123; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378135423; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378135723; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 123031.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378136023; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 99263.46666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1378136323; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 113244.8; 0.0; 1.8; 0.0; 0.0 +1378136623; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 138411.2; 0.0; 7.133333333333334; 0.26666666666666666; 0.13333333333333333 +1378136923; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 113244.8; 0.0; 1.4; 0.0; 0.0 +1378137223; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 125828.0; 0.0; 1.0; 0.0; 0.0 +1378137523; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378137823; 1; 2599.999343; 51.99998686; 2.0; 2097152.0; 152391.46666666667; 161.0; 21.866666666666667; 0.13333333333333333; 0.4 +1378138123; 1; 2599.999343; 43.333322383333325; 1.6666666666666665; 2097152.0; 713029.6; 0.8; 4.333333333333333; 0.06666666666666667; 0.5333333333333333 +1378138423; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 360708.0; 31.8; 3.533333333333333; 0.13333333333333333; 0.0 +1378138723; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 222296.0; 0.0; 2.7333333333333334; 0.06666666666666667; 0.0 +1378139023; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 155188.0; 0.0; 1.8; 0.0; 0.0 +1378139323; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 134216.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378139623; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 114642.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378139923; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 121633.6; 0.0; 1.0; 0.0; 0.0 +1378140223; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 102059.73333333334; 0.0; 1.2666666666666666; 0.0; 0.0 +1378140523; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 121633.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1378140824; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 83884.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378141124; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378141424; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 142605.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1378141724; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 125828.0; 0.6; 2.4; 0.06666666666666667; 0.5333333333333333 +1378142024; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 155187.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378142324; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 109050.4; 0.0; 1.0; 0.06666666666666667; 0.0 +1378142624; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 130022.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378142924; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 138410.4; 0.0; 12.0; 0.0; 0.0 +1378143224; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 134216.53333333333; 0.0; 7.133333333333334; 0.7333333333333333; 0.13333333333333333 +1378143524; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 213906.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378143824; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 117439.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378144124; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 67106.4; 0.0; 1.0; 0.0; 0.0 +1378144424; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 67106.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1378144724; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 79689.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378145024; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378145324; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 155187.2; 0.0; 2.4; 0.06666666666666667; 0.5333333333333333 +1378145624; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 138410.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1378145924; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 117439.2; 0.0; 1.0; 0.0; 0.0 +1378146224; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 127226.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378146524; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 117439.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1378146824; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 104856.0; 0.0; 0.8; 0.0; 0.0 +1378147124; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 88078.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1378147424; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 79689.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378147724; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 83884.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378148024; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 113244.8; 0.0; 1.0; 0.0; 0.0 +1378148324; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 86680.26666666666; 0.0; 1.0; 0.0; 0.0 +1378148624; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 134216.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378148924; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 163576.0; 0.0; 2.2666666666666666; 0.06666666666666667; 0.5333333333333333 +1378149224; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 152390.93333333332; 0.0; 0.8666666666666667; 0.0; 0.0 +1378149524; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 100661.6; 0.0; 6.933333333333334; 0.3333333333333333; 0.13333333333333333 +1378149824; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 83884.0; 0.0; 1.2666666666666666; 0.0; 0.0 +1378150124; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 123031.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378150424; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378150724; 1; 2599.999343; 53.733319755333326; 2.0666666666666664; 2097152.0; 247462.4; 161.73333333333332; 14.333333333333334; 0.0; 0.2 +1378151024; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 364902.4; 0.0; 1.4666666666666666; 0.0; 0.0 +1378151324; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 167771.2; 31.8; 4.0; 0.0; 0.0 +1378151624; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 176159.2; 0.0; 0.8; 0.0; 0.0 +1378151924; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378152224; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378152525; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 99263.46666666666; 0.0; 2.8666666666666667; 0.06666666666666667; 0.5333333333333333 +1378152825; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 153789.06666666668; 0.0; 1.0666666666666667; 0.0; 0.0 +1378153125; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 137012.26666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1378153425; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 118837.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378153725; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378154025; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 96467.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378154325; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 134216.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378154625; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 118837.33333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378154925; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 125828.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378155225; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 83884.0; 0.0; 7.266666666666667; 0.2; 0.13333333333333333 +1378155525; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378155825; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 83884.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1378156125; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 153789.86666666667; 0.0; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1378156425; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 130021.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378156725; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 134216.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1378157025; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 113244.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1378157325; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378157625; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 97865.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378157925; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 90874.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378158225; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 123031.73333333334; 0.0; 1.2; 0.0; 0.0 +1378158525; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 110448.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378158825; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 116041.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378159125; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 99263.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378159425; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 132818.13333333333; 0.0; 2.066666666666667; 0.0; 0.0 +1378159725; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 166371.46666666667; 0.0; 2.466666666666667; 0.06666666666666667; 0.4666666666666667 +1378160025; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 145401.06666666668; 0.0; 1.0666666666666667; 0.0; 0.0 +1378160325; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 116041.06666666667; 0.0; 1.0; 0.0; 0.0 +1378160625; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 116041.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378160925; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 93670.93333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378161225; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 125828.0; 0.06666666666666667; 1.8; 0.06666666666666667; 0.13333333333333333 +1378161525; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 125828.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378161825; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 130022.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1378162125; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 116041.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378162425; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 142604.8; 0.0; 7.2; 0.26666666666666666; 0.13333333333333333 +1378162725; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 128623.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378163025; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 171964.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378163325; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 170566.66666666666; 0.06666666666666667; 2.533333333333333; 0.06666666666666667; 0.5333333333333333 +1378163625; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 170566.4; 0.0; 1.2666666666666666; 0.0; 0.0 +1378163926; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 141206.66666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378164226; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 61513.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378164526; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 107652.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378164826; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 117439.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378165126; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 107651.46666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1378165426; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 99263.46666666666; 0.0; 1.0; 0.0; 0.0 +1378165726; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 100661.6; 0.0; 1.1333333333333333; 0.0; 0.0 +1378166026; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 125828.0; 0.0; 1.0; 0.0; 0.0 +1378166326; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 85282.13333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1378166626; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 89476.53333333334; 0.0; 1.0; 0.0; 0.0 +1378166926; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 102059.73333333334; 0.0; 2.4; 0.06666666666666667; 0.5333333333333333 +1378167226; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 128624.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378167526; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 135614.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378167826; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 124429.33333333333; 0.0; 7.266666666666667; 0.2; 0.13333333333333333 +1378168126; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 135614.66666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378168426; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 120235.46666666666; 0.5333333333333333; 1.4666666666666666; 0.0; 0.0 +1378168726; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 117439.2; 0.0; 1.0; 0.0; 0.0 +1378169026; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 128624.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378169326; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 124429.86666666667; 0.0; 1.0; 0.0; 0.0 +1378169627; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378169927; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 121633.6; 0.0; 0.8; 0.0; 0.0 +1378170227; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378170527; 1; 2599.999343; 24.266660534666663; 0.9333333333333332; 2097152.0; 131420.0; 0.0; 2.6; 0.06666666666666667; 0.5333333333333333 +1378170827; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 146798.93333333332; 0.0; 1.0; 0.0; 0.0 +1378171127; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 135614.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378171427; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 162178.66666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378171727; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 132818.66666666666; 0.0; 1.6; 0.0; 0.0 +1378172027; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 107652.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1378172327; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378172627; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 106254.13333333333; 0.0; 1.0; 0.0; 0.0 +1378172927; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 114642.93333333333; 0.0; 0.8; 0.0; 0.0 +1378173227; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 102059.73333333334; 0.0; 1.0; 0.0; 0.0 +1378173527; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 118837.33333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378173827; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 159381.86666666667; 0.0; 6.933333333333334; 0.2; 0.13333333333333333 +1378174127; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 137011.46666666667; 0.06666666666666667; 2.533333333333333; 0.06666666666666667; 0.4666666666666667 +1378174427; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 160780.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378174727; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 99263.46666666666; 0.0; 1.0; 0.0; 0.0 +1378175027; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378175327; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 89476.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378175627; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378175927; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 82485.86666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378176227; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 78291.46666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1378176527; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 107652.26666666666; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378176827; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 103457.86666666667; 0.0; 0.8; 0.0; 0.0 +1378177127; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 79689.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378177427; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 100661.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1378177727; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 114642.4; 0.06666666666666667; 2.533333333333333; 0.06666666666666667; 0.4666666666666667 +1378178027; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 184546.13333333333; 0.0; 1.0; 0.0; 0.0 +1378178327; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 127226.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378178627; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378178927; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 111846.66666666667; 0.0; 1.2; 0.0; 0.0 +1378179227; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 107652.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378179527; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 144003.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378179828; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 106253.86666666667; 0.0; 1.0; 0.0; 0.0 +1378180128; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 90874.66666666667; 0.0; 7.8; 0.2; 0.13333333333333333 +1378180428; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 85282.13333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1378180728; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 95069.06666666667; 0.0; 1.6; 0.0; 0.0 +1378181028; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 118837.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378181328; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 110448.53333333334; 0.0; 2.466666666666667; 0.06666666666666667; 0.4666666666666667 +1378181628; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 138411.2; 0.0; 1.2; 0.0; 0.0 +1378181928; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 114642.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378182228; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 81087.73333333334; 0.0; 1.0; 0.0; 0.0 +1378182528; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 125828.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1378182828; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 100661.6; 0.0; 1.0; 0.0; 0.0 +1378183128; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 99263.46666666666; 0.0; 1.0; 0.0; 0.0 +1378183428; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 121633.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378183728; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 125828.0; 0.0; 1.0; 0.0; 0.0 +1378184028; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 104856.0; 0.0; 1.0; 0.0; 0.0 +1378184328; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 90874.66666666667; 0.0; 1.0; 0.0; 0.0 +1378184628; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 93670.93333333333; 0.0; 1.2; 0.0; 0.0 +1378184928; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 145401.33333333334; 0.0; 2.6; 0.06666666666666667; 0.5333333333333333 +1378185228; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 177556.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378185528; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 97865.33333333333; 0.0; 0.8; 0.0; 0.0 +1378185828; 1; 2599.999343; 69.33331581333334; 2.666666666666667; 2097152.0; 619357.0666666667; 161.0; 22.0; 0.06666666666666667; 0.4 +1378186128; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 404049.3333333333; 0.0; 2.7333333333333334; 0.0; 0.0 +1378186428; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 234879.73333333334; 31.8; 14.466666666666667; 0.0; 0.0 +1378186728; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 190140.0; 0.0; 8.866666666666667; 0.2; 0.13333333333333333 +1378187028; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 178955.46666666667; 0.0; 1.6666666666666667; 0.0; 0.0 +1378187328; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 141207.46666666667; 0.0; 1.2; 0.0; 0.0 +1378187628; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 123031.73333333334; 0.0; 0.8; 0.0; 0.0 +1378187928; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 96467.2; 0.0; 0.8; 0.0; 0.0 +1378188228; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 157985.06666666668; 0.0; 0.8666666666666667; 0.0; 0.0 +1378188529; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 116041.06666666667; 0.4; 2.8; 0.06666666666666667; 0.5333333333333333 +1378188829; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 139808.53333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378189129; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378189429; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378189729; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 104856.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1378190029; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 146799.73333333334; 0.0; 2.3333333333333335; 0.06666666666666667; 0.06666666666666667 +1378190329; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 138410.66666666666; 0.0; 1.7333333333333334; 0.0; 0.0 +1378190629; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 123031.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378190929; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 153789.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378191229; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378191529; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 111846.66666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378191829; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 134216.8; 0.0; 0.8; 0.0; 0.0 +1378192129; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 139808.26666666666; 0.06666666666666667; 2.4; 0.06666666666666667; 0.5333333333333333 +1378192429; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 145401.33333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378192729; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 157984.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1378193029; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1378193329; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 114642.93333333333; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1378193629; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 111846.66666666667; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378193929; 1; 2599.999343; 22.533327639333333; 0.8666666666666667; 2097152.0; 135614.13333333333; 12.733333333333333; 13.666666666666666; 0.3333333333333333; 0.13333333333333333 +1378194229; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 120235.46666666666; 0.0; 1.6; 0.13333333333333333; 0.0 +1378194529; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 117439.2; 0.0; 1.2; 0.06666666666666667; 0.0 +1378194829; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 111846.66666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1378195129; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 109050.4; 0.0; 0.8; 0.06666666666666667; 0.0 +1378195429; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 82485.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378195729; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 120235.46666666666; 0.06666666666666667; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1378196029; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 104856.0; 0.0; 1.0; 0.0; 0.0 +1378196329; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 145401.06666666668; 0.0; 0.8; 0.0; 0.0 +1378196629; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 111846.66666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1378196929; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 109050.4; 0.0; 1.0; 0.0; 0.0 +1378197229; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 109050.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1378197529; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 116041.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378197829; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 114642.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1378198129; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 128624.26666666666; 0.0; 1.0; 0.0; 0.0 +1378198429; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378198730; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 83884.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378199030; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 113244.8; 0.0; 1.3333333333333333; 0.0; 0.0 +1378199330; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 146800.0; 0.0; 2.466666666666667; 0.06666666666666667; 0.5333333333333333 +1378199630; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 116041.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378199930; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 117439.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1378200230; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 96467.2; 0.0; 7.0; 0.26666666666666666; 0.13333333333333333 +1378200530; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 128624.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378200830; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 123031.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378201130; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 103457.86666666667; 0.0; 1.3333333333333333; 0.0; 0.0 +1378201430; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 86680.26666666666; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1378201730; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 120234.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378202030; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 109050.4; 0.0; 0.8; 0.0; 0.0 +1378202330; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378202630; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 110448.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378202930; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 111846.4; 0.0; 2.3333333333333335; 0.06666666666666667; 0.5333333333333333 +1378203230; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 124429.33333333333; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378203530; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 114642.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378203830; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 137012.26666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1378204130; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 130022.4; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378204430; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 124429.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378204730; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 131419.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378205030; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 106254.13333333333; 0.0; 1.2666666666666666; 0.0; 0.0 +1378205330; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 123031.73333333334; 0.0; 1.2; 0.0; 0.0 +1378205630; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 114642.93333333333; 0.0; 1.0; 0.0; 0.0 +1378205930; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378206230; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 79689.6; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378206530; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 110448.26666666666; 0.0; 2.6666666666666665; 0.06666666666666667; 0.4666666666666667 +1378206831; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 141206.93333333332; 0.0; 7.133333333333334; 0.2; 0.13333333333333333 +1378207131; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 103457.86666666667; 1.3333333333333333; 6.133333333333334; 0.0; 0.0 +1378207431; 1; 2599.999343; 32.93332501133333; 1.2666666666666666; 2097152.0; 171964.8; 21.6; 7.2; 0.06666666666666667; 0.0 +1378207731; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 116041.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378208031; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 141207.46666666667; 0.0; 1.0666666666666667; 0.13333333333333333; 0.0 +1378208331; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 118837.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378208631; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378208931; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 135614.93333333332; 0.0; 1.1333333333333333; 0.0; 0.0 +1378209231; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 109050.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1378209531; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 132818.66666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1378209831; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 109050.4; 0.0; 1.0; 0.0; 0.0 +1378210131; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 150992.8; 0.06666666666666667; 2.6; 0.06666666666666667; 0.5333333333333333 +1378210431; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 174761.06666666668; 0.0; 1.0; 0.0; 0.0 +1378210731; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 121633.6; 0.0; 1.2; 0.13333333333333333; 0.0 +1378211031; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378211331; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378211631; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 130021.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378211931; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 146799.46666666667; 0.0; 1.0; 0.06666666666666667; 0.0 +1378212231; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 102059.73333333334; 0.0; 1.2666666666666666; 0.06666666666666667; 0.0 +1378212531; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 90874.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378212831; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 135614.13333333333; 0.06666666666666667; 7.133333333333334; 0.2; 0.13333333333333333 +1378213131; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 83884.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378213431; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 96467.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378213731; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 137012.0; 0.0; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1378214031; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 148197.6; 0.0; 1.0; 0.0; 0.0 +1378214331; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 117439.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1378214631; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 124429.86666666667; 0.0; 1.0; 0.0; 0.0 +1378214931; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 83884.0; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1378215231; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378215531; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 106254.13333333333; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378215831; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 89476.53333333334; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378216131; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 85282.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378216431; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 88078.4; 0.0; 1.0; 0.0; 0.0 +1378216731; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 107652.26666666666; 0.0; 0.9333333333333333; 0.2; 0.0 +1378217031; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 131420.26666666666; 0.0; 1.0; 0.0; 0.0 +1378217331; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 152392.0; 0.0; 2.4; 0.06666666666666667; 0.5333333333333333 +1378217631; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 162178.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1378217932; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 123031.73333333334; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378218232; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 96467.2; 0.0; 0.8; 0.0; 0.0 +1378218532; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 93670.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378218832; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 120235.46666666666; 0.0; 1.1333333333333333; 0.06666666666666667; 0.13333333333333333 +1378219132; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 127226.13333333333; 0.0; 6.466666666666667; 0.2; 0.13333333333333333 +1378219432; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 123031.73333333334; 0.0; 1.6666666666666667; 0.0; 0.0 +1378219732; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 141207.46666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378220032; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 124429.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378220332; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 121633.6; 0.0; 1.0; 0.0; 0.0 +1378220632; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.13333333333333333; 0.0 +1378220932; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 118836.53333333334; 0.0; 2.2; 0.06666666666666667; 0.5333333333333333 +1378221232; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 176159.2; 0.0; 1.0; 0.2; 0.0 +1378221532; 1; 2599.999343; 6.933331581333333; 0.26666666666666666; 2097152.0; 116041.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378221832; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 130022.4; 0.0; 1.2666666666666666; 0.0; 0.0 +1378222132; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 82485.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378222432; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 137013.06666666668; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378222732; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1378223032; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 88078.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1378223332; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 106254.13333333333; 0.0; 1.2666666666666666; 0.0; 0.0 +1378223632; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 127225.33333333333; 0.0; 1.0; 0.0; 0.0 +1378223932; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 117439.2; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378224232; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378224532; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 121633.6; 0.26666666666666666; 2.8; 0.06666666666666667; 0.4666666666666667 +1378224832; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 125828.0; 0.0; 0.8; 0.4666666666666667; 0.0 +1378225132; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1378225432; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 104856.0; 0.0; 1.6666666666666667; 0.06666666666666667; 0.0 +1378225732; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 109050.4; 0.0; 5.866666666666666; 0.26666666666666666; 0.13333333333333333 +1378226032; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 121633.6; 0.0; 2.4; 0.3333333333333333; 0.0 +1378226332; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 104856.0; 0.0; 1.0; 0.0; 0.0 +1378226632; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 99263.46666666666; 0.0; 1.0; 0.0; 0.0 +1378226932; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 100661.6; 0.0; 0.8; 0.0; 0.0 +1378227232; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 117439.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378227533; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 76893.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378227833; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 110448.53333333334; 0.0; 1.0; 0.0; 0.0 +1378228133; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 116041.06666666667; 0.06666666666666667; 2.3333333333333335; 0.0; 0.4666666666666667 +1378228433; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 138410.4; 0.0; 1.0; 0.0; 0.0 +1378228733; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 120235.46666666666; 0.0; 1.4; 0.0; 0.0 +1378229033; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 114642.93333333333; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378229333; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 106254.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378229633; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 121633.6; 0.0; 0.8; 0.0; 0.0 +1378229933; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 102059.73333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1378230233; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 121633.6; 0.0; 12.066666666666666; 0.0; 0.0 +1378230533; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 107652.26666666666; 0.0; 1.0; 0.0; 0.0 +1378230833; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 109050.4; 0.0; 1.0; 0.0; 0.0 +1378231133; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378231433; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 117439.2; 0.0; 1.2666666666666666; 0.0; 0.0 +1378231733; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 139808.53333333333; 0.0; 2.466666666666667; 0.06666666666666667; 0.4666666666666667 +1378232033; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 164974.93333333332; 0.0; 0.9333333333333333; 0.0; 0.0 +1378232333; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378232633; 1; 2599.999343; 6.933331581333333; 0.26666666666666666; 2097152.0; 92272.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1378232933; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 155188.0; 0.0; 7.333333333333333; 0.26666666666666666; 0.13333333333333333 +1378233233; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378233533; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 89476.53333333334; 0.0; 0.8; 0.0; 0.0 +1378233833; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 89476.53333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1378234133; 1; 2599.999343; 71.06664870866665; 2.733333333333333; 2097152.0; 789924.8; 161.06666666666666; 22.2; 0.06666666666666667; 0.4 +1378234433; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 331348.0; 0.0; 2.933333333333333; 0.0; 0.0 +1378234733; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 188741.6; 31.8; 3.466666666666667; 0.0; 0.0 +1378235033; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 150993.6; 0.8; 2.3333333333333335; 0.06666666666666667; 0.0 +1378235333; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 188741.6; 0.06666666666666667; 3.466666666666667; 0.13333333333333333; 0.5333333333333333 +1378235633; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 159382.4; 0.0; 1.2666666666666666; 0.0; 0.0 +1378235933; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378236233; 1; 2599.999343; 6.933331581333333; 0.26666666666666666; 2097152.0; 97865.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378236533; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 130022.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378236834; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 100661.6; 0.0; 1.0; 0.0; 0.0 +1378237134; 1; 2599.999343; 46.799988174; 1.8; 2097152.0; 208315.73333333334; 161.8; 14.8; 0.0; 0.13333333333333333 +1378237434; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 469760.0; 0.0; 1.3333333333333333; 0.0; 0.0 +1378237734; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 191538.4; 31.8; 4.066666666666666; 0.0; 0.0 +1378238034; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 213908.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378238334; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 113244.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1378238634; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 121633.6; 0.0; 7.0; 0.2; 0.13333333333333333 +1378238934; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 146798.4; 0.0; 2.066666666666667; 0.06666666666666667; 0.5333333333333333 +1378239234; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 163576.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378239534; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 121633.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378239834; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 125828.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1378240134; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 92272.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378240434; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 127226.13333333333; 0.0; 1.0; 0.0; 0.0 +1378240734; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 138411.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378241034; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 117439.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378241334; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 134216.0; 0.0; 1.0; 0.0; 0.0 +1378241634; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 83884.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378241934; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378242234; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378242534; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 130021.6; 0.0; 2.6; 0.0; 0.5333333333333333 +1378242834; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 125828.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1378243134; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 113244.0; 0.0; 0.8; 0.0; 0.0 +1378243434; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 109050.4; 0.0; 0.8; 0.0; 0.0 +1378243734; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 118836.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378244034; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 83884.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1378244334; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 97865.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378244634; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 120235.46666666666; 0.0; 7.2; 0.2; 0.13333333333333333 +1378244934; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 142604.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378245234; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 128624.26666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1378245534; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 144002.93333333332; 0.0; 0.8; 0.0; 0.0 +1378245834; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 138411.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378246134; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 110448.53333333334; 0.06666666666666667; 2.466666666666667; 0.06666666666666667; 0.4666666666666667 +1378246434; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 116041.06666666667; 0.0; 1.0; 0.0; 0.0 +1378246734; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 109050.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1378247034; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 114642.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378247334; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 118837.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378247634; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 132817.86666666667; 0.06666666666666667; 1.5333333333333334; 0.0; 0.06666666666666667 +1378247935; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 121633.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1378248235; 1; 2599.999343; 6.933331581333333; 0.26666666666666666; 2097152.0; 138411.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378248535; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 120235.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378248835; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 114642.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378249135; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 120235.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378249435; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 124429.86666666667; 0.0; 1.2666666666666666; 0.0; 0.0 +1378249735; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 139809.33333333334; 0.0; 2.2666666666666666; 0.06666666666666667; 0.5333333333333333 +1378250035; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 134216.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378250335; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 113244.8; 0.0; 0.8; 0.0; 0.0 +1378250635; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 97865.33333333333; 0.0; 1.0; 0.0; 0.0 +1378250935; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 103457.86666666667; 0.0; 6.866666666666666; 0.2; 0.13333333333333333 +1378251235; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 148198.13333333333; 0.0; 2.066666666666667; 0.0; 0.0 +1378251536; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 89476.53333333334; 0.0; 1.2; 0.0; 0.0 +1378251836; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 110448.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378252136; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 111846.66666666667; 0.0; 1.6; 0.0; 0.0 +1378252436; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 99263.46666666666; 0.0; 0.8; 0.0; 0.0 +1378252736; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 107652.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378253036; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 128624.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378253336; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 121633.6; 0.0; 2.2666666666666666; 0.06666666666666667; 0.5333333333333333 +1378253636; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 163576.0; 0.0; 1.2666666666666666; 0.0; 0.0 +1378253936; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 150994.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1378254236; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378254536; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 85282.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378254836; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 114642.93333333333; 0.5333333333333333; 1.4666666666666666; 0.0; 0.0 +1378255136; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 107652.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378255436; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 134216.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378255736; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 114642.93333333333; 0.0; 1.0; 0.0; 0.0 +1378256036; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 117439.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378256336; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 92272.8; 0.0; 1.2666666666666666; 0.0; 0.0 +1378256636; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 102059.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378256936; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 176159.2; 0.2; 2.533333333333333; 0.0; 0.5333333333333333 +1378257236; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 150992.8; 0.06666666666666667; 1.0; 0.0; 0.0 +1378257536; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 83884.0; 0.0; 1.0; 0.0; 0.0 +1378257836; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 117439.2; 12.8; 13.0; 0.4; 0.13333333333333333 +1378258136; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 130022.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1378258436; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 152391.73333333334; 0.0; 1.3333333333333333; 0.0; 0.0 +1378258736; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 114642.93333333333; 0.0; 1.0; 0.0; 0.0 +1378259036; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 113244.8; 0.0; 1.2; 0.0; 0.0 +1378259336; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 113244.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1378259636; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 89476.53333333334; 0.0; 1.0; 0.0; 0.0 +1378259936; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378260236; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 131419.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378260537; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 157983.46666666667; 0.0; 2.6; 0.0; 0.5333333333333333 +1378260837; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 139808.53333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378261137; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 166373.06666666668; 0.0; 0.9333333333333333; 0.0; 0.0 +1378261437; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 130022.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1378261737; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 121633.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1378262037; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 96467.2; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378262337; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378262637; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 100661.6; 0.0; 1.0; 0.0; 0.0 +1378262937; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 117438.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378263237; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 132817.86666666667; 0.0; 1.2; 0.0; 0.0 +1378263537; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 110447.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378263837; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 110448.53333333334; 0.0; 0.8; 0.0; 0.0 +1378264137; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 138410.4; 0.0; 2.2; 0.0; 0.4666666666666667 +1378264437; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 148197.33333333334; 0.0; 6.733333333333333; 0.2; 0.13333333333333333 +1378264737; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 163577.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1378265037; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 130022.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1378265337; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378265637; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 111846.66666666667; 0.0; 1.0; 0.0; 0.0 +1378265937; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 109050.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1378266237; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 104856.0; 0.0; 0.8; 0.0; 0.0 +1378266537; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 117439.2; 0.0; 1.0; 0.0; 0.0 +1378266837; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378267137; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 83884.0; 0.0; 0.8; 0.06666666666666667; 0.0 +1378267437; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 104856.0; 1.4666666666666666; 1.4; 0.0; 0.0 +1378267737; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 141206.66666666666; 0.0; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1378268037; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 113244.8; 0.0; 1.0; 0.0; 0.0 +1378268338; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 96467.2; 0.0; 0.8; 0.0; 0.0 +1378268638; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 138410.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378268938; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 113244.8; 0.0; 0.8; 0.0; 0.0 +1378269238; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378269538; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 92272.8; 0.0; 0.6666666666666666; 0.0; 0.0 +1378269838; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 100661.6; 0.0; 1.7333333333333334; 0.0; 0.0 +1378270138; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 96467.2; 0.0; 1.2; 0.0; 0.0 +1378270438; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 146799.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378270738; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 142604.8; 0.0; 0.6666666666666666; 0.0; 0.0 +1378271038; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 117439.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1378271338; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 166372.26666666666; 0.06666666666666667; 2.6; 0.0; 0.5333333333333333 +1378271638; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 139809.33333333334; 0.0; 7.0; 0.26666666666666666; 0.2 +1378271938; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 146800.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1378272238; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 111846.66666666667; 0.0; 0.8; 0.0; 0.0 +1378272538; 1; 2599.999343; 5.199998686; 0.2; 2097152.0; 121633.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1378272838; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 130022.4; 0.0; 1.2666666666666666; 0.0; 0.0 +1378273138; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 135614.93333333332; 0.0; 0.6; 0.0; 0.0 +1378273438; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1378273738; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 100661.6; 0.0; 11.666666666666666; 0.06666666666666667; 0.0 +1378274038; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378274338; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378274638; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 102059.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1378274938; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 121633.6; 0.06666666666666667; 2.3333333333333335; 0.06666666666666667; 0.5333333333333333 +1378275238; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 155188.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378275538; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 96467.2; 0.0; 1.0; 0.0; 0.0 +1378275838; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378276138; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 74097.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378276438; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 117439.2; 0.0; 2.4; 0.06666666666666667; 0.13333333333333333 +1378276738; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 144002.93333333332; 0.0; 1.5333333333333334; 0.0; 0.0 +1378277038; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 117439.2; 0.0; 1.4666666666666666; 0.06666666666666667; 0.0 +1378277338; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378277638; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 99263.46666666666; 0.0; 6.933333333333334; 0.4666666666666667; 0.13333333333333333 +1378277938; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 90874.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378278238; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 130022.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378278538; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 156586.93333333332; 0.0; 2.6; 0.0; 0.5333333333333333 +1378278838; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 156584.8; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378279138; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 114642.93333333333; 0.0; 0.9333333333333333; 0.26666666666666666; 0.0 +1378279438; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 124428.8; 0.0; 1.0; 0.0; 0.0 +1378279738; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 100661.6; 0.0; 1.2666666666666666; 0.0; 0.0 +1378280038; 1; 2599.999343; 32.93332501133333; 1.2666666666666666; 2097152.0; 164974.66666666666; 161.13333333333333; 20.4; 0.06666666666666667; 0.4 +1378280338; 1; 2599.999343; 53.733319755333326; 2.0666666666666664; 2097152.0; 759166.4; 0.0; 3.6666666666666665; 0.0; 0.0 +1378280638; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 314570.4; 31.8; 3.7333333333333334; 0.0; 0.0 +1378280938; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 204119.46666666667; 0.0; 2.8; 0.0; 0.0 +1378281238; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 183149.06666666668; 0.0; 2.066666666666667; 0.0; 0.0 +1378281538; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 148197.86666666667; 0.0; 1.0; 0.0; 0.0 +1378281838; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 110448.53333333334; 0.0; 1.0; 0.13333333333333333; 0.0 +1378282138; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 163575.73333333334; 0.06666666666666667; 2.533333333333333; 0.0; 0.5333333333333333 +1378282438; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 170566.66666666666; 0.0; 1.2; 0.0; 0.0 +1378282739; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 130022.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1378283039; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 111846.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378283339; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378283639; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 102059.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378283939; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 121633.6; 0.0; 1.2666666666666666; 0.0; 0.0 +1378284239; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 118837.33333333333; 0.0; 1.0; 0.0; 0.0 +1378284539; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 135614.93333333332; 0.06666666666666667; 7.133333333333334; 0.2; 0.13333333333333333 +1378284839; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 116040.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378285139; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 95069.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378285439; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 96467.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1378285739; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 107652.26666666666; 0.0; 2.4; 0.06666666666666667; 0.4666666666666667 +1378286039; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 142605.06666666668; 0.0; 1.0; 0.0; 0.0 +1378286339; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 139809.06666666668; 0.0; 1.0; 0.0; 0.0 +1378286639; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 116041.06666666667; 0.0; 1.2; 0.0; 0.0 +1378286939; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 107652.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378287239; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378287539; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 104856.0; 0.0; 1.0; 0.0; 0.0 +1378287839; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 92272.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378288139; 1; 2599.999343; 22.533327639333333; 0.8666666666666667; 2097152.0; 137013.06666666668; 20.4; 2.3333333333333335; 0.0; 0.06666666666666667 +1378288439; 1; 2599.999343; 29.466659220666667; 1.1333333333333333; 2097152.0; 135614.93333333332; 0.0; 3.933333333333333; 0.0; 0.0 +1378288739; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 127226.13333333333; 0.0; 2.466666666666667; 0.0; 0.0 +1378289039; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 152390.93333333332; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378289340; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 144003.73333333334; 0.06666666666666667; 2.7333333333333334; 0.0; 0.4666666666666667 +1378289640; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 166372.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378289940; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 99263.46666666666; 0.0; 6.866666666666666; 0.2; 0.13333333333333333 +1378290240; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 160780.53333333333; 0.0; 1.0; 0.0; 0.0 +1378290540; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 89476.53333333334; 0.0; 1.0; 0.0; 0.0 +1378290840; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 90874.66666666667; 0.0; 1.2666666666666666; 0.0; 0.0 +1378291140; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 96467.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378291440; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 100661.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378291740; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 120235.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378292040; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 118837.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378292340; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 117439.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378292640; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 130021.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378292940; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 121633.06666666667; 0.13333333333333333; 2.6666666666666665; 0.06666666666666667; 0.5333333333333333 +1378293240; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 174760.8; 0.0; 1.0; 0.0; 0.0 +1378293540; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 117439.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1378293840; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378294140; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378294440; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378294740; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378295040; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 117439.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1378295340; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 132818.66666666666; 0.0; 1.2; 0.0; 0.0 +1378295640; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 110448.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378295940; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 114642.93333333333; 0.0; 0.8; 0.0; 0.0 +1378296240; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 156585.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378296540; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 191538.13333333333; 0.06666666666666667; 2.466666666666667; 0.06666666666666667; 0.5333333333333333 +1378296840; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 194334.66666666666; 0.0; 6.733333333333333; 0.2; 0.13333333333333333 +1378297140; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 181751.73333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1378297441; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 118837.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378297741; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 100661.6; 0.0; 1.2666666666666666; 0.0; 0.0 +1378298041; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 79689.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378298341; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 102059.73333333334; 0.0; 0.8; 0.0; 0.0 +1378298641; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 118837.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378298941; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 109049.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378299241; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 83884.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1378299541; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 110448.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378299841; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 160780.0; 0.0; 1.0; 0.0; 0.0 +1378300141; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 162177.86666666667; 0.0; 2.466666666666667; 0.06666666666666667; 0.4666666666666667 +1378300441; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 159382.4; 0.0; 1.2; 0.0; 0.0 +1378300741; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 121633.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378301041; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 148198.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378301341; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 114642.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378301641; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 102059.73333333334; 0.9333333333333333; 1.7333333333333334; 0.0; 0.0 +1378301941; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 93670.93333333333; 0.0; 1.3333333333333333; 0.0; 0.0 +1378302241; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 117439.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378302541; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 141207.46666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378302841; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 111846.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378303141; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 99263.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378303441; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 111846.66666666667; 0.0; 7.466666666666667; 0.2; 0.13333333333333333 +1378303741; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 160780.0; 0.0; 2.6666666666666665; 0.06666666666666667; 0.4666666666666667 +1378304041; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 174760.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378304341; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 79689.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378304642; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 81087.73333333334; 0.0; 1.3333333333333333; 0.0; 0.0 +1378304942; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378305242; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 177557.06666666668; 0.2; 1.2; 0.06666666666666667; 0.13333333333333333 +1378305542; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 117439.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378305842; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378306142; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 97865.33333333333; 0.0; 1.2; 0.0; 0.0 +1378306442; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 106254.13333333333; 0.0; 1.0; 0.0; 0.0 +1378306742; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378307042; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 149595.46666666667; 0.0; 1.0; 0.06666666666666667; 0.0 +1378307342; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 138410.13333333333; 0.0; 2.533333333333333; 0.06666666666666667; 0.4666666666666667 +1378307641; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 150993.6; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378307941; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 116041.06666666667; 0.0; 0.8; 0.0; 0.0 +1378308241; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 102059.73333333334; 0.0; 1.0; 0.0; 0.0 +1378308541; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1378308841; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 135614.93333333332; 0.0; 1.2666666666666666; 0.06666666666666667; 0.0 +1378309141; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 141207.46666666667; 0.0; 1.0; 0.06666666666666667; 0.0 +1378309441; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 124429.86666666667; 0.0; 1.1333333333333333; 0.2; 0.0 +1378309741; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 148198.13333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1378310041; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378310341; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 114642.93333333333; 0.0; 7.133333333333334; 0.4; 0.13333333333333333 +1378310641; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378310941; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 123031.73333333334; 0.0; 2.466666666666667; 0.8666666666666667; 0.5333333333333333 +1378311241; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 127225.33333333333; 0.0; 1.0; 0.0; 0.0 +1378311541; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 118837.33333333333; 0.0; 1.2; 0.0; 0.0 +1378311842; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 121633.6; 0.0; 1.0; 0.0; 0.0 +1378312142; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 134216.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378312442; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378312742; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 127226.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378313042; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 141207.46666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1378313342; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 124429.86666666667; 0.0; 1.0; 0.0; 0.0 +1378313642; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 128624.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378313942; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378314242; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 114642.93333333333; 0.0; 1.8666666666666667; 0.0; 0.0 +1378314542; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 150993.86666666667; 0.0; 2.466666666666667; 0.06666666666666667; 0.5333333333333333 +1378314842; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 174760.53333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378315142; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 127226.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378315442; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 86680.26666666666; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378315742; 1; 2599.999343; 22.533327639333333; 0.8666666666666667; 2097152.0; 86680.26666666666; 12.733333333333333; 13.533333333333333; 0.4666666666666667; 0.2 +1378316042; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 118837.33333333333; 0.0; 1.4666666666666666; 0.06666666666666667; 0.0 +1378316342; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 93670.93333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378316642; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 90874.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378316942; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 123031.73333333334; 0.0; 0.9333333333333333; 0.8666666666666667; 0.0 +1378317242; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 104855.2; 0.0; 11.866666666666667; 0.2; 0.0 +1378317542; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 85282.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378317842; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 92272.8; 0.0; 1.4666666666666666; 0.0; 0.0 +1378318142; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 130022.13333333333; 0.06666666666666667; 2.7333333333333334; 0.06666666666666667; 0.5333333333333333 +1378318442; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 138410.66666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1378318742; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 107652.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378319042; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378319342; 1; 2599.999343; 6.933331581333333; 0.26666666666666666; 2097152.0; 124429.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1378319642; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 120235.46666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1378319942; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 148197.33333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378320243; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 92272.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1378320543; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 92272.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378320843; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 107652.26666666666; 0.0; 1.0; 0.06666666666666667; 0.0 +1378321143; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 120235.46666666666; 0.0; 0.6; 0.0; 0.0 +1378321443; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 99263.46666666666; 0.0; 1.0; 0.0; 0.0 +1378321743; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 144003.73333333334; 0.06666666666666667; 2.466666666666667; 0.06666666666666667; 0.5333333333333333 +1378322043; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 178955.46666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1378322343; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 120235.46666666666; 0.0; 6.933333333333334; 0.2; 0.13333333333333333 +1378322643; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 148197.33333333334; 0.0; 1.2; 0.0; 0.0 +1378322943; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 102059.73333333334; 0.0; 0.8; 0.0; 0.0 +1378323243; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 97865.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1378323543; 1; 2599.999343; 39.866656592666665; 1.5333333333333334; 2097152.0; 160779.73333333334; 161.0; 14.4; 0.0; 0.2 +1378323843; 1; 2599.999343; 27.733326325333334; 1.0666666666666667; 2097152.0; 443195.73333333334; 0.0; 1.5333333333333334; 0.0; 0.0 +1378324143; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 184547.2; 31.8; 4.066666666666666; 0.0; 0.0 +1378324443; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 192936.26666666666; 0.0; 1.0; 0.0; 0.0 +1378324743; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 120234.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378325043; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378325343; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 121632.8; 0.06666666666666667; 2.4; 0.06666666666666667; 0.5333333333333333 +1378325643; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 123030.93333333333; 0.0; 1.2; 0.0; 0.0 +1378325943; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 113244.8; 0.0; 1.0; 0.0; 0.0 +1378326243; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 86680.26666666666; 0.0; 0.8; 0.0; 0.0 +1378326543; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378326843; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 124429.86666666667; 0.0; 1.2; 0.0; 0.0 +1378327143; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 100661.6; 0.0; 1.0; 0.0; 0.0 +1378327443; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378327743; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 102059.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378328043; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 123031.73333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1378328343; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 125828.0; 0.0; 1.3333333333333333; 0.0; 0.0 +1378328643; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 114642.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378328943; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 159381.6; 0.06666666666666667; 2.4; 0.06666666666666667; 0.5333333333333333 +1378329244; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 190139.46666666667; 0.0; 7.933333333333334; 0.2; 0.13333333333333333 +1378329544; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 153790.13333333333; 0.0; 1.2; 0.0; 0.0 +1378329844; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 97865.33333333333; 0.0; 1.0; 0.0; 0.0 +1378330144; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 82485.86666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378330444; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 110448.53333333334; 0.0; 1.0; 0.0; 0.0 +1378330744; 1; 2599.999343; 8.666664476666668; 0.33333333333333337; 2097152.0; 149595.46666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378331044; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 111846.66666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1378331344; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 97865.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378331644; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 106254.13333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1378331944; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 100661.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378332244; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 106254.13333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1378332544; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 127225.86666666667; 0.06666666666666667; 2.8; 0.06666666666666667; 0.5333333333333333 +1378332844; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 103457.33333333333; 0.0; 1.0; 0.0; 0.0 +1378333144; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 114642.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1378333444; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 131420.53333333333; 0.0; 0.8; 0.0; 0.0 +1378333744; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 106254.13333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1378334044; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 99263.46666666666; 0.0; 1.5333333333333334; 0.06666666666666667; 0.13333333333333333 +1378334344; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 132817.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378334644; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 110448.53333333334; 0.0; 7.2; 0.2; 0.13333333333333333 +1378334944; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 145401.06666666668; 0.0; 1.0666666666666667; 0.0; 0.0 +1378335244; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 169169.06666666668; 0.0; 1.1333333333333333; 0.0; 0.0 +1378335544; 1; 2599.999343; 65.86665002266666; 2.533333333333333; 2097152.0; 485139.4666666667; 161.0; 21.333333333333332; 0.06666666666666667; 0.4 +1378335844; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 588599.4666666667; 1.0666666666666667; 3.066666666666667; 0.0; 0.0 +1378336144; 1; 2599.999343; 24.266660534666663; 0.9333333333333332; 2097152.0; 306181.86666666664; 32.666666666666664; 5.6; 0.06666666666666667; 0.4666666666666667 +1378336444; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 236276.53333333333; 0.0; 2.466666666666667; 0.0; 0.0 +1378336744; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 169169.6; 0.0; 1.6666666666666667; 0.0; 0.0 +1378337045; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 110448.53333333334; 0.06666666666666667; 0.8666666666666667; 0.0; 0.0 +1378337345; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 95069.06666666667; 3.8; 1.4; 0.0; 0.0 +1378337645; 1; 2599.999343; 22.533327639333333; 0.8666666666666667; 2097152.0; 156586.13333333333; 0.4; 3.2666666666666666; 0.0; 0.0 +1378337945; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 128624.26666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1378338245; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 121633.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378338545; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 111846.66666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378338845; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 95069.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378339145; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378339445; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 118837.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378339745; 1; 2599.999343; 20.799994744; 0.8; 2097152.0; 118837.33333333333; 0.06666666666666667; 2.466666666666667; 0.06666666666666667; 0.5333333333333333 +1378340045; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 135614.93333333332; 0.0; 0.9333333333333333; 0.0; 0.0 +1378340345; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 128623.46666666666; 0.0; 0.8; 0.0; 0.0 +1378340645; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 81087.73333333334; 0.0; 1.0; 0.0; 0.0 +1378340945; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 72698.93333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1378341245; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 107652.26666666666; 0.6; 7.333333333333333; 0.2; 0.13333333333333333 +1378341545; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 127226.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378341845; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 106254.13333333333; 0.0; 1.0; 0.0; 0.0 +1378342145; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 75495.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378342445; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 95069.06666666667; 0.0; 1.0; 0.0; 0.0 +1378342745; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378343045; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 125828.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1378343345; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 153789.86666666667; 0.0; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1378343645; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 152391.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378343945; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 152391.73333333334; 0.0; 1.0; 0.0; 0.0 +1378344245; 1; 2599.999343; 17.333328953333336; 0.6666666666666667; 2097152.0; 121633.6; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378344545; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 110448.53333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1378344845; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 121633.6; 0.06666666666666667; 1.4666666666666666; 0.0; 0.0 +1378345145; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378345445; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 110448.53333333334; 0.0; 0.8; 0.06666666666666667; 0.0 +1378345745; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 130022.4; 0.0; 1.0; 0.0; 0.0 +1378346045; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 117439.2; 0.0; 1.0; 0.0; 0.0 +1378346345; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 88078.4; 0.0; 1.2666666666666666; 0.0; 0.0 +1378346645; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378346945; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 137012.26666666666; 0.06666666666666667; 2.3333333333333335; 0.06666666666666667; 0.5333333333333333 +1378347245; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 163576.0; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1378347545; 1; 2599.999343; 19.066661848666666; 0.7333333333333333; 2097152.0; 120235.46666666666; 0.0; 7.466666666666667; 0.3333333333333333; 0.13333333333333333 +1378347845; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 123030.93333333333; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378348145; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 144002.93333333332; 0.0; 0.8666666666666667; 0.0; 0.0 +1378348445; 1; 2599.999343; 10.399997372; 0.4; 2097152.0; 142604.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1378348745; 1; 2599.999343; 12.133330267333331; 0.4666666666666666; 2097152.0; 117439.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378349045; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 134216.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1378349345; 1; 2599.999343; 15.599996057999999; 0.6; 2097152.0; 90874.66666666667; 0.0; 1.0; 0.0; 0.0 +1378349645; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 144003.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378349945; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 113244.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1378350245; 1; 2599.999343; 13.866663162666667; 0.5333333333333333; 2097152.0; 109050.4; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378350545; 1; 2599.999601; 25.99999601; 1.0; 2097152.0; 167772.0; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378350845; 1; 2599.999601; 19.066663740666666; 0.7333333333333333; 2097152.0; 167772.0; 0.0; 1.1333333333333333; 0.2; 0.0 +1378351145; 1; 2599.999601; 5.199999202; 0.2; 2097152.0; 125828.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1378351445; 1; 2599.999601; 6.9333322693333335; 0.26666666666666666; 2097152.0; 124429.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378351745; 1; 2599.999601; 12.133331471333332; 0.4666666666666666; 2097152.0; 75495.2; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1378352046; 1; 2599.999601; 10.399998404; 0.4; 2097152.0; 103457.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378352346; 1; 2599.999601; 6.9333322693333335; 0.26666666666666666; 2097152.0; 109049.86666666667; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1378352646; 1; 2599.999601; 10.399998404; 0.4; 2097152.0; 107652.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378352946; 1; 2599.999601; 3.4666661346666667; 0.13333333333333333; 2097152.0; 121633.6; 0.0; 1.4666666666666666; 0.0; 0.0 +1378353246; 1; 2599.999601; 8.666665336666668; 0.33333333333333337; 2097152.0; 97865.33333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378353546; 1; 2599.999601; 5.199999202; 0.2; 2097152.0; 82485.86666666667; 0.0; 1.0; 0.0; 0.0 +1378353846; 1; 2599.999601; 8.666665336666668; 0.33333333333333337; 2097152.0; 95069.06666666667; 0.06666666666666667; 6.533333333333333; 0.26666666666666666; 0.13333333333333333 +1378354146; 1; 2599.999601; 13.866664538666667; 0.5333333333333333; 2097152.0; 180353.6; 0.0; 2.6666666666666665; 0.06666666666666667; 0.4666666666666667 +1378354446; 1; 2599.999601; 10.399998404; 0.4; 2097152.0; 125827.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378354746; 1; 2599.999601; 0.0; 0.0; 2097152.0; 150993.6; 0.0; 1.0; 0.0; 0.0 +1378355046; 1; 2599.999601; 3.4666661346666667; 0.13333333333333333; 2097152.0; 148198.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378355346; 1; 2599.999601; 1.7333330673333334; 0.06666666666666667; 2097152.0; 130022.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378355646; 1; 2599.999601; 1.7333330673333334; 0.06666666666666667; 2097152.0; 130022.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378355946; 1; 2599.999601; 1.7333330673333334; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 1.4; 0.0; 0.0 +1378356246; 1; 2599.999601; 0.0; 0.0; 2097152.0; 127225.33333333333; 0.0; 1.0; 0.0; 0.0 +1378356546; 1; 2599.999601; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378356846; 1; 2599.999601; 3.4666661346666667; 0.13333333333333333; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378357146; 1; 2599.999601; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378357446; 1; 2599.999601; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 1.0; 0.0; 0.0 +1378357746; 1; 2599.999601; 8.666665336666668; 0.33333333333333337; 2097152.0; 142605.6; 0.0; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1378358046; 1; 2599.999601; 5.199999202; 0.2; 2097152.0; 134216.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378358346; 1; 2599.999601; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 1.0; 0.0; 0.0 +1378358646; 1; 2599.999601; 1.7333330673333334; 0.06666666666666667; 2097152.0; 109050.4; 0.0; 1.2666666666666666; 0.0; 0.0 +1378358947; 1; 2599.999601; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 1.6666666666666667; 0.0; 0.0 +1378359247; 1; 2599.999601; 1.7333330673333334; 0.06666666666666667; 2097152.0; 127226.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378359547; 1; 2599.999601; 3.4666661346666667; 0.13333333333333333; 2097152.0; 130022.4; 0.0; 1.0; 0.0; 0.0 +1378359847; 1; 2599.999601; 3.4666661346666667; 0.13333333333333333; 2097152.0; 104856.0; 0.0; 6.933333333333334; 0.26666666666666666; 0.13333333333333333 +1378360147; 1; 2599.999601; 1.7333330673333334; 0.06666666666666667; 2097152.0; 110448.53333333334; 0.0; 1.2666666666666666; 0.0; 0.0 +1378360447; 1; 2599.999601; 3.4666661346666667; 0.13333333333333333; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378360747; 1; 2599.999601; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378361047; 1; 2599.999601; 5.199999202; 0.2; 2097152.0; 123031.73333333334; 0.0; 11.866666666666667; 0.0; 0.0 +1378361347; 1; 2599.999601; 8.666665336666668; 0.33333333333333337; 2097152.0; 155186.93333333332; 0.0; 2.466666666666667; 0.0; 0.4666666666666667 +1378361647; 1; 2599.999601; 3.4666661346666667; 0.13333333333333333; 2097152.0; 171965.6; 0.0; 0.8666666666666667; 4.4; 0.0 +1378361947; 1; 2599.999601; 1.7333330673333334; 0.06666666666666667; 2097152.0; 162177.6; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1378362247; 1; 2599.999601; 0.0; 0.0; 2097152.0; 121632.8; 0.0; 1.2; 0.26666666666666666; 0.0 +1378362547; 1; 2599.999601; 0.0; 0.0; 2097152.0; 68504.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378362847; 1; 2599.999601; 5.199999202; 0.2; 2097152.0; 173362.13333333333; 0.06666666666666667; 2.8666666666666667; 0.13333333333333333; 0.13333333333333333 +1378363147; 1; 2599.999601; 0.0; 0.0; 2097152.0; 184547.2; 0.0; 1.7333333333333334; 0.0; 0.0 +1378363447; 1; 2599.999601; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378363747; 1; 2599.999601; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378364047; 1; 2599.999601; 0.0; 0.0; 2097152.0; 134216.0; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1378364347; 1; 2599.999601; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378364647; 1; 2599.999601; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378364947; 1; 2599.999601; 5.199999202; 0.2; 2097152.0; 149595.46666666667; 0.26666666666666666; 2.4; 0.06666666666666667; 0.5333333333333333 +1378365247; 1; 2599.999601; 1.7333330673333334; 0.06666666666666667; 2097152.0; 180352.8; 0.0; 1.0; 0.0; 0.0 +1378365547; 1; 2599.999601; 6.9333322693333335; 0.26666666666666666; 2097152.0; 134216.8; 0.0; 7.066666666666666; 0.26666666666666666; 0.13333333333333333 +1378365847; 1; 2599.999601; 1.7333330673333334; 0.06666666666666667; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378366147; 1; 2599.999601; 0.0; 0.0; 2097152.0; 130021.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378366447; 1; 2599.999601; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378366747; 1; 2599.999601; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1378367047; 1; 2599.999601; 0.0; 0.0; 2097152.0; 155188.0; 0.0; 1.7333333333333334; 0.0; 0.0 +1378367347; 1; 2599.999601; 1.7333330673333334; 0.06666666666666667; 2097152.0; 128624.26666666666; 0.0; 1.0; 0.2; 0.0 +1378367647; 1; 2599.999601; 0.0; 0.0; 2097152.0; 128623.46666666666; 0.0; 1.0; 0.0; 0.0 +1378367947; 1; 2599.999601; 3.4666661346666667; 0.13333333333333333; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378368247; 1; 2599.999601; 0.0; 0.0; 2097152.0; 130022.4; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378368547; 1; 2599.999601; 5.199999202; 0.2; 2097152.0; 146799.2; 0.0; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1378368848; 1; 2599.999601; 0.0; 0.0; 2097152.0; 150992.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1378369148; 1; 2599.999601; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378369448; 1; 2599.999601; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378369748; 1; 2599.999601; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 1.2; 0.0; 0.0 +1378370048; 1; 2599.999601; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378370348; 1; 2599.999601; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8; 0.0; 0.0 +1378370648; 1; 2599.999601; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378370948; 1; 2599.999601; 0.0; 0.0; 2097152.0; 130022.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378371248; 1; 2599.999601; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1378371548; 1; 2599.999601; 1.7333330673333334; 0.06666666666666667; 2097152.0; 113244.8; 0.0; 0.8; 0.0; 0.0 +1378371848; 1; 2599.999601; 0.0; 0.0; 2097152.0; 138411.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378372148; 1; 2599.999601; 10.399998404; 0.4; 2097152.0; 141206.66666666666; 0.0; 8.2; 0.26666666666666666; 0.6666666666666666 +1378372448; 1; 2599.999601; 1.7333330673333334; 0.06666666666666667; 2097152.0; 155187.2; 0.0; 1.2; 0.0; 0.0 +1378372748; 1; 2599.999601; 0.0; 0.0; 2097152.0; 150994.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378373047; 1; 2599.999601; 0.0; 0.0; 2097152.0; 150993.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1378373347; 1; 2599.999601; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1378373647; 1; 2599.999601; 1.7333330673333334; 0.06666666666666667; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378373947; 1; 2599.999601; 1.7333330673333334; 0.06666666666666667; 2097152.0; 96467.2; 0.0; 1.2666666666666666; 0.0; 0.0 +1378374247; 1; 2599.999601; 8.666665336666668; 0.33333333333333337; 2097152.0; 85282.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378374547; 1; 2599.999601; 15.599997605999999; 0.6; 2097152.0; 96467.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1378374847; 1; 2599.999601; 17.333330673333336; 0.6666666666666667; 2097152.0; 92272.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378375147; 1; 2599.999601; 5.199999202; 0.2; 2097152.0; 117439.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378375447; 1; 2599.999601; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.8; 0.0; 0.0 +1378375747; 1; 2599.999601; 5.199999202; 0.2; 2097152.0; 117439.2; 0.0; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1378376047; 1; 2599.999601; 3.4666661346666667; 0.13333333333333333; 2097152.0; 125828.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378376347; 1; 2599.999601; 1.7333330673333334; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1378376648; 1; 2599.999601; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 1.0; 0.0; 0.0 +1378376948; 1; 2599.999601; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.8; 0.0; 0.0 +1378377248; 1; 2599.999601; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.8; 0.0; 0.0 +1378377548; 1; 2599.999601; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1378377848; 1; 2599.999601; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 1.0; 0.0; 0.0 +1378378148; 1; 2599.999601; 0.0; 0.0; 2097152.0; 152391.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378378448; 1; 2599.999601; 0.0; 0.0; 2097152.0; 148197.33333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378378748; 1; 2599.999601; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378379048; 1; 2599.999601; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1378379348; 1; 2599.999601; 10.399998404; 0.4; 2097152.0; 142605.6; 13.0; 18.6; 0.3333333333333333; 0.6 +1378379648; 1; 2599.999601; 10.399998404; 0.4; 2097152.0; 130021.6; 0.0; 1.2; 0.0; 0.0 +1378379948; 1; 2599.999601; 13.866664538666667; 0.5333333333333333; 2097152.0; 125828.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1378380248; 1; 2599.999601; 17.333330673333336; 0.6666666666666667; 2097152.0; 88078.4; 0.0; 0.8; 0.0; 0.0 +1378380548; 1; 2599.999601; 0.0; 0.0; 2097152.0; 109049.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1378380848; 1; 2599.999601; 1.7333330673333334; 0.06666666666666667; 2097152.0; 54523.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1378381148; 1; 2599.999601; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 0.8; 0.0; 0.0 +1378381448; 1; 2599.999601; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.4; 0.0; 0.0 +1378381748; 1; 2599.999601; 1.7333330673333334; 0.06666666666666667; 2097152.0; 134216.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378382048; 1; 2599.999601; 13.866664538666667; 0.5333333333333333; 2097152.0; 134216.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1378382348; 1; 2599.999601; 6.9333322693333335; 0.26666666666666666; 2097152.0; 104856.0; 0.0; 0.6666666666666666; 0.13333333333333333; 0.0 +1378382648; 1; 2599.999601; 17.333330673333336; 0.6666666666666667; 2097152.0; 109050.4; 0.0; 0.8; 0.0; 0.0 +1378382948; 1; 2599.999601; 15.599997605999999; 0.6; 2097152.0; 155187.2; 0.06666666666666667; 2.066666666666667; 0.06666666666666667; 0.4666666666666667 +1378383248; 1; 2599.999601; 0.0; 0.0; 2097152.0; 150992.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378383548; 1; 2599.999601; 0.0; 0.0; 2097152.0; 141206.66666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1378383848; 1; 2599.999601; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378384149; 1; 2599.999601; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378384449; 1; 2599.998989; 51.999979780000004; 2.0; 2097152.0; 83884.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378384749; 1; 2599.998989; 22.53332457133334; 0.8666666666666667; 2097152.0; 96467.2; 0.0; 0.8; 0.0; 0.0 +1378385049; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 114642.93333333333; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378385349; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 124429.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378385649; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 139809.33333333334; 0.0; 6.933333333333334; 0.26666666666666666; 0.2 +1378385949; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 121633.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1378386249; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 120235.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378386549; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 124429.6; 0.0; 2.533333333333333; 0.13333333333333333; 0.5333333333333333 +1378386849; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 159381.86666666667; 0.0; 0.8; 0.0; 0.0 +1378387149; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 92272.8; 0.0; 0.6666666666666666; 0.13333333333333333; 0.0 +1378387449; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378387749; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 88078.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1378388049; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 110448.53333333334; 0.0; 0.8; 0.0; 0.0 +1378388349; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 118837.33333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1378388649; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 102059.73333333334; 0.0; 0.8; 0.0; 0.0 +1378388949; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 117439.2; 0.0; 1.0; 0.0; 0.0 +1378389249; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 103457.86666666667; 0.0; 0.8; 0.0; 0.0 +1378389549; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 109050.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1378389849; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 114642.93333333333; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378390149; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 138410.4; 0.2; 2.3333333333333335; 0.06666666666666667; 0.5333333333333333 +1378390449; 1; 2599.998989; 74.53330435133334; 2.8666666666666667; 2097152.0; 250258.93333333332; 161.0; 21.8; 0.06666666666666667; 0.3333333333333333 +1378390749; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 717224.5333333333; 0.0; 2.533333333333333; 0.06666666666666667; 0.0 +1378391049; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 359310.13333333336; 31.8; 3.6; 0.0; 0.0 +1378391949; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 145401.86666666667; 0.0; 1.0; 0.0; 0.0 +1378392249; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 130022.4; 0.0; 6.4; 0.2; 0.13333333333333333 +1378392549; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 118837.33333333333; 0.0; 1.3333333333333333; 0.0; 0.0 +1378392849; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 111846.66666666667; 0.0; 0.8; 0.2; 0.0 +1378393149; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 79689.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1378393449; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378393749; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 181751.46666666667; 0.0; 2.2; 0.06666666666666667; 0.4666666666666667 +1378394050; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 149595.73333333334; 0.0; 0.6; 0.06666666666666667; 0.0 +1378394350; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 138410.4; 0.0; 0.8; 0.0; 0.0 +1378394650; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 145401.06666666668; 0.0; 1.2; 0.0; 0.0 +1378394950; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 123031.73333333334; 0.0; 0.8; 0.06666666666666667; 0.0 +1378395250; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 96467.2; 0.0; 0.6666666666666666; 0.0; 0.0 +1378395550; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 88078.4; 0.0; 0.8; 0.0; 0.0 +1378395850; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 118837.33333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1378396150; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 127226.13333333333; 0.0; 1.3333333333333333; 0.0; 0.0 +1378396450; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 127225.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378396750; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 130022.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1378397050; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 142605.6; 0.0; 1.1333333333333333; 0.0; 0.0 +1378397350; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 131420.53333333333; 0.0; 2.7333333333333334; 0.13333333333333333; 0.5333333333333333 +1378397650; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 149595.46666666667; 0.0; 0.8; 0.0; 0.0 +1378397950; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 123031.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378398250; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 125828.0; 0.0; 1.0; 0.0; 0.0 +1378398550; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 144003.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378398850; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 125828.0; 0.0; 1.2666666666666666; 0.06666666666666667; 0.0 +1378399150; 1; 2599.998989; 20.799991912; 0.8; 2097152.0; 120234.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378399450; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 116041.06666666667; 0.0; 7.0; 0.26666666666666666; 0.13333333333333333 +1378399750; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 113244.8; 0.0; 1.0; 0.13333333333333333; 0.0 +1378400050; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 114642.93333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378400350; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 120235.46666666666; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378400650; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 134216.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378400950; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 125827.2; 0.06666666666666667; 2.533333333333333; 0.0; 0.4666666666666667 +1378401250; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 150994.4; 0.0; 1.0; 0.0; 0.0 +1378401550; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 109050.4; 0.0; 1.2; 0.0; 0.0 +1378401850; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 113244.8; 0.0; 1.0; 0.0; 0.0 +1378402150; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378402450; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378402750; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378403050; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 96467.2; 0.0; 1.2666666666666666; 0.0; 0.0 +1378403350; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 118837.33333333333; 0.0; 1.7333333333333334; 0.0; 0.0 +1378403650; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 134216.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378403951; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 125828.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378404251; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 117439.2; 0.0; 1.6; 0.0; 0.0 +1378404551; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 146798.4; 0.0; 13.0; 0.06666666666666667; 0.4666666666666667 +1378404851; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 178954.66666666666; 0.0; 7.066666666666666; 0.26666666666666666; 0.13333333333333333 +1378405151; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 163575.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378405451; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 116041.06666666667; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378405750; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 138411.2; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1378406050; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378406350; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 124429.86666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378406650; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 118837.33333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378406950; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 100661.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1378407250; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378407550; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378407850; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378408150; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 164974.13333333333; 0.0; 2.3333333333333335; 0.0; 0.4666666666666667 +1378408450; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 146799.2; 0.0; 1.3333333333333333; 0.0; 0.0 +1378408751; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378409051; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 79689.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378409351; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378409651; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 89476.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378409951; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 100661.6; 0.0; 1.1333333333333333; 0.0; 0.0 +1378410251; 1; 2599.998989; 51.999979780000004; 2.0; 2097152.0; 591395.2; 161.73333333333332; 14.2; 0.0; 0.2 +1378410551; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 272627.2; 0.0; 1.5333333333333334; 0.0; 0.0 +1378410851; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 159383.2; 31.8; 3.533333333333333; 0.0; 0.0 +1378411151; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 127226.13333333333; 0.0; 7.266666666666667; 0.26666666666666666; 0.13333333333333333 +1378411451; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 125828.0; 0.0; 0.8666666666666667; 4.466666666666667; 0.0 +1378411751; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 159382.4; 0.06666666666666667; 2.533333333333333; 0.06666666666666667; 0.4666666666666667 +1378412051; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 159382.4; 0.0; 0.8; 0.0; 0.0 +1378412351; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 125828.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378412651; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378412951; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 123031.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1378413251; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 159382.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378413551; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 88078.4; 0.0; 0.9333333333333333; 0.13333333333333333; 0.0 +1378413851; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 130022.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1378414151; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 124429.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378414451; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 113244.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1378414751; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378415051; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 114642.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378415351; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 123031.73333333334; 0.13333333333333333; 2.8666666666666667; 0.06666666666666667; 0.4666666666666667 +1378415651; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 134216.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378415951; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 120235.46666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1378416251; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 125827.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378416551; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378416851; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 125827.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1378417152; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 85282.13333333333; 0.0; 1.2666666666666666; 0.0; 0.0 +1378417452; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 120235.46666666666; 0.0; 1.0; 0.0; 0.0 +1378417752; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 78291.46666666666; 0.0; 7.333333333333333; 0.26666666666666666; 0.2 +1378418052; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 113244.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1378418352; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 71300.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1378418652; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 88078.4; 0.0; 1.0; 0.0; 0.0 +1378418952; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 127226.13333333333; 0.06666666666666667; 2.1333333333333333; 0.0; 0.4666666666666667 +1378419252; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 138411.2; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378419552; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 118837.33333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378419852; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 102059.73333333334; 0.0; 1.0; 0.0; 0.0 +1378420152; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 135614.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378420452; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 125827.2; 0.0; 1.6; 0.06666666666666667; 0.13333333333333333 +1378420752; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 106254.13333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1378421052; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 102059.73333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1378421352; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378421652; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 100661.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378421952; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 74097.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378422252; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 96467.2; 0.0; 1.2; 0.0; 0.0 +1378422552; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 144002.93333333332; 0.06666666666666667; 2.6; 0.06666666666666667; 0.4666666666666667 +1378422852; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 135614.93333333332; 0.0; 1.0666666666666667; 0.0; 0.0 +1378423152; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 102059.73333333334; 0.0; 1.0; 0.0; 0.0 +1378423452; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 99263.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378423752; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 102059.73333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1378424052; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 134216.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378424352; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 107652.26666666666; 0.0; 1.0; 0.0; 0.0 +1378424653; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 117439.2; 0.06666666666666667; 6.333333333333333; 0.2; 0.13333333333333333 +1378424953; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 132818.66666666666; 0.0; 2.1333333333333333; 0.0; 0.0 +1378425253; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 107652.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1378425553; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 83884.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378425853; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378426153; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 110448.53333333334; 0.0; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1378426453; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 132817.86666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1378426753; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 90874.66666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1378427053; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378427353; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 107652.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378427653; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 146799.2; 0.5333333333333333; 1.4; 0.0; 0.0 +1378427953; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 116041.06666666667; 0.0; 1.4; 0.0; 0.0 +1378428253; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378428553; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378428853; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378429153; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 150994.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1378429453; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 138410.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1378429753; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 131420.53333333333; 0.0; 2.4; 0.06666666666666667; 0.4666666666666667 +1378430053; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 162178.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378430353; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 120235.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378430653; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 117439.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378430953; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378431253; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 109050.4; 0.0; 6.933333333333334; 0.26666666666666666; 0.13333333333333333 +1378431553; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 106254.13333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378431853; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 100661.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1378432153; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 104856.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1378432453; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 110448.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378432753; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 102059.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378433054; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 97865.33333333333; 0.0; 0.8; 0.0; 0.0 +1378433354; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 118836.8; 0.0; 2.6; 0.06666666666666667; 0.5333333333333333 +1378433654; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 135614.66666666666; 0.0; 1.6666666666666667; 0.0; 0.0 +1378433954; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 167770.4; 0.0; 1.2; 0.0; 0.0 +1378434254; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 123030.93333333333; 0.0; 1.0; 0.0; 0.0 +1378434554; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 114642.93333333333; 0.0; 1.0; 0.0; 0.0 +1378434854; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 124429.86666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1378435154; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378435454; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378435754; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 107652.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378436054; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 132818.66666666666; 0.0; 1.2; 0.0; 0.0 +1378436354; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 134216.0; 0.0; 1.0; 0.0; 0.0 +1378436654; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 104856.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1378436954; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 157983.73333333334; 0.4; 2.1333333333333333; 0.06666666666666667; 0.4666666666666667 +1378437254; 1; 2599.998989; 22.53332457133334; 0.8666666666666667; 2097152.0; 208316.0; 12.733333333333333; 13.2; 0.3333333333333333; 0.13333333333333333 +1378437554; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 139808.53333333333; 0.0; 1.2666666666666666; 0.0; 0.0 +1378437854; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 109050.4; 0.0; 1.0; 0.0; 0.0 +1378438154; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 103457.86666666667; 0.0; 0.8; 0.0; 0.0 +1378438454; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378438754; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 109050.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1378439053; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 81087.73333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1378439354; 1; 2599.998989; 69.33330637333334; 2.666666666666667; 2097152.0; 310376.8; 161.0; 22.266666666666666; 0.06666666666666667; 0.3333333333333333 +1378439654; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 666892.2666666667; 0.0; 2.466666666666667; 0.0; 0.0 +1378439954; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 279618.4; 31.8; 3.533333333333333; 0.0; 0.0 +1378440254; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 194334.66666666666; 0.8; 2.533333333333333; 0.0; 0.0 +1378440554; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 187343.46666666667; 0.0; 3.3333333333333335; 0.06666666666666667; 0.5333333333333333 +1378440854; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 195732.8; 0.0; 1.0; 0.0; 0.0 +1378441154; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 124429.86666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1378441454; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 88078.4; 0.0; 1.0; 0.0; 0.0 +1378441754; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 102059.73333333334; 0.0; 1.0; 0.0; 0.0 +1378442054; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378442354; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 121632.8; 0.0; 1.0; 0.0; 0.0 +1378442654; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 102059.73333333334; 0.0; 1.2; 0.0; 0.0 +1378442954; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 113244.8; 0.0; 7.133333333333334; 0.2; 0.13333333333333333 +1378443254; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 153789.86666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378443554; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 107652.26666666666; 0.0; 1.0; 0.0; 0.0 +1378443854; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 150993.33333333334; 0.0; 1.0; 0.0; 0.0 +1378444154; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 187343.73333333334; 0.06666666666666667; 2.7333333333333334; 0.06666666666666667; 0.5333333333333333 +1378444454; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 159382.13333333333; 0.0; 1.0; 0.0; 0.0 +1378444754; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 156586.13333333333; 0.0; 1.0; 0.0; 0.0 +1378445054; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 127226.13333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378445354; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378445654; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 127226.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378445954; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 107652.26666666666; 0.0; 1.2; 0.0; 0.0 +1378446254; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 114642.93333333333; 0.0; 1.2666666666666666; 0.0; 0.0 +1378446554; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378446855; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 142605.6; 0.0; 1.0; 0.0; 0.0 +1378447155; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 85282.13333333333; 0.0; 1.2; 0.0; 0.0 +1378447455; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 109050.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1378447755; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 102059.73333333334; 0.06666666666666667; 3.466666666666667; 0.06666666666666667; 0.4666666666666667 +1378448055; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 144003.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378448355; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 132817.86666666667; 0.0; 11.933333333333334; 0.0; 0.0 +1378448655; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 113244.8; 0.0; 1.2; 0.0; 0.0 +1378448955; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 89476.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378449255; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 120235.46666666666; 0.0; 2.3333333333333335; 0.06666666666666667; 0.13333333333333333 +1378449555; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 164974.93333333332; 0.0; 1.7333333333333334; 0.0; 0.0 +1378449855; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 150993.33333333334; 0.0; 6.666666666666667; 0.2; 0.13333333333333333 +1378450155; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 117439.2; 0.0; 1.8666666666666667; 0.0; 0.0 +1378450455; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 109050.4; 0.0; 1.2; 0.0; 0.0 +1378450755; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 132818.66666666666; 0.0; 1.0; 0.0; 0.0 +1378451055; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 137012.53333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378451355; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 135614.66666666666; 0.0; 2.6; 0.06666666666666667; 0.5333333333333333 +1378451655; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 142604.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1378451955; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 127226.13333333333; 0.0; 1.0; 0.06666666666666667; 0.0 +1378452255; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 90874.66666666667; 0.0; 1.0; 0.0; 0.0 +1378452555; 1; 2599.998989; 0.0; 0.0; 2097152.0; 130022.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378452855; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 127225.06666666667; 0.0; 1.2; 0.0; 0.0 +1378453155; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 96467.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378453455; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 97865.33333333333; 0.0; 1.2; 0.0; 0.0 +1378453755; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 135614.93333333332; 0.0; 1.1333333333333333; 0.0; 0.0 +1378454055; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 138411.2; 0.0; 1.3333333333333333; 0.0; 0.0 +1378454355; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 1.0; 0.0; 0.0 +1378454655; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378454955; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 113244.8; 0.0; 2.066666666666667; 0.06666666666666667; 0.4666666666666667 +1378455255; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 127226.13333333333; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378455555; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 120235.46666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1378455855; 1; 2599.998989; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1378456155; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 131420.53333333333; 0.0; 6.866666666666666; 0.26666666666666666; 0.13333333333333333 +1378456456; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 92272.8; 0.0; 0.8; 0.0; 0.0 +1378456756; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 102059.73333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1378457056; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 132818.66666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1378457356; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 111846.66666666667; 0.0; 0.8; 0.0; 0.0 +1378457656; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 138410.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378457956; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 107652.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378458256; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 138411.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378458556; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 155186.93333333332; 0.06666666666666667; 2.4; 0.06666666666666667; 0.5333333333333333 +1378458856; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 157983.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378459156; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 127225.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378459456; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 135614.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1378459756; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 109050.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1378460056; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 88078.4; 0.0; 0.8; 0.0; 0.0 +1378460356; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 120235.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378460656; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 114642.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378460956; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 117439.2; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378461256; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 116041.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378461556; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 99263.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378461856; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 88078.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378462156; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 132818.4; 0.06666666666666667; 2.2; 0.06666666666666667; 0.5333333333333333 +1378462456; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 152391.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378462756; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378463056; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 99263.46666666666; 0.0; 6.933333333333334; 0.2; 0.13333333333333333 +1378463356; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 123031.73333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1378463657; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378463957; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 102059.73333333334; 0.0; 1.2666666666666666; 0.13333333333333333; 0.0 +1378464257; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 103457.86666666667; 0.0; 0.8; 0.06666666666666667; 0.0 +1378464557; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 83884.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378464857; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 109050.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1378465157; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 95069.06666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1378465457; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 127226.13333333333; 0.0; 0.8; 0.13333333333333333; 0.0 +1378465757; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 142605.33333333334; 0.0; 2.1333333333333333; 0.0; 0.4666666666666667 +1378466057; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 176159.46666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378466357; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 135614.93333333332; 0.0; 1.0666666666666667; 0.0; 0.0 +1378466657; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 110448.53333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1378466957; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 123031.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378467257; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 81087.73333333334; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1378467557; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 125827.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378467857; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 114642.93333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1378468157; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 109050.4; 0.0; 1.3333333333333333; 0.0; 0.0 +1378468457; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 116041.06666666667; 0.0; 7.0; 0.2; 0.13333333333333333 +1378468757; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 120235.46666666666; 0.0; 1.0; 0.0; 0.0 +1378469057; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 110448.53333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1378469657; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 180352.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378470257; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 111846.66666666667; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378470557; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 102059.73333333334; 0.0; 0.9333333333333333; 0.2; 0.0 +1378470857; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 102059.73333333334; 0.0; 1.2; 0.06666666666666667; 0.0 +1378471157; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 92272.8; 0.0; 1.2; 0.06666666666666667; 0.0 +1378472057; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 95069.06666666667; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378472657; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 118837.33333333333; 0.0; 1.2666666666666666; 0.13333333333333333; 0.0 +1378472957; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 137012.0; 0.06666666666666667; 2.6666666666666665; 0.13333333333333333; 0.4666666666666667 +1378473257; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 130021.06666666667; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378473557; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 79689.6; 0.0; 1.2666666666666666; 0.2; 0.0 +1378473857; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 120235.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378474157; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 132818.66666666666; 0.0; 0.8666666666666667; 0.2; 0.0 +1378474457; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 97865.33333333333; 0.0; 1.0; 0.26666666666666666; 0.0 +1378474757; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 89476.53333333334; 0.0; 1.2; 0.13333333333333333; 0.0 +1378475057; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 89476.53333333334; 0.0; 1.0; 0.0; 0.0 +1378475358; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 99263.46666666666; 0.0; 7.266666666666667; 0.26666666666666666; 0.13333333333333333 +1378475658; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.2; 0.0 +1378475958; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 88078.4; 0.0; 1.0; 0.13333333333333333; 0.0 +1378476258; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 121633.6; 0.0; 1.1333333333333333; 0.0; 0.0 +1378476558; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 160779.46666666667; 0.06666666666666667; 2.533333333333333; 0.2; 0.5333333333333333 +1378476858; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 162178.93333333332; 0.0; 0.9333333333333333; 0.0; 0.0 +1378477158; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.13333333333333333; 0.0 +1378477458; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 89476.53333333334; 0.0; 1.0; 0.06666666666666667; 0.0 +1378477758; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 124429.86666666667; 0.0; 1.1333333333333333; 0.13333333333333333; 0.0 +1378478058; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 131419.73333333334; 0.06666666666666667; 1.2; 0.06666666666666667; 0.13333333333333333 +1378478358; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 92272.8; 0.0; 1.2; 0.0; 0.0 +1378478658; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.2; 0.0 +1378478958; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 106253.33333333333; 0.0; 1.2; 0.06666666666666667; 0.0 +1378479258; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 88078.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378479558; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 110448.53333333334; 0.0; 0.9333333333333333; 1.2; 0.0 +1378479858; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 114642.93333333333; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378480158; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 128623.2; 0.0; 2.2; 0.26666666666666666; 0.5333333333333333 +1378480458; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 118836.8; 0.0; 1.1333333333333333; 0.13333333333333333; 0.0 +1378480758; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 74097.06666666667; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378481058; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 124429.86666666667; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378481358; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 118837.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378481658; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 117439.2; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378481958; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 97865.33333333333; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378482258; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 93670.93333333333; 0.0; 2.466666666666667; 0.26666666666666666; 0.13333333333333333 +1378482558; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 142604.8; 0.0; 5.933333333333334; 0.0; 0.0 +1378482858; 1; 2599.998989; 0.0; 0.0; 2097152.0; 135614.93333333332; 0.0; 0.8666666666666667; 0.0; 0.0 +1378483158; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 103457.86666666667; 0.0; 1.0; 0.0; 0.0 +1378483459; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 116041.06666666667; 0.0; 0.8; 0.0; 0.0 +1378483759; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 113244.8; 0.06666666666666667; 2.466666666666667; 0.06666666666666667; 0.4666666666666667 +1378484059; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 110448.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378484359; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 97865.33333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1378484659; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 109050.4; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1378484959; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378485259; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 130022.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378485559; 1; 2599.998989; 64.13330839533334; 2.466666666666667; 2097152.0; 350922.4; 161.06666666666666; 22.0; 2.1333333333333333; 0.4 +1378485859; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 706038.4; 0.0; 2.8; 0.0; 0.0 +1378486159; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 290803.2; 31.8; 3.7333333333333334; 0.0; 0.0 +1378486459; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 198527.73333333334; 0.26666666666666666; 2.2666666666666666; 0.0; 0.0 +1378486759; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 124429.86666666667; 0.0; 1.6; 0.13333333333333333; 0.0 +1378487059; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 76893.33333333333; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378487359; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 128623.46666666666; 0.0; 2.2666666666666666; 0.06666666666666667; 0.4666666666666667 +1378487659; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 156586.4; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378487959; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 135613.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378488259; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 171964.8; 0.0; 6.866666666666666; 0.5333333333333333; 0.13333333333333333 +1378488559; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 131420.53333333333; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378488859; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 106254.13333333333; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1378489159; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 100661.6; 0.0; 1.0; 0.0; 0.0 +1378489459; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 120235.46666666666; 0.0; 1.0; 0.0; 0.0 +1378489759; 1; 2599.998989; 0.0; 0.0; 2097152.0; 163576.53333333333; 0.0; 0.9333333333333333; 0.2; 0.0 +1378490059; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 152390.66666666666; 0.0; 1.0; 0.2; 0.0 +1378490359; 1; 2599.998989; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8; 0.13333333333333333; 0.0 +1378490659; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 114642.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378490959; 1; 2599.998989; 20.799991912; 0.8; 2097152.0; 118837.06666666667; 0.0; 2.2666666666666666; 0.06666666666666667; 0.5333333333333333 +1378491259; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 137012.53333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378491559; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 100661.6; 0.0; 1.2; 0.0; 0.0 +1378491859; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 92272.8; 0.0; 11.8; 0.0; 0.0 +1378492159; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 124429.06666666667; 0.0; 0.8; 0.0; 0.0 +1378492459; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 123031.73333333334; 0.0; 1.6666666666666667; 0.0; 0.0 +1378492759; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 100661.6; 0.0; 1.3333333333333333; 0.0; 0.0 +1378493059; 1; 2599.998989; 0.0; 0.0; 2097152.0; 68504.53333333334; 0.0; 1.0; 0.0; 0.0 +1378493360; 1; 2599.998989; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378493660; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 128623.46666666666; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1378493960; 1; 2599.998989; 0.0; 0.0; 2097152.0; 125827.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378494260; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 104856.0; 0.0; 7.4; 0.26666666666666666; 0.13333333333333333 +1378494560; 1; 2599.998989; 24.266657230666667; 0.9333333333333332; 2097152.0; 183149.6; 0.06666666666666667; 2.4; 0.0; 0.5333333333333333 +1378494860; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 164974.4; 0.0; 1.7333333333333334; 0.0; 0.0 +1378495160; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 99263.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378495460; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 1.2; 0.0; 0.0 +1378495760; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1378496060; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 116041.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378496360; 1; 2599.998989; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378496660; 1; 2599.998989; 41.599983824; 1.6; 2097152.0; 450186.93333333335; 161.8; 14.733333333333333; 0.0; 0.2 +1378496960; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 205519.46666666667; 0.0; 1.6; 0.0; 0.0 +1378497260; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 194333.33333333334; 31.8; 3.6; 0.0; 0.0 +1378497560; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 107652.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378497860; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 97865.33333333333; 0.0; 1.0; 0.0; 0.0 +1378498160; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 127225.06666666667; 0.0; 2.533333333333333; 0.0; 0.5333333333333333 +1378498460; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 156585.6; 0.0; 1.0; 0.0; 0.0 +1378498760; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 138411.2; 0.0; 1.0; 0.0; 0.0 +1378499060; 1; 2599.998989; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378499360; 1; 2599.998989; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378499660; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 162177.86666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1378499960; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 124429.86666666667; 12.733333333333333; 12.866666666666667; 0.4; 0.13333333333333333 +1378500260; 1; 2599.998989; 0.0; 0.0; 2097152.0; 121632.8; 0.0; 1.3333333333333333; 0.0; 0.0 +1378500560; 1; 2599.998989; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378500860; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 83884.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378501160; 1; 2599.998989; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 1.2666666666666666; 0.0; 0.0 +1378501460; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378501760; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 156585.86666666667; 0.0; 2.3333333333333335; 0.06666666666666667; 0.5333333333333333 +1378502060; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 208314.66666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378502360; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 139809.33333333334; 0.0; 1.0; 0.0; 0.0 +1378502660; 1; 2599.998989; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378502960; 1; 2599.998989; 0.0; 0.0; 2097152.0; 124429.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1378503260; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378503560; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 111846.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378503860; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 99263.46666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1378504160; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 106253.86666666667; 0.0; 0.8; 0.0; 0.0 +1378504460; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 124429.33333333333; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378504760; 1; 2599.998989; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378505060; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 117438.4; 0.0; 1.0; 0.0; 0.0 +1378505360; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 170566.4; 0.06666666666666667; 2.6; 0.06666666666666667; 0.4666666666666667 +1378505660; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 183149.33333333334; 0.0; 1.0666666666666667; 0.13333333333333333; 0.0 +1378505960; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 123031.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378506260; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 128624.0; 0.06666666666666667; 7.0; 0.3333333333333333; 0.13333333333333333 +1378506560; 1; 2599.998989; 0.0; 0.0; 2097152.0; 127225.6; 0.0; 1.0666666666666667; 0.13333333333333333; 0.0 +1378506860; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 134216.0; 0.06666666666666667; 1.5333333333333334; 0.4666666666666667; 0.06666666666666667 +1378507160; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 132818.66666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378507460; 1; 2599.998989; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1378507761; 1; 2599.998989; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378508061; 1; 2599.998989; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 1.2; 0.0; 0.0 +1378508361; 1; 2599.998989; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378508661; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 93670.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1378508961; 1; 2599.998989; 24.266657230666667; 0.9333333333333332; 2097152.0; 146799.2; 0.06666666666666667; 2.2; 0.0; 0.4666666666666667 +1378509261; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 134216.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1378509561; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 148198.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378509861; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 85282.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378510161; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 121633.6; 0.0; 1.0; 0.0; 0.0 +1378510461; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 99263.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378510761; 1; 2599.998989; 20.799991912; 0.8; 2097152.0; 75495.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1378511061; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 96467.2; 0.0; 1.2; 0.0; 0.0 +1378511361; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378511661; 1; 2599.998989; 20.799991912; 0.8; 2097152.0; 86680.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378511961; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378512261; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 138409.6; 0.0; 7.133333333333334; 0.2; 0.13333333333333333 +1378512561; 1; 2599.998989; 24.266657230666667; 0.9333333333333332; 2097152.0; 138410.4; 0.0; 2.466666666666667; 0.0; 0.4666666666666667 +1378512861; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 132818.66666666666; 0.0; 1.0; 0.0; 0.0 +1378513161; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 107652.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378513461; 1; 2599.998989; 20.799991912; 0.8; 2097152.0; 93670.93333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1378513761; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 139809.33333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378514061; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 124429.06666666667; 0.5333333333333333; 1.3333333333333333; 0.13333333333333333; 0.0 +1378514361; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 144003.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378514661; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 110448.53333333334; 0.0; 1.0; 0.4666666666666667; 0.0 +1378514961; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 124429.86666666667; 0.0; 1.2666666666666666; 0.0; 0.0 +1378515261; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 111846.66666666667; 0.0; 0.8; 0.0; 0.0 +1378515561; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 55921.333333333336; 0.0; 0.9333333333333333; 0.0; 0.0 +1378515861; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378516161; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 146798.93333333332; 0.0; 2.6; 0.0; 0.5333333333333333 +1378516461; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 167770.66666666666; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378516761; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 135613.86666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1378517061; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 71300.8; 0.0; 1.0; 0.0; 0.0 +1378517361; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 72698.93333333333; 0.0; 1.0; 0.0; 0.0 +1378517661; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 107652.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1378517961; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 95069.06666666667; 0.0; 1.2; 0.0; 0.0 +1378518261; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 78291.46666666666; 0.2; 6.4; 0.2; 0.13333333333333333 +1378518561; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 163577.06666666668; 0.0; 1.4666666666666666; 0.0; 0.0 +1378518861; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 111846.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378519161; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 118837.33333333333; 0.0; 1.2; 0.06666666666666667; 0.0 +1378519461; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 109050.4; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378519761; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 145401.06666666668; 0.0; 2.2666666666666666; 0.0; 0.4666666666666667 +1378520061; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 159381.06666666668; 0.0; 0.8; 0.0; 0.0 +1378520361; 1; 2599.998989; 0.0; 0.0; 2097152.0; 127226.13333333333; 0.0; 1.2; 0.0; 0.0 +1378520662; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 89476.53333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1378520962; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 148197.33333333334; 0.0; 0.9333333333333333; 10.266666666666667; 0.0 +1378521262; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 123031.73333333334; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378521562; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 106254.13333333333; 0.0; 1.2; 0.0; 0.0 +1378521862; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 83884.0; 0.0; 1.2666666666666666; 0.0; 0.0 +1378522162; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378522462; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 83884.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378522762; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378523062; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 103457.86666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378523362; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 124428.8; 0.0; 2.533333333333333; 0.0; 0.4666666666666667 +1378523662; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 155187.2; 0.0; 1.0; 0.0; 0.0 +1378523962; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 96467.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378524262; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 79689.6; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378524562; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 104856.0; 0.0; 1.0666666666666667; 8.2; 0.0 +1378524862; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378525162; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 120235.46666666666; 0.0; 6.733333333333333; 0.26666666666666666; 0.13333333333333333 +1378525462; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 65708.26666666666; 0.0; 1.4; 0.0; 0.0 +1378525762; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 139809.33333333334; 0.0; 1.0; 0.06666666666666667; 0.0 +1378526062; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 107652.26666666666; 0.0; 1.2666666666666666; 0.06666666666666667; 0.0 +1378526362; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378526662; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 74097.06666666667; 0.0; 1.0; 0.06666666666666667; 0.0 +1378527862; 1; 2599.998989; 16.714279215; 0.6428571428571429; 2097152.0; 107852.0; 0.0; 1.0714285714285714; 0.07692307692307693; 0.0 +1378528762; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 109050.4; 0.0; 1.0666666666666667; 0.4; 0.0 +1378529062; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 96467.2; 0.0; 1.0; 5.066666666666666; 0.0 +1378529362; 1; 2599.998989; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1378529662; 1; 2599.998989; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1378529963; 1; 2599.998989; 0.0; 0.0; 2097152.0; 117438.4; 0.0; 0.6666666666666666; 0.0; 0.0 +1378530263; 1; 2599.998989; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 1.0; 0.06666666666666667; 0.0 +1378530563; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 135614.93333333332; 0.06666666666666667; 8.333333333333334; 0.26666666666666666; 0.6 +1378530863; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 159381.6; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378531163; 1; 2599.998989; 0.0; 0.0; 2097152.0; 138410.4; 0.0; 0.8; 0.0; 0.0 +1378531463; 1; 2599.998989; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378531763; 1; 2599.998989; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.8; 0.0; 0.0 +1378532063; 1; 2599.998989; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.7333333333333333; 0.13333333333333333; 0.0 +1378532363; 1; 2599.998989; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378532663; 1; 2599.998989; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.8; 0.06666666666666667; 0.0 +1378532963; 1; 2599.998989; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1378533263; 1; 2599.998989; 60.66664307666668; 2.3333333333333335; 2097152.0; 406845.3333333333; 161.06666666666666; 21.533333333333335; 0.06666666666666667; 0.4 +1378533563; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 562034.4; 0.0; 2.533333333333333; 0.06666666666666667; 0.0 +1378533863; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 293599.2; 31.8; 4.333333333333333; 0.06666666666666667; 0.0 +1378534163; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 251656.0; 0.8; 3.933333333333333; 0.06666666666666667; 0.4666666666666667 +1378534463; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 167770.4; 0.0; 1.5333333333333334; 0.0; 0.0 +1378534763; 1; 2599.998989; 0.0; 0.0; 2097152.0; 144002.93333333332; 0.0; 0.9333333333333333; 0.0; 0.0 +1378535063; 1; 2599.998989; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1378535363; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 0.8; 0.0; 0.0 +1378535663; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 113244.8; 0.0; 13.4; 0.13333333333333333; 0.13333333333333333 +1378535963; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 134215.2; 0.0; 1.4666666666666666; 0.13333333333333333; 0.0 +1378536263; 1; 2599.998989; 0.0; 0.0; 2097152.0; 121632.8; 0.0; 0.7333333333333333; 0.13333333333333333; 0.0 +1378536563; 1; 2599.998989; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378536863; 1; 2599.998989; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 1.5333333333333334; 0.0; 0.0 +1378537163; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378537463; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 121633.6; 0.0; 7.0; 0.2; 0.13333333333333333 +1378537763; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 139808.53333333333; 0.0; 2.3333333333333335; 0.0; 0.4666666666666667 +1378538063; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 125827.2; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378538363; 1; 2599.998989; 0.0; 0.0; 2097152.0; 159383.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378538663; 1; 2599.998989; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378538963; 1; 2599.998989; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 1.0; 0.0; 0.0 +1378539263; 1; 2599.998989; 0.0; 0.0; 2097152.0; 130021.6; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1378539563; 1; 2599.998989; 0.0; 0.0; 2097152.0; 142605.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378539863; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 2.066666666666667; 0.06666666666666667; 0.0 +1378540163; 1; 2599.998989; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378540463; 1; 2599.998989; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378540763; 1; 2599.998989; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378541063; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 118837.33333333333; 0.06666666666666667; 1.8666666666666667; 0.0; 0.0 +1378541363; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 125827.2; 0.13333333333333333; 2.533333333333333; 0.0; 0.4666666666666667 +1378541663; 1; 2599.998989; 0.0; 0.0; 2097152.0; 148197.33333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378541963; 1; 2599.998989; 0.0; 0.0; 2097152.0; 138410.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378542263; 1; 2599.998989; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1378542563; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1378542863; 1; 2599.998989; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378543163; 1; 2599.998989; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 1.0; 1.8666666666666667; 0.0 +1378543463; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 134216.8; 0.06666666666666667; 7.066666666666666; 0.26666666666666666; 0.13333333333333333 +1378543763; 1; 2599.998989; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378544063; 1; 2599.998989; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378544364; 1; 2599.998989; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378544664; 1; 2599.998989; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1378544964; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 146799.2; 0.0; 2.466666666666667; 0.0; 0.4666666666666667 +1378545264; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 149596.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1378545564; 1; 2599.998989; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378545864; 1; 2599.998989; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 1.0; 0.0; 0.0 +1378546164; 1; 2599.998989; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378546464; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 121633.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378546764; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 146798.93333333332; 0.0; 1.4; 0.0; 0.0 +1378547064; 1; 2599.998989; 0.0; 0.0; 2097152.0; 124429.86666666667; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378547364; 1; 2599.998989; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378547664; 1; 2599.998989; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378547964; 1; 2599.998989; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 1.0; 0.0; 0.0 +1378548264; 1; 2599.998989; 0.0; 0.0; 2097152.0; 137012.53333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378548564; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 125828.0; 0.0; 2.466666666666667; 0.06666666666666667; 0.4666666666666667 +1378548864; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 134216.8; 0.0; 1.0; 0.0; 0.0 +1378549164; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 82485.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378549464; 1; 2599.998989; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 1.2; 0.06666666666666667; 0.0 +1378549764; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 138410.4; 0.0; 7.266666666666667; 0.2; 0.13333333333333333 +1378550064; 1; 2599.998989; 0.0; 0.0; 2097152.0; 131419.73333333334; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378550364; 1; 2599.998989; 0.0; 0.0; 2097152.0; 142605.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378550664; 1; 2599.998989; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1378550964; 1; 2599.998989; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 1.2666666666666666; 0.06666666666666667; 0.0 +1378551264; 1; 2599.998989; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378551564; 1; 2599.998989; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378551864; 1; 2599.998989; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378552164; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 138409.86666666667; 0.0; 2.6; 0.06666666666666667; 0.4666666666666667 +1378552464; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 213907.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378552764; 1; 2599.998989; 0.0; 0.0; 2097152.0; 155187.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378553064; 1; 2599.998989; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378553364; 1; 2599.998989; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.8666666666666667; 0.26666666666666666; 0.0 +1378553664; 1; 2599.998989; 0.0; 0.0; 2097152.0; 117438.4; 0.0; 1.2666666666666666; 0.06666666666666667; 0.0 +1378553964; 1; 2599.998989; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378554264; 1; 2599.998989; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1378554564; 1; 2599.998989; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 1.0; 0.06666666666666667; 0.0 +1378554865; 1; 2599.998989; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378555165; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 110448.53333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1378555465; 1; 2599.998989; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378555765; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 123031.2; 0.06666666666666667; 8.733333333333333; 0.26666666666666666; 0.6 +1378556065; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 124429.6; 0.0; 0.9333333333333333; 0.13333333333333333; 0.0 +1378556365; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 110448.53333333334; 0.0; 1.2; 0.0; 0.0 +1378556665; 1; 2599.998989; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378556965; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 123031.73333333334; 0.0; 1.0; 4.2; 0.0 +1378557265; 1; 2599.998989; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1378557565; 1; 2599.998989; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.8; 0.0; 0.0 +1378557865; 1; 2599.998989; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1378558165; 1; 2599.998989; 0.0; 0.0; 2097152.0; 132818.66666666666; 0.0; 1.0; 0.06666666666666667; 0.0 +1378558465; 1; 2599.998989; 0.0; 0.0; 2097152.0; 160779.46666666667; 0.0; 0.8; 0.0; 0.0 +1378558765; 1; 2599.998989; 0.0; 0.0; 2097152.0; 145401.06666666668; 0.0; 1.0; 0.0; 0.0 +1378559065; 1; 2599.998989; 0.0; 0.0; 2097152.0; 131419.73333333334; 0.0; 1.0; 0.0; 0.0 +1378559365; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 116040.53333333334; 0.0; 2.4; 0.0; 0.4666666666666667 +1378559665; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 148197.06666666668; 0.0; 0.8666666666666667; 0.0; 0.0 +1378559965; 1; 2599.998989; 0.0; 0.0; 2097152.0; 135614.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378560265; 1; 2599.998989; 0.0; 0.0; 2097152.0; 134216.8; 0.0; 0.8; 0.0; 0.0 +1378560565; 1; 2599.998989; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 1.2666666666666666; 0.0; 0.0 +1378560865; 1; 2599.998989; 0.0; 0.0; 2097152.0; 132818.66666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378561165; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 146800.0; 12.733333333333333; 13.133333333333333; 0.3333333333333333; 0.2 +1378561465; 1; 2599.998989; 0.0; 0.0; 2097152.0; 156585.33333333334; 0.0; 1.3333333333333333; 0.0; 0.0 +1378561765; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378562065; 1; 2599.998989; 0.0; 0.0; 2097152.0; 71300.8; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378562366; 1; 2599.998989; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378562666; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 118836.53333333334; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378562966; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 121633.6; 0.0; 2.466666666666667; 0.13333333333333333; 0.4666666666666667 +1378563266; 1; 2599.998989; 0.0; 0.0; 2097152.0; 124429.86666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1378563566; 1; 2599.998989; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378563866; 1; 2599.998989; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378564166; 1; 2599.998989; 0.0; 0.0; 2097152.0; 141207.46666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378564466; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 132817.86666666667; 0.0; 1.9333333333333333; 0.06666666666666667; 0.13333333333333333 +1378564766; 1; 2599.998989; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378565066; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1378565366; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 104856.0; 0.0; 1.0; 0.0; 0.0 +1378565666; 1; 2599.998989; 0.0; 0.0; 2097152.0; 102059.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378565966; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 104855.73333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1378566266; 1; 2599.998989; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378566566; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 145401.06666666668; 0.06666666666666667; 8.266666666666667; 0.2; 0.6 +1378566866; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 173363.73333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1378567166; 1; 2599.998989; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 1.0; 0.0; 0.0 +1378567466; 1; 2599.998989; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 1.2; 0.0; 0.0 +1378567766; 1; 2599.998989; 0.0; 0.0; 2097152.0; 128624.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378568066; 1; 2599.998989; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 1.0; 0.0; 0.0 +1378568366; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 107652.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1378568666; 1; 2599.998989; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1378568966; 1; 2599.998989; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 1.2; 0.0; 0.0 +1378569266; 1; 2599.998989; 0.0; 0.0; 2097152.0; 131420.53333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378569566; 1; 2599.998989; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1378569866; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 118837.33333333333; 0.0; 0.8; 0.0; 0.0 +1378570166; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 152391.2; 0.06666666666666667; 2.6666666666666665; 0.0; 0.4666666666666667 +1378570466; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 148197.6; 0.06666666666666667; 1.2; 0.0; 0.0 +1378570766; 1; 2599.998989; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 1.0; 0.0; 0.0 +1378571066; 1; 2599.998989; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8; 0.0; 0.0 +1378571366; 1; 2599.998989; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378571666; 1; 2599.998989; 0.0; 0.0; 2097152.0; 71300.8; 0.0; 1.2; 0.13333333333333333; 0.0 +1378571966; 1; 2599.998989; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 1.2666666666666666; 0.06666666666666667; 0.0 +1378572266; 1; 2599.998989; 0.0; 0.0; 2097152.0; 69902.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378572566; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 93670.93333333333; 0.0; 7.133333333333334; 0.2; 0.13333333333333333 +1378572866; 1; 2599.998989; 0.0; 0.0; 2097152.0; 145401.06666666668; 0.0; 0.8666666666666667; 0.0; 0.0 +1378573166; 1; 2599.998989; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 1.2; 0.0; 0.0 +1378573466; 1; 2599.998989; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 1.0; 0.0; 0.0 +1378573766; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 141206.13333333333; 0.06666666666666667; 2.2666666666666666; 0.0; 0.4666666666666667 +1378574066; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 141206.4; 0.0; 1.0; 0.0; 0.0 +1378574367; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 103457.86666666667; 0.0; 1.4; 0.0; 0.0 +1378574667; 1; 2599.998989; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378574967; 1; 2599.998989; 0.0; 0.0; 2097152.0; 139809.33333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1378575267; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 134216.26666666666; 0.0; 1.0; 0.0; 0.0 +1378575567; 1; 2599.998989; 0.0; 0.0; 2097152.0; 107652.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1378575867; 1; 2599.998989; 0.0; 0.0; 2097152.0; 124429.86666666667; 0.0; 1.2666666666666666; 0.0; 0.0 +1378576167; 1; 2599.998989; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378576467; 1; 2599.998989; 0.0; 0.0; 2097152.0; 71300.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378576767; 1; 2599.998989; 0.0; 0.0; 2097152.0; 69902.66666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1378577067; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 82485.86666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1378577367; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 139808.53333333333; 0.0; 2.466666666666667; 0.06666666666666667; 0.4666666666666667 +1378577667; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 139809.33333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378577967; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 124429.86666666667; 0.2; 7.0; 0.2; 0.13333333333333333 +1378578267; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 110448.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378578567; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 111846.66666666667; 0.0; 1.2; 0.0; 0.0 +1378578867; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 116041.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378579167; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 107652.26666666666; 0.0; 11.933333333333334; 0.0; 0.0 +1378579467; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 102059.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378579767; 1; 2599.998989; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1378580067; 1; 2599.998989; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378580367; 1; 2599.998989; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 0.8; 0.0; 0.0 +1378580667; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 130022.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1378580967; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 128624.0; 0.0; 2.2666666666666666; 0.06666666666666667; 0.5333333333333333 +1378581267; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 170566.66666666666; 0.0; 1.8666666666666667; 0.0; 0.0 +1378581567; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 128624.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1378581867; 1; 2599.998989; 0.0; 0.0; 2097152.0; 131420.53333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378582167; 1; 2599.998989; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1378582467; 1; 2599.998989; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1378582767; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 134216.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1378583067; 1; 2599.998989; 38.133318505333335; 1.4666666666666666; 2097152.0; 436206.4; 161.73333333333332; 14.8; 0.0; 0.2 +1378583368; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 304784.5333333333; 0.0; 1.2666666666666666; 0.0; 0.0 +1378583668; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 152390.93333333332; 31.8; 8.6; 0.2; 0.13333333333333333 +1378583968; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 188741.33333333334; 0.0; 2.3333333333333335; 0.0; 0.0 +1378584268; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 107652.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1378584568; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 128624.0; 0.0; 2.2666666666666666; 0.0; 0.4666666666666667 +1378584868; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 150993.06666666668; 0.0; 0.8; 0.0; 0.0 +1378585168; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 111846.66666666667; 0.0; 0.8; 0.06666666666666667; 0.0 +1378585468; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 95069.06666666667; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378585768; 1; 2599.998989; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378586068; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 106254.13333333333; 0.0; 1.0; 0.06666666666666667; 0.0 +1378586368; 1; 2599.998989; 20.799991912; 0.8; 2097152.0; 67106.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1378586668; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 107652.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1378586968; 1; 2599.998989; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 1.0; 0.0; 0.0 +1378587268; 1; 2599.998989; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378587568; 1; 2599.998989; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378587868; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 106254.13333333333; 0.0; 1.0; 0.0; 0.0 +1378588168; 1; 2599.998989; 25.999989890000002; 1.0; 2097152.0; 142604.53333333333; 0.0; 2.3333333333333335; 0.0; 0.5333333333333333 +1378588468; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 145401.33333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1378588768; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 128623.46666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1378589068; 1; 2599.998989; 0.0; 0.0; 2097152.0; 132818.66666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378589368; 1; 2599.998989; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.8; 0.0; 0.0 +1378589668; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 139809.33333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1378589968; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 137012.8; 0.0; 7.133333333333334; 0.2; 0.13333333333333333 +1378590268; 1; 2599.998989; 67.599973714; 2.6; 2097152.0; 595589.6; 161.06666666666666; 22.133333333333333; 0.06666666666666667; 0.4 +1378590568; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 433409.6; 0.0; 2.4; 0.0; 0.0 +1378590868; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 239072.8; 31.8; 3.933333333333333; 0.0; 0.0 +1378591168; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 192936.26666666666; 0.8666666666666667; 2.533333333333333; 0.0; 0.0 +1378591468; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 132818.66666666666; 0.0; 1.5333333333333334; 0.0; 0.0 +1378591768; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 146799.2; 0.0; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1378592068; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 146800.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1378592368; 1; 2599.998989; 0.0; 0.0; 2097152.0; 134216.0; 0.0; 1.2; 0.0; 0.0 +1378592668; 1; 2599.998989; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378592968; 1; 2599.998989; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378593269; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 134216.0; 0.0; 1.5333333333333334; 0.06666666666666667; 0.13333333333333333 +1378593569; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 114642.93333333333; 0.0; 1.0; 0.0; 0.0 +1378593869; 1; 2599.998989; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 1.0; 0.0; 0.0 +1378594169; 1; 2599.998989; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378594469; 1; 2599.998989; 0.0; 0.0; 2097152.0; 124429.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378594769; 1; 2599.998989; 0.0; 0.0; 2097152.0; 132818.66666666666; 0.0; 0.8; 0.0; 0.0 +1378595069; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 137012.8; 0.0; 1.2; 0.0; 0.0 +1378595369; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 171964.8; 0.0; 2.3333333333333335; 0.0; 0.4666666666666667 +1378595669; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 195731.46666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1378595969; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 141207.46666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378596269; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 124429.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378596569; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 90874.66666666667; 0.0; 6.0; 0.2; 0.13333333333333333 +1378596869; 1; 2599.998989; 20.799991912; 0.8; 2097152.0; 127226.13333333333; 0.0; 2.2; 0.0; 0.0 +1378597169; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 120235.46666666666; 0.0; 1.0; 0.0; 0.0 +1378597469; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 117439.2; 0.0; 1.3333333333333333; 0.0; 0.0 +1378597769; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 130022.4; 0.0; 1.0; 0.0; 0.0 +1378598069; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 89476.53333333334; 0.0; 1.2; 0.0; 0.0 +1378598369; 1; 2599.998989; 20.799991912; 0.8; 2097152.0; 90874.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378598669; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 93670.93333333333; 0.0; 0.8; 0.0; 0.0 +1378598969; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 162176.8; 0.0; 2.1333333333333333; 0.0; 0.4666666666666667 +1378599269; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 153790.13333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378599569; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 79689.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1378599869; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 86680.26666666666; 0.0; 0.8; 0.0; 0.0 +1378600169; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 90874.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378600469; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 130022.4; 0.5333333333333333; 1.3333333333333333; 0.06666666666666667; 0.0 +1378600769; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 131420.53333333333; 0.0; 1.0; 0.0; 0.0 +1378601069; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 111846.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378601369; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 107652.26666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1378601669; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 99263.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378601970; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 86680.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378602269; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378602569; 1; 2599.998989; 20.799991912; 0.8; 2097152.0; 155188.0; 0.2; 2.7333333333333334; 0.06666666666666667; 0.4666666666666667 +1378602869; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 141207.46666666667; 0.0; 0.8; 0.0; 0.0 +1378603169; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 141206.93333333332; 0.0; 6.933333333333334; 0.26666666666666666; 0.13333333333333333 +1378603469; 1; 2599.998989; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378603769; 1; 2599.998989; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.8; 0.06666666666666667; 0.0 +1378604069; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 137012.26666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1378604369; 1; 2599.998989; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378604669; 1; 2599.998989; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378604969; 1; 2599.998989; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 1.0; 0.0; 0.0 +1378605269; 1; 2599.998989; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378605569; 1; 2599.998989; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 0.8; 0.0; 0.0 +1378605869; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 131420.53333333333; 0.0; 0.8; 0.0; 0.0 +1378606169; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 141207.46666666667; 0.06666666666666667; 2.3333333333333335; 0.0; 0.4666666666666667 +1378606469; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 134216.26666666666; 0.0; 0.8; 0.0; 0.0 +1378606769; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 123031.73333333334; 0.0; 0.8; 0.0; 0.0 +1378607069; 1; 2599.998989; 0.0; 0.0; 2097152.0; 153790.66666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1378607369; 1; 2599.998989; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378607669; 1; 2599.998989; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1378607970; 1; 2599.998989; 0.0; 0.0; 2097152.0; 65708.26666666666; 0.0; 0.8; 0.0; 0.0 +1378608270; 1; 2599.998989; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.8; 0.0; 0.0 +1378608570; 1; 2599.998989; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8; 0.06666666666666667; 0.0 +1378608870; 1; 2599.998989; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378609170; 1; 2599.998989; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378609470; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 121633.6; 0.8666666666666667; 1.3333333333333333; 0.06666666666666667; 0.0 +1378609770; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 138411.2; 0.0; 2.2; 0.0; 0.4666666666666667 +1378610070; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 155187.2; 0.0; 6.933333333333334; 0.2; 0.13333333333333333 +1378610370; 1; 2599.998989; 0.0; 0.0; 2097152.0; 130022.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1378610670; 1; 2599.998989; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.8; 0.0; 0.0 +1378610970; 1; 2599.998989; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378611270; 1; 2599.998989; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378611570; 1; 2599.998989; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8; 0.0; 0.0 +1378611870; 1; 2599.998989; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 1.6666666666666667; 0.0; 0.0 +1378612170; 1; 2599.998989; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1378612470; 1; 2599.998989; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 1.0; 0.06666666666666667; 0.0 +1378612770; 1; 2599.998989; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378613070; 1; 2599.998989; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378613370; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 145401.86666666667; 0.06666666666666667; 2.533333333333333; 0.0; 0.4666666666666667 +1378613670; 1; 2599.998989; 0.0; 0.0; 2097152.0; 134216.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1378613970; 1; 2599.998989; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378614270; 1; 2599.998989; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378614570; 1; 2599.998989; 0.0; 0.0; 2097152.0; 118836.53333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1378614870; 1; 2599.998989; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378615170; 1; 2599.998989; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378615470; 1; 2599.998989; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378615770; 1; 2599.998989; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1378616070; 1; 2599.998989; 0.0; 0.0; 2097152.0; 138411.2; 0.0; 1.2; 0.0; 0.0 +1378616370; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 146799.2; 0.06666666666666667; 7.266666666666667; 0.2; 0.13333333333333333 +1378616670; 1; 2599.998989; 0.0; 0.0; 2097152.0; 134216.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378616970; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 120235.46666666666; 0.0; 2.2; 0.0; 0.4666666666666667 +1378617270; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 167770.4; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1378617570; 1; 2599.998989; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378617871; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 92272.0; 0.0; 0.8666666666666667; 7.6; 0.0 +1378618171; 1; 2599.998989; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.9333333333333333; 0.13333333333333333; 0.0 +1378618471; 1; 2599.998989; 0.0; 0.0; 2097152.0; 146799.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378618771; 1; 2599.998989; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 1.2; 0.0; 0.0 +1378619071; 1; 2599.998989; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378619371; 1; 2599.998989; 0.0; 0.0; 2097152.0; 149596.26666666666; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378619671; 1; 2599.998989; 0.0; 0.0; 2097152.0; 146798.4; 0.0; 1.0; 0.0; 0.0 +1378619971; 1; 2599.998989; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1378620271; 1; 2599.998989; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378620571; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 134216.0; 0.0; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1378620871; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 213908.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1378621171; 1; 2599.998989; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 1.0; 0.0; 0.0 +1378621471; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1378621771; 1; 2599.998989; 0.0; 0.0; 2097152.0; 117438.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378622071; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 130021.6; 0.0; 2.3333333333333335; 0.06666666666666667; 0.06666666666666667 +1378622371; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 113244.8; 0.0; 1.4666666666666666; 0.0; 0.0 +1378622671; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 11.866666666666667; 0.06666666666666667; 0.0 +1378622971; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 117438.4; 12.733333333333333; 13.666666666666666; 0.26666666666666666; 0.13333333333333333 +1378623271; 1; 2599.998989; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 1.2666666666666666; 0.06666666666666667; 0.0 +1378623571; 1; 2599.998989; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378623871; 1; 2599.998989; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 1.0; 0.0; 0.0 +1378624171; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 96467.2; 0.0; 2.4; 0.06666666666666667; 0.4666666666666667 +1378624472; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 146800.0; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378624772; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 1.0; 0.2; 0.0 +1378625072; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 92272.8; 0.0; 1.0; 0.0; 0.0 +1378625372; 1; 2599.998989; 0.0; 0.0; 2097152.0; 75495.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378625672; 1; 2599.998989; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 1.2666666666666666; 0.0; 0.0 +1378625972; 1; 2599.998989; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 1.7333333333333334; 0.0; 0.0 +1378626272; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.6; 0.0; 0.0 +1378626572; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378626872; 1; 2599.998989; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 1.0; 0.0; 0.0 +1378627172; 1; 2599.998989; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378627472; 1; 2599.998989; 0.0; 0.0; 2097152.0; 116040.26666666666; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378627772; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 153789.6; 0.2; 2.4; 0.06666666666666667; 0.4666666666666667 +1378628072; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 184548.0; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378628372; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 138411.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378628672; 1; 2599.998989; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378628972; 1; 2599.998989; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.8; 0.0; 0.0 +1378629272; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 89476.53333333334; 0.0; 7.0; 0.26666666666666666; 0.13333333333333333 +1378629572; 1; 2599.998989; 0.0; 0.0; 2097152.0; 125827.2; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378629872; 1; 2599.998989; 0.0; 0.0; 2097152.0; 117438.4; 0.0; 1.2; 0.06666666666666667; 0.0 +1378630172; 1; 2599.998989; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378630472; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 95069.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378630772; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1378631073; 1; 2599.998989; 0.0; 0.0; 2097152.0; 127226.13333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378631373; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 134216.0; 0.0; 2.2666666666666666; 0.0; 0.4666666666666667 +1378631673; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 123031.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378631973; 1; 2599.998989; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378632273; 1; 2599.998989; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378632573; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 96467.2; 0.0; 1.2666666666666666; 0.0; 0.0 +1378632873; 1; 2599.998989; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1378633173; 1; 2599.998989; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 1.0; 0.06666666666666667; 0.0 +1378633473; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 76893.33333333333; 0.0; 0.8; 0.0; 0.0 +1378633773; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 120235.46666666666; 0.0; 1.0; 0.0; 0.0 +1378634073; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 117439.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378634373; 1; 2599.998989; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378634673; 1; 2599.998989; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 1.0; 0.0; 0.0 +1378634973; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 170566.4; 0.0; 8.4; 0.2; 0.6666666666666666 +1378635273; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 170566.4; 0.06666666666666667; 1.4666666666666666; 0.06666666666666667; 0.0 +1378635573; 1; 2599.998989; 0.0; 0.0; 2097152.0; 171964.53333333333; 0.0; 0.8; 0.06666666666666667; 0.0 +1378635873; 1; 2599.998989; 0.0; 0.0; 2097152.0; 137012.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378636173; 1; 2599.998989; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378636473; 1; 2599.998989; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378636773; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 130022.4; 0.0; 1.2666666666666666; 0.06666666666666667; 0.0 +1378637073; 1; 2599.998989; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378637373; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378637673; 1; 2599.998989; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.8; 0.06666666666666667; 0.0 +1378637973; 1; 2599.998989; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1378638273; 1; 2599.998989; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378638573; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 127226.13333333333; 0.2; 2.533333333333333; 0.0; 0.4666666666666667 +1378638873; 1; 2599.998989; 0.0; 0.0; 2097152.0; 128624.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378639173; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 90874.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378639473; 1; 2599.998989; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 1.2666666666666666; 0.0; 0.0 +1378639773; 1; 2599.998989; 0.0; 0.0; 2097152.0; 124429.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378640073; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 139808.53333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378640373; 1; 2599.998989; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378640673; 1; 2599.998989; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 1.4; 0.0; 0.0 +1378640973; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 120234.66666666667; 0.06666666666666667; 7.133333333333334; 0.3333333333333333; 0.13333333333333333 +1378641273; 1; 2599.998989; 0.0; 0.0; 2097152.0; 166373.06666666668; 0.0; 1.0; 0.0; 0.0 +1378641573; 1; 2599.998989; 0.0; 0.0; 2097152.0; 123030.93333333333; 0.0; 1.0; 0.0; 0.0 +1378641873; 1; 2599.998989; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378642173; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 167770.66666666666; 0.0; 2.7333333333333334; 0.0; 0.4666666666666667 +1378642473; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 183149.6; 0.0; 0.8; 0.0; 0.0 +1378642774; 1; 2599.998989; 0.0; 0.0; 2097152.0; 130022.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378643074; 1; 2599.998989; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378643374; 1; 2599.998989; 20.799991912; 0.8; 2097152.0; 173362.93333333332; 161.0; 21.866666666666667; 0.06666666666666667; 0.4 +1378643674; 1; 2599.998989; 55.46664509866667; 2.1333333333333333; 2097152.0; 708835.7333333333; 0.0; 2.8666666666666667; 0.06666666666666667; 0.0 +1378643974; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 318765.3333333333; 31.8; 3.6666666666666665; 0.0; 0.0 +1378644274; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 183148.53333333333; 0.8; 2.2; 0.0; 0.0 +1378644574; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 150992.53333333333; 0.0; 1.6; 0.0; 0.0 +1378644874; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 120235.46666666666; 0.0; 1.0; 0.0; 0.0 +1378645174; 1; 2599.998989; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 1.0; 0.0; 0.0 +1378645474; 1; 2599.998989; 0.0; 0.0; 2097152.0; 152390.66666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378645774; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 153790.13333333333; 0.0; 2.3333333333333335; 0.0; 0.4666666666666667 +1378646074; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 162177.6; 0.0; 1.0; 0.0; 0.0 +1378646374; 1; 2599.998989; 0.0; 0.0; 2097152.0; 124429.86666666667; 0.0; 1.2; 0.0; 0.0 +1378646674; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 117439.2; 0.0; 7.266666666666667; 0.2; 0.13333333333333333 +1378646974; 1; 2599.998989; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378647274; 1; 2599.998989; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378647574; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 148197.33333333334; 1.0; 1.7333333333333334; 0.0; 0.0 +1378647874; 1; 2599.998989; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 1.2; 0.0; 0.0 +1378648174; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.0; 0.0; 0.0 +1378648474; 1; 2599.998989; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378648774; 1; 2599.998989; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1378649074; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 74097.06666666667; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378649374; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 137012.26666666666; 0.06666666666666667; 2.533333333333333; 0.0; 0.4666666666666667 +1378649674; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 176159.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378649974; 1; 2599.998989; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 1.0; 0.0; 0.0 +1378650274; 1; 2599.998989; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378650574; 1; 2599.998989; 0.0; 0.0; 2097152.0; 132818.66666666666; 0.0; 1.2; 0.0; 0.0 +1378650874; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 155188.8; 0.06666666666666667; 1.3333333333333333; 0.06666666666666667; 0.13333333333333333 +1378651174; 1; 2599.998989; 0.0; 0.0; 2097152.0; 131420.53333333333; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1378651474; 1; 2599.998989; 0.0; 0.0; 2097152.0; 116040.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378651775; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 141207.46666666667; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378652075; 1; 2599.998989; 0.0; 0.0; 2097152.0; 130022.4; 0.0; 0.8; 0.0; 0.0 +1378652375; 1; 2599.998989; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1378652675; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 104856.0; 0.0; 6.8; 0.26666666666666666; 0.13333333333333333 +1378652975; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 149595.46666666667; 0.0; 2.2666666666666666; 0.0; 0.4666666666666667 +1378653275; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 145401.06666666668; 0.0; 1.1333333333333333; 0.0; 0.0 +1378653575; 1; 2599.998989; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1378653875; 1; 2599.998989; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1378654175; 1; 2599.998989; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1378654475; 1; 2599.998989; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.8; 0.0; 0.0 +1378654775; 1; 2599.998989; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1378655075; 1; 2599.998989; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 1.2666666666666666; 0.0; 0.0 +1378655375; 1; 2599.998989; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378655675; 1; 2599.998989; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1378655975; 1; 2599.998989; 0.0; 0.0; 2097152.0; 146798.13333333333; 0.0; 1.0; 0.0; 0.0 +1378656275; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 102059.73333333334; 0.0; 0.8; 0.0; 0.0 +1378656575; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 117439.2; 0.0; 2.2; 0.0; 0.5333333333333333 +1378656875; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 127225.33333333333; 0.0; 0.8; 0.0; 0.0 +1378657175; 1; 2599.998989; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378657475; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 114642.93333333333; 0.0; 1.2; 0.0; 0.0 +1378657775; 1; 2599.998989; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378658076; 1; 2599.998989; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1378658376; 1; 2599.998989; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1378658676; 1; 2599.998989; 0.0; 0.0; 2097152.0; 132818.66666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378658976; 1; 2599.998989; 0.0; 0.0; 2097152.0; 123030.93333333333; 0.0; 0.8; 0.0; 0.0 +1378659276; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 88078.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1378659576; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 89476.53333333334; 0.0; 6.933333333333334; 0.2; 0.13333333333333333 +1378659876; 1; 2599.998989; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378660176; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 148196.8; 0.0; 2.8; 0.0; 0.4666666666666667 +1378660476; 1; 2599.998989; 0.0; 0.0; 2097152.0; 152391.46666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1378660776; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 111846.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378661076; 1; 2599.998989; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1378661376; 1; 2599.998989; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1378661676; 1; 2599.998989; 0.0; 0.0; 2097152.0; 124429.86666666667; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378661976; 1; 2599.998989; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378662276; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 97865.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378662576; 1; 2599.998989; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1378662876; 1; 2599.998989; 0.0; 0.0; 2097152.0; 68504.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378663176; 1; 2599.998989; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.8; 0.0; 0.0 +1378663476; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378663776; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 148197.6; 0.06666666666666667; 2.533333333333333; 0.0; 0.4666666666666667 +1378664076; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 138410.13333333333; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378664376; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 95069.06666666667; 0.0; 1.2666666666666666; 0.06666666666666667; 0.0 +1378664676; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 114642.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378664976; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 106254.13333333333; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378665276; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 150994.4; 0.0; 6.733333333333333; 0.26666666666666666; 0.2 +1378665576; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 145401.86666666667; 0.0; 0.8; 0.0; 0.0 +1378665876; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 132817.6; 0.0; 1.1333333333333333; 0.0; 0.0 +1378666176; 1; 2599.998989; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8; 0.0; 0.0 +1378666476; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 111846.66666666667; 0.0; 11.8; 0.0; 0.0 +1378666776; 1; 2599.998989; 0.0; 0.0; 2097152.0; 135614.66666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1378667076; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 120234.93333333333; 0.0; 1.2; 0.0; 0.0 +1378667377; 1; 2599.998989; 22.53332457133334; 0.8666666666666667; 2097152.0; 117439.2; 0.0; 2.3333333333333335; 0.0; 0.5333333333333333 +1378667677; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378667976; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 134216.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378668276; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 111846.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378668576; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 92272.8; 0.0; 1.2; 0.0; 0.0 +1378668876; 1; 2599.998989; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378669176; 1; 2599.998989; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378669476; 1; 2599.998989; 39.86665116466667; 1.5333333333333334; 2097152.0; 321561.6; 161.73333333333332; 14.733333333333333; 0.0; 0.2 +1378669776; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 339736.26666666666; 0.0; 1.8666666666666667; 0.0; 0.0 +1378670076; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 162178.66666666666; 31.8; 3.7333333333333334; 0.0; 0.0 +1378670376; 1; 2599.998989; 0.0; 0.0; 2097152.0; 134216.8; 0.0; 1.8; 0.0; 0.0 +1378670676; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 130021.6; 0.0; 7.0; 0.2; 0.13333333333333333 +1378670976; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 142604.53333333333; 0.06666666666666667; 2.7333333333333334; 0.0; 0.5333333333333333 +1378671276; 1; 2599.998989; 0.0; 0.0; 2097152.0; 125827.73333333334; 0.0; 1.3333333333333333; 0.0; 0.0 +1378671576; 1; 2599.998989; 0.0; 0.0; 2097152.0; 67106.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1378671876; 1; 2599.998989; 0.0; 0.0; 2097152.0; 72698.93333333333; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378672176; 1; 2599.998989; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 0.8; 0.0; 0.0 +1378672477; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 121633.6; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378672777; 1; 2599.998989; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 1.2; 0.0; 0.0 +1378673077; 1; 2599.998989; 0.0; 0.0; 2097152.0; 74097.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378673377; 1; 2599.998989; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378673677; 1; 2599.998989; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1378673977; 1; 2599.998989; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 1.2666666666666666; 0.0; 0.0 +1378674277; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 113244.8; 0.0; 1.0; 0.0; 0.0 +1378674577; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 128624.26666666666; 0.13333333333333333; 2.533333333333333; 0.0; 0.4666666666666667 +1378674877; 1; 2599.998989; 0.0; 0.0; 2097152.0; 131420.53333333333; 0.0; 0.8; 0.0; 0.0 +1378675177; 1; 2599.998989; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378675477; 1; 2599.998989; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 1.0; 0.0; 0.0 +1378675777; 1; 2599.998989; 0.0; 0.0; 2097152.0; 67106.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1378676077; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 86680.26666666666; 0.0; 0.8; 0.0; 0.0 +1378676377; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 85282.13333333333; 0.06666666666666667; 1.5333333333333334; 0.2; 0.13333333333333333 +1378676677; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 150993.33333333334; 0.0; 6.666666666666667; 0.0; 0.0 +1378676977; 1; 2599.998989; 0.0; 0.0; 2097152.0; 127225.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378677277; 1; 2599.998989; 0.0; 0.0; 2097152.0; 146799.2; 0.0; 1.0; 0.0; 0.0 +1378677577; 1; 2599.998989; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378677877; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 83884.0; 0.26666666666666666; 1.1333333333333333; 0.0; 0.0 +1378678177; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 138410.13333333333; 0.0; 2.533333333333333; 0.0; 0.5333333333333333 +1378678477; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 124428.53333333334; 0.0; 1.0; 0.0; 0.0 +1378678777; 1; 2599.998989; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378679077; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1378679377; 1; 2599.998989; 0.0; 0.0; 2097152.0; 145401.86666666667; 0.0; 0.8; 0.0; 0.0 +1378679677; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 130022.4; 0.0; 1.8; 0.06666666666666667; 0.13333333333333333 +1378679977; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 166373.06666666668; 0.0; 0.8; 0.0; 0.0 +1378680277; 1; 2599.998989; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1378680577; 1; 2599.998989; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 1.0; 0.0; 0.0 +1378680877; 1; 2599.998989; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 1.3333333333333333; 0.06666666666666667; 0.0 +1378681178; 1; 2599.998989; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378681478; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 118837.33333333333; 0.2; 1.0666666666666667; 0.0; 0.0 +1378681778; 1; 2599.998989; 20.799991912; 0.8; 2097152.0; 137013.06666666668; 0.0; 2.4; 0.0; 0.4666666666666667 +1378682078; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 130022.4; 0.0; 0.8; 0.0; 0.0 +1378682378; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 124429.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378682678; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 111846.13333333333; 12.733333333333333; 13.066666666666666; 0.3333333333333333; 0.13333333333333333 +1378682978; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 145400.53333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378683278; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 125828.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378683578; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 99263.46666666666; 0.0; 1.0; 0.0; 0.0 +1378683878; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 88078.4; 0.0; 1.3333333333333333; 0.0; 0.0 +1378684178; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.8; 0.0; 0.0 +1378684478; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 130022.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378684778; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 92272.8; 0.0; 0.8; 0.0; 0.0 +1378685078; 1; 2599.998989; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378685378; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 184547.73333333334; 0.06666666666666667; 2.466666666666667; 0.0; 0.5333333333333333 +1378685678; 1; 2599.998989; 0.0; 0.0; 2097152.0; 213908.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378685978; 1; 2599.998989; 0.0; 0.0; 2097152.0; 138411.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378686278; 1; 2599.998989; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378686578; 1; 2599.998989; 0.0; 0.0; 2097152.0; 124429.86666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378686878; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 164974.4; 0.6; 1.2666666666666666; 0.0; 0.0 +1378687178; 1; 2599.998989; 0.0; 0.0; 2097152.0; 164973.33333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1378687478; 1; 2599.998989; 0.0; 0.0; 2097152.0; 127225.6; 0.0; 1.1333333333333333; 0.0; 0.0 +1378687778; 1; 2599.998989; 0.0; 0.0; 2097152.0; 124429.06666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1378688078; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.0; 0.0; 0.0 +1378688378; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378688678; 1; 2599.998989; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1378688978; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 149596.0; 0.0; 2.2666666666666666; 0.0; 0.4666666666666667 +1378689278; 1; 2599.998989; 0.0; 0.0; 2097152.0; 162177.86666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378689578; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 113244.8; 0.0; 7.2; 0.2; 0.13333333333333333 +1378689878; 1; 2599.998989; 0.0; 0.0; 2097152.0; 135614.93333333332; 0.0; 1.0666666666666667; 0.0; 0.0 +1378690178; 1; 2599.998989; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 1.0; 0.0; 0.0 +1378690478; 1; 2599.998989; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378690778; 1; 2599.998989; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 1.2666666666666666; 0.0; 0.0 +1378691079; 1; 2599.998989; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378691379; 1; 2599.998989; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 1.0; 0.0; 0.0 +1378691679; 1; 2599.998989; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378691979; 1; 2599.998989; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1378692279; 1; 2599.998989; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1378692579; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 131419.73333333334; 0.0; 2.466666666666667; 0.0; 0.4666666666666667 +1378692879; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 155188.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378693179; 1; 2599.998989; 0.0; 0.0; 2097152.0; 148196.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378693479; 1; 2599.998989; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1378693779; 1; 2599.998989; 0.0; 0.0; 2097152.0; 75495.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378694079; 1; 2599.998989; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378694379; 1; 2599.998989; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378694679; 1; 2599.998989; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 1.2666666666666666; 0.0; 0.0 +1378694979; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1378695279; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 131420.53333333333; 0.0; 6.866666666666666; 0.2; 0.13333333333333333 +1378695579; 1; 2599.998989; 0.0; 0.0; 2097152.0; 135614.93333333332; 0.0; 0.8666666666666667; 0.0; 0.0 +1378695879; 1; 2599.998989; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378696179; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 117439.2; 0.0; 2.8; 0.0; 0.4666666666666667 +1378696479; 1; 2599.998989; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378696779; 1; 2599.998989; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378697079; 1; 2599.998989; 64.13330839533334; 2.466666666666667; 2097152.0; 426419.2; 161.2; 21.733333333333334; 0.06666666666666667; 0.4 +1378697379; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 539665.0666666667; 0.0; 2.8; 0.0; 0.0 +1378697679; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 246063.46666666667; 31.8; 3.6666666666666665; 0.0; 0.0 +1378697979; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 159382.4; 0.8; 2.6666666666666665; 0.0; 0.0 +1378698279; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 124429.86666666667; 0.0; 1.8666666666666667; 0.0; 0.0 +1378698579; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 155187.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378698879; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1378699180; 1; 2599.998989; 0.0; 0.0; 2097152.0; 142605.6; 0.0; 1.0; 0.0; 0.0 +1378699480; 1; 2599.998989; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378699780; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 134216.53333333333; 6.8; 2.533333333333333; 0.0; 0.4666666666666667 +1378700080; 1; 2599.998989; 0.0; 0.0; 2097152.0; 118836.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378700380; 1; 2599.998989; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1378700679; 1; 2599.998989; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378700979; 1; 2599.998989; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378701279; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 142605.6; 0.0; 7.066666666666666; 0.26666666666666666; 0.2 +1378701579; 1; 2599.998989; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 1.2666666666666666; 0.0; 0.0 +1378701879; 1; 2599.998989; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1378702179; 1; 2599.998989; 0.0; 0.0; 2097152.0; 130021.6; 0.0; 1.0; 0.0; 0.0 +1378702479; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378702779; 1; 2599.998989; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378703079; 1; 2599.998989; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1378703379; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 183149.06666666668; 0.06666666666666667; 2.4; 0.0; 0.4666666666666667 +1378703680; 1; 2599.998989; 0.0; 0.0; 2097152.0; 160780.53333333333; 0.0; 1.0; 0.0; 0.0 +1378703980; 1; 2599.998989; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 1.0; 0.0; 0.0 +1378704280; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 111846.66666666667; 1.0; 2.0; 0.0; 0.0 +1378704580; 1; 2599.998989; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378704880; 1; 2599.998989; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378705180; 1; 2599.998989; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378705480; 1; 2599.998989; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378705780; 1; 2599.998989; 0.0; 0.0; 2097152.0; 139809.33333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1378706080; 1; 2599.998989; 0.0; 0.0; 2097152.0; 144002.93333333332; 0.0; 0.9333333333333333; 0.0; 0.0 +1378706380; 1; 2599.998989; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378706680; 1; 2599.998989; 0.0; 0.0; 2097152.0; 150993.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378706980; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 134216.0; 0.0; 1.9333333333333333; 0.0; 0.4666666666666667 +1378707280; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 116041.06666666667; 0.0; 6.333333333333333; 0.26666666666666666; 0.13333333333333333 +1378707580; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 148196.53333333333; 0.0; 1.5333333333333334; 0.0; 0.0 +1378707880; 1; 2599.998989; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378708180; 1; 2599.998989; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378708480; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 116041.06666666667; 0.06666666666666667; 2.8; 0.06666666666666667; 0.06666666666666667 +1378708780; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 142604.53333333333; 0.0; 1.8; 0.0; 0.0 +1378709080; 1; 2599.998989; 0.0; 0.0; 2097152.0; 167770.4; 0.0; 1.0; 0.0; 0.0 +1378709380; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 135614.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378709680; 1; 2599.998989; 0.0; 0.0; 2097152.0; 128623.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378709980; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 81087.73333333334; 0.0; 11.933333333333334; 0.0; 0.0 +1378710280; 1; 2599.998989; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378710580; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 135613.33333333334; 0.26666666666666666; 2.3333333333333335; 0.0; 0.4666666666666667 +1378710880; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 156585.6; 0.0; 1.0; 0.0; 0.0 +1378711180; 1; 2599.998989; 0.0; 0.0; 2097152.0; 128624.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378711481; 1; 2599.998989; 0.0; 0.0; 2097152.0; 82485.86666666667; 0.0; 1.0; 0.0; 0.0 +1378711781; 1; 2599.998989; 0.0; 0.0; 2097152.0; 135613.86666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1378712081; 1; 2599.998989; 0.0; 0.0; 2097152.0; 111846.13333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1378712381; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1378712681; 1; 2599.998989; 0.0; 0.0; 2097152.0; 131420.53333333333; 0.0; 1.9333333333333333; 0.0; 0.0 +1378712981; 1; 2599.998989; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378713281; 1; 2599.998989; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378713581; 1; 2599.998989; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378713881; 1; 2599.998989; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 1.0666666666666667; 0.13333333333333333; 0.0 +1378714181; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 174760.8; 0.0; 8.6; 0.2; 0.6666666666666666 +1378714481; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 155187.46666666667; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378714781; 1; 2599.998989; 0.0; 0.0; 2097152.0; 131419.73333333334; 0.0; 1.6666666666666667; 0.06666666666666667; 0.0 +1378715081; 1; 2599.998989; 0.0; 0.0; 2097152.0; 123030.93333333333; 0.0; 1.0; 0.0; 0.0 +1378715381; 1; 2599.998989; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 1.2; 0.0; 0.0 +1378715681; 1; 2599.998989; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378715981; 1; 2599.998989; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378716281; 1; 2599.998989; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378716581; 1; 2599.998989; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378716881; 1; 2599.998989; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 1.2; 0.0; 0.0 +1378717181; 1; 2599.998989; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378717481; 1; 2599.998989; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378717782; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 128624.0; 0.0; 2.4; 0.0; 0.4666666666666667 +1378718082; 1; 2599.998989; 0.0; 0.0; 2097152.0; 152391.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378718382; 1; 2599.998989; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378718682; 1; 2599.998989; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378718982; 1; 2599.998989; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 1.0; 0.0; 0.0 +1378719282; 1; 2599.998989; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378719582; 1; 2599.998989; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 1.2; 0.0; 0.0 +1378719882; 1; 2599.998989; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1378720182; 1; 2599.998989; 0.0; 0.0; 2097152.0; 141207.46666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378720482; 1; 2599.998989; 0.0; 0.0; 2097152.0; 132818.66666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1378720782; 1; 2599.998989; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.8; 0.0; 0.0 +1378721082; 1; 2599.998989; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1378721382; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 145400.8; 0.0; 8.733333333333333; 0.2; 0.6 +1378721682; 1; 2599.998989; 0.0; 0.0; 2097152.0; 153788.53333333333; 0.0; 0.8; 0.0; 0.0 +1378721982; 1; 2599.998989; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378722282; 1; 2599.998989; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 1.0; 0.0; 0.0 +1378722582; 1; 2599.998989; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378722882; 1; 2599.998989; 0.0; 0.0; 2097152.0; 142604.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378723182; 1; 2599.998989; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378723482; 1; 2599.998989; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.8; 0.0; 0.0 +1378723782; 1; 2599.998989; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 1.3333333333333333; 0.0; 0.0 +1378724082; 1; 2599.998989; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378724382; 1; 2599.998989; 0.0; 0.0; 2097152.0; 68504.53333333334; 0.0; 1.0; 0.0; 0.0 +1378724682; 1; 2599.998989; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.7333333333333333; 0.0; 0.0 +1378724982; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 128624.26666666666; 0.0; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1378725282; 1; 2599.998989; 0.0; 0.0; 2097152.0; 145401.06666666668; 0.0; 0.8; 0.0; 0.0 +1378725582; 1; 2599.998989; 0.0; 0.0; 2097152.0; 150993.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1378725882; 1; 2599.998989; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.7333333333333333; 0.0; 0.0 +1378726182; 1; 2599.998989; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.8; 0.26666666666666666; 0.0 +1378726482; 1; 2599.998989; 0.0; 0.0; 2097152.0; 141207.46666666667; 0.0; 1.0; 0.0; 0.0 +1378726782; 1; 2599.998989; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1378727082; 1; 2599.998989; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 1.4; 0.0; 0.0 +1378727382; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8; 0.0; 0.0 +1378727682; 1; 2599.998989; 0.0; 0.0; 2097152.0; 89476.26666666666; 0.0; 0.8; 0.13333333333333333; 0.0 +1378727983; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 208314.93333333332; 0.0; 7.066666666666666; 0.2; 0.13333333333333333 +1378728283; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 125828.0; 0.0; 0.6666666666666666; 0.0; 0.0 +1378728583; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 156585.06666666668; 0.0; 2.3333333333333335; 0.0; 0.4666666666666667 +1378728883; 1; 2599.998989; 0.0; 0.0; 2097152.0; 153790.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378729183; 1; 2599.998989; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 1.0; 0.0; 0.0 +1378729483; 1; 2599.998989; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8; 0.0; 0.0 +1378729783; 1; 2599.998989; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.7333333333333333; 0.13333333333333333; 0.0 +1378730083; 1; 2599.998989; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 0.8; 0.0; 0.0 +1378730383; 1; 2599.998989; 0.0; 0.0; 2097152.0; 127225.06666666667; 0.0; 0.6666666666666666; 0.0; 0.0 +1378730683; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 128624.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1378730983; 1; 2599.998989; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.8; 0.0; 0.0 +1378731283; 1; 2599.998989; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 1.0; 0.0; 0.0 +1378731583; 1; 2599.998989; 0.0; 0.0; 2097152.0; 127226.13333333333; 0.0; 1.0; 0.0; 0.0 +1378731883; 1; 2599.998989; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378732183; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 162178.4; 0.06666666666666667; 2.466666666666667; 0.0; 0.4666666666666667 +1378732483; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 135613.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378732783; 1; 2599.998989; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 0.8; 0.06666666666666667; 0.0 +1378733083; 1; 2599.998989; 0.0; 0.0; 2097152.0; 75495.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1378733383; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 114642.93333333333; 0.0; 7.2; 0.26666666666666666; 0.2 +1378733683; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378733983; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378734283; 1; 2599.998989; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8; 0.06666666666666667; 0.0 +1378734583; 1; 2599.998989; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.7333333333333333; 0.0; 0.0 +1378734883; 1; 2599.998989; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378735183; 1; 2599.998989; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1378735483; 1; 2599.998989; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.6666666666666666; 0.3333333333333333; 0.0 +1378735783; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 180352.8; 0.13333333333333333; 2.6; 0.0; 0.4666666666666667 +1378736083; 1; 2599.998989; 0.0; 0.0; 2097152.0; 167770.4; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378736383; 1; 2599.998989; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 1.0; 0.0; 0.0 +1378736683; 1; 2599.998989; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378736983; 1; 2599.998989; 0.0; 0.0; 2097152.0; 130021.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378737283; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 109050.4; 0.0; 1.2666666666666666; 0.06666666666666667; 0.13333333333333333 +1378737583; 1; 2599.998989; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1378737883; 1; 2599.998989; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1378738183; 1; 2599.998989; 0.0; 0.0; 2097152.0; 116040.26666666666; 0.0; 1.0; 0.0; 0.0 +1378738483; 1; 2599.998989; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 1.0; 0.06666666666666667; 0.0 +1378738783; 1; 2599.998989; 0.0; 0.0; 2097152.0; 69902.66666666667; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378739083; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 6.266666666666667; 0.2; 0.13333333333333333 +1378739383; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 181750.93333333332; 0.0; 2.8666666666666667; 0.06666666666666667; 0.4666666666666667 +1378739683; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 157983.46666666667; 0.0; 1.0; 0.0; 0.0 +1378739983; 1; 2599.998989; 0.0; 0.0; 2097152.0; 167771.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378740283; 1; 2599.998989; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 1.1333333333333333; 0.6666666666666666; 0.0 +1378740583; 1; 2599.998989; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378740883; 1; 2599.998989; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378741183; 1; 2599.998989; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 1.0; 0.0; 0.0 +1378741483; 1; 2599.998989; 0.0; 0.0; 2097152.0; 138411.2; 0.0; 1.2666666666666666; 0.26666666666666666; 0.0 +1378741783; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.1333333333333333; 0.0; 0.0 +1378742084; 1; 2599.998989; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378742384; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378742684; 1; 2599.998989; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378742984; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 138410.4; 0.0; 2.466666666666667; 0.0; 0.4666666666666667 +1378743284; 1; 2599.998989; 0.0; 0.0; 2097152.0; 130021.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1378743584; 1; 2599.998989; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378743884; 1; 2599.998989; 0.0; 0.0; 2097152.0; 78291.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378744184; 1; 2599.998989; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378744484; 1; 2599.998989; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 1.2; 0.0; 0.0 +1378744784; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1378745084; 1; 2599.998989; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.9333333333333333; 0.26666666666666666; 0.0 +1378745384; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 114642.93333333333; 12.733333333333333; 12.133333333333333; 0.4; 0.2 +1378745684; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 150993.6; 0.0; 2.4; 0.0; 0.0 +1378745984; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.4666666666666666; 0.0; 0.0 +1378746284; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 96467.2; 1.4666666666666666; 1.2; 0.0; 0.0 +1378746584; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 125828.0; 0.06666666666666667; 2.533333333333333; 0.06666666666666667; 0.4666666666666667 +1378746884; 1; 2599.998989; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378747184; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 130022.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1378747484; 1; 2599.998989; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 1.0; 0.0; 0.0 +1378747784; 1; 2599.998989; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 1.3333333333333333; 0.0; 0.0 +1378748084; 1; 2599.998989; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378748384; 1; 2599.998989; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378748684; 1; 2599.998989; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378748984; 1; 2599.998989; 65.86664105466667; 2.533333333333333; 2097152.0; 468361.86666666664; 161.06666666666666; 21.733333333333334; 0.06666666666666667; 0.4 +1378749284; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 441797.6; 0.0; 2.8; 0.0; 0.0 +1378749584; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 248859.73333333334; 31.8; 3.7333333333333334; 0.0; 0.0 +1378749884; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 183149.06666666668; 0.8; 2.533333333333333; 0.0; 0.0 +1378750184; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 188742.4; 0.0; 3.466666666666667; 0.0; 0.4666666666666667 +1378750484; 1; 2599.998989; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 1.0; 0.0; 0.0 +1378750784; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 90874.66666666667; 0.0; 0.8; 0.0; 0.0 +1378751084; 1; 2599.998989; 0.0; 0.0; 2097152.0; 128624.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378751384; 1; 2599.998989; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378751684; 1; 2599.998989; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378751984; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 160779.73333333334; 0.06666666666666667; 7.4; 0.2; 0.13333333333333333 +1378752284; 1; 2599.998989; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 1.0; 0.0; 0.0 +1378752585; 1; 2599.998989; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 1.0; 0.0; 0.0 +1378752885; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 97865.33333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1378753185; 1; 2599.998989; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378753485; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 100661.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378753785; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 144003.73333333334; 0.0; 13.0; 0.0; 0.4666666666666667 +1378754085; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 111846.66666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378754385; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 109050.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1378754685; 1; 2599.998989; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 1.0; 0.0; 0.0 +1378754985; 1; 2599.998989; 0.0; 0.0; 2097152.0; 85282.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378755285; 1; 2599.998989; 0.0; 0.0; 2097152.0; 68504.53333333334; 0.0; 0.8; 0.0; 0.0 +1378755585; 1; 2599.998989; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1378755885; 1; 2599.998989; 39.86665116466667; 1.5333333333333334; 2097152.0; 293599.2; 161.73333333333332; 14.8; 0.0; 0.2 +1378756185; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 378883.4666666667; 0.0; 1.4; 0.0; 0.0 +1378756485; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 155188.53333333333; 31.8; 3.533333333333333; 0.0; 0.0 +1378756785; 1; 2599.998989; 0.0; 0.0; 2097152.0; 152390.93333333332; 0.0; 1.2; 0.0; 0.0 +1378757085; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 96467.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378757385; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 156584.8; 0.06666666666666667; 2.6666666666666665; 0.0; 0.4666666666666667 +1378757685; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 139809.06666666668; 0.0; 0.9333333333333333; 0.0; 0.0 +1378757985; 1; 2599.998989; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378758285; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 89476.53333333334; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378758585; 1; 2599.998989; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.9333333333333333; 1.2666666666666666; 0.0 +1378758885; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 111846.13333333333; 0.13333333333333333; 7.066666666666666; 0.2; 0.13333333333333333 +1378759185; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 111846.4; 0.0; 1.9333333333333333; 0.0; 0.0 +1378759485; 1; 2599.998989; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 1.0; 0.06666666666666667; 0.0 +1378759785; 1; 2599.998989; 0.0; 0.0; 2097152.0; 128624.26666666666; 0.0; 1.2; 0.0; 0.0 +1378760085; 1; 2599.998989; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378760385; 1; 2599.998989; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378760685; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 135614.93333333332; 0.0; 0.9333333333333333; 0.0; 0.0 +1378760985; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 139808.0; 0.0; 2.6; 0.06666666666666667; 0.4666666666666667 +1378761285; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 135613.86666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378761585; 1; 2599.998989; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 1.0; 0.0; 0.0 +1378761885; 1; 2599.998989; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 1.0; 0.0; 0.0 +1378762185; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 100661.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378762485; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 104856.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1378762785; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378763086; 1; 2599.998989; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 1.0; 0.0; 0.0 +1378763386; 1; 2599.998989; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378763686; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 124429.86666666667; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378763986; 1; 2599.998989; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 1.3333333333333333; 0.0; 0.0 +1378764286; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 130022.4; 0.0; 1.0; 0.0; 0.0 +1378764586; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 123031.73333333334; 0.06666666666666667; 2.6; 0.0; 0.5333333333333333 +1378764886; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 89476.53333333334; 0.0; 7.066666666666666; 0.2; 0.13333333333333333 +1378765186; 1; 2599.998989; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 1.1333333333333333; 0.0; 0.0 +1378765486; 1; 2599.998989; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 1.0; 0.0; 0.0 +1378765786; 1; 2599.998989; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378766086; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 125827.46666666666; 0.06666666666666667; 1.6666666666666667; 0.06666666666666667; 0.13333333333333333 +1378766385; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 116040.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1378766685; 1; 2599.998989; 0.0; 0.0; 2097152.0; 132818.66666666666; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1378766985; 1; 2599.998989; 0.0; 0.0; 2097152.0; 127226.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378767285; 1; 2599.998989; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378767585; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 134216.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378767885; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 104856.0; 0.0; 1.0; 0.0; 0.0 +1378768185; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 163576.8; 0.06666666666666667; 2.6666666666666665; 0.0; 0.4666666666666667 +1378768486; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 130022.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378768786; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 125828.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378769086; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 127226.13333333333; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378769386; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 85282.13333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1378769686; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 121633.6; 0.0; 0.8; 0.0; 0.0 +1378769986; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 138411.2; 0.0; 0.8; 0.0; 0.0 +1378770286; 1; 2599.998989; 20.799991912; 0.8; 2097152.0; 131419.73333333334; 0.0; 1.2; 0.0; 0.0 +1378770586; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 124429.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378770886; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 111846.66666666667; 0.0; 1.2; 0.0; 0.0 +1378771186; 1; 2599.998989; 20.799991912; 0.8; 2097152.0; 111846.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378771486; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 121633.6; 0.06666666666666667; 7.2; 0.26666666666666666; 0.13333333333333333 +1378771786; 1; 2599.998989; 22.53332457133334; 0.8666666666666667; 2097152.0; 156585.6; 0.0; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1378772086; 1; 2599.998989; 20.799991912; 0.8; 2097152.0; 169168.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1378772386; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378772686; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 128623.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378772986; 1; 2599.998989; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378773286; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 113244.8; 0.5333333333333333; 1.3333333333333333; 0.0; 0.0 +1378773586; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 114642.93333333333; 0.0; 1.3333333333333333; 0.0; 0.0 +1378773886; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378774186; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 124429.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1378774486; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378774786; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 78291.46666666666; 0.0; 1.0; 0.0; 0.0 +1378775086; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 96467.2; 0.0; 1.0; 0.0; 0.0 +1378775386; 1; 2599.998989; 25.999989890000002; 1.0; 2097152.0; 118837.33333333333; 0.0; 2.2; 0.0; 0.5333333333333333 +1378775686; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 146800.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378775986; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 120235.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378776286; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1378776586; 1; 2599.998989; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 0.8; 0.0; 0.0 +1378776886; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 141207.46666666667; 0.0; 7.133333333333334; 0.2; 0.13333333333333333 +1378777186; 1; 2599.998989; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378777486; 1; 2599.998989; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1378777787; 1; 2599.998989; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1378778087; 1; 2599.998989; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378778387; 1; 2599.998989; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378778687; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 131420.53333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378778987; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 121633.06666666667; 0.0; 2.533333333333333; 0.0; 0.4666666666666667 +1378779287; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 135614.66666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378779587; 1; 2599.998989; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378779887; 1; 2599.998989; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378780187; 1; 2599.998989; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378780487; 1; 2599.998989; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1378780787; 1; 2599.998989; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378781087; 1; 2599.998989; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378781387; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 107652.26666666666; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378781687; 1; 2599.998989; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 0.8; 0.0; 0.0 +1378781987; 1; 2599.998989; 0.0; 0.0; 2097152.0; 107652.26666666666; 0.0; 1.3333333333333333; 0.0; 0.0 +1378782287; 1; 2599.998989; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1378782587; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 176158.66666666666; 0.06666666666666667; 2.6; 0.0; 0.4666666666666667 +1378782887; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 194334.13333333333; 0.0; 7.0; 0.2; 0.13333333333333333 +1378783187; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 153790.4; 0.0; 1.1333333333333333; 0.0; 0.0 +1378783487; 1; 2599.998989; 0.0; 0.0; 2097152.0; 83884.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378783787; 1; 2599.998989; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378784087; 1; 2599.998989; 0.0; 0.0; 2097152.0; 100661.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378784387; 1; 2599.998989; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378784687; 1; 2599.998989; 0.0; 0.0; 2097152.0; 110448.53333333334; 0.0; 1.6; 0.0; 0.0 +1378784987; 1; 2599.998989; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1378785287; 1; 2599.998989; 0.0; 0.0; 2097152.0; 139808.8; 0.0; 0.7333333333333333; 0.06666666666666667; 0.0 +1378785587; 1; 2599.998989; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378785887; 1; 2599.998989; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1378786187; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 145400.26666666666; 0.06666666666666667; 2.3333333333333335; 0.0; 0.4666666666666667 +1378786487; 1; 2599.998989; 0.0; 0.0; 2097152.0; 164973.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378786787; 1; 2599.998989; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 1.0; 0.0; 0.0 +1378787088; 1; 2599.998989; 0.0; 0.0; 2097152.0; 124429.86666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1378787388; 1; 2599.998989; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1378787688; 1; 2599.998989; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 0.8; 0.0; 0.0 +1378787988; 1; 2599.998989; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378788288; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 102059.73333333334; 0.0; 7.2; 0.2; 0.13333333333333333 +1378788588; 1; 2599.998989; 0.0; 0.0; 2097152.0; 144002.93333333332; 0.0; 1.0; 0.0; 0.0 +1378788888; 1; 2599.998989; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 1.2; 0.0; 0.0 +1378789188; 1; 2599.998989; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1378789488; 1; 2599.998989; 0.0; 0.0; 2097152.0; 86680.26666666666; 0.0; 1.0666666666666667; 0.0; 0.0 +1378789788; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 132817.86666666667; 0.0; 2.3333333333333335; 0.0; 0.4666666666666667 +1378790088; 1; 2599.998989; 0.0; 0.0; 2097152.0; 138411.2; 0.0; 1.0; 0.0; 0.0 +1378790388; 1; 2599.998989; 0.0; 0.0; 2097152.0; 146799.2; 0.0; 0.7333333333333333; 0.0; 0.0 +1378790688; 1; 2599.998989; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378790988; 1; 2599.998989; 0.0; 0.0; 2097152.0; 89476.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378791288; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378791588; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 109050.4; 0.0; 1.2666666666666666; 0.0; 0.0 +1378791888; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 116041.06666666667; 0.0; 1.2666666666666666; 0.0; 0.0 +1378792188; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 127226.13333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378792488; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 134216.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378792788; 1; 2599.998989; 0.0; 0.0; 2097152.0; 137013.06666666668; 0.0; 1.0; 0.0; 0.0 +1378793088; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 107652.26666666666; 0.0; 1.2; 0.0; 0.0 +1378793388; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 104856.0; 0.06666666666666667; 2.6666666666666665; 0.0; 0.4666666666666667 +1378793688; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 104856.0; 0.0; 1.0; 0.0; 0.0 +1378793988; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 102059.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378794288; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 127226.13333333333; 0.0; 1.4; 0.0; 0.0 +1378794588; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378794889; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 131420.53333333333; 0.06666666666666667; 8.4; 0.26666666666666666; 0.2 +1378795189; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 123031.73333333334; 0.0; 1.8; 0.0; 0.0 +1378795489; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 116041.06666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1378795789; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 111846.66666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378796089; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 156586.93333333332; 0.0; 1.0; 0.0; 0.0 +1378796389; 1; 2599.998989; 0.0; 0.0; 2097152.0; 116041.06666666667; 0.0; 1.0; 0.0; 0.0 +1378796689; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 89476.53333333334; 0.0; 0.7333333333333333; 0.0; 0.0 +1378796989; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 137012.0; 0.06666666666666667; 2.6; 0.0; 0.4666666666666667 +1378797289; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 145400.53333333333; 0.0; 11.866666666666667; 0.0; 0.0 +1378797589; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 123031.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378797889; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 106254.13333333333; 0.0; 0.6666666666666666; 0.0; 0.0 +1378798189; 1; 2599.998989; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.8; 0.0; 0.0 +1378798489; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 131420.53333333333; 0.0; 1.2666666666666666; 0.0; 0.0 +1378798789; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 89476.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378799089; 1; 2599.998989; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 1.2666666666666666; 0.0; 0.0 +1378799388; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 82485.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378799688; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 125828.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378799988; 1; 2599.998989; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378800289; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 120235.2; 0.0; 0.8; 0.0; 0.0 +1378800589; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 150993.06666666668; 0.06666666666666667; 2.4; 0.0; 0.4666666666666667 +1378800889; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 150993.6; 0.0; 7.266666666666667; 0.2; 0.13333333333333333 +1378801189; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 135614.13333333333; 0.0; 1.2666666666666666; 0.0; 0.0 +1378801489; 1; 2599.998989; 72.799971692; 2.8; 2097152.0; 661300.2666666667; 161.2; 22.2; 0.06666666666666667; 0.4 +1378801789; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 500518.13333333336; 0.0; 18.933333333333334; 0.0; 0.0 +1378802089; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 237674.66666666666; 31.8; 3.6; 0.0; 0.0 +1378802389; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 148197.6; 5.066666666666666; 2.4; 0.0; 0.0 +1378802689; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 124429.86666666667; 0.0; 1.8; 0.0; 0.0 +1378802989; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378803289; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 82485.86666666667; 0.0; 0.8; 0.0; 0.0 +1378803589; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 79689.6; 0.0; 0.8; 0.0; 0.0 +1378803889; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 67106.4; 0.0; 1.8666666666666667; 0.0; 0.0 +1378804189; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 148196.8; 3.8666666666666667; 2.533333333333333; 0.06666666666666667; 0.4666666666666667 +1378804489; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 174761.06666666668; 0.0; 0.7333333333333333; 0.0; 0.0 +1378804789; 1; 2599.998989; 0.0; 0.0; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378805089; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 95069.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378805389; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 69902.66666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378805689; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 89476.53333333334; 0.0; 0.8; 0.0; 0.0 +1378805989; 1; 2599.998989; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378806289; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 100661.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1378806589; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 117439.2; 0.0; 0.8; 0.0; 0.0 +1378806889; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 117439.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378807189; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 149596.26666666666; 0.0; 1.0; 0.0; 0.0 +1378807489; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 164974.13333333333; 12.933333333333334; 13.266666666666667; 0.3333333333333333; 0.2 +1378807789; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 155186.93333333332; 0.0; 2.4; 0.13333333333333333; 0.4666666666666667 +1378808089; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 146799.46666666667; 0.0; 1.3333333333333333; 0.06666666666666667; 0.0 +1378808389; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378808689; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 116041.06666666667; 1.0; 1.6; 0.06666666666666667; 0.0 +1378808990; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 164974.66666666666; 0.0; 1.0; 0.0; 0.0 +1378809290; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 137012.53333333333; 0.0; 1.0; 0.06666666666666667; 0.0 +1378809590; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 128624.26666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1378809890; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 110448.53333333334; 0.0; 1.0666666666666667; 0.0; 0.0 +1378810190; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 137013.06666666668; 0.0; 1.0; 0.0; 0.0 +1378810490; 1; 2599.998989; 0.0; 0.0; 2097152.0; 88078.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378810790; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 102059.73333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1378811090; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 138410.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378811390; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 127226.13333333333; 0.0; 2.4; 0.0; 0.5333333333333333 +1378811690; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 141206.93333333332; 0.0; 0.9333333333333333; 0.0; 0.0 +1378811990; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 110448.53333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378812290; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 124429.86666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378812590; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 85282.13333333333; 0.0; 1.0; 0.06666666666666667; 0.0 +1378812890; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 144003.46666666667; 0.0; 1.0; 0.0; 0.0 +1378813190; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 135614.13333333333; 0.0; 2.3333333333333335; 0.2; 0.13333333333333333 +1378813490; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 164974.4; 0.0; 6.2; 0.0; 0.0 +1378813790; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 130022.4; 0.0; 1.0666666666666667; 0.0; 0.0 +1378814090; 1; 2599.998989; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1378814390; 1; 2599.998989; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378814690; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 120235.46666666666; 1.4; 1.2666666666666666; 0.0; 0.0 +1378814990; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 160779.46666666667; 0.0; 2.533333333333333; 0.06666666666666667; 0.5333333333333333 +1378815290; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 153789.06666666668; 0.0; 0.9333333333333333; 0.0; 0.0 +1378815590; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378815890; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378816190; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 83884.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1378816490; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 114642.93333333333; 0.0; 1.3333333333333333; 0.0; 0.0 +1378816790; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 117439.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378817090; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 121633.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1378817390; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 109050.4; 0.0; 1.0; 0.0; 0.0 +1378817690; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 92272.8; 0.0; 1.0666666666666667; 0.0; 0.0 +1378817990; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378818290; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378818590; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 125828.0; 0.06666666666666667; 2.6; 0.0; 0.4666666666666667 +1378818890; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 134216.0; 0.0; 1.0; 0.0; 0.0 +1378819190; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 92272.8; 0.0; 1.2; 6.333333333333333; 0.0 +1378819490; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 104856.0; 0.06666666666666667; 7.066666666666666; 0.4; 0.13333333333333333 +1378819791; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 176159.2; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378820091; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 125827.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378820391; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378820691; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 104856.0; 0.0; 1.2; 0.13333333333333333; 0.0 +1378820991; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 102059.73333333334; 0.0; 1.0; 0.0; 0.0 +1378821291; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378821591; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 121633.6; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378821891; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 104856.0; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378822191; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 128624.26666666666; 0.0; 2.3333333333333335; 0.0; 0.5333333333333333 +1378822491; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 146799.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378822791; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 155188.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378823091; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 125828.0; 0.0; 0.8; 0.06666666666666667; 0.0 +1378823391; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 75495.2; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1378823691; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 125828.0; 0.0; 1.2; 0.06666666666666667; 0.13333333333333333 +1378823991; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 134216.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378824291; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 83884.0; 0.0; 1.0666666666666667; 0.3333333333333333; 0.0 +1378824591; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378824891; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 97865.33333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378825191; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 155188.0; 0.0; 6.866666666666666; 0.26666666666666666; 0.13333333333333333 +1378825491; 1; 2599.998989; 0.0; 0.0; 2097152.0; 150993.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378825791; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 171964.53333333333; 0.0; 2.0; 0.13333333333333333; 0.4666666666666667 +1378826091; 1; 2599.998989; 0.0; 0.0; 2097152.0; 138410.4; 0.06666666666666667; 1.4; 0.0; 0.0 +1378826391; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1378826691; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 113244.8; 0.0; 0.8; 0.0; 0.0 +1378826991; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378827291; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 117439.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378827591; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 110448.53333333334; 0.0; 1.2; 0.13333333333333333; 0.0 +1378827891; 1; 2599.998989; 0.0; 0.0; 2097152.0; 114642.93333333333; 0.0; 1.3333333333333333; 0.0; 0.0 +1378828191; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 145400.8; 0.0; 1.0; 0.0; 0.0 +1378828491; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 132818.66666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378828791; 1; 2599.998989; 0.0; 0.0; 2097152.0; 131420.53333333333; 0.0; 1.0; 0.2; 0.0 +1378829091; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378829391; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 117439.2; 0.13333333333333333; 2.4; 0.06666666666666667; 0.4666666666666667 +1378829691; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 95069.06666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378829991; 1; 2599.998989; 0.0; 0.0; 2097152.0; 176159.2; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1378830291; 1; 2599.998989; 0.0; 0.0; 2097152.0; 150993.33333333334; 0.0; 1.1333333333333333; 0.0; 0.0 +1378830591; 1; 2599.998989; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378830892; 1; 2599.998989; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378831192; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.13333333333333333; 0.0 +1378831492; 1; 2599.998989; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 1.0; 0.0; 0.0 +1378831791; 1; 2599.998989; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 1.0; 0.0; 0.0 +1378832091; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 134216.8; 0.06666666666666667; 7.066666666666666; 0.26666666666666666; 0.13333333333333333 +1378832391; 1; 2599.998989; 0.0; 0.0; 2097152.0; 132817.6; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378832691; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 113244.8; 0.0; 1.0; 0.06666666666666667; 0.0 +1378832991; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 96467.2; 0.0; 2.533333333333333; 0.0; 0.4666666666666667 +1378833291; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 117439.2; 0.0; 1.0; 0.0; 0.0 +1378833591; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 123031.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378833891; 1; 2599.998989; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1378834191; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 120235.46666666666; 0.0; 0.9333333333333333; 0.26666666666666666; 0.0 +1378834492; 1; 2599.998989; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 1.1333333333333333; 0.0; 0.0 +1378834792; 1; 2599.998989; 0.0; 0.0; 2097152.0; 102059.73333333334; 0.0; 1.0; 0.0; 0.0 +1378835092; 1; 2599.998989; 0.0; 0.0; 2097152.0; 97865.33333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1378835392; 1; 2599.998989; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378835692; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 124429.86666666667; 0.0; 1.2; 0.0; 0.0 +1378835992; 1; 2599.998989; 0.0; 0.0; 2097152.0; 159383.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378836292; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 138411.2; 0.0; 1.6; 0.0; 0.0 +1378836592; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 180352.8; 0.0; 2.066666666666667; 0.0; 0.4666666666666667 +1378836892; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 159383.2; 0.0; 0.9333333333333333; 0.0; 0.0 +1378837192; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 138410.13333333333; 0.0; 1.3333333333333333; 0.0; 0.0 +1378837492; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 104856.0; 0.0; 7.133333333333334; 0.26666666666666666; 0.13333333333333333 +1378837792; 1; 2599.998989; 0.0; 0.0; 2097152.0; 121633.6; 0.0; 1.0; 0.0; 0.0 +1378838092; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 92272.8; 0.0; 0.8; 0.06666666666666667; 0.0 +1378838392; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 100661.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378838692; 1; 2599.998989; 0.0; 0.0; 2097152.0; 90874.66666666667; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378838992; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1378839292; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.4666666666666667; 0.0 +1378839592; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 100661.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378839892; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 90874.66666666667; 0.0; 1.2; 0.06666666666666667; 0.0 +1378840192; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 170566.93333333332; 0.0; 2.466666666666667; 0.0; 0.5333333333333333 +1378840492; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 123031.73333333334; 0.0; 1.0; 0.06666666666666667; 0.0 +1378840792; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 89476.53333333334; 0.0; 0.8; 0.0; 0.0 +1378841092; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 109050.4; 0.0; 11.8; 0.0; 0.0 +1378841392; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 1.2; 0.0; 0.0 +1378841692; 1; 2599.998989; 0.0; 0.0; 2097152.0; 81087.73333333334; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378841992; 1; 2599.998989; 0.0; 0.0; 2097152.0; 128624.26666666666; 0.0; 1.0; 0.06666666666666667; 0.0 +1378842293; 1; 2599.998989; 41.599983824; 1.6; 2097152.0; 251656.8; 161.93333333333334; 14.8; 1.4; 0.2 +1378842593; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 418030.4; 0.0; 1.6; 0.0; 0.0 +1378842893; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 198528.53333333333; 31.8; 3.7333333333333334; 0.0; 0.0 +1378843193; 1; 2599.998989; 0.0; 0.0; 2097152.0; 199927.46666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378843493; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 157984.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378843793; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 194334.13333333333; 0.0; 2.4; 0.0; 0.4666666666666667 +1378844093; 1; 2599.998989; 0.0; 0.0; 2097152.0; 171965.33333333334; 0.0; 1.0; 0.0; 0.0 +1378844393; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 127225.6; 0.0; 7.2; 0.4666666666666667; 0.13333333333333333 +1378844693; 1; 2599.998989; 0.0; 0.0; 2097152.0; 121633.33333333333; 0.0; 1.0; 0.0; 0.0 +1378844993; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 142605.06666666668; 0.0; 0.9333333333333333; 0.0; 0.0 +1378845293; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 134216.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378845593; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 132818.66666666666; 0.0; 1.0; 0.06666666666666667; 0.0 +1378845893; 1; 2599.998989; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.2; 0.0 +1378846193; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 89476.53333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378846493; 1; 2599.998989; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378846793; 1; 2599.998989; 0.0; 0.0; 2097152.0; 113244.8; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1378847093; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 93670.93333333333; 0.0; 1.0; 0.0; 0.0 +1378847393; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 130021.6; 0.0; 2.466666666666667; 0.06666666666666667; 0.4666666666666667 +1378847693; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 135614.93333333332; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378847993; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 123031.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378848293; 1; 2599.998989; 0.0; 0.0; 2097152.0; 99263.46666666666; 0.0; 1.8666666666666667; 0.0; 0.0 +1378848593; 1; 2599.998989; 0.0; 0.0; 2097152.0; 125828.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378848893; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 117438.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378849193; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378849493; 1; 2599.998989; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378849793; 1; 2599.998989; 0.0; 0.0; 2097152.0; 139808.53333333333; 0.0; 1.2666666666666666; 0.0; 0.0 +1378850093; 1; 2599.998989; 0.0; 0.0; 2097152.0; 150993.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378850393; 1; 2599.998989; 0.0; 0.0; 2097152.0; 116040.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378850693; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 82485.86666666667; 0.0; 1.5333333333333334; 0.2; 0.13333333333333333 +1378850993; 1; 2599.998989; 20.799991912; 0.8; 2097152.0; 146799.2; 0.0; 8.0; 0.06666666666666667; 0.4666666666666667 +1378851293; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 125828.0; 0.0; 1.0; 0.0; 0.0 +1378851593; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 118837.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378851893; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 134216.0; 0.0; 1.0; 0.0; 0.0 +1378852193; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 76893.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378852493; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 139808.53333333333; 0.06666666666666667; 1.8; 0.06666666666666667; 0.13333333333333333 +1378852794; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 113244.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378853094; 1; 2599.998989; 22.53332457133334; 0.8666666666666667; 2097152.0; 248860.8; 169.66666666666666; 179.86666666666667; 0.0; 0.0 +1378853394; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 167770.93333333332; 0.0; 1.0; 0.0; 0.0 +1378853694; 1; 2599.998989; 69.33330637333334; 2.666666666666667; 2097152.0; 640328.5333333333; 161.06666666666666; 22.0; 0.0; 0.4 +1378853994; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 408243.73333333334; 0.0; 2.7333333333333334; 0.0; 0.0 +1378854294; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 233480.26666666666; 31.8; 3.6; 0.0; 0.0 +1378854594; 1; 2599.998989; 24.266657230666667; 0.9333333333333332; 2097152.0; 152391.73333333334; 13.333333333333334; 3.7333333333333334; 0.0; 0.4666666666666667 +1378854894; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 145401.06666666668; 0.0; 1.4666666666666666; 0.0; 0.0 +1378855194; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 123031.2; 0.0; 1.0666666666666667; 0.0; 0.0 +1378855494; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 103457.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1378855794; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 130022.4; 0.0; 0.8; 0.0; 0.0 +1378856094; 1; 2599.998989; 20.799991912; 0.8; 2097152.0; 131419.73333333334; 0.06666666666666667; 1.4; 0.0; 0.0 +1378856394; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 125828.0; 0.0; 1.2; 0.0; 0.0 +1378856694; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 144003.73333333334; 0.0; 7.666666666666667; 0.2; 0.13333333333333333 +1378856994; 1; 2599.998989; 20.799991912; 0.8; 2097152.0; 159382.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378857294; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 97865.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1378857594; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 97865.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378857894; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 97865.33333333333; 0.0; 1.2666666666666666; 0.0; 0.0 +1378858194; 1; 2599.998989; 20.799991912; 0.8; 2097152.0; 157984.0; 0.06666666666666667; 2.466666666666667; 0.0; 0.4666666666666667 +1378858494; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 144002.93333333332; 0.0; 1.0; 0.06666666666666667; 0.0 +1378858794; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378859094; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 124429.86666666667; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378859394; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 123031.73333333334; 0.0; 1.0; 0.0; 0.0 +1378859694; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 117439.2; 0.5333333333333333; 1.3333333333333333; 0.0; 0.0 +1378859994; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 90874.66666666667; 0.0; 1.0; 0.0; 0.0 +1378860294; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 93670.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378860594; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 111846.66666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1378860894; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 114642.93333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378861194; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378861494; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 141206.93333333332; 0.0; 1.0; 0.0; 0.0 +1378861794; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 183149.86666666667; 0.0; 2.3333333333333335; 0.06666666666666667; 0.4666666666666667 +1378862094; 1; 2599.998989; 20.799991912; 0.8; 2097152.0; 152392.53333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1378862394; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 121633.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1378862694; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 89476.53333333334; 0.0; 1.0; 0.0; 0.0 +1378862994; 1; 2599.998989; 20.799991912; 0.8; 2097152.0; 124429.86666666667; 0.0; 7.066666666666666; 0.26666666666666666; 0.06666666666666667 +1378863294; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 155188.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378863595; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 132818.66666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1378863895; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 117439.2; 0.0; 1.0; 0.0; 0.0 +1378864195; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 88078.4; 0.0; 0.8; 0.0; 0.0 +1378864494; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 116041.06666666667; 0.0; 0.8; 0.0; 0.0 +1378864794; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 128623.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378865094; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 124429.86666666667; 0.0; 1.0; 0.0; 0.0 +1378865394; 1; 2599.998989; 22.53332457133334; 0.8666666666666667; 2097152.0; 114642.93333333333; 0.06666666666666667; 2.533333333333333; 0.06666666666666667; 0.4666666666666667 +1378865694; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 137013.06666666668; 0.0; 0.8666666666666667; 0.0; 0.0 +1378865994; 1; 2599.998989; 19.066659252666668; 0.7333333333333333; 2097152.0; 95069.06666666667; 0.0; 0.8; 0.0; 0.0 +1378866294; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 95069.06666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1378866594; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 103457.86666666667; 0.0; 0.7333333333333333; 0.0; 0.0 +1378866894; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 134216.8; 0.0; 0.6666666666666666; 0.0; 0.0 +1378867194; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 107652.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378867494; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 118837.33333333333; 0.0; 1.0; 0.0; 0.0 +1378867794; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 120235.46666666666; 0.0; 1.2; 0.0; 0.0 +1378868094; 1; 2599.998989; 15.599993934000002; 0.6; 2097152.0; 102059.73333333334; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1378868394; 1; 2599.998989; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 0.7333333333333333; 1.2666666666666666; 0.0 +1378868694; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 137012.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378868994; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 178955.2; 12.8; 14.2; 0.3333333333333333; 0.7333333333333333 +1378869294; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 201325.06666666668; 0.0; 1.2666666666666666; 0.0; 0.0 +1378869594; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 171964.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378869894; 1; 2599.998989; 0.0; 0.0; 2097152.0; 131420.0; 0.0; 0.8; 0.0; 0.0 +1378870194; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 99263.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378870494; 1; 2599.998989; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 1.0; 0.0; 0.0 +1378870794; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 88078.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378871094; 1; 2599.998989; 0.0; 0.0; 2097152.0; 95069.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378871394; 1; 2599.998989; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 0.7333333333333333; 0.0; 0.0 +1378871695; 1; 2599.998989; 0.0; 0.0; 2097152.0; 124429.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378871995; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 88078.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378872295; 1; 2599.998989; 0.0; 0.0; 2097152.0; 96467.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378872595; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 157983.2; 0.0; 2.3333333333333335; 0.0; 0.4666666666666667 +1378872895; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 116041.06666666667; 0.0; 0.8; 0.0; 0.0 +1378873195; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 130022.4; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378873495; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.6666666666666666; 0.06666666666666667; 0.0 +1378873795; 1; 2599.998989; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.6666666666666666; 0.0; 0.0 +1378874095; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 107652.26666666666; 0.0; 0.6666666666666666; 0.0; 0.0 +1378874395; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 118837.33333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378874695; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 118837.33333333333; 0.0; 1.2666666666666666; 0.06666666666666667; 0.0 +1378874995; 1; 2599.998989; 0.0; 0.0; 2097152.0; 128624.26666666666; 0.0; 0.8; 0.06666666666666667; 0.0 +1378875295; 1; 2599.998989; 0.0; 0.0; 2097152.0; 124429.6; 0.0; 0.8; 0.0; 0.0 +1378875595; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 142604.8; 0.0; 7.2; 0.26666666666666666; 0.2 +1378875895; 1; 2599.998989; 0.0; 0.0; 2097152.0; 111846.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378876195; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 114642.93333333333; 0.06666666666666667; 2.2666666666666666; 0.0; 0.4666666666666667 +1378876495; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 157984.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378876795; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 131420.53333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378877095; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 127226.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378877395; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 127225.33333333333; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1378877695; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 124429.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378877995; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 100661.6; 0.0; 1.1333333333333333; 0.0; 0.0 +1378878295; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 134216.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378878595; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 121633.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1378878895; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 118837.33333333333; 0.0; 1.0; 0.0; 0.0 +1378879195; 1; 2599.998989; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378879495; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378879795; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 157983.73333333334; 0.06666666666666667; 2.066666666666667; 0.0; 0.4666666666666667 +1378880095; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 139808.53333333333; 0.0; 1.1333333333333333; 0.0; 0.0 +1378880396; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 118837.33333333333; 0.0; 1.0; 0.0; 0.0 +1378880696; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 134216.53333333333; 0.0; 0.9333333333333333; 0.0; 0.0 +1378880996; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 148197.6; 0.0; 6.933333333333334; 0.26666666666666666; 0.2 +1378881296; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 139808.53333333333; 0.0; 2.4; 0.0; 0.06666666666666667 +1378881596; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 110448.53333333334; 0.0; 2.1333333333333333; 0.0; 0.0 +1378881896; 1; 2599.998989; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378882196; 1; 2599.998989; 0.0; 0.0; 2097152.0; 118837.33333333333; 0.0; 1.0; 0.0; 0.0 +1378882496; 1; 2599.998989; 0.0; 0.0; 2097152.0; 75495.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378882796; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 95069.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378883096; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 113244.8; 1.4666666666666666; 1.4; 0.0; 0.0 +1378883396; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 195732.26666666666; 0.0; 2.2666666666666666; 0.0; 0.5333333333333333 +1378883696; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 199926.93333333332; 0.0; 0.9333333333333333; 0.0; 0.0 +1378883996; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 104856.0; 0.0; 0.8666666666666667; 0.06666666666666667; 0.0 +1378884296; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 130022.4; 0.0; 1.1333333333333333; 0.06666666666666667; 0.0 +1378884596; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 109050.4; 0.0; 11.8; 1.7333333333333334; 0.0 +1378884896; 1; 2599.998989; 0.0; 0.0; 2097152.0; 128624.26666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378885196; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.9333333333333333; 0.06666666666666667; 0.0 +1378885496; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 92272.8; 0.0; 1.8; 0.0; 0.0 +1378885796; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 116041.06666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1378886096; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 134216.8; 0.0; 0.9333333333333333; 0.0; 0.0 +1378886396; 1; 2599.998989; 0.0; 0.0; 2097152.0; 109050.4; 0.0; 0.9333333333333333; 0.0; 0.0 +1378886696; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 124429.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378886996; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 157983.2; 0.13333333333333333; 9.266666666666667; 0.26666666666666666; 0.6 +1378887296; 1; 2599.998989; 12.133328615333333; 0.4666666666666666; 2097152.0; 178955.73333333334; 0.0; 0.9333333333333333; 0.0; 0.0 +1378887596; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 111846.66666666667; 0.0; 0.8666666666666667; 0.9333333333333333; 0.0 +1378887896; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 118837.33333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378888196; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378888496; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 106254.13333333333; 0.0; 1.2; 0.0; 0.0 +1378888796; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 113244.8; 0.0; 1.0; 0.0; 0.0 +1378889096; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 142604.0; 0.0; 0.8666666666666667; 0.0; 0.0 +1378889396; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 109049.86666666667; 0.0; 1.0; 0.0; 0.0 +1378889696; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 1.0666666666666667; 0.06666666666666667; 0.0 +1378889997; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.13333333333333333; 0.0 +1378890297; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 137013.06666666668; 0.0; 1.0; 0.0; 0.0 +1378890597; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 156585.33333333334; 0.2; 2.4; 0.0; 0.4666666666666667 +1378890897; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 111846.66666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378891197; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 124429.86666666667; 0.0; 1.1333333333333333; 0.0; 0.0 +1378891497; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 107652.26666666666; 0.0; 0.8666666666666667; 2.0; 0.0 +1378891797; 1; 2599.998989; 0.0; 0.0; 2097152.0; 103457.86666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378892097; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 109050.4; 0.0; 0.8666666666666667; 0.0; 0.0 +1378892397; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 116041.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378892697; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 92272.8; 0.0; 8.066666666666666; 0.2; 0.13333333333333333 +1378892997; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 130021.6; 0.0; 0.9333333333333333; 0.0; 0.0 +1378893297; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 146799.2; 20.4; 2.1333333333333333; 0.0; 0.06666666666666667 +1378893597; 1; 2599.998989; 22.53332457133334; 0.8666666666666667; 2097152.0; 149596.26666666666; 0.0; 4.066666666666666; 0.0; 0.0 +1378893897; 1; 2599.998989; 13.866661274666667; 0.5333333333333333; 2097152.0; 183149.86666666667; 0.0; 2.8; 0.0; 0.0 +1378894197; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 148197.06666666668; 0.0; 2.066666666666667; 0.0; 0.4666666666666667 +1378894497; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 138411.2; 0.0; 0.8666666666666667; 0.0; 0.0 +1378894797; 1; 2599.998989; 0.0; 0.0; 2097152.0; 111846.66666666667; 0.0; 0.8666666666666667; 0.0; 0.0 +1378895097; 1; 2599.998989; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378895397; 1; 2599.998989; 0.0; 0.0; 2097152.0; 106254.13333333333; 0.0; 1.2666666666666666; 0.0; 0.0 +1378895697; 1; 2599.998989; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378895997; 1; 2599.998989; 0.0; 0.0; 2097152.0; 123031.73333333334; 0.0; 0.8666666666666667; 0.0; 0.0 +1378896297; 1; 2599.998989; 0.0; 0.0; 2097152.0; 137012.26666666666; 0.0; 0.9333333333333333; 0.0; 0.0 +1378896597; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 100661.6; 0.0; 1.0666666666666667; 0.0; 0.0 +1378896897; 1; 2599.998989; 0.0; 0.0; 2097152.0; 93670.93333333333; 0.0; 0.8; 0.0; 0.0 +1378897197; 1; 2599.998989; 0.0; 0.0; 2097152.0; 110448.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378897497; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 116041.06666666667; 0.0; 0.9333333333333333; 0.0; 0.0 +1378897797; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 166372.26666666666; 0.0; 2.4; 0.0; 0.5333333333333333 +1378898097; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 173362.93333333332; 0.0; 1.2; 0.0; 0.0 +1378898397; 1; 2599.998989; 0.0; 0.0; 2097152.0; 124429.86666666667; 0.0; 0.8; 0.0; 0.0 +1378898697; 1; 2599.998989; 10.399995956; 0.4; 2097152.0; 92272.8; 0.0; 7.2; 0.2; 0.13333333333333333 +1378898997; 1; 2599.998989; 0.0; 0.0; 2097152.0; 120235.46666666666; 0.0; 0.8666666666666667; 0.0; 0.0 +1378899297; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 106254.13333333333; 0.0; 0.8666666666666667; 0.0; 0.0 +1378899597; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 110448.53333333334; 0.0; 1.2666666666666666; 0.0; 0.0 +1378899897; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 160780.0; 0.0; 1.2666666666666666; 0.06666666666666667; 0.0 +1378900197; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 132817.86666666667; 0.0; 1.0666666666666667; 1.4; 0.0 +1378900497; 1; 2599.998989; 0.0; 0.0; 2097152.0; 104856.0; 0.0; 0.7333333333333333; 0.0; 0.0 +1378900797; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 97865.33333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378901097; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 90874.66666666667; 0.0; 0.8; 0.0; 0.0 +1378901397; 1; 2599.998989; 6.933330637333333; 0.26666666666666666; 2097152.0; 130022.4; 0.06666666666666667; 2.533333333333333; 0.0; 0.5333333333333333 +1378901697; 1; 2599.998989; 0.0; 0.0; 2097152.0; 184547.2; 0.0; 1.0; 0.0; 0.0 +1378901997; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 128624.26666666666; 0.0; 1.1333333333333333; 0.0; 0.0 +1378902297; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 114642.93333333333; 0.0; 1.2; 0.0; 0.0 +1378902598; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 109050.4; 0.0; 0.8; 0.0; 0.0 +1378902898; 1; 2599.998989; 0.0; 0.0; 2097152.0; 79689.6; 0.0; 0.8666666666666667; 0.0; 0.0 +1378903198; 1; 2599.998989; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 0.8666666666666667; 0.0; 0.0 +1378903498; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 125828.0; 0.0; 1.0666666666666667; 0.0; 0.0 +1378903798; 1; 2599.998989; 5.199997978; 0.2; 2097152.0; 95069.06666666667; 0.0; 1.0666666666666667; 0.0; 0.0 +1378904098; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 0.8; 0.06666666666666667; 0.0 +1378904398; 1; 2599.998989; 0.0; 0.0; 2097152.0; 76893.33333333333; 0.0; 1.0666666666666667; 0.0; 0.0 +1378904698; 1; 2599.998989; 1.7333326593333334; 0.06666666666666667; 2097152.0; 104856.0; 0.0; 0.9333333333333333; 0.0; 0.0 +1378904998; 1; 2599.998989; 77.99996967000001; 3.0; 2097152.0; 450186.6666666667; 161.06666666666666; 107.6; 12.933333333333334; 1.2666666666666666 +1378905298; 1; 2599.998989; 17.333326593333336; 0.6666666666666667; 2097152.0; 633338.4; 0.0; 45.13333333333333; 0.2; 0.13333333333333333 +1378905598; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 297792.8; 31.8; 3.466666666666667; 0.0; 0.0 +1378905898; 1; 2599.998989; 8.666663296666668; 0.33333333333333337; 2097152.0; 162177.86666666667; 5.066666666666666; 2.2; 0.0; 0.0 +1378906198; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 142604.8; 0.0; 1.6; 0.0; 0.0 +1378906498; 1; 2599.998989; 3.4666653186666667; 0.13333333333333333; 2097152.0; 125827.2; 0.0; 1.3333333333333333; 0.0; 0.0 +1378906798; 1; 2599.998989; 0.0; 0.0; 2097152.0; 92272.8; 0.0; 1.0; 0.06666666666666667; 0.0 -- cgit v1.2.3 From 5c6bf9739aa0ffd9651df4fcb4cd46a8545144f0 Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Tue, 31 Aug 2021 18:08:14 +0200 Subject: refactor(trace): Implement trace API for SWF reader This change updates the SWF trace reader to support the new streaming trace API. --- opendc-trace/opendc-trace-swf/build.gradle.kts | 35 +++++ .../kotlin/org/opendc/trace/swf/SwfTaskTable.kt | 63 ++++++++ .../org/opendc/trace/swf/SwfTaskTableReader.kt | 162 +++++++++++++++++++++ .../main/kotlin/org/opendc/trace/swf/SwfTrace.kt | 46 ++++++ .../kotlin/org/opendc/trace/swf/SwfTraceFormat.kt | 43 ++++++ .../services/org.opendc.trace.spi.TraceFormat | 1 + .../org/opendc/trace/swf/SwfTraceFormatTest.kt | 107 ++++++++++++++ .../opendc-trace-swf/src/test/resources/trace.swf | 6 + 8 files changed, 463 insertions(+) create mode 100644 opendc-trace/opendc-trace-swf/build.gradle.kts create mode 100644 opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTable.kt create mode 100644 opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTableReader.kt create mode 100644 opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTrace.kt create mode 100644 opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTraceFormat.kt create mode 100644 opendc-trace/opendc-trace-swf/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat create mode 100644 opendc-trace/opendc-trace-swf/src/test/kotlin/org/opendc/trace/swf/SwfTraceFormatTest.kt create mode 100644 opendc-trace/opendc-trace-swf/src/test/resources/trace.swf (limited to 'opendc-trace') diff --git a/opendc-trace/opendc-trace-swf/build.gradle.kts b/opendc-trace/opendc-trace-swf/build.gradle.kts new file mode 100644 index 00000000..c9eaa78d --- /dev/null +++ b/opendc-trace/opendc-trace-swf/build.gradle.kts @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +description = "Support for Standard Workload Format (SWF) traces in OpenDC" + +/* Build configuration */ +plugins { + `kotlin-library-conventions` + `testing-conventions` + `jacoco-conventions` +} + +dependencies { + api(platform(projects.opendcPlatform)) + api(projects.opendcTrace.opendcTraceApi) +} diff --git a/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTable.kt b/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTable.kt new file mode 100644 index 00000000..12a51a2f --- /dev/null +++ b/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTable.kt @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.swf + +import org.opendc.trace.* +import java.nio.file.Path +import kotlin.io.path.bufferedReader + +/** + * A [Table] containing the tasks in a SWF trace. + */ +internal class SwfTaskTable(private val path: Path) : Table { + override val name: String = TABLE_TASKS + + override val isSynthetic: Boolean = false + + override fun isSupported(column: TableColumn<*>): Boolean { + return when (column) { + TASK_ID -> true + TASK_SUBMIT_TIME -> true + TASK_WAIT_TIME -> true + TASK_RUNTIME -> true + TASK_REQ_NCPUS -> true + TASK_ALLOC_NCPUS -> true + TASK_PARENTS -> true + TASK_STATUS -> true + TASK_GROUP_ID -> true + TASK_USER_ID -> true + else -> false + } + } + + override fun newReader(): TableReader { + val reader = path.bufferedReader() + return SwfTaskTableReader(reader) + } + + override fun newReader(partition: String): TableReader { + throw IllegalArgumentException("Invalid partition $partition") + } + + override fun toString(): String = "SwfTaskTable" +} diff --git a/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTableReader.kt b/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTableReader.kt new file mode 100644 index 00000000..5f879a54 --- /dev/null +++ b/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTableReader.kt @@ -0,0 +1,162 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.swf + +import org.opendc.trace.* +import java.io.BufferedReader + +/** + * A [TableReader] implementation for the SWF format. + */ +internal class SwfTaskTableReader(private val reader: BufferedReader) : TableReader { + /** + * The current row. + */ + private var fields = emptyList() + + /** + * A [Regex] object to match whitespace. + */ + private val whitespace = "\\s+".toRegex() + + override fun nextRow(): Boolean { + var line: String + var num = 0 + + while (true) { + line = reader.readLine() ?: return false + num++ + + if (line.isBlank()) { + // Ignore empty lines + continue + } else if (line.startsWith(";")) { + // Ignore comments for now + continue + } + + break + } + + fields = line.trim().split(whitespace) + + if (fields.size < 18) { + throw IllegalArgumentException("Invalid format at line $line") + } + + return true + } + + override fun hasColumn(column: TableColumn<*>): Boolean { + return when (column) { + TASK_ID -> true + TASK_SUBMIT_TIME -> true + TASK_WAIT_TIME -> true + TASK_RUNTIME -> true + TASK_REQ_NCPUS -> true + TASK_ALLOC_NCPUS -> true + TASK_PARENTS -> true + TASK_STATUS -> true + TASK_GROUP_ID -> true + TASK_USER_ID -> true + else -> false + } + } + + override fun get(column: TableColumn): T { + val res: Any = when (column) { + TASK_ID -> getLong(TASK_ID) + TASK_SUBMIT_TIME -> getLong(TASK_SUBMIT_TIME) + TASK_WAIT_TIME -> getLong(TASK_WAIT_TIME) + TASK_RUNTIME -> getLong(TASK_RUNTIME) + TASK_REQ_NCPUS -> getInt(TASK_REQ_NCPUS) + TASK_ALLOC_NCPUS -> getInt(TASK_ALLOC_NCPUS) + TASK_PARENTS -> { + val parent = fields[COL_PARENT_JOB].toLong(10) + if (parent < 0) emptySet() else setOf(parent) + } + TASK_STATUS -> getInt(TASK_STATUS) + TASK_GROUP_ID -> getInt(TASK_GROUP_ID) + TASK_USER_ID -> getInt(TASK_USER_ID) + else -> throw IllegalArgumentException("Invalid column") + } + + @Suppress("UNCHECKED_CAST") + return res as T + } + + override fun getBoolean(column: TableColumn): Boolean { + throw IllegalArgumentException("Invalid column") + } + + override fun getInt(column: TableColumn): Int { + return when (column) { + TASK_REQ_NCPUS -> fields[COL_REQ_NCPUS].toInt(10) + TASK_ALLOC_NCPUS -> fields[COL_ALLOC_NCPUS].toInt(10) + TASK_STATUS -> fields[COL_STATUS].toInt(10) + TASK_GROUP_ID -> fields[COL_GROUP_ID].toInt(10) + TASK_USER_ID -> fields[COL_USER_ID].toInt(10) + else -> throw IllegalArgumentException("Invalid column") + } + } + + override fun getLong(column: TableColumn): Long { + return when (column) { + TASK_ID -> fields[COL_JOB_ID].toLong(10) + TASK_SUBMIT_TIME -> fields[COL_SUBMIT_TIME].toLong(10) + TASK_WAIT_TIME -> fields[COL_WAIT_TIME].toLong(10) + TASK_RUNTIME -> fields[COL_RUN_TIME].toLong(10) + else -> throw IllegalArgumentException("Invalid column") + } + } + + override fun getDouble(column: TableColumn): Double { + throw IllegalArgumentException("Invalid column") + } + + override fun close() { + reader.close() + } + + /** + * Default column indices for the SWF format. + */ + private val COL_JOB_ID = 0 + private val COL_SUBMIT_TIME = 1 + private val COL_WAIT_TIME = 2 + private val COL_RUN_TIME = 3 + private val COL_ALLOC_NCPUS = 4 + private val COL_AVG_CPU_TIME = 5 + private val COL_USED_MEM = 6 + private val COL_REQ_NCPUS = 7 + private val COL_REQ_TIME = 8 + private val COL_REQ_MEM = 9 + private val COL_STATUS = 10 + private val COL_USER_ID = 11 + private val COL_GROUP_ID = 12 + private val COL_EXEC_NUM = 13 + private val COL_QUEUE_NUM = 14 + private val COL_PART_NUM = 15 + private val COL_PARENT_JOB = 16 + private val COL_PARENT_THINK_TIME = 17 +} diff --git a/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTrace.kt b/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTrace.kt new file mode 100644 index 00000000..d4da735e --- /dev/null +++ b/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTrace.kt @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.swf + +import org.opendc.trace.TABLE_TASKS +import org.opendc.trace.Table +import org.opendc.trace.Trace +import java.nio.file.Path + +/** + * [Trace] implementation for the SWF format. + */ +public class SwfTrace internal constructor(private val path: Path) : Trace { + override val tables: List = listOf(TABLE_TASKS) + + override fun containsTable(name: String): Boolean = TABLE_TASKS == name + + override fun getTable(name: String): Table? { + if (!containsTable(name)) { + return null + } + return SwfTaskTable(path) + } + + override fun toString(): String = "SwfTrace[$path]" +} diff --git a/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTraceFormat.kt b/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTraceFormat.kt new file mode 100644 index 00000000..36c3122e --- /dev/null +++ b/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTraceFormat.kt @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2020 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.swf + +import org.opendc.trace.spi.TraceFormat +import java.net.URL +import java.nio.file.Paths +import kotlin.io.path.exists + +/** + * Support for the Standard Workload Format (SWF) in OpenDC. + * + * The standard is defined by the PWA, see here: https://www.cse.huji.ac.il/labs/parallel/workload/swf.html + */ +public class SwfTraceFormat : TraceFormat { + override val name: String = "swf" + + override fun open(url: URL): SwfTrace { + val path = Paths.get(url.toURI()) + require(path.exists()) { "URL $url does not exist" } + return SwfTrace(path) + } +} diff --git a/opendc-trace/opendc-trace-swf/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat b/opendc-trace/opendc-trace-swf/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat new file mode 100644 index 00000000..6c6b0eb2 --- /dev/null +++ b/opendc-trace/opendc-trace-swf/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat @@ -0,0 +1 @@ +org.opendc.trace.swf.SwfTraceFormat diff --git a/opendc-trace/opendc-trace-swf/src/test/kotlin/org/opendc/trace/swf/SwfTraceFormatTest.kt b/opendc-trace/opendc-trace-swf/src/test/kotlin/org/opendc/trace/swf/SwfTraceFormatTest.kt new file mode 100644 index 00000000..9686891b --- /dev/null +++ b/opendc-trace/opendc-trace-swf/src/test/kotlin/org/opendc/trace/swf/SwfTraceFormatTest.kt @@ -0,0 +1,107 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.swf + +import org.junit.jupiter.api.* +import org.junit.jupiter.api.Assertions.* +import org.opendc.trace.TABLE_TASKS +import org.opendc.trace.TASK_ALLOC_NCPUS +import org.opendc.trace.TASK_ID +import java.net.URL + +/** + * Test suite for the [SwfTraceFormat] class. + */ +internal class SwfTraceFormatTest { + @Test + fun testTraceExists() { + val input = checkNotNull(SwfTraceFormatTest::class.java.getResource("/trace.swf")) + val format = SwfTraceFormat() + assertDoesNotThrow { + format.open(input) + } + } + + @Test + fun testTraceDoesNotExists() { + val input = checkNotNull(SwfTraceFormatTest::class.java.getResource("/trace.swf")) + val format = SwfTraceFormat() + assertThrows { + format.open(URL(input.toString() + "help")) + } + } + + @Test + fun testTables() { + val input = checkNotNull(SwfTraceFormatTest::class.java.getResource("/trace.swf")) + val trace = SwfTraceFormat().open(input) + + assertEquals(listOf(TABLE_TASKS), trace.tables) + } + + @Test + fun testTableExists() { + val input = checkNotNull(SwfTraceFormatTest::class.java.getResource("/trace.swf")) + val table = SwfTraceFormat().open(input).getTable(TABLE_TASKS) + + assertNotNull(table) + assertDoesNotThrow { table!!.newReader() } + } + + @Test + fun testTableDoesNotExist() { + val input = checkNotNull(SwfTraceFormatTest::class.java.getResource("/trace.swf")) + val trace = SwfTraceFormat().open(input) + + assertFalse(trace.containsTable("test")) + assertNull(trace.getTable("test")) + } + + @Test + fun testReader() { + val input = checkNotNull(SwfTraceFormatTest::class.java.getResource("/trace.swf")) + val trace = SwfTraceFormat().open(input) + val reader = trace.getTable(TABLE_TASKS)!!.newReader() + + assertAll( + { assertTrue(reader.nextRow()) }, + { assertEquals(1, reader.getLong(TASK_ID)) }, + { assertEquals(306, reader.getInt(TASK_ALLOC_NCPUS)) }, + { assertTrue(reader.nextRow()) }, + { assertEquals(2, reader.getLong(TASK_ID)) }, + { assertEquals(17, reader.getInt(TASK_ALLOC_NCPUS)) }, + ) + + reader.close() + } + + @Test + fun testReaderPartition() { + val input = checkNotNull(SwfTraceFormatTest::class.java.getResource("/trace.swf")) + val trace = SwfTraceFormat().open(input) + + assertThrows { + trace.getTable(TABLE_TASKS)!!.newReader("test") + } + } +} diff --git a/opendc-trace/opendc-trace-swf/src/test/resources/trace.swf b/opendc-trace/opendc-trace-swf/src/test/resources/trace.swf new file mode 100644 index 00000000..c3ecf890 --- /dev/null +++ b/opendc-trace/opendc-trace-swf/src/test/resources/trace.swf @@ -0,0 +1,6 @@ +; Excerpt from the PWA: CTC-SP2-1996-3.1-cln.swf + 1 0 588530 937 306 142.00 -1 -1 35100 -1 1 97 -1 307 3 -1 -1 -1 + 2 164472 356587 75 17 2.00 -1 -1 300 -1 1 81 -1 195 3 -1 -1 -1 + 3 197154 459987 35268 306 32792 -1 -1 35100 -1 0 97 -1 307 3 -1 -1 -1 + 4 310448 50431 29493 64 28745 -1 -1 64800 -1 1 38 -1 38 1 -1 -1 -1 + 5 310541 50766 29063 64 28191 -1 -1 64800 -1 1 38 -1 69 1 -1 -1 -1 -- cgit v1.2.3 From b2308e1077dc60ec6a4dc646613a4be5b59695a6 Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Wed, 1 Sep 2021 11:29:27 +0200 Subject: refactor(trace): Implement trace API for WTF reader This change updates the WTF trace reader to support the new streaming trace API. --- opendc-trace/opendc-trace-wtf/build.gradle.kts | 37 +++++++ .../kotlin/org/opendc/trace/wtf/WtfTaskTable.kt | 64 +++++++++++ .../org/opendc/trace/wtf/WtfTaskTableReader.kt | 116 ++++++++++++++++++++ .../main/kotlin/org/opendc/trace/wtf/WtfTrace.kt | 47 ++++++++ .../kotlin/org/opendc/trace/wtf/WtfTraceFormat.kt | 41 +++++++ .../services/org.opendc.trace.spi.TraceFormat | 1 + .../org/opendc/trace/wtf/WtfTraceFormatTest.kt | 121 +++++++++++++++++++++ .../wtf-trace/tasks/schema-1.0/part.0.parquet | Bin 0 -> 87475 bytes 8 files changed, 427 insertions(+) create mode 100644 opendc-trace/opendc-trace-wtf/build.gradle.kts create mode 100644 opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTable.kt create mode 100644 opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTableReader.kt create mode 100644 opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTrace.kt create mode 100644 opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTraceFormat.kt create mode 100644 opendc-trace/opendc-trace-wtf/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat create mode 100644 opendc-trace/opendc-trace-wtf/src/test/kotlin/org/opendc/trace/wtf/WtfTraceFormatTest.kt create mode 100644 opendc-trace/opendc-trace-wtf/src/test/resources/wtf-trace/tasks/schema-1.0/part.0.parquet (limited to 'opendc-trace') diff --git a/opendc-trace/opendc-trace-wtf/build.gradle.kts b/opendc-trace/opendc-trace-wtf/build.gradle.kts new file mode 100644 index 00000000..5051c7b0 --- /dev/null +++ b/opendc-trace/opendc-trace-wtf/build.gradle.kts @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +description = "Support for Workflow Trace Format (WTF) traces in OpenDC" + +/* Build configuration */ +plugins { + `kotlin-library-conventions` + `testing-conventions` + `jacoco-conventions` +} + +dependencies { + api(platform(projects.opendcPlatform)) + api(projects.opendcTrace.opendcTraceApi) + + implementation(projects.opendcTrace.opendcTraceParquet) +} diff --git a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTable.kt b/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTable.kt new file mode 100644 index 00000000..be26f540 --- /dev/null +++ b/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTable.kt @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.wtf + +import org.apache.avro.generic.GenericRecord +import org.opendc.trace.* +import org.opendc.trace.util.parquet.LocalParquetReader +import java.nio.file.Path + +/** + * A [Table] containing the tasks in a GWF trace. + */ +internal class WtfTaskTable(private val path: Path) : Table { + override val name: String = TABLE_TASKS + + override val isSynthetic: Boolean = false + + override fun isSupported(column: TableColumn<*>): Boolean { + return when (column) { + TASK_ID -> true + TASK_WORKFLOW_ID -> true + TASK_SUBMIT_TIME -> true + TASK_WAIT_TIME -> true + TASK_RUNTIME -> true + TASK_REQ_NCPUS -> true + TASK_PARENTS -> true + TASK_CHILDREN -> true + TASK_GROUP_ID -> true + TASK_USER_ID -> true + else -> false + } + } + + override fun newReader(): TableReader { + val reader = LocalParquetReader(path.resolve("tasks/schema-1.0")) + return WtfTaskTableReader(reader) + } + + override fun newReader(partition: String): TableReader { + throw IllegalArgumentException("Invalid partition $partition") + } + + override fun toString(): String = "WtfTaskTable" +} diff --git a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTableReader.kt b/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTableReader.kt new file mode 100644 index 00000000..b6789542 --- /dev/null +++ b/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTableReader.kt @@ -0,0 +1,116 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.wtf + +import org.apache.avro.generic.GenericRecord +import org.opendc.trace.* +import org.opendc.trace.util.parquet.LocalParquetReader + +/** + * A [TableReader] implementation for the WTF format. + */ +internal class WtfTaskTableReader(private val reader: LocalParquetReader) : TableReader { + /** + * The current record. + */ + private var record: GenericRecord? = null + + override fun nextRow(): Boolean { + record = reader.read() + return record != null + } + + override fun hasColumn(column: TableColumn<*>): Boolean { + return when (column) { + TASK_ID -> true + TASK_WORKFLOW_ID -> true + TASK_SUBMIT_TIME -> true + TASK_WAIT_TIME -> true + TASK_RUNTIME -> true + TASK_REQ_NCPUS -> true + TASK_PARENTS -> true + TASK_CHILDREN -> true + TASK_GROUP_ID -> true + TASK_USER_ID -> true + else -> false + } + } + + override fun get(column: TableColumn): T { + val record = checkNotNull(record) { "Reader in invalid state" } + + @Suppress("UNCHECKED_CAST") + val res: Any = when (column) { + TASK_ID -> record["id"] + TASK_WORKFLOW_ID -> record["workflow_id"] + TASK_SUBMIT_TIME -> record["ts_submit"] + TASK_WAIT_TIME -> record["wait_time"] + TASK_RUNTIME -> record["runtime"] + TASK_REQ_NCPUS -> (record["resource_amount_requested"] as Double).toInt() + TASK_PARENTS -> (record["parents"] as ArrayList).map { it["item"] as Long }.toSet() + TASK_CHILDREN -> (record["children"] as ArrayList).map { it["item"] as Long }.toSet() + TASK_GROUP_ID -> record["group_id"] + TASK_USER_ID -> record["user_id"] + else -> throw IllegalArgumentException("Invalid column") + } + + @Suppress("UNCHECKED_CAST") + return res as T + } + + override fun getBoolean(column: TableColumn): Boolean { + throw IllegalArgumentException("Invalid column") + } + + override fun getInt(column: TableColumn): Int { + val record = checkNotNull(record) { "Reader in invalid state" } + + return when (column) { + TASK_REQ_NCPUS -> (record["resource_amount_requested"] as Double).toInt() + TASK_GROUP_ID -> record["group_id"] as Int + TASK_USER_ID -> record["user_id"] as Int + else -> throw IllegalArgumentException("Invalid column") + } + } + + override fun getLong(column: TableColumn): Long { + val record = checkNotNull(record) { "Reader in invalid state" } + + return when (column) { + TASK_ID -> record["id"] as Long + TASK_WORKFLOW_ID -> record["workflow_id"] as Long + TASK_SUBMIT_TIME -> record["ts_submit"] as Long + TASK_WAIT_TIME -> record["wait_time"] as Long + TASK_RUNTIME -> record["runtime"] as Long + else -> throw IllegalArgumentException("Invalid column") + } + } + + override fun getDouble(column: TableColumn): Double { + throw IllegalArgumentException("Invalid column") + } + + override fun close() { + reader.close() + } +} diff --git a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTrace.kt b/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTrace.kt new file mode 100644 index 00000000..7eff0f5a --- /dev/null +++ b/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTrace.kt @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.wtf + +import org.opendc.trace.TABLE_TASKS +import org.opendc.trace.Table +import org.opendc.trace.Trace +import java.nio.file.Path + +/** + * [Trace] implementation for the WTF format. + */ +public class WtfTrace internal constructor(private val path: Path) : Trace { + override val tables: List = listOf(TABLE_TASKS) + + override fun containsTable(name: String): Boolean = TABLE_TASKS == name + + override fun getTable(name: String): Table? { + if (!containsTable(name)) { + return null + } + + return WtfTaskTable(path) + } + + override fun toString(): String = "SwfTrace[$path]" +} diff --git a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTraceFormat.kt b/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTraceFormat.kt new file mode 100644 index 00000000..781cb335 --- /dev/null +++ b/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTraceFormat.kt @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.wtf + +import org.opendc.trace.spi.TraceFormat +import java.net.URL +import java.nio.file.Paths +import kotlin.io.path.exists + +/** + * A [TraceFormat] implementation for the Workflow Trace Format (WTF). + */ +public class WtfTraceFormat : TraceFormat { + override val name: String = "wtf" + + override fun open(url: URL): WtfTrace { + val path = Paths.get(url.toURI()) + require(path.exists()) { "URL $url does not exist" } + return WtfTrace(path) + } +} diff --git a/opendc-trace/opendc-trace-wtf/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat b/opendc-trace/opendc-trace-wtf/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat new file mode 100644 index 00000000..32da52ff --- /dev/null +++ b/opendc-trace/opendc-trace-wtf/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat @@ -0,0 +1 @@ +org.opendc.trace.wtf.WtfTraceFormat diff --git a/opendc-trace/opendc-trace-wtf/src/test/kotlin/org/opendc/trace/wtf/WtfTraceFormatTest.kt b/opendc-trace/opendc-trace-wtf/src/test/kotlin/org/opendc/trace/wtf/WtfTraceFormatTest.kt new file mode 100644 index 00000000..a05a523e --- /dev/null +++ b/opendc-trace/opendc-trace-wtf/src/test/kotlin/org/opendc/trace/wtf/WtfTraceFormatTest.kt @@ -0,0 +1,121 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.wtf + +import org.junit.jupiter.api.Assertions.* +import org.junit.jupiter.api.Test +import org.junit.jupiter.api.assertThrows +import org.opendc.trace.* +import java.io.File +import java.net.URL + +/** + * Test suite for the [WtfTraceFormat] class. + */ +class WtfTraceFormatTest { + @Test + fun testTraceExists() { + val input = File("src/test/resources/wtf-trace").toURI().toURL() + val format = WtfTraceFormat() + org.junit.jupiter.api.assertDoesNotThrow { + format.open(input) + } + } + + @Test + fun testTraceDoesNotExists() { + val input = File("src/test/resources/wtf-trace").toURI().toURL() + val format = WtfTraceFormat() + assertThrows { + format.open(URL(input.toString() + "help")) + } + } + + @Test + fun testTables() { + val input = File("src/test/resources/wtf-trace").toURI().toURL() + val format = WtfTraceFormat() + val trace = format.open(input) + + assertEquals(listOf(TABLE_TASKS), trace.tables) + } + + @Test + fun testTableExists() { + val input = File("src/test/resources/wtf-trace").toURI().toURL() + val format = WtfTraceFormat() + val table = format.open(input).getTable(TABLE_TASKS) + + assertNotNull(table) + org.junit.jupiter.api.assertDoesNotThrow { table!!.newReader() } + } + + @Test + fun testTableDoesNotExist() { + val input = File("src/test/resources/wtf-trace").toURI().toURL() + val format = WtfTraceFormat() + val trace = format.open(input) + + assertFalse(trace.containsTable("test")) + assertNull(trace.getTable("test")) + } + + /** + * Smoke test for parsing WTF traces. + */ + @Test + fun testTableReader() { + val input = File("src/test/resources/wtf-trace") + val trace = WtfTraceFormat().open(input.toURI().toURL()) + val reader = trace.getTable(TABLE_TASKS)!!.newReader() + + assertAll( + { assertTrue(reader.nextRow()) }, + { assertEquals(362334516345962206, reader.getLong(TASK_ID)) }, + { assertEquals(1078341553348591493, reader.getLong(TASK_WORKFLOW_ID)) }, + { assertEquals(245604, reader.getLong(TASK_SUBMIT_TIME)) }, + { assertEquals(8163, reader.getLong(TASK_RUNTIME)) }, + { assertEquals(setOf(584055316413447529, 133113685133695608, 1008582348422865408), reader.get(TASK_PARENTS)) }, + ) + + assertAll( + { assertTrue(reader.nextRow()) }, + { assertEquals(502010169100446658, reader.getLong(TASK_ID)) }, + { assertEquals(1078341553348591493, reader.getLong(TASK_WORKFLOW_ID)) }, + { assertEquals(251325, reader.getLong(TASK_SUBMIT_TIME)) }, + { assertEquals(8216, reader.getLong(TASK_RUNTIME)) }, + { assertEquals(setOf(584055316413447529, 133113685133695608, 1008582348422865408), reader.get(TASK_PARENTS)) }, + ) + + reader.close() + } + + @Test + fun testTableReaderPartition() { + val input = File("src/test/resources/wtf-trace").toURI().toURL() + val format = WtfTraceFormat() + val table = format.open(input).getTable(TABLE_TASKS)!! + + assertThrows { table.newReader("test") } + } +} diff --git a/opendc-trace/opendc-trace-wtf/src/test/resources/wtf-trace/tasks/schema-1.0/part.0.parquet b/opendc-trace/opendc-trace-wtf/src/test/resources/wtf-trace/tasks/schema-1.0/part.0.parquet new file mode 100644 index 00000000..d2044038 Binary files /dev/null and b/opendc-trace/opendc-trace-wtf/src/test/resources/wtf-trace/tasks/schema-1.0/part.0.parquet differ -- cgit v1.2.3 From 8bae0f3053a53aac9d483ae97d99f2e7e80b42ef Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Wed, 1 Sep 2021 22:30:39 +0200 Subject: refactor(capelin): Migrate trace reader to new trace API This change updates the trace reading classes in the Capelin experiment to use the new trace API in order to re-use many of the trace reading parts. --- .../kotlin/org/opendc/trace/ResourceColumns.kt | 22 ++++++++++++++++++ .../org/opendc/trace/ResourceStateColumns.kt | 26 ++++++++++++++++++++++ 2 files changed, 48 insertions(+) (limited to 'opendc-trace') diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceColumns.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceColumns.kt index 65055762..8945823a 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceColumns.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceColumns.kt @@ -23,7 +23,29 @@ @file:JvmName("ResourceColumns") package org.opendc.trace +import java.time.Instant + /** * Identifier of the resource. */ public val RESOURCE_ID: TableColumn = stringColumn("resource:id") + +/** + * Start time for the resource. + */ +public val RESOURCE_START_TIME: TableColumn = TableColumn("resource:start_time", Instant::class.java) + +/** + * End time for the resource. + */ +public val RESOURCE_END_TIME: TableColumn = TableColumn("resource:end_time", Instant::class.java) + +/** + * Number of CPUs for the resource. + */ +public val RESOURCE_NCPUS: TableColumn = intColumn("resource:num_cpus") + +/** + * Memory capacity for the resource. + */ +public val RESOURCE_MEM_CAPACITY: TableColumn = doubleColumn("resource:mem_capacity") diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceStateColumns.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceStateColumns.kt index 17f52ab6..c2d896a8 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceStateColumns.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceStateColumns.kt @@ -23,6 +23,7 @@ @file:JvmName("ResourceStateColumns") package org.opendc.trace +import java.time.Duration import java.time.Instant /** @@ -30,11 +31,26 @@ import java.time.Instant */ public val RESOURCE_STATE_ID: TableColumn = stringColumn("resource_state:id") +/** + * The cluster to which the resource belongs. + */ +public val RESOURCE_STATE_CLUSTER_ID: TableColumn = stringColumn("resource_state:cluster_id") + /** * Timestamp for the state. */ public val RESOURCE_STATE_TIMESTAMP: TableColumn = TableColumn("resource_state:timestamp", Instant::class.java) +/** + * Duration for the state. + */ +public val RESOURCE_STATE_DURATION: TableColumn = TableColumn("resource_state:duration", Duration::class.java) + +/** + * A flag to indicate that the resource is powered on. + */ +public val RESOURCE_STATE_POWERED_ON: TableColumn = booleanColumn("resource_state:powered_on") + /** * Number of CPUs for the resource. */ @@ -55,6 +71,16 @@ public val RESOURCE_STATE_CPU_USAGE: TableColumn = doubleColumn("resourc */ public val RESOURCE_STATE_CPU_USAGE_PCT: TableColumn = doubleColumn("resource_state:cpu_usage_pct") +/** + * Total CPU demand of the resource in MHz. + */ +public val RESOURCE_STATE_CPU_DEMAND: TableColumn = doubleColumn("resource_state:cpu_demand") + +/** + * CPU ready percentage. + */ +public val RESOURCE_STATE_CPU_READY_PCT: TableColumn = doubleColumn("resource_state:cpu_ready_pct") + /** * Memory capacity of the resource in KB. */ -- cgit v1.2.3 From 5935531137a22fdb920921580d491f86adec65c9 Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Thu, 2 Sep 2021 11:11:50 +0200 Subject: perf(trace): Improve performance of column lookup --- .../src/main/kotlin/org/opendc/trace/ResourceColumns.kt | 5 +++++ .../kotlin/org/opendc/trace/ResourceStateColumns.kt | 17 +++++++++++++++++ .../src/main/kotlin/org/opendc/trace/TableColumn.kt | 13 +++++++++++-- .../src/main/kotlin/org/opendc/trace/TaskColumns.kt | 12 ++++++++++++ 4 files changed, 45 insertions(+), 2 deletions(-) (limited to 'opendc-trace') diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceColumns.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceColumns.kt index 8945823a..44dec95b 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceColumns.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceColumns.kt @@ -28,24 +28,29 @@ import java.time.Instant /** * Identifier of the resource. */ +@JvmField public val RESOURCE_ID: TableColumn = stringColumn("resource:id") /** * Start time for the resource. */ +@JvmField public val RESOURCE_START_TIME: TableColumn = TableColumn("resource:start_time", Instant::class.java) /** * End time for the resource. */ +@JvmField public val RESOURCE_END_TIME: TableColumn = TableColumn("resource:end_time", Instant::class.java) /** * Number of CPUs for the resource. */ +@JvmField public val RESOURCE_NCPUS: TableColumn = intColumn("resource:num_cpus") /** * Memory capacity for the resource. */ +@JvmField public val RESOURCE_MEM_CAPACITY: TableColumn = doubleColumn("resource:mem_capacity") diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceStateColumns.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceStateColumns.kt index c2d896a8..1933967e 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceStateColumns.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceStateColumns.kt @@ -29,84 +29,101 @@ import java.time.Instant /** * Identifier of the resource. */ +@JvmField public val RESOURCE_STATE_ID: TableColumn = stringColumn("resource_state:id") /** * The cluster to which the resource belongs. */ +@JvmField public val RESOURCE_STATE_CLUSTER_ID: TableColumn = stringColumn("resource_state:cluster_id") /** * Timestamp for the state. */ +@JvmField public val RESOURCE_STATE_TIMESTAMP: TableColumn = TableColumn("resource_state:timestamp", Instant::class.java) /** * Duration for the state. */ +@JvmField public val RESOURCE_STATE_DURATION: TableColumn = TableColumn("resource_state:duration", Duration::class.java) /** * A flag to indicate that the resource is powered on. */ +@JvmField public val RESOURCE_STATE_POWERED_ON: TableColumn = booleanColumn("resource_state:powered_on") /** * Number of CPUs for the resource. */ +@JvmField public val RESOURCE_STATE_NCPUS: TableColumn = intColumn("resource_state:ncpus") /** * Total CPU capacity of the resource in MHz. */ +@JvmField public val RESOURCE_STATE_CPU_CAPACITY: TableColumn = doubleColumn("resource_state:cpu_capacity") /** * Total CPU usage of the resource in MHz. */ +@JvmField public val RESOURCE_STATE_CPU_USAGE: TableColumn = doubleColumn("resource_state:cpu_usage") /** * Total CPU usage of the resource in percentage. */ +@JvmField public val RESOURCE_STATE_CPU_USAGE_PCT: TableColumn = doubleColumn("resource_state:cpu_usage_pct") /** * Total CPU demand of the resource in MHz. */ +@JvmField public val RESOURCE_STATE_CPU_DEMAND: TableColumn = doubleColumn("resource_state:cpu_demand") /** * CPU ready percentage. */ +@JvmField public val RESOURCE_STATE_CPU_READY_PCT: TableColumn = doubleColumn("resource_state:cpu_ready_pct") /** * Memory capacity of the resource in KB. */ +@JvmField public val RESOURCE_STATE_MEM_CAPACITY: TableColumn = doubleColumn("resource_state:mem_capacity") /** * Memory usage of the resource in KB. */ +@JvmField public val RESOURCE_STATE_MEM_USAGE: TableColumn = doubleColumn("resource_state:mem_usage") /** * Disk read throughput of the resource in KB/s. */ +@JvmField public val RESOURCE_STATE_DISK_READ: TableColumn = doubleColumn("resource_state:disk_read") /** * Disk write throughput of the resource in KB/s. */ +@JvmField public val RESOURCE_STATE_DISK_WRITE: TableColumn = doubleColumn("resource_state:disk_write") /** * Network receive throughput of the resource in KB/s. */ +@JvmField public val RESOURCE_STATE_NET_RX: TableColumn = doubleColumn("resource_state:net_rx") /** * Network transmit throughput of the resource in KB/s. */ +@JvmField public val RESOURCE_STATE_NET_TX: TableColumn = doubleColumn("resource_state:net_tx") diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableColumn.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableColumn.kt index 247e7312..776c40c0 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableColumn.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableColumn.kt @@ -39,7 +39,7 @@ public class TableColumn(public val name: String, type: Class) { * Determine whether the type of the column is a subtype of [column]. */ public fun isAssignableTo(column: TableColumn<*>): Boolean { - return type.isAssignableFrom(column.type) + return name == column.name && type.isAssignableFrom(column.type) } /** @@ -50,7 +50,16 @@ public class TableColumn(public val name: String, type: Class) { /** * Determine whether this column is equal to [other]. */ - public override fun equals(other: Any?): Boolean = other is TableColumn<*> && name == other.name && type == other.type + public override fun equals(other: Any?): Boolean { + // Fast-path: reference equality + if (this === other) { + return true + } else if (other == null || other !is TableColumn<*>) { + return false + } + + return name == other.name && type == other.type + } /** * Return a string representation of this column. diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TaskColumns.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TaskColumns.kt index 5d3143ff..88bbc623 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TaskColumns.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TaskColumns.kt @@ -26,61 +26,73 @@ package org.opendc.trace /** * A column containing the task identifier. */ +@JvmField public val TASK_ID: TableColumn = longColumn("task:id") /** * A column containing the identifier of the workflow. */ +@JvmField public val TASK_WORKFLOW_ID: TableColumn = longColumn("task:workflow_id") /** * A column containing the submit time of the task. */ +@JvmField public val TASK_SUBMIT_TIME: TableColumn = longColumn("task:submit_time") /** * A column containing the wait time of the task. */ +@JvmField public val TASK_WAIT_TIME: TableColumn = longColumn("task:wait_time") /** * A column containing the runtime time of the task. */ +@JvmField public val TASK_RUNTIME: TableColumn = longColumn("task:runtime") /** * A column containing the parents of a task. */ @Suppress("UNCHECKED_CAST") +@JvmField public val TASK_PARENTS: TableColumn> = TableColumn("task:parents", type = Set::class.java as Class>) /** * A column containing the children of a task. */ @Suppress("UNCHECKED_CAST") +@JvmField public val TASK_CHILDREN: TableColumn> = TableColumn("task:children", type = Set::class.java as Class>) /** * A column containing the requested CPUs of a task. */ +@JvmField public val TASK_REQ_NCPUS: TableColumn = intColumn("task:req_ncpus") /** * A column containing the allocated CPUs of a task. */ +@JvmField public val TASK_ALLOC_NCPUS: TableColumn = intColumn("task:alloc_ncpus") /** * A column containing the status of a task. */ +@JvmField public val TASK_STATUS: TableColumn = intColumn("task:status") /** * A column containing the group id of a task. */ +@JvmField public val TASK_GROUP_ID: TableColumn = intColumn("task:group_id") /** * A column containing the user id of a task. */ +@JvmField public val TASK_USER_ID: TableColumn = intColumn("task:user_id") -- cgit v1.2.3 From 83497bd122983c7fc0d5cbbdc80b98d58c50cd75 Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Fri, 10 Sep 2021 16:06:53 +0200 Subject: feat(trace): Support Materna traces from GWA This change adds support for the Materna traces from the Grid Workload Trace Archive (GWA). These traces are very similar to the Bitbrains traces, so they share the same base implementation. --- .../trace/bitbrains/BitbrainsResourceStateTable.kt | 1 + .../bitbrains/BitbrainsResourceStateTableReader.kt | 192 ++++++++++++++------- 2 files changed, 129 insertions(+), 64 deletions(-) (limited to 'opendc-trace') diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt index 767ef919..846d5c8a 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt @@ -41,6 +41,7 @@ internal class BitbrainsResourceStateTable(private val factory: CsvFactory, priv Files.walk(path, 1) .filter { !Files.isDirectory(it) && it.extension == "csv" } .collect(Collectors.toMap({ it.nameWithoutExtension }, { it })) + .toSortedMap() override val name: String = TABLE_RESOURCE_STATES diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTableReader.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTableReader.kt index 5687ac7f..dab784c2 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTableReader.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTableReader.kt @@ -22,20 +22,42 @@ package org.opendc.trace.bitbrains +import com.fasterxml.jackson.core.JsonParseException import com.fasterxml.jackson.core.JsonToken import com.fasterxml.jackson.dataformat.csv.CsvParser import com.fasterxml.jackson.dataformat.csv.CsvSchema import org.opendc.trace.* +import java.text.NumberFormat import java.time.Instant +import java.time.LocalDateTime +import java.time.ZoneOffset +import java.time.format.DateTimeFormatter +import java.time.format.DateTimeParseException +import java.util.* /** * A [TableReader] for the Bitbrains resource state table. */ internal class BitbrainsResourceStateTableReader(private val partition: String, private val parser: CsvParser) : TableReader { /** - * The current parser state. + * The [DateTimeFormatter] used to parse the timestamps in case of the Materna trace. */ - private val state = RowState() + private val formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss") + + /** + * The type of timestamps in the trace. + */ + private var timestampType: TimestampType = TimestampType.UNDECIDED + + /** + * The [NumberFormat] used to parse doubles containing a comma. + */ + private val nf = NumberFormat.getInstance(Locale.GERMAN) + + /** + * A flag to indicate that the trace contains decimals with a comma separator. + */ + private var usesCommaDecimalSeparator = false init { parser.schema = schema @@ -43,7 +65,7 @@ internal class BitbrainsResourceStateTableReader(private val partition: String, override fun nextRow(): Boolean { // Reset the row state - state.reset() + reset() if (!nextStart()) { return false @@ -57,17 +79,32 @@ internal class BitbrainsResourceStateTableReader(private val partition: String, } when (parser.currentName) { - "Timestamp [ms]" -> state.timestamp = Instant.ofEpochSecond(parser.longValue) - "CPU cores" -> state.cpuCores = parser.intValue - "CPU capacity provisioned [MHZ]" -> state.cpuCapacity = parser.doubleValue - "CPU usage [MHZ]" -> state.cpuUsage = parser.doubleValue - "CPU usage [%]" -> state.cpuUsagePct = parser.doubleValue - "Memory capacity provisioned [KB]" -> state.memCapacity = parser.doubleValue - "Memory usage [KB]" -> state.memUsage = parser.doubleValue - "Disk read throughput [KB/s]" -> state.diskRead = parser.doubleValue - "Disk write throughput [KB/s]" -> state.diskWrite = parser.doubleValue - "Network received throughput [KB/s]" -> state.netReceived = parser.doubleValue - "Network transmitted throughput [KB/s]" -> state.netTransmitted = parser.doubleValue + "Timestamp [ms]" -> { + timestamp = when (timestampType) { + TimestampType.UNDECIDED -> { + try { + val res = LocalDateTime.parse(parser.text, formatter).toInstant(ZoneOffset.UTC) + timestampType = TimestampType.DATE_TIME + res + } catch (e: DateTimeParseException) { + timestampType = TimestampType.EPOCH_MILLIS + Instant.ofEpochSecond(parser.longValue) + } + } + TimestampType.DATE_TIME -> LocalDateTime.parse(parser.text, formatter).toInstant(ZoneOffset.UTC) + TimestampType.EPOCH_MILLIS -> Instant.ofEpochSecond(parser.longValue) + } + } + "CPU cores" -> cpuCores = parser.intValue + "CPU capacity provisioned [MHZ]" -> cpuCapacity = parseSafeDouble() + "CPU usage [MHZ]" -> cpuUsage = parseSafeDouble() + "CPU usage [%]" -> cpuUsagePct = parseSafeDouble() / 100.0 // Convert to range [0, 1] + "Memory capacity provisioned [KB]" -> memCapacity = parseSafeDouble() + "Memory usage [KB]" -> memUsage = parseSafeDouble() + "Disk read throughput [KB/s]" -> diskRead = parseSafeDouble() + "Disk write throughput [KB/s]" -> diskWrite = parseSafeDouble() + "Network received throughput [KB/s]" -> netReceived = parseSafeDouble() + "Network transmitted throughput [KB/s]" -> netTransmitted = parseSafeDouble() } } @@ -95,17 +132,17 @@ internal class BitbrainsResourceStateTableReader(private val partition: String, override fun get(column: TableColumn): T { val res: Any? = when (column) { RESOURCE_STATE_ID -> partition - RESOURCE_STATE_TIMESTAMP -> state.timestamp - RESOURCE_STATE_NCPUS -> state.cpuCores - RESOURCE_STATE_CPU_CAPACITY -> state.cpuCapacity - RESOURCE_STATE_CPU_USAGE -> state.cpuUsage - RESOURCE_STATE_CPU_USAGE_PCT -> state.cpuUsagePct - RESOURCE_STATE_MEM_CAPACITY -> state.memCapacity - RESOURCE_STATE_MEM_USAGE -> state.memUsage - RESOURCE_STATE_DISK_READ -> state.diskRead - RESOURCE_STATE_DISK_WRITE -> state.diskWrite - RESOURCE_STATE_NET_RX -> state.netReceived - RESOURCE_STATE_NET_TX -> state.netTransmitted + RESOURCE_STATE_TIMESTAMP -> timestamp + RESOURCE_STATE_NCPUS -> cpuCores + RESOURCE_STATE_CPU_CAPACITY -> cpuCapacity + RESOURCE_STATE_CPU_USAGE -> cpuUsage + RESOURCE_STATE_CPU_USAGE_PCT -> cpuUsagePct + RESOURCE_STATE_MEM_CAPACITY -> memCapacity + RESOURCE_STATE_MEM_USAGE -> memUsage + RESOURCE_STATE_DISK_READ -> diskRead + RESOURCE_STATE_DISK_WRITE -> diskWrite + RESOURCE_STATE_NET_RX -> netReceived + RESOURCE_STATE_NET_TX -> netTransmitted else -> throw IllegalArgumentException("Invalid column") } @@ -119,7 +156,7 @@ internal class BitbrainsResourceStateTableReader(private val partition: String, override fun getInt(column: TableColumn): Int { return when (column) { - RESOURCE_STATE_NCPUS -> state.cpuCores + RESOURCE_STATE_NCPUS -> cpuCores else -> throw IllegalArgumentException("Invalid column") } } @@ -130,15 +167,15 @@ internal class BitbrainsResourceStateTableReader(private val partition: String, override fun getDouble(column: TableColumn): Double { return when (column) { - RESOURCE_STATE_CPU_CAPACITY -> state.cpuCapacity - RESOURCE_STATE_CPU_USAGE -> state.cpuUsage - RESOURCE_STATE_CPU_USAGE_PCT -> state.cpuUsagePct - RESOURCE_STATE_MEM_CAPACITY -> state.memCapacity - RESOURCE_STATE_MEM_USAGE -> state.memUsage - RESOURCE_STATE_DISK_READ -> state.diskRead - RESOURCE_STATE_DISK_WRITE -> state.diskWrite - RESOURCE_STATE_NET_RX -> state.netReceived - RESOURCE_STATE_NET_TX -> state.netTransmitted + RESOURCE_STATE_CPU_CAPACITY -> cpuCapacity + RESOURCE_STATE_CPU_USAGE -> cpuUsage + RESOURCE_STATE_CPU_USAGE_PCT -> cpuUsagePct + RESOURCE_STATE_MEM_CAPACITY -> memCapacity + RESOURCE_STATE_MEM_USAGE -> memUsage + RESOURCE_STATE_DISK_READ -> diskRead + RESOURCE_STATE_DISK_WRITE -> diskWrite + RESOURCE_STATE_NET_RX -> netReceived + RESOURCE_STATE_NET_TX -> netTransmitted else -> throw IllegalArgumentException("Invalid column") } } @@ -161,37 +198,62 @@ internal class BitbrainsResourceStateTableReader(private val partition: String, } /** - * The current row state. + * Try to parse the current value safely as double. */ - private class RowState { - var timestamp: Instant? = null - var cpuCores = -1 - var cpuCapacity = Double.NaN - var cpuUsage = Double.NaN - var cpuUsagePct = Double.NaN - var memCapacity = Double.NaN - var memUsage = Double.NaN - var diskRead = Double.NaN - var diskWrite = Double.NaN - var netReceived = Double.NaN - var netTransmitted = Double.NaN + private fun parseSafeDouble(): Double { + if (!usesCommaDecimalSeparator) { + try { + return parser.doubleValue + } catch (e: JsonParseException) { + usesCommaDecimalSeparator = true + } + } - /** - * Reset the state. - */ - fun reset() { - timestamp = null - cpuCores = -1 - cpuCapacity = Double.NaN - cpuUsage = Double.NaN - cpuUsagePct = Double.NaN - memCapacity = Double.NaN - memUsage = Double.NaN - diskRead = Double.NaN - diskWrite = Double.NaN - netReceived = Double.NaN - netTransmitted = Double.NaN + val text = parser.text + if (text.isBlank()) { + return 0.0 } + + return nf.parse(text).toDouble() + } + + /** + * State fields of the reader. + */ + private var timestamp: Instant? = null + private var cpuCores = -1 + private var cpuCapacity = Double.NaN + private var cpuUsage = Double.NaN + private var cpuUsagePct = Double.NaN + private var memCapacity = Double.NaN + private var memUsage = Double.NaN + private var diskRead = Double.NaN + private var diskWrite = Double.NaN + private var netReceived = Double.NaN + private var netTransmitted = Double.NaN + + /** + * Reset the state. + */ + private fun reset() { + timestamp = null + cpuCores = -1 + cpuCapacity = Double.NaN + cpuUsage = Double.NaN + cpuUsagePct = Double.NaN + memCapacity = Double.NaN + memUsage = Double.NaN + diskRead = Double.NaN + diskWrite = Double.NaN + netReceived = Double.NaN + netTransmitted = Double.NaN + } + + /** + * The type of the timestamp in the trace. + */ + private enum class TimestampType { + UNDECIDED, DATE_TIME, EPOCH_MILLIS } companion object { @@ -199,15 +261,17 @@ internal class BitbrainsResourceStateTableReader(private val partition: String, * The [CsvSchema] that is used to parse the trace. */ private val schema = CsvSchema.builder() - .addColumn("Timestamp [ms]", CsvSchema.ColumnType.NUMBER) + .addColumn("Timestamp [ms]", CsvSchema.ColumnType.NUMBER_OR_STRING) .addColumn("CPU cores", CsvSchema.ColumnType.NUMBER) .addColumn("CPU capacity provisioned [MHZ]", CsvSchema.ColumnType.NUMBER) .addColumn("CPU usage [MHZ]", CsvSchema.ColumnType.NUMBER) .addColumn("CPU usage [%]", CsvSchema.ColumnType.NUMBER) .addColumn("Memory capacity provisioned [KB]", CsvSchema.ColumnType.NUMBER) .addColumn("Memory usage [KB]", CsvSchema.ColumnType.NUMBER) + .addColumn("Memory usage [%]", CsvSchema.ColumnType.NUMBER) .addColumn("Disk read throughput [KB/s]", CsvSchema.ColumnType.NUMBER) .addColumn("Disk write throughput [KB/s]", CsvSchema.ColumnType.NUMBER) + .addColumn("Disk size [GB]", CsvSchema.ColumnType.NUMBER) .addColumn("Network received throughput [KB/s]", CsvSchema.ColumnType.NUMBER) .addColumn("Network transmitted throughput [KB/s]", CsvSchema.ColumnType.NUMBER) .setAllowComments(true) -- cgit v1.2.3 From fa08b63bd749e9fbe1a1d04ef2ebd7a86453fa4b Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Sat, 11 Sep 2021 10:52:30 +0200 Subject: perf(trace): Keep reader state in own class This change removes the external class that holds the state of the reader and instead puts the state in the reader implementation. Maintaining a separate class for the state increases the complexity and has worse performance characteristics due to the bytecode produced by Kotlin for property accesses. --- .../kotlin/org/opendc/trace/ResourceColumns.kt | 4 +- .../org/opendc/trace/gwf/GwfTaskTableReader.kt | 85 ++++++++++------------ .../main/kotlin/org/opendc/trace/wtf/WtfTrace.kt | 2 +- 3 files changed, 42 insertions(+), 49 deletions(-) (limited to 'opendc-trace') diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceColumns.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceColumns.kt index 44dec95b..e2e5ea6d 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceColumns.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceColumns.kt @@ -41,7 +41,7 @@ public val RESOURCE_START_TIME: TableColumn = TableColumn("resource:sta * End time for the resource. */ @JvmField -public val RESOURCE_END_TIME: TableColumn = TableColumn("resource:end_time", Instant::class.java) +public val RESOURCE_STOP_TIME: TableColumn = TableColumn("resource:stop_time", Instant::class.java) /** * Number of CPUs for the resource. @@ -50,7 +50,7 @@ public val RESOURCE_END_TIME: TableColumn = TableColumn("resource:end_t public val RESOURCE_NCPUS: TableColumn = intColumn("resource:num_cpus") /** - * Memory capacity for the resource. + * Memory capacity for the resource in KB. */ @JvmField public val RESOURCE_MEM_CAPACITY: TableColumn = doubleColumn("resource:mem_capacity") diff --git a/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTableReader.kt b/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTableReader.kt index 64b7d465..fb9099bf 100644 --- a/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTableReader.kt +++ b/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTableReader.kt @@ -32,18 +32,13 @@ import java.util.regex.Pattern * A [TableReader] implementation for the GWF format. */ internal class GwfTaskTableReader(private val parser: CsvParser) : TableReader { - /** - * The current parser state. - */ - private val state = RowState() - init { parser.schema = schema } override fun nextRow(): Boolean { // Reset the row state - state.reset() + reset() if (!nextStart()) { return false @@ -57,12 +52,12 @@ internal class GwfTaskTableReader(private val parser: CsvParser) : TableReader { } when (parser.currentName) { - "WorkflowID" -> state.workflowId = parser.longValue - "JobID" -> state.jobId = parser.longValue - "SubmitTime" -> state.submitTime = parser.longValue - "RunTime" -> state.runtime = parser.longValue - "NProcs" -> state.nProcs = parser.intValue - "ReqNProcs" -> state.reqNProcs = parser.intValue + "WorkflowID" -> workflowId = parser.longValue + "JobID" -> jobId = parser.longValue + "SubmitTime" -> submitTime = parser.longValue + "RunTime" -> runtime = parser.longValue + "NProcs" -> nProcs = parser.intValue + "ReqNProcs" -> reqNProcs = parser.intValue "Dependencies" -> parseParents(parser.valueAsString) } } @@ -85,13 +80,13 @@ internal class GwfTaskTableReader(private val parser: CsvParser) : TableReader { override fun get(column: TableColumn): T { val res: Any = when (column) { - TASK_WORKFLOW_ID -> state.workflowId - TASK_ID -> state.jobId - TASK_SUBMIT_TIME -> state.submitTime - TASK_RUNTIME -> state.runtime - TASK_REQ_NCPUS -> state.nProcs - TASK_ALLOC_NCPUS -> state.reqNProcs - TASK_PARENTS -> state.dependencies + TASK_WORKFLOW_ID -> workflowId + TASK_ID -> jobId + TASK_SUBMIT_TIME -> submitTime + TASK_RUNTIME -> runtime + TASK_REQ_NCPUS -> nProcs + TASK_ALLOC_NCPUS -> reqNProcs + TASK_PARENTS -> dependencies else -> throw IllegalArgumentException("Invalid column") } @@ -105,18 +100,18 @@ internal class GwfTaskTableReader(private val parser: CsvParser) : TableReader { override fun getInt(column: TableColumn): Int { return when (column) { - TASK_REQ_NCPUS -> state.nProcs - TASK_ALLOC_NCPUS -> state.reqNProcs + TASK_REQ_NCPUS -> nProcs + TASK_ALLOC_NCPUS -> reqNProcs else -> throw IllegalArgumentException("Invalid column") } } override fun getLong(column: TableColumn): Long { return when (column) { - TASK_WORKFLOW_ID -> state.workflowId - TASK_ID -> state.jobId - TASK_SUBMIT_TIME -> state.submitTime - TASK_RUNTIME -> state.runtime + TASK_WORKFLOW_ID -> workflowId + TASK_ID -> jobId + TASK_SUBMIT_TIME -> submitTime + TASK_RUNTIME -> runtime else -> throw IllegalArgumentException("Invalid column") } } @@ -166,29 +161,27 @@ internal class GwfTaskTableReader(private val parser: CsvParser) : TableReader { } /** - * The current row state. + * Reader state fields. */ - private class RowState { - var workflowId = -1L - var jobId = -1L - var submitTime = -1L - var runtime = -1L - var nProcs = -1 - var reqNProcs = -1 - var dependencies = emptySet() + private var workflowId = -1L + private var jobId = -1L + private var submitTime = -1L + private var runtime = -1L + private var nProcs = -1 + private var reqNProcs = -1 + private var dependencies = emptySet() - /** - * Reset the state. - */ - fun reset() { - workflowId = -1 - jobId = -1 - submitTime = -1 - runtime = -1 - nProcs = -1 - reqNProcs = -1 - dependencies = emptySet() - } + /** + * Reset the state. + */ + private fun reset() { + workflowId = -1 + jobId = -1 + submitTime = -1 + runtime = -1 + nProcs = -1 + reqNProcs = -1 + dependencies = emptySet() } companion object { diff --git a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTrace.kt b/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTrace.kt index 7eff0f5a..a755a107 100644 --- a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTrace.kt +++ b/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTrace.kt @@ -43,5 +43,5 @@ public class WtfTrace internal constructor(private val path: Path) : Trace { return WtfTaskTable(path) } - override fun toString(): String = "SwfTrace[$path]" + override fun toString(): String = "WtfTrace[$path]" } -- cgit v1.2.3 From b7be3400bb4b21d0cd7021e2baf1f6ce43aba189 Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Fri, 10 Sep 2021 22:10:22 +0200 Subject: feat(trace): Add support for WfCommons (WorkflowHub) traces This change adds support for reading WfCommons workflow traces in OpenDC. This functionality is available in the new `opendc-trace-wfformat` module. --- .../main/kotlin/org/opendc/trace/TaskColumns.kt | 17 +- .../org/opendc/trace/gwf/GwfTaskTableReader.kt | 36 +- .../org/opendc/trace/gwf/GwfTraceFormatTest.kt | 12 +- .../org/opendc/trace/swf/SwfTaskTableReader.kt | 18 +- .../org/opendc/trace/swf/SwfTraceFormatTest.kt | 4 +- .../opendc-trace-wfformat/build.gradle.kts | 37 + .../org/opendc/trace/wfformat/WfFormatTaskTable.kt | 59 + .../trace/wfformat/WfFormatTaskTableReader.kt | 234 ++++ .../org/opendc/trace/wfformat/WfFormatTrace.kt | 47 + .../opendc/trace/wfformat/WfFormatTraceFormat.kt | 47 + .../services/org.opendc.trace.spi.TraceFormat | 1 + .../trace/wfformat/WfFormatTaskTableReaderTest.kt | 345 +++++ .../trace/wfformat/WfFormatTraceFormatTest.kt | 133 ++ .../src/test/resources/trace.json | 1342 ++++++++++++++++++++ .../org/opendc/trace/wtf/WtfTaskTableReader.kt | 27 +- .../org/opendc/trace/wtf/WtfTraceFormatTest.kt | 22 +- 16 files changed, 2309 insertions(+), 72 deletions(-) create mode 100644 opendc-trace/opendc-trace-wfformat/build.gradle.kts create mode 100644 opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTable.kt create mode 100644 opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTableReader.kt create mode 100644 opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTrace.kt create mode 100644 opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTraceFormat.kt create mode 100644 opendc-trace/opendc-trace-wfformat/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat create mode 100644 opendc-trace/opendc-trace-wfformat/src/test/kotlin/org/opendc/trace/wfformat/WfFormatTaskTableReaderTest.kt create mode 100644 opendc-trace/opendc-trace-wfformat/src/test/kotlin/org/opendc/trace/wfformat/WfFormatTraceFormatTest.kt create mode 100644 opendc-trace/opendc-trace-wfformat/src/test/resources/trace.json (limited to 'opendc-trace') diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TaskColumns.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TaskColumns.kt index 88bbc623..46920dce 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TaskColumns.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TaskColumns.kt @@ -23,49 +23,52 @@ @file:JvmName("TaskColumns") package org.opendc.trace +import java.time.Duration +import java.time.Instant + /** * A column containing the task identifier. */ @JvmField -public val TASK_ID: TableColumn = longColumn("task:id") +public val TASK_ID: TableColumn = stringColumn("task:id") /** * A column containing the identifier of the workflow. */ @JvmField -public val TASK_WORKFLOW_ID: TableColumn = longColumn("task:workflow_id") +public val TASK_WORKFLOW_ID: TableColumn = stringColumn("task:workflow_id") /** * A column containing the submit time of the task. */ @JvmField -public val TASK_SUBMIT_TIME: TableColumn = longColumn("task:submit_time") +public val TASK_SUBMIT_TIME: TableColumn = TableColumn("task:submit_time", type = Instant::class.java) /** * A column containing the wait time of the task. */ @JvmField -public val TASK_WAIT_TIME: TableColumn = longColumn("task:wait_time") +public val TASK_WAIT_TIME: TableColumn = TableColumn("task:wait_time", type = Instant::class.java) /** * A column containing the runtime time of the task. */ @JvmField -public val TASK_RUNTIME: TableColumn = longColumn("task:runtime") +public val TASK_RUNTIME: TableColumn = TableColumn("task:runtime", type = Duration::class.java) /** * A column containing the parents of a task. */ @Suppress("UNCHECKED_CAST") @JvmField -public val TASK_PARENTS: TableColumn> = TableColumn("task:parents", type = Set::class.java as Class>) +public val TASK_PARENTS: TableColumn> = TableColumn("task:parents", type = Set::class.java as Class>) /** * A column containing the children of a task. */ @Suppress("UNCHECKED_CAST") @JvmField -public val TASK_CHILDREN: TableColumn> = TableColumn("task:children", type = Set::class.java as Class>) +public val TASK_CHILDREN: TableColumn> = TableColumn("task:children", type = Set::class.java as Class>) /** * A column containing the requested CPUs of a task. diff --git a/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTableReader.kt b/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTableReader.kt index fb9099bf..39eb5520 100644 --- a/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTableReader.kt +++ b/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTableReader.kt @@ -26,6 +26,8 @@ import com.fasterxml.jackson.core.JsonToken import com.fasterxml.jackson.dataformat.csv.CsvParser import com.fasterxml.jackson.dataformat.csv.CsvSchema import org.opendc.trace.* +import java.time.Duration +import java.time.Instant import java.util.regex.Pattern /** @@ -52,10 +54,10 @@ internal class GwfTaskTableReader(private val parser: CsvParser) : TableReader { } when (parser.currentName) { - "WorkflowID" -> workflowId = parser.longValue - "JobID" -> jobId = parser.longValue - "SubmitTime" -> submitTime = parser.longValue - "RunTime" -> runtime = parser.longValue + "WorkflowID" -> workflowId = parser.text + "JobID" -> jobId = parser.text + "SubmitTime" -> submitTime = Instant.ofEpochSecond(parser.longValue) + "RunTime" -> runtime = Duration.ofSeconds(parser.longValue) "NProcs" -> nProcs = parser.intValue "ReqNProcs" -> reqNProcs = parser.intValue "Dependencies" -> parseParents(parser.valueAsString) @@ -79,7 +81,7 @@ internal class GwfTaskTableReader(private val parser: CsvParser) : TableReader { } override fun get(column: TableColumn): T { - val res: Any = when (column) { + val res: Any? = when (column) { TASK_WORKFLOW_ID -> workflowId TASK_ID -> jobId TASK_SUBMIT_TIME -> submitTime @@ -107,13 +109,7 @@ internal class GwfTaskTableReader(private val parser: CsvParser) : TableReader { } override fun getLong(column: TableColumn): Long { - return when (column) { - TASK_WORKFLOW_ID -> workflowId - TASK_ID -> jobId - TASK_SUBMIT_TIME -> submitTime - TASK_RUNTIME -> runtime - else -> throw IllegalArgumentException("Invalid column") - } + throw IllegalArgumentException("Invalid column") } override fun getDouble(column: TableColumn): Double { @@ -163,10 +159,10 @@ internal class GwfTaskTableReader(private val parser: CsvParser) : TableReader { /** * Reader state fields. */ - private var workflowId = -1L - private var jobId = -1L - private var submitTime = -1L - private var runtime = -1L + private var workflowId: String? = null + private var jobId: String? = null + private var submitTime: Instant? = null + private var runtime: Duration? = null private var nProcs = -1 private var reqNProcs = -1 private var dependencies = emptySet() @@ -175,10 +171,10 @@ internal class GwfTaskTableReader(private val parser: CsvParser) : TableReader { * Reset the state. */ private fun reset() { - workflowId = -1 - jobId = -1 - submitTime = -1 - runtime = -1 + workflowId = null + jobId = null + submitTime = null + runtime = null nProcs = -1 reqNProcs = -1 dependencies = emptySet() diff --git a/opendc-trace/opendc-trace-gwf/src/test/kotlin/org/opendc/trace/gwf/GwfTraceFormatTest.kt b/opendc-trace/opendc-trace-gwf/src/test/kotlin/org/opendc/trace/gwf/GwfTraceFormatTest.kt index 6b0568fe..b209b979 100644 --- a/opendc-trace/opendc-trace-gwf/src/test/kotlin/org/opendc/trace/gwf/GwfTraceFormatTest.kt +++ b/opendc-trace/opendc-trace-gwf/src/test/kotlin/org/opendc/trace/gwf/GwfTraceFormatTest.kt @@ -29,6 +29,8 @@ import org.junit.jupiter.api.assertDoesNotThrow import org.junit.jupiter.api.assertThrows import org.opendc.trace.* import java.net.URL +import java.time.Duration +import java.time.Instant /** * Test suite for the [GwfTraceFormat] class. @@ -90,11 +92,11 @@ internal class GwfTraceFormatTest { assertAll( { assertTrue(reader.nextRow()) }, - { assertEquals(0L, reader.getLong(TASK_WORKFLOW_ID)) }, - { assertEquals(1L, reader.getLong(TASK_ID)) }, - { assertEquals(16, reader.getLong(TASK_SUBMIT_TIME)) }, - { assertEquals(11, reader.getLong(TASK_RUNTIME)) }, - { assertEquals(setOf(), reader.get(TASK_PARENTS)) }, + { assertEquals("0", reader.get(TASK_WORKFLOW_ID)) }, + { assertEquals("1", reader.get(TASK_ID)) }, + { assertEquals(Instant.ofEpochSecond(16), reader.get(TASK_SUBMIT_TIME)) }, + { assertEquals(Duration.ofSeconds(11), reader.get(TASK_RUNTIME)) }, + { assertEquals(emptySet(), reader.get(TASK_PARENTS)) }, ) } diff --git a/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTableReader.kt b/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTableReader.kt index 5f879a54..3f49c770 100644 --- a/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTableReader.kt +++ b/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTableReader.kt @@ -24,6 +24,8 @@ package org.opendc.trace.swf import org.opendc.trace.* import java.io.BufferedReader +import java.time.Duration +import java.time.Instant /** * A [TableReader] implementation for the SWF format. @@ -85,10 +87,10 @@ internal class SwfTaskTableReader(private val reader: BufferedReader) : TableRea override fun get(column: TableColumn): T { val res: Any = when (column) { - TASK_ID -> getLong(TASK_ID) - TASK_SUBMIT_TIME -> getLong(TASK_SUBMIT_TIME) - TASK_WAIT_TIME -> getLong(TASK_WAIT_TIME) - TASK_RUNTIME -> getLong(TASK_RUNTIME) + TASK_ID -> fields[COL_JOB_ID] + TASK_SUBMIT_TIME -> Instant.ofEpochSecond(fields[COL_SUBMIT_TIME].toLong(10)) + TASK_WAIT_TIME -> Duration.ofSeconds(fields[COL_WAIT_TIME].toLong(10)) + TASK_RUNTIME -> Duration.ofSeconds(fields[COL_RUN_TIME].toLong(10)) TASK_REQ_NCPUS -> getInt(TASK_REQ_NCPUS) TASK_ALLOC_NCPUS -> getInt(TASK_ALLOC_NCPUS) TASK_PARENTS -> { @@ -121,13 +123,7 @@ internal class SwfTaskTableReader(private val reader: BufferedReader) : TableRea } override fun getLong(column: TableColumn): Long { - return when (column) { - TASK_ID -> fields[COL_JOB_ID].toLong(10) - TASK_SUBMIT_TIME -> fields[COL_SUBMIT_TIME].toLong(10) - TASK_WAIT_TIME -> fields[COL_WAIT_TIME].toLong(10) - TASK_RUNTIME -> fields[COL_RUN_TIME].toLong(10) - else -> throw IllegalArgumentException("Invalid column") - } + throw IllegalArgumentException("Invalid column") } override fun getDouble(column: TableColumn): Double { diff --git a/opendc-trace/opendc-trace-swf/src/test/kotlin/org/opendc/trace/swf/SwfTraceFormatTest.kt b/opendc-trace/opendc-trace-swf/src/test/kotlin/org/opendc/trace/swf/SwfTraceFormatTest.kt index 9686891b..828c2bfa 100644 --- a/opendc-trace/opendc-trace-swf/src/test/kotlin/org/opendc/trace/swf/SwfTraceFormatTest.kt +++ b/opendc-trace/opendc-trace-swf/src/test/kotlin/org/opendc/trace/swf/SwfTraceFormatTest.kt @@ -85,10 +85,10 @@ internal class SwfTraceFormatTest { assertAll( { assertTrue(reader.nextRow()) }, - { assertEquals(1, reader.getLong(TASK_ID)) }, + { assertEquals("1", reader.get(TASK_ID)) }, { assertEquals(306, reader.getInt(TASK_ALLOC_NCPUS)) }, { assertTrue(reader.nextRow()) }, - { assertEquals(2, reader.getLong(TASK_ID)) }, + { assertEquals("2", reader.get(TASK_ID)) }, { assertEquals(17, reader.getInt(TASK_ALLOC_NCPUS)) }, ) diff --git a/opendc-trace/opendc-trace-wfformat/build.gradle.kts b/opendc-trace/opendc-trace-wfformat/build.gradle.kts new file mode 100644 index 00000000..2d336d03 --- /dev/null +++ b/opendc-trace/opendc-trace-wfformat/build.gradle.kts @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +description = "Support for WfCommons workload traces in OpenDC" + +/* Build configuration */ +plugins { + `kotlin-library-conventions` + `testing-conventions` + `jacoco-conventions` +} + +dependencies { + api(platform(projects.opendcPlatform)) + api(projects.opendcTrace.opendcTraceApi) + + implementation(libs.jackson.core) +} diff --git a/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTable.kt b/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTable.kt new file mode 100644 index 00000000..907bf7ff --- /dev/null +++ b/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTable.kt @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.wfformat + +import com.fasterxml.jackson.core.JsonFactory +import org.opendc.trace.* +import java.nio.file.Path + +/** + * A [Table] containing the tasks in a WfCommons workload trace. + */ +internal class WfFormatTaskTable(private val factory: JsonFactory, private val path: Path) : Table { + override val name: String = TABLE_TASKS + + override val isSynthetic: Boolean = false + + override fun isSupported(column: TableColumn<*>): Boolean { + return when (column) { + TASK_ID -> true + TASK_WORKFLOW_ID -> true + TASK_RUNTIME -> true + TASK_REQ_NCPUS -> true + TASK_PARENTS -> true + TASK_CHILDREN -> true + else -> false + } + } + + override fun newReader(): TableReader { + val parser = factory.createParser(path.toFile()) + return WfFormatTaskTableReader(parser) + } + + override fun newReader(partition: String): TableReader { + throw IllegalArgumentException("Invalid partition $partition") + } + + override fun toString(): String = "WfFormatTaskTable" +} diff --git a/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTableReader.kt b/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTableReader.kt new file mode 100644 index 00000000..4408ba5c --- /dev/null +++ b/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTableReader.kt @@ -0,0 +1,234 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.wfformat + +import com.fasterxml.jackson.core.JsonParseException +import com.fasterxml.jackson.core.JsonParser +import com.fasterxml.jackson.core.JsonToken +import org.opendc.trace.* +import java.time.Duration +import kotlin.math.roundToInt + +/** + * A [TableReader] implementation for the WfCommons workload trace format. + */ +internal class WfFormatTaskTableReader(private val parser: JsonParser) : TableReader { + /** + * The current nesting of the parser. + */ + private var level: ParserLevel = ParserLevel.TOP + + override fun nextRow(): Boolean { + reset() + + var hasJob = false + + while (!hasJob) { + when (level) { + ParserLevel.TOP -> { + val token = parser.nextToken() + + // Check whether the document is not empty and starts with an object + if (token == null) { + break + } else if (token != JsonToken.START_OBJECT) { + throw JsonParseException(parser, "Expected object", parser.currentLocation) + } else { + level = ParserLevel.TRACE + } + } + ParserLevel.TRACE -> { + // Seek for the workflow object in the file + if (!seekWorkflow()) { + break + } else if (!parser.isExpectedStartObjectToken) { + throw JsonParseException(parser, "Expected object", parser.currentLocation) + } else { + level = ParserLevel.WORKFLOW + } + } + ParserLevel.WORKFLOW -> { + // Seek for the jobs object in the file + level = if (!seekJobs()) { + ParserLevel.TRACE + } else if (!parser.isExpectedStartArrayToken) { + throw JsonParseException(parser, "Expected array", parser.currentLocation) + } else { + ParserLevel.JOB + } + } + ParserLevel.JOB -> { + when (parser.nextToken()) { + JsonToken.END_ARRAY -> level = ParserLevel.WORKFLOW + JsonToken.START_OBJECT -> { + parseJob() + hasJob = true + break + } + else -> throw JsonParseException(parser, "Unexpected token", parser.currentLocation) + } + } + } + } + + return hasJob + } + + override fun hasColumn(column: TableColumn<*>): Boolean { + return when (column) { + TASK_ID -> true + TASK_WORKFLOW_ID -> true + TASK_RUNTIME -> true + TASK_REQ_NCPUS -> true + TASK_PARENTS -> true + TASK_CHILDREN -> true + else -> false + } + } + + override fun get(column: TableColumn): T { + val res: Any? = when (column) { + TASK_ID -> id + TASK_WORKFLOW_ID -> workflowId + TASK_RUNTIME -> runtime + TASK_PARENTS -> parents + TASK_CHILDREN -> children + TASK_REQ_NCPUS -> getInt(TASK_REQ_NCPUS) + else -> throw IllegalArgumentException("Invalid column") + } + + @Suppress("UNCHECKED_CAST") + return res as T + } + + override fun getBoolean(column: TableColumn): Boolean { + throw IllegalArgumentException("Invalid column") + } + + override fun getInt(column: TableColumn): Int { + return when (column) { + TASK_REQ_NCPUS -> cores + else -> throw IllegalArgumentException("Invalid column") + } + } + + override fun getLong(column: TableColumn): Long { + throw IllegalArgumentException("Invalid column") + } + + override fun getDouble(column: TableColumn): Double { + throw IllegalArgumentException("Invalid column") + } + + override fun close() { + parser.close() + } + + /** + * Parse the trace and seek until the workflow description. + */ + private fun seekWorkflow(): Boolean { + while (parser.nextValue() != JsonToken.END_OBJECT) { + when (parser.currentName) { + "name" -> workflowId = parser.text + "workflow" -> return true + else -> parser.skipChildren() + } + } + + return false + } + + /** + * Parse the workflow description in the file and seek until the first job. + */ + private fun seekJobs(): Boolean { + while (parser.nextValue() != JsonToken.END_OBJECT) { + when (parser.currentName) { + "jobs" -> return true + else -> parser.skipChildren() + } + } + + return false + } + + /** + * Parse a single job in the file. + */ + private fun parseJob() { + while (parser.nextValue() != JsonToken.END_OBJECT) { + when (parser.currentName) { + "name" -> id = parser.text + "parents" -> parents = parseIds() + "children" -> children = parseIds() + "runtime" -> runtime = Duration.ofSeconds(parser.numberValue.toLong()) + "cores" -> cores = parser.floatValue.roundToInt() + else -> parser.skipChildren() + } + } + } + + /** + * Parse the parents/children of a job. + */ + private fun parseIds(): Set { + if (!parser.isExpectedStartArrayToken) { + throw JsonParseException(parser, "Expected array", parser.currentLocation) + } + + val ids = mutableSetOf() + + while (parser.nextToken() != JsonToken.END_ARRAY) { + if (parser.currentToken != JsonToken.VALUE_STRING) { + throw JsonParseException(parser, "Expected token", parser.currentLocation) + } + + ids.add(parser.valueAsString) + } + + return ids + } + + private enum class ParserLevel { + TOP, TRACE, WORKFLOW, JOB + } + + /** + * State fields for the parser. + */ + private var id: String? = null + private var workflowId: String? = null + private var runtime: Duration? = null + private var parents: Set? = null + private var children: Set? = null + private var cores = -1 + + private fun reset() { + id = null + runtime = null + parents = null + children = null + cores = -1 + } +} diff --git a/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTrace.kt b/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTrace.kt new file mode 100644 index 00000000..2d9c79fb --- /dev/null +++ b/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTrace.kt @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.wfformat + +import com.fasterxml.jackson.core.JsonFactory +import org.opendc.trace.TABLE_TASKS +import org.opendc.trace.Table +import org.opendc.trace.Trace +import java.nio.file.Path + +/** + * [Trace] implementation for the WfCommons workload trace format. + */ +public class WfFormatTrace internal constructor(private val factory: JsonFactory, private val path: Path) : Trace { + override val tables: List = listOf(TABLE_TASKS) + + override fun containsTable(name: String): Boolean = TABLE_TASKS == name + + override fun getTable(name: String): Table? { + return when (name) { + TABLE_TASKS -> WfFormatTaskTable(factory, path) + else -> null + } + } + + override fun toString(): String = "WfFormatTrace[$path]" +} diff --git a/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTraceFormat.kt b/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTraceFormat.kt new file mode 100644 index 00000000..ff8d054c --- /dev/null +++ b/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTraceFormat.kt @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.wfformat + +import com.fasterxml.jackson.core.JsonFactory +import org.opendc.trace.spi.TraceFormat +import java.net.URL +import java.nio.file.Paths +import kotlin.io.path.exists + +/** + * A [TraceFormat] implementation for the WfCommons workload trace format. + */ +public class WfFormatTraceFormat : TraceFormat { + /** + * The [JsonFactory] that is used to created JSON parsers. + */ + private val factory = JsonFactory() + + override val name: String = "wfformat" + + override fun open(url: URL): WfFormatTrace { + val path = Paths.get(url.toURI()) + require(path.exists()) { "URL $url does not exist" } + return WfFormatTrace(factory, path) + } +} diff --git a/opendc-trace/opendc-trace-wfformat/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat b/opendc-trace/opendc-trace-wfformat/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat new file mode 100644 index 00000000..ee3aa2f6 --- /dev/null +++ b/opendc-trace/opendc-trace-wfformat/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat @@ -0,0 +1 @@ +org.opendc.trace.wfformat.WfFormatTraceFormat diff --git a/opendc-trace/opendc-trace-wfformat/src/test/kotlin/org/opendc/trace/wfformat/WfFormatTaskTableReaderTest.kt b/opendc-trace/opendc-trace-wfformat/src/test/kotlin/org/opendc/trace/wfformat/WfFormatTaskTableReaderTest.kt new file mode 100644 index 00000000..b07f27ed --- /dev/null +++ b/opendc-trace/opendc-trace-wfformat/src/test/kotlin/org/opendc/trace/wfformat/WfFormatTaskTableReaderTest.kt @@ -0,0 +1,345 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.wfformat + +import com.fasterxml.jackson.core.JsonFactory +import com.fasterxml.jackson.core.JsonParseException +import org.junit.jupiter.api.Assertions.* +import org.junit.jupiter.api.Test +import org.junit.jupiter.api.assertDoesNotThrow +import org.junit.jupiter.api.assertThrows +import org.opendc.trace.TASK_ID +import org.opendc.trace.TASK_PARENTS + +/** + * Test suite for the [WfFormatTaskTableReader] class. + */ +internal class WfFormatTaskTableReaderTest { + /** + * The [JsonFactory] used to construct the parser. + */ + private val factory = JsonFactory() + + @Test + fun testEmptyInput() { + val content = "" + val parser = factory.createParser(content) + val reader = WfFormatTaskTableReader(parser) + + assertFalse(reader.nextRow()) + reader.close() + } + + @Test + fun testTopLevelArrayInput() { + val content = "[]" + val parser = factory.createParser(content) + val reader = WfFormatTaskTableReader(parser) + + assertThrows { + while (reader.nextRow()) { + continue + } + } + + reader.close() + } + + @Test + fun testNoWorkflow() { + val content = """ + { + "name": "eager-nextflow-chameleon" + } + """.trimIndent() + val parser = factory.createParser(content) + val reader = WfFormatTaskTableReader(parser) + + assertDoesNotThrow { + while (reader.nextRow()) { + continue + } + } + + reader.close() + } + + @Test + fun testWorkflowArrayType() { + val content = """ + { + "name": "eager-nextflow-chameleon", + "workflow": [] + } + """.trimIndent() + val parser = factory.createParser(content) + val reader = WfFormatTaskTableReader(parser) + + assertThrows { + while (reader.nextRow()) { + continue + } + } + + reader.close() + } + + @Test + fun testWorkflowNullType() { + val content = """ + { + "name": "eager-nextflow-chameleon", + "workflow": null + } + """.trimIndent() + val parser = factory.createParser(content) + val reader = WfFormatTaskTableReader(parser) + + assertThrows { + while (reader.nextRow()) { + continue + } + } + + reader.close() + } + + @Test + fun testNoJobs() { + val content = """ + { + "name": "eager-nextflow-chameleon", + "workflow": { + + } + } + """.trimIndent() + val parser = factory.createParser(content) + val reader = WfFormatTaskTableReader(parser) + + assertDoesNotThrow { reader.nextRow() } + + reader.close() + } + + @Test + fun testJobsObjectType() { + val content = """ + { + "name": "eager-nextflow-chameleon", + "workflow": { "jobs": {} } + } + """.trimIndent() + val parser = factory.createParser(content) + val reader = WfFormatTaskTableReader(parser) + + assertThrows { reader.nextRow() } + + reader.close() + } + + @Test + fun testJobsNullType() { + val content = """ + { + "name": "eager-nextflow-chameleon", + "workflow": { "jobs": null } + } + """.trimIndent() + val parser = factory.createParser(content) + val reader = WfFormatTaskTableReader(parser) + + assertThrows { reader.nextRow() } + + reader.close() + } + + @Test + fun testJobsInvalidChildType() { + val content = """ + { + "name": "eager-nextflow-chameleon", + "workflow": { + "jobs": [1] + } + } + """.trimIndent() + val parser = factory.createParser(content) + val reader = WfFormatTaskTableReader(parser) + + assertThrows { reader.nextRow() } + + reader.close() + } + + @Test + fun testJobsValidChildType() { + val content = """ + { + "name": "eager-nextflow-chameleon", + "workflow": { + "jobs": [ + { + "name": "test" + } + ] + } + } + """.trimIndent() + val parser = factory.createParser(content) + val reader = WfFormatTaskTableReader(parser) + + assertTrue(reader.nextRow()) + assertEquals("test", reader.get(TASK_ID)) + assertFalse(reader.nextRow()) + + reader.close() + } + + @Test + fun testJobsInvalidParents() { + val content = """ + { + "name": "eager-nextflow-chameleon", + "workflow": { + "jobs": [ + { + "name": "test", + "parents": 1, + } + ] + } + } + """.trimIndent() + val parser = factory.createParser(content) + val reader = WfFormatTaskTableReader(parser) + + assertThrows { reader.nextRow() } + + reader.close() + } + + @Test + fun testJobsInvalidParentsItem() { + val content = """ + { + "name": "eager-nextflow-chameleon", + "workflow": { + "jobs": [ + { + "name": "test", + "parents": [1], + } + ] + } + } + """.trimIndent() + val parser = factory.createParser(content) + val reader = WfFormatTaskTableReader(parser) + + assertThrows { reader.nextRow() } + + reader.close() + } + + @Test + fun testJobsValidParents() { + val content = """ + { + "name": "eager-nextflow-chameleon", + "workflow": { + "jobs": [ + { + "name": "test", + "parents": ["1"] + } + ] + } + } + """.trimIndent() + val parser = factory.createParser(content) + val reader = WfFormatTaskTableReader(parser) + + assertTrue(reader.nextRow()) + assertEquals(setOf("1"), reader.get(TASK_PARENTS)) + assertFalse(reader.nextRow()) + + reader.close() + } + + @Test + fun testJobsInvalidSecondEntry() { + val content = """ + { + "workflow": { + "jobs": [ + { + "name": "test", + "parents": ["1"] + }, + "test" + ] + } + } + """.trimIndent() + val parser = factory.createParser(content) + val reader = WfFormatTaskTableReader(parser) + + assertDoesNotThrow { reader.nextRow() } + assertThrows { reader.nextRow() } + + reader.close() + } + + @Test + fun testDuplicateJobsArray() { + val content = """ + { + "name": "eager-nextflow-chameleon", + "workflow": { + "jobs": [ + { + "name": "test", + "parents": ["1"] + } + ], + "jobs": [ + { + "name": "test2", + "parents": ["test"] + } + ] + } + } + """.trimIndent() + val parser = factory.createParser(content) + val reader = WfFormatTaskTableReader(parser) + + assertTrue(reader.nextRow()) + assertTrue(reader.nextRow()) + assertEquals("test2", reader.get(TASK_ID)) + assertFalse(reader.nextRow()) + + reader.close() + } +} diff --git a/opendc-trace/opendc-trace-wfformat/src/test/kotlin/org/opendc/trace/wfformat/WfFormatTraceFormatTest.kt b/opendc-trace/opendc-trace-wfformat/src/test/kotlin/org/opendc/trace/wfformat/WfFormatTraceFormatTest.kt new file mode 100644 index 00000000..0bfc8840 --- /dev/null +++ b/opendc-trace/opendc-trace-wfformat/src/test/kotlin/org/opendc/trace/wfformat/WfFormatTraceFormatTest.kt @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.wfformat + +import org.junit.jupiter.api.Assertions.* +import org.junit.jupiter.api.Test +import org.junit.jupiter.api.assertDoesNotThrow +import org.junit.jupiter.api.assertThrows +import org.opendc.trace.* +import java.io.File +import java.net.URL + +/** + * Test suite for the [WfFormatTraceFormat] class. + */ +class WfFormatTraceFormatTest { + @Test + fun testTraceExists() { + val input = File("src/test/resources/trace.json").toURI().toURL() + val format = WfFormatTraceFormat() + assertDoesNotThrow { format.open(input) } + } + + @Test + fun testTraceDoesNotExists() { + val input = File("src/test/resources/trace.json").toURI().toURL() + val format = WfFormatTraceFormat() + assertThrows { format.open(URL(input.toString() + "help")) } + } + + @Test + fun testTables() { + val input = File("src/test/resources/trace.json").toURI().toURL() + val format = WfFormatTraceFormat() + val trace = format.open(input) + + assertEquals(listOf(TABLE_TASKS), trace.tables) + } + + @Test + fun testTableExists() { + val input = File("src/test/resources/trace.json").toURI().toURL() + val format = WfFormatTraceFormat() + val table = format.open(input).getTable(TABLE_TASKS) + + assertNotNull(table) + assertDoesNotThrow { table!!.newReader() } + } + + @Test + fun testTableDoesNotExist() { + val input = File("src/test/resources/trace.json").toURI().toURL() + val format = WfFormatTraceFormat() + val trace = format.open(input) + + assertFalse(trace.containsTable("test")) + assertNull(trace.getTable("test")) + } + + /** + * Smoke test for parsing WfCommons traces. + */ + @Test + fun testTableReader() { + val input = File("src/test/resources/trace.json").toURI().toURL() + val trace = WfFormatTraceFormat().open(input) + val reader = trace.getTable(TABLE_TASKS)!!.newReader() + + assertAll( + { assertTrue(reader.nextRow()) }, + { assertEquals("makebwaindex_mammoth_mt_krause.fasta", reader.get(TASK_ID)) }, + { assertEquals("eager-nextflow-chameleon", reader.get(TASK_WORKFLOW_ID)) }, + { assertEquals(172000, reader.get(TASK_RUNTIME).toMillis()) }, + { assertEquals(emptySet(), reader.get(TASK_PARENTS)) }, + ) + + assertAll( + { assertTrue(reader.nextRow()) }, + { assertEquals("makeseqdict_mammoth_mt_krause.fasta", reader.get(TASK_ID)) }, + { assertEquals("eager-nextflow-chameleon", reader.get(TASK_WORKFLOW_ID)) }, + { assertEquals(175000, reader.get(TASK_RUNTIME).toMillis()) }, + { assertEquals(setOf("makebwaindex_mammoth_mt_krause.fasta"), reader.get(TASK_PARENTS)) }, + ) + + reader.close() + } + + /** + * Test full iteration of the table. + */ + @Test + fun testTableReaderFull() { + val input = File("src/test/resources/trace.json").toURI().toURL() + val trace = WfFormatTraceFormat().open(input) + val reader = trace.getTable(TABLE_TASKS)!!.newReader() + + assertDoesNotThrow { + while (reader.nextRow()) { + // reader.get(TASK_ID) + } + reader.close() + } + } + + @Test + fun testTableReaderPartition() { + val input = File("src/test/resources/trace.json").toURI().toURL() + val format = WfFormatTraceFormat() + val table = format.open(input).getTable(TABLE_TASKS)!! + + assertThrows { table.newReader("test") } + } +} diff --git a/opendc-trace/opendc-trace-wfformat/src/test/resources/trace.json b/opendc-trace/opendc-trace-wfformat/src/test/resources/trace.json new file mode 100644 index 00000000..d21f024d --- /dev/null +++ b/opendc-trace/opendc-trace-wfformat/src/test/resources/trace.json @@ -0,0 +1,1342 @@ +{ + "name": "eager-nextflow-chameleon", + "description": "Instance generated with WfCommons - https://wfcommons.org", + "createdAt": "2021-09-06T03:43:31.762479", + "schemaVersion": "1.2", + "author": { + "name": "cc", + "email": "support@wfcommons.org" + }, + "wms": { + "name": "Nextflow", + "version": "21.04.3", + "url": "https://www.nextflow.io" + }, + "workflow": { + "executedAt": "20210906T034331+0000", + "makespan": 275, + "jobs": [ + { + "name": "makebwaindex_mammoth_mt_krause.fasta", + "type": "compute", + "runtime": 172.182, + "command": { + "program": "makebwaindex", + "arguments": [ + "bwa", + "index", + "Mammoth_MT_Krause.fasta", + "mkdir", + "BWAIndex", + "&&", + "mv", + "Mammoth_MT_Krause.fasta*", + "BWAIndex" + ] + }, + "parents": [], + "children": [ + "makeseqdict_mammoth_mt_krause.fasta" + ], + "files": [], + "cores": 1.0, + "id": "ID000001", + "category": "makebwaindex", + "avgCPU": 5.8, + "bytesRead": 124, + "bytesWritten": 126, + "memory": 4248 + }, + { + "name": "makeseqdict_mammoth_mt_krause.fasta", + "type": "compute", + "runtime": 175.427, + "command": { + "program": "makeseqdict", + "arguments": [ + "picard", + "-Xmx6144M", + "CreateSequenceDictionary", + "R=Mammoth_MT_Krause.fasta", + "O=\"Mammoth_MT_Krause.dict\"" + ] + }, + "parents": [ + "makebwaindex_mammoth_mt_krause.fasta" + ], + "children": [ + "makefastaindex_mammoth_mt_krause.fasta" + ], + "files": [], + "cores": 1.0, + "id": "ID000003", + "category": "makeseqdict", + "avgCPU": 83.5, + "bytesRead": 22728, + "bytesWritten": 1300, + "memory": 104416 + }, + { + "name": "makefastaindex_mammoth_mt_krause.fasta", + "type": "compute", + "runtime": 170.797, + "command": { + "program": "makefastaindex", + "arguments": [ + "samtools", + "faidx", + "Mammoth_MT_Krause.fasta" + ] + }, + "parents": [ + "makeseqdict_mammoth_mt_krause.fasta" + ], + "children": [ + "output_documentation" + ], + "files": [], + "cores": 1.0, + "id": "ID000002", + "category": "makefastaindex", + "avgCPU": 23.8, + "bytesRead": 66, + "bytesWritten": 4, + "memory": 6096 + }, + { + "name": "output_documentation", + "type": "compute", + "runtime": 173.479, + "command": { + "program": "output_documentation", + "arguments": [ + "markdown_to_html.py", + "output.md", + "-o", + "results_description.html" + ] + }, + "parents": [ + "makefastaindex_mammoth_mt_krause.fasta" + ], + "children": [ + "get_software_versions" + ], + "files": [], + "cores": 1.0, + "id": "ID000005", + "category": "output_documentation", + "avgCPU": 84.0, + "bytesRead": 8222, + "bytesWritten": 15165, + "memory": 11488 + }, + { + "name": "get_software_versions", + "type": "compute", + "runtime": 183.445, + "command": { + "program": "get_software_versions", + "arguments": [ + "echo", + "2.3.5", + "&>", + "v_pipeline.txt", + "echo", + "21.04.3", + "&>", + "v_nextflow.txt", + "fastqc", + "--version", + "&>", + "v_fastqc.txt", + "2>&1", + "||", + "true", + "AdapterRemoval", + "--version", + "&>", + "v_adapterremoval.txt", + "2>&1", + "||", + "true", + "fastp", + "--version", + "&>", + "v_fastp.txt", + "2>&1", + "||", + "true", + "bwa", + "&>", + "v_bwa.txt", + "2>&1", + "||", + "true", + "circulargenerator", + "--help", + "|", + "head", + "-n", + "1", + "&>", + "v_circulargenerator.txt", + "2>&1", + "||", + "true", + "samtools", + "--version", + "&>", + "v_samtools.txt", + "2>&1", + "||", + "true", + "dedup", + "-v", + "&>", + "v_dedup.txt", + "2>&1", + "||", + "true", + "##", + "bioconda", + "recipe", + "of", + "picard", + "is", + "incorrectly", + "set", + "up", + "and", + "extra", + "warning", + "made", + "with", + "stderr,", + "this", + "ugly", + "command", + "ensures", + "only", + "version", + "exported", + "(", + "exec", + "7>&1", + "picard", + "MarkDuplicates", + "--version", + "2>&1", + ">&7", + "|", + "grep", + "-v", + "/", + ">&2", + ")", + "2>", + "v_markduplicates.txt", + "||", + "true", + "qualimap", + "--version", + "&>", + "v_qualimap.txt", + "2>&1", + "||", + "true", + "preseq", + "&>", + "v_preseq.txt", + "2>&1", + "||", + "true", + "gatk", + "--version", + "2>&1", + "|", + "head", + "-n", + "1", + ">", + "v_gatk.txt", + "2>&1", + "||", + "true", + "gatk3", + "--version", + "2>&1", + ">", + "v_gatk3.txt", + "2>&1", + "||", + "true", + "freebayes", + "--version", + "&>", + "v_freebayes.txt", + "2>&1", + "||", + "true", + "bedtools", + "--version", + "&>", + "v_bedtools.txt", + "2>&1", + "||", + "true", + "damageprofiler", + "--version", + "&>", + "v_damageprofiler.txt", + "2>&1", + "||", + "true", + "bam", + "--version", + "&>", + "v_bamutil.txt", + "2>&1", + "||", + "true", + "pmdtools", + "--version", + "&>", + "v_pmdtools.txt", + "2>&1", + "||", + "true", + "angsd", + "-h", + "|&", + "head", + "-n", + "1", + "|", + "cut", + "-d", + "-f3-4", + "&>", + "v_angsd.txt", + "2>&1", + "||", + "true", + "multivcfanalyzer", + "--help", + "|", + "head", + "-n", + "1", + "&>", + "v_multivcfanalyzer.txt", + "2>&1", + "||", + "true", + "malt-run", + "--help", + "|&", + "tail", + "-n", + "3", + "|", + "head", + "-n", + "1", + "|", + "cut", + "-f", + "2", + "-d(", + "|", + "cut", + "-f", + "1", + "-d", + ",", + "&>", + "v_malt.txt", + "2>&1", + "||", + "true", + "MaltExtract", + "--help", + "|", + "head", + "-n", + "2", + "|", + "tail", + "-n", + "1", + "&>", + "v_maltextract.txt", + "2>&1", + "||", + "true", + "multiqc", + "--version", + "&>", + "v_multiqc.txt", + "2>&1", + "||", + "true", + "vcf2genome", + "-h", + "|&", + "head", + "-n", + "1", + "&>", + "v_vcf2genome.txt", + "||", + "true", + "mtnucratio", + "--help", + "&>", + "v_mtnucratiocalculator.txt", + "||", + "true", + "sexdeterrmine", + "--version", + "&>", + "v_sexdeterrmine.txt", + "||", + "true", + "kraken2", + "--version", + "|", + "head", + "-n", + "1", + "&>", + "v_kraken.txt", + "||", + "true", + "endorS.py", + "--version", + "&>", + "v_endorSpy.txt", + "||", + "true", + "pileupCaller", + "--version", + "&>", + "v_sequencetools.txt", + "2>&1", + "||", + "true", + "bowtie2", + "--version", + "|", + "grep", + "-a", + "bowtie2-.*", + "-fdebug", + ">", + "v_bowtie2.txt", + "||", + "true", + "eigenstrat_snp_coverage", + "--version", + "|", + "cut", + "-d", + "-f2", + ">v_eigenstrat_snp_coverage.txt", + "||", + "true", + "mapDamage", + "--version", + ">", + "v_mapdamage.txt", + "||", + "true", + "bbduk.sh", + "|", + "grep", + "Last", + "modified", + "|", + "cut", + "-d", + "-f", + "3-99", + ">", + "v_bbduk.txt", + "||", + "true", + "scrape_software_versions.py", + "&>", + "software_versions_mqc.yaml" + ] + }, + "parents": [ + "output_documentation" + ], + "children": [ + "fastqc_jk2782_l1", + "fastqc_jk2802_l2" + ], + "files": [], + "cores": 2.0, + "id": "ID000006", + "category": "get_software_versions", + "avgCPU": 147.8, + "bytesRead": 172760, + "bytesWritten": 1048, + "memory": 387324 + }, + { + "name": "fastqc_jk2782_l1", + "type": "compute", + "runtime": 175.205, + "command": { + "program": "fastqc", + "arguments": [ + "fastqc", + "-t", + "2", + "-q", + "JK2782_TGGCCGATCAACGA_L008_R1_001.fastq.gz.tengrand.fq.gz", + "JK2782_TGGCCGATCAACGA_L008_R2_001.fastq.gz.tengrand.fq.gz", + "rename", + "s/_fastqc.zip$/_raw_fastqc.zip/", + "*_fastqc.zip", + "rename", + "s/_fastqc.html$/_raw_fastqc.html/", + "*_fastqc.html" + ] + }, + "parents": [ + "get_software_versions" + ], + "children": [ + "adapter_removal_jk2782_l1", + "adapter_removal_jk2802_l2" + ], + "files": [], + "cores": 2.0, + "id": "ID000007", + "category": "fastqc", + "avgCPU": 161.8, + "bytesRead": 35981, + "bytesWritten": 3967, + "memory": 270124 + }, + { + "name": "adapter_removal_jk2782_l1", + "type": "compute", + "runtime": 172.643, + "command": { + "program": "adapter_removal", + "arguments": [ + "mkdir", + "-p", + "output", + "AdapterRemoval", + "--file1", + "JK2782_TGGCCGATCAACGA_L008_R1_001.fastq.gz.tengrand.fq.gz", + "--file2", + "JK2782_TGGCCGATCAACGA_L008_R2_001.fastq.gz.tengrand.fq.gz", + "--basename", + "JK2782_TGGCCGATCAACGA_L008_R1_001.fastq.gz.tengrand.fq_L1.pe", + "--gzip", + "--threads", + "2", + "--qualitymax", + "41", + "--collapse", + "--trimns", + "--trimqualities", + "--adapter1", + "AGATCGGAAGAGCACACGTCTGAACTCCAGTCAC", + "--adapter2", + "AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTA", + "--minlength", + "30", + "--minquality", + "20", + "--minadapteroverlap", + "1", + "cat", + "*.collapsed.gz", + "*.collapsed.truncated.gz", + "*.singleton.truncated.gz", + "*.pair1.truncated.gz", + "*.pair2.truncated.gz", + ">", + "output/JK2782_TGGCCGATCAACGA_L008_R1_001.fastq.gz.tengrand.fq_L1.pe.combined.tmp.fq.gz", + "mv", + "*.settings", + "output/", + "##", + "Add", + "R_", + "and", + "L_", + "for", + "unmerged", + "reads", + "for", + "DeDup", + "compatibility", + "AdapterRemovalFixPrefix", + "-Xmx4g", + "output/JK2782_TGGCCGATCAACGA_L008_R1_001.fastq.gz.tengrand.fq_L1.pe.combined.tmp.fq.gz", + "|", + "pigz", + "-p", + "1", + ">", + "output/JK2782_TGGCCGATCAACGA_L008_R1_001.fastq.gz.tengrand.fq_L1.pe.combined.fq.gz" + ] + }, + "parents": [ + "fastqc_jk2782_l1", + "fastqc_jk2802_l2" + ], + "children": [ + "fastqc_after_clipping_jk2782_l1", + "fastqc_after_clipping_jk2802_l2" + ], + "files": [], + "cores": 2.0, + "id": "ID000008", + "category": "adapter_removal", + "avgCPU": 160.9, + "bytesRead": 17357, + "bytesWritten": 4405, + "memory": 79308 + }, + { + "name": "fastqc_jk2802_l2", + "type": "compute", + "runtime": 177.338, + "command": { + "program": "fastqc", + "arguments": [ + "fastqc", + "-q", + "JK2802_AGAATAACCTACCA_L008_R1_001.fastq.gz.tengrand.fq.gz", + "rename", + "s/_fastqc.zip$/_raw_fastqc.zip/", + "*_fastqc.zip", + "rename", + "s/_fastqc.html$/_raw_fastqc.html/", + "*_fastqc.html" + ] + }, + "parents": [ + "get_software_versions" + ], + "children": [ + "adapter_removal_jk2782_l1", + "adapter_removal_jk2802_l2" + ], + "files": [], + "cores": 2.0, + "id": "ID000009", + "category": "fastqc", + "avgCPU": 120.1, + "bytesRead": 24457, + "bytesWritten": 2181, + "memory": 181060 + }, + { + "name": "adapter_removal_jk2802_l2", + "type": "compute", + "runtime": 174.313, + "command": { + "program": "adapter_removal", + "arguments": [ + "mkdir", + "-p", + "output", + "AdapterRemoval", + "--file1", + "JK2802_AGAATAACCTACCA_L008_R1_001.fastq.gz.tengrand.fq.gz", + "--basename", + "JK2802_AGAATAACCTACCA_L008_R1_001.fastq.gz.tengrand.fq_L2.se", + "--gzip", + "--threads", + "2", + "--qualitymax", + "41", + "--trimns", + "--trimqualities", + "--adapter1", + "AGATCGGAAGAGCACACGTCTGAACTCCAGTCAC", + "--adapter2", + "AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTA", + "--minlength", + "30", + "--minquality", + "20", + "--minadapteroverlap", + "1", + "mv", + "*.settings", + "*.se.truncated.gz", + "output/" + ] + }, + "parents": [ + "fastqc_jk2782_l1", + "fastqc_jk2802_l2" + ], + "children": [ + "fastqc_after_clipping_jk2782_l1", + "fastqc_after_clipping_jk2802_l2" + ], + "files": [], + "cores": 2.0, + "id": "ID000010", + "category": "adapter_removal", + "avgCPU": 106.5, + "bytesRead": 683, + "bytesWritten": 897, + "memory": 12136 + }, + { + "name": "fastqc_after_clipping_jk2782_l1", + "type": "compute", + "runtime": 15.371, + "command": { + "program": "fastqc_after_clipping", + "arguments": [ + "fastqc", + "-t", + "2", + "-q", + "JK2782_TGGCCGATCAACGA_L008_R1_001.fastq.gz.tengrand.fq_L1.pe.combined.fq.gz" + ] + }, + "parents": [ + "adapter_removal_jk2782_l1", + "adapter_removal_jk2802_l2" + ], + "children": [ + "bwa_jk2802", + "bwa_jk2782" + ], + "files": [], + "cores": 2.0, + "id": "ID000013", + "category": "fastqc_after_clipping", + "avgCPU": 133.3, + "bytesRead": 23788, + "bytesWritten": 1998, + "memory": 215020 + }, + { + "name": "fastqc_after_clipping_jk2802_l2", + "type": "compute", + "runtime": 15.272, + "command": { + "program": "fastqc_after_clipping", + "arguments": [ + "fastqc", + "-t", + "2", + "-q", + "JK2802_AGAATAACCTACCA_L008_R1_001.fastq.gz.tengrand.fq_L2.se.truncated.gz" + ] + }, + "parents": [ + "adapter_removal_jk2782_l1", + "adapter_removal_jk2802_l2" + ], + "children": [ + "bwa_jk2802", + "bwa_jk2782" + ], + "files": [], + "cores": 2.0, + "id": "ID000014", + "category": "fastqc_after_clipping", + "avgCPU": 124.1, + "bytesRead": 23882, + "bytesWritten": 2143, + "memory": 213064 + }, + { + "name": "bwa_jk2802", + "type": "compute", + "runtime": 9.566, + "command": { + "program": "bwa", + "arguments": [ + "bwa", + "aln", + "-t", + "2", + "BWAIndex/Mammoth_MT_Krause.fasta", + "JK2802_AGAATAACCTACCA_L008_R1_001.fastq.gz.tengrand.fq_L2.se.truncated.gz", + "-n", + "0.04", + "-l", + "1024", + "-k", + "2", + "-o", + "1", + "-f", + "JK2802.sai", + "bwa", + "samse", + "-r", + "\"@RGtID:ILLUMINA-JK2802tSM:JK2802tPL:illuminatPU:ILLUMINA-JK2802-SE\"", + "BWAIndex/Mammoth_MT_Krause.fasta", + "JK2802.sai", + "JK2802_AGAATAACCTACCA_L008_R1_001.fastq.gz.tengrand.fq_L2.se.truncated.gz", + "|", + "samtools", + "sort", + "-@", + "1", + "-O", + "bam", + "-", + ">", + "\"JK2802\"_\"SE\".mapped.bam", + "samtools", + "index", + "\"JK2802\"_\"SE\".mapped.bam" + ] + }, + "parents": [ + "fastqc_after_clipping_jk2782_l1", + "fastqc_after_clipping_jk2802_l2" + ], + "children": [ + "samtools_flagstat_jk2782", + "samtools_flagstat_jk2802" + ], + "files": [], + "cores": 2.0, + "id": "ID000016", + "category": "bwa", + "avgCPU": 15.7, + "bytesRead": 3774, + "bytesWritten": 3367, + "memory": 10628 + }, + { + "name": "bwa_jk2782", + "type": "compute", + "runtime": 9.652, + "command": { + "program": "bwa", + "arguments": [ + "bwa", + "aln", + "-t", + "2", + "BWAIndex/Mammoth_MT_Krause.fasta", + "JK2782_TGGCCGATCAACGA_L008_R1_001.fastq.gz.tengrand.fq_L1.pe.combined.fq.gz", + "-n", + "0.04", + "-l", + "1024", + "-k", + "2", + "-o", + "1", + "-f", + "JK2782.sai", + "bwa", + "samse", + "-r", + "\"@RGtID:ILLUMINA-JK2782tSM:JK2782tPL:illuminatPU:ILLUMINA-JK2782-PE\"", + "BWAIndex/Mammoth_MT_Krause.fasta", + "JK2782.sai", + "JK2782_TGGCCGATCAACGA_L008_R1_001.fastq.gz.tengrand.fq_L1.pe.combined.fq.gz", + "|", + "samtools", + "sort", + "-@", + "1", + "-O", + "bam", + "-", + ">", + "\"JK2782\"_\"PE\".mapped.bam", + "samtools", + "index", + "\"JK2782\"_\"PE\".mapped.bam" + ] + }, + "parents": [ + "fastqc_after_clipping_jk2782_l1", + "fastqc_after_clipping_jk2802_l2" + ], + "children": [ + "samtools_flagstat_jk2782", + "samtools_flagstat_jk2802" + ], + "files": [], + "cores": 2.0, + "id": "ID000015", + "category": "bwa", + "avgCPU": 69.8, + "bytesRead": 3705, + "bytesWritten": 3355, + "memory": 12876 + }, + { + "name": "samtools_flagstat_jk2782", + "type": "compute", + "runtime": 13.011, + "command": { + "program": "samtools_flagstat", + "arguments": [ + "samtools", + "flagstat", + "JK2782_PE.mapped.bam", + ">", + "JK2782_flagstat.stats" + ] + }, + "parents": [ + "bwa_jk2802", + "bwa_jk2782" + ], + "children": [ + "markduplicates_jk2782", + "markduplicates_jk2802" + ], + "files": [], + "cores": 1.0, + "id": "ID000026", + "category": "samtools_flagstat", + "avgCPU": 30.1, + "bytesRead": 478, + "bytesWritten": 5, + "memory": 6468 + }, + { + "name": "samtools_flagstat_jk2802", + "type": "compute", + "runtime": 13.129, + "command": { + "program": "samtools_flagstat", + "arguments": [ + "samtools", + "flagstat", + "JK2802_SE.mapped.bam", + ">", + "JK2802_flagstat.stats" + ] + }, + "parents": [ + "bwa_jk2802", + "bwa_jk2782" + ], + "children": [ + "markduplicates_jk2782", + "markduplicates_jk2802" + ], + "files": [], + "cores": 1.0, + "id": "ID000024", + "category": "samtools_flagstat", + "avgCPU": 118.5, + "bytesRead": 551, + "bytesWritten": 5 + }, + { + "name": "markduplicates_jk2782", + "type": "compute", + "runtime": 22.655, + "command": { + "program": "markduplicates", + "arguments": [ + "mv", + "JK2782_PE.mapped.bam", + "JK2782.bam", + "picard", + "-Xmx4096M", + "MarkDuplicates", + "INPUT=JK2782.bam", + "OUTPUT=JK2782_rmdup.bam", + "REMOVE_DUPLICATES=TRUE", + "AS=TRUE", + "METRICS_FILE=\"JK2782_rmdup.metrics\"", + "VALIDATION_STRINGENCY=SILENT", + "samtools", + "index", + "JK2782_rmdup.bam" + ] + }, + "parents": [ + "samtools_flagstat_jk2782", + "samtools_flagstat_jk2802" + ], + "children": [ + "preseq_jk2782", + "preseq_jk2802" + ], + "files": [], + "cores": 2.0, + "id": "ID000021", + "category": "markduplicates", + "avgCPU": 173.6, + "bytesRead": 24055, + "bytesWritten": 2319, + "memory": 1400048 + }, + { + "name": "markduplicates_jk2802", + "type": "compute", + "runtime": 21.545, + "command": { + "program": "markduplicates", + "arguments": [ + "mv", + "JK2802_SE.mapped.bam", + "JK2802.bam", + "picard", + "-Xmx4096M", + "MarkDuplicates", + "INPUT=JK2802.bam", + "OUTPUT=JK2802_rmdup.bam", + "REMOVE_DUPLICATES=TRUE", + "AS=TRUE", + "METRICS_FILE=\"JK2802_rmdup.metrics\"", + "VALIDATION_STRINGENCY=SILENT", + "samtools", + "index", + "JK2802_rmdup.bam" + ] + }, + "parents": [ + "samtools_flagstat_jk2782", + "samtools_flagstat_jk2802" + ], + "children": [ + "preseq_jk2782", + "preseq_jk2802" + ], + "files": [], + "cores": 2.0, + "id": "ID000020", + "category": "markduplicates", + "avgCPU": 182.6, + "bytesRead": 24242, + "bytesWritten": 2466, + "memory": 1404624 + }, + { + "name": "preseq_jk2782", + "type": "compute", + "runtime": 12.299, + "command": { + "program": "preseq", + "arguments": [ + "preseq", + "c_curve", + "-s", + "1000", + "-o", + "JK2782_PE.mapped.ccurve", + "-B", + "JK2782_PE.mapped.bam" + ] + }, + "parents": [ + "markduplicates_jk2782", + "markduplicates_jk2802" + ], + "children": [ + "endorspy_jk2782", + "endorspy_jk2802" + ], + "files": [], + "cores": 1.0, + "id": "ID000030", + "category": "preseq", + "avgCPU": 81.9, + "bytesRead": 473, + "bytesWritten": 4, + "memory": 12032 + }, + { + "name": "preseq_jk2802", + "type": "compute", + "runtime": 10.188, + "command": { + "program": "preseq", + "arguments": [ + "preseq", + "c_curve", + "-s", + "1000", + "-o", + "JK2802_SE.mapped.ccurve", + "-B", + "JK2802_SE.mapped.bam" + ] + }, + "parents": [ + "markduplicates_jk2782", + "markduplicates_jk2802" + ], + "children": [ + "endorspy_jk2782", + "endorspy_jk2802" + ], + "files": [], + "cores": 1.0, + "id": "ID000027", + "category": "preseq", + "avgCPU": 77.6, + "bytesRead": 548, + "bytesWritten": 4, + "memory": 11972 + }, + { + "name": "endorspy_jk2782", + "type": "compute", + "runtime": 7.537, + "command": { + "program": "endorspy", + "arguments": [ + "endorS.py", + "-o", + "json", + "-n", + "JK2782", + "JK2782_flagstat.stats" + ] + }, + "parents": [ + "preseq_jk2782", + "preseq_jk2802" + ], + "children": [ + "damageprofiler_jk2802", + "damageprofiler_jk2782" + ], + "files": [], + "cores": 1.0, + "id": "ID000031", + "category": "endorspy", + "avgCPU": 44.7, + "bytesRead": 623, + "bytesWritten": 4, + "memory": 12264 + }, + { + "name": "endorspy_jk2802", + "type": "compute", + "runtime": 8.0, + "command": { + "program": "endorspy", + "arguments": [ + "endorS.py", + "-o", + "json", + "-n", + "JK2802", + "JK2802_flagstat.stats" + ] + }, + "parents": [ + "preseq_jk2782", + "preseq_jk2802" + ], + "children": [ + "damageprofiler_jk2802", + "damageprofiler_jk2782" + ], + "files": [], + "cores": 1.0, + "id": "ID000032", + "category": "endorspy", + "avgCPU": 54.0, + "bytesRead": 623, + "bytesWritten": 4, + "memory": 12224 + }, + { + "name": "damageprofiler_jk2802", + "type": "compute", + "runtime": 18.596, + "command": { + "program": "damageprofiler", + "arguments": [ + "damageprofiler", + "-Xmx4g", + "-i", + "JK2802_rmdup.bam", + "-r", + "Mammoth_MT_Krause.fasta", + "-l", + "100", + "-t", + "15", + "-o", + ".", + "-yaxis_damageplot", + "0.30" + ] + }, + "parents": [ + "endorspy_jk2782", + "endorspy_jk2802" + ], + "children": [ + "qualimap_jk2802", + "qualimap_jk2782" + ], + "files": [], + "cores": 1.0, + "id": "ID000033", + "category": "damageprofiler", + "avgCPU": 88.6, + "bytesRead": 25744, + "bytesWritten": 391, + "memory": 242940 + }, + { + "name": "damageprofiler_jk2782", + "type": "compute", + "runtime": 16.736, + "command": { + "program": "damageprofiler", + "arguments": [ + "damageprofiler", + "-Xmx4g", + "-i", + "JK2782_rmdup.bam", + "-r", + "Mammoth_MT_Krause.fasta", + "-l", + "100", + "-t", + "15", + "-o", + ".", + "-yaxis_damageplot", + "0.30" + ] + }, + "parents": [ + "endorspy_jk2782", + "endorspy_jk2802" + ], + "children": [ + "qualimap_jk2802", + "qualimap_jk2782" + ], + "files": [], + "cores": 1.0, + "id": "ID000036", + "category": "damageprofiler", + "avgCPU": 88.3, + "bytesRead": 25661, + "bytesWritten": 327, + "memory": 198276 + }, + { + "name": "qualimap_jk2802", + "type": "compute", + "runtime": 15.368, + "command": { + "program": "qualimap", + "arguments": [ + "qualimap", + "bamqc", + "-bam", + "JK2802_rmdup.bam", + "-nt", + "2", + "-outdir", + ".", + "-outformat", + "\"HTML\"", + "--java-mem-size=4G" + ] + }, + "parents": [ + "damageprofiler_jk2802", + "damageprofiler_jk2782" + ], + "children": [ + "multiqc_1" + ], + "files": [], + "cores": 2.0, + "id": "ID000053", + "category": "qualimap", + "avgCPU": 177.7, + "bytesRead": 35038, + "bytesWritten": 1712, + "memory": 209440 + }, + { + "name": "qualimap_jk2782", + "type": "compute", + "runtime": 14.223, + "command": { + "program": "qualimap", + "arguments": [ + "qualimap", + "bamqc", + "-bam", + "JK2782_rmdup.bam", + "-nt", + "2", + "-outdir", + ".", + "-outformat", + "\"HTML\"", + "--java-mem-size=4G" + ] + }, + "parents": [ + "damageprofiler_jk2802", + "damageprofiler_jk2782" + ], + "children": [ + "multiqc_1" + ], + "files": [], + "cores": 2.0, + "id": "ID000054", + "category": "qualimap", + "avgCPU": 181.9, + "bytesRead": 34954, + "bytesWritten": 1937, + "memory": 232196 + }, + { + "name": "multiqc_1", + "type": "compute", + "runtime": 46.376, + "command": { + "program": "multiqc", + "arguments": [ + "multiqc", + "-f", + "multiqc_config.yaml", + "." + ] + }, + "parents": [ + "qualimap_jk2802", + "qualimap_jk2782" + ], + "children": [], + "files": [], + "cores": 1.0, + "id": "ID000056", + "category": "multiqc", + "avgCPU": 93.0, + "bytesRead": 1215169, + "bytesWritten": 22599, + "memory": 139496 + } + ] + } +} diff --git a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTableReader.kt b/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTableReader.kt index b6789542..5e2463f8 100644 --- a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTableReader.kt +++ b/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTableReader.kt @@ -25,6 +25,8 @@ package org.opendc.trace.wtf import org.apache.avro.generic.GenericRecord import org.opendc.trace.* import org.opendc.trace.util.parquet.LocalParquetReader +import java.time.Duration +import java.time.Instant /** * A [TableReader] implementation for the WTF format. @@ -61,14 +63,14 @@ internal class WtfTaskTableReader(private val reader: LocalParquetReader record["id"] - TASK_WORKFLOW_ID -> record["workflow_id"] - TASK_SUBMIT_TIME -> record["ts_submit"] - TASK_WAIT_TIME -> record["wait_time"] - TASK_RUNTIME -> record["runtime"] + TASK_ID -> (record["id"] as Long).toString() + TASK_WORKFLOW_ID -> (record["workflow_id"] as Long).toString() + TASK_SUBMIT_TIME -> Instant.ofEpochMilli(record["ts_submit"] as Long) + TASK_WAIT_TIME -> Duration.ofMillis(record["wait_time"] as Long) + TASK_RUNTIME -> Duration.ofMillis(record["runtime"] as Long) TASK_REQ_NCPUS -> (record["resource_amount_requested"] as Double).toInt() - TASK_PARENTS -> (record["parents"] as ArrayList).map { it["item"] as Long }.toSet() - TASK_CHILDREN -> (record["children"] as ArrayList).map { it["item"] as Long }.toSet() + TASK_PARENTS -> (record["parents"] as ArrayList).map { it["item"].toString() }.toSet() + TASK_CHILDREN -> (record["children"] as ArrayList).map { it["item"].toString() }.toSet() TASK_GROUP_ID -> record["group_id"] TASK_USER_ID -> record["user_id"] else -> throw IllegalArgumentException("Invalid column") @@ -94,16 +96,7 @@ internal class WtfTaskTableReader(private val reader: LocalParquetReader): Long { - val record = checkNotNull(record) { "Reader in invalid state" } - - return when (column) { - TASK_ID -> record["id"] as Long - TASK_WORKFLOW_ID -> record["workflow_id"] as Long - TASK_SUBMIT_TIME -> record["ts_submit"] as Long - TASK_WAIT_TIME -> record["wait_time"] as Long - TASK_RUNTIME -> record["runtime"] as Long - else -> throw IllegalArgumentException("Invalid column") - } + throw IllegalArgumentException("Invalid column") } override fun getDouble(column: TableColumn): Double { diff --git a/opendc-trace/opendc-trace-wtf/src/test/kotlin/org/opendc/trace/wtf/WtfTraceFormatTest.kt b/opendc-trace/opendc-trace-wtf/src/test/kotlin/org/opendc/trace/wtf/WtfTraceFormatTest.kt index a05a523e..b155f265 100644 --- a/opendc-trace/opendc-trace-wtf/src/test/kotlin/org/opendc/trace/wtf/WtfTraceFormatTest.kt +++ b/opendc-trace/opendc-trace-wtf/src/test/kotlin/org/opendc/trace/wtf/WtfTraceFormatTest.kt @@ -28,6 +28,8 @@ import org.junit.jupiter.api.assertThrows import org.opendc.trace.* import java.io.File import java.net.URL +import java.time.Duration +import java.time.Instant /** * Test suite for the [WtfTraceFormat] class. @@ -91,20 +93,20 @@ class WtfTraceFormatTest { assertAll( { assertTrue(reader.nextRow()) }, - { assertEquals(362334516345962206, reader.getLong(TASK_ID)) }, - { assertEquals(1078341553348591493, reader.getLong(TASK_WORKFLOW_ID)) }, - { assertEquals(245604, reader.getLong(TASK_SUBMIT_TIME)) }, - { assertEquals(8163, reader.getLong(TASK_RUNTIME)) }, - { assertEquals(setOf(584055316413447529, 133113685133695608, 1008582348422865408), reader.get(TASK_PARENTS)) }, + { assertEquals("362334516345962206", reader.get(TASK_ID)) }, + { assertEquals("1078341553348591493", reader.get(TASK_WORKFLOW_ID)) }, + { assertEquals(Instant.ofEpochMilli(245604), reader.get(TASK_SUBMIT_TIME)) }, + { assertEquals(Duration.ofMillis(8163), reader.get(TASK_RUNTIME)) }, + { assertEquals(setOf("584055316413447529", "133113685133695608", "1008582348422865408"), reader.get(TASK_PARENTS)) }, ) assertAll( { assertTrue(reader.nextRow()) }, - { assertEquals(502010169100446658, reader.getLong(TASK_ID)) }, - { assertEquals(1078341553348591493, reader.getLong(TASK_WORKFLOW_ID)) }, - { assertEquals(251325, reader.getLong(TASK_SUBMIT_TIME)) }, - { assertEquals(8216, reader.getLong(TASK_RUNTIME)) }, - { assertEquals(setOf(584055316413447529, 133113685133695608, 1008582348422865408), reader.get(TASK_PARENTS)) }, + { assertEquals("502010169100446658", reader.get(TASK_ID)) }, + { assertEquals("1078341553348591493", reader.get(TASK_WORKFLOW_ID)) }, + { assertEquals(Instant.ofEpochMilli(251325), reader.get(TASK_SUBMIT_TIME)) }, + { assertEquals(Duration.ofMillis(8216), reader.get(TASK_RUNTIME)) }, + { assertEquals(setOf("584055316413447529", "133113685133695608", "1008582348422865408"), reader.get(TASK_PARENTS)) }, ) reader.close() -- cgit v1.2.3 From 49dd8377c8bfde1e64e411c6a6f921c768b9b53b Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Sun, 12 Sep 2021 11:22:07 +0200 Subject: refactor(trace): Add API for accessing available table columns This change adds a new API to the Table interface for accessing the table columns that the table supports. This does not necessarily mean that the column will have a value for every row, but that the table format has defined this particular column. --- .../src/main/kotlin/org/opendc/trace/Table.kt | 4 +-- .../trace/bitbrains/BitbrainsResourceStateTable.kt | 31 ++++++++++------------ .../kotlin/org/opendc/trace/gwf/GwfTaskTable.kt | 21 +++++++-------- .../kotlin/org/opendc/trace/swf/SwfTaskTable.kt | 27 +++++++++---------- .../org/opendc/trace/wfformat/WfFormatTaskTable.kt | 19 ++++++------- .../kotlin/org/opendc/trace/wtf/WtfTaskTable.kt | 27 +++++++++---------- 6 files changed, 57 insertions(+), 72 deletions(-) (limited to 'opendc-trace') diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Table.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Table.kt index 11e5d6b7..6aca2051 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Table.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Table.kt @@ -37,9 +37,9 @@ public interface Table { public val isSynthetic: Boolean /** - * Determine whether the specified [column] is supported by this table. + * The list of columns supported in this table. */ - public fun isSupported(column: TableColumn<*>): Boolean + public val columns: List> /** * Open a [TableReader] for this table. diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt index 846d5c8a..883bf8f4 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt @@ -47,23 +47,20 @@ internal class BitbrainsResourceStateTable(private val factory: CsvFactory, priv override val isSynthetic: Boolean = false - override fun isSupported(column: TableColumn<*>): Boolean { - return when (column) { - RESOURCE_STATE_ID -> true - RESOURCE_STATE_TIMESTAMP -> true - RESOURCE_STATE_NCPUS -> true - RESOURCE_STATE_CPU_CAPACITY -> true - RESOURCE_STATE_CPU_USAGE -> true - RESOURCE_STATE_CPU_USAGE_PCT -> true - RESOURCE_STATE_MEM_CAPACITY -> true - RESOURCE_STATE_MEM_USAGE -> true - RESOURCE_STATE_DISK_READ -> true - RESOURCE_STATE_DISK_WRITE -> true - RESOURCE_STATE_NET_RX -> true - RESOURCE_STATE_NET_TX -> true - else -> false - } - } + override val columns: List> = listOf( + RESOURCE_STATE_ID, + RESOURCE_STATE_TIMESTAMP, + RESOURCE_STATE_NCPUS, + RESOURCE_STATE_CPU_CAPACITY, + RESOURCE_STATE_CPU_USAGE, + RESOURCE_STATE_CPU_USAGE_PCT, + RESOURCE_STATE_MEM_CAPACITY, + RESOURCE_STATE_MEM_USAGE, + RESOURCE_STATE_DISK_READ, + RESOURCE_STATE_DISK_WRITE, + RESOURCE_STATE_NET_RX, + RESOURCE_STATE_NET_TX, + ) override fun newReader(): TableReader { val it = partitions.iterator() diff --git a/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTable.kt b/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTable.kt index 80a99d10..fd7bd068 100644 --- a/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTable.kt +++ b/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTable.kt @@ -34,18 +34,15 @@ internal class GwfTaskTable(private val factory: CsvFactory, private val url: UR override val isSynthetic: Boolean = false - override fun isSupported(column: TableColumn<*>): Boolean { - return when (column) { - TASK_WORKFLOW_ID -> true - TASK_ID -> true - TASK_SUBMIT_TIME -> true - TASK_RUNTIME -> true - TASK_REQ_NCPUS -> true - TASK_ALLOC_NCPUS -> true - TASK_PARENTS -> true - else -> false - } - } + override val columns: List> = listOf( + TASK_WORKFLOW_ID, + TASK_ID, + TASK_SUBMIT_TIME, + TASK_RUNTIME, + TASK_REQ_NCPUS, + TASK_ALLOC_NCPUS, + TASK_PARENTS + ) override fun newReader(): TableReader { return GwfTaskTableReader(factory.createParser(url)) diff --git a/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTable.kt b/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTable.kt index 12a51a2f..7ec0d607 100644 --- a/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTable.kt +++ b/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTable.kt @@ -34,21 +34,18 @@ internal class SwfTaskTable(private val path: Path) : Table { override val isSynthetic: Boolean = false - override fun isSupported(column: TableColumn<*>): Boolean { - return when (column) { - TASK_ID -> true - TASK_SUBMIT_TIME -> true - TASK_WAIT_TIME -> true - TASK_RUNTIME -> true - TASK_REQ_NCPUS -> true - TASK_ALLOC_NCPUS -> true - TASK_PARENTS -> true - TASK_STATUS -> true - TASK_GROUP_ID -> true - TASK_USER_ID -> true - else -> false - } - } + override val columns: List> = listOf( + TASK_ID, + TASK_SUBMIT_TIME, + TASK_WAIT_TIME, + TASK_RUNTIME, + TASK_REQ_NCPUS, + TASK_ALLOC_NCPUS, + TASK_PARENTS, + TASK_STATUS, + TASK_GROUP_ID, + TASK_USER_ID + ) override fun newReader(): TableReader { val reader = path.bufferedReader() diff --git a/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTable.kt b/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTable.kt index 907bf7ff..7b7f979f 100644 --- a/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTable.kt +++ b/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTable.kt @@ -34,17 +34,14 @@ internal class WfFormatTaskTable(private val factory: JsonFactory, private val p override val isSynthetic: Boolean = false - override fun isSupported(column: TableColumn<*>): Boolean { - return when (column) { - TASK_ID -> true - TASK_WORKFLOW_ID -> true - TASK_RUNTIME -> true - TASK_REQ_NCPUS -> true - TASK_PARENTS -> true - TASK_CHILDREN -> true - else -> false - } - } + override val columns: List> = listOf( + TASK_ID, + TASK_WORKFLOW_ID, + TASK_RUNTIME, + TASK_REQ_NCPUS, + TASK_PARENTS, + TASK_CHILDREN + ) override fun newReader(): TableReader { val parser = factory.createParser(path.toFile()) diff --git a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTable.kt b/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTable.kt index be26f540..74202718 100644 --- a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTable.kt +++ b/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTable.kt @@ -35,21 +35,18 @@ internal class WtfTaskTable(private val path: Path) : Table { override val isSynthetic: Boolean = false - override fun isSupported(column: TableColumn<*>): Boolean { - return when (column) { - TASK_ID -> true - TASK_WORKFLOW_ID -> true - TASK_SUBMIT_TIME -> true - TASK_WAIT_TIME -> true - TASK_RUNTIME -> true - TASK_REQ_NCPUS -> true - TASK_PARENTS -> true - TASK_CHILDREN -> true - TASK_GROUP_ID -> true - TASK_USER_ID -> true - else -> false - } - } + override val columns: List> = listOf( + TASK_ID, + TASK_WORKFLOW_ID, + TASK_SUBMIT_TIME, + TASK_WAIT_TIME, + TASK_RUNTIME, + TASK_REQ_NCPUS, + TASK_PARENTS, + TASK_CHILDREN, + TASK_GROUP_ID, + TASK_USER_ID + ) override fun newReader(): TableReader { val reader = LocalParquetReader(path.resolve("tasks/schema-1.0")) -- cgit v1.2.3 From 3fb1eac8290181638a6571e4d7a49e53b7f3d7d1 Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Sun, 12 Sep 2021 11:40:15 +0200 Subject: feat(trace): Add synthetic resource table for Bitbrains format This change adds a synthetic resource table for the Bitbrains format, which can be used to list the available partitions in the trace. --- .../trace/bitbrains/BitbrainsResourceStateTable.kt | 2 +- .../trace/bitbrains/BitbrainsResourceTable.kt | 61 ++++++++++++ .../bitbrains/BitbrainsResourceTableReader.kt | 108 +++++++++++++++++++++ .../org/opendc/trace/bitbrains/BitbrainsTrace.kt | 12 +-- .../trace/bitbrains/BitbrainsTraceFormatTest.kt | 23 ++++- 5 files changed, 195 insertions(+), 11 deletions(-) create mode 100644 opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTable.kt create mode 100644 opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTableReader.kt (limited to 'opendc-trace') diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt index 883bf8f4..c9e5954d 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt @@ -33,7 +33,7 @@ import kotlin.io.path.nameWithoutExtension /** * The resource state [Table] in the Bitbrains format. */ -internal class BitbrainsResourceStateTable(private val factory: CsvFactory, private val path: Path) : Table { +internal class BitbrainsResourceStateTable(private val factory: CsvFactory, path: Path) : Table { /** * The partitions that belong to the table. */ diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTable.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTable.kt new file mode 100644 index 00000000..bc4f0b7d --- /dev/null +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTable.kt @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.bitbrains + +import com.fasterxml.jackson.dataformat.csv.CsvFactory +import org.opendc.trace.* +import java.nio.file.Files +import java.nio.file.Path +import java.util.stream.Collectors +import kotlin.io.path.extension +import kotlin.io.path.nameWithoutExtension + +/** + * The resources [Table] in the Bitbrains format. + */ +internal class BitbrainsResourceTable(private val factory: CsvFactory, path: Path) : Table { + /** + * The VMs that belong to the table. + */ + private val vms = + Files.walk(path, 1) + .filter { !Files.isDirectory(it) && it.extension == "csv" } + .collect(Collectors.toMap({ it.nameWithoutExtension }, { it })) + .toSortedMap() + + override val name: String = TABLE_RESOURCES + + override val isSynthetic: Boolean = true + + override val columns: List> = listOf(RESOURCE_ID) + + override fun newReader(): TableReader { + return BitbrainsResourceTableReader(factory, vms) + } + + override fun newReader(partition: String): TableReader { + throw IllegalArgumentException("Unknown partition $partition") + } + + override fun toString(): String = "BitbrainsResourceTable" +} diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTableReader.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTableReader.kt new file mode 100644 index 00000000..c02dc5ae --- /dev/null +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTableReader.kt @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.bitbrains + +import com.fasterxml.jackson.dataformat.csv.CsvFactory +import org.opendc.trace.* +import java.nio.file.Path + +/** + * A [TableReader] for the Bitbrains resource table. + */ +internal class BitbrainsResourceTableReader(private val factory: CsvFactory, vms: Map) : TableReader { + /** + * An iterator to iterate over the resource entries. + */ + private val it = vms.iterator() + + override fun nextRow(): Boolean { + reset() + + while (it.hasNext()) { + val (name, path) = it.next() + + val parser = factory.createParser(path.toFile()) + val reader = BitbrainsResourceStateTableReader(name, parser) + + try { + if (!reader.nextRow()) { + continue + } + + id = reader.get(RESOURCE_STATE_ID) + return true + } finally { + reader.close() + } + } + + return false + } + + override fun hasColumn(column: TableColumn<*>): Boolean { + return when (column) { + RESOURCE_ID -> true + else -> false + } + } + + override fun get(column: TableColumn): T { + val res: Any? = when (column) { + RESOURCE_ID -> id + else -> throw IllegalArgumentException("Invalid column") + } + + @Suppress("UNCHECKED_CAST") + return res as T + } + + override fun getBoolean(column: TableColumn): Boolean { + throw IllegalArgumentException("Invalid column") + } + + override fun getInt(column: TableColumn): Int { + throw IllegalArgumentException("Invalid column") + } + + override fun getLong(column: TableColumn): Long { + throw IllegalArgumentException("Invalid column") + } + + override fun getDouble(column: TableColumn): Double { + throw IllegalArgumentException("Invalid column") + } + + override fun close() {} + + /** + * State fields of the reader. + */ + private var id: String? = null + + /** + * Reset the state of the reader. + */ + private fun reset() { + id = null + } +} diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTrace.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTrace.kt index 5a2d4243..bcd8dd52 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTrace.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTrace.kt @@ -30,16 +30,16 @@ import java.nio.file.Path * [Trace] implementation for the Bitbrains format. */ public class BitbrainsTrace internal constructor(private val factory: CsvFactory, private val path: Path) : Trace { - override val tables: List = listOf(TABLE_RESOURCE_STATES) + override val tables: List = listOf(TABLE_RESOURCES, TABLE_RESOURCE_STATES) - override fun containsTable(name: String): Boolean = TABLE_RESOURCE_STATES == name + override fun containsTable(name: String): Boolean = tables.contains(name) override fun getTable(name: String): Table? { - if (!containsTable(name)) { - return null + return when (name) { + TABLE_RESOURCES -> BitbrainsResourceTable(factory, path) + TABLE_RESOURCE_STATES -> BitbrainsResourceStateTable(factory, path) + else -> null } - - return BitbrainsResourceStateTable(factory, path) } override fun toString(): String = "BitbrainsTrace[$path]" diff --git a/opendc-trace/opendc-trace-bitbrains/src/test/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormatTest.kt b/opendc-trace/opendc-trace-bitbrains/src/test/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormatTest.kt index 550805d3..ff4a33f8 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/test/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormatTest.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/test/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormatTest.kt @@ -25,9 +25,7 @@ package org.opendc.trace.bitbrains import org.junit.jupiter.api.Assertions.* import org.junit.jupiter.api.Test import org.junit.jupiter.api.assertThrows -import org.opendc.trace.RESOURCE_STATE_CPU_USAGE -import org.opendc.trace.RESOURCE_STATE_TIMESTAMP -import org.opendc.trace.TABLE_RESOURCE_STATES +import org.opendc.trace.* import java.net.URL /** @@ -58,7 +56,7 @@ class BitbrainsTraceFormatTest { val url = checkNotNull(BitbrainsTraceFormatTest::class.java.getResource("/bitbrains.csv")) val trace = format.open(url) - assertEquals(listOf(TABLE_RESOURCE_STATES), trace.tables) + assertEquals(listOf(TABLE_RESOURCES, TABLE_RESOURCE_STATES), trace.tables) } @Test @@ -81,6 +79,23 @@ class BitbrainsTraceFormatTest { assertNull(trace.getTable("test")) } + @Test + fun testResources() { + val format = BitbrainsTraceFormat() + val url = checkNotNull(BitbrainsTraceFormatTest::class.java.getResource("/bitbrains.csv")) + val trace = format.open(url) + + val reader = trace.getTable(TABLE_RESOURCES)!!.newReader() + + assertAll( + { assertTrue(reader.nextRow()) }, + { assertEquals("bitbrains", reader.get(RESOURCE_ID)) }, + { assertFalse(reader.nextRow()) } + ) + + reader.close() + } + @Test fun testSmoke() { val format = BitbrainsTraceFormat() -- cgit v1.2.3 From 992b65396f55c0e12b36823d191dea8e03dd45ba Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Sun, 12 Sep 2021 11:46:03 +0200 Subject: feat(trace): Support dynamic resolving of trace formats This change enables users to open traces of various trace formats by dynamically specifying the format name. The trace API will use the service loader to resolve the available trace formats on the classpath. --- .../src/main/kotlin/org/opendc/trace/Trace.kt | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'opendc-trace') diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Trace.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Trace.kt index 36e93b52..0ae45e86 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Trace.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Trace.kt @@ -22,6 +22,11 @@ package org.opendc.trace +import org.opendc.trace.spi.TraceFormat +import java.io.File +import java.net.URL +import java.nio.file.Path + /** * A trace is a collection of related tables that characterize a workload. */ @@ -40,4 +45,34 @@ public interface Trace { * Obtain a [Table] with the specified [name]. */ public fun getTable(name: String): Table? + + public companion object { + /** + * Open a [Trace] at the specified [url] in the given [format]. + * + * @throws IllegalArgumentException if [format] is not supported. + */ + public fun open(url: URL, format: String): Trace { + val provider = requireNotNull(TraceFormat.byName(format)) { "Unknown format $format" } + return provider.open(url) + } + + /** + * Open a [Trace] at the specified [path] in the given [format]. + * + * @throws IllegalArgumentException if [format] is not supported. + */ + public fun open(path: File, format: String): Trace { + return open(path.toURI().toURL(), format) + } + + /** + * Open a [Trace] at the specified [path] in the given [format]. + * + * @throws IllegalArgumentException if [format] is not supported. + */ + public fun open(path: Path, format: String): Trace { + return open(path.toUri().toURL(), format) + } + } } -- cgit v1.2.3 From 859ce303f0b9110c7110b918e5957c2156fa8b26 Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Fri, 17 Sep 2021 17:48:02 +0200 Subject: refactor(capelin): Extract common code out of Capelin experiments This change creates a new module for doing simulations with virtual machine workloads. We have found that a lot of code in the Capelin experiments code is being re-used by non-experiment modules. --- .../org/opendc/trace/util/parquet/AvroUtils.kt | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 opendc-trace/opendc-trace-parquet/src/main/kotlin/org/opendc/trace/util/parquet/AvroUtils.kt (limited to 'opendc-trace') diff --git a/opendc-trace/opendc-trace-parquet/src/main/kotlin/org/opendc/trace/util/parquet/AvroUtils.kt b/opendc-trace/opendc-trace-parquet/src/main/kotlin/org/opendc/trace/util/parquet/AvroUtils.kt new file mode 100644 index 00000000..086b900b --- /dev/null +++ b/opendc-trace/opendc-trace-parquet/src/main/kotlin/org/opendc/trace/util/parquet/AvroUtils.kt @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +@file:JvmName("AvroUtils") +package org.opendc.trace.util.parquet + +import org.apache.avro.LogicalTypes +import org.apache.avro.Schema + +/** + * Schema for UUID type. + */ +public val UUID_SCHEMA: Schema = LogicalTypes.uuid().addToSchema(Schema.create(Schema.Type.STRING)) + +/** + * Schema for timestamp type. + */ +public val TIMESTAMP_SCHEMA: Schema = LogicalTypes.timestampMillis().addToSchema(Schema.create(Schema.Type.LONG)) + +/** + * Helper function to make a [Schema] field optional. + */ +public fun Schema.optional(): Schema { + return Schema.createUnion(Schema.create(Schema.Type.NULL), this) +} -- cgit v1.2.3 From 6b7929f7730d5031758878f2eb2e55b4904a477a Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Fri, 17 Sep 2021 22:47:33 +0200 Subject: feat(trace): Add support for extended Bitbrains trace format This change adds support in the trace library for the extended Bitbrains format. This format is slightly different than the CSV format used by the original Bitbrains traces and contains more fields. --- .../bitbrains/BitbrainsExResourceStateTable.kt | 138 ++++++++++++++ .../BitbrainsExResourceStateTableReader.kt | 212 +++++++++++++++++++++ .../org/opendc/trace/bitbrains/BitbrainsExTrace.kt | 45 +++++ .../trace/bitbrains/BitbrainsExTraceFormat.kt | 47 +++++ .../services/org.opendc.trace.spi.TraceFormat | 1 + .../trace/bitbrains/BitbrainsExTraceFormatTest.kt | 94 +++++++++ .../src/test/resources/vm.txt | 2 + 7 files changed, 539 insertions(+) create mode 100644 opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTable.kt create mode 100644 opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTableReader.kt create mode 100644 opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExTrace.kt create mode 100644 opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExTraceFormat.kt create mode 100644 opendc-trace/opendc-trace-bitbrains/src/test/kotlin/org/opendc/trace/bitbrains/BitbrainsExTraceFormatTest.kt create mode 100644 opendc-trace/opendc-trace-bitbrains/src/test/resources/vm.txt (limited to 'opendc-trace') diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTable.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTable.kt new file mode 100644 index 00000000..4db2bace --- /dev/null +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTable.kt @@ -0,0 +1,138 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.bitbrains + +import org.opendc.trace.* +import java.nio.file.Files +import java.nio.file.Path +import java.util.stream.Collectors +import kotlin.io.path.bufferedReader +import kotlin.io.path.extension +import kotlin.io.path.nameWithoutExtension + +/** + * The resource state [Table] in the extended Bitbrains format. + */ +internal class BitbrainsExResourceStateTable(path: Path) : Table { + /** + * The partitions that belong to the table. + */ + private val partitions = Files.walk(path, 1) + .filter { !Files.isDirectory(it) && it.extension == "txt" } + .collect(Collectors.toMap({ it.nameWithoutExtension }, { it })) + .toSortedMap() + + override val name: String = TABLE_RESOURCE_STATES + + override val isSynthetic: Boolean = false + + override val columns: List> = listOf( + RESOURCE_STATE_ID, + RESOURCE_STATE_CLUSTER_ID, + RESOURCE_STATE_TIMESTAMP, + RESOURCE_STATE_NCPUS, + RESOURCE_STATE_CPU_CAPACITY, + RESOURCE_STATE_CPU_USAGE, + RESOURCE_STATE_CPU_USAGE_PCT, + RESOURCE_STATE_CPU_DEMAND, + RESOURCE_STATE_CPU_READY_PCT, + RESOURCE_STATE_MEM_CAPACITY, + RESOURCE_STATE_DISK_READ, + RESOURCE_STATE_DISK_WRITE, + ) + + override fun newReader(): TableReader { + val it = partitions.iterator() + + return object : TableReader { + var delegate: TableReader? = nextDelegate() + + override fun nextRow(): Boolean { + var delegate = delegate + + while (delegate != null) { + if (delegate.nextRow()) { + break + } + + delegate.close() + delegate = nextDelegate() + } + + this.delegate = delegate + return delegate != null + } + + override fun hasColumn(column: TableColumn<*>): Boolean = delegate?.hasColumn(column) ?: false + + override fun get(column: TableColumn): T { + val delegate = checkNotNull(delegate) { "Invalid reader state" } + return delegate.get(column) + } + + override fun getBoolean(column: TableColumn): Boolean { + val delegate = checkNotNull(delegate) { "Invalid reader state" } + return delegate.getBoolean(column) + } + + override fun getInt(column: TableColumn): Int { + val delegate = checkNotNull(delegate) { "Invalid reader state" } + return delegate.getInt(column) + } + + override fun getLong(column: TableColumn): Long { + val delegate = checkNotNull(delegate) { "Invalid reader state" } + return delegate.getLong(column) + } + + override fun getDouble(column: TableColumn): Double { + val delegate = checkNotNull(delegate) { "Invalid reader state" } + return delegate.getDouble(column) + } + + override fun close() { + delegate?.close() + } + + private fun nextDelegate(): TableReader? { + return if (it.hasNext()) { + val (_, path) = it.next() + val reader = path.bufferedReader() + return BitbrainsExResourceStateTableReader(reader) + } else { + null + } + } + + override fun toString(): String = "SvCompositeTableReader" + } + } + + override fun newReader(partition: String): TableReader { + val path = requireNotNull(partitions[partition]) { "Invalid partition $partition" } + val reader = path.bufferedReader() + return BitbrainsExResourceStateTableReader(reader) + } + + override fun toString(): String = "BitbrainsExResourceStateTable" +} diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTableReader.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTableReader.kt new file mode 100644 index 00000000..6fe5d397 --- /dev/null +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTableReader.kt @@ -0,0 +1,212 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.bitbrains + +import org.opendc.trace.* +import java.io.BufferedReader +import java.time.Instant + +/** + * A [TableReader] for the Bitbrains resource state table. + */ +internal class BitbrainsExResourceStateTableReader(private val reader: BufferedReader) : TableReader { + override fun nextRow(): Boolean { + reset() + + var line: String + var num = 0 + + while (true) { + line = reader.readLine() ?: return false + num++ + + if (line[0] == '#' || line.isBlank()) { + // Ignore empty lines or comments + continue + } + + break + } + + line = line.trim() + + val length = line.length + var col = 0 + var start: Int + var end = 0 + + while (end < length) { + // Trim all whitespace before the field + start = end + while (start < length && line[start].isWhitespace()) { + start++ + } + + end = line.indexOf(' ', start) + + if (end < 0) { + end = length + } + + val field = line.subSequence(start, end) as String + when (col++) { + COL_TIMESTAMP -> timestamp = Instant.ofEpochSecond(field.toLong(10)) + COL_CPU_USAGE -> cpuUsage = field.toDouble() + COL_CPU_DEMAND -> cpuDemand = field.toDouble() + COL_DISK_READ -> diskRead = field.toDouble() + COL_DISK_WRITE -> diskWrite = field.toDouble() + COL_CLUSTER_ID -> cluster = field.trim() + COL_NCPUS -> cpuCores = field.toInt(10) + COL_CPU_READY_PCT -> cpuReadyPct = field.toDouble() + COL_POWERED_ON -> poweredOn = field.toInt(10) == 1 + COL_CPU_CAPACITY -> cpuCapacity = field.toDouble() + COL_ID -> id = field.trim() + COL_MEM_CAPACITY -> memCapacity = field.toDouble() + } + } + + return true + } + + override fun hasColumn(column: TableColumn<*>): Boolean { + return when (column) { + RESOURCE_STATE_ID -> true + RESOURCE_STATE_CLUSTER_ID -> true + RESOURCE_STATE_TIMESTAMP -> true + RESOURCE_STATE_NCPUS -> true + RESOURCE_STATE_CPU_CAPACITY -> true + RESOURCE_STATE_CPU_USAGE -> true + RESOURCE_STATE_CPU_USAGE_PCT -> true + RESOURCE_STATE_CPU_DEMAND -> true + RESOURCE_STATE_CPU_READY_PCT -> true + RESOURCE_STATE_MEM_CAPACITY -> true + RESOURCE_STATE_DISK_READ -> true + RESOURCE_STATE_DISK_WRITE -> true + else -> false + } + } + + override fun get(column: TableColumn): T { + val res: Any? = when (column) { + RESOURCE_STATE_ID -> id + RESOURCE_STATE_CLUSTER_ID -> cluster + RESOURCE_STATE_TIMESTAMP -> timestamp + RESOURCE_STATE_NCPUS -> getInt(RESOURCE_STATE_NCPUS) + RESOURCE_STATE_CPU_CAPACITY -> getDouble(RESOURCE_STATE_CPU_CAPACITY) + RESOURCE_STATE_CPU_USAGE -> getDouble(RESOURCE_STATE_CPU_USAGE) + RESOURCE_STATE_CPU_USAGE_PCT -> getDouble(RESOURCE_STATE_CPU_USAGE_PCT) + RESOURCE_STATE_MEM_CAPACITY -> getDouble(RESOURCE_STATE_MEM_CAPACITY) + RESOURCE_STATE_DISK_READ -> getDouble(RESOURCE_STATE_DISK_READ) + RESOURCE_STATE_DISK_WRITE -> getDouble(RESOURCE_STATE_DISK_WRITE) + else -> throw IllegalArgumentException("Invalid column") + } + + @Suppress("UNCHECKED_CAST") + return res as T + } + + override fun getBoolean(column: TableColumn): Boolean { + return when (column) { + RESOURCE_STATE_POWERED_ON -> poweredOn + else -> throw IllegalArgumentException("Invalid column") + } + } + + override fun getInt(column: TableColumn): Int { + return when (column) { + RESOURCE_STATE_NCPUS -> cpuCores + else -> throw IllegalArgumentException("Invalid column") + } + } + + override fun getLong(column: TableColumn): Long { + throw IllegalArgumentException("Invalid column") + } + + override fun getDouble(column: TableColumn): Double { + return when (column) { + RESOURCE_STATE_CPU_CAPACITY -> cpuCapacity + RESOURCE_STATE_CPU_USAGE -> cpuUsage + RESOURCE_STATE_CPU_USAGE_PCT -> cpuUsage / cpuCapacity + RESOURCE_STATE_CPU_DEMAND -> cpuDemand + RESOURCE_STATE_MEM_CAPACITY -> memCapacity + RESOURCE_STATE_DISK_READ -> diskRead + RESOURCE_STATE_DISK_WRITE -> diskWrite + else -> throw IllegalArgumentException("Invalid column") + } + } + + override fun close() { + reader.close() + } + + /** + * State fields of the reader. + */ + private var id: String? = null + private var cluster: String? = null + private var timestamp: Instant? = null + private var cpuCores = -1 + private var cpuCapacity = Double.NaN + private var cpuUsage = Double.NaN + private var cpuDemand = Double.NaN + private var cpuReadyPct = Double.NaN + private var memCapacity = Double.NaN + private var diskRead = Double.NaN + private var diskWrite = Double.NaN + private var poweredOn: Boolean = false + + /** + * Reset the state of the reader. + */ + private fun reset() { + id = null + timestamp = null + cluster = null + cpuCores = -1 + cpuCapacity = Double.NaN + cpuUsage = Double.NaN + cpuDemand = Double.NaN + cpuReadyPct = Double.NaN + memCapacity = Double.NaN + diskRead = Double.NaN + diskWrite = Double.NaN + poweredOn = false + } + + /** + * Default column indices for the extended Bitbrains format. + */ + private val COL_TIMESTAMP = 0 + private val COL_CPU_USAGE = 1 + private val COL_CPU_DEMAND = 2 + private val COL_DISK_READ = 4 + private val COL_DISK_WRITE = 6 + private val COL_CLUSTER_ID = 10 + private val COL_NCPUS = 12 + private val COL_CPU_READY_PCT = 13 + private val COL_POWERED_ON = 14 + private val COL_CPU_CAPACITY = 18 + private val COL_ID = 19 + private val COL_MEM_CAPACITY = 20 +} diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExTrace.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExTrace.kt new file mode 100644 index 00000000..f16c493d --- /dev/null +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExTrace.kt @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.bitbrains + +import org.opendc.trace.* +import java.nio.file.Path + +/** + * [Trace] implementation for the extended Bitbrains format. + */ +public class BitbrainsExTrace internal constructor(private val path: Path) : Trace { + override val tables: List = listOf(TABLE_RESOURCE_STATES) + + override fun containsTable(name: String): Boolean = TABLE_RESOURCE_STATES == name + + override fun getTable(name: String): Table? { + if (!containsTable(name)) { + return null + } + + return BitbrainsExResourceStateTable(path) + } + + override fun toString(): String = "BitbrainsExTrace[$path]" +} diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExTraceFormat.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExTraceFormat.kt new file mode 100644 index 00000000..06388a84 --- /dev/null +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExTraceFormat.kt @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.bitbrains + +import org.opendc.trace.spi.TraceFormat +import java.net.URL +import java.nio.file.Paths +import kotlin.io.path.exists + +/** + * A format implementation for the extended Bitbrains trace format. + */ +public class BitbrainsExTraceFormat : TraceFormat { + /** + * The name of this trace format. + */ + override val name: String = "bitbrains-ex" + + /** + * Open the trace file. + */ + override fun open(url: URL): BitbrainsExTrace { + val path = Paths.get(url.toURI()) + require(path.exists()) { "URL $url does not exist" } + return BitbrainsExTrace(path) + } +} diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat b/opendc-trace/opendc-trace-bitbrains/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat index f18135d0..fd6a2180 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat +++ b/opendc-trace/opendc-trace-bitbrains/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat @@ -1 +1,2 @@ org.opendc.trace.bitbrains.BitbrainsTraceFormat +org.opendc.trace.bitbrains.BitbrainsExTraceFormat diff --git a/opendc-trace/opendc-trace-bitbrains/src/test/kotlin/org/opendc/trace/bitbrains/BitbrainsExTraceFormatTest.kt b/opendc-trace/opendc-trace-bitbrains/src/test/kotlin/org/opendc/trace/bitbrains/BitbrainsExTraceFormatTest.kt new file mode 100644 index 00000000..2e4f176a --- /dev/null +++ b/opendc-trace/opendc-trace-bitbrains/src/test/kotlin/org/opendc/trace/bitbrains/BitbrainsExTraceFormatTest.kt @@ -0,0 +1,94 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.bitbrains + +import org.junit.jupiter.api.Assertions.* +import org.junit.jupiter.api.Test +import org.junit.jupiter.api.assertThrows +import org.opendc.trace.* +import java.net.URL + +/** + * Test suite for the [BitbrainsExTraceFormat] class. + */ +class BitbrainsExTraceFormatTest { + private val format = BitbrainsExTraceFormat() + + @Test + fun testTraceExists() { + val url = checkNotNull(BitbrainsExTraceFormatTest::class.java.getResource("/vm.txt")) + assertDoesNotThrow { + format.open(url) + } + } + + @Test + fun testTraceDoesNotExists() { + val url = checkNotNull(BitbrainsExTraceFormatTest::class.java.getResource("/vm.txt")) + assertThrows { + format.open(URL(url.toString() + "help")) + } + } + + @Test + fun testTables() { + val url = checkNotNull(BitbrainsExTraceFormatTest::class.java.getResource("/vm.txt")) + val trace = format.open(url) + + assertEquals(listOf(TABLE_RESOURCE_STATES), trace.tables) + } + + @Test + fun testTableExists() { + val url = checkNotNull(BitbrainsExTraceFormatTest::class.java.getResource("/vm.txt")) + val table = format.open(url).getTable(TABLE_RESOURCE_STATES) + + assertNotNull(table) + assertDoesNotThrow { table!!.newReader() } + } + + @Test + fun testTableDoesNotExist() { + val url = checkNotNull(BitbrainsExTraceFormatTest::class.java.getResource("/vm.txt")) + val trace = format.open(url) + + assertFalse(trace.containsTable("test")) + assertNull(trace.getTable("test")) + } + + @Test + fun testSmoke() { + val url = checkNotNull(BitbrainsExTraceFormatTest::class.java.getResource("/vm.txt")) + val trace = format.open(url) + + val reader = trace.getTable(TABLE_RESOURCE_STATES)!!.newReader() + + assertAll( + { assertTrue(reader.nextRow()) }, + { assertEquals(1631911500, reader.get(RESOURCE_STATE_TIMESTAMP).epochSecond) }, + { assertEquals(21.2, reader.getDouble(RESOURCE_STATE_CPU_USAGE), 0.01) } + ) + + reader.close() + } +} diff --git a/opendc-trace/opendc-trace-bitbrains/src/test/resources/vm.txt b/opendc-trace/opendc-trace-bitbrains/src/test/resources/vm.txt new file mode 100644 index 00000000..28bebb0c --- /dev/null +++ b/opendc-trace/opendc-trace-bitbrains/src/test/resources/vm.txt @@ -0,0 +1,2 @@ +1631911500 21.2 22.10 0.0 0.0 0.67 1.2 0.0 0.0 5 1 abc 1 0.01 1 10 0.0 0.0 2699 vm 4096 +1631911800 30.4 31.80 0.0 0.0 0.56 1.3 0.0 0.0 5 1 abc 1 0.02 1 10 0.0 0.0 2699 vm 4096 -- cgit v1.2.3 From 736aef9e56d149d54be16b735daf6784339071de Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Fri, 17 Sep 2021 23:04:00 +0200 Subject: feat(trace): Add support for Azure VM trace format This change adds support in the trace library for the Azure VM trace format. --- opendc-trace/opendc-trace-azure/build.gradle.kts | 36 +++++ .../opendc/trace/azure/AzureResourceStateTable.kt | 127 ++++++++++++++++ .../trace/azure/AzureResourceStateTableReader.kt | 149 ++++++++++++++++++ .../org/opendc/trace/azure/AzureResourceTable.kt | 54 +++++++ .../opendc/trace/azure/AzureResourceTableReader.kt | 168 +++++++++++++++++++++ .../kotlin/org/opendc/trace/azure/AzureTrace.kt | 46 ++++++ .../org/opendc/trace/azure/AzureTraceFormat.kt | 56 +++++++ .../services/org.opendc.trace.spi.TraceFormat | 1 + .../org/opendc/trace/azure/AzureTraceFormatTest.kt | 113 ++++++++++++++ .../vm_cpu_readings-file-1-of-125.csv | 100 ++++++++++++ .../src/test/resources/trace/vmtable/vmtable.csv | 10 ++ 11 files changed, 860 insertions(+) create mode 100644 opendc-trace/opendc-trace-azure/build.gradle.kts create mode 100644 opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTable.kt create mode 100644 opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTableReader.kt create mode 100644 opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTable.kt create mode 100644 opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTableReader.kt create mode 100644 opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureTrace.kt create mode 100644 opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureTraceFormat.kt create mode 100644 opendc-trace/opendc-trace-azure/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat create mode 100644 opendc-trace/opendc-trace-azure/src/test/kotlin/org/opendc/trace/azure/AzureTraceFormatTest.kt create mode 100644 opendc-trace/opendc-trace-azure/src/test/resources/trace/vm_cpu_readings/vm_cpu_readings-file-1-of-125.csv create mode 100644 opendc-trace/opendc-trace-azure/src/test/resources/trace/vmtable/vmtable.csv (limited to 'opendc-trace') diff --git a/opendc-trace/opendc-trace-azure/build.gradle.kts b/opendc-trace/opendc-trace-azure/build.gradle.kts new file mode 100644 index 00000000..8bde56cb --- /dev/null +++ b/opendc-trace/opendc-trace-azure/build.gradle.kts @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +description = "Support for Azure VM traces in OpenDC" + +/* Build configuration */ +plugins { + `kotlin-library-conventions` + `testing-conventions` + `jacoco-conventions` +} + +dependencies { + api(platform(projects.opendcPlatform)) + api(projects.opendcTrace.opendcTraceApi) + implementation(libs.jackson.dataformat.csv) +} diff --git a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTable.kt b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTable.kt new file mode 100644 index 00000000..189ab52a --- /dev/null +++ b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTable.kt @@ -0,0 +1,127 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.azure + +import com.fasterxml.jackson.dataformat.csv.CsvFactory +import org.opendc.trace.* +import java.nio.file.Files +import java.nio.file.Path +import java.util.stream.Collectors +import kotlin.io.path.extension +import kotlin.io.path.nameWithoutExtension + +/** + * The resource state [Table] for the Azure v1 VM traces. + */ +internal class AzureResourceStateTable(private val factory: CsvFactory, path: Path) : Table { + /** + * The partitions that belong to the table. + */ + private val partitions = Files.walk(path.resolve("vm_cpu_readings"), 1) + .filter { !Files.isDirectory(it) && it.extension == "csv" } + .collect(Collectors.toMap({ it.nameWithoutExtension }, { it })) + .toSortedMap() + + override val name: String = TABLE_RESOURCE_STATES + + override val isSynthetic: Boolean = false + + override val columns: List> = listOf( + RESOURCE_STATE_ID, + RESOURCE_STATE_TIMESTAMP, + RESOURCE_STATE_CPU_USAGE_PCT + ) + + override fun newReader(): TableReader { + val it = partitions.iterator() + + return object : TableReader { + var delegate: TableReader? = nextDelegate() + + override fun nextRow(): Boolean { + var delegate = delegate + + while (delegate != null) { + if (delegate.nextRow()) { + break + } + + delegate.close() + delegate = nextDelegate() + } + + this.delegate = delegate + return delegate != null + } + + override fun hasColumn(column: TableColumn<*>): Boolean = delegate?.hasColumn(column) ?: false + + override fun get(column: TableColumn): T { + val delegate = checkNotNull(delegate) { "Invalid reader state" } + return delegate.get(column) + } + + override fun getBoolean(column: TableColumn): Boolean { + val delegate = checkNotNull(delegate) { "Invalid reader state" } + return delegate.getBoolean(column) + } + + override fun getInt(column: TableColumn): Int { + val delegate = checkNotNull(delegate) { "Invalid reader state" } + return delegate.getInt(column) + } + + override fun getLong(column: TableColumn): Long { + val delegate = checkNotNull(delegate) { "Invalid reader state" } + return delegate.getLong(column) + } + + override fun getDouble(column: TableColumn): Double { + val delegate = checkNotNull(delegate) { "Invalid reader state" } + return delegate.getDouble(column) + } + + override fun close() { + delegate?.close() + } + + private fun nextDelegate(): TableReader? { + return if (it.hasNext()) { + val (_, path) = it.next() + return AzureResourceStateTableReader(factory.createParser(path.toFile())) + } else { + null + } + } + + override fun toString(): String = "AzureCompositeTableReader" + } + } + + override fun newReader(partition: String): TableReader { + val path = requireNotNull(partitions[partition]) { "Invalid partition $partition" } + return AzureResourceStateTableReader(factory.createParser(path.toFile())) + } + + override fun toString(): String = "AzureResourceStateTable" +} diff --git a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTableReader.kt b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTableReader.kt new file mode 100644 index 00000000..c17a17ab --- /dev/null +++ b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTableReader.kt @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.azure + +import com.fasterxml.jackson.core.JsonToken +import com.fasterxml.jackson.dataformat.csv.CsvParser +import com.fasterxml.jackson.dataformat.csv.CsvSchema +import org.opendc.trace.* +import java.time.Instant + +/** + * A [TableReader] for the Azure v1 VM resource state table. + */ +internal class AzureResourceStateTableReader(private val parser: CsvParser) : TableReader { + init { + parser.schema = schema + } + + override fun nextRow(): Boolean { + reset() + + if (!nextStart()) { + return false + } + + while (true) { + val token = parser.nextValue() + + if (token == null || token == JsonToken.END_OBJECT) { + break + } + + when (parser.currentName) { + "timestamp" -> timestamp = Instant.ofEpochSecond(parser.longValue) + "vm id" -> id = parser.text + "CPU avg cpu" -> cpuUsagePct = parser.doubleValue + } + } + + return true + } + + override fun hasColumn(column: TableColumn<*>): Boolean { + return when (column) { + RESOURCE_STATE_ID -> true + RESOURCE_STATE_TIMESTAMP -> true + RESOURCE_STATE_CPU_USAGE_PCT -> true + else -> false + } + } + + override fun get(column: TableColumn): T { + val res: Any? = when (column) { + RESOURCE_STATE_ID -> id + RESOURCE_STATE_TIMESTAMP -> timestamp + RESOURCE_STATE_CPU_USAGE_PCT -> cpuUsagePct + else -> throw IllegalArgumentException("Invalid column") + } + + @Suppress("UNCHECKED_CAST") + return res as T + } + + override fun getBoolean(column: TableColumn): Boolean { + throw IllegalArgumentException("Invalid column") + } + + override fun getInt(column: TableColumn): Int { + throw IllegalArgumentException("Invalid column") + } + + override fun getLong(column: TableColumn): Long { + throw IllegalArgumentException("Invalid column") + } + + override fun getDouble(column: TableColumn): Double { + return when (column) { + RESOURCE_STATE_CPU_USAGE_PCT -> cpuUsagePct + else -> throw IllegalArgumentException("Invalid column") + } + } + + override fun close() { + parser.close() + } + + /** + * Advance the parser until the next object start. + */ + private fun nextStart(): Boolean { + var token = parser.nextValue() + + while (token != null && token != JsonToken.START_OBJECT) { + token = parser.nextValue() + } + + return token != null + } + + /** + * State fields of the reader. + */ + private var id: String? = null + private var timestamp: Instant? = null + private var cpuUsagePct = Double.NaN + + /** + * Reset the state. + */ + private fun reset() { + id = null + timestamp = null + cpuUsagePct = Double.NaN + } + + companion object { + /** + * The [CsvSchema] that is used to parse the trace. + */ + private val schema = CsvSchema.builder() + .addColumn("timestamp", CsvSchema.ColumnType.NUMBER) + .addColumn("vm id", CsvSchema.ColumnType.STRING) + .addColumn("CPU min cpu", CsvSchema.ColumnType.NUMBER) + .addColumn("CPU max cpu", CsvSchema.ColumnType.NUMBER) + .addColumn("CPU avg cpu", CsvSchema.ColumnType.NUMBER) + .setAllowComments(true) + .build() + } +} diff --git a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTable.kt b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTable.kt new file mode 100644 index 00000000..d9f6f156 --- /dev/null +++ b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTable.kt @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.azure + +import com.fasterxml.jackson.dataformat.csv.CsvFactory +import org.opendc.trace.* +import java.nio.file.Path + +/** + * The resource [Table] for the Azure v1 VM traces. + */ +internal class AzureResourceTable(private val factory: CsvFactory, private val path: Path) : Table { + override val name: String = TABLE_RESOURCES + + override val isSynthetic: Boolean = false + + override val columns: List> = listOf( + RESOURCE_ID, + RESOURCE_START_TIME, + RESOURCE_STOP_TIME, + RESOURCE_NCPUS, + RESOURCE_MEM_CAPACITY + ) + + override fun newReader(): TableReader { + return AzureResourceTableReader(factory.createParser(path.resolve("vmtable/vmtable.csv").toFile())) + } + + override fun newReader(partition: String): TableReader { + throw IllegalArgumentException("No partition $partition") + } + + override fun toString(): String = "AzureResourceTable" +} diff --git a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTableReader.kt b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTableReader.kt new file mode 100644 index 00000000..d3970b07 --- /dev/null +++ b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTableReader.kt @@ -0,0 +1,168 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.azure + +import com.fasterxml.jackson.core.JsonToken +import com.fasterxml.jackson.dataformat.csv.CsvParser +import com.fasterxml.jackson.dataformat.csv.CsvSchema +import org.opendc.trace.* +import java.time.Instant + +/** + * A [TableReader] for the Azure v1 VM resources table. + */ +internal class AzureResourceTableReader(private val parser: CsvParser) : TableReader { + init { + parser.schema = schema + } + + override fun nextRow(): Boolean { + reset() + + if (!nextStart()) { + return false + } + + while (true) { + val token = parser.nextValue() + + if (token == null || token == JsonToken.END_OBJECT) { + break + } + + when (parser.currentName) { + "vm id" -> id = parser.text + "vm created" -> startTime = Instant.ofEpochSecond(parser.longValue) + "vm deleted" -> stopTime = Instant.ofEpochSecond(parser.longValue) + "vm virtual core count" -> cpuCores = parser.intValue + "vm memory" -> memCapacity = parser.doubleValue * 1e6 // GB to KB + } + } + + return true + } + + override fun hasColumn(column: TableColumn<*>): Boolean { + return when (column) { + RESOURCE_ID -> true + RESOURCE_START_TIME -> true + RESOURCE_STOP_TIME -> true + RESOURCE_NCPUS -> true + RESOURCE_MEM_CAPACITY -> true + else -> false + } + } + + override fun get(column: TableColumn): T { + val res: Any? = when (column) { + RESOURCE_ID -> id + RESOURCE_START_TIME -> startTime + RESOURCE_STOP_TIME -> stopTime + RESOURCE_NCPUS -> getInt(RESOURCE_NCPUS) + RESOURCE_MEM_CAPACITY -> getDouble(RESOURCE_MEM_CAPACITY) + else -> throw IllegalArgumentException("Invalid column") + } + + @Suppress("UNCHECKED_CAST") + return res as T + } + + override fun getBoolean(column: TableColumn): Boolean { + throw IllegalArgumentException("Invalid column") + } + + override fun getInt(column: TableColumn): Int { + return when (column) { + RESOURCE_NCPUS -> cpuCores + else -> throw IllegalArgumentException("Invalid column") + } + } + + override fun getLong(column: TableColumn): Long { + throw IllegalArgumentException("Invalid column") + } + + override fun getDouble(column: TableColumn): Double { + return when (column) { + RESOURCE_MEM_CAPACITY -> memCapacity + else -> throw IllegalArgumentException("Invalid column") + } + } + + override fun close() { + parser.close() + } + + /** + * Advance the parser until the next object start. + */ + private fun nextStart(): Boolean { + var token = parser.nextValue() + + while (token != null && token != JsonToken.START_OBJECT) { + token = parser.nextValue() + } + + return token != null + } + + /** + * State fields of the reader. + */ + private var id: String? = null + private var startTime: Instant? = null + private var stopTime: Instant? = null + private var cpuCores = -1 + private var memCapacity = Double.NaN + + /** + * Reset the state. + */ + fun reset() { + id = null + startTime = null + stopTime = null + cpuCores = -1 + memCapacity = Double.NaN + } + + companion object { + /** + * The [CsvSchema] that is used to parse the trace. + */ + private val schema = CsvSchema.builder() + .addColumn("vm id", CsvSchema.ColumnType.NUMBER) + .addColumn("subscription id", CsvSchema.ColumnType.STRING) + .addColumn("deployment id", CsvSchema.ColumnType.NUMBER) + .addColumn("timestamp vm created", CsvSchema.ColumnType.NUMBER) + .addColumn("timestamp vm deleted", CsvSchema.ColumnType.NUMBER) + .addColumn("max cpu", CsvSchema.ColumnType.NUMBER) + .addColumn("avg cpu", CsvSchema.ColumnType.NUMBER) + .addColumn("p95 cpu", CsvSchema.ColumnType.NUMBER) + .addColumn("vm category", CsvSchema.ColumnType.NUMBER) + .addColumn("vm virtual core count", CsvSchema.ColumnType.NUMBER) + .addColumn("vm memory", CsvSchema.ColumnType.NUMBER) + .setAllowComments(true) + .build() + } +} diff --git a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureTrace.kt b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureTrace.kt new file mode 100644 index 00000000..c7e7dc36 --- /dev/null +++ b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureTrace.kt @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.azure + +import com.fasterxml.jackson.dataformat.csv.CsvFactory +import org.opendc.trace.* +import java.nio.file.Path + +/** + * [Trace] implementation for the Azure v1 VM traces. + */ +public class AzureTrace internal constructor(private val factory: CsvFactory, private val path: Path) : Trace { + override val tables: List = listOf(TABLE_RESOURCES, TABLE_RESOURCE_STATES) + + override fun containsTable(name: String): Boolean = name in tables + + override fun getTable(name: String): Table? { + return when (name) { + TABLE_RESOURCES -> AzureResourceTable(factory, path) + TABLE_RESOURCE_STATES -> AzureResourceStateTable(factory, path) + else -> null + } + } + + override fun toString(): String = "AzureTrace[$path]" +} diff --git a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureTraceFormat.kt b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureTraceFormat.kt new file mode 100644 index 00000000..1230d857 --- /dev/null +++ b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureTraceFormat.kt @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.azure + +import com.fasterxml.jackson.dataformat.csv.CsvFactory +import com.fasterxml.jackson.dataformat.csv.CsvParser +import org.opendc.trace.spi.TraceFormat +import java.net.URL +import java.nio.file.Paths +import kotlin.io.path.exists + +/** + * A format implementation for the Azure v1 format. + */ +public class AzureTraceFormat : TraceFormat { + /** + * The name of this trace format. + */ + override val name: String = "azure" + + /** + * The [CsvFactory] used to create the parser. + */ + private val factory = CsvFactory() + .enable(CsvParser.Feature.ALLOW_COMMENTS) + .enable(CsvParser.Feature.TRIM_SPACES) + + /** + * Open the trace file. + */ + override fun open(url: URL): AzureTrace { + val path = Paths.get(url.toURI()) + require(path.exists()) { "URL $url does not exist" } + return AzureTrace(factory, path) + } +} diff --git a/opendc-trace/opendc-trace-azure/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat b/opendc-trace/opendc-trace-azure/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat new file mode 100644 index 00000000..08e75529 --- /dev/null +++ b/opendc-trace/opendc-trace-azure/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat @@ -0,0 +1 @@ +org.opendc.trace.azure.AzureTraceFormat diff --git a/opendc-trace/opendc-trace-azure/src/test/kotlin/org/opendc/trace/azure/AzureTraceFormatTest.kt b/opendc-trace/opendc-trace-azure/src/test/kotlin/org/opendc/trace/azure/AzureTraceFormatTest.kt new file mode 100644 index 00000000..20375547 --- /dev/null +++ b/opendc-trace/opendc-trace-azure/src/test/kotlin/org/opendc/trace/azure/AzureTraceFormatTest.kt @@ -0,0 +1,113 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.azure + +import org.junit.jupiter.api.Assertions.* +import org.junit.jupiter.api.Test +import org.junit.jupiter.api.assertThrows +import org.opendc.trace.* +import java.io.File +import java.net.URL + +/** + * Test suite for the [AzureTraceFormat] class. + */ +class AzureTraceFormatTest { + private val format = AzureTraceFormat() + + @Test + fun testTraceExists() { + val url = File("src/test/resources/trace").toURI().toURL() + assertDoesNotThrow { + format.open(url) + } + } + + @Test + fun testTraceDoesNotExists() { + val url = File("src/test/resources/trace").toURI().toURL() + assertThrows { + format.open(URL(url.toString() + "help")) + } + } + + @Test + fun testTables() { + val url = File("src/test/resources/trace").toURI().toURL() + val trace = format.open(url) + + assertEquals(listOf(TABLE_RESOURCES, TABLE_RESOURCE_STATES), trace.tables) + } + + @Test + fun testTableExists() { + val url = File("src/test/resources/trace").toURI().toURL() + val table = format.open(url).getTable(TABLE_RESOURCE_STATES) + + assertNotNull(table) + assertDoesNotThrow { table!!.newReader() } + } + + @Test + fun testTableDoesNotExist() { + val url = File("src/test/resources/trace").toURI().toURL() + val trace = format.open(url) + + assertFalse(trace.containsTable("test")) + assertNull(trace.getTable("test")) + } + + @Test + fun testResources() { + val url = File("src/test/resources/trace").toURI().toURL() + val trace = format.open(url) + + val reader = trace.getTable(TABLE_RESOURCES)!!.newReader() + + assertAll( + { assertTrue(reader.nextRow()) }, + { assertEquals("x/XsOfHO4ocsV99i4NluqKDuxctW2MMVmwqOPAlg4wp8mqbBOe3wxBlQo0+Qx+uf", reader.get(RESOURCE_ID)) }, + { assertEquals(1, reader.getInt(RESOURCE_NCPUS)) }, + { assertEquals(1750000.0, reader.getDouble(RESOURCE_MEM_CAPACITY)) }, + ) + + reader.close() + } + + @Test + fun testSmoke() { + val url = File("src/test/resources/trace").toURI().toURL() + val trace = format.open(url) + + val reader = trace.getTable(TABLE_RESOURCE_STATES)!!.newReader() + + assertAll( + { assertTrue(reader.nextRow()) }, + { assertEquals("+ZcrOp5/c/fJ6mVgP5qMZlOAGDwyjaaDNM0WoWOt2IDb47gT0UwK9lFwkPQv3C7Q", reader.get(RESOURCE_STATE_ID)) }, + { assertEquals(0, reader.get(RESOURCE_STATE_TIMESTAMP).epochSecond) }, + { assertEquals(2.86979, reader.getDouble(RESOURCE_STATE_CPU_USAGE_PCT), 0.01) } + ) + + reader.close() + } +} diff --git a/opendc-trace/opendc-trace-azure/src/test/resources/trace/vm_cpu_readings/vm_cpu_readings-file-1-of-125.csv b/opendc-trace/opendc-trace-azure/src/test/resources/trace/vm_cpu_readings/vm_cpu_readings-file-1-of-125.csv new file mode 100644 index 00000000..db6ddf8a --- /dev/null +++ b/opendc-trace/opendc-trace-azure/src/test/resources/trace/vm_cpu_readings/vm_cpu_readings-file-1-of-125.csv @@ -0,0 +1,100 @@ +0,+ZcrOp5/c/fJ6mVgP5qMZlOAGDwyjaaDNM0WoWOt2IDb47gT0UwK9lFwkPQv3C7Q,2.052803,3.911587,2.86979 +0,2zrgeOqUDy+l0GVi5NXudU+3sqZH+nLowfcz+D/JsCymTXbKrRf1Hr3OjAtxjnKm,1.64695,8.794403,3.254472 +0,/34Wh1Kq/qkNkW0tQrMiQ1eZ8hg9hHopydCzsXriefhgrn+0Rg1j22k1IHcV6PIQ,2.440088,6.941048,4.33624 +0,2lzdXk1Rqn1ibH2kZhGamYTMvVcRP6+x8b5zGiD/8t++5BQhzU18hGaL5sfR01Lo,0.302992,2.046712,0.970692 +0,0GrUQuLhCER5bWWcoJAgblPJWkaU4v3nf+NUrZnFTlXWEK99qgTRBTkjjUjJVAqA,1.515922,4.471657,2.438805 +0,2I8OpI6bMkdzL3HYLz4KlBcDhy2VTEm3skQbOvEo9rLoxryB0iB9iVh3rGd5DW2j,0.148552,0.315007,0.264341 +0,2IuuDcRMd97gln/+CrgPqI/fwffx67s87T1odKrA0wLYf8YuzGooHdKihitv2Q+s,0.169838,2.277277,0.859669 +0,2KaB1faO0ZB2KqB8MGwasWkqRLJHIE6+2wPuhzlzLNEUyeGzo0dU7brFa/cll/VJ,0.539162,1.371926,0.782212 +0,2BMVXt472mr/Y8m1vaaGoyGTSXcLvXk968PCHixwCDjPSgCm7yYSimGuBw7VPIiS,3.625195,7.211996,4.807884 +0,/3+EY60PnzKwod6nAUGBFSDDpBBOVEVUi90JWWWjPAlNyTUrGwlfQcSDoSkRumD7,0.180582,1.313473,0.43792 +0,+hulsuci78MKSG60G/gHJLqmz5/TFEB3WpS6HI1G1mm052le8oeemF3kz3eoPsnS,2.653344,9.983403,4.262461 +0,0O4otykohyRcsqqsg68kqo6ZCY6sL6eQLHUMYZxGVRhwQmTXRUN89izib3pOucrC,0.72983,4.516831,1.846142 +0,239KfRqrlUdyYuU0ubcASPKztu3q7hernahrolO5AczjUFI/QgoU+OoKzPuivFHQ,1.42953,11.553488,4.271241 +0,/SVzWHvPhr7KAIOUFr10EK8WdKXbrJojgcc4IGvutJ2S6HpRMD0zTfv/h0720+Q6,1.676634,6.703915,3.102252 +0,2a7bYEHqZvcgOeos5Q3J5qxpY4lXinv8M9mORfel5DlWRut0JynZtobNGNlBWn41,0.54178,8.239316,2.234877 +0,1NwFYwEAgv8qnCaWzzWv9hHj0TIJAZ2HT+iH+dsZKeSAPGoJGyVSDB+Zj4EuqWRC,2.933124,4.630701,3.975568 +0,3rg4SRyS/p6eMuGCJpjkz4oHzXSeeF16a7jJ9GAAYPiAQAsQNOEjHOe07on5RbjK,0.719536,3.383279,1.506528 +0,0DVV+uR/jr4XbwYQhVf2Yg0Kg7DfIDa7qJNzqvjVgEqGRJAUisrnYFv7AWr1k7by,0.949333,22.157649,3.751856 +0,3bHtb6EIFo9yXByIhpVDOJ7bzbIQvnGGb+jm8eOsEf0eKbrKMJvUiOYc6Wq3DXbR,3.504534,15.581505,6.388424 +0,0O5yc/ZVSHWxf4UHf/1b8Nut9raakorgqDwGV9k7TJdq55alNeMDB7CREuxZystP,7.587743,20.323464,16.540802 +0,0ZbYi+cMH7hCzT+8ICYVp5ZgcRUFNKsODuH09bbPdPioUPCPkBK2PM2oHhE3y4I6,2.694185,6.361789,4.55337 +0,1jw70sEl89jY2iRpd38PuYSBiOcuwe6tF4Q+YuGBJg20+gRIW3A7H3WZ+uL0EVmb,3.570395,5.707428,4.233997 +0,24MvpVXzcNO2qxwF4hMwCToFTBfoAE5xUQ4L6fwfWuBZ1GW06hHh5jWwWCu+8lPm,5.102273,8.678012,6.369649 +0,2gHzFAqM+fL7f1wtNETuzSoM7I6xlEWk2BJmj1SNXly/7z1RQFmwYRXU49DiYciJ,0.27374,54.447146,5.445003 +0,/hCom+lGMIkeE1wQi+VTFh+zzgbikbO0jQDzchDMCUNSgo6cEJfD1sIT2Ok4NlD6,0.170892,1.843549,0.737087 +0,2UwesOu8HXTdHyj0jd1agckz1KH5+Z4KOFe+wKFo9uvRI4GalozAPaxsMrBmx7Wo,3.349887,6.272554,4.425039 +0,1V8Fr/ZhjQcxql5s9p3hA1b0Wx6Sx9e+np1OImlp3GKyleH87bYjmQLZJouKYJR2,2.022219,4.724097,2.616506 +0,23E/SPMZKCUWz8nBmuCdbNBWf9ou6IQuZjmh0x2/icPrbLLvUk5SvbTjwqoLQxBX,0,0.46365,0.178483 +0,0Mj8nT0fnkeMIbcTBf27pOtUuTtMZH8uAZqAViSaye+9mBIjsNPmU6Z5hLK6f2I0,15.023186,23.297875,18.965327 +0,2xM0uOcqSowNzsbFbzhy5J1Ms2vv0jVQ5aM+J2E/LCBzTVKPrCCeWQ/r/cKmS1Tm,8.272075,9.415241,8.797159 +0,0MYQXyW75q9UURkn+O/V6iww0JaBl2qRG0Mh2bqRcuU5/Ws+7HJMPKSzVKlUEgcU,3.798828,8.915124,4.856879 +0,/HQfnMjgclpCxPod9jmGVQxfTnsjyNWA4KNkLMn4IKRlqheUo9AhhWv4vAumZNqg,4.788548,7.269977,6.640435 +0,0Q2PP+9O7LcnNI7AJQQR7pwM4ISG4024Z+INOw+TWgf2DCl8/prdGC7QJRGjc+Aa,0.10703,0.183798,0.136907 +0,/zLQxB1DGXC7iK7JeyYrUSguf6DjNA1MVTJzieRWmcobm0M+xgd28r842y3p5u5J,1.306953,3.22913,2.226509 +0,42cXpXkVqdXH/ok/tD46zKKCToy0k6HXoH3x7eeo4+zIva3IJKle5xfSEW3R45ON,1.018462,3.240817,2.196357 +0,+9HYwMx1Ckj15bJswEycBgiBSfrBw5NJE3p86IeFpFYKKxdw3NzMPTFKpg67XhsF,1.859664,7.255261,3.501303 +0,10KKTL95cApo6Pf24KZqgrM67v4M6rgZBoX+w/I3j4KS66FNhKomGnap9H8SVAvy,0.041225,2.593651,0.25894 +0,+LyaeKb1faiLEjAzynXF3xO/ZAho1R/Zyh1H4d45+NGsIJR6ryUTDmhyNvMh1wQ9,4.614357,11.692623,6.05005 +0,1SS5EeD9rxdWRFYBkR36PAd96w+Q7V2V4fDcc/2IJ1L07In7RGpQk/HVcOTKd78w,0.020435,0.515471,0.135453 +0,+HFoxb6Eu9kwzVkxs+A+9Q7zXa4aSIcOFm3AnYDCTQQMYyf6EST9nSHslGhUkgAD,8.53904,48.459572,16.166212 +0,+N+B5FPJIUVyH9v1Zcc+kjSTNvULkosDBM48N2JkDjhuVhQtWSfYQMQTQkGeVjLi,3.139119,99.036916,51.090982 +0,1ey9c7Hc1FyxLVbESoty7AkXbuENFSDXRAZiizFifRmJNM6IEx9eNu3bkUR+qCUJ,2.466582,5.842213,3.765056 +0,35F/52yPsKPGondM8xnzX68EKiKiKiZMDqsVnvc9ZOAc/rS3zvQ6YYj3QkLAHFhN,1.963258,43.494868,16.459037 +0,2KX+BTc0TPZOtCgbzKtKvP1yrM+Cc3WQU9DPkZDFD/5aNN/aPV40aQCKwW/HeTzh,1.040522,5.961609,3.305858 +0,+8X+qRHRLwwgj70uuXrkus7lrNtjMeTHfy5yQgymNJI+yFd5pbhRfStfS7lkVOhP,0.436353,15.995153,1.431229 +0,/g5MAtFnYaMO5MpJg40BsFmhS22s0tfwHiivGhPbcZ+KgEAtNxKkFdZYDtrDUUFO,6.905489,8.196952,7.527238 +0,/ke0seVq80UFQeXSTUh5hTrjghtn5qqWf38lQVTis+/ZR6Pdv5vdAotz4dvZcKDp,6.444482,23.136676,15.470455 +0,+tQeKqKqbAui7YXK0Efk3GUnvbzM+0pOpmOJ6OhkMSozjRyl5tHl7+mZwFznU3Mk,17.90259,20.095464,18.937014 +0,/hiC5yD45GhNtMpJTVwVF5ZnNNWfEHttESv/+KH6go9FBoncns+CuQ1M92c0xzFA,2.290396,2.609893,2.523336 +0,0i9+1LVd2t4m1KScDuoJnAAEL0bz9UGXh2iLAGV/8Eq5hTsAliyraV7j6wsf2MZX,4.266491,16.607137,6.929279 +0,2PVcv0/vy8mIjzH7CiB9cJU737jRi6kAO7PhqkxEWA4GrxvaCsK3ZDckhD8YR04U,1.048596,2.309172,1.447266 +0,/kbT+MIfY7jEW2Nn+TKf5BKkLAmBslDqKuZ8HI2Ire6eMKinGP7aTt6SY77vt8PK,2.409783,7.79851,5.552826 +0,2cCRKSXs9v9tPskjJn8UmV15qynI3I3GLPTor/i81nxh5Ocwb7Fq1zwEN5zmtXyx,0.356014,1.468193,0.781642 +0,2qsVNbcvPD0H3cs/p/6MTpuvUBtr5QN3iavAmkCQBCtrHcEpgskYVJf/6WQkEhOF,2.688901,85.501739,37.676562 +0,30FpxnoytvMKoGeJYqwnuL2mPbvKlxpjPIfVT8LKqqFl9smEksQjEzG3lgxhT4U7,2.499018,6.534664,3.508567 +0,/f1C+4xtoPaBxD+FoFdM52MiaWXZEqPqSnBxz4q4XMzoXabJvdddHchLrxc6SlYc,1.894231,15.683948000000001,3.199591 +0,30tz9NOV1bIKUB6uIOy4qZT8BVk3escZ0bWXBD9oedOQN1Qi06pplm7WM9iMvvvL,0.959278,63.599827,14.983399 +0,2q0sA6/4VZfksnucqVASzYgruD9T0219afuGrf3O/u8jpGHpn0k3oWvY35I7x8F/,2.694575,11.900751,5.254742 +0,/Qq/SKTnRJ4RZPWKIdCyPmYQUf+csOcFYS+rVD+kc1OkLboeKHK7CLV88wVVLlm9,55.553347,99.204744,93.215797 +0,2PJIXiy3/m1MNf4SQAQ9xU+LDqsHvyyCIWA2X0nB9kgLyVNh3g9xxpAeUpkXgvK6,0.591771,0.676084,0.628958 +0,/VIH23Tzi+711eCdsc7apDAoSBY6hcNqCu8oaZcPrUQmUXUyH8HJS7Z1DyhR6j/I,3.136726,5.477124,4.036594 +0,3/bNFRCZog1M2qwSCcwMYYos07f/9kRsfeFyaOmT0mNx3ldbNvRRbMBhoseq0DIg,2.993954,5.787727,4.272684 +0,3F+42xbLAiVPTJeHpyDwx6ZXcxArLFiMGGZTa9jmsLIpxxkBqC1QwN8mAwzDqWsU,3.488578,6.178318,4.692753 +0,08iqvtN8ilXeJdfiL86fde5JRTrjuLTp8guNabblV7QqkkAL23TwtLdwuFtg4P9G,3.64316,22.992153,10.256498 +0,0ZiQ/5P4mgnYud0uaI1lZCIJaCzrlEJdnAz8bcFMLDFryCrUJJDecbWQbLo6K69J,2.924592,4.261972,3.543138 +0,28JHlDFu72v9lIhjKLF+h9g1pyPq9+ruVET8NnBGKksclnvwx0WlQ066nh6doanS,1.2833,1.589682,1.353967 +0,3ClcWgHBEw8WzFSqnMYKUib9Abx6RDf3ITN8ivUilopa4t+UTJU0Y/U25sT/1okS,1.387814,2.764987,2.116221 +0,/qj8bL8dARqa83U6HwU/bUF5kLq12PKaebM0/2WrM2a3oH+BCC/IxFf1PjIWBNC5,23.139855,97.95723,75.918613 +0,17KWFIkHqLQpslptyD70Qof2iISdFN4IzZBc/WffQeds/tDjuZ/1O4KY68u10srE,2.374392,4.461708,3.201956 +0,3fNyZ1Bf9hUvTVDbHwh8Fh3E2i0BgPPL3QkkS9T0cjanDQA0u0z/Y5TSdXldEJM8,1.199056,3.188352,2.14033 +0,3DYNNYBvhBlVPHsg1uoo7ZVjKX5k1c0gZsfc8W0o0cJ1WJAI8f049TnSu/yIfp/m,1.305688,4.700476,2.216015 +0,2e9qO7smv0DTuXeR3VEzG2jztbM9wntJ3bMt6/LlN3RZBQzIY9vP7FFsphJC9bsW,0.087859,22.556549,10.203507 +0,3EeP6Vgbh292ahLWQJrInzehyR4Nuj2vNtdWuEbvFjKcmCc2i6VZVN4dQTRfIVxR,7.663198,22.199953,15.461753 +0,/Vi7oNg70eAzJHXwsCM9nzwBMg4l7cMyZhUT14V48AWjIAQzVYsbdI0KwNlBAXhK,0.61977,2.24158,1.181003 +0,4/c7nkT3SrtRRrRCsZxUJXxJjUr61iivwZxdihwPAtpCDUawKfPUzaq/05zFYBAk,2.667104,7.383679,4.050989 +0,1HYzfmk+s4SedWtOeHk4j5Zj52ateGX5bRFK5K3rwTVdB2A2m+3iwbL1IEzx8ir8,5.366892,12.404488,6.877072 +0,3vPq2HsXQ9SQT+URugEaQ3ezvstcGd5Bt9FIiFx1SrUfUrvvi/Gj8Nyw5DZhvyAR,3.014601,13.363316,4.535414 +0,2YbmUab2MqBMpvMaoaMP3zVxOhgqkNytraWdt/GG261oZ/tmgEB239WsbKJh1bE3,3.121409,98.73306,51.009852 +0,1IYQhDD8NGuAFnVPnffmt1yk20B9JHQI5DMC4Ny09pe6Sedik6YCIIVeBHIEo34W,1.512222,3.53396,2.379989 +0,1SSMSUcJ7qKM7q2yka80+ZP0yYWiYxGQxcJ8KBi4+TsDpv5FLUS6i2DHLMtXB3An,3.9704,4.345802,4.126586 +0,17CA6zpUCxW+Pdh2g5W0kTdlPlgWbBKz4YrHvbGP/Hmf13nZQBc/VZO7EL6nM75C,8.052588,16.023168,13.600106 +0,04rwScmEvRr0aU/mAE7aKtKFwowolGaTAPyQHuaVKEFmEVMAKxo+7UBCk3vRRRBd,2.221999,5.809178,3.021269 +0,1H9K/TW4c28Aob/H1O53cyQT7pHRww0L1ocyn19z1+MxC+k+5M/PgEx9B3zT/CNf,2.985884,7.584636,3.995057 +0,2fgXOaNZld/i7o20ULRNhCeL+o+vgZYzDOIhQ2n28TcGxXR047+F1b7QiD+l1Ypf,0.068074,0.884132,0.239792 +0,+0bAvqEMTl/RGyFmuz4zJH3DLMI6Q+iHapYn5BpbZI+0PNNfM7PXm/mojw+e8Xpn,3.238927,4.259525,3.611511 +0,3OdFPkhA5Q99wyfxmgyxPAhWyDLkV++XFtPL8pD3w5f8mBWbokeBwgk4gmNIxCOL,0.461767,10.466777,4.985617 +0,0UE8gxQAdCGY+WGN9yd9CL2ZGGqoyGQ2PzQGndwecce24GyTUnuvREbnMWBZZ7bG,0.730279,6.785359,3.363408 +0,/Uk/U5u4d+KNQVPD63pklfxeWc2zDAkUnrVmvxgRTuqNFbn90h8TuU5GZ+OamGQ5,0.105853,1.739301,0.262678 +0,2im96EJfLyxm7TPrtOR9m6Inq4E4/qR+AvP0TbnSdvzXI+N9gHh7C2fzppzcR0i8,0.325895,2.012216,0.802437 +0,+CrXBNhT3ch1hYU2e9IGs7wfjSLRkKYgidJYc42LlsH39cYtwdAX3wKm1OGlf+Kl,18.815771,40.850218,22.470045 +0,/hXRrrjPrAw8xDSsJnEwLdkRN1e42zJLE/HO5DXk5gbGLRmRx5H9n4T0UmraZ8uW,0.361838,0.831517,0.423214 +0,/sTadDDv8poFeLWS7lD/SEtEgWCBHXB1IaiitjCru4AcK8Z32hNXlccdY8hlFzTp,3.203254,5.682829,3.859569 +0,333YaK054AGlUYuw0XWxYn5K8NwzhfzJ3mm4YNwB1YXKjgnO64ZItBNaBRQoOgXn,0.124811,0.384592,0.257066 +0,+ZkQz7QrPZIODz45A+60ZFnG18jnyYlSY/IgEe1Yj8c4cU8h+L8WDIKMv2uB7EwD,1.022656,6.508863,3.368929 +0,+X4DW7zA6whRfOWSHHONJ1u3f0DyBvC9PqDmXGFfbxT4aUGCC6kVm6fuGu9IsQyL,3.428286,15.183059,5.743137 +0,2KXdN0Pb4iyu0jVPocTTf3dwk2Z1LjIlAcydV3HURGIUn1dTycCDDCHg5G6l6i9t,0.282044,0.40582,0.311669 +0,2lGxRtUbBrRZmIYagONMp6vj0zHk4EGhu0aSH5Ws/CAXwBNZpCavBFDNCEcPsOkt,3.662958,8.660027,5.281077 +0,+IR6CKA4zeO742dCx1l2hR0plhTanlaxPWAbckkZNo6UAti83TpYPRXrrfdmm9Ar,0.086237,2.450893,0.969819 +0,2/hWJ+i+1FSHiD44Rr3S4xWMUHC6hIgoVBX2XGZ7cOFyLn9FWQ3Kevsocw7CGaxJ,1.499537,2.832775,1.900258 +0,1WnALZnCvRlfqnuRyrIf0wxQOGLhGuvxInHelnMBM6cw9G9hydTBxqV60JSL/48p,0.717535,5.066802,1.448937 diff --git a/opendc-trace/opendc-trace-azure/src/test/resources/trace/vmtable/vmtable.csv b/opendc-trace/opendc-trace-azure/src/test/resources/trace/vmtable/vmtable.csv new file mode 100644 index 00000000..299c518c --- /dev/null +++ b/opendc-trace/opendc-trace-azure/src/test/resources/trace/vmtable/vmtable.csv @@ -0,0 +1,10 @@ +x/XsOfHO4ocsV99i4NluqKDuxctW2MMVmwqOPAlg4wp8mqbBOe3wxBlQo0+Qx+uf,VDU4C8cqdr+ORcqquwMRcsBA2l0SC6lCPys0wdghKROuxPYysA2XYii9Y5ZkaYaq,Pc2VLB8aDxK2DCC96itq4vW/zVDp4wioAUiB3HoGSFYQ0o6/ZCegTpb9vEH4LeMTEWVObHTPRYEY81TYivZCMQ==,0,2591700,99.369869,3.4240942342446719,10.194309,Delay-insensitive,1,1.75 +H5CxmMoVcZSpjgGbohnVA3R+7uCTe/hM2ht2uIYi3t7KwXB4tkBxmZHBrt2A4x+n,BSXOcywx8pUU0DueDo6UMol1YzR6tn47KLEKaoXp0a1bf2PpzJ7n7lLlmhQ0OJf9,3J17LcV4gXjFat62qhVFRfoiWArHnY763HVqqI6orJCfV8h5j9yeotRMnCLlX1ooGkMyQ2MDOuY1oz111AGN9Q==,0,1539300,100,6.18178366757598,33.98136,Interactive,1,0.75 +wR/G1YUjpMP4zUbxGM/XJNhYS8cAK3SGKM2tqhF7VdeTUYHGktQiKQNoDTtYvnAc,VDU4C8cqdr+ORcqquwMRcsBA2l0SC6lCPys0wdghKROuxPYysA2XYii9Y5ZkaYaq,Pc2VLB8aDxK2DCC96itq4vW/zVDp4wioAUiB3HoGSFYQ0o6/ZCegTpb9vEH4LeMT+hzuAPZnYJMu61JNhTDF/Q==,2188800,2591700,99.569027,3.5736346071428589,7.92425,Delay-insensitive,1,1.75 +1XiU+KpvIa3T1XP8kk3ZY71Of03+ogFL5Pag9Mc2jBuh0YqeW0Zcb9lepKLdPEDg,8u+M3WcFp8pq183WoMB79PhK7xUzbaviOBv0qWN6Xn4mbuNVM1GYJlIjswgit+k1,DHbeI+pYTYFjH8JAF8SewM0z/4SqQctvxcBRGIRglBmeLW5VjISVEw7/IpY345kHwHtk7+SKlEwc1upnT3PigA==,0,2591700,99.405085,16.2876105408034,95.69789,Delay-insensitive,8,56 +z5i2HiSaz6ZdLR6PXdnDjGva3jIlkMPXx23VtfXx9q3dXFRBQrxCOj7sHUsrmFLa,VDU4C8cqdr+ORcqquwMRcsBA2l0SC6lCPys0wdghKROuxPYysA2XYii9Y5ZkaYaq,Pc2VLB8aDxK2DCC96itq4vW/zVDp4wioAUiB3HoGSFYQ0o6/ZCegTpb9vEH4LeMTEWVObHTPRYEY81TYivZCMQ==,0,2188500,98.967961,3.036037969572376,9.445484,Delay-insensitive,1,1.75 +n77nP00/UpJmT+Yx1ZkDphvAqPoHU8yUpDCwyUtPNlRENqvNp6Inya1eiy7VP1+x,8u+M3WcFp8pq183WoMB79PhK7xUzbaviOBv0qWN6Xn4mbuNVM1GYJlIjswgit+k1,DHbeI+pYTYFjH8JAF8SewM0z/4SqQctvxcBRGIRglBmeLW5VjISVEw7/IpY345kHwHtk7+SKlEwc1upnT3PigA==,0,2591700,99.448473,34.17401179027781,98.553018,Delay-insensitive,8,56 +aTSXW3N1KepxKYwKumd7T1+f7DkGolSKV8EArYAdctjD26YqSMKezCVSdvmSgqIQ,dBub/K+8I6jD9t2ExqUdRNlVxPPvDWqICA9Sr+yzcBZ/nNuC0W2swapPoBNIRoF+,C9GnRqFF2lzW/elUsLEwhyAQj9D/d5JIOOgvwfPL1aINf+m1f29G7nXhr6mRPGbiofmjfP9GkepcWz9LX5tp7Q==,2290500,2292300,94.113335,32.461745857142866,94.113335,Unkown,1,1.75 +uSkGH3DS6BVo3RFnw3GZb6WCFSmGgvgKi4HIj08yxO4f5ladUQc3pqDOtqRN0W9+,8u+M3WcFp8pq183WoMB79PhK7xUzbaviOBv0qWN6Xn4mbuNVM1GYJlIjswgit+k1,DHbeI+pYTYFjH8JAF8SewM0z/4SqQctvxcBRGIRglBmeLW5VjISVEw7/IpY345kHwHtk7+SKlEwc1upnT3PigA==,0,2591700,99.276369,1.3500837561060346,23.450372,Delay-insensitive,8,56 +ztRY/Sk5mrSFFcpy2usZ0YZZ7Eumq130/5BB8WVXfWaYvFkU+EhXUQ2kOFkCXuCw,dBub/K+8I6jD9t2ExqUdRNlVxPPvDWqICA9Sr+yzcBZ/nNuC0W2swapPoBNIRoF+,C9GnRqFF2lzW/elUsLEwhyAQj9D/d5JIOOgvwfPL1aINf+m1f29G7nXhr6mRPGbiofmjfP9GkepcWz9LX5tp7Q==,2281200,2300100,98.671595,43.724999781249991,98.13707,Unkown,1,1.75 +bJoIb8ras2ZNNSdAz3CAu4HYRd6k9MOqij/+6/+/5XaYw4+EoGdUEr74DCi974gJ,8u+M3WcFp8pq183WoMB79PhK7xUzbaviOBv0qWN6Xn4mbuNVM1GYJlIjswgit+k1,DHbeI+pYTYFjH8JAF8SewM0z/4SqQctvxcBRGIRglBmeLW5VjISVEw7/IpY345kHwHtk7+SKlEwc1upnT3PigA==,0,2591700,99.498748,18.989459534151351,94.751666,Interactive,8,56 -- cgit v1.2.3 From 9b25eef67911d0aec6a36c82a34cd0e39b13b073 Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Sun, 19 Sep 2021 12:56:26 +0200 Subject: feat(trace): Add support for internal OpenDC VM trace format This change adds official support to the trace library for the internal VM trace format used by OpenDC for its experiments. This is a compact format that uses Parquet to store the virtual machine trace data in two Parquet files. --- opendc-trace/opendc-trace-opendc/build.gradle.kts | 39 +++++++ .../opendc/trace/opendc/OdcVmResourceStateTable.kt | 53 ++++++++++ .../trace/opendc/OdcVmResourceStateTableReader.kt | 103 ++++++++++++++++++ .../org/opendc/trace/opendc/OdcVmResourceTable.kt | 53 ++++++++++ .../trace/opendc/OdcVmResourceTableReader.kt | 103 ++++++++++++++++++ .../kotlin/org/opendc/trace/opendc/OdcVmTrace.kt | 49 +++++++++ .../org/opendc/trace/opendc/OdcVmTraceFormat.kt | 82 +++++++++++++++ .../services/org.opendc.trace.spi.TraceFormat | 1 + .../opendc/trace/opendc/OdcVmTraceFormatTest.kt | 117 +++++++++++++++++++++ .../src/test/resources/trace/meta.parquet | Bin 0 -> 1582 bytes .../src/test/resources/trace/trace.parquet | Bin 0 -> 83524 bytes 11 files changed, 600 insertions(+) create mode 100644 opendc-trace/opendc-trace-opendc/build.gradle.kts create mode 100644 opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTable.kt create mode 100644 opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTableReader.kt create mode 100644 opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTable.kt create mode 100644 opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTableReader.kt create mode 100644 opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmTrace.kt create mode 100644 opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmTraceFormat.kt create mode 100644 opendc-trace/opendc-trace-opendc/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat create mode 100644 opendc-trace/opendc-trace-opendc/src/test/kotlin/org/opendc/trace/opendc/OdcVmTraceFormatTest.kt create mode 100644 opendc-trace/opendc-trace-opendc/src/test/resources/trace/meta.parquet create mode 100644 opendc-trace/opendc-trace-opendc/src/test/resources/trace/trace.parquet (limited to 'opendc-trace') diff --git a/opendc-trace/opendc-trace-opendc/build.gradle.kts b/opendc-trace/opendc-trace-opendc/build.gradle.kts new file mode 100644 index 00000000..b9c242a1 --- /dev/null +++ b/opendc-trace/opendc-trace-opendc/build.gradle.kts @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +description = "Support for OpenDC-specific trace formats" + +/* Build configuration */ +plugins { + `kotlin-library-conventions` + `testing-conventions` + `jacoco-conventions` +} + +dependencies { + api(platform(projects.opendcPlatform)) + api(projects.opendcTrace.opendcTraceApi) + + implementation(projects.opendcTrace.opendcTraceParquet) + + testRuntimeOnly(libs.slf4j.simple) +} diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTable.kt b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTable.kt new file mode 100644 index 00000000..32a71052 --- /dev/null +++ b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTable.kt @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.opendc + +import org.apache.avro.generic.GenericRecord +import org.opendc.trace.* +import org.opendc.trace.util.parquet.LocalParquetReader +import java.nio.file.Path + +/** + * The resource state [Table] in the OpenDC virtual machine trace format. + */ +internal class OdcVmResourceStateTable(private val path: Path) : Table { + override val name: String = TABLE_RESOURCE_STATES + override val isSynthetic: Boolean = false + + override val columns: List> = listOf( + RESOURCE_STATE_ID, + RESOURCE_STATE_TIMESTAMP, + RESOURCE_STATE_DURATION, + RESOURCE_STATE_NCPUS, + RESOURCE_STATE_CPU_USAGE, + ) + + override fun newReader(): TableReader { + val reader = LocalParquetReader(path.resolve("trace.parquet")) + return OdcVmResourceStateTableReader(reader) + } + + override fun newReader(partition: String): TableReader { + throw IllegalArgumentException("Unknown partition $partition") + } +} diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTableReader.kt b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTableReader.kt new file mode 100644 index 00000000..8850ad39 --- /dev/null +++ b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTableReader.kt @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.opendc + +import org.apache.avro.generic.GenericRecord +import org.opendc.trace.* +import org.opendc.trace.util.parquet.LocalParquetReader +import java.time.Duration +import java.time.Instant + +/** + * A [TableReader] implementation for the OpenDC virtual machine trace format. + */ +internal class OdcVmResourceStateTableReader(private val reader: LocalParquetReader) : TableReader { + /** + * The current record. + */ + private var record: GenericRecord? = null + + override fun nextRow(): Boolean { + record = reader.read() + return record != null + } + + override fun hasColumn(column: TableColumn<*>): Boolean { + return when (column) { + RESOURCE_STATE_ID -> true + RESOURCE_STATE_TIMESTAMP -> true + RESOURCE_STATE_DURATION -> true + RESOURCE_STATE_NCPUS -> true + RESOURCE_STATE_CPU_USAGE -> true + else -> false + } + } + + override fun get(column: TableColumn): T { + val record = checkNotNull(record) { "Reader in invalid state" } + + @Suppress("UNCHECKED_CAST") + val res: Any = when (column) { + RESOURCE_STATE_ID -> record["id"].toString() + RESOURCE_STATE_TIMESTAMP -> Instant.ofEpochMilli(record["time"] as Long) + RESOURCE_STATE_DURATION -> Duration.ofMillis(record["duration"] as Long) + RESOURCE_STATE_NCPUS -> record["cores"] + RESOURCE_STATE_CPU_USAGE -> (record["cpuUsage"] as Number).toDouble() + else -> throw IllegalArgumentException("Invalid column") + } + + @Suppress("UNCHECKED_CAST") + return res as T + } + + override fun getBoolean(column: TableColumn): Boolean { + throw IllegalArgumentException("Invalid column") + } + + override fun getInt(column: TableColumn): Int { + val record = checkNotNull(record) { "Reader in invalid state" } + + return when (column) { + RESOURCE_STATE_NCPUS -> record["cores"] as Int + else -> throw IllegalArgumentException("Invalid column") + } + } + + override fun getLong(column: TableColumn): Long { + throw IllegalArgumentException("Invalid column") + } + + override fun getDouble(column: TableColumn): Double { + val record = checkNotNull(record) { "Reader in invalid state" } + return when (column) { + RESOURCE_STATE_CPU_USAGE -> (record["cpuUsage"] as Number).toDouble() + else -> throw IllegalArgumentException("Invalid column") + } + } + + override fun close() { + reader.close() + } + + override fun toString(): String = "OdcVmResourceStateTableReader" +} diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTable.kt b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTable.kt new file mode 100644 index 00000000..9927afee --- /dev/null +++ b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTable.kt @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.opendc + +import org.apache.avro.generic.GenericRecord +import org.opendc.trace.* +import org.opendc.trace.util.parquet.LocalParquetReader +import java.nio.file.Path + +/** + * The resource [Table] for the OpenDC virtual machine trace format. + */ +internal class OdcVmResourceTable(private val path: Path) : Table { + override val name: String = TABLE_RESOURCES + override val isSynthetic: Boolean = false + + override val columns: List> = listOf( + RESOURCE_ID, + RESOURCE_START_TIME, + RESOURCE_STOP_TIME, + RESOURCE_NCPUS, + RESOURCE_MEM_CAPACITY + ) + + override fun newReader(): TableReader { + val reader = LocalParquetReader(path.resolve("meta.parquet")) + return OdcVmResourceTableReader(reader) + } + + override fun newReader(partition: String): TableReader { + throw IllegalArgumentException("Unknown partition $partition") + } +} diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTableReader.kt b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTableReader.kt new file mode 100644 index 00000000..fe4379e6 --- /dev/null +++ b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTableReader.kt @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.opendc + +import org.apache.avro.generic.GenericRecord +import org.opendc.trace.* +import org.opendc.trace.util.parquet.LocalParquetReader +import java.time.Instant + +/** + * A [TableReader] implementation for the resources table in the OpenDC virtual machine trace format. + */ +internal class OdcVmResourceTableReader(private val reader: LocalParquetReader) : TableReader { + /** + * The current record. + */ + private var record: GenericRecord? = null + + override fun nextRow(): Boolean { + record = reader.read() + return record != null + } + + override fun hasColumn(column: TableColumn<*>): Boolean { + return when (column) { + RESOURCE_ID -> true + RESOURCE_START_TIME -> true + RESOURCE_STOP_TIME -> true + RESOURCE_NCPUS -> true + RESOURCE_MEM_CAPACITY -> true + else -> false + } + } + + override fun get(column: TableColumn): T { + val record = checkNotNull(record) { "Reader in invalid state" } + + @Suppress("UNCHECKED_CAST") + val res: Any = when (column) { + RESOURCE_ID -> record["id"].toString() + RESOURCE_START_TIME -> Instant.ofEpochMilli(record["submissionTime"] as Long) + RESOURCE_STOP_TIME -> Instant.ofEpochMilli(record["endTime"] as Long) + RESOURCE_NCPUS -> getInt(RESOURCE_NCPUS) + RESOURCE_MEM_CAPACITY -> getDouble(RESOURCE_MEM_CAPACITY) + else -> throw IllegalArgumentException("Invalid column") + } + + @Suppress("UNCHECKED_CAST") + return res as T + } + + override fun getBoolean(column: TableColumn): Boolean { + throw IllegalArgumentException("Invalid column") + } + + override fun getInt(column: TableColumn): Int { + val record = checkNotNull(record) { "Reader in invalid state" } + + return when (column) { + RESOURCE_NCPUS -> record["maxCores"] as Int + else -> throw IllegalArgumentException("Invalid column") + } + } + + override fun getLong(column: TableColumn): Long { + throw IllegalArgumentException("Invalid column") + } + + override fun getDouble(column: TableColumn): Double { + val record = checkNotNull(record) { "Reader in invalid state" } + + return when (column) { + RESOURCE_MEM_CAPACITY -> (record["requiredMemory"] as Number).toDouble() * 1000.0 // MB to KB + else -> throw IllegalArgumentException("Invalid column") + } + } + + override fun close() { + reader.close() + } + + override fun toString(): String = "OdcVmResourceTableReader" +} diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmTrace.kt b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmTrace.kt new file mode 100644 index 00000000..3e5029b4 --- /dev/null +++ b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmTrace.kt @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.opendc + +import org.opendc.trace.TABLE_RESOURCES +import org.opendc.trace.TABLE_RESOURCE_STATES +import org.opendc.trace.Table +import org.opendc.trace.Trace +import java.nio.file.Path + +/** + * A [Trace] in the OpenDC virtual machine trace format. + */ +public class OdcVmTrace internal constructor(private val path: Path) : Trace { + override val tables: List = listOf(TABLE_RESOURCES, TABLE_RESOURCE_STATES) + + override fun containsTable(name: String): Boolean = + name == TABLE_RESOURCES || name == TABLE_RESOURCE_STATES + + override fun getTable(name: String): Table? { + return when (name) { + TABLE_RESOURCES -> OdcVmResourceTable(path) + TABLE_RESOURCE_STATES -> OdcVmResourceStateTable(path) + else -> null + } + } + + override fun toString(): String = "OdcVmTrace[$path]" +} diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmTraceFormat.kt b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmTraceFormat.kt new file mode 100644 index 00000000..b69b5edf --- /dev/null +++ b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmTraceFormat.kt @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.opendc + +import org.apache.avro.Schema +import org.apache.avro.SchemaBuilder +import org.opendc.trace.spi.TraceFormat +import java.net.URL +import java.nio.file.Paths +import kotlin.io.path.exists + +/** + * A [TraceFormat] implementation of the OpenDC virtual machine trace format. + */ +public class OdcVmTraceFormat : TraceFormat { + /** + * The name of this trace format. + */ + override val name: String = "opendc-vm" + + /** + * Open a Bitbrains Parquet trace. + */ + override fun open(url: URL): OdcVmTrace { + val path = Paths.get(url.toURI()) + require(path.exists()) { "URL $url does not exist" } + return OdcVmTrace(path) + } + + public companion object { + /** + * Schema for the resources table in the trace. + */ + @JvmStatic + public val RESOURCES_SCHEMA: Schema = SchemaBuilder + .record("resource") + .namespace("org.opendc.trace.opendc") + .fields() + .requiredString("id") + .requiredLong("submissionTime") + .requiredLong("endTime") + .requiredInt("maxCores") + .requiredLong("requiredMemory") + .endRecord() + + /** + * Schema for the resource states table in the trace. + */ + @JvmStatic + public val RESOURCE_STATES_SCHEMA: Schema = SchemaBuilder + .record("resource_state") + .namespace("org.opendc.trace.opendc") + .fields() + .requiredString("id") + .requiredLong("time") + .requiredLong("duration") + .requiredInt("cores") + .requiredDouble("cpuUsage") + .requiredLong("flops") + .endRecord() + } +} diff --git a/opendc-trace/opendc-trace-opendc/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat b/opendc-trace/opendc-trace-opendc/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat new file mode 100644 index 00000000..94094af4 --- /dev/null +++ b/opendc-trace/opendc-trace-opendc/src/main/resources/META-INF/services/org.opendc.trace.spi.TraceFormat @@ -0,0 +1 @@ +org.opendc.trace.opendc.OdcVmTraceFormat diff --git a/opendc-trace/opendc-trace-opendc/src/test/kotlin/org/opendc/trace/opendc/OdcVmTraceFormatTest.kt b/opendc-trace/opendc-trace-opendc/src/test/kotlin/org/opendc/trace/opendc/OdcVmTraceFormatTest.kt new file mode 100644 index 00000000..21f1174c --- /dev/null +++ b/opendc-trace/opendc-trace-opendc/src/test/kotlin/org/opendc/trace/opendc/OdcVmTraceFormatTest.kt @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.opendc + +import org.junit.jupiter.api.Assertions.* +import org.junit.jupiter.api.Test +import org.junit.jupiter.api.assertDoesNotThrow +import org.junit.jupiter.api.assertThrows +import org.opendc.trace.* +import java.io.File +import java.net.URL + +/** + * Test suite for the [OdcVmTraceFormat] implementation. + */ +internal class OdcVmTraceFormatTest { + private val format = OdcVmTraceFormat() + + @Test + fun testTraceExists() { + val url = File("src/test/resources/trace").toURI().toURL() + assertDoesNotThrow { format.open(url) } + } + + @Test + fun testTraceDoesNotExists() { + val url = File("src/test/resources/trace").toURI().toURL() + assertThrows { + format.open(URL(url.toString() + "help")) + } + } + + @Test + fun testTables() { + val url = File("src/test/resources/trace").toURI().toURL() + val trace = format.open(url) + + assertEquals(listOf(TABLE_RESOURCES, TABLE_RESOURCE_STATES), trace.tables) + } + + @Test + fun testTableExists() { + val url = File("src/test/resources/trace").toURI().toURL() + val table = format.open(url).getTable(TABLE_RESOURCE_STATES) + + assertNotNull(table) + assertDoesNotThrow { table!!.newReader() } + } + + @Test + fun testTableDoesNotExist() { + val url = File("src/test/resources/trace").toURI().toURL() + val trace = format.open(url) + + assertFalse(trace.containsTable("test")) + assertNull(trace.getTable("test")) + } + + @Test + fun testResources() { + val url = File("src/test/resources/trace").toURI().toURL() + val trace = format.open(url) + + val reader = trace.getTable(TABLE_RESOURCES)!!.newReader() + + assertAll( + { assertTrue(reader.nextRow()) }, + { assertEquals("1019", reader.get(RESOURCE_ID)) }, + { assertTrue(reader.nextRow()) }, + { assertEquals("1023", reader.get(RESOURCE_ID)) }, + { assertTrue(reader.nextRow()) }, + { assertEquals("1052", reader.get(RESOURCE_ID)) }, + { assertTrue(reader.nextRow()) }, + { assertEquals("1073", reader.get(RESOURCE_ID)) }, + { assertFalse(reader.nextRow()) } + ) + + reader.close() + } + + @Test + fun testSmoke() { + val url = File("src/test/resources/trace").toURI().toURL() + val trace = format.open(url) + + val reader = trace.getTable(TABLE_RESOURCE_STATES)!!.newReader() + + assertAll( + { assertTrue(reader.nextRow()) }, + { assertEquals("1019", reader.get(RESOURCE_STATE_ID)) }, + { assertEquals(1376314846, reader.get(RESOURCE_STATE_TIMESTAMP).epochSecond) }, + { assertEquals(0.0, reader.getDouble(RESOURCE_STATE_CPU_USAGE), 0.01) } + ) + + reader.close() + } +} diff --git a/opendc-trace/opendc-trace-opendc/src/test/resources/trace/meta.parquet b/opendc-trace/opendc-trace-opendc/src/test/resources/trace/meta.parquet new file mode 100644 index 00000000..d6ff09d8 Binary files /dev/null and b/opendc-trace/opendc-trace-opendc/src/test/resources/trace/meta.parquet differ diff --git a/opendc-trace/opendc-trace-opendc/src/test/resources/trace/trace.parquet b/opendc-trace/opendc-trace-opendc/src/test/resources/trace/trace.parquet new file mode 100644 index 00000000..5b6fa6b7 Binary files /dev/null and b/opendc-trace/opendc-trace-opendc/src/test/resources/trace/trace.parquet differ -- cgit v1.2.3 From 474044649a67cfcc857615b6a0f8387a2954abbd Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Thu, 16 Sep 2021 12:34:53 +0200 Subject: feat(trace): Update OpenDC VM trace format This change optimizes the OpenDC VM trace format by removing unnecessary columns as well as optimizing the writer settings. The new implementation still supports reading the old trace format in case users run OpenDC with older workload traces. --- .../kotlin/org/opendc/trace/ResourceColumns.kt | 2 +- .../org/opendc/trace/ResourceStateColumns.kt | 2 +- .../opendc/trace/azure/AzureResourceStateTable.kt | 2 +- .../org/opendc/trace/azure/AzureResourceTable.kt | 2 +- .../opendc/trace/azure/AzureResourceTableReader.kt | 6 +-- .../org/opendc/trace/azure/AzureTraceFormatTest.kt | 2 +- .../bitbrains/BitbrainsExResourceStateTable.kt | 4 +- .../BitbrainsExResourceStateTableReader.kt | 8 +-- .../trace/bitbrains/BitbrainsResourceStateTable.kt | 4 +- .../bitbrains/BitbrainsResourceStateTableReader.kt | 6 +-- .../opendc/trace/opendc/OdcVmResourceStateTable.kt | 2 +- .../trace/opendc/OdcVmResourceStateTableReader.kt | 54 +++++++++++++++++---- .../org/opendc/trace/opendc/OdcVmResourceTable.kt | 4 +- .../trace/opendc/OdcVmResourceTableReader.kt | 51 ++++++++++++++++--- .../org/opendc/trace/opendc/OdcVmTraceFormat.kt | 16 +++--- .../opendc/trace/opendc/OdcVmTraceFormatTest.kt | 26 +++++----- .../src/test/resources/trace-v2.0/meta.parquet | Bin 0 -> 1582 bytes .../src/test/resources/trace-v2.0/trace.parquet | Bin 0 -> 83524 bytes .../src/test/resources/trace-v2.1/meta.parquet | Bin 0 -> 1679 bytes .../src/test/resources/trace-v2.1/trace.parquet | Bin 0 -> 65174 bytes .../src/test/resources/trace/meta.parquet | Bin 1582 -> 0 bytes .../src/test/resources/trace/trace.parquet | Bin 83524 -> 0 bytes 22 files changed, 132 insertions(+), 59 deletions(-) create mode 100644 opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.0/meta.parquet create mode 100644 opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.0/trace.parquet create mode 100644 opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.1/meta.parquet create mode 100644 opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.1/trace.parquet delete mode 100644 opendc-trace/opendc-trace-opendc/src/test/resources/trace/meta.parquet delete mode 100644 opendc-trace/opendc-trace-opendc/src/test/resources/trace/trace.parquet (limited to 'opendc-trace') diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceColumns.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceColumns.kt index e2e5ea6d..219002e0 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceColumns.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceColumns.kt @@ -47,7 +47,7 @@ public val RESOURCE_STOP_TIME: TableColumn = TableColumn("resource:stop * Number of CPUs for the resource. */ @JvmField -public val RESOURCE_NCPUS: TableColumn = intColumn("resource:num_cpus") +public val RESOURCE_CPU_COUNT: TableColumn = intColumn("resource:cpu_count") /** * Memory capacity for the resource in KB. diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceStateColumns.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceStateColumns.kt index 1933967e..b683923b 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceStateColumns.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceStateColumns.kt @@ -60,7 +60,7 @@ public val RESOURCE_STATE_POWERED_ON: TableColumn = booleanColumn("reso * Number of CPUs for the resource. */ @JvmField -public val RESOURCE_STATE_NCPUS: TableColumn = intColumn("resource_state:ncpus") +public val RESOURCE_STATE_CPU_COUNT: TableColumn = intColumn("resource_state:cpu_count") /** * Total CPU capacity of the resource in MHz. diff --git a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTable.kt b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTable.kt index 189ab52a..84c9b347 100644 --- a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTable.kt +++ b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTable.kt @@ -68,9 +68,9 @@ internal class AzureResourceStateTable(private val factory: CsvFactory, path: Pa delegate.close() delegate = nextDelegate() + this.delegate = delegate } - this.delegate = delegate return delegate != null } diff --git a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTable.kt b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTable.kt index d9f6f156..96ee3158 100644 --- a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTable.kt +++ b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTable.kt @@ -38,7 +38,7 @@ internal class AzureResourceTable(private val factory: CsvFactory, private val p RESOURCE_ID, RESOURCE_START_TIME, RESOURCE_STOP_TIME, - RESOURCE_NCPUS, + RESOURCE_CPU_COUNT, RESOURCE_MEM_CAPACITY ) diff --git a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTableReader.kt b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTableReader.kt index d3970b07..5ea97483 100644 --- a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTableReader.kt +++ b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTableReader.kt @@ -67,7 +67,7 @@ internal class AzureResourceTableReader(private val parser: CsvParser) : TableRe RESOURCE_ID -> true RESOURCE_START_TIME -> true RESOURCE_STOP_TIME -> true - RESOURCE_NCPUS -> true + RESOURCE_CPU_COUNT -> true RESOURCE_MEM_CAPACITY -> true else -> false } @@ -78,7 +78,7 @@ internal class AzureResourceTableReader(private val parser: CsvParser) : TableRe RESOURCE_ID -> id RESOURCE_START_TIME -> startTime RESOURCE_STOP_TIME -> stopTime - RESOURCE_NCPUS -> getInt(RESOURCE_NCPUS) + RESOURCE_CPU_COUNT -> getInt(RESOURCE_CPU_COUNT) RESOURCE_MEM_CAPACITY -> getDouble(RESOURCE_MEM_CAPACITY) else -> throw IllegalArgumentException("Invalid column") } @@ -93,7 +93,7 @@ internal class AzureResourceTableReader(private val parser: CsvParser) : TableRe override fun getInt(column: TableColumn): Int { return when (column) { - RESOURCE_NCPUS -> cpuCores + RESOURCE_CPU_COUNT -> cpuCores else -> throw IllegalArgumentException("Invalid column") } } diff --git a/opendc-trace/opendc-trace-azure/src/test/kotlin/org/opendc/trace/azure/AzureTraceFormatTest.kt b/opendc-trace/opendc-trace-azure/src/test/kotlin/org/opendc/trace/azure/AzureTraceFormatTest.kt index 20375547..e5735f0d 100644 --- a/opendc-trace/opendc-trace-azure/src/test/kotlin/org/opendc/trace/azure/AzureTraceFormatTest.kt +++ b/opendc-trace/opendc-trace-azure/src/test/kotlin/org/opendc/trace/azure/AzureTraceFormatTest.kt @@ -87,7 +87,7 @@ class AzureTraceFormatTest { assertAll( { assertTrue(reader.nextRow()) }, { assertEquals("x/XsOfHO4ocsV99i4NluqKDuxctW2MMVmwqOPAlg4wp8mqbBOe3wxBlQo0+Qx+uf", reader.get(RESOURCE_ID)) }, - { assertEquals(1, reader.getInt(RESOURCE_NCPUS)) }, + { assertEquals(1, reader.getInt(RESOURCE_CPU_COUNT)) }, { assertEquals(1750000.0, reader.getDouble(RESOURCE_MEM_CAPACITY)) }, ) diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTable.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTable.kt index 4db2bace..4a60dff3 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTable.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTable.kt @@ -50,7 +50,7 @@ internal class BitbrainsExResourceStateTable(path: Path) : Table { RESOURCE_STATE_ID, RESOURCE_STATE_CLUSTER_ID, RESOURCE_STATE_TIMESTAMP, - RESOURCE_STATE_NCPUS, + RESOURCE_STATE_CPU_COUNT, RESOURCE_STATE_CPU_CAPACITY, RESOURCE_STATE_CPU_USAGE, RESOURCE_STATE_CPU_USAGE_PCT, @@ -77,9 +77,9 @@ internal class BitbrainsExResourceStateTable(path: Path) : Table { delegate.close() delegate = nextDelegate() + this.delegate = delegate } - this.delegate = delegate return delegate != null } diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTableReader.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTableReader.kt index 6fe5d397..f1cf7307 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTableReader.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTableReader.kt @@ -81,7 +81,7 @@ internal class BitbrainsExResourceStateTableReader(private val reader: BufferedR COL_POWERED_ON -> poweredOn = field.toInt(10) == 1 COL_CPU_CAPACITY -> cpuCapacity = field.toDouble() COL_ID -> id = field.trim() - COL_MEM_CAPACITY -> memCapacity = field.toDouble() + COL_MEM_CAPACITY -> memCapacity = field.toDouble() * 1000 // Convert from MB to KB } } @@ -93,7 +93,7 @@ internal class BitbrainsExResourceStateTableReader(private val reader: BufferedR RESOURCE_STATE_ID -> true RESOURCE_STATE_CLUSTER_ID -> true RESOURCE_STATE_TIMESTAMP -> true - RESOURCE_STATE_NCPUS -> true + RESOURCE_STATE_CPU_COUNT -> true RESOURCE_STATE_CPU_CAPACITY -> true RESOURCE_STATE_CPU_USAGE -> true RESOURCE_STATE_CPU_USAGE_PCT -> true @@ -111,7 +111,7 @@ internal class BitbrainsExResourceStateTableReader(private val reader: BufferedR RESOURCE_STATE_ID -> id RESOURCE_STATE_CLUSTER_ID -> cluster RESOURCE_STATE_TIMESTAMP -> timestamp - RESOURCE_STATE_NCPUS -> getInt(RESOURCE_STATE_NCPUS) + RESOURCE_STATE_CPU_COUNT -> getInt(RESOURCE_STATE_CPU_COUNT) RESOURCE_STATE_CPU_CAPACITY -> getDouble(RESOURCE_STATE_CPU_CAPACITY) RESOURCE_STATE_CPU_USAGE -> getDouble(RESOURCE_STATE_CPU_USAGE) RESOURCE_STATE_CPU_USAGE_PCT -> getDouble(RESOURCE_STATE_CPU_USAGE_PCT) @@ -134,7 +134,7 @@ internal class BitbrainsExResourceStateTableReader(private val reader: BufferedR override fun getInt(column: TableColumn): Int { return when (column) { - RESOURCE_STATE_NCPUS -> cpuCores + RESOURCE_STATE_CPU_COUNT -> cpuCores else -> throw IllegalArgumentException("Invalid column") } } diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt index c9e5954d..7241b18b 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt @@ -50,7 +50,7 @@ internal class BitbrainsResourceStateTable(private val factory: CsvFactory, path override val columns: List> = listOf( RESOURCE_STATE_ID, RESOURCE_STATE_TIMESTAMP, - RESOURCE_STATE_NCPUS, + RESOURCE_STATE_CPU_COUNT, RESOURCE_STATE_CPU_CAPACITY, RESOURCE_STATE_CPU_USAGE, RESOURCE_STATE_CPU_USAGE_PCT, @@ -78,9 +78,9 @@ internal class BitbrainsResourceStateTable(private val factory: CsvFactory, path delegate.close() delegate = nextDelegate() + this.delegate = delegate } - this.delegate = delegate return delegate != null } diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTableReader.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTableReader.kt index dab784c2..56e66f5c 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTableReader.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTableReader.kt @@ -115,7 +115,7 @@ internal class BitbrainsResourceStateTableReader(private val partition: String, return when (column) { RESOURCE_STATE_ID -> true RESOURCE_STATE_TIMESTAMP -> true - RESOURCE_STATE_NCPUS -> true + RESOURCE_STATE_CPU_COUNT -> true RESOURCE_STATE_CPU_CAPACITY -> true RESOURCE_STATE_CPU_USAGE -> true RESOURCE_STATE_CPU_USAGE_PCT -> true @@ -133,7 +133,7 @@ internal class BitbrainsResourceStateTableReader(private val partition: String, val res: Any? = when (column) { RESOURCE_STATE_ID -> partition RESOURCE_STATE_TIMESTAMP -> timestamp - RESOURCE_STATE_NCPUS -> cpuCores + RESOURCE_STATE_CPU_COUNT -> cpuCores RESOURCE_STATE_CPU_CAPACITY -> cpuCapacity RESOURCE_STATE_CPU_USAGE -> cpuUsage RESOURCE_STATE_CPU_USAGE_PCT -> cpuUsagePct @@ -156,7 +156,7 @@ internal class BitbrainsResourceStateTableReader(private val partition: String, override fun getInt(column: TableColumn): Int { return when (column) { - RESOURCE_STATE_NCPUS -> cpuCores + RESOURCE_STATE_CPU_COUNT -> cpuCores else -> throw IllegalArgumentException("Invalid column") } } diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTable.kt b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTable.kt index 32a71052..bee4ba7e 100644 --- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTable.kt +++ b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTable.kt @@ -38,7 +38,7 @@ internal class OdcVmResourceStateTable(private val path: Path) : Table { RESOURCE_STATE_ID, RESOURCE_STATE_TIMESTAMP, RESOURCE_STATE_DURATION, - RESOURCE_STATE_NCPUS, + RESOURCE_STATE_CPU_COUNT, RESOURCE_STATE_CPU_USAGE, ) diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTableReader.kt b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTableReader.kt index 8850ad39..df3bcfa6 100644 --- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTableReader.kt +++ b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTableReader.kt @@ -22,6 +22,7 @@ package org.opendc.trace.opendc +import org.apache.avro.Schema import org.apache.avro.generic.GenericRecord import org.opendc.trace.* import org.opendc.trace.util.parquet.LocalParquetReader @@ -37,8 +38,20 @@ internal class OdcVmResourceStateTableReader(private val reader: LocalParquetRea */ private var record: GenericRecord? = null + /** + * A flag to indicate that the columns have been initialized. + */ + private var hasInitializedColumns = false + override fun nextRow(): Boolean { - record = reader.read() + val record = reader.read() + this.record = record + + if (!hasInitializedColumns && record != null) { + initColumns(record.schema) + hasInitializedColumns = true + } + return record != null } @@ -47,7 +60,7 @@ internal class OdcVmResourceStateTableReader(private val reader: LocalParquetRea RESOURCE_STATE_ID -> true RESOURCE_STATE_TIMESTAMP -> true RESOURCE_STATE_DURATION -> true - RESOURCE_STATE_NCPUS -> true + RESOURCE_STATE_CPU_COUNT -> true RESOURCE_STATE_CPU_USAGE -> true else -> false } @@ -58,11 +71,11 @@ internal class OdcVmResourceStateTableReader(private val reader: LocalParquetRea @Suppress("UNCHECKED_CAST") val res: Any = when (column) { - RESOURCE_STATE_ID -> record["id"].toString() - RESOURCE_STATE_TIMESTAMP -> Instant.ofEpochMilli(record["time"] as Long) - RESOURCE_STATE_DURATION -> Duration.ofMillis(record["duration"] as Long) - RESOURCE_STATE_NCPUS -> record["cores"] - RESOURCE_STATE_CPU_USAGE -> (record["cpuUsage"] as Number).toDouble() + RESOURCE_STATE_ID -> record[COL_ID].toString() + RESOURCE_STATE_TIMESTAMP -> Instant.ofEpochMilli(record[COL_TIMESTAMP] as Long) + RESOURCE_STATE_DURATION -> Duration.ofMillis(record[COL_DURATION] as Long) + RESOURCE_STATE_CPU_COUNT -> getInt(RESOURCE_STATE_CPU_COUNT) + RESOURCE_STATE_CPU_USAGE -> getDouble(RESOURCE_STATE_CPU_USAGE) else -> throw IllegalArgumentException("Invalid column") } @@ -76,9 +89,8 @@ internal class OdcVmResourceStateTableReader(private val reader: LocalParquetRea override fun getInt(column: TableColumn): Int { val record = checkNotNull(record) { "Reader in invalid state" } - return when (column) { - RESOURCE_STATE_NCPUS -> record["cores"] as Int + RESOURCE_STATE_CPU_COUNT -> record[COL_CPU_COUNT] as Int else -> throw IllegalArgumentException("Invalid column") } } @@ -90,7 +102,7 @@ internal class OdcVmResourceStateTableReader(private val reader: LocalParquetRea override fun getDouble(column: TableColumn): Double { val record = checkNotNull(record) { "Reader in invalid state" } return when (column) { - RESOURCE_STATE_CPU_USAGE -> (record["cpuUsage"] as Number).toDouble() + RESOURCE_STATE_CPU_USAGE -> (record[COL_CPU_USAGE] as Number).toDouble() else -> throw IllegalArgumentException("Invalid column") } } @@ -100,4 +112,26 @@ internal class OdcVmResourceStateTableReader(private val reader: LocalParquetRea } override fun toString(): String = "OdcVmResourceStateTableReader" + + /** + * Initialize the columns for the reader based on [schema]. + */ + private fun initColumns(schema: Schema) { + try { + COL_ID = schema.getField("id").pos() + COL_TIMESTAMP = (schema.getField("timestamp") ?: schema.getField("time")).pos() + COL_DURATION = schema.getField("duration").pos() + COL_CPU_COUNT = (schema.getField("cpu_count") ?: schema.getField("cores")).pos() + COL_CPU_USAGE = (schema.getField("cpu_usage") ?: schema.getField("cpuUsage")).pos() + } catch (e: NullPointerException) { + // This happens when the field we are trying to access does not exist + throw IllegalArgumentException("Invalid schema", e) + } + } + + private var COL_ID = -1 + private var COL_TIMESTAMP = -1 + private var COL_DURATION = -1 + private var COL_CPU_COUNT = -1 + private var COL_CPU_USAGE = -1 } diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTable.kt b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTable.kt index 9927afee..b1456560 100644 --- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTable.kt +++ b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTable.kt @@ -38,8 +38,8 @@ internal class OdcVmResourceTable(private val path: Path) : Table { RESOURCE_ID, RESOURCE_START_TIME, RESOURCE_STOP_TIME, - RESOURCE_NCPUS, - RESOURCE_MEM_CAPACITY + RESOURCE_CPU_COUNT, + RESOURCE_MEM_CAPACITY, ) override fun newReader(): TableReader { diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTableReader.kt b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTableReader.kt index fe4379e6..c52da62d 100644 --- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTableReader.kt +++ b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTableReader.kt @@ -22,6 +22,7 @@ package org.opendc.trace.opendc +import org.apache.avro.Schema import org.apache.avro.generic.GenericRecord import org.opendc.trace.* import org.opendc.trace.util.parquet.LocalParquetReader @@ -36,8 +37,20 @@ internal class OdcVmResourceTableReader(private val reader: LocalParquetReader true RESOURCE_START_TIME -> true RESOURCE_STOP_TIME -> true - RESOURCE_NCPUS -> true + RESOURCE_CPU_COUNT -> true RESOURCE_MEM_CAPACITY -> true else -> false } @@ -57,10 +70,10 @@ internal class OdcVmResourceTableReader(private val reader: LocalParquetReader record["id"].toString() - RESOURCE_START_TIME -> Instant.ofEpochMilli(record["submissionTime"] as Long) - RESOURCE_STOP_TIME -> Instant.ofEpochMilli(record["endTime"] as Long) - RESOURCE_NCPUS -> getInt(RESOURCE_NCPUS) + RESOURCE_ID -> record[COL_ID].toString() + RESOURCE_START_TIME -> Instant.ofEpochMilli(record[COL_START_TIME] as Long) + RESOURCE_STOP_TIME -> Instant.ofEpochMilli(record[COL_STOP_TIME] as Long) + RESOURCE_CPU_COUNT -> getInt(RESOURCE_CPU_COUNT) RESOURCE_MEM_CAPACITY -> getDouble(RESOURCE_MEM_CAPACITY) else -> throw IllegalArgumentException("Invalid column") } @@ -77,7 +90,7 @@ internal class OdcVmResourceTableReader(private val reader: LocalParquetReader record["maxCores"] as Int + RESOURCE_CPU_COUNT -> record[COL_CPU_COUNT] as Int else -> throw IllegalArgumentException("Invalid column") } } @@ -90,7 +103,7 @@ internal class OdcVmResourceTableReader(private val reader: LocalParquetReader (record["requiredMemory"] as Number).toDouble() * 1000.0 // MB to KB + RESOURCE_MEM_CAPACITY -> (record[COL_MEM_CAPACITY] as Number).toDouble() else -> throw IllegalArgumentException("Invalid column") } } @@ -100,4 +113,26 @@ internal class OdcVmResourceTableReader(private val reader: LocalParquetReader { format.open(URL(url.toString() + "help")) } @@ -52,7 +54,7 @@ internal class OdcVmTraceFormatTest { @Test fun testTables() { - val url = File("src/test/resources/trace").toURI().toURL() + val url = File("src/test/resources/trace-v2.1").toURI().toURL() val trace = format.open(url) assertEquals(listOf(TABLE_RESOURCES, TABLE_RESOURCE_STATES), trace.tables) @@ -60,7 +62,7 @@ internal class OdcVmTraceFormatTest { @Test fun testTableExists() { - val url = File("src/test/resources/trace").toURI().toURL() + val url = File("src/test/resources/trace-v2.1").toURI().toURL() val table = format.open(url).getTable(TABLE_RESOURCE_STATES) assertNotNull(table) @@ -69,16 +71,17 @@ internal class OdcVmTraceFormatTest { @Test fun testTableDoesNotExist() { - val url = File("src/test/resources/trace").toURI().toURL() + val url = File("src/test/resources/trace-v2.1").toURI().toURL() val trace = format.open(url) assertFalse(trace.containsTable("test")) assertNull(trace.getTable("test")) } - @Test - fun testResources() { - val url = File("src/test/resources/trace").toURI().toURL() + @ParameterizedTest + @ValueSource(strings = ["trace-v2.0", "trace-v2.1"]) + fun testResources(name: String) { + val url = File("src/test/resources/$name").toURI().toURL() val trace = format.open(url) val reader = trace.getTable(TABLE_RESOURCES)!!.newReader() @@ -98,9 +101,10 @@ internal class OdcVmTraceFormatTest { reader.close() } - @Test - fun testSmoke() { - val url = File("src/test/resources/trace").toURI().toURL() + @ParameterizedTest + @ValueSource(strings = ["trace-v2.0", "trace-v2.1"]) + fun testSmoke(name: String) { + val url = File("src/test/resources/$name").toURI().toURL() val trace = format.open(url) val reader = trace.getTable(TABLE_RESOURCE_STATES)!!.newReader() diff --git a/opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.0/meta.parquet b/opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.0/meta.parquet new file mode 100644 index 00000000..d6ff09d8 Binary files /dev/null and b/opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.0/meta.parquet differ diff --git a/opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.0/trace.parquet b/opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.0/trace.parquet new file mode 100644 index 00000000..5b6fa6b7 Binary files /dev/null and b/opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.0/trace.parquet differ diff --git a/opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.1/meta.parquet b/opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.1/meta.parquet new file mode 100644 index 00000000..d8184945 Binary files /dev/null and b/opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.1/meta.parquet differ diff --git a/opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.1/trace.parquet b/opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.1/trace.parquet new file mode 100644 index 00000000..00ab5835 Binary files /dev/null and b/opendc-trace/opendc-trace-opendc/src/test/resources/trace-v2.1/trace.parquet differ diff --git a/opendc-trace/opendc-trace-opendc/src/test/resources/trace/meta.parquet b/opendc-trace/opendc-trace-opendc/src/test/resources/trace/meta.parquet deleted file mode 100644 index d6ff09d8..00000000 Binary files a/opendc-trace/opendc-trace-opendc/src/test/resources/trace/meta.parquet and /dev/null differ diff --git a/opendc-trace/opendc-trace-opendc/src/test/resources/trace/trace.parquet b/opendc-trace/opendc-trace-opendc/src/test/resources/trace/trace.parquet deleted file mode 100644 index 5b6fa6b7..00000000 Binary files a/opendc-trace/opendc-trace-opendc/src/test/resources/trace/trace.parquet and /dev/null differ -- cgit v1.2.3 From 6502fb752a6f80695c024b8904d7523c420ebdda Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Sun, 19 Sep 2021 13:42:26 +0200 Subject: feat(trace): Add tool for converting workload traces This change adds an initial implementation to the trace library for converting between workload trace formats. Currently the tool supports only converting to the OpenDC VM trace format. However, in the future, we will add support for converting between other formats as well. --- opendc-trace/opendc-trace-tools/build.gradle.kts | 47 ++++ .../org/opendc/trace/tools/TraceConverter.kt | 279 +++++++++++++++++++++ 2 files changed, 326 insertions(+) create mode 100644 opendc-trace/opendc-trace-tools/build.gradle.kts create mode 100644 opendc-trace/opendc-trace-tools/src/main/kotlin/org/opendc/trace/tools/TraceConverter.kt (limited to 'opendc-trace') diff --git a/opendc-trace/opendc-trace-tools/build.gradle.kts b/opendc-trace/opendc-trace-tools/build.gradle.kts new file mode 100644 index 00000000..35190dba --- /dev/null +++ b/opendc-trace/opendc-trace-tools/build.gradle.kts @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +description = "Tools for working with workload traces" + +/* Build configuration */ +plugins { + `kotlin-conventions` + application +} + +application { + mainClass.set("org.opendc.trace.tools.TraceConverterKt") +} + +dependencies { + api(platform(projects.opendcPlatform)) + + implementation(projects.opendcTrace.opendcTraceParquet) + implementation(projects.opendcTrace.opendcTraceOpendc) + implementation(projects.opendcTrace.opendcTraceAzure) + implementation(projects.opendcTrace.opendcTraceBitbrains) + + implementation(libs.kotlin.logging) + implementation(libs.clikt) + + runtimeOnly(libs.log4j.slf4j) +} diff --git a/opendc-trace/opendc-trace-tools/src/main/kotlin/org/opendc/trace/tools/TraceConverter.kt b/opendc-trace/opendc-trace-tools/src/main/kotlin/org/opendc/trace/tools/TraceConverter.kt new file mode 100644 index 00000000..322464cd --- /dev/null +++ b/opendc-trace/opendc-trace-tools/src/main/kotlin/org/opendc/trace/tools/TraceConverter.kt @@ -0,0 +1,279 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.tools + +import com.github.ajalt.clikt.core.CliktCommand +import com.github.ajalt.clikt.parameters.arguments.argument +import com.github.ajalt.clikt.parameters.groups.OptionGroup +import com.github.ajalt.clikt.parameters.groups.cooccurring +import com.github.ajalt.clikt.parameters.options.* +import com.github.ajalt.clikt.parameters.types.* +import mu.KotlinLogging +import org.apache.avro.generic.GenericData +import org.apache.avro.generic.GenericRecordBuilder +import org.apache.parquet.avro.AvroParquetWriter +import org.apache.parquet.hadoop.ParquetWriter +import org.apache.parquet.hadoop.metadata.CompressionCodecName +import org.opendc.trace.* +import org.opendc.trace.azure.AzureTraceFormat +import org.opendc.trace.bitbrains.BitbrainsExTraceFormat +import org.opendc.trace.bitbrains.BitbrainsTraceFormat +import org.opendc.trace.opendc.OdcVmTraceFormat +import org.opendc.trace.util.parquet.LocalOutputFile +import java.io.File +import java.util.* +import kotlin.math.abs +import kotlin.math.max +import kotlin.math.min +import kotlin.math.roundToLong + +/** + * A script to convert a trace in text format into a Parquet trace. + */ +public fun main(args: Array): Unit = TraceConverterCli().main(args) + +/** + * Represents the command for converting traces + */ +internal class TraceConverterCli : CliktCommand(name = "trace-converter") { + /** + * The logger instance for the converter. + */ + private val logger = KotlinLogging.logger {} + + /** + * The directory where the trace should be stored. + */ + private val output by option("-O", "--output", help = "path to store the trace") + .file(canBeFile = false, mustExist = false) + .defaultLazy { File("output") } + + /** + * The directory where the input trace is located. + */ + private val input by argument("input", help = "path to the input trace") + .file(canBeFile = false) + + /** + * The input format of the trace. + */ + private val format by option("-f", "--format", help = "input format of trace") + .choice( + "solvinity" to BitbrainsExTraceFormat(), + "bitbrains" to BitbrainsTraceFormat(), + "azure" to AzureTraceFormat() + ) + .required() + + /** + * The sampling options. + */ + private val samplingOptions by SamplingOptions().cooccurring() + + override fun run() { + val metaParquet = File(output, "meta.parquet") + val traceParquet = File(output, "trace.parquet") + + if (metaParquet.exists()) { + metaParquet.delete() + } + if (traceParquet.exists()) { + traceParquet.delete() + } + + val trace = format.open(input.toURI().toURL()) + + logger.info { "Building resources table" } + + val metaWriter = AvroParquetWriter.builder(LocalOutputFile(metaParquet)) + .withSchema(OdcVmTraceFormat.RESOURCES_SCHEMA) + .withCompressionCodec(CompressionCodecName.ZSTD) + .enablePageWriteChecksum() + .build() + + val selectedVms = metaWriter.use { convertResources(trace, it) } + + if (selectedVms.isEmpty()) { + logger.warn { "No VMs selected" } + return + } + + logger.info { "Wrote ${selectedVms.size} rows" } + logger.info { "Building resource states table" } + + val writer = AvroParquetWriter.builder(LocalOutputFile(traceParquet)) + .withSchema(OdcVmTraceFormat.RESOURCE_STATES_SCHEMA) + .withCompressionCodec(CompressionCodecName.ZSTD) + .withDictionaryEncoding("id", true) + .withBloomFilterEnabled("id", true) + .withBloomFilterNDV("id", selectedVms.size.toLong()) + .enableValidation() + .build() + + val statesCount = writer.use { convertResourceStates(trace, it, selectedVms) } + logger.info { "Wrote $statesCount rows" } + } + + /** + * Convert the resources table for the trace. + */ + private fun convertResources(trace: Trace, writer: ParquetWriter): Set { + val random = samplingOptions?.let { Random(it.seed) } + val samplingFraction = samplingOptions?.fraction ?: 1.0 + val reader = checkNotNull(trace.getTable(TABLE_RESOURCE_STATES)).newReader() + + var hasNextRow = reader.nextRow() + val selectedVms = mutableSetOf() + + while (hasNextRow) { + var id: String + var numCpus = Int.MIN_VALUE + var memCapacity = Double.MIN_VALUE + var memUsage = Double.MIN_VALUE + var startTime = Long.MAX_VALUE + var stopTime = Long.MIN_VALUE + + do { + id = reader.get(RESOURCE_STATE_ID) + + val timestamp = reader.get(RESOURCE_STATE_TIMESTAMP).toEpochMilli() + startTime = min(startTime, timestamp) + stopTime = max(stopTime, timestamp) + + numCpus = max(numCpus, reader.getInt(RESOURCE_STATE_CPU_COUNT)) + + memCapacity = max(memCapacity, reader.getDouble(RESOURCE_STATE_MEM_CAPACITY)) + if (reader.hasColumn(RESOURCE_STATE_MEM_USAGE)) { + memUsage = max(memUsage, reader.getDouble(RESOURCE_STATE_MEM_USAGE)) + } + + hasNextRow = reader.nextRow() + } while (hasNextRow && id == reader.get(RESOURCE_STATE_ID)) + + // Sample only a fraction of the VMs + if (random != null && random.nextDouble() > samplingFraction) { + continue + } + + val builder = GenericRecordBuilder(OdcVmTraceFormat.RESOURCES_SCHEMA) + + builder["id"] = id + builder["start_time"] = startTime + builder["stop_time"] = stopTime + builder["cpu_count"] = numCpus + builder["mem_capacity"] = max(memCapacity, memUsage).roundToLong() + + logger.info { "Selecting VM $id" } + + writer.write(builder.build()) + selectedVms.add(id) + } + + return selectedVms + } + + /** + * Convert the resource states table for the trace. + */ + private fun convertResourceStates(trace: Trace, writer: ParquetWriter, selectedVms: Set): Int { + val reader = checkNotNull(trace.getTable(TABLE_RESOURCE_STATES)).newReader() + + var hasNextRow = reader.nextRow() + var count = 0 + var lastId: String? = null + var lastTimestamp = 0L + + while (hasNextRow) { + val id = reader.get(RESOURCE_STATE_ID) + + if (id !in selectedVms) { + hasNextRow = reader.nextRow() + continue + } + + val cpuCount = reader.getInt(RESOURCE_STATE_CPU_COUNT) + val cpuUsage = reader.getDouble(RESOURCE_STATE_CPU_USAGE) + + val startTimestamp = reader.get(RESOURCE_STATE_TIMESTAMP).toEpochMilli() + var timestamp = startTimestamp + var duration: Long + + // Check whether the previous entry is from a different VM + if (id != lastId) { + lastTimestamp = timestamp - 5 * 60 * 1000L + } + + do { + timestamp = reader.get(RESOURCE_STATE_TIMESTAMP).toEpochMilli() + + duration = timestamp - lastTimestamp + hasNextRow = reader.nextRow() + + if (!hasNextRow) { + break + } + + val shouldContinue = id == reader.get(RESOURCE_STATE_ID) && + abs(cpuUsage - reader.getDouble(RESOURCE_STATE_CPU_USAGE)) < 0.01 && + cpuCount == reader.getInt(RESOURCE_STATE_CPU_COUNT) + } while (shouldContinue) + + val builder = GenericRecordBuilder(OdcVmTraceFormat.RESOURCE_STATES_SCHEMA) + + builder["id"] = id + builder["timestamp"] = startTimestamp + builder["duration"] = duration + builder["cpu_count"] = cpuCount + builder["cpu_usage"] = cpuUsage + + writer.write(builder.build()) + + count++ + + lastId = id + lastTimestamp = timestamp + } + + return count + } + + /** + * Options for sampling the workload trace. + */ + private class SamplingOptions : OptionGroup() { + /** + * The fraction of VMs to sample + */ + val fraction by option("--sampling-fraction", help = "fraction of the workload to sample") + .double() + .restrictTo(0.0001, 1.0) + .required() + + /** + * The seed for sampling the trace. + */ + val seed by option("--sampling-seed", help = "seed for sampling the workload") + .long() + .default(0) + } +} -- cgit v1.2.3 From 55a4c8208cc44ac626f7b8c61a19d5ec725ec936 Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Mon, 20 Sep 2021 11:48:18 +0200 Subject: refactor(trace): Unify columns of different tables This change unifies columns of different tables used by trace formats. This concretely means that instead of having columns specific per table (e.g., RESOURCE_ID and RESOURCE_STATE_ID), with this changes these columns are shared between the tables with a single definition (RESOURCE_ID). --- .../kotlin/org/opendc/trace/ResourceColumns.kt | 22 +++++++-- .../org/opendc/trace/ResourceStateColumns.kt | 54 +++++----------------- .../main/kotlin/org/opendc/trace/TableColumns.kt | 33 ++----------- .../main/kotlin/org/opendc/trace/TaskColumns.kt | 28 ++++++----- .../opendc/trace/azure/AzureResourceStateTable.kt | 2 +- .../trace/azure/AzureResourceStateTableReader.kt | 4 +- .../org/opendc/trace/azure/AzureTraceFormatTest.kt | 2 +- .../bitbrains/BitbrainsExResourceStateTable.kt | 10 ++-- .../BitbrainsExResourceStateTableReader.kt | 26 +++++------ .../trace/bitbrains/BitbrainsResourceStateTable.kt | 8 ++-- .../bitbrains/BitbrainsResourceStateTableReader.kt | 22 ++++----- .../bitbrains/BitbrainsResourceTableReader.kt | 2 +- .../opendc/trace/opendc/OdcVmResourceStateTable.kt | 4 +- .../trace/opendc/OdcVmResourceStateTableReader.kt | 10 ++-- .../opendc/trace/opendc/OdcVmTraceFormatTest.kt | 2 +- .../org/opendc/trace/tools/TraceConverter.kt | 16 +++---- 16 files changed, 100 insertions(+), 145 deletions(-) (limited to 'opendc-trace') diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceColumns.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceColumns.kt index 219002e0..f1977945 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceColumns.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceColumns.kt @@ -29,28 +29,40 @@ import java.time.Instant * Identifier of the resource. */ @JvmField -public val RESOURCE_ID: TableColumn = stringColumn("resource:id") +public val RESOURCE_ID: TableColumn = column("resource:id") + +/** + * The cluster to which the resource belongs. + */ +@JvmField +public val RESOURCE_CLUSTER_ID: TableColumn = column("resource:cluster_id") /** * Start time for the resource. */ @JvmField -public val RESOURCE_START_TIME: TableColumn = TableColumn("resource:start_time", Instant::class.java) +public val RESOURCE_START_TIME: TableColumn = column("resource:start_time") /** * End time for the resource. */ @JvmField -public val RESOURCE_STOP_TIME: TableColumn = TableColumn("resource:stop_time", Instant::class.java) +public val RESOURCE_STOP_TIME: TableColumn = column("resource:stop_time") /** * Number of CPUs for the resource. */ @JvmField -public val RESOURCE_CPU_COUNT: TableColumn = intColumn("resource:cpu_count") +public val RESOURCE_CPU_COUNT: TableColumn = column("resource:cpu_count") + +/** + * Total CPU capacity of the resource in MHz. + */ +@JvmField +public val RESOURCE_CPU_CAPACITY: TableColumn = column("resource:cpu_capacity") /** * Memory capacity for the resource in KB. */ @JvmField -public val RESOURCE_MEM_CAPACITY: TableColumn = doubleColumn("resource:mem_capacity") +public val RESOURCE_MEM_CAPACITY: TableColumn = column("resource:mem_capacity") diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceStateColumns.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceStateColumns.kt index b683923b..44762da5 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceStateColumns.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/ResourceStateColumns.kt @@ -26,104 +26,74 @@ package org.opendc.trace import java.time.Duration import java.time.Instant -/** - * Identifier of the resource. - */ -@JvmField -public val RESOURCE_STATE_ID: TableColumn = stringColumn("resource_state:id") - -/** - * The cluster to which the resource belongs. - */ -@JvmField -public val RESOURCE_STATE_CLUSTER_ID: TableColumn = stringColumn("resource_state:cluster_id") - /** * Timestamp for the state. */ @JvmField -public val RESOURCE_STATE_TIMESTAMP: TableColumn = TableColumn("resource_state:timestamp", Instant::class.java) +public val RESOURCE_STATE_TIMESTAMP: TableColumn = column("resource_state:timestamp") /** * Duration for the state. */ @JvmField -public val RESOURCE_STATE_DURATION: TableColumn = TableColumn("resource_state:duration", Duration::class.java) +public val RESOURCE_STATE_DURATION: TableColumn = column("resource_state:duration") /** * A flag to indicate that the resource is powered on. */ @JvmField -public val RESOURCE_STATE_POWERED_ON: TableColumn = booleanColumn("resource_state:powered_on") - -/** - * Number of CPUs for the resource. - */ -@JvmField -public val RESOURCE_STATE_CPU_COUNT: TableColumn = intColumn("resource_state:cpu_count") - -/** - * Total CPU capacity of the resource in MHz. - */ -@JvmField -public val RESOURCE_STATE_CPU_CAPACITY: TableColumn = doubleColumn("resource_state:cpu_capacity") +public val RESOURCE_STATE_POWERED_ON: TableColumn = column("resource_state:powered_on") /** * Total CPU usage of the resource in MHz. */ @JvmField -public val RESOURCE_STATE_CPU_USAGE: TableColumn = doubleColumn("resource_state:cpu_usage") +public val RESOURCE_STATE_CPU_USAGE: TableColumn = column("resource_state:cpu_usage") /** * Total CPU usage of the resource in percentage. */ @JvmField -public val RESOURCE_STATE_CPU_USAGE_PCT: TableColumn = doubleColumn("resource_state:cpu_usage_pct") +public val RESOURCE_STATE_CPU_USAGE_PCT: TableColumn = column("resource_state:cpu_usage_pct") /** * Total CPU demand of the resource in MHz. */ @JvmField -public val RESOURCE_STATE_CPU_DEMAND: TableColumn = doubleColumn("resource_state:cpu_demand") +public val RESOURCE_STATE_CPU_DEMAND: TableColumn = column("resource_state:cpu_demand") /** * CPU ready percentage. */ @JvmField -public val RESOURCE_STATE_CPU_READY_PCT: TableColumn = doubleColumn("resource_state:cpu_ready_pct") - -/** - * Memory capacity of the resource in KB. - */ -@JvmField -public val RESOURCE_STATE_MEM_CAPACITY: TableColumn = doubleColumn("resource_state:mem_capacity") +public val RESOURCE_STATE_CPU_READY_PCT: TableColumn = column("resource_state:cpu_ready_pct") /** * Memory usage of the resource in KB. */ @JvmField -public val RESOURCE_STATE_MEM_USAGE: TableColumn = doubleColumn("resource_state:mem_usage") +public val RESOURCE_STATE_MEM_USAGE: TableColumn = column("resource_state:mem_usage") /** * Disk read throughput of the resource in KB/s. */ @JvmField -public val RESOURCE_STATE_DISK_READ: TableColumn = doubleColumn("resource_state:disk_read") +public val RESOURCE_STATE_DISK_READ: TableColumn = column("resource_state:disk_read") /** * Disk write throughput of the resource in KB/s. */ @JvmField -public val RESOURCE_STATE_DISK_WRITE: TableColumn = doubleColumn("resource_state:disk_write") +public val RESOURCE_STATE_DISK_WRITE: TableColumn = column("resource_state:disk_write") /** * Network receive throughput of the resource in KB/s. */ @JvmField -public val RESOURCE_STATE_NET_RX: TableColumn = doubleColumn("resource_state:net_rx") +public val RESOURCE_STATE_NET_RX: TableColumn = column("resource_state:net_rx") /** * Network transmit throughput of the resource in KB/s. */ @JvmField -public val RESOURCE_STATE_NET_TX: TableColumn = doubleColumn("resource_state:net_tx") +public val RESOURCE_STATE_NET_TX: TableColumn = column("resource_state:net_tx") diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableColumns.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableColumns.kt index 64920498..31a58360 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableColumns.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableColumns.kt @@ -24,36 +24,11 @@ package org.opendc.trace /** - * Construct a [TableColumn] with [Any] type. + * Construct a [TableColumn] with the specified [name] and type [T]. */ -public fun objectColumn(name: String): TableColumn = TableColumn(name, Any::class.java) +public inline fun column(name: String): TableColumn = column(name, T::class.java) /** - * Construct a [TableColumn] with a [String] type. + * Construct a [TableColumn] with the specified [name] and [type]. */ -public fun stringColumn(name: String): TableColumn = TableColumn(name, String::class.java) - -/** - * Construct a [TableColumn] with a [Number] type. - */ -public fun numberColumn(name: String): TableColumn = TableColumn(name, Number::class.java) - -/** - * Construct a [TableColumn] with an [Int] type. - */ -public fun intColumn(name: String): TableColumn = TableColumn(name, Int::class.java) - -/** - * Construct a [TableColumn] with a [Long] type. - */ -public fun longColumn(name: String): TableColumn = TableColumn(name, Long::class.java) - -/** - * Construct a [TableColumn] with a [Double] type. - */ -public fun doubleColumn(name: String): TableColumn = TableColumn(name, Double::class.java) - -/** - * Construct a [TableColumn] with a [Boolean] type. - */ -public fun booleanColumn(name: String): TableColumn = TableColumn(name, Boolean::class.java) +public fun column(name: String, type: Class): TableColumn = TableColumn(name, type) diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TaskColumns.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TaskColumns.kt index 46920dce..d103bce4 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TaskColumns.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TaskColumns.kt @@ -30,72 +30,70 @@ import java.time.Instant * A column containing the task identifier. */ @JvmField -public val TASK_ID: TableColumn = stringColumn("task:id") +public val TASK_ID: TableColumn = column("task:id") /** * A column containing the identifier of the workflow. */ @JvmField -public val TASK_WORKFLOW_ID: TableColumn = stringColumn("task:workflow_id") +public val TASK_WORKFLOW_ID: TableColumn = column("task:workflow_id") /** - * A column containing the submit time of the task. + * A column containing the submission time of the task. */ @JvmField -public val TASK_SUBMIT_TIME: TableColumn = TableColumn("task:submit_time", type = Instant::class.java) +public val TASK_SUBMIT_TIME: TableColumn = column("task:submit_time") /** * A column containing the wait time of the task. */ @JvmField -public val TASK_WAIT_TIME: TableColumn = TableColumn("task:wait_time", type = Instant::class.java) +public val TASK_WAIT_TIME: TableColumn = column("task:wait_time") /** * A column containing the runtime time of the task. */ @JvmField -public val TASK_RUNTIME: TableColumn = TableColumn("task:runtime", type = Duration::class.java) +public val TASK_RUNTIME: TableColumn = column("task:runtime") /** * A column containing the parents of a task. */ -@Suppress("UNCHECKED_CAST") @JvmField -public val TASK_PARENTS: TableColumn> = TableColumn("task:parents", type = Set::class.java as Class>) +public val TASK_PARENTS: TableColumn> = column("task:parents") /** * A column containing the children of a task. */ -@Suppress("UNCHECKED_CAST") @JvmField -public val TASK_CHILDREN: TableColumn> = TableColumn("task:children", type = Set::class.java as Class>) +public val TASK_CHILDREN: TableColumn> = column("task:children") /** * A column containing the requested CPUs of a task. */ @JvmField -public val TASK_REQ_NCPUS: TableColumn = intColumn("task:req_ncpus") +public val TASK_REQ_NCPUS: TableColumn = column("task:req_ncpus") /** * A column containing the allocated CPUs of a task. */ @JvmField -public val TASK_ALLOC_NCPUS: TableColumn = intColumn("task:alloc_ncpus") +public val TASK_ALLOC_NCPUS: TableColumn = column("task:alloc_ncpus") /** * A column containing the status of a task. */ @JvmField -public val TASK_STATUS: TableColumn = intColumn("task:status") +public val TASK_STATUS: TableColumn = column("task:status") /** * A column containing the group id of a task. */ @JvmField -public val TASK_GROUP_ID: TableColumn = intColumn("task:group_id") +public val TASK_GROUP_ID: TableColumn = column("task:group_id") /** * A column containing the user id of a task. */ @JvmField -public val TASK_USER_ID: TableColumn = intColumn("task:user_id") +public val TASK_USER_ID: TableColumn = column("task:user_id") diff --git a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTable.kt b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTable.kt index 84c9b347..e6b89465 100644 --- a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTable.kt +++ b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTable.kt @@ -47,7 +47,7 @@ internal class AzureResourceStateTable(private val factory: CsvFactory, path: Pa override val isSynthetic: Boolean = false override val columns: List> = listOf( - RESOURCE_STATE_ID, + RESOURCE_ID, RESOURCE_STATE_TIMESTAMP, RESOURCE_STATE_CPU_USAGE_PCT ) diff --git a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTableReader.kt b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTableReader.kt index c17a17ab..6c1cb770 100644 --- a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTableReader.kt +++ b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTableReader.kt @@ -62,7 +62,7 @@ internal class AzureResourceStateTableReader(private val parser: CsvParser) : Ta override fun hasColumn(column: TableColumn<*>): Boolean { return when (column) { - RESOURCE_STATE_ID -> true + RESOURCE_ID -> true RESOURCE_STATE_TIMESTAMP -> true RESOURCE_STATE_CPU_USAGE_PCT -> true else -> false @@ -71,7 +71,7 @@ internal class AzureResourceStateTableReader(private val parser: CsvParser) : Ta override fun get(column: TableColumn): T { val res: Any? = when (column) { - RESOURCE_STATE_ID -> id + RESOURCE_ID -> id RESOURCE_STATE_TIMESTAMP -> timestamp RESOURCE_STATE_CPU_USAGE_PCT -> cpuUsagePct else -> throw IllegalArgumentException("Invalid column") diff --git a/opendc-trace/opendc-trace-azure/src/test/kotlin/org/opendc/trace/azure/AzureTraceFormatTest.kt b/opendc-trace/opendc-trace-azure/src/test/kotlin/org/opendc/trace/azure/AzureTraceFormatTest.kt index e5735f0d..2c1a2125 100644 --- a/opendc-trace/opendc-trace-azure/src/test/kotlin/org/opendc/trace/azure/AzureTraceFormatTest.kt +++ b/opendc-trace/opendc-trace-azure/src/test/kotlin/org/opendc/trace/azure/AzureTraceFormatTest.kt @@ -103,7 +103,7 @@ class AzureTraceFormatTest { assertAll( { assertTrue(reader.nextRow()) }, - { assertEquals("+ZcrOp5/c/fJ6mVgP5qMZlOAGDwyjaaDNM0WoWOt2IDb47gT0UwK9lFwkPQv3C7Q", reader.get(RESOURCE_STATE_ID)) }, + { assertEquals("+ZcrOp5/c/fJ6mVgP5qMZlOAGDwyjaaDNM0WoWOt2IDb47gT0UwK9lFwkPQv3C7Q", reader.get(RESOURCE_ID)) }, { assertEquals(0, reader.get(RESOURCE_STATE_TIMESTAMP).epochSecond) }, { assertEquals(2.86979, reader.getDouble(RESOURCE_STATE_CPU_USAGE_PCT), 0.01) } ) diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTable.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTable.kt index 4a60dff3..44a6c26e 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTable.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTable.kt @@ -47,16 +47,16 @@ internal class BitbrainsExResourceStateTable(path: Path) : Table { override val isSynthetic: Boolean = false override val columns: List> = listOf( - RESOURCE_STATE_ID, - RESOURCE_STATE_CLUSTER_ID, + RESOURCE_ID, + RESOURCE_CLUSTER_ID, RESOURCE_STATE_TIMESTAMP, - RESOURCE_STATE_CPU_COUNT, - RESOURCE_STATE_CPU_CAPACITY, + RESOURCE_CPU_COUNT, + RESOURCE_CPU_CAPACITY, RESOURCE_STATE_CPU_USAGE, RESOURCE_STATE_CPU_USAGE_PCT, RESOURCE_STATE_CPU_DEMAND, RESOURCE_STATE_CPU_READY_PCT, - RESOURCE_STATE_MEM_CAPACITY, + RESOURCE_MEM_CAPACITY, RESOURCE_STATE_DISK_READ, RESOURCE_STATE_DISK_WRITE, ) diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTableReader.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTableReader.kt index f1cf7307..5619e839 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTableReader.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTableReader.kt @@ -90,16 +90,16 @@ internal class BitbrainsExResourceStateTableReader(private val reader: BufferedR override fun hasColumn(column: TableColumn<*>): Boolean { return when (column) { - RESOURCE_STATE_ID -> true - RESOURCE_STATE_CLUSTER_ID -> true + RESOURCE_ID -> true + RESOURCE_CLUSTER_ID -> true RESOURCE_STATE_TIMESTAMP -> true - RESOURCE_STATE_CPU_COUNT -> true - RESOURCE_STATE_CPU_CAPACITY -> true + RESOURCE_CPU_COUNT -> true + RESOURCE_CPU_CAPACITY -> true RESOURCE_STATE_CPU_USAGE -> true RESOURCE_STATE_CPU_USAGE_PCT -> true RESOURCE_STATE_CPU_DEMAND -> true RESOURCE_STATE_CPU_READY_PCT -> true - RESOURCE_STATE_MEM_CAPACITY -> true + RESOURCE_MEM_CAPACITY -> true RESOURCE_STATE_DISK_READ -> true RESOURCE_STATE_DISK_WRITE -> true else -> false @@ -108,14 +108,14 @@ internal class BitbrainsExResourceStateTableReader(private val reader: BufferedR override fun get(column: TableColumn): T { val res: Any? = when (column) { - RESOURCE_STATE_ID -> id - RESOURCE_STATE_CLUSTER_ID -> cluster + RESOURCE_ID -> id + RESOURCE_CLUSTER_ID -> cluster RESOURCE_STATE_TIMESTAMP -> timestamp - RESOURCE_STATE_CPU_COUNT -> getInt(RESOURCE_STATE_CPU_COUNT) - RESOURCE_STATE_CPU_CAPACITY -> getDouble(RESOURCE_STATE_CPU_CAPACITY) + RESOURCE_CPU_COUNT -> getInt(RESOURCE_CPU_COUNT) + RESOURCE_CPU_CAPACITY -> getDouble(RESOURCE_CPU_CAPACITY) RESOURCE_STATE_CPU_USAGE -> getDouble(RESOURCE_STATE_CPU_USAGE) RESOURCE_STATE_CPU_USAGE_PCT -> getDouble(RESOURCE_STATE_CPU_USAGE_PCT) - RESOURCE_STATE_MEM_CAPACITY -> getDouble(RESOURCE_STATE_MEM_CAPACITY) + RESOURCE_MEM_CAPACITY -> getDouble(RESOURCE_MEM_CAPACITY) RESOURCE_STATE_DISK_READ -> getDouble(RESOURCE_STATE_DISK_READ) RESOURCE_STATE_DISK_WRITE -> getDouble(RESOURCE_STATE_DISK_WRITE) else -> throw IllegalArgumentException("Invalid column") @@ -134,7 +134,7 @@ internal class BitbrainsExResourceStateTableReader(private val reader: BufferedR override fun getInt(column: TableColumn): Int { return when (column) { - RESOURCE_STATE_CPU_COUNT -> cpuCores + RESOURCE_CPU_COUNT -> cpuCores else -> throw IllegalArgumentException("Invalid column") } } @@ -145,11 +145,11 @@ internal class BitbrainsExResourceStateTableReader(private val reader: BufferedR override fun getDouble(column: TableColumn): Double { return when (column) { - RESOURCE_STATE_CPU_CAPACITY -> cpuCapacity + RESOURCE_CPU_CAPACITY -> cpuCapacity RESOURCE_STATE_CPU_USAGE -> cpuUsage RESOURCE_STATE_CPU_USAGE_PCT -> cpuUsage / cpuCapacity RESOURCE_STATE_CPU_DEMAND -> cpuDemand - RESOURCE_STATE_MEM_CAPACITY -> memCapacity + RESOURCE_MEM_CAPACITY -> memCapacity RESOURCE_STATE_DISK_READ -> diskRead RESOURCE_STATE_DISK_WRITE -> diskWrite else -> throw IllegalArgumentException("Invalid column") diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt index 7241b18b..f68e61dc 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt @@ -48,13 +48,13 @@ internal class BitbrainsResourceStateTable(private val factory: CsvFactory, path override val isSynthetic: Boolean = false override val columns: List> = listOf( - RESOURCE_STATE_ID, + RESOURCE_ID, RESOURCE_STATE_TIMESTAMP, - RESOURCE_STATE_CPU_COUNT, - RESOURCE_STATE_CPU_CAPACITY, + RESOURCE_CPU_COUNT, + RESOURCE_CPU_CAPACITY, RESOURCE_STATE_CPU_USAGE, RESOURCE_STATE_CPU_USAGE_PCT, - RESOURCE_STATE_MEM_CAPACITY, + RESOURCE_MEM_CAPACITY, RESOURCE_STATE_MEM_USAGE, RESOURCE_STATE_DISK_READ, RESOURCE_STATE_DISK_WRITE, diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTableReader.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTableReader.kt index 56e66f5c..54be5dea 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTableReader.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTableReader.kt @@ -113,13 +113,13 @@ internal class BitbrainsResourceStateTableReader(private val partition: String, override fun hasColumn(column: TableColumn<*>): Boolean { return when (column) { - RESOURCE_STATE_ID -> true + RESOURCE_ID -> true RESOURCE_STATE_TIMESTAMP -> true - RESOURCE_STATE_CPU_COUNT -> true - RESOURCE_STATE_CPU_CAPACITY -> true + RESOURCE_CPU_COUNT -> true + RESOURCE_CPU_CAPACITY -> true RESOURCE_STATE_CPU_USAGE -> true RESOURCE_STATE_CPU_USAGE_PCT -> true - RESOURCE_STATE_MEM_CAPACITY -> true + RESOURCE_MEM_CAPACITY -> true RESOURCE_STATE_MEM_USAGE -> true RESOURCE_STATE_DISK_READ -> true RESOURCE_STATE_DISK_WRITE -> true @@ -131,13 +131,13 @@ internal class BitbrainsResourceStateTableReader(private val partition: String, override fun get(column: TableColumn): T { val res: Any? = when (column) { - RESOURCE_STATE_ID -> partition + RESOURCE_ID -> partition RESOURCE_STATE_TIMESTAMP -> timestamp - RESOURCE_STATE_CPU_COUNT -> cpuCores - RESOURCE_STATE_CPU_CAPACITY -> cpuCapacity + RESOURCE_CPU_COUNT -> cpuCores + RESOURCE_CPU_CAPACITY -> cpuCapacity RESOURCE_STATE_CPU_USAGE -> cpuUsage RESOURCE_STATE_CPU_USAGE_PCT -> cpuUsagePct - RESOURCE_STATE_MEM_CAPACITY -> memCapacity + RESOURCE_MEM_CAPACITY -> memCapacity RESOURCE_STATE_MEM_USAGE -> memUsage RESOURCE_STATE_DISK_READ -> diskRead RESOURCE_STATE_DISK_WRITE -> diskWrite @@ -156,7 +156,7 @@ internal class BitbrainsResourceStateTableReader(private val partition: String, override fun getInt(column: TableColumn): Int { return when (column) { - RESOURCE_STATE_CPU_COUNT -> cpuCores + RESOURCE_CPU_COUNT -> cpuCores else -> throw IllegalArgumentException("Invalid column") } } @@ -167,10 +167,10 @@ internal class BitbrainsResourceStateTableReader(private val partition: String, override fun getDouble(column: TableColumn): Double { return when (column) { - RESOURCE_STATE_CPU_CAPACITY -> cpuCapacity + RESOURCE_CPU_CAPACITY -> cpuCapacity RESOURCE_STATE_CPU_USAGE -> cpuUsage RESOURCE_STATE_CPU_USAGE_PCT -> cpuUsagePct - RESOURCE_STATE_MEM_CAPACITY -> memCapacity + RESOURCE_MEM_CAPACITY -> memCapacity RESOURCE_STATE_MEM_USAGE -> memUsage RESOURCE_STATE_DISK_READ -> diskRead RESOURCE_STATE_DISK_WRITE -> diskWrite diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTableReader.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTableReader.kt index c02dc5ae..146c04f0 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTableReader.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTableReader.kt @@ -49,7 +49,7 @@ internal class BitbrainsResourceTableReader(private val factory: CsvFactory, vms continue } - id = reader.get(RESOURCE_STATE_ID) + id = reader.get(RESOURCE_ID) return true } finally { reader.close() diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTable.kt b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTable.kt index bee4ba7e..39613070 100644 --- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTable.kt +++ b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTable.kt @@ -35,10 +35,10 @@ internal class OdcVmResourceStateTable(private val path: Path) : Table { override val isSynthetic: Boolean = false override val columns: List> = listOf( - RESOURCE_STATE_ID, + RESOURCE_ID, RESOURCE_STATE_TIMESTAMP, RESOURCE_STATE_DURATION, - RESOURCE_STATE_CPU_COUNT, + RESOURCE_CPU_COUNT, RESOURCE_STATE_CPU_USAGE, ) diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTableReader.kt b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTableReader.kt index df3bcfa6..e4b18735 100644 --- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTableReader.kt +++ b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTableReader.kt @@ -57,10 +57,10 @@ internal class OdcVmResourceStateTableReader(private val reader: LocalParquetRea override fun hasColumn(column: TableColumn<*>): Boolean { return when (column) { - RESOURCE_STATE_ID -> true + RESOURCE_ID -> true RESOURCE_STATE_TIMESTAMP -> true RESOURCE_STATE_DURATION -> true - RESOURCE_STATE_CPU_COUNT -> true + RESOURCE_CPU_COUNT -> true RESOURCE_STATE_CPU_USAGE -> true else -> false } @@ -71,10 +71,10 @@ internal class OdcVmResourceStateTableReader(private val reader: LocalParquetRea @Suppress("UNCHECKED_CAST") val res: Any = when (column) { - RESOURCE_STATE_ID -> record[COL_ID].toString() + RESOURCE_ID -> record[COL_ID].toString() RESOURCE_STATE_TIMESTAMP -> Instant.ofEpochMilli(record[COL_TIMESTAMP] as Long) RESOURCE_STATE_DURATION -> Duration.ofMillis(record[COL_DURATION] as Long) - RESOURCE_STATE_CPU_COUNT -> getInt(RESOURCE_STATE_CPU_COUNT) + RESOURCE_CPU_COUNT -> getInt(RESOURCE_CPU_COUNT) RESOURCE_STATE_CPU_USAGE -> getDouble(RESOURCE_STATE_CPU_USAGE) else -> throw IllegalArgumentException("Invalid column") } @@ -90,7 +90,7 @@ internal class OdcVmResourceStateTableReader(private val reader: LocalParquetRea override fun getInt(column: TableColumn): Int { val record = checkNotNull(record) { "Reader in invalid state" } return when (column) { - RESOURCE_STATE_CPU_COUNT -> record[COL_CPU_COUNT] as Int + RESOURCE_CPU_COUNT -> record[COL_CPU_COUNT] as Int else -> throw IllegalArgumentException("Invalid column") } } diff --git a/opendc-trace/opendc-trace-opendc/src/test/kotlin/org/opendc/trace/opendc/OdcVmTraceFormatTest.kt b/opendc-trace/opendc-trace-opendc/src/test/kotlin/org/opendc/trace/opendc/OdcVmTraceFormatTest.kt index 42eb369e..9fb6028d 100644 --- a/opendc-trace/opendc-trace-opendc/src/test/kotlin/org/opendc/trace/opendc/OdcVmTraceFormatTest.kt +++ b/opendc-trace/opendc-trace-opendc/src/test/kotlin/org/opendc/trace/opendc/OdcVmTraceFormatTest.kt @@ -111,7 +111,7 @@ internal class OdcVmTraceFormatTest { assertAll( { assertTrue(reader.nextRow()) }, - { assertEquals("1019", reader.get(RESOURCE_STATE_ID)) }, + { assertEquals("1019", reader.get(RESOURCE_ID)) }, { assertEquals(1376314846, reader.get(RESOURCE_STATE_TIMESTAMP).epochSecond) }, { assertEquals(0.0, reader.getDouble(RESOURCE_STATE_CPU_USAGE), 0.01) } ) diff --git a/opendc-trace/opendc-trace-tools/src/main/kotlin/org/opendc/trace/tools/TraceConverter.kt b/opendc-trace/opendc-trace-tools/src/main/kotlin/org/opendc/trace/tools/TraceConverter.kt index 322464cd..0b089904 100644 --- a/opendc-trace/opendc-trace-tools/src/main/kotlin/org/opendc/trace/tools/TraceConverter.kt +++ b/opendc-trace/opendc-trace-tools/src/main/kotlin/org/opendc/trace/tools/TraceConverter.kt @@ -154,21 +154,21 @@ internal class TraceConverterCli : CliktCommand(name = "trace-converter") { var stopTime = Long.MIN_VALUE do { - id = reader.get(RESOURCE_STATE_ID) + id = reader.get(RESOURCE_ID) val timestamp = reader.get(RESOURCE_STATE_TIMESTAMP).toEpochMilli() startTime = min(startTime, timestamp) stopTime = max(stopTime, timestamp) - numCpus = max(numCpus, reader.getInt(RESOURCE_STATE_CPU_COUNT)) + numCpus = max(numCpus, reader.getInt(RESOURCE_CPU_COUNT)) - memCapacity = max(memCapacity, reader.getDouble(RESOURCE_STATE_MEM_CAPACITY)) + memCapacity = max(memCapacity, reader.getDouble(RESOURCE_MEM_CAPACITY)) if (reader.hasColumn(RESOURCE_STATE_MEM_USAGE)) { memUsage = max(memUsage, reader.getDouble(RESOURCE_STATE_MEM_USAGE)) } hasNextRow = reader.nextRow() - } while (hasNextRow && id == reader.get(RESOURCE_STATE_ID)) + } while (hasNextRow && id == reader.get(RESOURCE_ID)) // Sample only a fraction of the VMs if (random != null && random.nextDouble() > samplingFraction) { @@ -204,14 +204,14 @@ internal class TraceConverterCli : CliktCommand(name = "trace-converter") { var lastTimestamp = 0L while (hasNextRow) { - val id = reader.get(RESOURCE_STATE_ID) + val id = reader.get(RESOURCE_ID) if (id !in selectedVms) { hasNextRow = reader.nextRow() continue } - val cpuCount = reader.getInt(RESOURCE_STATE_CPU_COUNT) + val cpuCount = reader.getInt(RESOURCE_CPU_COUNT) val cpuUsage = reader.getDouble(RESOURCE_STATE_CPU_USAGE) val startTimestamp = reader.get(RESOURCE_STATE_TIMESTAMP).toEpochMilli() @@ -233,9 +233,9 @@ internal class TraceConverterCli : CliktCommand(name = "trace-converter") { break } - val shouldContinue = id == reader.get(RESOURCE_STATE_ID) && + val shouldContinue = id == reader.get(RESOURCE_ID) && abs(cpuUsage - reader.getDouble(RESOURCE_STATE_CPU_USAGE)) < 0.01 && - cpuCount == reader.getInt(RESOURCE_STATE_CPU_COUNT) + cpuCount == reader.getInt(RESOURCE_CPU_COUNT) } while (shouldContinue) val builder = GenericRecordBuilder(OdcVmTraceFormat.RESOURCE_STATES_SCHEMA) -- cgit v1.2.3 From 768bfa0d2ae763e359d74612385ce43c41afb432 Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Mon, 20 Sep 2021 15:12:10 +0200 Subject: feat(trace): Support column lookup via index This change adds support for looking up the column value through the column index. This enables faster lookup when processing very large traces. --- .../main/kotlin/org/opendc/trace/TableReader.kt | 107 ++++++++++++++++- .../org/opendc/trace/util/CompositeTableReader.kt | 110 +++++++++++++++++ .../opendc/trace/azure/AzureResourceStateTable.kt | 54 +-------- .../trace/azure/AzureResourceStateTableReader.kt | 48 ++++---- .../opendc/trace/azure/AzureResourceTableReader.kt | 62 +++++----- .../bitbrains/BitbrainsExResourceStateTable.kt | 54 +-------- .../BitbrainsExResourceStateTableReader.kt | 94 +++++++-------- .../trace/bitbrains/BitbrainsResourceStateTable.kt | 54 +-------- .../bitbrains/BitbrainsResourceStateTableReader.kt | 104 ++++++++-------- .../bitbrains/BitbrainsResourceTableReader.kt | 33 +++--- .../org/opendc/trace/gwf/GwfTaskTableReader.kt | 69 ++++++----- .../trace/opendc/OdcVmResourceStateTableReader.kt | 82 +++++++------ .../trace/opendc/OdcVmResourceTableReader.kt | 82 +++++++------ .../org/opendc/trace/swf/SwfTaskTableReader.kt | 72 +++++------ .../trace/wfformat/WfFormatTaskTableReader.kt | 62 +++++----- opendc-trace/opendc-trace-wtf/build.gradle.kts | 2 + .../org/opendc/trace/wtf/WtfTaskTableReader.kt | 132 +++++++++++++++------ 17 files changed, 688 insertions(+), 533 deletions(-) create mode 100644 opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/util/CompositeTableReader.kt (limited to 'opendc-trace') diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableReader.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableReader.kt index b5e7669f..8a796e6c 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableReader.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableReader.kt @@ -33,35 +33,130 @@ public interface TableReader : AutoCloseable { */ public fun nextRow(): Boolean + /** + * Resolve the index of the specified [column] for this reader. + * + * @param column The column to lookup. + * @return The zero-based index of the column or a negative value if the column is not present in this table. + */ + public fun resolve(column: TableColumn<*>): Int + /** * Determine whether the [TableReader] supports the specified [column]. */ - public fun hasColumn(column: TableColumn<*>): Boolean + public fun hasColumn(column: TableColumn<*>): Boolean = resolve(column) >= 0 + + /** + * Determine whether the specified [column] has a `null` value for the current row. + * + * @param index The zero-based index of the column to check for a null value. + * @throws IllegalArgumentException if the column index is not valid for this reader. + * @return `true` if the column value for the current value has a `null` value, `false` otherwise. + */ + public fun isNull(index: Int): Boolean + + /** + * Obtain the object value of the column with the specified [index]. + * + * @param index The zero-based index of the column to obtain the value for. + * @throws IllegalArgumentException if the column index is not valid for this reader. + * @return The object value of the column. + */ + public fun get(index: Int): Any? + + /** + * Obtain the boolean value of the column with the specified [index]. + * + * @param index The zero-based index of the column to obtain the value for. + * @throws IllegalArgumentException if the column index is not valid for this reader. + * @return The boolean value of the column or `false` if the column is `null`. + */ + public fun getBoolean(index: Int): Boolean + + /** + * Obtain the integer value of the column with the specified [index]. + * + * @param index The zero-based index of the column to obtain the value for. + * @throws IllegalArgumentException if the column index is not valid for this reader. + * @return The integer value of the column or `0` if the column is `null`. + */ + public fun getInt(index: Int): Int + + /** + * Obtain the double value of the column with the specified [index]. + * + * @param index The zero-based index of the column to obtain the value for. + * @throws IllegalArgumentException if the column index is not valid for this reader. + * @return The long value of the column or `0` if the column is `null`. + */ + public fun getLong(index: Int): Long + + /** + * Obtain the double value of the column with the specified [index]. + * + * @param index The zero-based index of the column to obtain the value for. + * @throws IllegalArgumentException if the column index is not valid for this reader. + * @return The double value of the column or [Double.NaN] if the column is `null`. + */ + public fun getDouble(index: Int): Double + + /** + * Determine whether the specified [column] has a `null` value for the current row. + * + * @param column The column to lookup. + * @throws IllegalArgumentException if the column is not valid for this table. + * @return `true` if the column value for the current value has a `null` value, `false` otherwise. + */ + public fun isNull(column: TableColumn<*>): Boolean = isNull(resolve(column)) /** * Obtain the value of the current column with type [T]. + * + * @param column The column to obtain the value for. + * @throws IllegalArgumentException if the column is not valid for this reader. + * @return The object value of the column. */ - public fun get(column: TableColumn): T + public fun get(column: TableColumn): T { + // This cast should always succeed since the resolve the index of the typed column + @Suppress("UNCHECKED_CAST") + return get(resolve(column)) as T + } /** * Read the specified [column] as boolean. + * + * @param column The column to obtain the value for. + * @throws IllegalArgumentException if the column is not valid for this reader. + * @return The boolean value of the column or `false` if the column is `null`. */ - public fun getBoolean(column: TableColumn): Boolean + public fun getBoolean(column: TableColumn): Boolean = getBoolean(resolve(column)) /** * Read the specified [column] as integer. + * + * @param column The column to obtain the value for. + * @throws IllegalArgumentException if the column is not valid for this reader. + * @return The integer value of the column or `0` if the column is `null`. */ - public fun getInt(column: TableColumn): Int + public fun getInt(column: TableColumn): Int = getInt(resolve(column)) /** * Read the specified [column] as long. + * + * @param column The column to obtain the value for. + * @throws IllegalArgumentException if the column is not valid for this reader. + * @return The long value of the column or `0` if the column is `null`. */ - public fun getLong(column: TableColumn): Long + public fun getLong(column: TableColumn): Long = getLong(resolve(column)) /** * Read the specified [column] as double. + * + * @param column The column to obtain the value for. + * @throws IllegalArgumentException if the column is not valid for this reader. + * @return The double value of the column or [Double.NaN] if the column is `null`. */ - public fun getDouble(column: TableColumn): Double + public fun getDouble(column: TableColumn): Double = getDouble(resolve(column)) /** * Closes the reader so that no further iteration or data access can be made. diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/util/CompositeTableReader.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/util/CompositeTableReader.kt new file mode 100644 index 00000000..dafc0798 --- /dev/null +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/util/CompositeTableReader.kt @@ -0,0 +1,110 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.util + +import org.opendc.trace.TableColumn +import org.opendc.trace.TableReader + +/** + * A helper class to chain multiple [TableReader]s. + */ +public abstract class CompositeTableReader : TableReader { + /** + * A flag to indicate that the reader has starting, meaning the user called [nextRow] at least once + * (and in turn [nextReader]). + */ + private var hasStarted = false + + /** + * The active [TableReader] instance. + */ + private var delegate: TableReader? = null + + /** + * Obtain the next [TableReader] instance to read from or `null` if there are no more readers to read from. + */ + protected abstract fun nextReader(): TableReader? + + override fun nextRow(): Boolean { + if (!hasStarted) { + assert(delegate == null) { "Duplicate initialization" } + delegate = nextReader() + hasStarted = true + } + + var delegate = delegate + + while (delegate != null) { + if (delegate.nextRow()) { + break + } + + delegate.close() + delegate = nextReader() + this.delegate = delegate + } + + return delegate != null + } + + override fun resolve(column: TableColumn<*>): Int { + val delegate = delegate + return delegate?.resolve(column) ?: -1 + } + + override fun isNull(index: Int): Boolean { + val delegate = checkNotNull(delegate) { "Invalid reader state" } + return delegate.isNull(index) + } + + override fun get(index: Int): Any? { + val delegate = checkNotNull(delegate) { "Invalid reader state" } + return delegate.get(index) + } + + override fun getBoolean(index: Int): Boolean { + val delegate = checkNotNull(delegate) { "Invalid reader state" } + return delegate.getBoolean(index) + } + + override fun getInt(index: Int): Int { + val delegate = checkNotNull(delegate) { "Invalid reader state" } + return delegate.getInt(index) + } + + override fun getLong(index: Int): Long { + val delegate = checkNotNull(delegate) { "Invalid reader state" } + return delegate.getLong(index) + } + + override fun getDouble(index: Int): Double { + val delegate = checkNotNull(delegate) { "Invalid reader state" } + return delegate.getDouble(index) + } + + override fun close() { + delegate?.close() + } + + override fun toString(): String = "CompositeTableReader" +} diff --git a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTable.kt b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTable.kt index e6b89465..8f2f5cc9 100644 --- a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTable.kt +++ b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTable.kt @@ -24,6 +24,7 @@ package org.opendc.trace.azure import com.fasterxml.jackson.dataformat.csv.CsvFactory import org.opendc.trace.* +import org.opendc.trace.util.CompositeTableReader import java.nio.file.Files import java.nio.file.Path import java.util.stream.Collectors @@ -55,57 +56,8 @@ internal class AzureResourceStateTable(private val factory: CsvFactory, path: Pa override fun newReader(): TableReader { val it = partitions.iterator() - return object : TableReader { - var delegate: TableReader? = nextDelegate() - - override fun nextRow(): Boolean { - var delegate = delegate - - while (delegate != null) { - if (delegate.nextRow()) { - break - } - - delegate.close() - delegate = nextDelegate() - this.delegate = delegate - } - - return delegate != null - } - - override fun hasColumn(column: TableColumn<*>): Boolean = delegate?.hasColumn(column) ?: false - - override fun get(column: TableColumn): T { - val delegate = checkNotNull(delegate) { "Invalid reader state" } - return delegate.get(column) - } - - override fun getBoolean(column: TableColumn): Boolean { - val delegate = checkNotNull(delegate) { "Invalid reader state" } - return delegate.getBoolean(column) - } - - override fun getInt(column: TableColumn): Int { - val delegate = checkNotNull(delegate) { "Invalid reader state" } - return delegate.getInt(column) - } - - override fun getLong(column: TableColumn): Long { - val delegate = checkNotNull(delegate) { "Invalid reader state" } - return delegate.getLong(column) - } - - override fun getDouble(column: TableColumn): Double { - val delegate = checkNotNull(delegate) { "Invalid reader state" } - return delegate.getDouble(column) - } - - override fun close() { - delegate?.close() - } - - private fun nextDelegate(): TableReader? { + return object : CompositeTableReader() { + override fun nextReader(): TableReader? { return if (it.hasNext()) { val (_, path) = it.next() return AzureResourceStateTableReader(factory.createParser(path.toFile())) diff --git a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTableReader.kt b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTableReader.kt index 6c1cb770..da8181fe 100644 --- a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTableReader.kt +++ b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTableReader.kt @@ -60,42 +60,37 @@ internal class AzureResourceStateTableReader(private val parser: CsvParser) : Ta return true } - override fun hasColumn(column: TableColumn<*>): Boolean { - return when (column) { - RESOURCE_ID -> true - RESOURCE_STATE_TIMESTAMP -> true - RESOURCE_STATE_CPU_USAGE_PCT -> true - else -> false - } + override fun resolve(column: TableColumn<*>): Int = columns[column] ?: -1 + + override fun isNull(index: Int): Boolean { + require(index in 0..columns.size) { "Invalid column index" } + return false } - override fun get(column: TableColumn): T { - val res: Any? = when (column) { - RESOURCE_ID -> id - RESOURCE_STATE_TIMESTAMP -> timestamp - RESOURCE_STATE_CPU_USAGE_PCT -> cpuUsagePct - else -> throw IllegalArgumentException("Invalid column") + override fun get(index: Int): Any? { + return when (index) { + COL_ID -> id + COL_TIMESTAMP -> timestamp + COL_CPU_USAGE_PCT -> cpuUsagePct + else -> throw IllegalArgumentException("Invalid column index") } - - @Suppress("UNCHECKED_CAST") - return res as T } - override fun getBoolean(column: TableColumn): Boolean { + override fun getBoolean(index: Int): Boolean { throw IllegalArgumentException("Invalid column") } - override fun getInt(column: TableColumn): Int { + override fun getInt(index: Int): Int { throw IllegalArgumentException("Invalid column") } - override fun getLong(column: TableColumn): Long { + override fun getLong(index: Int): Long { throw IllegalArgumentException("Invalid column") } - override fun getDouble(column: TableColumn): Double { - return when (column) { - RESOURCE_STATE_CPU_USAGE_PCT -> cpuUsagePct + override fun getDouble(index: Int): Double { + return when (index) { + COL_CPU_USAGE_PCT -> cpuUsagePct else -> throw IllegalArgumentException("Invalid column") } } @@ -133,6 +128,15 @@ internal class AzureResourceStateTableReader(private val parser: CsvParser) : Ta cpuUsagePct = Double.NaN } + private val COL_ID = 0 + private val COL_TIMESTAMP = 1 + private val COL_CPU_USAGE_PCT = 2 + private val columns = mapOf( + RESOURCE_ID to COL_ID, + RESOURCE_STATE_TIMESTAMP to COL_TIMESTAMP, + RESOURCE_STATE_CPU_USAGE_PCT to COL_CPU_USAGE_PCT + ) + companion object { /** * The [CsvSchema] that is used to parse the trace. diff --git a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTableReader.kt b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTableReader.kt index 5ea97483..a6352613 100644 --- a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTableReader.kt +++ b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTableReader.kt @@ -62,49 +62,42 @@ internal class AzureResourceTableReader(private val parser: CsvParser) : TableRe return true } - override fun hasColumn(column: TableColumn<*>): Boolean { - return when (column) { - RESOURCE_ID -> true - RESOURCE_START_TIME -> true - RESOURCE_STOP_TIME -> true - RESOURCE_CPU_COUNT -> true - RESOURCE_MEM_CAPACITY -> true - else -> false - } + override fun resolve(column: TableColumn<*>): Int = columns[column] ?: -1 + + override fun isNull(index: Int): Boolean { + require(index in 0..columns.size) { "Invalid column index" } + return false } - override fun get(column: TableColumn): T { - val res: Any? = when (column) { - RESOURCE_ID -> id - RESOURCE_START_TIME -> startTime - RESOURCE_STOP_TIME -> stopTime - RESOURCE_CPU_COUNT -> getInt(RESOURCE_CPU_COUNT) - RESOURCE_MEM_CAPACITY -> getDouble(RESOURCE_MEM_CAPACITY) + override fun get(index: Int): Any? { + return when (index) { + COL_ID -> id + COL_START_TIME -> startTime + COL_STOP_TIME -> stopTime + COL_CPU_COUNT -> getInt(index) + COL_MEM_CAPACITY -> getDouble(index) else -> throw IllegalArgumentException("Invalid column") } - - @Suppress("UNCHECKED_CAST") - return res as T } - override fun getBoolean(column: TableColumn): Boolean { + override fun getBoolean(index: Int): Boolean { throw IllegalArgumentException("Invalid column") } - override fun getInt(column: TableColumn): Int { - return when (column) { - RESOURCE_CPU_COUNT -> cpuCores + override fun getInt(index: Int): Int { + return when (index) { + COL_CPU_COUNT -> cpuCores else -> throw IllegalArgumentException("Invalid column") } } - override fun getLong(column: TableColumn): Long { + override fun getLong(index: Int): Long { throw IllegalArgumentException("Invalid column") } - override fun getDouble(column: TableColumn): Double { - return when (column) { - RESOURCE_MEM_CAPACITY -> memCapacity + override fun getDouble(index: Int): Double { + return when (index) { + COL_MEM_CAPACITY -> memCapacity else -> throw IllegalArgumentException("Invalid column") } } @@ -138,7 +131,7 @@ internal class AzureResourceTableReader(private val parser: CsvParser) : TableRe /** * Reset the state. */ - fun reset() { + private fun reset() { id = null startTime = null stopTime = null @@ -146,6 +139,19 @@ internal class AzureResourceTableReader(private val parser: CsvParser) : TableRe memCapacity = Double.NaN } + private val COL_ID = 0 + private val COL_START_TIME = 1 + private val COL_STOP_TIME = 2 + private val COL_CPU_COUNT = 3 + private val COL_MEM_CAPACITY = 4 + private val columns = mapOf( + RESOURCE_ID to COL_ID, + RESOURCE_START_TIME to COL_START_TIME, + RESOURCE_STOP_TIME to COL_STOP_TIME, + RESOURCE_CPU_COUNT to COL_CPU_COUNT, + RESOURCE_MEM_CAPACITY to COL_MEM_CAPACITY + ) + companion object { /** * The [CsvSchema] that is used to parse the trace. diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTable.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTable.kt index 44a6c26e..ab768608 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTable.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTable.kt @@ -23,6 +23,7 @@ package org.opendc.trace.bitbrains import org.opendc.trace.* +import org.opendc.trace.util.CompositeTableReader import java.nio.file.Files import java.nio.file.Path import java.util.stream.Collectors @@ -64,57 +65,8 @@ internal class BitbrainsExResourceStateTable(path: Path) : Table { override fun newReader(): TableReader { val it = partitions.iterator() - return object : TableReader { - var delegate: TableReader? = nextDelegate() - - override fun nextRow(): Boolean { - var delegate = delegate - - while (delegate != null) { - if (delegate.nextRow()) { - break - } - - delegate.close() - delegate = nextDelegate() - this.delegate = delegate - } - - return delegate != null - } - - override fun hasColumn(column: TableColumn<*>): Boolean = delegate?.hasColumn(column) ?: false - - override fun get(column: TableColumn): T { - val delegate = checkNotNull(delegate) { "Invalid reader state" } - return delegate.get(column) - } - - override fun getBoolean(column: TableColumn): Boolean { - val delegate = checkNotNull(delegate) { "Invalid reader state" } - return delegate.getBoolean(column) - } - - override fun getInt(column: TableColumn): Int { - val delegate = checkNotNull(delegate) { "Invalid reader state" } - return delegate.getInt(column) - } - - override fun getLong(column: TableColumn): Long { - val delegate = checkNotNull(delegate) { "Invalid reader state" } - return delegate.getLong(column) - } - - override fun getDouble(column: TableColumn): Double { - val delegate = checkNotNull(delegate) { "Invalid reader state" } - return delegate.getDouble(column) - } - - override fun close() { - delegate?.close() - } - - private fun nextDelegate(): TableReader? { + return object : CompositeTableReader() { + override fun nextReader(): TableReader? { return if (it.hasNext()) { val (_, path) = it.next() val reader = path.bufferedReader() diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTableReader.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTableReader.kt index 5619e839..c1b6f5ba 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTableReader.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTableReader.kt @@ -88,70 +88,53 @@ internal class BitbrainsExResourceStateTableReader(private val reader: BufferedR return true } - override fun hasColumn(column: TableColumn<*>): Boolean { - return when (column) { - RESOURCE_ID -> true - RESOURCE_CLUSTER_ID -> true - RESOURCE_STATE_TIMESTAMP -> true - RESOURCE_CPU_COUNT -> true - RESOURCE_CPU_CAPACITY -> true - RESOURCE_STATE_CPU_USAGE -> true - RESOURCE_STATE_CPU_USAGE_PCT -> true - RESOURCE_STATE_CPU_DEMAND -> true - RESOURCE_STATE_CPU_READY_PCT -> true - RESOURCE_MEM_CAPACITY -> true - RESOURCE_STATE_DISK_READ -> true - RESOURCE_STATE_DISK_WRITE -> true - else -> false - } + override fun resolve(column: TableColumn<*>): Int = columns[column] ?: -1 + + override fun isNull(index: Int): Boolean { + require(index in 0..COL_MAX) { "Invalid column index" } + return false } - override fun get(column: TableColumn): T { - val res: Any? = when (column) { - RESOURCE_ID -> id - RESOURCE_CLUSTER_ID -> cluster - RESOURCE_STATE_TIMESTAMP -> timestamp - RESOURCE_CPU_COUNT -> getInt(RESOURCE_CPU_COUNT) - RESOURCE_CPU_CAPACITY -> getDouble(RESOURCE_CPU_CAPACITY) - RESOURCE_STATE_CPU_USAGE -> getDouble(RESOURCE_STATE_CPU_USAGE) - RESOURCE_STATE_CPU_USAGE_PCT -> getDouble(RESOURCE_STATE_CPU_USAGE_PCT) - RESOURCE_MEM_CAPACITY -> getDouble(RESOURCE_MEM_CAPACITY) - RESOURCE_STATE_DISK_READ -> getDouble(RESOURCE_STATE_DISK_READ) - RESOURCE_STATE_DISK_WRITE -> getDouble(RESOURCE_STATE_DISK_WRITE) + override fun get(index: Int): Any? { + return when (index) { + COL_ID -> id + COL_CLUSTER_ID -> cluster + COL_TIMESTAMP -> timestamp + COL_NCPUS -> getInt(index) + COL_POWERED_ON -> getInt(index) + COL_CPU_CAPACITY, COL_CPU_USAGE, COL_CPU_USAGE_PCT, COL_CPU_READY_PCT, COL_CPU_DEMAND, COL_MEM_CAPACITY, COL_DISK_READ, COL_DISK_WRITE -> getDouble(index) else -> throw IllegalArgumentException("Invalid column") } - - @Suppress("UNCHECKED_CAST") - return res as T } - override fun getBoolean(column: TableColumn): Boolean { - return when (column) { - RESOURCE_STATE_POWERED_ON -> poweredOn + override fun getBoolean(index: Int): Boolean { + return when (index) { + COL_POWERED_ON -> poweredOn else -> throw IllegalArgumentException("Invalid column") } } - override fun getInt(column: TableColumn): Int { - return when (column) { - RESOURCE_CPU_COUNT -> cpuCores + override fun getInt(index: Int): Int { + return when (index) { + COL_NCPUS -> cpuCores else -> throw IllegalArgumentException("Invalid column") } } - override fun getLong(column: TableColumn): Long { + override fun getLong(index: Int): Long { throw IllegalArgumentException("Invalid column") } - override fun getDouble(column: TableColumn): Double { - return when (column) { - RESOURCE_CPU_CAPACITY -> cpuCapacity - RESOURCE_STATE_CPU_USAGE -> cpuUsage - RESOURCE_STATE_CPU_USAGE_PCT -> cpuUsage / cpuCapacity - RESOURCE_STATE_CPU_DEMAND -> cpuDemand - RESOURCE_MEM_CAPACITY -> memCapacity - RESOURCE_STATE_DISK_READ -> diskRead - RESOURCE_STATE_DISK_WRITE -> diskWrite + override fun getDouble(index: Int): Double { + return when (index) { + COL_CPU_CAPACITY -> cpuCapacity + COL_CPU_USAGE -> cpuUsage + COL_CPU_USAGE_PCT -> cpuUsage / cpuCapacity + COL_CPU_READY_PCT -> cpuReadyPct + COL_CPU_DEMAND -> cpuDemand + COL_MEM_CAPACITY -> memCapacity + COL_DISK_READ -> diskRead + COL_DISK_WRITE -> diskWrite else -> throw IllegalArgumentException("Invalid column") } } @@ -209,4 +192,21 @@ internal class BitbrainsExResourceStateTableReader(private val reader: BufferedR private val COL_CPU_CAPACITY = 18 private val COL_ID = 19 private val COL_MEM_CAPACITY = 20 + private val COL_CPU_USAGE_PCT = 21 + private val COL_MAX = COL_CPU_USAGE_PCT + 1 + + private val columns = mapOf( + RESOURCE_ID to COL_ID, + RESOURCE_CLUSTER_ID to COL_CLUSTER_ID, + RESOURCE_STATE_TIMESTAMP to COL_TIMESTAMP, + RESOURCE_CPU_COUNT to COL_NCPUS, + RESOURCE_CPU_CAPACITY to COL_CPU_CAPACITY, + RESOURCE_STATE_CPU_USAGE to COL_CPU_USAGE, + RESOURCE_STATE_CPU_USAGE_PCT to COL_CPU_USAGE_PCT, + RESOURCE_STATE_CPU_DEMAND to COL_CPU_DEMAND, + RESOURCE_STATE_CPU_READY_PCT to COL_CPU_READY_PCT, + RESOURCE_MEM_CAPACITY to COL_MEM_CAPACITY, + RESOURCE_STATE_DISK_READ to COL_DISK_READ, + RESOURCE_STATE_DISK_WRITE to COL_DISK_WRITE + ) } diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt index f68e61dc..6b6ac9da 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt @@ -24,6 +24,7 @@ package org.opendc.trace.bitbrains import com.fasterxml.jackson.dataformat.csv.CsvFactory import org.opendc.trace.* +import org.opendc.trace.util.CompositeTableReader import java.nio.file.Files import java.nio.file.Path import java.util.stream.Collectors @@ -65,57 +66,8 @@ internal class BitbrainsResourceStateTable(private val factory: CsvFactory, path override fun newReader(): TableReader { val it = partitions.iterator() - return object : TableReader { - var delegate: TableReader? = nextDelegate() - - override fun nextRow(): Boolean { - var delegate = delegate - - while (delegate != null) { - if (delegate.nextRow()) { - break - } - - delegate.close() - delegate = nextDelegate() - this.delegate = delegate - } - - return delegate != null - } - - override fun hasColumn(column: TableColumn<*>): Boolean = delegate?.hasColumn(column) ?: false - - override fun get(column: TableColumn): T { - val delegate = checkNotNull(delegate) { "Invalid reader state" } - return delegate.get(column) - } - - override fun getBoolean(column: TableColumn): Boolean { - val delegate = checkNotNull(delegate) { "Invalid reader state" } - return delegate.getBoolean(column) - } - - override fun getInt(column: TableColumn): Int { - val delegate = checkNotNull(delegate) { "Invalid reader state" } - return delegate.getInt(column) - } - - override fun getLong(column: TableColumn): Long { - val delegate = checkNotNull(delegate) { "Invalid reader state" } - return delegate.getLong(column) - } - - override fun getDouble(column: TableColumn): Double { - val delegate = checkNotNull(delegate) { "Invalid reader state" } - return delegate.getDouble(column) - } - - override fun close() { - delegate?.close() - } - - private fun nextDelegate(): TableReader? { + return object : CompositeTableReader() { + override fun nextReader(): TableReader? { return if (it.hasNext()) { val (partition, path) = it.next() return BitbrainsResourceStateTableReader(partition, factory.createParser(path.toFile())) diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTableReader.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTableReader.kt index 54be5dea..3a8839b4 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTableReader.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTableReader.kt @@ -111,71 +111,49 @@ internal class BitbrainsResourceStateTableReader(private val partition: String, return true } - override fun hasColumn(column: TableColumn<*>): Boolean { - return when (column) { - RESOURCE_ID -> true - RESOURCE_STATE_TIMESTAMP -> true - RESOURCE_CPU_COUNT -> true - RESOURCE_CPU_CAPACITY -> true - RESOURCE_STATE_CPU_USAGE -> true - RESOURCE_STATE_CPU_USAGE_PCT -> true - RESOURCE_MEM_CAPACITY -> true - RESOURCE_STATE_MEM_USAGE -> true - RESOURCE_STATE_DISK_READ -> true - RESOURCE_STATE_DISK_WRITE -> true - RESOURCE_STATE_NET_RX -> true - RESOURCE_STATE_NET_TX -> true - else -> false - } + override fun resolve(column: TableColumn<*>): Int = columns[column] ?: -1 + + override fun isNull(index: Int): Boolean { + check(index in 0..columns.size) { "Invalid column index" } + return false } - override fun get(column: TableColumn): T { - val res: Any? = when (column) { - RESOURCE_ID -> partition - RESOURCE_STATE_TIMESTAMP -> timestamp - RESOURCE_CPU_COUNT -> cpuCores - RESOURCE_CPU_CAPACITY -> cpuCapacity - RESOURCE_STATE_CPU_USAGE -> cpuUsage - RESOURCE_STATE_CPU_USAGE_PCT -> cpuUsagePct - RESOURCE_MEM_CAPACITY -> memCapacity - RESOURCE_STATE_MEM_USAGE -> memUsage - RESOURCE_STATE_DISK_READ -> diskRead - RESOURCE_STATE_DISK_WRITE -> diskWrite - RESOURCE_STATE_NET_RX -> netReceived - RESOURCE_STATE_NET_TX -> netTransmitted + override fun get(index: Int): Any? { + return when (index) { + COL_ID -> partition + COL_TIMESTAMP -> timestamp + COL_CPU_COUNT -> getInt(index) + COL_CPU_CAPACITY, COL_CPU_USAGE, COL_CPU_USAGE_PCT, COL_MEM_CAPACITY, COL_MEM_USAGE, COL_DISK_READ, COL_DISK_WRITE, COL_NET_RX, COL_NET_TX -> getDouble(index) else -> throw IllegalArgumentException("Invalid column") } - - @Suppress("UNCHECKED_CAST") - return res as T } - override fun getBoolean(column: TableColumn): Boolean { + override fun getBoolean(index: Int): Boolean { throw IllegalArgumentException("Invalid column") } - override fun getInt(column: TableColumn): Int { - return when (column) { - RESOURCE_CPU_COUNT -> cpuCores + override fun getInt(index: Int): Int { + return when (index) { + COL_CPU_COUNT -> cpuCores else -> throw IllegalArgumentException("Invalid column") } } - override fun getLong(column: TableColumn): Long { + override fun getLong(index: Int): Long { throw IllegalArgumentException("Invalid column") } - override fun getDouble(column: TableColumn): Double { - return when (column) { - RESOURCE_CPU_CAPACITY -> cpuCapacity - RESOURCE_STATE_CPU_USAGE -> cpuUsage - RESOURCE_STATE_CPU_USAGE_PCT -> cpuUsagePct - RESOURCE_MEM_CAPACITY -> memCapacity - RESOURCE_STATE_MEM_USAGE -> memUsage - RESOURCE_STATE_DISK_READ -> diskRead - RESOURCE_STATE_DISK_WRITE -> diskWrite - RESOURCE_STATE_NET_RX -> netReceived - RESOURCE_STATE_NET_TX -> netTransmitted + override fun getDouble(index: Int): Double { + return when (index) { + COL_CPU_CAPACITY -> cpuCapacity + COL_CPU_USAGE -> cpuUsage + COL_CPU_USAGE_PCT -> cpuUsagePct + COL_MEM_CAPACITY -> memCapacity + COL_MEM_USAGE -> memUsage + COL_DISK_READ -> diskRead + COL_DISK_WRITE -> diskWrite + COL_NET_RX -> netReceived + COL_NET_TX -> netTransmitted else -> throw IllegalArgumentException("Invalid column") } } @@ -249,6 +227,34 @@ internal class BitbrainsResourceStateTableReader(private val partition: String, netTransmitted = Double.NaN } + private val COL_TIMESTAMP = 0 + private val COL_CPU_COUNT = 1 + private val COL_CPU_CAPACITY = 2 + private val COL_CPU_USAGE = 3 + private val COL_CPU_USAGE_PCT = 4 + private val COL_MEM_CAPACITY = 5 + private val COL_MEM_USAGE = 6 + private val COL_DISK_READ = 7 + private val COL_DISK_WRITE = 8 + private val COL_NET_RX = 9 + private val COL_NET_TX = 10 + private val COL_ID = 11 + + private val columns = mapOf( + RESOURCE_ID to COL_ID, + RESOURCE_STATE_TIMESTAMP to COL_TIMESTAMP, + RESOURCE_CPU_COUNT to COL_CPU_COUNT, + RESOURCE_CPU_CAPACITY to COL_CPU_CAPACITY, + RESOURCE_STATE_CPU_USAGE to COL_CPU_USAGE, + RESOURCE_STATE_CPU_USAGE_PCT to COL_CPU_USAGE_PCT, + RESOURCE_MEM_CAPACITY to COL_MEM_CAPACITY, + RESOURCE_STATE_MEM_USAGE to COL_MEM_USAGE, + RESOURCE_STATE_DISK_READ to COL_DISK_READ, + RESOURCE_STATE_DISK_WRITE to COL_DISK_WRITE, + RESOURCE_STATE_NET_RX to COL_NET_RX, + RESOURCE_STATE_NET_TX to COL_NET_TX + ) + /** * The type of the timestamp in the trace. */ diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTableReader.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTableReader.kt index 146c04f0..3701994a 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTableReader.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTableReader.kt @@ -43,13 +43,14 @@ internal class BitbrainsResourceTableReader(private val factory: CsvFactory, vms val parser = factory.createParser(path.toFile()) val reader = BitbrainsResourceStateTableReader(name, parser) + val idCol = reader.resolve(RESOURCE_ID) try { if (!reader.nextRow()) { continue } - id = reader.get(RESOURCE_ID) + id = reader.get(idCol) as String return true } finally { reader.close() @@ -59,36 +60,33 @@ internal class BitbrainsResourceTableReader(private val factory: CsvFactory, vms return false } - override fun hasColumn(column: TableColumn<*>): Boolean { - return when (column) { - RESOURCE_ID -> true - else -> false - } + override fun resolve(column: TableColumn<*>): Int = columns[column] ?: -1 + + override fun isNull(index: Int): Boolean { + check(index in 0..columns.size) { "Invalid column index" } + return false } - override fun get(column: TableColumn): T { - val res: Any? = when (column) { - RESOURCE_ID -> id + override fun get(index: Int): Any? { + return when (index) { + COL_ID -> id else -> throw IllegalArgumentException("Invalid column") } - - @Suppress("UNCHECKED_CAST") - return res as T } - override fun getBoolean(column: TableColumn): Boolean { + override fun getBoolean(index: Int): Boolean { throw IllegalArgumentException("Invalid column") } - override fun getInt(column: TableColumn): Int { + override fun getInt(index: Int): Int { throw IllegalArgumentException("Invalid column") } - override fun getLong(column: TableColumn): Long { + override fun getLong(index: Int): Long { throw IllegalArgumentException("Invalid column") } - override fun getDouble(column: TableColumn): Double { + override fun getDouble(index: Int): Double { throw IllegalArgumentException("Invalid column") } @@ -105,4 +103,7 @@ internal class BitbrainsResourceTableReader(private val factory: CsvFactory, vms private fun reset() { id = null } + + private val COL_ID = 0 + private val columns = mapOf(RESOURCE_ID to COL_ID) } diff --git a/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTableReader.kt b/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTableReader.kt index 39eb5520..aa4c543b 100644 --- a/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTableReader.kt +++ b/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTableReader.kt @@ -67,52 +67,43 @@ internal class GwfTaskTableReader(private val parser: CsvParser) : TableReader { return true } - override fun hasColumn(column: TableColumn<*>): Boolean { - return when (column) { - TASK_WORKFLOW_ID -> true - TASK_ID -> true - TASK_SUBMIT_TIME -> true - TASK_RUNTIME -> true - TASK_REQ_NCPUS -> true - TASK_ALLOC_NCPUS -> true - TASK_PARENTS -> true - else -> false - } + override fun resolve(column: TableColumn<*>): Int = columns[column] ?: -1 + + override fun isNull(index: Int): Boolean { + check(index in 0..columns.size) { "Invalid column" } + return false } - override fun get(column: TableColumn): T { - val res: Any? = when (column) { - TASK_WORKFLOW_ID -> workflowId - TASK_ID -> jobId - TASK_SUBMIT_TIME -> submitTime - TASK_RUNTIME -> runtime - TASK_REQ_NCPUS -> nProcs - TASK_ALLOC_NCPUS -> reqNProcs - TASK_PARENTS -> dependencies + override fun get(index: Int): Any? { + return when (index) { + COL_JOB_ID -> jobId + COL_WORKFLOW_ID -> workflowId + COL_SUBMIT_TIME -> submitTime + COL_RUNTIME -> runtime + COL_REQ_NPROC -> getInt(index) + COL_NPROC -> getInt(index) + COL_DEPS -> dependencies else -> throw IllegalArgumentException("Invalid column") } - - @Suppress("UNCHECKED_CAST") - return res as T } - override fun getBoolean(column: TableColumn): Boolean { + override fun getBoolean(index: Int): Boolean { throw IllegalArgumentException("Invalid column") } - override fun getInt(column: TableColumn): Int { - return when (column) { - TASK_REQ_NCPUS -> nProcs - TASK_ALLOC_NCPUS -> reqNProcs + override fun getInt(index: Int): Int { + return when (index) { + COL_REQ_NPROC -> reqNProcs + COL_NPROC -> nProcs else -> throw IllegalArgumentException("Invalid column") } } - override fun getLong(column: TableColumn): Long { + override fun getLong(index: Int): Long { throw IllegalArgumentException("Invalid column") } - override fun getDouble(column: TableColumn): Double { + override fun getDouble(index: Int): Double { throw IllegalArgumentException("Invalid column") } @@ -180,6 +171,24 @@ internal class GwfTaskTableReader(private val parser: CsvParser) : TableReader { dependencies = emptySet() } + private val COL_WORKFLOW_ID = 0 + private val COL_JOB_ID = 1 + private val COL_SUBMIT_TIME = 2 + private val COL_RUNTIME = 3 + private val COL_NPROC = 4 + private val COL_REQ_NPROC = 5 + private val COL_DEPS = 6 + + private val columns = mapOf( + TASK_ID to COL_JOB_ID, + TASK_WORKFLOW_ID to COL_WORKFLOW_ID, + TASK_SUBMIT_TIME to COL_SUBMIT_TIME, + TASK_RUNTIME to COL_RUNTIME, + TASK_ALLOC_NCPUS to COL_NPROC, + TASK_REQ_NCPUS to COL_REQ_NPROC, + TASK_PARENTS to COL_DEPS + ) + companion object { /** * The [CsvSchema] that is used to parse the trace. diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTableReader.kt b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTableReader.kt index e4b18735..b5043f82 100644 --- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTableReader.kt +++ b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTableReader.kt @@ -55,54 +55,46 @@ internal class OdcVmResourceStateTableReader(private val reader: LocalParquetRea return record != null } - override fun hasColumn(column: TableColumn<*>): Boolean { - return when (column) { - RESOURCE_ID -> true - RESOURCE_STATE_TIMESTAMP -> true - RESOURCE_STATE_DURATION -> true - RESOURCE_CPU_COUNT -> true - RESOURCE_STATE_CPU_USAGE -> true - else -> false - } + override fun resolve(column: TableColumn<*>): Int = columns[column] ?: -1 + + override fun isNull(index: Int): Boolean { + check(index in 0..columns.size) { "Invalid column index" } + return get(index) == null } - override fun get(column: TableColumn): T { + override fun get(index: Int): Any? { val record = checkNotNull(record) { "Reader in invalid state" } - @Suppress("UNCHECKED_CAST") - val res: Any = when (column) { - RESOURCE_ID -> record[COL_ID].toString() - RESOURCE_STATE_TIMESTAMP -> Instant.ofEpochMilli(record[COL_TIMESTAMP] as Long) - RESOURCE_STATE_DURATION -> Duration.ofMillis(record[COL_DURATION] as Long) - RESOURCE_CPU_COUNT -> getInt(RESOURCE_CPU_COUNT) - RESOURCE_STATE_CPU_USAGE -> getDouble(RESOURCE_STATE_CPU_USAGE) + return when (index) { + COL_ID -> record[AVRO_COL_ID].toString() + COL_TIMESTAMP -> Instant.ofEpochMilli(record[AVRO_COL_TIMESTAMP] as Long) + COL_DURATION -> Duration.ofMillis(record[AVRO_COL_DURATION] as Long) + COL_CPU_COUNT -> getInt(index) + COL_CPU_USAGE -> getDouble(index) else -> throw IllegalArgumentException("Invalid column") } - - @Suppress("UNCHECKED_CAST") - return res as T } - override fun getBoolean(column: TableColumn): Boolean { + override fun getBoolean(index: Int): Boolean { throw IllegalArgumentException("Invalid column") } - override fun getInt(column: TableColumn): Int { + override fun getInt(index: Int): Int { val record = checkNotNull(record) { "Reader in invalid state" } - return when (column) { - RESOURCE_CPU_COUNT -> record[COL_CPU_COUNT] as Int + return when (index) { + COL_CPU_COUNT -> record[AVRO_COL_CPU_COUNT] as Int else -> throw IllegalArgumentException("Invalid column") } } - override fun getLong(column: TableColumn): Long { + override fun getLong(index: Int): Long { throw IllegalArgumentException("Invalid column") } - override fun getDouble(column: TableColumn): Double { + override fun getDouble(index: Int): Double { val record = checkNotNull(record) { "Reader in invalid state" } - return when (column) { - RESOURCE_STATE_CPU_USAGE -> (record[COL_CPU_USAGE] as Number).toDouble() + return when (index) { + COL_CPU_USAGE -> (record[AVRO_COL_CPU_USAGE] as Number).toDouble() else -> throw IllegalArgumentException("Invalid column") } } @@ -118,20 +110,34 @@ internal class OdcVmResourceStateTableReader(private val reader: LocalParquetRea */ private fun initColumns(schema: Schema) { try { - COL_ID = schema.getField("id").pos() - COL_TIMESTAMP = (schema.getField("timestamp") ?: schema.getField("time")).pos() - COL_DURATION = schema.getField("duration").pos() - COL_CPU_COUNT = (schema.getField("cpu_count") ?: schema.getField("cores")).pos() - COL_CPU_USAGE = (schema.getField("cpu_usage") ?: schema.getField("cpuUsage")).pos() + AVRO_COL_ID = schema.getField("id").pos() + AVRO_COL_TIMESTAMP = (schema.getField("timestamp") ?: schema.getField("time")).pos() + AVRO_COL_DURATION = schema.getField("duration").pos() + AVRO_COL_CPU_COUNT = (schema.getField("cpu_count") ?: schema.getField("cores")).pos() + AVRO_COL_CPU_USAGE = (schema.getField("cpu_usage") ?: schema.getField("cpuUsage")).pos() } catch (e: NullPointerException) { // This happens when the field we are trying to access does not exist throw IllegalArgumentException("Invalid schema", e) } } - private var COL_ID = -1 - private var COL_TIMESTAMP = -1 - private var COL_DURATION = -1 - private var COL_CPU_COUNT = -1 - private var COL_CPU_USAGE = -1 + private var AVRO_COL_ID = -1 + private var AVRO_COL_TIMESTAMP = -1 + private var AVRO_COL_DURATION = -1 + private var AVRO_COL_CPU_COUNT = -1 + private var AVRO_COL_CPU_USAGE = -1 + + private val COL_ID = 0 + private val COL_TIMESTAMP = 1 + private val COL_DURATION = 2 + private val COL_CPU_COUNT = 3 + private val COL_CPU_USAGE = 4 + + private val columns = mapOf( + RESOURCE_ID to COL_ID, + RESOURCE_STATE_TIMESTAMP to COL_TIMESTAMP, + RESOURCE_STATE_DURATION to COL_DURATION, + RESOURCE_CPU_COUNT to COL_CPU_COUNT, + RESOURCE_STATE_CPU_USAGE to COL_CPU_USAGE, + ) } diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTableReader.kt b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTableReader.kt index c52da62d..d93929aa 100644 --- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTableReader.kt +++ b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTableReader.kt @@ -54,56 +54,48 @@ internal class OdcVmResourceTableReader(private val reader: LocalParquetReader): Boolean { - return when (column) { - RESOURCE_ID -> true - RESOURCE_START_TIME -> true - RESOURCE_STOP_TIME -> true - RESOURCE_CPU_COUNT -> true - RESOURCE_MEM_CAPACITY -> true - else -> false - } + override fun resolve(column: TableColumn<*>): Int = columns[column] ?: -1 + + override fun isNull(index: Int): Boolean { + check(index in 0..columns.size) { "Invalid column index" } + return get(index) == null } - override fun get(column: TableColumn): T { + override fun get(index: Int): Any? { val record = checkNotNull(record) { "Reader in invalid state" } - @Suppress("UNCHECKED_CAST") - val res: Any = when (column) { - RESOURCE_ID -> record[COL_ID].toString() - RESOURCE_START_TIME -> Instant.ofEpochMilli(record[COL_START_TIME] as Long) - RESOURCE_STOP_TIME -> Instant.ofEpochMilli(record[COL_STOP_TIME] as Long) - RESOURCE_CPU_COUNT -> getInt(RESOURCE_CPU_COUNT) - RESOURCE_MEM_CAPACITY -> getDouble(RESOURCE_MEM_CAPACITY) + return when (index) { + COL_ID -> record[AVRO_COL_ID].toString() + COL_START_TIME -> Instant.ofEpochMilli(record[AVRO_COL_START_TIME] as Long) + COL_STOP_TIME -> Instant.ofEpochMilli(record[AVRO_COL_STOP_TIME] as Long) + COL_CPU_COUNT -> getInt(index) + COL_MEM_CAPACITY -> getDouble(index) else -> throw IllegalArgumentException("Invalid column") } - - @Suppress("UNCHECKED_CAST") - return res as T } - override fun getBoolean(column: TableColumn): Boolean { + override fun getBoolean(index: Int): Boolean { throw IllegalArgumentException("Invalid column") } - override fun getInt(column: TableColumn): Int { + override fun getInt(index: Int): Int { val record = checkNotNull(record) { "Reader in invalid state" } - return when (column) { - RESOURCE_CPU_COUNT -> record[COL_CPU_COUNT] as Int + return when (index) { + COL_CPU_COUNT -> record[AVRO_COL_CPU_COUNT] as Int else -> throw IllegalArgumentException("Invalid column") } } - override fun getLong(column: TableColumn): Long { + override fun getLong(index: Int): Long { throw IllegalArgumentException("Invalid column") } - override fun getDouble(column: TableColumn): Double { + override fun getDouble(index: Int): Double { val record = checkNotNull(record) { "Reader in invalid state" } - return when (column) { - RESOURCE_MEM_CAPACITY -> (record[COL_MEM_CAPACITY] as Number).toDouble() + return when (index) { + COL_MEM_CAPACITY -> (record[AVRO_COL_MEM_CAPACITY] as Number).toDouble() else -> throw IllegalArgumentException("Invalid column") } } @@ -119,20 +111,34 @@ internal class OdcVmResourceTableReader(private val reader: LocalParquetReader): Boolean { - return when (column) { - TASK_ID -> true - TASK_SUBMIT_TIME -> true - TASK_WAIT_TIME -> true - TASK_RUNTIME -> true - TASK_REQ_NCPUS -> true - TASK_ALLOC_NCPUS -> true - TASK_PARENTS -> true - TASK_STATUS -> true - TASK_GROUP_ID -> true - TASK_USER_ID -> true - else -> false - } + override fun resolve(column: TableColumn<*>): Int = columns[column] ?: -1 + + override fun isNull(index: Int): Boolean { + require(index in columns.values) { "Invalid column index" } + return false } - override fun get(column: TableColumn): T { - val res: Any = when (column) { - TASK_ID -> fields[COL_JOB_ID] - TASK_SUBMIT_TIME -> Instant.ofEpochSecond(fields[COL_SUBMIT_TIME].toLong(10)) - TASK_WAIT_TIME -> Duration.ofSeconds(fields[COL_WAIT_TIME].toLong(10)) - TASK_RUNTIME -> Duration.ofSeconds(fields[COL_RUN_TIME].toLong(10)) - TASK_REQ_NCPUS -> getInt(TASK_REQ_NCPUS) - TASK_ALLOC_NCPUS -> getInt(TASK_ALLOC_NCPUS) - TASK_PARENTS -> { - val parent = fields[COL_PARENT_JOB].toLong(10) + override fun get(index: Int): Any? { + return when (index) { + COL_JOB_ID -> fields[index] + COL_SUBMIT_TIME -> Instant.ofEpochSecond(fields[index].toLong(10)) + COL_WAIT_TIME, COL_RUN_TIME -> Duration.ofSeconds(fields[index].toLong(10)) + COL_REQ_NCPUS, COL_ALLOC_NCPUS, COL_STATUS, COL_GROUP_ID, COL_USER_ID -> getInt(index) + COL_PARENT_JOB -> { + val parent = fields[index].toLong(10) if (parent < 0) emptySet() else setOf(parent) } - TASK_STATUS -> getInt(TASK_STATUS) - TASK_GROUP_ID -> getInt(TASK_GROUP_ID) - TASK_USER_ID -> getInt(TASK_USER_ID) else -> throw IllegalArgumentException("Invalid column") } - - @Suppress("UNCHECKED_CAST") - return res as T } - override fun getBoolean(column: TableColumn): Boolean { + override fun getBoolean(index: Int): Boolean { throw IllegalArgumentException("Invalid column") } - override fun getInt(column: TableColumn): Int { - return when (column) { - TASK_REQ_NCPUS -> fields[COL_REQ_NCPUS].toInt(10) - TASK_ALLOC_NCPUS -> fields[COL_ALLOC_NCPUS].toInt(10) - TASK_STATUS -> fields[COL_STATUS].toInt(10) - TASK_GROUP_ID -> fields[COL_GROUP_ID].toInt(10) - TASK_USER_ID -> fields[COL_USER_ID].toInt(10) + override fun getInt(index: Int): Int { + return when (index) { + COL_REQ_NCPUS, COL_ALLOC_NCPUS, COL_STATUS, COL_GROUP_ID, COL_USER_ID -> fields[index].toInt(10) else -> throw IllegalArgumentException("Invalid column") } } - override fun getLong(column: TableColumn): Long { + override fun getLong(index: Int): Long { throw IllegalArgumentException("Invalid column") } - override fun getDouble(column: TableColumn): Double { + override fun getDouble(index: Int): Double { throw IllegalArgumentException("Invalid column") } @@ -155,4 +134,17 @@ internal class SwfTaskTableReader(private val reader: BufferedReader) : TableRea private val COL_PART_NUM = 15 private val COL_PARENT_JOB = 16 private val COL_PARENT_THINK_TIME = 17 + + private val columns = mapOf( + TASK_ID to COL_JOB_ID, + TASK_SUBMIT_TIME to COL_SUBMIT_TIME, + TASK_WAIT_TIME to COL_WAIT_TIME, + TASK_RUNTIME to COL_RUN_TIME, + TASK_ALLOC_NCPUS to COL_ALLOC_NCPUS, + TASK_REQ_NCPUS to COL_REQ_NCPUS, + TASK_STATUS to COL_STATUS, + TASK_USER_ID to COL_USER_ID, + TASK_GROUP_ID to COL_GROUP_ID, + TASK_PARENTS to COL_PARENT_JOB + ) } diff --git a/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTableReader.kt b/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTableReader.kt index 4408ba5c..7f378d80 100644 --- a/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTableReader.kt +++ b/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTableReader.kt @@ -94,49 +94,41 @@ internal class WfFormatTaskTableReader(private val parser: JsonParser) : TableRe return hasJob } - override fun hasColumn(column: TableColumn<*>): Boolean { - return when (column) { - TASK_ID -> true - TASK_WORKFLOW_ID -> true - TASK_RUNTIME -> true - TASK_REQ_NCPUS -> true - TASK_PARENTS -> true - TASK_CHILDREN -> true - else -> false - } + override fun resolve(column: TableColumn<*>): Int = columns[column] ?: -1 + + override fun isNull(index: Int): Boolean { + check(index in 0..columns.size) { "Invalid column value" } + return false } - override fun get(column: TableColumn): T { - val res: Any? = when (column) { - TASK_ID -> id - TASK_WORKFLOW_ID -> workflowId - TASK_RUNTIME -> runtime - TASK_PARENTS -> parents - TASK_CHILDREN -> children - TASK_REQ_NCPUS -> getInt(TASK_REQ_NCPUS) + override fun get(index: Int): Any? { + return when (index) { + COL_ID -> id + COL_WORKFLOW_ID -> workflowId + COL_RUNTIME -> runtime + COL_PARENTS -> parents + COL_CHILDREN -> children + COL_NPROC -> getInt(index) else -> throw IllegalArgumentException("Invalid column") } - - @Suppress("UNCHECKED_CAST") - return res as T } - override fun getBoolean(column: TableColumn): Boolean { + override fun getBoolean(index: Int): Boolean { throw IllegalArgumentException("Invalid column") } - override fun getInt(column: TableColumn): Int { - return when (column) { - TASK_REQ_NCPUS -> cores + override fun getInt(index: Int): Int { + return when (index) { + COL_NPROC -> cores else -> throw IllegalArgumentException("Invalid column") } } - override fun getLong(column: TableColumn): Long { + override fun getLong(index: Int): Long { throw IllegalArgumentException("Invalid column") } - override fun getDouble(column: TableColumn): Double { + override fun getDouble(index: Int): Double { throw IllegalArgumentException("Invalid column") } @@ -231,4 +223,20 @@ internal class WfFormatTaskTableReader(private val parser: JsonParser) : TableRe children = null cores = -1 } + + private val COL_ID = 0 + private val COL_WORKFLOW_ID = 1 + private val COL_RUNTIME = 3 + private val COL_NPROC = 4 + private val COL_PARENTS = 5 + private val COL_CHILDREN = 6 + + private val columns = mapOf( + TASK_ID to COL_ID, + TASK_WORKFLOW_ID to COL_WORKFLOW_ID, + TASK_RUNTIME to COL_RUNTIME, + TASK_REQ_NCPUS to COL_NPROC, + TASK_PARENTS to COL_PARENTS, + TASK_CHILDREN to COL_CHILDREN, + ) } diff --git a/opendc-trace/opendc-trace-wtf/build.gradle.kts b/opendc-trace/opendc-trace-wtf/build.gradle.kts index 5051c7b0..e4f0ab3a 100644 --- a/opendc-trace/opendc-trace-wtf/build.gradle.kts +++ b/opendc-trace/opendc-trace-wtf/build.gradle.kts @@ -34,4 +34,6 @@ dependencies { api(projects.opendcTrace.opendcTraceApi) implementation(projects.opendcTrace.opendcTraceParquet) + + testRuntimeOnly(libs.slf4j.simple) } diff --git a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTableReader.kt b/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTableReader.kt index 5e2463f8..45ec25dd 100644 --- a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTableReader.kt +++ b/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTableReader.kt @@ -22,6 +22,7 @@ package org.opendc.trace.wtf +import org.apache.avro.Schema import org.apache.avro.generic.GenericRecord import org.opendc.trace.* import org.opendc.trace.util.parquet.LocalParquetReader @@ -37,73 +38,126 @@ internal class WtfTaskTableReader(private val reader: LocalParquetReader): Boolean { - return when (column) { - TASK_ID -> true - TASK_WORKFLOW_ID -> true - TASK_SUBMIT_TIME -> true - TASK_WAIT_TIME -> true - TASK_RUNTIME -> true - TASK_REQ_NCPUS -> true - TASK_PARENTS -> true - TASK_CHILDREN -> true - TASK_GROUP_ID -> true - TASK_USER_ID -> true - else -> false - } + override fun resolve(column: TableColumn<*>): Int = columns[column] ?: -1 + + override fun isNull(index: Int): Boolean { + check(index in 0..columns.size) { "Invalid column index" } + return get(index) == null } - override fun get(column: TableColumn): T { + override fun get(index: Int): Any? { val record = checkNotNull(record) { "Reader in invalid state" } - @Suppress("UNCHECKED_CAST") - val res: Any = when (column) { - TASK_ID -> (record["id"] as Long).toString() - TASK_WORKFLOW_ID -> (record["workflow_id"] as Long).toString() - TASK_SUBMIT_TIME -> Instant.ofEpochMilli(record["ts_submit"] as Long) - TASK_WAIT_TIME -> Duration.ofMillis(record["wait_time"] as Long) - TASK_RUNTIME -> Duration.ofMillis(record["runtime"] as Long) - TASK_REQ_NCPUS -> (record["resource_amount_requested"] as Double).toInt() - TASK_PARENTS -> (record["parents"] as ArrayList).map { it["item"].toString() }.toSet() - TASK_CHILDREN -> (record["children"] as ArrayList).map { it["item"].toString() }.toSet() - TASK_GROUP_ID -> record["group_id"] - TASK_USER_ID -> record["user_id"] + return when (index) { + COL_ID -> (record[AVRO_COL_ID] as Long).toString() + COL_WORKFLOW_ID -> (record[AVRO_COL_WORKFLOW_ID] as Long).toString() + COL_SUBMIT_TIME -> Instant.ofEpochMilli(record[AVRO_COL_SUBMIT_TIME] as Long) + COL_WAIT_TIME -> Duration.ofMillis(record[AVRO_COL_WAIT_TIME] as Long) + COL_RUNTIME -> Duration.ofMillis(record[AVRO_COL_RUNTIME] as Long) + COL_REQ_NCPUS, COL_GROUP_ID, COL_USER_ID -> getInt(index) + COL_PARENTS -> (record[AVRO_COL_PARENTS] as ArrayList).map { it["item"].toString() }.toSet() + COL_CHILDREN -> (record[AVRO_COL_CHILDREN] as ArrayList).map { it["item"].toString() }.toSet() else -> throw IllegalArgumentException("Invalid column") } - - @Suppress("UNCHECKED_CAST") - return res as T } - override fun getBoolean(column: TableColumn): Boolean { + override fun getBoolean(index: Int): Boolean { throw IllegalArgumentException("Invalid column") } - override fun getInt(column: TableColumn): Int { + override fun getInt(index: Int): Int { val record = checkNotNull(record) { "Reader in invalid state" } - return when (column) { - TASK_REQ_NCPUS -> (record["resource_amount_requested"] as Double).toInt() - TASK_GROUP_ID -> record["group_id"] as Int - TASK_USER_ID -> record["user_id"] as Int + return when (index) { + COL_REQ_NCPUS -> (record[AVRO_COL_REQ_NCPUS] as Double).toInt() + COL_GROUP_ID -> record[AVRO_COL_GROUP_ID] as Int + COL_USER_ID -> record[AVRO_COL_USER_ID] as Int else -> throw IllegalArgumentException("Invalid column") } } - override fun getLong(column: TableColumn): Long { + override fun getLong(index: Int): Long { throw IllegalArgumentException("Invalid column") } - override fun getDouble(column: TableColumn): Double { + override fun getDouble(index: Int): Double { throw IllegalArgumentException("Invalid column") } override fun close() { reader.close() } + + /** + * Initialize the columns for the reader based on [schema]. + */ + private fun initColumns(schema: Schema) { + try { + AVRO_COL_ID = schema.getField("id").pos() + AVRO_COL_WORKFLOW_ID = schema.getField("workflow_id").pos() + AVRO_COL_SUBMIT_TIME = schema.getField("ts_submit").pos() + AVRO_COL_WAIT_TIME = schema.getField("wait_time").pos() + AVRO_COL_RUNTIME = schema.getField("runtime").pos() + AVRO_COL_REQ_NCPUS = schema.getField("resource_amount_requested").pos() + AVRO_COL_PARENTS = schema.getField("parents").pos() + AVRO_COL_CHILDREN = schema.getField("children").pos() + AVRO_COL_GROUP_ID = schema.getField("group_id").pos() + AVRO_COL_USER_ID = schema.getField("user_id").pos() + } catch (e: NullPointerException) { + // This happens when the field we are trying to access does not exist + throw IllegalArgumentException("Invalid schema", e) + } + } + + private var AVRO_COL_ID = -1 + private var AVRO_COL_WORKFLOW_ID = -1 + private var AVRO_COL_SUBMIT_TIME = -1 + private var AVRO_COL_WAIT_TIME = -1 + private var AVRO_COL_RUNTIME = -1 + private var AVRO_COL_REQ_NCPUS = -1 + private var AVRO_COL_PARENTS = -1 + private var AVRO_COL_CHILDREN = -1 + private var AVRO_COL_GROUP_ID = -1 + private var AVRO_COL_USER_ID = -1 + + private val COL_ID = 0 + private val COL_WORKFLOW_ID = 1 + private val COL_SUBMIT_TIME = 2 + private val COL_WAIT_TIME = 3 + private val COL_RUNTIME = 4 + private val COL_REQ_NCPUS = 5 + private val COL_PARENTS = 6 + private val COL_CHILDREN = 7 + private val COL_GROUP_ID = 8 + private val COL_USER_ID = 9 + + private val columns = mapOf( + TASK_ID to COL_ID, + TASK_WORKFLOW_ID to COL_WORKFLOW_ID, + TASK_SUBMIT_TIME to COL_SUBMIT_TIME, + TASK_WAIT_TIME to COL_WAIT_TIME, + TASK_RUNTIME to COL_RUNTIME, + TASK_REQ_NCPUS to COL_REQ_NCPUS, + TASK_PARENTS to COL_PARENTS, + TASK_CHILDREN to COL_CHILDREN, + TASK_GROUP_ID to COL_GROUP_ID, + TASK_USER_ID to COL_USER_ID, + ) } -- cgit v1.2.3 From 140aafdaa711b0fdeacf99b9c7e70b706b8490f4 Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Mon, 20 Sep 2021 15:40:13 +0200 Subject: feat(trace): Add property for describing partition keys --- .../opendc-trace-api/src/main/kotlin/org/opendc/trace/Table.kt | 5 +++++ .../main/kotlin/org/opendc/trace/azure/AzureResourceStateTable.kt | 2 ++ .../src/main/kotlin/org/opendc/trace/azure/AzureResourceTable.kt | 2 ++ .../org/opendc/trace/bitbrains/BitbrainsExResourceStateTable.kt | 2 ++ .../kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt | 2 ++ .../main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTable.kt | 2 ++ .../src/main/kotlin/org/opendc/trace/gwf/GwfTaskTable.kt | 2 ++ .../main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTable.kt | 2 ++ .../src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTable.kt | 2 ++ .../src/main/kotlin/org/opendc/trace/swf/SwfTaskTable.kt | 2 ++ .../src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTable.kt | 2 ++ .../src/main/kotlin/org/opendc/trace/wtf/WtfTaskTable.kt | 2 ++ 12 files changed, 27 insertions(+) (limited to 'opendc-trace') diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Table.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Table.kt index 6aca2051..164f5084 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Table.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Table.kt @@ -41,6 +41,11 @@ public interface Table { */ public val columns: List> + /** + * The columns by which the table is partitioned. + */ + public val partitionKeys: List> + /** * Open a [TableReader] for this table. */ diff --git a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTable.kt b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTable.kt index 8f2f5cc9..285e7216 100644 --- a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTable.kt +++ b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTable.kt @@ -53,6 +53,8 @@ internal class AzureResourceStateTable(private val factory: CsvFactory, path: Pa RESOURCE_STATE_CPU_USAGE_PCT ) + override val partitionKeys: List> = listOf(RESOURCE_STATE_TIMESTAMP) + override fun newReader(): TableReader { val it = partitions.iterator() diff --git a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTable.kt b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTable.kt index 96ee3158..ff7af172 100644 --- a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTable.kt +++ b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTable.kt @@ -42,6 +42,8 @@ internal class AzureResourceTable(private val factory: CsvFactory, private val p RESOURCE_MEM_CAPACITY ) + override val partitionKeys: List> = emptyList() + override fun newReader(): TableReader { return AzureResourceTableReader(factory.createParser(path.resolve("vmtable/vmtable.csv").toFile())) } diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTable.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTable.kt index ab768608..7cb58226 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTable.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTable.kt @@ -62,6 +62,8 @@ internal class BitbrainsExResourceStateTable(path: Path) : Table { RESOURCE_STATE_DISK_WRITE, ) + override val partitionKeys: List> = listOf(RESOURCE_ID, RESOURCE_STATE_TIMESTAMP) + override fun newReader(): TableReader { val it = partitions.iterator() diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt index 6b6ac9da..7b08b8be 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt @@ -63,6 +63,8 @@ internal class BitbrainsResourceStateTable(private val factory: CsvFactory, path RESOURCE_STATE_NET_TX, ) + override val partitionKeys: List> = listOf(RESOURCE_ID, RESOURCE_STATE_TIMESTAMP) + override fun newReader(): TableReader { val it = partitions.iterator() diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTable.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTable.kt index bc4f0b7d..d024af2d 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTable.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTable.kt @@ -49,6 +49,8 @@ internal class BitbrainsResourceTable(private val factory: CsvFactory, path: Pat override val columns: List> = listOf(RESOURCE_ID) + override val partitionKeys: List> = emptyList() + override fun newReader(): TableReader { return BitbrainsResourceTableReader(factory, vms) } diff --git a/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTable.kt b/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTable.kt index fd7bd068..ca720de4 100644 --- a/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTable.kt +++ b/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTable.kt @@ -44,6 +44,8 @@ internal class GwfTaskTable(private val factory: CsvFactory, private val url: UR TASK_PARENTS ) + override val partitionKeys: List> = listOf(TASK_WORKFLOW_ID) + override fun newReader(): TableReader { return GwfTaskTableReader(factory.createParser(url)) } diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTable.kt b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTable.kt index 39613070..caacf192 100644 --- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTable.kt +++ b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTable.kt @@ -42,6 +42,8 @@ internal class OdcVmResourceStateTable(private val path: Path) : Table { RESOURCE_STATE_CPU_USAGE, ) + override val partitionKeys: List> = listOf(RESOURCE_ID, RESOURCE_STATE_TIMESTAMP) + override fun newReader(): TableReader { val reader = LocalParquetReader(path.resolve("trace.parquet")) return OdcVmResourceStateTableReader(reader) diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTable.kt b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTable.kt index b1456560..653b28b8 100644 --- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTable.kt +++ b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTable.kt @@ -42,6 +42,8 @@ internal class OdcVmResourceTable(private val path: Path) : Table { RESOURCE_MEM_CAPACITY, ) + override val partitionKeys: List> = emptyList() + override fun newReader(): TableReader { val reader = LocalParquetReader(path.resolve("meta.parquet")) return OdcVmResourceTableReader(reader) diff --git a/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTable.kt b/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTable.kt index 7ec0d607..4898779d 100644 --- a/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTable.kt +++ b/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTable.kt @@ -47,6 +47,8 @@ internal class SwfTaskTable(private val path: Path) : Table { TASK_USER_ID ) + override val partitionKeys: List> = emptyList() + override fun newReader(): TableReader { val reader = path.bufferedReader() return SwfTaskTableReader(reader) diff --git a/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTable.kt b/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTable.kt index 7b7f979f..17aeee97 100644 --- a/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTable.kt +++ b/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTable.kt @@ -43,6 +43,8 @@ internal class WfFormatTaskTable(private val factory: JsonFactory, private val p TASK_CHILDREN ) + override val partitionKeys: List> = emptyList() + override fun newReader(): TableReader { val parser = factory.createParser(path.toFile()) return WfFormatTaskTableReader(parser) diff --git a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTable.kt b/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTable.kt index 74202718..410bb347 100644 --- a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTable.kt +++ b/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTable.kt @@ -48,6 +48,8 @@ internal class WtfTaskTable(private val path: Path) : Table { TASK_USER_ID ) + override val partitionKeys: List> = listOf(TASK_SUBMIT_TIME) + override fun newReader(): TableReader { val reader = LocalParquetReader(path.resolve("tasks/schema-1.0")) return WtfTaskTableReader(reader) -- cgit v1.2.3 From c7fff03408ee3109d0a39a96c043584a2d8f67ca Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Mon, 20 Sep 2021 22:04:23 +0200 Subject: refactor(trace): Simplify TraceFormat SPI interface This change simplifies the TraceFormat SPI interface by reducing the number of interfaces that implementors need to implement to only TraceFormat. --- .../src/main/kotlin/org/opendc/trace/Table.kt | 10 --- .../src/main/kotlin/org/opendc/trace/Trace.kt | 19 ++--- .../kotlin/org/opendc/trace/internal/TableImpl.kt | 52 ++++++++++++ .../kotlin/org/opendc/trace/internal/TraceImpl.kt | 56 +++++++++++++ .../kotlin/org/opendc/trace/spi/TableDetails.kt | 37 +++++++++ .../kotlin/org/opendc/trace/spi/TraceFormat.kt | 33 ++++++-- .../opendc/trace/azure/AzureResourceStateTable.kt | 81 ------------------- .../org/opendc/trace/azure/AzureResourceTable.kt | 56 ------------- .../kotlin/org/opendc/trace/azure/AzureTrace.kt | 46 ----------- .../org/opendc/trace/azure/AzureTraceFormat.kt | 69 ++++++++++++++-- .../org/opendc/trace/azure/AzureTraceFormatTest.kt | 50 +++--------- .../bitbrains/BitbrainsExResourceStateTable.kt | 92 ---------------------- .../org/opendc/trace/bitbrains/BitbrainsExTrace.kt | 45 ----------- .../trace/bitbrains/BitbrainsExTraceFormat.kt | 69 ++++++++++++++-- .../trace/bitbrains/BitbrainsResourceStateTable.kt | 91 --------------------- .../trace/bitbrains/BitbrainsResourceTable.kt | 63 --------------- .../org/opendc/trace/bitbrains/BitbrainsTrace.kt | 46 ----------- .../opendc/trace/bitbrains/BitbrainsTraceFormat.kt | 76 ++++++++++++++++-- .../trace/bitbrains/BitbrainsExTraceFormatTest.kt | 44 +++-------- .../trace/bitbrains/BitbrainsTraceFormatTest.kt | 55 +++---------- .../kotlin/org/opendc/trace/gwf/GwfTaskTable.kt | 58 -------------- .../main/kotlin/org/opendc/trace/gwf/GwfTrace.kt | 46 ----------- .../kotlin/org/opendc/trace/gwf/GwfTraceFormat.kt | 38 ++++++--- .../org/opendc/trace/gwf/GwfTraceFormatTest.kt | 61 +++----------- .../opendc/trace/opendc/OdcVmResourceStateTable.kt | 55 ------------- .../org/opendc/trace/opendc/OdcVmResourceTable.kt | 55 ------------- .../kotlin/org/opendc/trace/opendc/OdcVmTrace.kt | 49 ------------ .../org/opendc/trace/opendc/OdcVmTraceFormat.kt | 54 ++++++++++--- .../opendc/trace/opendc/OdcVmTraceFormatTest.kt | 47 +++-------- .../kotlin/org/opendc/trace/swf/SwfTaskTable.kt | 62 --------------- .../main/kotlin/org/opendc/trace/swf/SwfTrace.kt | 46 ----------- .../kotlin/org/opendc/trace/swf/SwfTraceFormat.kt | 39 +++++++-- .../org/opendc/trace/swf/SwfTraceFormatTest.kt | 53 +++---------- .../org/opendc/trace/tools/TraceConverter.kt | 11 +-- .../org/opendc/trace/wfformat/WfFormatTaskTable.kt | 58 -------------- .../org/opendc/trace/wfformat/WfFormatTrace.kt | 47 ----------- .../opendc/trace/wfformat/WfFormatTraceFormat.kt | 34 ++++++-- .../trace/wfformat/WfFormatTraceFormatTest.kt | 58 +++----------- .../kotlin/org/opendc/trace/wtf/WtfTaskTable.kt | 63 --------------- .../main/kotlin/org/opendc/trace/wtf/WtfTrace.kt | 47 ----------- .../kotlin/org/opendc/trace/wtf/WtfTraceFormat.kt | 43 ++++++++-- .../org/opendc/trace/wtf/WtfTraceFormatTest.kt | 57 +++----------- 42 files changed, 626 insertions(+), 1545 deletions(-) create mode 100644 opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/internal/TableImpl.kt create mode 100644 opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/internal/TraceImpl.kt create mode 100644 opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TableDetails.kt delete mode 100644 opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTable.kt delete mode 100644 opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTable.kt delete mode 100644 opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureTrace.kt delete mode 100644 opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTable.kt delete mode 100644 opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExTrace.kt delete mode 100644 opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt delete mode 100644 opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTable.kt delete mode 100644 opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTrace.kt delete mode 100644 opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTable.kt delete mode 100644 opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTrace.kt delete mode 100644 opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTable.kt delete mode 100644 opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTable.kt delete mode 100644 opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmTrace.kt delete mode 100644 opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTable.kt delete mode 100644 opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTrace.kt delete mode 100644 opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTable.kt delete mode 100644 opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTrace.kt delete mode 100644 opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTable.kt delete mode 100644 opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTrace.kt (limited to 'opendc-trace') diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Table.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Table.kt index 164f5084..031ee269 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Table.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Table.kt @@ -31,11 +31,6 @@ public interface Table { */ public val name: String - /** - * A flag to indicate that the table is synthetic (derived from another table). - */ - public val isSynthetic: Boolean - /** * The list of columns supported in this table. */ @@ -50,9 +45,4 @@ public interface Table { * Open a [TableReader] for this table. */ public fun newReader(): TableReader - - /** - * Open a [TableReader] for [partition] of the table. - */ - public fun newReader(partition: String): TableReader } diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Trace.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Trace.kt index 0ae45e86..6d0014cb 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Trace.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Trace.kt @@ -22,9 +22,9 @@ package org.opendc.trace +import org.opendc.trace.internal.TraceImpl import org.opendc.trace.spi.TraceFormat import java.io.File -import java.net.URL import java.nio.file.Path /** @@ -47,32 +47,25 @@ public interface Trace { public fun getTable(name: String): Table? public companion object { - /** - * Open a [Trace] at the specified [url] in the given [format]. - * - * @throws IllegalArgumentException if [format] is not supported. - */ - public fun open(url: URL, format: String): Trace { - val provider = requireNotNull(TraceFormat.byName(format)) { "Unknown format $format" } - return provider.open(url) - } - /** * Open a [Trace] at the specified [path] in the given [format]. * + * @param path The path to the trace. * @throws IllegalArgumentException if [format] is not supported. */ public fun open(path: File, format: String): Trace { - return open(path.toURI().toURL(), format) + return open(path.toPath(), format) } /** * Open a [Trace] at the specified [path] in the given [format]. * + * @param path The [Path] to the trace. * @throws IllegalArgumentException if [format] is not supported. */ public fun open(path: Path, format: String): Trace { - return open(path.toUri().toURL(), format) + val provider = requireNotNull(TraceFormat.byName(format)) { "Unknown format $format" } + return TraceImpl(provider, path) } } } diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/internal/TableImpl.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/internal/TableImpl.kt new file mode 100644 index 00000000..fd0a0f04 --- /dev/null +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/internal/TableImpl.kt @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.internal + +import org.opendc.trace.Table +import org.opendc.trace.TableColumn +import org.opendc.trace.TableReader +import java.util.* + +/** + * Internal implementation of [Table]. + */ +internal class TableImpl(val trace: TraceImpl, override val name: String) : Table { + /** + * The details of this table. + */ + private val details = trace.format.getDetails(trace.path, name) + + override val columns: List> + get() = details.columns + + override val partitionKeys: List> + get() = details.partitionKeys + + override fun newReader(): TableReader = trace.format.newReader(trace.path, name) + + override fun toString(): String = "Table[name=$name]" + + override fun hashCode(): Int = Objects.hash(trace, name) + + override fun equals(other: Any?): Boolean = other is TableImpl && trace == other.trace && name == other.name +} diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/internal/TraceImpl.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/internal/TraceImpl.kt new file mode 100644 index 00000000..fd9536ab --- /dev/null +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/internal/TraceImpl.kt @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.internal + +import org.opendc.trace.Table +import org.opendc.trace.Trace +import org.opendc.trace.spi.TraceFormat +import java.nio.file.Path +import java.util.* +import java.util.concurrent.ConcurrentHashMap + +/** + * Internal implementation of the [Trace] interface. + */ +internal class TraceImpl(val format: TraceFormat, val path: Path) : Trace { + /** + * A map containing the [TableImpl] instances associated with the trace. + */ + private val tableMap = ConcurrentHashMap() + + override val tables: List = format.getTables(path) + + init { + for (table in tables) { + tableMap.computeIfAbsent(table) { TableImpl(this, it) } + } + } + + override fun containsTable(name: String): Boolean = tableMap.containsKey(name) + + override fun getTable(name: String): Table? = tableMap[name] + + override fun hashCode(): Int = Objects.hash(format, path) + + override fun equals(other: Any?): Boolean = other is TraceImpl && format == other.format && path == other.path +} diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TableDetails.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TableDetails.kt new file mode 100644 index 00000000..1a9b9ee1 --- /dev/null +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TableDetails.kt @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.spi + +import org.opendc.trace.Table +import org.opendc.trace.TableColumn + +/** + * A class used by the [TraceFormat] interface for describing the metadata of a [Table]. + * + * @param columns The available columns in the table. + * @param partitionKeys The table columns that act as partition keys for the table. + */ +public data class TableDetails( + val columns: List>, + val partitionKeys: List> = emptyList() +) diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt index 54029fcf..e04dd948 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt @@ -22,8 +22,8 @@ package org.opendc.trace.spi -import org.opendc.trace.Trace -import java.net.URL +import org.opendc.trace.TableReader +import java.nio.file.Path import java.util.* /** @@ -36,11 +36,32 @@ public interface TraceFormat { public val name: String /** - * Open a new [Trace] with this provider. + * Return the name of the tables available in the trace at the specified [path]. * - * @param url A reference to the trace. + * @param path The path to the trace. + * @return The list of tables available in the trace. */ - public fun open(url: URL): Trace + public fun getTables(path: Path): List + + /** + * Return the details of [table] in the trace at the specified [path]. + * + * @param path The path to the trace. + * @param table The name of the table to obtain the details for. + * @throws IllegalArgumentException If [table] does not exist. + * @return The [TableDetails] for the specified [table]. + */ + public fun getDetails(path: Path, table: String): TableDetails + + /** + * Open a [TableReader] for the specified [table]. + * + * @param path The path to the trace to open. + * @param table The name of the table to open a [TableReader] for. + * @throws IllegalArgumentException If [table] does not exist. + * @return A [TableReader] instance for the table. + */ + public fun newReader(path: Path, table: String): TableReader /** * A helper object for resolving providers. @@ -49,6 +70,7 @@ public interface TraceFormat { /** * A list of [TraceFormat] that are available on this system. */ + @JvmStatic public val installedProviders: List by lazy { val loader = ServiceLoader.load(TraceFormat::class.java) loader.toList() @@ -57,6 +79,7 @@ public interface TraceFormat { /** * Obtain a [TraceFormat] implementation by [name]. */ + @JvmStatic public fun byName(name: String): TraceFormat? = installedProviders.find { it.name == name } } } diff --git a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTable.kt b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTable.kt deleted file mode 100644 index 285e7216..00000000 --- a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceStateTable.kt +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.trace.azure - -import com.fasterxml.jackson.dataformat.csv.CsvFactory -import org.opendc.trace.* -import org.opendc.trace.util.CompositeTableReader -import java.nio.file.Files -import java.nio.file.Path -import java.util.stream.Collectors -import kotlin.io.path.extension -import kotlin.io.path.nameWithoutExtension - -/** - * The resource state [Table] for the Azure v1 VM traces. - */ -internal class AzureResourceStateTable(private val factory: CsvFactory, path: Path) : Table { - /** - * The partitions that belong to the table. - */ - private val partitions = Files.walk(path.resolve("vm_cpu_readings"), 1) - .filter { !Files.isDirectory(it) && it.extension == "csv" } - .collect(Collectors.toMap({ it.nameWithoutExtension }, { it })) - .toSortedMap() - - override val name: String = TABLE_RESOURCE_STATES - - override val isSynthetic: Boolean = false - - override val columns: List> = listOf( - RESOURCE_ID, - RESOURCE_STATE_TIMESTAMP, - RESOURCE_STATE_CPU_USAGE_PCT - ) - - override val partitionKeys: List> = listOf(RESOURCE_STATE_TIMESTAMP) - - override fun newReader(): TableReader { - val it = partitions.iterator() - - return object : CompositeTableReader() { - override fun nextReader(): TableReader? { - return if (it.hasNext()) { - val (_, path) = it.next() - return AzureResourceStateTableReader(factory.createParser(path.toFile())) - } else { - null - } - } - - override fun toString(): String = "AzureCompositeTableReader" - } - } - - override fun newReader(partition: String): TableReader { - val path = requireNotNull(partitions[partition]) { "Invalid partition $partition" } - return AzureResourceStateTableReader(factory.createParser(path.toFile())) - } - - override fun toString(): String = "AzureResourceStateTable" -} diff --git a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTable.kt b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTable.kt deleted file mode 100644 index ff7af172..00000000 --- a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureResourceTable.kt +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.trace.azure - -import com.fasterxml.jackson.dataformat.csv.CsvFactory -import org.opendc.trace.* -import java.nio.file.Path - -/** - * The resource [Table] for the Azure v1 VM traces. - */ -internal class AzureResourceTable(private val factory: CsvFactory, private val path: Path) : Table { - override val name: String = TABLE_RESOURCES - - override val isSynthetic: Boolean = false - - override val columns: List> = listOf( - RESOURCE_ID, - RESOURCE_START_TIME, - RESOURCE_STOP_TIME, - RESOURCE_CPU_COUNT, - RESOURCE_MEM_CAPACITY - ) - - override val partitionKeys: List> = emptyList() - - override fun newReader(): TableReader { - return AzureResourceTableReader(factory.createParser(path.resolve("vmtable/vmtable.csv").toFile())) - } - - override fun newReader(partition: String): TableReader { - throw IllegalArgumentException("No partition $partition") - } - - override fun toString(): String = "AzureResourceTable" -} diff --git a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureTrace.kt b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureTrace.kt deleted file mode 100644 index c7e7dc36..00000000 --- a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureTrace.kt +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.trace.azure - -import com.fasterxml.jackson.dataformat.csv.CsvFactory -import org.opendc.trace.* -import java.nio.file.Path - -/** - * [Trace] implementation for the Azure v1 VM traces. - */ -public class AzureTrace internal constructor(private val factory: CsvFactory, private val path: Path) : Trace { - override val tables: List = listOf(TABLE_RESOURCES, TABLE_RESOURCE_STATES) - - override fun containsTable(name: String): Boolean = name in tables - - override fun getTable(name: String): Table? { - return when (name) { - TABLE_RESOURCES -> AzureResourceTable(factory, path) - TABLE_RESOURCE_STATES -> AzureResourceStateTable(factory, path) - else -> null - } - } - - override fun toString(): String = "AzureTrace[$path]" -} diff --git a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureTraceFormat.kt b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureTraceFormat.kt index 1230d857..77af0d81 100644 --- a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureTraceFormat.kt +++ b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureTraceFormat.kt @@ -24,10 +24,15 @@ package org.opendc.trace.azure import com.fasterxml.jackson.dataformat.csv.CsvFactory import com.fasterxml.jackson.dataformat.csv.CsvParser +import org.opendc.trace.* +import org.opendc.trace.spi.TableDetails import org.opendc.trace.spi.TraceFormat -import java.net.URL -import java.nio.file.Paths -import kotlin.io.path.exists +import org.opendc.trace.util.CompositeTableReader +import java.nio.file.Files +import java.nio.file.Path +import java.util.stream.Collectors +import kotlin.io.path.extension +import kotlin.io.path.nameWithoutExtension /** * A format implementation for the Azure v1 format. @@ -45,12 +50,60 @@ public class AzureTraceFormat : TraceFormat { .enable(CsvParser.Feature.ALLOW_COMMENTS) .enable(CsvParser.Feature.TRIM_SPACES) + override fun getTables(path: Path): List = listOf(TABLE_RESOURCES, TABLE_RESOURCE_STATES) + + override fun getDetails(path: Path, table: String): TableDetails { + return when (table) { + TABLE_RESOURCES -> TableDetails( + listOf( + RESOURCE_ID, + RESOURCE_START_TIME, + RESOURCE_STOP_TIME, + RESOURCE_CPU_COUNT, + RESOURCE_MEM_CAPACITY + ) + ) + TABLE_RESOURCE_STATES -> TableDetails( + listOf( + RESOURCE_ID, + RESOURCE_STATE_TIMESTAMP, + RESOURCE_STATE_CPU_USAGE_PCT + ), + listOf(RESOURCE_STATE_TIMESTAMP) + ) + else -> throw IllegalArgumentException("Table $table not supported") + } + } + + override fun newReader(path: Path, table: String): TableReader { + return when (table) { + TABLE_RESOURCES -> AzureResourceTableReader(factory.createParser(path.resolve("vmtable/vmtable.csv").toFile())) + TABLE_RESOURCE_STATES -> newResourceStateReader(path) + else -> throw IllegalArgumentException("Table $table not supported") + } + } + /** - * Open the trace file. + * Construct a [TableReader] for reading over all VM CPU readings. */ - override fun open(url: URL): AzureTrace { - val path = Paths.get(url.toURI()) - require(path.exists()) { "URL $url does not exist" } - return AzureTrace(factory, path) + private fun newResourceStateReader(path: Path): TableReader { + val partitions = Files.walk(path.resolve("vm_cpu_readings"), 1) + .filter { !Files.isDirectory(it) && it.extension == "csv" } + .collect(Collectors.toMap({ it.nameWithoutExtension }, { it })) + .toSortedMap() + val it = partitions.iterator() + + return object : CompositeTableReader() { + override fun nextReader(): TableReader? { + return if (it.hasNext()) { + val (_, partPath) = it.next() + return AzureResourceStateTableReader(factory.createParser(partPath.toFile())) + } else { + null + } + } + + override fun toString(): String = "AzureCompositeTableReader" + } } } diff --git a/opendc-trace/opendc-trace-azure/src/test/kotlin/org/opendc/trace/azure/AzureTraceFormatTest.kt b/opendc-trace/opendc-trace-azure/src/test/kotlin/org/opendc/trace/azure/AzureTraceFormatTest.kt index 2c1a2125..b73bb728 100644 --- a/opendc-trace/opendc-trace-azure/src/test/kotlin/org/opendc/trace/azure/AzureTraceFormatTest.kt +++ b/opendc-trace/opendc-trace-azure/src/test/kotlin/org/opendc/trace/azure/AzureTraceFormatTest.kt @@ -26,8 +26,7 @@ import org.junit.jupiter.api.Assertions.* import org.junit.jupiter.api.Test import org.junit.jupiter.api.assertThrows import org.opendc.trace.* -import java.io.File -import java.net.URL +import java.nio.file.Paths /** * Test suite for the [AzureTraceFormat] class. @@ -35,55 +34,30 @@ import java.net.URL class AzureTraceFormatTest { private val format = AzureTraceFormat() - @Test - fun testTraceExists() { - val url = File("src/test/resources/trace").toURI().toURL() - assertDoesNotThrow { - format.open(url) - } - } - - @Test - fun testTraceDoesNotExists() { - val url = File("src/test/resources/trace").toURI().toURL() - assertThrows { - format.open(URL(url.toString() + "help")) - } - } - @Test fun testTables() { - val url = File("src/test/resources/trace").toURI().toURL() - val trace = format.open(url) + val path = Paths.get("src/test/resources/trace") - assertEquals(listOf(TABLE_RESOURCES, TABLE_RESOURCE_STATES), trace.tables) + assertEquals(listOf(TABLE_RESOURCES, TABLE_RESOURCE_STATES), format.getTables(path)) } @Test fun testTableExists() { - val url = File("src/test/resources/trace").toURI().toURL() - val table = format.open(url).getTable(TABLE_RESOURCE_STATES) + val path = Paths.get("src/test/resources/trace") - assertNotNull(table) - assertDoesNotThrow { table!!.newReader() } + assertDoesNotThrow { format.getDetails(path, TABLE_RESOURCE_STATES) } } @Test fun testTableDoesNotExist() { - val url = File("src/test/resources/trace").toURI().toURL() - val trace = format.open(url) - - assertFalse(trace.containsTable("test")) - assertNull(trace.getTable("test")) + val path = Paths.get("src/test/resources/trace") + assertThrows { format.getDetails(path, "test") } } @Test fun testResources() { - val url = File("src/test/resources/trace").toURI().toURL() - val trace = format.open(url) - - val reader = trace.getTable(TABLE_RESOURCES)!!.newReader() - + val path = Paths.get("src/test/resources/trace") + val reader = format.newReader(path, TABLE_RESOURCES) assertAll( { assertTrue(reader.nextRow()) }, { assertEquals("x/XsOfHO4ocsV99i4NluqKDuxctW2MMVmwqOPAlg4wp8mqbBOe3wxBlQo0+Qx+uf", reader.get(RESOURCE_ID)) }, @@ -96,10 +70,8 @@ class AzureTraceFormatTest { @Test fun testSmoke() { - val url = File("src/test/resources/trace").toURI().toURL() - val trace = format.open(url) - - val reader = trace.getTable(TABLE_RESOURCE_STATES)!!.newReader() + val path = Paths.get("src/test/resources/trace") + val reader = format.newReader(path, TABLE_RESOURCE_STATES) assertAll( { assertTrue(reader.nextRow()) }, diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTable.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTable.kt deleted file mode 100644 index 7cb58226..00000000 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExResourceStateTable.kt +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.trace.bitbrains - -import org.opendc.trace.* -import org.opendc.trace.util.CompositeTableReader -import java.nio.file.Files -import java.nio.file.Path -import java.util.stream.Collectors -import kotlin.io.path.bufferedReader -import kotlin.io.path.extension -import kotlin.io.path.nameWithoutExtension - -/** - * The resource state [Table] in the extended Bitbrains format. - */ -internal class BitbrainsExResourceStateTable(path: Path) : Table { - /** - * The partitions that belong to the table. - */ - private val partitions = Files.walk(path, 1) - .filter { !Files.isDirectory(it) && it.extension == "txt" } - .collect(Collectors.toMap({ it.nameWithoutExtension }, { it })) - .toSortedMap() - - override val name: String = TABLE_RESOURCE_STATES - - override val isSynthetic: Boolean = false - - override val columns: List> = listOf( - RESOURCE_ID, - RESOURCE_CLUSTER_ID, - RESOURCE_STATE_TIMESTAMP, - RESOURCE_CPU_COUNT, - RESOURCE_CPU_CAPACITY, - RESOURCE_STATE_CPU_USAGE, - RESOURCE_STATE_CPU_USAGE_PCT, - RESOURCE_STATE_CPU_DEMAND, - RESOURCE_STATE_CPU_READY_PCT, - RESOURCE_MEM_CAPACITY, - RESOURCE_STATE_DISK_READ, - RESOURCE_STATE_DISK_WRITE, - ) - - override val partitionKeys: List> = listOf(RESOURCE_ID, RESOURCE_STATE_TIMESTAMP) - - override fun newReader(): TableReader { - val it = partitions.iterator() - - return object : CompositeTableReader() { - override fun nextReader(): TableReader? { - return if (it.hasNext()) { - val (_, path) = it.next() - val reader = path.bufferedReader() - return BitbrainsExResourceStateTableReader(reader) - } else { - null - } - } - - override fun toString(): String = "SvCompositeTableReader" - } - } - - override fun newReader(partition: String): TableReader { - val path = requireNotNull(partitions[partition]) { "Invalid partition $partition" } - val reader = path.bufferedReader() - return BitbrainsExResourceStateTableReader(reader) - } - - override fun toString(): String = "BitbrainsExResourceStateTable" -} diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExTrace.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExTrace.kt deleted file mode 100644 index f16c493d..00000000 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExTrace.kt +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.trace.bitbrains - -import org.opendc.trace.* -import java.nio.file.Path - -/** - * [Trace] implementation for the extended Bitbrains format. - */ -public class BitbrainsExTrace internal constructor(private val path: Path) : Trace { - override val tables: List = listOf(TABLE_RESOURCE_STATES) - - override fun containsTable(name: String): Boolean = TABLE_RESOURCE_STATES == name - - override fun getTable(name: String): Table? { - if (!containsTable(name)) { - return null - } - - return BitbrainsExResourceStateTable(path) - } - - override fun toString(): String = "BitbrainsExTrace[$path]" -} diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExTraceFormat.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExTraceFormat.kt index 06388a84..080b73de 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExTraceFormat.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExTraceFormat.kt @@ -22,10 +22,16 @@ package org.opendc.trace.bitbrains +import org.opendc.trace.* +import org.opendc.trace.spi.TableDetails import org.opendc.trace.spi.TraceFormat -import java.net.URL -import java.nio.file.Paths -import kotlin.io.path.exists +import org.opendc.trace.util.CompositeTableReader +import java.nio.file.Files +import java.nio.file.Path +import java.util.stream.Collectors +import kotlin.io.path.bufferedReader +import kotlin.io.path.extension +import kotlin.io.path.nameWithoutExtension /** * A format implementation for the extended Bitbrains trace format. @@ -36,12 +42,59 @@ public class BitbrainsExTraceFormat : TraceFormat { */ override val name: String = "bitbrains-ex" + override fun getTables(path: Path): List = listOf(TABLE_RESOURCE_STATES) + + override fun getDetails(path: Path, table: String): TableDetails { + return when (table) { + TABLE_RESOURCE_STATES -> TableDetails( + listOf( + RESOURCE_ID, + RESOURCE_CLUSTER_ID, + RESOURCE_STATE_TIMESTAMP, + RESOURCE_CPU_COUNT, + RESOURCE_CPU_CAPACITY, + RESOURCE_STATE_CPU_USAGE, + RESOURCE_STATE_CPU_USAGE_PCT, + RESOURCE_STATE_CPU_DEMAND, + RESOURCE_STATE_CPU_READY_PCT, + RESOURCE_MEM_CAPACITY, + RESOURCE_STATE_DISK_READ, + RESOURCE_STATE_DISK_WRITE + ), + listOf(RESOURCE_ID, RESOURCE_STATE_TIMESTAMP) + ) + else -> throw IllegalArgumentException("Table $table not supported") + } + } + + override fun newReader(path: Path, table: String): TableReader { + return when (table) { + TABLE_RESOURCE_STATES -> newResourceStateReader(path) + else -> throw IllegalArgumentException("Table $table not supported") + } + } + /** - * Open the trace file. + * Construct a [TableReader] for reading over all resource state partitions. */ - override fun open(url: URL): BitbrainsExTrace { - val path = Paths.get(url.toURI()) - require(path.exists()) { "URL $url does not exist" } - return BitbrainsExTrace(path) + private fun newResourceStateReader(path: Path): TableReader { + val partitions = Files.walk(path, 1) + .filter { !Files.isDirectory(it) && it.extension == "txt" } + .collect(Collectors.toMap({ it.nameWithoutExtension }, { it })) + .toSortedMap() + val it = partitions.iterator() + + return object : CompositeTableReader() { + override fun nextReader(): TableReader? { + return if (it.hasNext()) { + val (_, partPath) = it.next() + return BitbrainsExResourceStateTableReader(partPath.bufferedReader()) + } else { + null + } + } + + override fun toString(): String = "BitbrainsExCompositeTableReader" + } } } diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt deleted file mode 100644 index 7b08b8be..00000000 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceStateTable.kt +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.trace.bitbrains - -import com.fasterxml.jackson.dataformat.csv.CsvFactory -import org.opendc.trace.* -import org.opendc.trace.util.CompositeTableReader -import java.nio.file.Files -import java.nio.file.Path -import java.util.stream.Collectors -import kotlin.io.path.extension -import kotlin.io.path.nameWithoutExtension - -/** - * The resource state [Table] in the Bitbrains format. - */ -internal class BitbrainsResourceStateTable(private val factory: CsvFactory, path: Path) : Table { - /** - * The partitions that belong to the table. - */ - private val partitions = - Files.walk(path, 1) - .filter { !Files.isDirectory(it) && it.extension == "csv" } - .collect(Collectors.toMap({ it.nameWithoutExtension }, { it })) - .toSortedMap() - - override val name: String = TABLE_RESOURCE_STATES - - override val isSynthetic: Boolean = false - - override val columns: List> = listOf( - RESOURCE_ID, - RESOURCE_STATE_TIMESTAMP, - RESOURCE_CPU_COUNT, - RESOURCE_CPU_CAPACITY, - RESOURCE_STATE_CPU_USAGE, - RESOURCE_STATE_CPU_USAGE_PCT, - RESOURCE_MEM_CAPACITY, - RESOURCE_STATE_MEM_USAGE, - RESOURCE_STATE_DISK_READ, - RESOURCE_STATE_DISK_WRITE, - RESOURCE_STATE_NET_RX, - RESOURCE_STATE_NET_TX, - ) - - override val partitionKeys: List> = listOf(RESOURCE_ID, RESOURCE_STATE_TIMESTAMP) - - override fun newReader(): TableReader { - val it = partitions.iterator() - - return object : CompositeTableReader() { - override fun nextReader(): TableReader? { - return if (it.hasNext()) { - val (partition, path) = it.next() - return BitbrainsResourceStateTableReader(partition, factory.createParser(path.toFile())) - } else { - null - } - } - - override fun toString(): String = "BitbrainsCompositeTableReader" - } - } - - override fun newReader(partition: String): TableReader { - val path = requireNotNull(partitions[partition]) { "Invalid partition $partition" } - return BitbrainsResourceStateTableReader(partition, factory.createParser(path.toFile())) - } - - override fun toString(): String = "BitbrainsResourceStateTable" -} diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTable.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTable.kt deleted file mode 100644 index d024af2d..00000000 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsResourceTable.kt +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.trace.bitbrains - -import com.fasterxml.jackson.dataformat.csv.CsvFactory -import org.opendc.trace.* -import java.nio.file.Files -import java.nio.file.Path -import java.util.stream.Collectors -import kotlin.io.path.extension -import kotlin.io.path.nameWithoutExtension - -/** - * The resources [Table] in the Bitbrains format. - */ -internal class BitbrainsResourceTable(private val factory: CsvFactory, path: Path) : Table { - /** - * The VMs that belong to the table. - */ - private val vms = - Files.walk(path, 1) - .filter { !Files.isDirectory(it) && it.extension == "csv" } - .collect(Collectors.toMap({ it.nameWithoutExtension }, { it })) - .toSortedMap() - - override val name: String = TABLE_RESOURCES - - override val isSynthetic: Boolean = true - - override val columns: List> = listOf(RESOURCE_ID) - - override val partitionKeys: List> = emptyList() - - override fun newReader(): TableReader { - return BitbrainsResourceTableReader(factory, vms) - } - - override fun newReader(partition: String): TableReader { - throw IllegalArgumentException("Unknown partition $partition") - } - - override fun toString(): String = "BitbrainsResourceTable" -} diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTrace.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTrace.kt deleted file mode 100644 index bcd8dd52..00000000 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTrace.kt +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.trace.bitbrains - -import com.fasterxml.jackson.dataformat.csv.CsvFactory -import org.opendc.trace.* -import java.nio.file.Path - -/** - * [Trace] implementation for the Bitbrains format. - */ -public class BitbrainsTrace internal constructor(private val factory: CsvFactory, private val path: Path) : Trace { - override val tables: List = listOf(TABLE_RESOURCES, TABLE_RESOURCE_STATES) - - override fun containsTable(name: String): Boolean = tables.contains(name) - - override fun getTable(name: String): Table? { - return when (name) { - TABLE_RESOURCES -> BitbrainsResourceTable(factory, path) - TABLE_RESOURCE_STATES -> BitbrainsResourceStateTable(factory, path) - else -> null - } - } - - override fun toString(): String = "BitbrainsTrace[$path]" -} diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormat.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormat.kt index 55b11fe3..1573726f 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormat.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormat.kt @@ -24,10 +24,15 @@ package org.opendc.trace.bitbrains import com.fasterxml.jackson.dataformat.csv.CsvFactory import com.fasterxml.jackson.dataformat.csv.CsvParser +import org.opendc.trace.* +import org.opendc.trace.spi.TableDetails import org.opendc.trace.spi.TraceFormat -import java.net.URL -import java.nio.file.Paths -import kotlin.io.path.exists +import org.opendc.trace.util.CompositeTableReader +import java.nio.file.Files +import java.nio.file.Path +import java.util.stream.Collectors +import kotlin.io.path.extension +import kotlin.io.path.nameWithoutExtension /** * A format implementation for the GWF trace format. @@ -45,12 +50,67 @@ public class BitbrainsTraceFormat : TraceFormat { .enable(CsvParser.Feature.ALLOW_COMMENTS) .enable(CsvParser.Feature.TRIM_SPACES) + override fun getTables(path: Path): List = listOf(TABLE_RESOURCES, TABLE_RESOURCE_STATES) + + override fun getDetails(path: Path, table: String): TableDetails { + return when (table) { + TABLE_RESOURCES -> TableDetails(listOf(RESOURCE_ID)) + TABLE_RESOURCE_STATES -> TableDetails( + listOf( + RESOURCE_ID, + RESOURCE_STATE_TIMESTAMP, + RESOURCE_CPU_COUNT, + RESOURCE_CPU_CAPACITY, + RESOURCE_STATE_CPU_USAGE, + RESOURCE_STATE_CPU_USAGE_PCT, + RESOURCE_MEM_CAPACITY, + RESOURCE_STATE_MEM_USAGE, + RESOURCE_STATE_DISK_READ, + RESOURCE_STATE_DISK_WRITE, + RESOURCE_STATE_NET_RX, + RESOURCE_STATE_NET_TX, + ), + listOf(RESOURCE_ID, RESOURCE_STATE_TIMESTAMP) + ) + else -> throw IllegalArgumentException("Table $table not supported") + } + } + + override fun newReader(path: Path, table: String): TableReader { + return when (table) { + TABLE_RESOURCES -> { + val vms = Files.walk(path, 1) + .filter { !Files.isDirectory(it) && it.extension == "csv" } + .collect(Collectors.toMap({ it.nameWithoutExtension }, { it })) + .toSortedMap() + BitbrainsResourceTableReader(factory, vms) + } + TABLE_RESOURCE_STATES -> newResourceStateReader(path) + else -> throw IllegalArgumentException("Table $table not supported") + } + } + /** - * Open a Bitbrains trace. + * Construct a [TableReader] for reading over all resource state partitions. */ - override fun open(url: URL): BitbrainsTrace { - val path = Paths.get(url.toURI()) - require(path.exists()) { "URL $url does not exist" } - return BitbrainsTrace(factory, path) + private fun newResourceStateReader(path: Path): TableReader { + val partitions = Files.walk(path, 1) + .filter { !Files.isDirectory(it) && it.extension == "csv" } + .collect(Collectors.toMap({ it.nameWithoutExtension }, { it })) + .toSortedMap() + val it = partitions.iterator() + + return object : CompositeTableReader() { + override fun nextReader(): TableReader? { + return if (it.hasNext()) { + val (partition, partPath) = it.next() + return BitbrainsResourceStateTableReader(partition, factory.createParser(partPath.toFile())) + } else { + null + } + } + + override fun toString(): String = "BitbrainsCompositeTableReader" + } } } diff --git a/opendc-trace/opendc-trace-bitbrains/src/test/kotlin/org/opendc/trace/bitbrains/BitbrainsExTraceFormatTest.kt b/opendc-trace/opendc-trace-bitbrains/src/test/kotlin/org/opendc/trace/bitbrains/BitbrainsExTraceFormatTest.kt index 2e4f176a..d734cf5f 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/test/kotlin/org/opendc/trace/bitbrains/BitbrainsExTraceFormatTest.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/test/kotlin/org/opendc/trace/bitbrains/BitbrainsExTraceFormatTest.kt @@ -26,62 +26,38 @@ import org.junit.jupiter.api.Assertions.* import org.junit.jupiter.api.Test import org.junit.jupiter.api.assertThrows import org.opendc.trace.* -import java.net.URL +import java.nio.file.Paths /** * Test suite for the [BitbrainsExTraceFormat] class. */ -class BitbrainsExTraceFormatTest { +internal class BitbrainsExTraceFormatTest { private val format = BitbrainsExTraceFormat() - @Test - fun testTraceExists() { - val url = checkNotNull(BitbrainsExTraceFormatTest::class.java.getResource("/vm.txt")) - assertDoesNotThrow { - format.open(url) - } - } - - @Test - fun testTraceDoesNotExists() { - val url = checkNotNull(BitbrainsExTraceFormatTest::class.java.getResource("/vm.txt")) - assertThrows { - format.open(URL(url.toString() + "help")) - } - } - @Test fun testTables() { - val url = checkNotNull(BitbrainsExTraceFormatTest::class.java.getResource("/vm.txt")) - val trace = format.open(url) + val path = Paths.get("src/test/resources/vm.txt") - assertEquals(listOf(TABLE_RESOURCE_STATES), trace.tables) + assertEquals(listOf(TABLE_RESOURCE_STATES), format.getTables(path)) } @Test fun testTableExists() { - val url = checkNotNull(BitbrainsExTraceFormatTest::class.java.getResource("/vm.txt")) - val table = format.open(url).getTable(TABLE_RESOURCE_STATES) + val path = Paths.get("src/test/resources/vm.txt") - assertNotNull(table) - assertDoesNotThrow { table!!.newReader() } + assertDoesNotThrow { format.getDetails(path, TABLE_RESOURCE_STATES) } } @Test fun testTableDoesNotExist() { - val url = checkNotNull(BitbrainsExTraceFormatTest::class.java.getResource("/vm.txt")) - val trace = format.open(url) - - assertFalse(trace.containsTable("test")) - assertNull(trace.getTable("test")) + val path = Paths.get("src/test/resources/vm.txt") + assertThrows { format.getDetails(path, "test") } } @Test fun testSmoke() { - val url = checkNotNull(BitbrainsExTraceFormatTest::class.java.getResource("/vm.txt")) - val trace = format.open(url) - - val reader = trace.getTable(TABLE_RESOURCE_STATES)!!.newReader() + val path = Paths.get("src/test/resources/vm.txt") + val reader = format.newReader(path, TABLE_RESOURCE_STATES) assertAll( { assertTrue(reader.nextRow()) }, diff --git a/opendc-trace/opendc-trace-bitbrains/src/test/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormatTest.kt b/opendc-trace/opendc-trace-bitbrains/src/test/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormatTest.kt index ff4a33f8..41e7def2 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/test/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormatTest.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/test/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormatTest.kt @@ -26,66 +26,38 @@ import org.junit.jupiter.api.Assertions.* import org.junit.jupiter.api.Test import org.junit.jupiter.api.assertThrows import org.opendc.trace.* -import java.net.URL +import java.nio.file.Paths /** * Test suite for the [BitbrainsTraceFormat] class. */ class BitbrainsTraceFormatTest { - @Test - fun testTraceExists() { - val format = BitbrainsTraceFormat() - val url = checkNotNull(BitbrainsTraceFormatTest::class.java.getResource("/bitbrains.csv")) - assertDoesNotThrow { - format.open(url) - } - } - - @Test - fun testTraceDoesNotExists() { - val format = BitbrainsTraceFormat() - val url = checkNotNull(BitbrainsTraceFormatTest::class.java.getResource("/bitbrains.csv")) - assertThrows { - format.open(URL(url.toString() + "help")) - } - } + private val format = BitbrainsTraceFormat() @Test fun testTables() { - val format = BitbrainsTraceFormat() - val url = checkNotNull(BitbrainsTraceFormatTest::class.java.getResource("/bitbrains.csv")) - val trace = format.open(url) + val path = Paths.get("src/test/resources/bitbrains.csv") - assertEquals(listOf(TABLE_RESOURCES, TABLE_RESOURCE_STATES), trace.tables) + assertEquals(listOf(TABLE_RESOURCES, TABLE_RESOURCE_STATES), format.getTables(path)) } @Test fun testTableExists() { - val format = BitbrainsTraceFormat() - val url = checkNotNull(BitbrainsTraceFormatTest::class.java.getResource("/bitbrains.csv")) - val table = format.open(url).getTable(TABLE_RESOURCE_STATES) + val path = Paths.get("src/test/resources/bitbrains.csv") - assertNotNull(table) - assertDoesNotThrow { table!!.newReader() } + assertDoesNotThrow { format.getDetails(path, TABLE_RESOURCE_STATES) } } @Test fun testTableDoesNotExist() { - val format = BitbrainsTraceFormat() - val url = checkNotNull(BitbrainsTraceFormatTest::class.java.getResource("/bitbrains.csv")) - val trace = format.open(url) - - assertFalse(trace.containsTable("test")) - assertNull(trace.getTable("test")) + val path = Paths.get("src/test/resources/bitbrains.csv") + assertThrows { format.getDetails(path, "test") } } @Test fun testResources() { - val format = BitbrainsTraceFormat() - val url = checkNotNull(BitbrainsTraceFormatTest::class.java.getResource("/bitbrains.csv")) - val trace = format.open(url) - - val reader = trace.getTable(TABLE_RESOURCES)!!.newReader() + val path = Paths.get("src/test/resources/bitbrains.csv") + val reader = format.newReader(path, TABLE_RESOURCES) assertAll( { assertTrue(reader.nextRow()) }, @@ -98,11 +70,8 @@ class BitbrainsTraceFormatTest { @Test fun testSmoke() { - val format = BitbrainsTraceFormat() - val url = checkNotNull(BitbrainsTraceFormatTest::class.java.getResource("/bitbrains.csv")) - val trace = format.open(url) - - val reader = trace.getTable(TABLE_RESOURCE_STATES)!!.newReader() + val path = Paths.get("src/test/resources/bitbrains.csv") + val reader = format.newReader(path, TABLE_RESOURCE_STATES) assertAll( { assertTrue(reader.nextRow()) }, diff --git a/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTable.kt b/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTable.kt deleted file mode 100644 index ca720de4..00000000 --- a/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTaskTable.kt +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.trace.gwf - -import com.fasterxml.jackson.dataformat.csv.CsvFactory -import org.opendc.trace.* -import java.net.URL - -/** - * A [Table] containing the tasks in a GWF trace. - */ -internal class GwfTaskTable(private val factory: CsvFactory, private val url: URL) : Table { - override val name: String = TABLE_TASKS - - override val isSynthetic: Boolean = false - - override val columns: List> = listOf( - TASK_WORKFLOW_ID, - TASK_ID, - TASK_SUBMIT_TIME, - TASK_RUNTIME, - TASK_REQ_NCPUS, - TASK_ALLOC_NCPUS, - TASK_PARENTS - ) - - override val partitionKeys: List> = listOf(TASK_WORKFLOW_ID) - - override fun newReader(): TableReader { - return GwfTaskTableReader(factory.createParser(url)) - } - - override fun newReader(partition: String): TableReader { - throw IllegalArgumentException("Invalid partition $partition") - } - - override fun toString(): String = "GwfTaskTable" -} diff --git a/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTrace.kt b/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTrace.kt deleted file mode 100644 index 166c1e56..00000000 --- a/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTrace.kt +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.trace.gwf - -import com.fasterxml.jackson.dataformat.csv.CsvFactory -import org.opendc.trace.* -import java.net.URL - -/** - * [Trace] implementation for the GWF format. - */ -public class GwfTrace internal constructor(private val factory: CsvFactory, private val url: URL) : Trace { - override val tables: List = listOf(TABLE_TASKS) - - override fun containsTable(name: String): Boolean = TABLE_TASKS == name - - override fun getTable(name: String): Table? { - if (!containsTable(name)) { - return null - } - - return GwfTaskTable(factory, url) - } - - override fun toString(): String = "GwfTrace[$url]" -} diff --git a/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTraceFormat.kt b/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTraceFormat.kt index 6d542503..0f7b9d6e 100644 --- a/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTraceFormat.kt +++ b/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTraceFormat.kt @@ -24,10 +24,10 @@ package org.opendc.trace.gwf import com.fasterxml.jackson.dataformat.csv.CsvFactory import com.fasterxml.jackson.dataformat.csv.CsvParser +import org.opendc.trace.* +import org.opendc.trace.spi.TableDetails import org.opendc.trace.spi.TraceFormat -import java.net.URL -import java.nio.file.Paths -import kotlin.io.path.exists +import java.nio.file.Path /** * A [TraceFormat] implementation for the GWF trace format. @@ -45,12 +45,30 @@ public class GwfTraceFormat : TraceFormat { .enable(CsvParser.Feature.ALLOW_COMMENTS) .enable(CsvParser.Feature.TRIM_SPACES) - /** - * Read the tasks in the GWF trace. - */ - public override fun open(url: URL): GwfTrace { - val path = Paths.get(url.toURI()) - require(path.exists()) { "URL $url does not exist" } - return GwfTrace(factory, url) + override fun getTables(path: Path): List = listOf(TABLE_TASKS) + + override fun getDetails(path: Path, table: String): TableDetails { + return when (table) { + TABLE_TASKS -> TableDetails( + listOf( + TASK_WORKFLOW_ID, + TASK_ID, + TASK_SUBMIT_TIME, + TASK_RUNTIME, + TASK_REQ_NCPUS, + TASK_ALLOC_NCPUS, + TASK_PARENTS, + ), + listOf(TASK_WORKFLOW_ID) + ) + else -> throw IllegalArgumentException("Table $table not supported") + } + } + + override fun newReader(path: Path, table: String): TableReader { + return when (table) { + TABLE_TASKS -> GwfTaskTableReader(factory.createParser(path.toFile())) + else -> throw IllegalArgumentException("Table $table not supported") + } } } diff --git a/opendc-trace/opendc-trace-gwf/src/test/kotlin/org/opendc/trace/gwf/GwfTraceFormatTest.kt b/opendc-trace/opendc-trace-gwf/src/test/kotlin/org/opendc/trace/gwf/GwfTraceFormatTest.kt index b209b979..7fe403b2 100644 --- a/opendc-trace/opendc-trace-gwf/src/test/kotlin/org/opendc/trace/gwf/GwfTraceFormatTest.kt +++ b/opendc-trace/opendc-trace-gwf/src/test/kotlin/org/opendc/trace/gwf/GwfTraceFormatTest.kt @@ -22,13 +22,10 @@ package org.opendc.trace.gwf +import org.junit.jupiter.api.* import org.junit.jupiter.api.Assertions.* -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.assertAll -import org.junit.jupiter.api.assertDoesNotThrow -import org.junit.jupiter.api.assertThrows import org.opendc.trace.* -import java.net.URL +import java.nio.file.Paths import java.time.Duration import java.time.Instant @@ -36,59 +33,32 @@ import java.time.Instant * Test suite for the [GwfTraceFormat] class. */ internal class GwfTraceFormatTest { - @Test - fun testTraceExists() { - val input = checkNotNull(GwfTraceFormatTest::class.java.getResource("/trace.gwf")) - val format = GwfTraceFormat() - assertDoesNotThrow { - format.open(input) - } - } - - @Test - fun testTraceDoesNotExists() { - val input = checkNotNull(GwfTraceFormatTest::class.java.getResource("/trace.gwf")) - val format = GwfTraceFormat() - assertThrows { - format.open(URL(input.toString() + "help")) - } - } + private val format = GwfTraceFormat() @Test fun testTables() { - val input = checkNotNull(GwfTraceFormatTest::class.java.getResource("/trace.gwf")) - val format = GwfTraceFormat() - val trace = format.open(input) + val path = Paths.get(checkNotNull(GwfTraceFormatTest::class.java.getResource("/trace.gwf")).toURI()) - assertEquals(listOf(TABLE_TASKS), trace.tables) + assertEquals(listOf(TABLE_TASKS), format.getTables(path)) } @Test fun testTableExists() { - val input = checkNotNull(GwfTraceFormatTest::class.java.getResource("/trace.gwf")) - val format = GwfTraceFormat() - val table = format.open(input).getTable(TABLE_TASKS) - - assertNotNull(table) - assertDoesNotThrow { table!!.newReader() } + val path = Paths.get(checkNotNull(GwfTraceFormatTest::class.java.getResource("/trace.gwf")).toURI()) + assertDoesNotThrow { format.getDetails(path, TABLE_TASKS) } } @Test fun testTableDoesNotExist() { - val input = checkNotNull(GwfTraceFormatTest::class.java.getResource("/trace.gwf")) - val format = GwfTraceFormat() - val trace = format.open(input) + val path = Paths.get(checkNotNull(GwfTraceFormatTest::class.java.getResource("/trace.gwf")).toURI()) - assertFalse(trace.containsTable("test")) - assertNull(trace.getTable("test")) + assertThrows { format.getDetails(path, "test") } } @Test fun testTableReader() { - val input = checkNotNull(GwfTraceFormatTest::class.java.getResource("/trace.gwf")) - val format = GwfTraceFormat() - val table = format.open(input).getTable(TABLE_TASKS)!! - val reader = table.newReader() + val path = Paths.get(checkNotNull(GwfTraceFormatTest::class.java.getResource("/trace.gwf")).toURI()) + val reader = format.newReader(path, TABLE_TASKS) assertAll( { assertTrue(reader.nextRow()) }, @@ -99,13 +69,4 @@ internal class GwfTraceFormatTest { { assertEquals(emptySet(), reader.get(TASK_PARENTS)) }, ) } - - @Test - fun testTableReaderPartition() { - val input = checkNotNull(GwfTraceFormatTest::class.java.getResource("/trace.gwf")) - val format = GwfTraceFormat() - val table = format.open(input).getTable(TABLE_TASKS)!! - - assertThrows { table.newReader("test") } - } } diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTable.kt b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTable.kt deleted file mode 100644 index caacf192..00000000 --- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTable.kt +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.trace.opendc - -import org.apache.avro.generic.GenericRecord -import org.opendc.trace.* -import org.opendc.trace.util.parquet.LocalParquetReader -import java.nio.file.Path - -/** - * The resource state [Table] in the OpenDC virtual machine trace format. - */ -internal class OdcVmResourceStateTable(private val path: Path) : Table { - override val name: String = TABLE_RESOURCE_STATES - override val isSynthetic: Boolean = false - - override val columns: List> = listOf( - RESOURCE_ID, - RESOURCE_STATE_TIMESTAMP, - RESOURCE_STATE_DURATION, - RESOURCE_CPU_COUNT, - RESOURCE_STATE_CPU_USAGE, - ) - - override val partitionKeys: List> = listOf(RESOURCE_ID, RESOURCE_STATE_TIMESTAMP) - - override fun newReader(): TableReader { - val reader = LocalParquetReader(path.resolve("trace.parquet")) - return OdcVmResourceStateTableReader(reader) - } - - override fun newReader(partition: String): TableReader { - throw IllegalArgumentException("Unknown partition $partition") - } -} diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTable.kt b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTable.kt deleted file mode 100644 index 653b28b8..00000000 --- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTable.kt +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.trace.opendc - -import org.apache.avro.generic.GenericRecord -import org.opendc.trace.* -import org.opendc.trace.util.parquet.LocalParquetReader -import java.nio.file.Path - -/** - * The resource [Table] for the OpenDC virtual machine trace format. - */ -internal class OdcVmResourceTable(private val path: Path) : Table { - override val name: String = TABLE_RESOURCES - override val isSynthetic: Boolean = false - - override val columns: List> = listOf( - RESOURCE_ID, - RESOURCE_START_TIME, - RESOURCE_STOP_TIME, - RESOURCE_CPU_COUNT, - RESOURCE_MEM_CAPACITY, - ) - - override val partitionKeys: List> = emptyList() - - override fun newReader(): TableReader { - val reader = LocalParquetReader(path.resolve("meta.parquet")) - return OdcVmResourceTableReader(reader) - } - - override fun newReader(partition: String): TableReader { - throw IllegalArgumentException("Unknown partition $partition") - } -} diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmTrace.kt b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmTrace.kt deleted file mode 100644 index 3e5029b4..00000000 --- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmTrace.kt +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.trace.opendc - -import org.opendc.trace.TABLE_RESOURCES -import org.opendc.trace.TABLE_RESOURCE_STATES -import org.opendc.trace.Table -import org.opendc.trace.Trace -import java.nio.file.Path - -/** - * A [Trace] in the OpenDC virtual machine trace format. - */ -public class OdcVmTrace internal constructor(private val path: Path) : Trace { - override val tables: List = listOf(TABLE_RESOURCES, TABLE_RESOURCE_STATES) - - override fun containsTable(name: String): Boolean = - name == TABLE_RESOURCES || name == TABLE_RESOURCE_STATES - - override fun getTable(name: String): Table? { - return when (name) { - TABLE_RESOURCES -> OdcVmResourceTable(path) - TABLE_RESOURCE_STATES -> OdcVmResourceStateTable(path) - else -> null - } - } - - override fun toString(): String = "OdcVmTrace[$path]" -} diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmTraceFormat.kt b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmTraceFormat.kt index 8edba725..29818147 100644 --- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmTraceFormat.kt +++ b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmTraceFormat.kt @@ -24,11 +24,13 @@ package org.opendc.trace.opendc import org.apache.avro.Schema import org.apache.avro.SchemaBuilder +import org.apache.avro.generic.GenericRecord +import org.opendc.trace.* +import org.opendc.trace.spi.TableDetails import org.opendc.trace.spi.TraceFormat +import org.opendc.trace.util.parquet.LocalParquetReader import org.opendc.trace.util.parquet.TIMESTAMP_SCHEMA -import java.net.URL -import java.nio.file.Paths -import kotlin.io.path.exists +import java.nio.file.Path /** * A [TraceFormat] implementation of the OpenDC virtual machine trace format. @@ -39,13 +41,45 @@ public class OdcVmTraceFormat : TraceFormat { */ override val name: String = "opendc-vm" - /** - * Open a Bitbrains Parquet trace. - */ - override fun open(url: URL): OdcVmTrace { - val path = Paths.get(url.toURI()) - require(path.exists()) { "URL $url does not exist" } - return OdcVmTrace(path) + override fun getTables(path: Path): List = listOf(TABLE_RESOURCES, TABLE_RESOURCE_STATES) + + override fun getDetails(path: Path, table: String): TableDetails { + return when (table) { + TABLE_RESOURCES -> TableDetails( + listOf( + RESOURCE_ID, + RESOURCE_START_TIME, + RESOURCE_STOP_TIME, + RESOURCE_CPU_COUNT, + RESOURCE_MEM_CAPACITY, + ) + ) + TABLE_RESOURCE_STATES -> TableDetails( + listOf( + RESOURCE_ID, + RESOURCE_STATE_TIMESTAMP, + RESOURCE_STATE_DURATION, + RESOURCE_CPU_COUNT, + RESOURCE_STATE_CPU_USAGE, + ), + listOf(RESOURCE_ID, RESOURCE_STATE_TIMESTAMP) + ) + else -> throw IllegalArgumentException("Table $table not supported") + } + } + + override fun newReader(path: Path, table: String): TableReader { + return when (table) { + TABLE_RESOURCES -> { + val reader = LocalParquetReader(path.resolve("meta.parquet")) + OdcVmResourceTableReader(reader) + } + TABLE_RESOURCE_STATES -> { + val reader = LocalParquetReader(path.resolve("trace.parquet")) + OdcVmResourceStateTableReader(reader) + } + else -> throw IllegalArgumentException("Table $table not supported") + } } public companion object { diff --git a/opendc-trace/opendc-trace-opendc/src/test/kotlin/org/opendc/trace/opendc/OdcVmTraceFormatTest.kt b/opendc-trace/opendc-trace-opendc/src/test/kotlin/org/opendc/trace/opendc/OdcVmTraceFormatTest.kt index 9fb6028d..bfe0f881 100644 --- a/opendc-trace/opendc-trace-opendc/src/test/kotlin/org/opendc/trace/opendc/OdcVmTraceFormatTest.kt +++ b/opendc-trace/opendc-trace-opendc/src/test/kotlin/org/opendc/trace/opendc/OdcVmTraceFormatTest.kt @@ -29,8 +29,7 @@ import org.junit.jupiter.api.assertThrows import org.junit.jupiter.params.ParameterizedTest import org.junit.jupiter.params.provider.ValueSource import org.opendc.trace.* -import java.io.File -import java.net.URL +import java.nio.file.Paths /** * Test suite for the [OdcVmTraceFormat] implementation. @@ -38,53 +37,31 @@ import java.net.URL internal class OdcVmTraceFormatTest { private val format = OdcVmTraceFormat() - @Test - fun testTraceExists() { - val url = File("src/test/resources/trace-v2.1").toURI().toURL() - assertDoesNotThrow { format.open(url) } - } - - @Test - fun testTraceDoesNotExists() { - val url = File("src/test/resources/trace-v2.1").toURI().toURL() - assertThrows { - format.open(URL(url.toString() + "help")) - } - } - @Test fun testTables() { - val url = File("src/test/resources/trace-v2.1").toURI().toURL() - val trace = format.open(url) + val path = Paths.get("src/test/resources/trace-v2.1") - assertEquals(listOf(TABLE_RESOURCES, TABLE_RESOURCE_STATES), trace.tables) + assertEquals(listOf(TABLE_RESOURCES, TABLE_RESOURCE_STATES), format.getTables(path)) } @Test fun testTableExists() { - val url = File("src/test/resources/trace-v2.1").toURI().toURL() - val table = format.open(url).getTable(TABLE_RESOURCE_STATES) + val path = Paths.get("src/test/resources/trace-v2.1") - assertNotNull(table) - assertDoesNotThrow { table!!.newReader() } + assertDoesNotThrow { format.getDetails(path, TABLE_RESOURCE_STATES) } } @Test fun testTableDoesNotExist() { - val url = File("src/test/resources/trace-v2.1").toURI().toURL() - val trace = format.open(url) - - assertFalse(trace.containsTable("test")) - assertNull(trace.getTable("test")) + val path = Paths.get("src/test/resources/trace-v2.1") + assertThrows { format.getDetails(path, "test") } } @ParameterizedTest @ValueSource(strings = ["trace-v2.0", "trace-v2.1"]) fun testResources(name: String) { - val url = File("src/test/resources/$name").toURI().toURL() - val trace = format.open(url) - - val reader = trace.getTable(TABLE_RESOURCES)!!.newReader() + val path = Paths.get("src/test/resources/$name") + val reader = format.newReader(path, TABLE_RESOURCES) assertAll( { assertTrue(reader.nextRow()) }, @@ -104,10 +81,8 @@ internal class OdcVmTraceFormatTest { @ParameterizedTest @ValueSource(strings = ["trace-v2.0", "trace-v2.1"]) fun testSmoke(name: String) { - val url = File("src/test/resources/$name").toURI().toURL() - val trace = format.open(url) - - val reader = trace.getTable(TABLE_RESOURCE_STATES)!!.newReader() + val path = Paths.get("src/test/resources/$name") + val reader = format.newReader(path, TABLE_RESOURCE_STATES) assertAll( { assertTrue(reader.nextRow()) }, diff --git a/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTable.kt b/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTable.kt deleted file mode 100644 index 4898779d..00000000 --- a/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTaskTable.kt +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.trace.swf - -import org.opendc.trace.* -import java.nio.file.Path -import kotlin.io.path.bufferedReader - -/** - * A [Table] containing the tasks in a SWF trace. - */ -internal class SwfTaskTable(private val path: Path) : Table { - override val name: String = TABLE_TASKS - - override val isSynthetic: Boolean = false - - override val columns: List> = listOf( - TASK_ID, - TASK_SUBMIT_TIME, - TASK_WAIT_TIME, - TASK_RUNTIME, - TASK_REQ_NCPUS, - TASK_ALLOC_NCPUS, - TASK_PARENTS, - TASK_STATUS, - TASK_GROUP_ID, - TASK_USER_ID - ) - - override val partitionKeys: List> = emptyList() - - override fun newReader(): TableReader { - val reader = path.bufferedReader() - return SwfTaskTableReader(reader) - } - - override fun newReader(partition: String): TableReader { - throw IllegalArgumentException("Invalid partition $partition") - } - - override fun toString(): String = "SwfTaskTable" -} diff --git a/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTrace.kt b/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTrace.kt deleted file mode 100644 index d4da735e..00000000 --- a/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTrace.kt +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.trace.swf - -import org.opendc.trace.TABLE_TASKS -import org.opendc.trace.Table -import org.opendc.trace.Trace -import java.nio.file.Path - -/** - * [Trace] implementation for the SWF format. - */ -public class SwfTrace internal constructor(private val path: Path) : Trace { - override val tables: List = listOf(TABLE_TASKS) - - override fun containsTable(name: String): Boolean = TABLE_TASKS == name - - override fun getTable(name: String): Table? { - if (!containsTable(name)) { - return null - } - return SwfTaskTable(path) - } - - override fun toString(): String = "SwfTrace[$path]" -} diff --git a/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTraceFormat.kt b/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTraceFormat.kt index 36c3122e..4cb7e49e 100644 --- a/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTraceFormat.kt +++ b/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTraceFormat.kt @@ -22,10 +22,11 @@ package org.opendc.trace.swf +import org.opendc.trace.* +import org.opendc.trace.spi.TableDetails import org.opendc.trace.spi.TraceFormat -import java.net.URL -import java.nio.file.Paths -import kotlin.io.path.exists +import java.nio.file.Path +import kotlin.io.path.bufferedReader /** * Support for the Standard Workload Format (SWF) in OpenDC. @@ -35,9 +36,33 @@ import kotlin.io.path.exists public class SwfTraceFormat : TraceFormat { override val name: String = "swf" - override fun open(url: URL): SwfTrace { - val path = Paths.get(url.toURI()) - require(path.exists()) { "URL $url does not exist" } - return SwfTrace(path) + override fun getTables(path: Path): List = listOf(TABLE_TASKS) + + override fun getDetails(path: Path, table: String): TableDetails { + return when (table) { + TABLE_TASKS -> TableDetails( + listOf( + TASK_ID, + TASK_SUBMIT_TIME, + TASK_WAIT_TIME, + TASK_RUNTIME, + TASK_REQ_NCPUS, + TASK_ALLOC_NCPUS, + TASK_PARENTS, + TASK_STATUS, + TASK_GROUP_ID, + TASK_USER_ID + ), + emptyList() + ) + else -> throw IllegalArgumentException("Table $table not supported") + } + } + + override fun newReader(path: Path, table: String): TableReader { + return when (table) { + TABLE_TASKS -> SwfTaskTableReader(path.bufferedReader()) + else -> throw IllegalArgumentException("Table $table not supported") + } } } diff --git a/opendc-trace/opendc-trace-swf/src/test/kotlin/org/opendc/trace/swf/SwfTraceFormatTest.kt b/opendc-trace/opendc-trace-swf/src/test/kotlin/org/opendc/trace/swf/SwfTraceFormatTest.kt index 828c2bfa..4dcd43f6 100644 --- a/opendc-trace/opendc-trace-swf/src/test/kotlin/org/opendc/trace/swf/SwfTraceFormatTest.kt +++ b/opendc-trace/opendc-trace-swf/src/test/kotlin/org/opendc/trace/swf/SwfTraceFormatTest.kt @@ -27,61 +27,38 @@ import org.junit.jupiter.api.Assertions.* import org.opendc.trace.TABLE_TASKS import org.opendc.trace.TASK_ALLOC_NCPUS import org.opendc.trace.TASK_ID -import java.net.URL +import java.nio.file.Paths /** * Test suite for the [SwfTraceFormat] class. */ internal class SwfTraceFormatTest { - @Test - fun testTraceExists() { - val input = checkNotNull(SwfTraceFormatTest::class.java.getResource("/trace.swf")) - val format = SwfTraceFormat() - assertDoesNotThrow { - format.open(input) - } - } - - @Test - fun testTraceDoesNotExists() { - val input = checkNotNull(SwfTraceFormatTest::class.java.getResource("/trace.swf")) - val format = SwfTraceFormat() - assertThrows { - format.open(URL(input.toString() + "help")) - } - } + private val format = SwfTraceFormat() @Test fun testTables() { - val input = checkNotNull(SwfTraceFormatTest::class.java.getResource("/trace.swf")) - val trace = SwfTraceFormat().open(input) + val path = Paths.get(checkNotNull(SwfTraceFormatTest::class.java.getResource("/trace.swf")).toURI()) - assertEquals(listOf(TABLE_TASKS), trace.tables) + assertEquals(listOf(TABLE_TASKS), format.getTables(path)) } @Test fun testTableExists() { - val input = checkNotNull(SwfTraceFormatTest::class.java.getResource("/trace.swf")) - val table = SwfTraceFormat().open(input).getTable(TABLE_TASKS) - - assertNotNull(table) - assertDoesNotThrow { table!!.newReader() } + val path = Paths.get(checkNotNull(SwfTraceFormatTest::class.java.getResource("/trace.swf")).toURI()) + assertDoesNotThrow { format.getDetails(path, TABLE_TASKS) } } @Test fun testTableDoesNotExist() { - val input = checkNotNull(SwfTraceFormatTest::class.java.getResource("/trace.swf")) - val trace = SwfTraceFormat().open(input) + val path = Paths.get(checkNotNull(SwfTraceFormatTest::class.java.getResource("/trace.swf")).toURI()) - assertFalse(trace.containsTable("test")) - assertNull(trace.getTable("test")) + assertThrows { format.getDetails(path, "test") } } @Test fun testReader() { - val input = checkNotNull(SwfTraceFormatTest::class.java.getResource("/trace.swf")) - val trace = SwfTraceFormat().open(input) - val reader = trace.getTable(TABLE_TASKS)!!.newReader() + val path = Paths.get(checkNotNull(SwfTraceFormatTest::class.java.getResource("/trace.swf")).toURI()) + val reader = format.newReader(path, TABLE_TASKS) assertAll( { assertTrue(reader.nextRow()) }, @@ -94,14 +71,4 @@ internal class SwfTraceFormatTest { reader.close() } - - @Test - fun testReaderPartition() { - val input = checkNotNull(SwfTraceFormatTest::class.java.getResource("/trace.swf")) - val trace = SwfTraceFormat().open(input) - - assertThrows { - trace.getTable(TABLE_TASKS)!!.newReader("test") - } - } } diff --git a/opendc-trace/opendc-trace-tools/src/main/kotlin/org/opendc/trace/tools/TraceConverter.kt b/opendc-trace/opendc-trace-tools/src/main/kotlin/org/opendc/trace/tools/TraceConverter.kt index 0b089904..cd5d287f 100644 --- a/opendc-trace/opendc-trace-tools/src/main/kotlin/org/opendc/trace/tools/TraceConverter.kt +++ b/opendc-trace/opendc-trace-tools/src/main/kotlin/org/opendc/trace/tools/TraceConverter.kt @@ -35,9 +35,6 @@ import org.apache.parquet.avro.AvroParquetWriter import org.apache.parquet.hadoop.ParquetWriter import org.apache.parquet.hadoop.metadata.CompressionCodecName import org.opendc.trace.* -import org.opendc.trace.azure.AzureTraceFormat -import org.opendc.trace.bitbrains.BitbrainsExTraceFormat -import org.opendc.trace.bitbrains.BitbrainsTraceFormat import org.opendc.trace.opendc.OdcVmTraceFormat import org.opendc.trace.util.parquet.LocalOutputFile import java.io.File @@ -78,11 +75,7 @@ internal class TraceConverterCli : CliktCommand(name = "trace-converter") { * The input format of the trace. */ private val format by option("-f", "--format", help = "input format of trace") - .choice( - "solvinity" to BitbrainsExTraceFormat(), - "bitbrains" to BitbrainsTraceFormat(), - "azure" to AzureTraceFormat() - ) + .choice("bitbrains-ex", "bitbrains", "azure") .required() /** @@ -101,7 +94,7 @@ internal class TraceConverterCli : CliktCommand(name = "trace-converter") { traceParquet.delete() } - val trace = format.open(input.toURI().toURL()) + val trace = Trace.open(input, format = format) logger.info { "Building resources table" } diff --git a/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTable.kt b/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTable.kt deleted file mode 100644 index 17aeee97..00000000 --- a/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTaskTable.kt +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.trace.wfformat - -import com.fasterxml.jackson.core.JsonFactory -import org.opendc.trace.* -import java.nio.file.Path - -/** - * A [Table] containing the tasks in a WfCommons workload trace. - */ -internal class WfFormatTaskTable(private val factory: JsonFactory, private val path: Path) : Table { - override val name: String = TABLE_TASKS - - override val isSynthetic: Boolean = false - - override val columns: List> = listOf( - TASK_ID, - TASK_WORKFLOW_ID, - TASK_RUNTIME, - TASK_REQ_NCPUS, - TASK_PARENTS, - TASK_CHILDREN - ) - - override val partitionKeys: List> = emptyList() - - override fun newReader(): TableReader { - val parser = factory.createParser(path.toFile()) - return WfFormatTaskTableReader(parser) - } - - override fun newReader(partition: String): TableReader { - throw IllegalArgumentException("Invalid partition $partition") - } - - override fun toString(): String = "WfFormatTaskTable" -} diff --git a/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTrace.kt b/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTrace.kt deleted file mode 100644 index 2d9c79fb..00000000 --- a/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTrace.kt +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.trace.wfformat - -import com.fasterxml.jackson.core.JsonFactory -import org.opendc.trace.TABLE_TASKS -import org.opendc.trace.Table -import org.opendc.trace.Trace -import java.nio.file.Path - -/** - * [Trace] implementation for the WfCommons workload trace format. - */ -public class WfFormatTrace internal constructor(private val factory: JsonFactory, private val path: Path) : Trace { - override val tables: List = listOf(TABLE_TASKS) - - override fun containsTable(name: String): Boolean = TABLE_TASKS == name - - override fun getTable(name: String): Table? { - return when (name) { - TABLE_TASKS -> WfFormatTaskTable(factory, path) - else -> null - } - } - - override fun toString(): String = "WfFormatTrace[$path]" -} diff --git a/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTraceFormat.kt b/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTraceFormat.kt index ff8d054c..825c3d6d 100644 --- a/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTraceFormat.kt +++ b/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTraceFormat.kt @@ -23,10 +23,10 @@ package org.opendc.trace.wfformat import com.fasterxml.jackson.core.JsonFactory +import org.opendc.trace.* +import org.opendc.trace.spi.TableDetails import org.opendc.trace.spi.TraceFormat -import java.net.URL -import java.nio.file.Paths -import kotlin.io.path.exists +import java.nio.file.Path /** * A [TraceFormat] implementation for the WfCommons workload trace format. @@ -39,9 +39,29 @@ public class WfFormatTraceFormat : TraceFormat { override val name: String = "wfformat" - override fun open(url: URL): WfFormatTrace { - val path = Paths.get(url.toURI()) - require(path.exists()) { "URL $url does not exist" } - return WfFormatTrace(factory, path) + override fun getTables(path: Path): List = listOf(TABLE_TASKS) + + override fun getDetails(path: Path, table: String): TableDetails { + return when (table) { + TABLE_TASKS -> TableDetails( + listOf( + TASK_ID, + TASK_WORKFLOW_ID, + TASK_RUNTIME, + TASK_REQ_NCPUS, + TASK_PARENTS, + TASK_CHILDREN + ), + emptyList() + ) + else -> throw IllegalArgumentException("Table $table not supported") + } + } + + override fun newReader(path: Path, table: String): TableReader { + return when (table) { + TABLE_TASKS -> WfFormatTaskTableReader(factory.createParser(path.toFile())) + else -> throw IllegalArgumentException("Table $table not supported") + } } } diff --git a/opendc-trace/opendc-trace-wfformat/src/test/kotlin/org/opendc/trace/wfformat/WfFormatTraceFormatTest.kt b/opendc-trace/opendc-trace-wfformat/src/test/kotlin/org/opendc/trace/wfformat/WfFormatTraceFormatTest.kt index 0bfc8840..217b175d 100644 --- a/opendc-trace/opendc-trace-wfformat/src/test/kotlin/org/opendc/trace/wfformat/WfFormatTraceFormatTest.kt +++ b/opendc-trace/opendc-trace-wfformat/src/test/kotlin/org/opendc/trace/wfformat/WfFormatTraceFormatTest.kt @@ -22,59 +22,38 @@ package org.opendc.trace.wfformat +import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Assertions.* import org.junit.jupiter.api.Test import org.junit.jupiter.api.assertDoesNotThrow import org.junit.jupiter.api.assertThrows import org.opendc.trace.* -import java.io.File -import java.net.URL +import java.nio.file.Paths /** * Test suite for the [WfFormatTraceFormat] class. */ class WfFormatTraceFormatTest { - @Test - fun testTraceExists() { - val input = File("src/test/resources/trace.json").toURI().toURL() - val format = WfFormatTraceFormat() - assertDoesNotThrow { format.open(input) } - } - - @Test - fun testTraceDoesNotExists() { - val input = File("src/test/resources/trace.json").toURI().toURL() - val format = WfFormatTraceFormat() - assertThrows { format.open(URL(input.toString() + "help")) } - } + private val format = WfFormatTraceFormat() @Test fun testTables() { - val input = File("src/test/resources/trace.json").toURI().toURL() - val format = WfFormatTraceFormat() - val trace = format.open(input) + val path = Paths.get("src/test/resources/trace.json") - assertEquals(listOf(TABLE_TASKS), trace.tables) + assertEquals(listOf(TABLE_TASKS), format.getTables(path)) } @Test fun testTableExists() { - val input = File("src/test/resources/trace.json").toURI().toURL() - val format = WfFormatTraceFormat() - val table = format.open(input).getTable(TABLE_TASKS) - - assertNotNull(table) - assertDoesNotThrow { table!!.newReader() } + val path = Paths.get("src/test/resources/trace.json") + Assertions.assertDoesNotThrow { format.getDetails(path, TABLE_TASKS) } } @Test fun testTableDoesNotExist() { - val input = File("src/test/resources/trace.json").toURI().toURL() - val format = WfFormatTraceFormat() - val trace = format.open(input) + val path = Paths.get("src/test/resources/trace.json") - assertFalse(trace.containsTable("test")) - assertNull(trace.getTable("test")) + assertThrows { format.getDetails(path, "test") } } /** @@ -82,9 +61,8 @@ class WfFormatTraceFormatTest { */ @Test fun testTableReader() { - val input = File("src/test/resources/trace.json").toURI().toURL() - val trace = WfFormatTraceFormat().open(input) - val reader = trace.getTable(TABLE_TASKS)!!.newReader() + val path = Paths.get("src/test/resources/trace.json") + val reader = format.newReader(path, TABLE_TASKS) assertAll( { assertTrue(reader.nextRow()) }, @@ -110,9 +88,8 @@ class WfFormatTraceFormatTest { */ @Test fun testTableReaderFull() { - val input = File("src/test/resources/trace.json").toURI().toURL() - val trace = WfFormatTraceFormat().open(input) - val reader = trace.getTable(TABLE_TASKS)!!.newReader() + val path = Paths.get("src/test/resources/trace.json") + val reader = format.newReader(path, TABLE_TASKS) assertDoesNotThrow { while (reader.nextRow()) { @@ -121,13 +98,4 @@ class WfFormatTraceFormatTest { reader.close() } } - - @Test - fun testTableReaderPartition() { - val input = File("src/test/resources/trace.json").toURI().toURL() - val format = WfFormatTraceFormat() - val table = format.open(input).getTable(TABLE_TASKS)!! - - assertThrows { table.newReader("test") } - } } diff --git a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTable.kt b/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTable.kt deleted file mode 100644 index 410bb347..00000000 --- a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTaskTable.kt +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.trace.wtf - -import org.apache.avro.generic.GenericRecord -import org.opendc.trace.* -import org.opendc.trace.util.parquet.LocalParquetReader -import java.nio.file.Path - -/** - * A [Table] containing the tasks in a GWF trace. - */ -internal class WtfTaskTable(private val path: Path) : Table { - override val name: String = TABLE_TASKS - - override val isSynthetic: Boolean = false - - override val columns: List> = listOf( - TASK_ID, - TASK_WORKFLOW_ID, - TASK_SUBMIT_TIME, - TASK_WAIT_TIME, - TASK_RUNTIME, - TASK_REQ_NCPUS, - TASK_PARENTS, - TASK_CHILDREN, - TASK_GROUP_ID, - TASK_USER_ID - ) - - override val partitionKeys: List> = listOf(TASK_SUBMIT_TIME) - - override fun newReader(): TableReader { - val reader = LocalParquetReader(path.resolve("tasks/schema-1.0")) - return WtfTaskTableReader(reader) - } - - override fun newReader(partition: String): TableReader { - throw IllegalArgumentException("Invalid partition $partition") - } - - override fun toString(): String = "WtfTaskTable" -} diff --git a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTrace.kt b/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTrace.kt deleted file mode 100644 index a755a107..00000000 --- a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTrace.kt +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.trace.wtf - -import org.opendc.trace.TABLE_TASKS -import org.opendc.trace.Table -import org.opendc.trace.Trace -import java.nio.file.Path - -/** - * [Trace] implementation for the WTF format. - */ -public class WtfTrace internal constructor(private val path: Path) : Trace { - override val tables: List = listOf(TABLE_TASKS) - - override fun containsTable(name: String): Boolean = TABLE_TASKS == name - - override fun getTable(name: String): Table? { - if (!containsTable(name)) { - return null - } - - return WtfTaskTable(path) - } - - override fun toString(): String = "WtfTrace[$path]" -} diff --git a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTraceFormat.kt b/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTraceFormat.kt index 781cb335..2f17694f 100644 --- a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTraceFormat.kt +++ b/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTraceFormat.kt @@ -22,10 +22,12 @@ package org.opendc.trace.wtf +import org.apache.avro.generic.GenericRecord +import org.opendc.trace.* +import org.opendc.trace.spi.TableDetails import org.opendc.trace.spi.TraceFormat -import java.net.URL -import java.nio.file.Paths -import kotlin.io.path.exists +import org.opendc.trace.util.parquet.LocalParquetReader +import java.nio.file.Path /** * A [TraceFormat] implementation for the Workflow Trace Format (WTF). @@ -33,9 +35,36 @@ import kotlin.io.path.exists public class WtfTraceFormat : TraceFormat { override val name: String = "wtf" - override fun open(url: URL): WtfTrace { - val path = Paths.get(url.toURI()) - require(path.exists()) { "URL $url does not exist" } - return WtfTrace(path) + override fun getTables(path: Path): List = listOf(TABLE_TASKS) + + override fun getDetails(path: Path, table: String): TableDetails { + return when (table) { + TABLE_TASKS -> TableDetails( + listOf( + TASK_ID, + TASK_WORKFLOW_ID, + TASK_SUBMIT_TIME, + TASK_WAIT_TIME, + TASK_RUNTIME, + TASK_REQ_NCPUS, + TASK_PARENTS, + TASK_CHILDREN, + TASK_GROUP_ID, + TASK_USER_ID + ), + listOf(TASK_SUBMIT_TIME) + ) + else -> throw IllegalArgumentException("Table $table not supported") + } + } + + override fun newReader(path: Path, table: String): TableReader { + return when (table) { + TABLE_TASKS -> { + val reader = LocalParquetReader(path.resolve("tasks/schema-1.0")) + WtfTaskTableReader(reader) + } + else -> throw IllegalArgumentException("Table $table not supported") + } } } diff --git a/opendc-trace/opendc-trace-wtf/src/test/kotlin/org/opendc/trace/wtf/WtfTraceFormatTest.kt b/opendc-trace/opendc-trace-wtf/src/test/kotlin/org/opendc/trace/wtf/WtfTraceFormatTest.kt index b155f265..09c3703a 100644 --- a/opendc-trace/opendc-trace-wtf/src/test/kotlin/org/opendc/trace/wtf/WtfTraceFormatTest.kt +++ b/opendc-trace/opendc-trace-wtf/src/test/kotlin/org/opendc/trace/wtf/WtfTraceFormatTest.kt @@ -26,8 +26,7 @@ import org.junit.jupiter.api.Assertions.* import org.junit.jupiter.api.Test import org.junit.jupiter.api.assertThrows import org.opendc.trace.* -import java.io.File -import java.net.URL +import java.nio.file.Paths import java.time.Duration import java.time.Instant @@ -35,51 +34,25 @@ import java.time.Instant * Test suite for the [WtfTraceFormat] class. */ class WtfTraceFormatTest { - @Test - fun testTraceExists() { - val input = File("src/test/resources/wtf-trace").toURI().toURL() - val format = WtfTraceFormat() - org.junit.jupiter.api.assertDoesNotThrow { - format.open(input) - } - } - - @Test - fun testTraceDoesNotExists() { - val input = File("src/test/resources/wtf-trace").toURI().toURL() - val format = WtfTraceFormat() - assertThrows { - format.open(URL(input.toString() + "help")) - } - } + private val format = WtfTraceFormat() @Test fun testTables() { - val input = File("src/test/resources/wtf-trace").toURI().toURL() - val format = WtfTraceFormat() - val trace = format.open(input) - - assertEquals(listOf(TABLE_TASKS), trace.tables) + val path = Paths.get("src/test/resources/wtf-trace") + assertEquals(listOf(TABLE_TASKS), format.getTables(path)) } @Test fun testTableExists() { - val input = File("src/test/resources/wtf-trace").toURI().toURL() - val format = WtfTraceFormat() - val table = format.open(input).getTable(TABLE_TASKS) - - assertNotNull(table) - org.junit.jupiter.api.assertDoesNotThrow { table!!.newReader() } + val path = Paths.get("src/test/resources/wtf-trace") + assertDoesNotThrow { format.getDetails(path, TABLE_TASKS) } } @Test fun testTableDoesNotExist() { - val input = File("src/test/resources/wtf-trace").toURI().toURL() - val format = WtfTraceFormat() - val trace = format.open(input) + val path = Paths.get("src/test/resources/wtf-trace") - assertFalse(trace.containsTable("test")) - assertNull(trace.getTable("test")) + assertThrows { format.getDetails(path, "test") } } /** @@ -87,9 +60,8 @@ class WtfTraceFormatTest { */ @Test fun testTableReader() { - val input = File("src/test/resources/wtf-trace") - val trace = WtfTraceFormat().open(input.toURI().toURL()) - val reader = trace.getTable(TABLE_TASKS)!!.newReader() + val path = Paths.get("src/test/resources/wtf-trace") + val reader = format.newReader(path, TABLE_TASKS) assertAll( { assertTrue(reader.nextRow()) }, @@ -111,13 +83,4 @@ class WtfTraceFormatTest { reader.close() } - - @Test - fun testTableReaderPartition() { - val input = File("src/test/resources/wtf-trace").toURI().toURL() - val format = WtfTraceFormat() - val table = format.open(input).getTable(TABLE_TASKS)!! - - assertThrows { table.newReader("test") } - } } -- cgit v1.2.3 From 68ef3700ed2f69bcf0118bb69eda71e6b1f4d54f Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Tue, 21 Sep 2021 11:34:34 +0200 Subject: feat(trace): Add support for writing traces This change adds a new API for writing traces in a trace format. Currently, writing is only supported by the OpenDC VM format, but over time the other formats will also have support for writing added. --- .../src/main/kotlin/org/opendc/trace/Table.kt | 7 + .../main/kotlin/org/opendc/trace/TableWriter.kt | 151 +++++++++++++++++++++ .../src/main/kotlin/org/opendc/trace/Trace.kt | 30 +++- .../kotlin/org/opendc/trace/internal/TableImpl.kt | 3 + .../kotlin/org/opendc/trace/spi/TraceFormat.kt | 21 +++ .../org/opendc/trace/azure/AzureTraceFormat.kt | 8 ++ .../trace/bitbrains/BitbrainsExTraceFormat.kt | 8 ++ .../opendc/trace/bitbrains/BitbrainsTraceFormat.kt | 8 ++ .../kotlin/org/opendc/trace/gwf/GwfTraceFormat.kt | 8 ++ .../trace/opendc/OdcVmResourceStateTableWriter.kt | 123 +++++++++++++++++ .../trace/opendc/OdcVmResourceTableWriter.kt | 106 +++++++++++++++ .../org/opendc/trace/opendc/OdcVmTraceFormat.kt | 43 ++++++ .../kotlin/org/opendc/trace/swf/SwfTraceFormat.kt | 8 ++ opendc-trace/opendc-trace-tools/build.gradle.kts | 11 +- .../org/opendc/trace/tools/TraceConverter.kt | 82 +++++------ .../opendc/trace/wfformat/WfFormatTraceFormat.kt | 8 ++ .../kotlin/org/opendc/trace/wtf/WtfTraceFormat.kt | 8 ++ 17 files changed, 576 insertions(+), 57 deletions(-) create mode 100644 opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableWriter.kt create mode 100644 opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTableWriter.kt create mode 100644 opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTableWriter.kt (limited to 'opendc-trace') diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Table.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Table.kt index 031ee269..b0181cbc 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Table.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Table.kt @@ -45,4 +45,11 @@ public interface Table { * Open a [TableReader] for this table. */ public fun newReader(): TableReader + + /** + * Open a [TableWriter] for this table. + * + * @throws UnsupportedOperationException if writing is not supported by the table. + */ + public fun newWriter(): TableWriter } diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableWriter.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableWriter.kt new file mode 100644 index 00000000..423ce86a --- /dev/null +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/TableWriter.kt @@ -0,0 +1,151 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace + +/** + * Base class for writing workload traces. + */ +public interface TableWriter : AutoCloseable { + /** + * Start a new row in the table. + */ + public fun startRow() + + /** + * Flush the current row to the table. + */ + public fun endRow() + + /** + * Resolve the index of the specified [column] for this writer. + * + * @param column The column to lookup. + * @return The zero-based index of the column or a negative value if the column is not present in this table. + */ + public fun resolve(column: TableColumn<*>): Int + + /** + * Determine whether the [TableReader] supports the specified [column]. + */ + public fun hasColumn(column: TableColumn<*>): Boolean = resolve(column) >= 0 + + /** + * Set [column] to [value]. + * + * @param index The zero-based index of the column to set the value for. + * @param value The value to set the column to. + * @throws IllegalArgumentException if the column is not valid for this method. + */ + public fun set(index: Int, value: Any) + + /** + * Set [column] to boolean [value]. + * + * @param index The zero-based index of the column to set the value for. + * @param value The boolean value to set the column to. + * @throws IllegalArgumentException if the column is not valid for this method. + */ + public fun setBoolean(index: Int, value: Boolean) + + /** + * Set [column] to integer [value]. + * + * @param index The zero-based index of the column to set the value for. + * @param value The integer value to set the column to. + * @throws IllegalArgumentException if the column is not valid for this method. + */ + public fun setInt(index: Int, value: Int) + + /** + * Set [column] to long [value]. + * + * @param index The zero-based index of the column to set the value for. + * @param value The long value to set the column to. + * @throws IllegalArgumentException if the column is not valid for this method. + */ + public fun setLong(index: Int, value: Long) + + /** + * Set [column] to double [value]. + * + * @param index The zero-based index of the column to set the value for. + * @param value The double value to set the column to. + * @throws IllegalArgumentException if the column is not valid for this method. + */ + public fun setDouble(index: Int, value: Double) + + /** + * Set [column] to [value]. + * + * @param column The column to set the value for. + * @param value The value to set the column to. + * @throws IllegalArgumentException if the column is not valid for this method. + */ + public fun set(column: TableColumn, value: T): Unit = set(resolve(column), value) + + /** + * Set [column] to boolean [value]. + * + * @param column The column to set the value for. + * @param value The boolean value to set the column to. + * @throws IllegalArgumentException if the column is not valid for this method. + */ + public fun setBoolean(column: TableColumn, value: Boolean): Unit = setBoolean(resolve(column), value) + + /** + * Set [column] to integer [value]. + * + * @param column The column to set the value for. + * @param value The integer value to set the column to. + * @throws IllegalArgumentException if the column is not valid for this method. + */ + public fun setInt(column: TableColumn, value: Int): Unit = setInt(resolve(column), value) + + /** + * Set [column] to long [value]. + * + * @param column The column to set the value for. + * @param value The long value to set the column to. + * @throws IllegalArgumentException if the column is not valid for this method. + */ + public fun setLong(column: TableColumn, value: Long): Unit = setLong(resolve(column), value) + + /** + * Set [column] to double [value]. + * + * @param column The column to set the value for. + * @param value The double value to set the column to. + * @throws IllegalArgumentException if the column is not valid for this method. + */ + public fun setDouble(column: TableColumn, value: Double): Unit = setDouble(resolve(column), value) + + /** + * Flush any buffered content to the underlying target. + */ + public fun flush() + + /** + * Close the writer so that no more rows can be written. + */ + public override fun close() +} diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Trace.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Trace.kt index 6d0014cb..64e8f272 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Trace.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/Trace.kt @@ -51,21 +51,45 @@ public interface Trace { * Open a [Trace] at the specified [path] in the given [format]. * * @param path The path to the trace. + * @param format The format of the trace to open. * @throws IllegalArgumentException if [format] is not supported. */ - public fun open(path: File, format: String): Trace { - return open(path.toPath(), format) - } + @JvmStatic + public fun open(path: File, format: String): Trace = open(path.toPath(), format) /** * Open a [Trace] at the specified [path] in the given [format]. * * @param path The [Path] to the trace. + * @param format The format of the trace to open. * @throws IllegalArgumentException if [format] is not supported. */ + @JvmStatic public fun open(path: Path, format: String): Trace { val provider = requireNotNull(TraceFormat.byName(format)) { "Unknown format $format" } return TraceImpl(provider, path) } + + /** + * Create a [Trace] at the specified [path] in the given [format]. + * + * @param path The [Path] to the trace. + * @param format The format of the trace to create. + */ + @JvmStatic + public fun create(path: File, format: String): Trace = create(path.toPath(), format) + + /** + * Create a [Trace] at the specified [path] in the given [format]. + * + * @param path The [Path] to the trace. + * @param format The format of the trace to create. + */ + @JvmStatic + public fun create(path: Path, format: String): Trace { + val provider = requireNotNull(TraceFormat.byName(format)) { "Unknown format $format" } + provider.create(path) + return TraceImpl(provider, path) + } } } diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/internal/TableImpl.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/internal/TableImpl.kt index fd0a0f04..24551edb 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/internal/TableImpl.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/internal/TableImpl.kt @@ -25,6 +25,7 @@ package org.opendc.trace.internal import org.opendc.trace.Table import org.opendc.trace.TableColumn import org.opendc.trace.TableReader +import org.opendc.trace.TableWriter import java.util.* /** @@ -44,6 +45,8 @@ internal class TableImpl(val trace: TraceImpl, override val name: String) : Tabl override fun newReader(): TableReader = trace.format.newReader(trace.path, name) + override fun newWriter(): TableWriter = trace.format.newWriter(trace.path, name) + override fun toString(): String = "Table[name=$name]" override fun hashCode(): Int = Objects.hash(trace, name) diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt index e04dd948..f2e610db 100644 --- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt +++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt @@ -23,6 +23,7 @@ package org.opendc.trace.spi import org.opendc.trace.TableReader +import org.opendc.trace.TableWriter import java.nio.file.Path import java.util.* @@ -35,6 +36,15 @@ public interface TraceFormat { */ public val name: String + /** + * Construct an empty trace at [path]. + * + * @param path The path where to create the empty trace. + * @throws IllegalArgumentException If [path] is invalid. + * @throws UnsupportedOperationException If the table does not support trace creation. + */ + public fun create(path: Path) + /** * Return the name of the tables available in the trace at the specified [path]. * @@ -63,6 +73,17 @@ public interface TraceFormat { */ public fun newReader(path: Path, table: String): TableReader + /** + * Open a [TableWriter] for the specified [table]. + * + * @param path The path to the trace to open. + * @param table The name of the table to open a [TableWriter] for. + * @throws IllegalArgumentException If [table] does not exist. + * @throws UnsupportedOperationException If the format does not support writing. + * @return A [TableWriter] instance for the table. + */ + public fun newWriter(path: Path, table: String): TableWriter + /** * A helper object for resolving providers. */ diff --git a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureTraceFormat.kt b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureTraceFormat.kt index 77af0d81..253c7057 100644 --- a/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureTraceFormat.kt +++ b/opendc-trace/opendc-trace-azure/src/main/kotlin/org/opendc/trace/azure/AzureTraceFormat.kt @@ -50,6 +50,10 @@ public class AzureTraceFormat : TraceFormat { .enable(CsvParser.Feature.ALLOW_COMMENTS) .enable(CsvParser.Feature.TRIM_SPACES) + override fun create(path: Path) { + throw UnsupportedOperationException("Writing not supported for this format") + } + override fun getTables(path: Path): List = listOf(TABLE_RESOURCES, TABLE_RESOURCE_STATES) override fun getDetails(path: Path, table: String): TableDetails { @@ -83,6 +87,10 @@ public class AzureTraceFormat : TraceFormat { } } + override fun newWriter(path: Path, table: String): TableWriter { + throw UnsupportedOperationException("Writing not supported for this format") + } + /** * Construct a [TableReader] for reading over all VM CPU readings. */ diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExTraceFormat.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExTraceFormat.kt index 080b73de..20222c8a 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExTraceFormat.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsExTraceFormat.kt @@ -42,6 +42,10 @@ public class BitbrainsExTraceFormat : TraceFormat { */ override val name: String = "bitbrains-ex" + override fun create(path: Path) { + throw UnsupportedOperationException("Writing not supported for this format") + } + override fun getTables(path: Path): List = listOf(TABLE_RESOURCE_STATES) override fun getDetails(path: Path, table: String): TableDetails { @@ -74,6 +78,10 @@ public class BitbrainsExTraceFormat : TraceFormat { } } + override fun newWriter(path: Path, table: String): TableWriter { + throw UnsupportedOperationException("Writing not supported for this format") + } + /** * Construct a [TableReader] for reading over all resource state partitions. */ diff --git a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormat.kt b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormat.kt index 1573726f..3885c931 100644 --- a/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormat.kt +++ b/opendc-trace/opendc-trace-bitbrains/src/main/kotlin/org/opendc/trace/bitbrains/BitbrainsTraceFormat.kt @@ -50,6 +50,10 @@ public class BitbrainsTraceFormat : TraceFormat { .enable(CsvParser.Feature.ALLOW_COMMENTS) .enable(CsvParser.Feature.TRIM_SPACES) + override fun create(path: Path) { + throw UnsupportedOperationException("Writing not supported for this format") + } + override fun getTables(path: Path): List = listOf(TABLE_RESOURCES, TABLE_RESOURCE_STATES) override fun getDetails(path: Path, table: String): TableDetails { @@ -90,6 +94,10 @@ public class BitbrainsTraceFormat : TraceFormat { } } + override fun newWriter(path: Path, table: String): TableWriter { + throw UnsupportedOperationException("Writing not supported for this format") + } + /** * Construct a [TableReader] for reading over all resource state partitions. */ diff --git a/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTraceFormat.kt b/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTraceFormat.kt index 0f7b9d6e..d4287420 100644 --- a/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTraceFormat.kt +++ b/opendc-trace/opendc-trace-gwf/src/main/kotlin/org/opendc/trace/gwf/GwfTraceFormat.kt @@ -45,6 +45,10 @@ public class GwfTraceFormat : TraceFormat { .enable(CsvParser.Feature.ALLOW_COMMENTS) .enable(CsvParser.Feature.TRIM_SPACES) + override fun create(path: Path) { + throw UnsupportedOperationException("Writing not supported for this format") + } + override fun getTables(path: Path): List = listOf(TABLE_TASKS) override fun getDetails(path: Path, table: String): TableDetails { @@ -71,4 +75,8 @@ public class GwfTraceFormat : TraceFormat { else -> throw IllegalArgumentException("Table $table not supported") } } + + override fun newWriter(path: Path, table: String): TableWriter { + throw UnsupportedOperationException("Writing not supported for this format") + } } diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTableWriter.kt b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTableWriter.kt new file mode 100644 index 00000000..15a8cb85 --- /dev/null +++ b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceStateTableWriter.kt @@ -0,0 +1,123 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.opendc + +import org.apache.avro.Schema +import org.apache.avro.generic.GenericRecord +import org.apache.avro.generic.GenericRecordBuilder +import org.apache.parquet.hadoop.ParquetWriter +import org.opendc.trace.* +import java.time.Duration +import java.time.Instant + +/** + * A [TableWriter] implementation for the OpenDC virtual machine trace format. + */ +internal class OdcVmResourceStateTableWriter( + private val writer: ParquetWriter, + private val schema: Schema +) : TableWriter { + /** + * The current builder for the record that is being written. + */ + private var builder: GenericRecordBuilder? = null + + /** + * The fields belonging to the resource state schema. + */ + private val fields = schema.fields + + override fun startRow() { + builder = GenericRecordBuilder(schema) + } + + override fun endRow() { + val builder = checkNotNull(builder) { "No active row" } + this.builder = null + + val record = builder.build() + val id = record[COL_ID] as String + val timestamp = record[COL_TIMESTAMP] as Long + + check(lastId != id || timestamp >= lastTimestamp) { "Records need to be ordered by (id, timestamp)" } + + writer.write(builder.build()) + + lastId = id + lastTimestamp = timestamp + } + + override fun resolve(column: TableColumn<*>): Int { + val schema = schema + return when (column) { + RESOURCE_ID -> schema.getField("id").pos() + RESOURCE_STATE_TIMESTAMP -> (schema.getField("timestamp") ?: schema.getField("time")).pos() + RESOURCE_STATE_DURATION -> schema.getField("duration").pos() + RESOURCE_CPU_COUNT -> (schema.getField("cpu_count") ?: schema.getField("cores")).pos() + RESOURCE_STATE_CPU_USAGE -> (schema.getField("cpu_usage") ?: schema.getField("cpuUsage")).pos() + else -> -1 + } + } + + override fun set(index: Int, value: Any) { + val builder = checkNotNull(builder) { "No active row" } + + builder.set( + fields[index], + when (index) { + COL_TIMESTAMP -> (value as Instant).toEpochMilli() + COL_DURATION -> (value as Duration).toMillis() + else -> value + } + ) + } + + override fun setBoolean(index: Int, value: Boolean) = set(index, value) + + override fun setInt(index: Int, value: Int) = set(index, value) + + override fun setLong(index: Int, value: Long) = set(index, value) + + override fun setDouble(index: Int, value: Double) = set(index, value) + + override fun flush() { + // Not available + } + + override fun close() { + writer.close() + } + + /** + * Last column values that are used to check for correct partitioning. + */ + private var lastId: String? = null + private var lastTimestamp: Long = Long.MIN_VALUE + + /** + * Columns with special behavior. + */ + private val COL_ID = resolve(RESOURCE_ID) + private val COL_TIMESTAMP = resolve(RESOURCE_STATE_TIMESTAMP) + private val COL_DURATION = resolve(RESOURCE_STATE_DURATION) +} diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTableWriter.kt b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTableWriter.kt new file mode 100644 index 00000000..9cc6ca7d --- /dev/null +++ b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmResourceTableWriter.kt @@ -0,0 +1,106 @@ +/* + * Copyright (c) 2021 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.trace.opendc + +import org.apache.avro.Schema +import org.apache.avro.generic.GenericRecord +import org.apache.avro.generic.GenericRecordBuilder +import org.apache.parquet.hadoop.ParquetWriter +import org.opendc.trace.* +import java.time.Instant +import kotlin.math.roundToLong + +/** + * A [TableWriter] implementation for the OpenDC virtual machine trace format. + */ +internal class OdcVmResourceTableWriter( + private val writer: ParquetWriter, + private val schema: Schema +) : TableWriter { + /** + * The current builder for the record that is being written. + */ + private var builder: GenericRecordBuilder? = null + + /** + * The fields belonging to the resource schema. + */ + private val fields = schema.fields + + override fun startRow() { + builder = GenericRecordBuilder(schema) + } + + override fun endRow() { + val builder = checkNotNull(builder) { "No active row" } + this.builder = null + writer.write(builder.build()) + } + + override fun resolve(column: TableColumn<*>): Int { + val schema = schema + return when (column) { + RESOURCE_ID -> schema.getField("id").pos() + RESOURCE_START_TIME -> (schema.getField("start_time") ?: schema.getField("submissionTime")).pos() + RESOURCE_STOP_TIME -> (schema.getField("stop_time") ?: schema.getField("endTime")).pos() + RESOURCE_CPU_COUNT -> (schema.getField("cpu_count") ?: schema.getField("maxCores")).pos() + RESOURCE_MEM_CAPACITY -> (schema.getField("mem_capacity") ?: schema.getField("requiredMemory")).pos() + else -> -1 + } + } + + override fun set(index: Int, value: Any) { + val builder = checkNotNull(builder) { "No active row" } + builder.set( + fields[index], + when (index) { + COL_START_TIME, COL_STOP_TIME -> (value as Instant).toEpochMilli() + COL_MEM_CAPACITY -> (value as Double).roundToLong() + else -> value + } + ) + } + + override fun setBoolean(index: Int, value: Boolean) = set(index, value) + + override fun setInt(index: Int, value: Int) = set(index, value) + + override fun setLong(index: Int, value: Long) = set(index, value) + + override fun setDouble(index: Int, value: Double) = set(index, value) + + override fun flush() { + // Not available + } + + override fun close() { + writer.close() + } + + /** + * Columns with special behavior. + */ + private val COL_START_TIME = resolve(RESOURCE_START_TIME) + private val COL_STOP_TIME = resolve(RESOURCE_STOP_TIME) + private val COL_MEM_CAPACITY = resolve(RESOURCE_MEM_CAPACITY) +} diff --git a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmTraceFormat.kt b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmTraceFormat.kt index 29818147..9b32f8fd 100644 --- a/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmTraceFormat.kt +++ b/opendc-trace/opendc-trace-opendc/src/main/kotlin/org/opendc/trace/opendc/OdcVmTraceFormat.kt @@ -25,11 +25,16 @@ package org.opendc.trace.opendc import org.apache.avro.Schema import org.apache.avro.SchemaBuilder import org.apache.avro.generic.GenericRecord +import org.apache.parquet.avro.AvroParquetWriter +import org.apache.parquet.hadoop.ParquetFileWriter +import org.apache.parquet.hadoop.metadata.CompressionCodecName import org.opendc.trace.* import org.opendc.trace.spi.TableDetails import org.opendc.trace.spi.TraceFormat +import org.opendc.trace.util.parquet.LocalOutputFile import org.opendc.trace.util.parquet.LocalParquetReader import org.opendc.trace.util.parquet.TIMESTAMP_SCHEMA +import java.nio.file.Files import java.nio.file.Path /** @@ -41,6 +46,18 @@ public class OdcVmTraceFormat : TraceFormat { */ override val name: String = "opendc-vm" + override fun create(path: Path) { + // Construct directory containing the trace files + Files.createDirectory(path) + + val tables = getTables(path) + + for (table in tables) { + val writer = newWriter(path, table) + writer.close() + } + } + override fun getTables(path: Path): List = listOf(TABLE_RESOURCES, TABLE_RESOURCE_STATES) override fun getDetails(path: Path, table: String): TableDetails { @@ -82,6 +99,32 @@ public class OdcVmTraceFormat : TraceFormat { } } + override fun newWriter(path: Path, table: String): TableWriter { + return when (table) { + TABLE_RESOURCES -> { + val schema = RESOURCES_SCHEMA + val writer = AvroParquetWriter.builder(LocalOutputFile(path.resolve("meta.parquet"))) + .withSchema(schema) + .withCompressionCodec(CompressionCodecName.ZSTD) + .withWriteMode(ParquetFileWriter.Mode.OVERWRITE) + .build() + OdcVmResourceTableWriter(writer, schema) + } + TABLE_RESOURCE_STATES -> { + val schema = RESOURCE_STATES_SCHEMA + val writer = AvroParquetWriter.builder(LocalOutputFile(path.resolve("trace.parquet"))) + .withSchema(schema) + .withCompressionCodec(CompressionCodecName.ZSTD) + .withDictionaryEncoding("id", true) + .withBloomFilterEnabled("id", true) + .withWriteMode(ParquetFileWriter.Mode.OVERWRITE) + .build() + OdcVmResourceStateTableWriter(writer, schema) + } + else -> throw IllegalArgumentException("Table $table not supported") + } + } + public companion object { /** * Schema for the resources table in the trace. diff --git a/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTraceFormat.kt b/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTraceFormat.kt index 4cb7e49e..1fd076d5 100644 --- a/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTraceFormat.kt +++ b/opendc-trace/opendc-trace-swf/src/main/kotlin/org/opendc/trace/swf/SwfTraceFormat.kt @@ -36,6 +36,10 @@ import kotlin.io.path.bufferedReader public class SwfTraceFormat : TraceFormat { override val name: String = "swf" + override fun create(path: Path) { + throw UnsupportedOperationException("Writing not supported for this format") + } + override fun getTables(path: Path): List = listOf(TABLE_TASKS) override fun getDetails(path: Path, table: String): TableDetails { @@ -65,4 +69,8 @@ public class SwfTraceFormat : TraceFormat { else -> throw IllegalArgumentException("Table $table not supported") } } + + override fun newWriter(path: Path, table: String): TableWriter { + throw UnsupportedOperationException("Writing not supported for this format") + } } diff --git a/opendc-trace/opendc-trace-tools/build.gradle.kts b/opendc-trace/opendc-trace-tools/build.gradle.kts index 35190dba..14a0fc7c 100644 --- a/opendc-trace/opendc-trace-tools/build.gradle.kts +++ b/opendc-trace/opendc-trace-tools/build.gradle.kts @@ -29,19 +29,18 @@ plugins { } application { - mainClass.set("org.opendc.trace.tools.TraceConverterKt") + mainClass.set("org.opendc.trace.tools.TraceConverter") } dependencies { api(platform(projects.opendcPlatform)) - implementation(projects.opendcTrace.opendcTraceParquet) - implementation(projects.opendcTrace.opendcTraceOpendc) - implementation(projects.opendcTrace.opendcTraceAzure) - implementation(projects.opendcTrace.opendcTraceBitbrains) - + implementation(projects.opendcTrace.opendcTraceApi) implementation(libs.kotlin.logging) implementation(libs.clikt) + runtimeOnly(projects.opendcTrace.opendcTraceOpendc) + runtimeOnly(projects.opendcTrace.opendcTraceBitbrains) + runtimeOnly(projects.opendcTrace.opendcTraceAzure) runtimeOnly(libs.log4j.slf4j) } diff --git a/opendc-trace/opendc-trace-tools/src/main/kotlin/org/opendc/trace/tools/TraceConverter.kt b/opendc-trace/opendc-trace-tools/src/main/kotlin/org/opendc/trace/tools/TraceConverter.kt index cd5d287f..6fad43be 100644 --- a/opendc-trace/opendc-trace-tools/src/main/kotlin/org/opendc/trace/tools/TraceConverter.kt +++ b/opendc-trace/opendc-trace-tools/src/main/kotlin/org/opendc/trace/tools/TraceConverter.kt @@ -20,6 +20,7 @@ * SOFTWARE. */ +@file:JvmName("TraceConverter") package org.opendc.trace.tools import com.github.ajalt.clikt.core.CliktCommand @@ -29,25 +30,19 @@ import com.github.ajalt.clikt.parameters.groups.cooccurring import com.github.ajalt.clikt.parameters.options.* import com.github.ajalt.clikt.parameters.types.* import mu.KotlinLogging -import org.apache.avro.generic.GenericData -import org.apache.avro.generic.GenericRecordBuilder -import org.apache.parquet.avro.AvroParquetWriter -import org.apache.parquet.hadoop.ParquetWriter -import org.apache.parquet.hadoop.metadata.CompressionCodecName import org.opendc.trace.* -import org.opendc.trace.opendc.OdcVmTraceFormat -import org.opendc.trace.util.parquet.LocalOutputFile import java.io.File +import java.time.Duration +import java.time.Instant import java.util.* import kotlin.math.abs import kotlin.math.max import kotlin.math.min -import kotlin.math.roundToLong /** * A script to convert a trace in text format into a Parquet trace. */ -public fun main(args: Array): Unit = TraceConverterCli().main(args) +fun main(args: Array): Unit = TraceConverterCli().main(args) /** * Represents the command for converting traces @@ -74,10 +69,15 @@ internal class TraceConverterCli : CliktCommand(name = "trace-converter") { /** * The input format of the trace. */ - private val format by option("-f", "--format", help = "input format of trace") - .choice("bitbrains-ex", "bitbrains", "azure") + private val inputFormat by option("-f", "--input-format", help = "format of output trace") .required() + /** + * The format of the output trace. + */ + private val outputFormat by option("--output-format", help = "format of output trace") + .default("opendc-vm") + /** * The sampling options. */ @@ -94,17 +94,14 @@ internal class TraceConverterCli : CliktCommand(name = "trace-converter") { traceParquet.delete() } - val trace = Trace.open(input, format = format) + val inputTrace = Trace.open(input, format = inputFormat) + val outputTrace = Trace.create(output, format = outputFormat) logger.info { "Building resources table" } - val metaWriter = AvroParquetWriter.builder(LocalOutputFile(metaParquet)) - .withSchema(OdcVmTraceFormat.RESOURCES_SCHEMA) - .withCompressionCodec(CompressionCodecName.ZSTD) - .enablePageWriteChecksum() - .build() + val metaWriter = outputTrace.getTable(TABLE_RESOURCES)!!.newWriter() - val selectedVms = metaWriter.use { convertResources(trace, it) } + val selectedVms = metaWriter.use { convertResources(inputTrace, it) } if (selectedVms.isEmpty()) { logger.warn { "No VMs selected" } @@ -114,23 +111,16 @@ internal class TraceConverterCli : CliktCommand(name = "trace-converter") { logger.info { "Wrote ${selectedVms.size} rows" } logger.info { "Building resource states table" } - val writer = AvroParquetWriter.builder(LocalOutputFile(traceParquet)) - .withSchema(OdcVmTraceFormat.RESOURCE_STATES_SCHEMA) - .withCompressionCodec(CompressionCodecName.ZSTD) - .withDictionaryEncoding("id", true) - .withBloomFilterEnabled("id", true) - .withBloomFilterNDV("id", selectedVms.size.toLong()) - .enableValidation() - .build() + val writer = outputTrace.getTable(TABLE_RESOURCE_STATES)!!.newWriter() - val statesCount = writer.use { convertResourceStates(trace, it, selectedVms) } + val statesCount = writer.use { convertResourceStates(inputTrace, it, selectedVms) } logger.info { "Wrote $statesCount rows" } } /** * Convert the resources table for the trace. */ - private fun convertResources(trace: Trace, writer: ParquetWriter): Set { + private fun convertResources(trace: Trace, writer: TableWriter): Set { val random = samplingOptions?.let { Random(it.seed) } val samplingFraction = samplingOptions?.fraction ?: 1.0 val reader = checkNotNull(trace.getTable(TABLE_RESOURCE_STATES)).newReader() @@ -168,18 +158,16 @@ internal class TraceConverterCli : CliktCommand(name = "trace-converter") { continue } - val builder = GenericRecordBuilder(OdcVmTraceFormat.RESOURCES_SCHEMA) - - builder["id"] = id - builder["start_time"] = startTime - builder["stop_time"] = stopTime - builder["cpu_count"] = numCpus - builder["mem_capacity"] = max(memCapacity, memUsage).roundToLong() - logger.info { "Selecting VM $id" } - - writer.write(builder.build()) selectedVms.add(id) + + writer.startRow() + writer.set(RESOURCE_ID, id) + writer.set(RESOURCE_START_TIME, Instant.ofEpochMilli(startTime)) + writer.set(RESOURCE_STOP_TIME, Instant.ofEpochMilli(stopTime)) + writer.setInt(RESOURCE_CPU_COUNT, numCpus) + writer.setDouble(RESOURCE_MEM_CAPACITY, max(memCapacity, memUsage)) + writer.endRow() } return selectedVms @@ -188,7 +176,7 @@ internal class TraceConverterCli : CliktCommand(name = "trace-converter") { /** * Convert the resource states table for the trace. */ - private fun convertResourceStates(trace: Trace, writer: ParquetWriter, selectedVms: Set): Int { + private fun convertResourceStates(trace: Trace, writer: TableWriter, selectedVms: Set): Int { val reader = checkNotNull(trace.getTable(TABLE_RESOURCE_STATES)).newReader() var hasNextRow = reader.nextRow() @@ -231,15 +219,13 @@ internal class TraceConverterCli : CliktCommand(name = "trace-converter") { cpuCount == reader.getInt(RESOURCE_CPU_COUNT) } while (shouldContinue) - val builder = GenericRecordBuilder(OdcVmTraceFormat.RESOURCE_STATES_SCHEMA) - - builder["id"] = id - builder["timestamp"] = startTimestamp - builder["duration"] = duration - builder["cpu_count"] = cpuCount - builder["cpu_usage"] = cpuUsage - - writer.write(builder.build()) + writer.startRow() + writer.set(RESOURCE_ID, id) + writer.set(RESOURCE_STATE_TIMESTAMP, Instant.ofEpochMilli(startTimestamp)) + writer.set(RESOURCE_STATE_DURATION, Duration.ofMillis(duration)) + writer.setInt(RESOURCE_CPU_COUNT, cpuCount) + writer.setDouble(RESOURCE_STATE_CPU_USAGE, cpuUsage) + writer.endRow() count++ diff --git a/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTraceFormat.kt b/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTraceFormat.kt index 825c3d6d..c75e3cbb 100644 --- a/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTraceFormat.kt +++ b/opendc-trace/opendc-trace-wfformat/src/main/kotlin/org/opendc/trace/wfformat/WfFormatTraceFormat.kt @@ -39,6 +39,10 @@ public class WfFormatTraceFormat : TraceFormat { override val name: String = "wfformat" + override fun create(path: Path) { + throw UnsupportedOperationException("Writing not supported for this format") + } + override fun getTables(path: Path): List = listOf(TABLE_TASKS) override fun getDetails(path: Path, table: String): TableDetails { @@ -64,4 +68,8 @@ public class WfFormatTraceFormat : TraceFormat { else -> throw IllegalArgumentException("Table $table not supported") } } + + override fun newWriter(path: Path, table: String): TableWriter { + throw UnsupportedOperationException("Writing not supported for this format") + } } diff --git a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTraceFormat.kt b/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTraceFormat.kt index 2f17694f..ef88d295 100644 --- a/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTraceFormat.kt +++ b/opendc-trace/opendc-trace-wtf/src/main/kotlin/org/opendc/trace/wtf/WtfTraceFormat.kt @@ -35,6 +35,10 @@ import java.nio.file.Path public class WtfTraceFormat : TraceFormat { override val name: String = "wtf" + override fun create(path: Path) { + throw UnsupportedOperationException("Writing not supported for this format") + } + override fun getTables(path: Path): List = listOf(TABLE_TASKS) override fun getDetails(path: Path, table: String): TableDetails { @@ -67,4 +71,8 @@ public class WtfTraceFormat : TraceFormat { else -> throw IllegalArgumentException("Table $table not supported") } } + + override fun newWriter(path: Path, table: String): TableWriter { + throw UnsupportedOperationException("Writing not supported for this format") + } } -- cgit v1.2.3