commit 37e1490b5744690457c7d5179e5ea856bc9f83a9
Author: longfellowJian <779035789@qq.com>
Date: Thu Mar 27 13:52:42 2025 +0800
提交: 初始化github code
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3e759b7
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,330 @@
+## Ignore Visual Studio temporary files, build results, and
+## files generated by popular Visual Studio add-ons.
+##
+## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
+
+# User-specific files
+*.suo
+*.user
+*.userosscache
+*.sln.docstates
+
+# User-specific files (MonoDevelop/Xamarin Studio)
+*.userprefs
+
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+x86/
+bld/
+[Bb]in/
+[Oo]bj/
+[Ll]og/
+
+# Visual Studio 2015/2017 cache/options directory
+.vs/
+# Uncomment if you have tasks that create the project's static files in wwwroot
+#wwwroot/
+
+# Visual Studio 2017 auto generated files
+Generated\ Files/
+
+# MSTest test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+
+# NUNIT
+*.VisualState.xml
+TestResult.xml
+
+# Build Results of an ATL Project
+[Dd]ebugPS/
+[Rr]eleasePS/
+dlldata.c
+
+# Benchmark Results
+BenchmarkDotNet.Artifacts/
+
+# .NET Core
+project.lock.json
+project.fragment.lock.json
+artifacts/
+**/Properties/launchSettings.json
+
+# StyleCop
+StyleCopReport.xml
+
+# Files built by Visual Studio
+*_i.c
+*_p.c
+*_i.h
+*.ilk
+*.meta
+*.obj
+*.iobj
+*.pch
+*.pdb
+*.ipdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*.log
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.svclog
+*.scc
+
+# Chutzpah Test files
+_Chutzpah*
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opendb
+*.opensdf
+*.sdf
+*.cachefile
+*.VC.db
+*.VC.VC.opendb
+
+# Visual Studio profiler
+*.psess
+*.vsp
+*.vspx
+*.sap
+
+# Visual Studio Trace Files
+*.e2e
+
+# TFS 2012 Local Workspace
+$tf/
+
+# Guidance Automation Toolkit
+*.gpState
+
+# ReSharper is a .NET coding add-in
+_ReSharper*/
+*.[Rr]e[Ss]harper
+*.DotSettings.user
+
+# JustCode is a .NET coding add-in
+.JustCode
+
+# TeamCity is a build add-in
+_TeamCity*
+
+# DotCover is a Code Coverage Tool
+*.dotCover
+
+# AxoCover is a Code Coverage Tool
+.axoCover/*
+!.axoCover/settings.json
+
+# Visual Studio code coverage results
+*.coverage
+*.coveragexml
+
+# NCrunch
+_NCrunch_*
+.*crunch*.local.xml
+nCrunchTemp_*
+
+# MightyMoose
+*.mm.*
+AutoTest.Net/
+
+# Web workbench (sass)
+.sass-cache/
+
+# Installshield output folder
+[Ee]xpress/
+
+# DocProject is a documentation generator add-in
+DocProject/buildhelp/
+DocProject/Help/*.HxT
+DocProject/Help/*.HxC
+DocProject/Help/*.hhc
+DocProject/Help/*.hhk
+DocProject/Help/*.hhp
+DocProject/Help/Html2
+DocProject/Help/html
+
+# Click-Once directory
+publish/
+
+# Publish Web Output
+*.[Pp]ublish.xml
+*.azurePubxml
+# Note: Comment the next line if you want to checkin your web deploy settings,
+# but database connection strings (with potential passwords) will be unencrypted
+*.pubxml
+*.publishproj
+
+# Microsoft Azure Web App publish settings. Comment the next line if you want to
+# checkin your Azure Web App publish settings, but sensitive information contained
+# in these scripts will be unencrypted
+PublishScripts/
+
+# NuGet Packages
+*.nupkg
+# The packages folder can be ignored because of Package Restore
+**/[Pp]ackages/*
+# except build/, which is used as an MSBuild target.
+!**/[Pp]ackages/build/
+# Uncomment if necessary however generally it will be regenerated when needed
+#!**/[Pp]ackages/repositories.config
+# NuGet v3's project.json files produces more ignorable files
+*.nuget.props
+*.nuget.targets
+
+# Microsoft Azure Build Output
+csx/
+*.build.csdef
+
+# Microsoft Azure Emulator
+ecf/
+rcf/
+
+# Windows Store app package directories and files
+AppPackages/
+BundleArtifacts/
+Package.StoreAssociation.xml
+_pkginfo.txt
+*.appx
+
+# Visual Studio cache files
+# files ending in .cache can be ignored
+*.[Cc]ache
+# but keep track of directories ending in .cache
+!*.[Cc]ache/
+
+# Others
+ClientBin/
+~$*
+*~
+*.dbmdl
+*.dbproj.schemaview
+*.jfm
+*.pfx
+*.publishsettings
+orleans.codegen.cs
+
+# Including strong name files can present a security risk
+# (https://github.com/github/gitignore/pull/2483#issue-259490424)
+#*.snk
+
+# Since there are multiple workflows, uncomment next line to ignore bower_components
+# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
+#bower_components/
+
+# RIA/Silverlight projects
+Generated_Code/
+
+# Backup & report files from converting an old project file
+# to a newer Visual Studio version. Backup files are not needed,
+# because we have git ;-)
+_UpgradeReport_Files/
+Backup*/
+UpgradeLog*.XML
+UpgradeLog*.htm
+ServiceFabricBackup/
+*.rptproj.bak
+
+# SQL Server files
+*.mdf
+*.ldf
+*.ndf
+
+# Business Intelligence projects
+*.rdl.data
+*.bim.layout
+*.bim_*.settings
+*.rptproj.rsuser
+
+# Microsoft Fakes
+FakesAssemblies/
+
+# GhostDoc plugin setting file
+*.GhostDoc.xml
+
+# Node.js Tools for Visual Studio
+.ntvs_analysis.dat
+node_modules/
+
+# Visual Studio 6 build log
+*.plg
+
+# Visual Studio 6 workspace options file
+*.opt
+
+# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
+*.vbw
+
+# Visual Studio LightSwitch build output
+**/*.HTMLClient/GeneratedArtifacts
+**/*.DesktopClient/GeneratedArtifacts
+**/*.DesktopClient/ModelManifest.xml
+**/*.Server/GeneratedArtifacts
+**/*.Server/ModelManifest.xml
+_Pvt_Extensions
+
+# Paket dependency manager
+.paket/paket.exe
+paket-files/
+
+# FAKE - F# Make
+.fake/
+
+# JetBrains Rider
+.idea/
+*.sln.iml
+
+# CodeRush
+.cr/
+
+# Python Tools for Visual Studio (PTVS)
+__pycache__/
+*.pyc
+
+# Cake - Uncomment if you are using it
+# tools/**
+# !tools/packages.config
+
+# Tabs Studio
+*.tss
+
+# Telerik's JustMock configuration file
+*.jmconfig
+
+# BizTalk build output
+*.btp.cs
+*.btm.cs
+*.odx.cs
+*.xsd.cs
+
+# OpenCover UI analysis results
+OpenCover/
+
+# Azure Stream Analytics local run output
+ASALocalRun/
+
+# MSBuild Binary and Structured Log
+*.binlog
+
+# NVidia Nsight GPU debugger configuration file
+*.nvuser
+
+# MFractors (Xamarin productivity tool) working folder
+.mfractor/
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..3a7e768
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 月夜
+
+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/README.md b/README.md
new file mode 100644
index 0000000..a755169
--- /dev/null
+++ b/README.md
@@ -0,0 +1,4 @@
+# MsAnalyzeDemo
+安捷伦气相色谱质谱数据解析测试。
+
+目前对于.MS文件解析已经实现,色谱、质谱点等数据的提取。
diff --git a/data/DATA110109.MS b/data/DATA110109.MS
new file mode 100644
index 0000000..94aee2e
Binary files /dev/null and b/data/DATA110109.MS differ
diff --git a/data/tic_front110119.csv b/data/tic_front110119.csv
new file mode 100644
index 0000000..6bfcc19
--- /dev/null
+++ b/data/tic_front110119.csv
@@ -0,0 +1,7215 @@
+D:\DATA\HB\201911\2019110109.D 1 Nov 19 10:03 pm,
+Start of data points,
+3.0868,127
+3.09048,127
+3.09417,127
+3.09785,125
+3.10152,127
+3.1052,127
+3.10888,128
+3.11257,127
+3.11625,126
+3.11993,125
+3.12362,123
+3.1273,125
+3.13098,123
+3.13465,123
+3.13833,123
+3.14202,126
+3.1457,125
+3.14938,124
+3.15307,124
+3.15675,122
+3.16043,121
+3.16412,124
+3.16778,123
+3.17147,123
+3.17515,124
+3.17883,122
+3.18252,121
+3.1862,123
+3.18988,123
+3.19357,121
+3.19725,124
+3.20092,121
+3.2046,119
+3.20828,121
+3.21197,122
+3.21565,120
+3.21933,120
+3.22302,120
+3.2267,120
+3.23038,120
+ ,117
+3.23773,123
+3.24142,117
+3.2451,120
+3.24878,120
+3.25247,118
+3.25615,121
+3.25983,121
+3.26352,121
+3.26718,120
+3.27087,122
+3.27455,119
+3.27823,119
+3.28192,121
+3.2856,122
+3.28928,119
+3.29297,120
+3.29665,120
+3.30032,119
+3.304,119
+3.30768,119
+3.31137,119
+3.31505,120
+3.31873,119
+3.32242,120
+3.3261,120
+3.32978,118
+3.33345,120
+3.33713,119
+3.34082,119
+3.3445,119
+3.34818,119
+3.35187,121
+3.35555,120
+3.35923,120
+3.36292,119
+3.36658,121
+3.37027,119
+3.37395,116
+3.37763,121
+3.38132,117
+3.385,120
+3.38868,119
+3.39237,117
+3.39605,117
+3.39972,117
+3.4034,119
+3.40708,119
+3.41077,119
+3.41445,119
+3.41813,121
+3.42182,120
+3.4255,121
+3.42918,119
+3.43287,120
+3.43653,122
+3.44022,120
+3.4439,122
+3.44758,119
+3.45127,122
+3.45495,118
+3.45863,121
+3.46232,121
+3.466,120
+3.46967,119
+3.47335,122
+3.47703,121
+3.48072,120
+3.4844,118
+3.48808,118
+3.49177,120
+3.49545,120
+3.49913,119
+3.5028,118
+3.50648,120
+3.51017,119
+3.51385,122
+3.51753,117
+3.52122,120
+3.5249,122
+3.52858,118
+3.53227,119
+3.53593,118
+3.53962,119
+3.5433,118
+3.54698,119
+3.55067,118
+3.55435,118
+3.55803,120
+3.56172,119
+3.5654,118
+3.56907,119
+3.57275,120
+3.57643,120
+3.58012,118
+3.5838,117
+3.58748,117
+3.59117,119
+3.59485,118
+3.59853,117
+3.6022,118
+3.60588,119
+3.60957,117
+3.61325,120
+3.61693,121
+3.62062,119
+3.6243,119
+3.62798,119
+3.63167,117
+3.63533,118
+3.63902,120
+3.6427,117
+3.64638,118
+3.65007,117
+3.65375,117
+3.65743,121
+3.66112,118
+3.6648,118
+3.66847,119
+3.67215,118
+3.67583,118
+3.67952,120
+3.6832,122
+3.68688,125
+3.69057,128
+3.69425,131
+3.69793,130
+3.7016,127
+3.70528,127
+3.70897,125
+3.71265,124
+3.71633,124
+3.72002,124
+3.7237,124
+3.72738,124
+3.73107,125
+3.73473,122
+3.73842,124
+3.7421,125
+3.74578,124
+3.74947,126
+3.75315,123
+3.75683,125
+3.76052,124
+3.7642,125
+3.76788,122
+3.77155,123
+3.77523,121
+3.77892,124
+3.7826,123
+3.78628,123
+3.78997,122
+3.79365,124
+3.79733,122
+3.80102,122
+3.80468,120
+3.80837,121
+3.81205,119
+3.81573,121
+3.81942,122
+3.8231,119
+3.82678,119
+3.83047,119
+3.83415,122
+3.83782,120
+3.8415,120
+3.84518,118
+3.84887,117
+3.85255,119
+3.85623,116
+3.85992,119
+3.8636,119
+3.86728,119
+3.87095,119
+3.87463,121
+3.87832,118
+3.882,119
+3.88568,118
+3.88937,119
+3.89305,118
+3.89673,119
+3.90042,115
+3.90408,117
+3.90777,118
+3.91145,118
+3.91513,115
+3.91882,118
+3.9225,117
+3.92618,120
+3.92987,118
+3.93355,118
+3.93722,116
+3.9409,119
+3.94458,117
+3.94827,118
+3.95195,117
+3.95563,117
+3.95932,117
+3.963,118
+3.96668,118
+3.97035,117
+3.97403,116
+3.97772,118
+3.9814,119
+3.98508,116
+3.98877,117
+3.99245,117
+3.99613,120
+3.99982,119
+4.00348,118
+4.00717,120
+4.01085,115
+4.01453,117
+4.01822,117
+4.0219,119
+4.02558,118
+4.02927,119
+4.03295,119
+4.03662,122
+4.0403,120
+4.04398,119
+4.04767,120
+4.05135,118
+4.05503,118
+4.05872,117
+4.0624,117
+4.06608,119
+4.06975,118
+4.07343,118
+4.07712,118
+4.0808,118
+4.08448,117
+4.08817,118
+4.09185,118
+4.09553,119
+4.09922,120
+4.1029,116
+4.10657,119
+4.11025,115
+4.11393,119
+4.11762,118
+4.1213,116
+4.12498,117
+4.12867,117
+4.13235,119
+4.13603,116
+4.1397,117
+4.14338,120
+4.14707,116
+4.15075,117
+4.15443,119
+4.15812,116
+4.1618,117
+4.16548,120
+4.16917,117
+4.17283,117
+4.17652,117
+4.1802,118
+4.18388,117
+4.18757,119
+4.19125,117
+4.19493,119
+4.19862,117
+4.2023,117
+4.20597,117
+4.20965,118
+4.21333,119
+4.21702,118
+4.2207,118
+4.22438,117
+4.22807,118
+4.23175,118
+4.23543,118
+4.2391,117
+4.24278,118
+4.24647,118
+4.25015,117
+4.25383,117
+4.25752,116
+4.2612,117
+4.26488,119
+4.26857,118
+4.27223,117
+4.27592,118
+4.2796,118
+4.28328,119
+4.28697,120
+4.29065,119
+4.29433,119
+4.29802,120
+4.3017,117
+4.30537,119
+4.30905,120
+4.31273,120
+4.31642,119
+4.3201,118
+4.32378,118
+4.32747,118
+4.33115,118
+4.33483,119
+4.3385,117
+4.34218,117
+4.34587,118
+4.34955,119
+4.35323,118
+4.35692,118
+4.3606,117
+4.36428,118
+4.36797,119
+4.37163,118
+4.37532,118
+4.379,118
+4.38268,117
+4.38637,116
+4.39005,119
+4.39373,117
+4.39742,119
+4.4011,118
+4.40477,118
+4.40845,118
+4.41213,116
+4.41582,118
+4.4195,119
+4.42318,119
+4.42687,118
+4.43055,118
+4.43423,119
+4.4379,118
+4.44158,118
+4.44527,119
+4.44895,117
+4.45263,119
+4.45632,118
+4.46,118
+4.46368,116
+4.46737,120
+4.47105,125
+4.47472,147
+4.4784,217
+4.48208,377
+4.48577,656
+4.48945,1013
+4.49313,1335
+4.49682,1486
+4.5005,1463
+4.50418,1381
+4.50785,1215
+4.51153,1072
+4.51522,960
+4.5189,844
+4.52258,763
+4.52627,701
+4.52995,655
+4.53363,585
+4.53732,536
+4.54098,509
+4.54467,475
+4.54835,449
+4.55203,422
+4.55572,400
+4.5594,386
+4.56308,375
+4.56677,360
+4.57045,340
+4.57412,328
+4.5778,309
+4.58148,290
+4.58517,275
+4.58885,254
+4.59253,238
+4.59622,216
+4.5999,197
+4.60358,180
+4.60725,167
+4.61093,155
+4.61462,151
+4.6183,146
+4.62198,144
+4.62567,139
+4.62935,135
+4.63303,137
+4.63672,136
+4.64038,131
+4.64407,132
+4.64775,132
+4.65143,131
+4.65512,129
+4.6588,130
+4.66248,128
+4.66617,128
+4.66985,127
+4.67352,128
+4.6772,126
+4.68088,128
+4.68457,124
+4.68825,126
+4.69193,125
+4.69562,124
+4.6993,125
+4.70298,125
+4.70665,125
+4.71033,125
+4.71402,125
+4.7177,126
+4.72138,125
+4.72507,124
+4.72875,125
+4.73243,122
+4.73612,122
+4.73978,123
+4.74347,124
+4.74715,124
+4.75083,124
+4.75452,122
+4.7582,121
+4.76188,123
+4.76557,125
+4.76925,125
+4.77292,122
+4.7766,123
+4.78028,121
+4.78397,121
+4.78765,122
+4.79133,120
+4.79502,120
+4.7987,121
+4.80238,123
+4.80607,120
+4.80973,121
+4.81342,120
+4.8171,122
+4.82078,122
+4.82447,121
+4.82815,120
+4.83183,120
+4.83552,120
+4.8392,121
+4.84287,120
+4.84655,120
+4.85023,119
+4.85392,120
+4.8576,120
+4.86128,119
+4.86497,120
+4.86865,119
+4.87233,122
+4.876,120
+4.87968,120
+4.88337,119
+4.88705,117
+4.89073,119
+4.89442,116
+4.8981,118
+4.90178,120
+4.90547,120
+4.90913,118
+4.91282,119
+4.9165,120
+4.92018,118
+4.92387,120
+4.92755,118
+4.93123,121
+4.93492,117
+4.9386,118
+4.94227,119
+4.94595,120
+4.94963,120
+4.95332,121
+4.957,119
+4.96068,121
+4.96437,120
+4.96805,117
+4.97173,119
+4.9754,119
+4.97908,118
+4.98277,116
+4.98645,119
+4.99013,119
+4.99382,119
+4.9975,120
+5.00118,117
+5.00487,118
+5.00853,120
+5.01222,117
+5.0159,121
+5.01958,116
+5.02327,119
+5.02695,117
+5.03063,116
+5.03432,120
+5.038,118
+5.04167,117
+5.04535,118
+5.04903,118
+5.05272,116
+5.0564,119
+5.06008,117
+5.06377,117
+5.06745,119
+5.07113,118
+5.0748,119
+5.07848,119
+5.08217,116
+5.08585,119
+5.08953,118
+5.09322,120
+5.0969,122
+5.10058,126
+5.10427,131
+5.10793,127
+5.11162,126
+5.1153,126
+5.11898,123
+5.12267,120
+5.12635,120
+5.13003,122
+5.13372,122
+5.1374,122
+5.14107,122
+5.14475,120
+5.14843,123
+5.15212,121
+5.1558,120
+5.15948,119
+5.16317,120
+5.16685,118
+5.17053,120
+5.17422,117
+5.17788,119
+5.18157,121
+5.18525,118
+5.18893,121
+5.19262,120
+5.1963,121
+5.19998,119
+5.20367,119
+5.20735,119
+5.21102,117
+5.2147,118
+5.21838,119
+5.22207,119
+5.22575,119
+5.22943,119
+5.23312,119
+5.2368,118
+5.24048,119
+5.24415,118
+5.24783,119
+5.25152,118
+5.2552,118
+5.25888,119
+5.26257,118
+5.26625,119
+5.26993,118
+5.27362,119
+5.27728,117
+5.28097,118
+5.28465,116
+5.28833,119
+5.29202,121
+5.2957,118
+5.29938,119
+5.30307,117
+5.30675,120
+5.31042,120
+5.3141,118
+5.31778,119
+5.32147,119
+5.32515,118
+5.32883,116
+5.33252,119
+5.3362,117
+5.33988,117
+5.34355,118
+5.34723,117
+5.35092,118
+5.3546,117
+5.35828,117
+5.36197,116
+5.36565,117
+5.36933,117
+5.37302,117
+5.37668,116
+5.38037,120
+5.38405,118
+5.38773,118
+5.39142,120
+5.3951,116
+5.39878,117
+5.40247,116
+5.40615,118
+5.40982,119
+5.4135,117
+5.41718,120
+5.42087,123
+5.42455,129
+5.42823,137
+5.43192,141
+5.4356,137
+5.43928,132
+5.44295,128
+5.44663,121
+5.45032,121
+5.454,120
+5.45768,118
+5.46137,117
+5.46505,119
+5.46873,118
+5.47242,116
+5.47608,117
+5.47977,118
+5.48345,119
+5.48713,118
+5.49082,120
+5.4945,120
+5.49818,125
+5.50187,127
+5.50555,127
+5.50923,126
+5.5129,126
+5.51658,122
+5.52027,120
+5.52395,118
+5.52763,118
+5.53132,118
+5.535,117
+5.53868,119
+5.54237,119
+5.54603,116
+5.54972,118
+5.5534,118
+5.55708,118
+5.56077,116
+5.56445,116
+5.56813,116
+5.57182,117
+5.5755,119
+5.57917,120
+5.58285,117
+5.58653,119
+5.59022,120
+5.5939,119
+5.59758,120
+5.60127,121
+5.60495,121
+5.60863,117
+5.6123,117
+5.61598,118
+5.61967,118
+5.62335,118
+5.62703,117
+5.63072,118
+5.6344,118
+5.63808,119
+5.64177,117
+5.64543,117
+5.64912,118
+5.6528,118
+5.65648,117
+5.66017,118
+5.66385,118
+5.66753,119
+5.67122,118
+5.6749,121
+5.67857,119
+5.68225,117
+5.68593,119
+5.68962,117
+5.6933,119
+5.69698,118
+5.70067,117
+5.70435,118
+5.70803,117
+5.7117,117
+5.71538,117
+5.71907,117
+5.72275,119
+5.72643,117
+5.73012,118
+5.7338,116
+5.73748,118
+5.74117,117
+5.74483,118
+5.74852,118
+5.7522,115
+5.75588,119
+5.75957,119
+5.76325,119
+5.76693,118
+5.77062,115
+5.7743,115
+5.77797,118
+5.78165,117
+5.78533,118
+5.78902,115
+5.7927,117
+5.79638,116
+5.80007,120
+5.80375,119
+5.80743,118
+5.8111,118
+5.81478,119
+5.81847,115
+5.82215,120
+5.82583,117
+5.82952,118
+5.8332,117
+5.83688,117
+5.84057,115
+5.84423,115
+5.84792,116
+5.8516,116
+5.85528,116
+5.85897,115
+5.86265,116
+5.86633,116
+5.87002,115
+5.8737,117
+5.87738,118
+5.88105,115
+5.88473,113
+5.88842,116
+5.8921,117
+5.89578,116
+5.89947,114
+5.90315,115
+5.90683,115
+5.91052,116
+5.91418,116
+5.91787,115
+5.92155,116
+5.92523,118
+5.92892,116
+5.9326,117
+5.93628,117
+5.93997,116
+5.94365,115
+5.94732,118
+5.951,117
+5.95468,118
+5.95837,117
+5.96205,119
+5.96573,116
+5.96942,119
+5.9731,118
+5.97678,117
+5.98045,117
+5.98413,116
+5.98782,115
+5.9915,115
+5.99518,115
+5.99887,116
+6.00255,115
+6.00623,117
+6.00992,118
+6.01358,116
+6.01727,117
+6.02095,116
+6.02463,116
+6.02832,115
+6.032,117
+6.03568,117
+6.03937,117
+6.04305,115
+6.04672,117
+6.0504,117
+6.05408,117
+6.05777,118
+6.06145,118
+6.06513,116
+6.06882,114
+6.0725,115
+6.07618,116
+6.07985,116
+6.08353,115
+6.08722,117
+6.0909,115
+6.09458,115
+6.09827,118
+6.10195,112
+6.10563,118
+6.10932,117
+6.11298,116
+6.11667,117
+6.12035,116
+6.12403,117
+6.12772,115
+6.1314,116
+6.13508,118
+6.13877,119
+6.14245,118
+6.14612,118
+6.1498,115
+6.15348,116
+6.15717,116
+6.16085,117
+6.16453,116
+6.16822,117
+6.1719,115
+6.17558,118
+6.17925,117
+6.18293,121
+6.18662,118
+6.1903,119
+6.19398,117
+6.19767,116
+6.20135,117
+6.20503,116
+6.20872,117
+6.2124,114
+6.21607,116
+6.21975,117
+6.22343,115
+6.22712,116
+6.2308,115
+6.23448,113
+6.23817,114
+6.24185,115
+6.24553,117
+6.2492,114
+6.25288,116
+6.25657,116
+6.26025,114
+6.26393,116
+6.26762,117
+6.2713,117
+6.27498,119
+6.27867,115
+6.28233,115
+6.28602,114
+6.2897,117
+6.29338,117
+6.29707,117
+6.30075,116
+6.30443,113
+6.30812,115
+6.3118,116
+6.31547,116
+6.31915,116
+6.32283,114
+6.32652,116
+6.3302,114
+6.33388,115
+6.33757,114
+6.34125,115
+6.34493,117
+6.3486,114
+6.35228,116
+6.35597,117
+6.35965,119
+6.36333,114
+6.36702,118
+6.3707,116
+6.37438,116
+6.37807,117
+6.38173,116
+6.38542,117
+6.3891,118
+6.39278,113
+6.39647,116
+6.40015,116
+6.40383,115
+6.40752,116
+6.4112,115
+6.41487,117
+6.41855,117
+6.42223,114
+6.42592,117
+6.4296,115
+6.43328,117
+6.43697,116
+6.44065,115
+6.44433,116
+6.448,118
+6.45168,116
+6.45537,116
+6.45905,116
+6.46273,115
+6.46642,117
+6.4701,118
+6.47378,115
+6.47747,116
+6.48113,115
+6.48482,115
+6.4885,116
+6.49218,116
+6.49587,117
+6.49955,116
+6.50323,114
+6.50692,119
+6.5106,114
+6.51427,120
+6.51795,117
+6.52163,113
+6.52532,115
+6.529,116
+6.53268,115
+6.53637,116
+6.54005,116
+6.54373,114
+6.5474,114
+6.55108,114
+6.55477,113
+6.55845,117
+6.56213,116
+6.56582,115
+6.5695,115
+6.57318,116
+6.57687,117
+6.58055,115
+6.58422,115
+6.5879,115
+6.59158,117
+6.59527,114
+6.59895,116
+6.60263,117
+6.60632,117
+6.61,116
+6.61368,116
+6.61735,117
+6.62103,113
+6.62472,115
+6.6284,117
+6.63208,113
+6.63577,117
+6.63945,117
+6.64313,116
+6.64682,115
+6.65048,117
+6.65417,114
+6.65785,117
+6.66153,116
+6.66522,115
+6.6689,115
+6.67258,115
+6.67627,117
+6.67995,117
+6.68362,117
+6.6873,115
+6.69098,116
+6.69467,117
+6.69835,117
+6.70203,115
+6.70572,117
+6.7094,113
+6.71308,114
+6.71675,117
+6.72043,116
+6.72412,119
+6.7278,116
+6.73148,118
+6.73517,116
+6.73885,115
+6.74253,116
+6.74622,115
+6.74988,116
+6.75357,116
+6.75725,115
+6.76093,115
+6.76462,118
+6.7683,116
+6.77198,115
+6.77567,116
+6.77935,115
+6.78302,116
+6.7867,116
+6.79038,117
+6.79407,117
+6.79775,116
+6.80143,119
+6.80512,116
+6.8088,115
+6.81248,115
+6.81615,115
+6.81983,116
+6.82352,115
+6.8272,113
+6.83088,116
+6.83457,118
+6.83825,117
+6.84193,118
+6.84562,117
+6.84928,117
+6.85297,118
+6.85665,116
+6.86033,117
+6.86402,117
+6.8677,117
+6.87138,114
+6.87507,115
+6.87875,116
+6.88242,116
+6.8861,115
+6.88978,115
+6.89347,114
+6.89715,115
+6.90083,115
+6.90452,107
+6.9082,105
+6.91188,108
+6.91557,107
+6.91923,107
+6.92292,107
+6.9266,111
+6.93028,108
+6.93397,111
+6.93765,109
+6.94133,110
+6.94502,115
+6.9487,124
+6.95237,145
+6.95605,195
+6.95973,291
+6.96342,437
+6.9671,634
+6.97078,867
+6.97447,1051
+6.97815,1211
+6.98183,1258
+6.9855,1236
+6.98918,1143
+6.99287,1003
+6.99655,863
+7.00023,720
+7.00392,606
+7.0076,491
+7.01128,396
+7.01497,322
+7.01863,269
+7.02232,233
+7.026,208
+7.02968,187
+7.03337,174
+7.03705,168
+7.04073,156
+7.04442,148
+7.0481,148
+7.05177,142
+7.05545,138
+7.05913,135
+7.06282,134
+7.0665,130
+7.07018,131
+7.07387,131
+7.07755,131
+7.08123,127
+7.0849,123
+7.08858,127
+7.09227,126
+7.09595,126
+7.09963,122
+7.10332,124
+7.107,121
+7.11068,121
+7.11437,121
+7.11803,119
+7.12172,121
+7.1254,117
+7.12908,120
+7.13277,119
+7.13645,120
+7.14013,118
+7.14382,117
+7.1475,117
+7.15117,115
+7.15485,116
+7.15853,115
+7.16222,115
+7.1659,115
+7.16958,114
+7.17327,114
+7.17695,117
+7.18063,115
+7.1843,119
+7.18798,120
+7.19167,121
+7.19535,122
+7.19903,121
+7.20272,118
+7.2064,118
+7.21008,112
+7.21377,114
+7.21743,113
+7.22112,112
+7.2248,111
+7.22848,112
+7.23217,112
+7.23585,112
+7.23953,113
+7.24322,112
+7.2469,112
+7.25057,111
+7.25425,112
+7.25793,111
+7.26162,112
+7.2653,112
+7.26898,112
+7.27267,112
+7.27635,114
+7.28003,112
+7.28372,112
+7.28738,113
+7.29107,113
+7.29475,112
+7.29843,113
+7.30212,110
+7.3058,119
+7.30948,116
+7.31317,116
+7.31685,117
+7.32052,118
+7.3242,119
+7.32788,130
+7.33157,150
+7.33525,206
+7.33893,295
+7.34262,452
+7.3463,679
+7.34998,956
+7.35365,1245
+7.35733,1502
+7.36102,1633
+7.3647,1646
+7.36838,1549
+7.37207,1377
+7.37575,1153
+7.37943,918
+7.38312,724
+7.38678,563
+7.39047,429
+7.39415,328
+7.39783,269
+7.40152,230
+7.4052,198
+7.40888,182
+7.41257,169
+7.41625,162
+7.41992,154
+7.4236,153
+7.42728,148
+7.43097,143
+7.43465,141
+7.43833,139
+7.44202,136
+7.4457,137
+7.44938,134
+7.45305,131
+7.45673,130
+7.46042,128
+7.4641,130
+7.46778,129
+7.47147,127
+7.47515,129
+7.47883,127
+7.48252,124
+7.48618,125
+7.48987,123
+7.49355,124
+7.49723,122
+7.50092,121
+7.5046,123
+7.50828,120
+7.51197,121
+7.51565,122
+7.51932,121
+7.523,122
+7.52668,120
+7.53037,121
+7.53405,124
+7.53773,120
+7.54142,120
+7.5451,119
+7.54878,121
+7.55245,121
+7.55613,120
+7.55982,119
+7.5635,119
+7.56718,118
+7.57087,121
+7.57455,121
+7.57823,120
+7.58192,119
+7.58558,119
+7.58927,118
+7.59295,118
+7.59663,115
+7.60032,117
+7.604,117
+7.60768,118
+7.61137,115
+7.61505,114
+7.61873,115
+7.6224,118
+7.62608,114
+7.62977,116
+7.63345,117
+7.63713,118
+7.64082,114
+7.6445,117
+7.64818,115
+7.65187,116
+7.65553,117
+7.65922,116
+7.6629,115
+7.66658,118
+7.67027,116
+7.67395,115
+7.67763,118
+7.68132,115
+7.685,117
+7.68867,116
+7.69235,116
+7.69603,117
+7.69972,117
+7.7034,116
+7.70708,116
+7.71077,116
+7.71445,117
+7.71813,114
+7.7218,113
+7.72548,115
+7.72917,117
+7.73285,116
+7.73653,117
+7.74022,116
+7.7439,117
+7.74758,116
+7.75127,118
+7.75493,114
+7.75862,116
+7.7623,116
+7.76598,116
+7.76967,113
+7.77335,115
+7.77703,112
+7.78072,114
+7.7844,116
+7.78807,112
+7.79175,114
+7.79543,114
+7.79912,112
+7.8028,114
+7.80648,112
+7.81017,113
+7.81385,115
+7.81753,115
+7.8212,112
+7.82488,114
+7.82857,114
+7.83225,115
+7.83593,115
+7.83962,115
+7.8433,116
+7.84698,114
+7.85067,115
+7.85433,113
+7.85802,115
+7.8617,117
+7.86538,117
+7.86907,115
+7.87275,113
+7.87643,115
+7.88012,113
+7.8838,114
+7.88747,112
+7.89115,114
+7.89483,115
+7.89852,115
+7.9022,113
+7.90588,113
+7.90957,115
+7.91325,112
+7.91693,115
+7.9206,115
+7.92428,112
+7.92797,112
+7.93165,112
+7.93533,115
+7.93902,112
+7.9427,113
+7.94638,111
+7.95007,113
+7.95373,113
+7.95742,112
+7.9611,112
+7.96478,114
+7.96847,114
+7.97215,116
+7.97583,114
+7.97952,114
+7.9832,114
+7.98688,114
+7.99055,116
+7.99423,113
+7.99792,113
+8.0016,114
+8.00528,116
+8.00897,115
+8.01265,116
+8.01633,113
+8.02002,113
+8.02368,113
+8.02737,113
+8.03105,114
+8.03473,111
+8.03842,114
+8.0421,117
+8.04578,112
+8.04947,112
+8.05315,113
+8.05682,112
+8.0605,112
+8.06418,113
+8.06787,114
+8.07155,112
+8.07523,112
+8.07892,113
+8.0826,113
+8.08628,112
+8.08995,113
+8.09363,110
+8.09732,111
+8.101,111
+8.10468,113
+8.10837,113
+8.11205,112
+8.11573,113
+8.11942,112
+8.12308,113
+8.12677,113
+8.13045,112
+8.13413,115
+8.13782,113
+8.1415,111
+8.14518,112
+8.14887,114
+8.15255,112
+8.15622,113
+8.1599,115
+8.16358,111
+8.16727,111
+8.17095,114
+8.17463,110
+8.17832,112
+8.182,112
+8.18568,112
+8.18935,114
+8.19303,110
+8.19672,111
+8.2004,112
+8.20408,113
+8.20777,113
+8.21145,112
+8.21513,110
+8.21882,110
+8.22248,112
+8.22617,112
+8.22985,113
+8.23353,111
+8.23722,113
+8.2409,113
+8.24458,114
+8.24827,115
+8.25195,113
+8.25562,113
+8.2593,114
+8.26298,112
+8.26667,113
+8.27035,113
+8.27403,114
+8.27772,114
+8.2814,115
+8.28508,113
+8.28875,111
+8.29243,111
+8.29612,112
+8.2998,113
+8.30348,112
+8.30717,112
+8.31085,113
+8.31453,112
+8.31822,113
+8.3219,111
+8.32557,111
+8.32925,111
+8.33293,112
+8.33662,111
+8.3403,110
+8.34398,110
+8.34767,110
+8.35135,112
+8.35503,112
+8.3587,112
+8.36238,110
+8.36607,112
+8.36975,111
+8.37343,113
+8.37712,113
+8.3808,110
+8.38448,110
+8.38817,111
+8.39183,112
+8.39552,114
+8.3992,113
+8.40288,113
+8.40657,113
+8.41025,111
+8.41393,112
+8.41762,113
+8.4213,116
+8.42497,114
+8.42865,113
+8.43233,113
+8.43602,112
+8.4397,111
+8.44338,112
+8.44707,111
+8.45075,112
+8.45443,113
+8.4581,112
+8.46178,111
+8.46547,110
+8.46915,110
+8.47283,111
+8.47652,112
+8.4802,110
+8.48388,111
+8.48757,111
+8.49123,112
+8.49492,112
+8.4986,113
+8.50228,111
+8.50597,1101
+8.50965,1118
+8.51333,1062
+8.51702,946
+8.5207,845
+8.52437,703
+8.52805,589
+8.53173,498
+8.53542,425
+8.5391,375
+8.54278,322
+8.54647,289
+8.55015,267
+8.55383,245
+8.5575,231
+8.56118,214
+8.56487,207
+8.56855,197
+8.57223,189
+8.57592,184
+8.5796,181
+8.58328,176
+8.58697,174
+8.59063,167
+8.59432,166
+8.598,163
+8.60168,160
+8.60537,154
+8.60905,154
+8.61273,153
+8.61642,153
+8.6201,148
+8.62377,144
+8.62745,148
+8.63113,144
+8.63482,146
+8.6385,141
+8.64218,140
+8.64587,141
+8.64955,141
+8.65323,137
+8.6569,142
+8.66058,137
+8.66427,138
+8.66795,135
+8.67163,138
+8.67532,133
+8.679,131
+8.68268,136
+8.68637,131
+8.69005,132
+8.69372,132
+8.6974,130
+8.70108,130
+8.70477,130
+8.70845,131
+8.71213,128
+8.71582,127
+8.7195,128
+8.72318,127
+8.72685,128
+8.73053,130
+8.73422,126
+8.7379,125
+8.74158,126
+8.74527,127
+8.74895,125
+8.75263,124
+8.75632,126
+8.75998,123
+8.76367,125
+8.76735,124
+8.77103,125
+8.77472,123
+8.7784,125
+8.78208,125
+8.78577,124
+8.78945,124
+8.79312,122
+8.7968,124
+8.80048,124
+8.80417,122
+8.80785,125
+8.81153,122
+8.81522,123
+8.8189,122
+8.82258,124
+8.82625,122
+8.82993,124
+8.83362,122
+8.8373,121
+8.84098,119
+8.84467,122
+8.84835,120
+8.85203,121
+8.85572,119
+8.85938,121
+8.86307,119
+8.86675,121
+8.87043,120
+8.87412,118
+8.8778,118
+8.88148,118
+8.88517,120
+8.88885,118
+8.89252,118
+8.8962,119
+8.89988,119
+8.90357,120
+8.90725,121
+8.91093,121
+8.91462,118
+8.9183,118
+8.92198,121
+8.92565,119
+8.92933,119
+8.93302,118
+8.9367,118
+8.94038,118
+8.94407,119
+8.94775,119
+8.95143,119
+8.95512,117
+8.95878,117
+8.96247,116
+8.96615,117
+8.96983,117
+8.97352,118
+8.9772,117
+8.98088,116
+8.98457,116
+8.98825,115
+8.99192,117
+8.9956,116
+8.99928,116
+9.00297,116
+9.00665,115
+9.01033,116
+9.01402,116
+9.0177,115
+9.02138,114
+9.02507,116
+9.02873,116
+9.03242,116
+9.0361,117
+9.03978,115
+9.04347,115
+9.04715,116
+9.05083,115
+9.05452,116
+9.0582,114
+9.06187,115
+9.06555,116
+9.06923,114
+9.07292,115
+9.0766,117
+9.08028,114
+9.08397,114
+9.08765,115
+9.09133,115
+9.095,113
+9.09868,113
+9.10237,118
+9.10605,115
+9.10973,116
+9.11342,115
+9.1171,113
+9.12078,115
+9.12447,113
+9.12813,112
+9.13182,115
+9.1355,114
+9.13918,113
+9.14287,112
+9.14655,114
+9.15023,115
+9.15392,113
+9.1576,113
+9.16127,112
+9.16495,112
+9.16863,113
+9.17232,113
+9.176,113
+9.17968,113
+9.18337,115
+9.18705,114
+9.19073,114
+9.1944,114
+9.19808,113
+9.20177,113
+9.20545,114
+9.20913,114
+9.21282,113
+9.2165,113
+9.22018,114
+9.22387,112
+9.22753,112
+9.23122,113
+9.2349,113
+9.23858,115
+9.24227,114
+9.24595,115
+9.24963,113
+9.25332,115
+9.257,115
+9.26067,116
+9.26435,117
+9.26803,116
+9.27172,114
+9.2754,118
+9.27908,115
+9.28277,114
+9.28645,115
+9.29013,114
+9.2938,114
+9.29748,115
+9.30117,113
+9.30485,113
+9.30853,114
+9.31222,116
+9.3159,115
+9.31958,115
+9.32327,115
+9.32693,113
+9.33062,112
+9.3343,113
+9.33798,113
+9.34167,112
+9.34535,110
+9.34903,110
+9.35272,114
+9.3564,112
+9.36007,113
+9.36375,113
+9.36743,113
+9.37112,113
+9.3748,114
+9.37848,113
+9.38217,113
+9.38585,114
+9.38953,112
+9.39322,114
+9.39688,112
+9.40057,114
+9.40425,111
+9.40793,112
+9.41162,110
+9.4153,110
+9.41898,112
+9.42267,112
+9.42635,113
+9.43002,112
+9.4337,114
+9.43738,113
+9.44107,112
+9.44475,110
+9.44843,114
+9.45212,111
+9.4558,111
+9.45948,110
+9.46315,110
+9.46683,111
+9.47052,110
+9.4742,111
+9.47788,113
+9.48157,112
+9.48525,110
+9.48893,110
+9.49262,111
+9.49628,111
+9.49997,112
+9.50365,111
+9.50733,110
+9.51102,111
+9.5147,112
+9.51838,110
+9.52207,111
+9.52575,111
+9.52942,111
+9.5331,111
+9.53678,111
+9.54047,111
+9.54415,110
+9.54783,112
+9.55152,112
+9.5552,110
+9.55888,110
+9.56255,110
+9.56623,111
+9.56992,112
+9.5736,111
+9.57728,113
+9.58097,110
+9.58465,110
+9.58833,110
+9.59202,110
+9.59568,109
+9.59937,110
+9.60305,110
+9.60673,111
+9.61042,111
+9.6141,110
+9.61778,112
+9.62147,111
+9.62515,113
+9.62882,112
+9.6325,110
+9.63618,109
+9.63987,111
+9.64355,111
+9.64723,110
+9.65092,110
+9.6546,111
+9.65828,111
+9.66195,108
+9.66563,111
+9.66932,112
+9.673,112
+9.67668,109
+9.68037,110
+9.68405,109
+9.68773,110
+9.69142,111
+9.69508,110
+9.69877,110
+9.70245,112
+9.70613,111
+9.70982,111
+9.7135,109
+9.71718,109
+9.72087,108
+9.72455,110
+9.72823,109
+9.7319,112
+9.73558,109
+9.73927,111
+9.74295,109
+9.74663,111
+9.75032,109
+9.754,109
+9.75768,110
+9.76137,110
+9.76503,108
+9.76872,109
+9.7724,111
+9.77608,110
+9.77977,108
+9.78345,110
+9.78713,109
+9.79082,109
+9.7945,109
+9.79817,107
+9.80185,108
+9.80553,108
+9.80922,108
+9.8129,108
+9.81658,108
+9.82027,108
+9.82395,109
+9.82763,106
+9.8313,107
+9.83498,110
+9.83867,108
+9.84235,106
+9.84603,109
+9.84972,109
+9.8534,108
+9.85708,108
+9.86077,110
+9.86443,108
+9.86812,107
+9.8718,109
+9.87548,109
+9.87917,108
+9.88285,108
+9.88653,107
+9.89022,109
+9.8939,109
+9.89757,108
+9.90125,110
+9.90493,107
+9.90862,107
+9.9123,106
+9.91598,107
+9.91967,109
+9.92335,109
+9.92703,109
+9.9307,109
+9.93438,109
+9.93807,107
+9.94175,107
+9.94543,109
+9.94912,109
+9.9528,108
+9.95648,110
+9.96017,108
+9.96383,108
+9.96752,110
+9.9712,110
+9.97488,109
+9.97857,108
+9.98225,111
+9.98593,108
+9.98962,109
+9.9933,109
+9.99697,108
+10.0007,109
+10.0043,108
+10.008,108
+10.0117,108
+10.0154,108
+10.0191,107
+10.0228,109
+10.0264,108
+10.0301,109
+10.0338,107
+10.0375,108
+10.0412,107
+10.0448,107
+10.0485,106
+10.0522,109
+10.0559,108
+10.0596,108
+10.0632,107
+10.0669,109
+10.0706,108
+10.0743,106
+10.078,108
+10.0817,108
+10.0853,108
+10.089,107
+10.0927,109
+10.0964,108
+10.1001,108
+10.1037,106
+10.1074,108
+10.1111,108
+10.1148,107
+10.1185,108
+10.1222,110
+10.1258,107
+10.1295,108
+10.1332,109
+10.1369,110
+10.1406,108
+10.1442,109
+10.1479,109
+10.1516,105
+10.1553,109
+10.159,109
+10.1627,110
+10.1663,107
+10.17,108
+10.1737,107
+10.1774,109
+10.1811,108
+10.1847,109
+10.1884,110
+10.1921,108
+10.1958,107
+10.1995,107
+10.2031,107
+10.2068,107
+10.2105,107
+10.2142,107
+10.2179,109
+10.2216,107
+10.2252,107
+10.2289,109
+10.2326,108
+10.2363,108
+10.24,109
+10.2436,107
+10.2473,109
+10.251,107
+10.2547,108
+10.2584,107
+10.2621,109
+10.2657,104
+10.2694,109
+10.2731,107
+10.2768,107
+10.2805,108
+10.2841,106
+10.2878,107
+10.2915,106
+10.2952,108
+10.2989,107
+10.3025,107
+10.3062,107
+10.3099,107
+10.3136,108
+10.3173,107
+10.321,107
+10.3246,108
+10.3283,109
+10.332,107
+10.3357,108
+10.3394,106
+10.343,108
+10.3467,108
+10.3504,109
+10.3541,107
+10.3578,107
+10.3615,108
+10.3651,105
+10.3688,108
+10.3725,108
+10.3762,109
+10.3799,107
+10.3835,107
+10.3872,107
+10.3909,106
+10.3946,108
+10.3983,108
+10.4019,107
+10.4056,107
+10.4093,106
+10.413,109
+10.4167,108
+10.4204,107
+10.424,107
+10.4277,106
+10.4314,109
+10.4351,107
+10.4388,107
+10.4424,109
+10.4461,109
+10.4498,108
+10.4535,107
+10.4572,107
+10.4609,107
+10.4645,105
+10.4682,107
+10.4719,107
+10.4756,108
+10.4793,106
+10.4829,108
+10.4866,108
+10.4903,107
+10.494,107
+10.4977,108
+10.5013,105
+10.505,106
+10.5087,109
+10.5124,106
+10.5161,106
+10.5198,108
+10.5234,107
+10.5271,108
+10.5308,108
+10.5345,106
+10.5382,105
+10.5418,107
+10.5455,108
+10.5492,106
+10.5529,108
+10.5566,108
+10.5603,105
+10.5639,109
+10.5676,107
+10.5713,107
+10.575,105
+10.5787,107
+10.5823,107
+10.586,106
+10.5897,106
+10.5934,108
+10.5971,108
+10.6007,110
+10.6044,106
+10.6081,109
+10.6118,107
+10.6155,107
+10.6192,108
+10.6228,107
+10.6265,108
+10.6302,107
+10.6339,108
+10.6376,107
+10.6412,107
+10.6449,106
+10.6486,107
+10.6523,108
+10.656,106
+10.6597,107
+10.6633,105
+10.667,107
+10.6707,107
+10.6744,106
+10.6781,106
+10.6817,106
+10.6854,108
+10.6891,106
+10.6928,107
+10.6965,107
+10.7001,105
+10.7038,108
+10.7075,107
+10.7112,106
+10.7149,106
+10.7186,108
+10.7222,108
+10.7259,106
+10.7296,107
+10.7333,109
+10.737,109
+10.7406,108
+10.7443,105
+10.748,107
+10.7517,106
+10.7554,107
+10.7591,108
+10.7627,108
+10.7664,108
+10.7701,107
+10.7738,109
+10.7775,108
+10.7811,110
+10.7848,107
+10.7885,107
+10.7922,105
+10.7959,107
+10.7996,106
+10.8032,106
+10.8069,108
+10.8106,106
+10.8143,108
+10.818,108
+10.8216,110
+10.8253,112
+10.829,114
+10.8327,114
+10.8364,115
+10.84,114
+10.8437,113
+10.8474,111
+10.8511,111
+10.8548,110
+10.8585,110
+10.8621,109
+10.8658,106
+10.8695,107
+10.8732,108
+10.8769,107
+10.8805,108
+10.8842,107
+10.8879,106
+10.8916,109
+10.8953,106
+10.899,107
+10.9026,104
+10.9063,103
+10.91,103
+10.9137,103
+10.9174,104
+10.921,105
+10.9247,104
+10.9284,102
+10.9321,103
+10.9358,104
+10.9394,104
+10.9431,104
+10.9468,103
+10.9505,102
+10.9542,102
+10.9579,104
+10.9615,103
+10.9652,104
+10.9689,103
+10.9726,104
+10.9763,103
+10.9799,103
+10.9836,105
+10.9873,105
+10.991,111
+10.9947,120
+10.9984,139
+11.002,168
+11.0057,205
+11.0094,261
+11.0131,337
+11.0168,402
+11.0204,456
+11.0241,498
+11.0278,523
+11.0315,522
+11.0352,488
+11.0389,447
+11.0425,399
+11.0462,353
+11.0499,319
+11.0536,281
+11.0573,249
+11.0609,238
+11.0646,218
+11.0683,203
+11.072,192
+11.0757,182
+11.0794,172
+11.083,168
+11.0867,163
+11.0904,158
+11.0941,153
+11.0978,150
+11.1014,150
+11.1051,145
+11.1088,144
+11.1125,141
+11.1162,142
+11.1199,143
+11.1235,146
+11.1272,150
+11.1309,166
+11.1346,185
+11.1383,210
+11.1419,246
+11.1456,280
+11.1493,317
+11.153,340
+11.1567,351
+11.1604,355
+11.164,347
+11.1677,326
+11.1714,308
+11.1751,286
+11.1788,266
+11.1824,254
+11.1861,239
+11.1898,222
+11.1935,211
+11.1972,203
+11.2009,191
+11.2045,186
+11.2082,181
+11.2119,174
+11.2156,172
+11.2193,166
+11.2229,163
+11.2266,162
+11.2303,157
+11.234,159
+11.2377,151
+11.2414,150
+11.245,152
+11.2487,152
+11.2524,145
+11.2561,146
+11.2598,143
+11.2634,144
+11.2671,140
+11.2708,140
+11.2745,140
+11.2782,137
+11.2819,138
+11.2855,136
+11.2892,137
+11.2929,133
+11.2966,135
+11.3003,130
+11.3039,132
+11.3076,130
+11.3113,131
+11.315,130
+11.3187,129
+11.3224,129
+11.326,126
+11.3297,127
+11.3334,126
+11.3371,126
+11.3408,126
+11.3444,127
+11.3481,126
+11.3518,126
+11.3555,126
+11.3592,125
+11.3629,125
+11.3665,124
+11.3702,124
+11.3739,126
+11.3776,124
+11.3813,121
+11.3849,123
+11.3886,123
+11.3923,121
+11.396,121
+11.3997,121
+11.4034,120
+11.407,118
+11.4107,121
+11.4144,119
+11.4181,120
+11.4218,117
+11.4254,118
+11.4291,119
+11.4328,116
+11.4365,118
+11.4402,119
+11.4439,117
+11.4475,115
+11.4512,115
+11.4549,117
+11.4586,116
+11.4623,116
+11.4659,114
+11.4696,116
+11.4733,114
+11.477,115
+11.4807,116
+11.4844,116
+11.488,114
+11.4917,114
+11.4954,114
+11.4991,115
+11.5028,115
+11.5064,112
+11.5101,112
+11.5138,114
+11.5175,115
+11.5212,112
+11.5249,115
+11.5285,113
+11.5322,111
+11.5359,113
+11.5396,112
+11.5433,111
+11.5469,110
+11.5506,115
+11.5543,111
+11.558,111
+11.5617,109
+11.5654,114
+11.569,114
+11.5727,112
+11.5764,111
+11.5801,111
+11.5838,112
+11.5874,112
+11.5911,111
+11.5948,109
+11.5985,110
+11.6022,110
+11.6058,111
+11.6095,112
+11.6132,111
+11.6169,110
+11.6206,112
+11.6243,110
+11.6279,111
+11.6316,111
+11.6353,111
+11.639,110
+11.6427,109
+11.6463,111
+11.65,109
+11.6537,110
+11.6574,111
+11.6611,108
+11.6648,110
+11.6684,108
+11.6721,109
+11.6758,109
+11.6795,108
+11.6832,110
+11.6868,109
+11.6905,109
+11.6942,110
+11.6979,109
+11.7016,108
+11.7053,107
+11.7089,112
+11.7126,109
+11.7163,109
+11.72,110
+11.7237,109
+11.7273,108
+11.731,108
+11.7347,109
+11.7384,111
+11.7421,108
+11.7458,109
+11.7494,107
+11.7531,108
+11.7568,107
+11.7605,109
+11.7642,107
+11.7678,109
+11.7715,107
+11.7752,107
+11.7789,106
+11.7826,108
+11.7863,107
+11.7899,107
+11.7936,111
+11.7973,108
+11.801,107
+11.8047,107
+11.8083,110
+11.812,109
+11.8157,107
+11.8194,108
+11.8231,108
+11.8268,108
+11.8304,106
+11.8341,108
+11.8378,109
+11.8415,107
+11.8452,106
+11.8488,109
+11.8525,108
+11.8562,108
+11.8599,106
+11.8636,106
+11.8673,106
+11.8709,107
+11.8746,107
+11.8783,107
+11.882,107
+11.8857,107
+11.8893,108
+11.893,106
+11.8967,106
+11.9004,106
+11.9041,108
+11.9078,107
+11.9114,108
+11.9151,107
+11.9188,107
+11.9225,105
+11.9262,107
+11.9298,107
+11.9335,107
+11.9372,104
+11.9409,107
+11.9446,107
+11.9483,108
+11.9519,108
+11.9556,108
+11.9593,108
+11.963,107
+11.9667,108
+11.9703,107
+11.974,107
+11.9777,110
+11.9814,106
+11.9851,108
+11.9888,107
+11.9924,107
+11.9961,107
+11.9998,107
+12.0035,106
+12.0072,106
+12.0108,105
+12.0145,106
+12.0182,108
+12.0219,109
+12.0256,107
+12.0293,105
+12.0329,106
+12.0366,106
+12.0403,106
+12.044,109
+12.0477,108
+12.0513,108
+12.055,107
+12.0587,106
+12.0624,106
+12.0661,107
+12.0698,107
+12.0734,105
+12.0771,105
+12.0808,106
+12.0845,107
+12.0882,104
+12.0918,106
+12.0955,105
+12.0992,106
+12.1029,105
+12.1066,106
+12.1103,107
+12.1139,105
+12.1176,106
+12.1213,106
+12.125,106
+12.1287,106
+12.1323,107
+12.136,106
+12.1397,106
+12.1434,107
+12.1471,104
+12.1508,105
+12.1544,109
+12.1581,106
+12.1618,107
+12.1655,106
+12.1692,106
+12.1728,104
+12.1765,107
+12.1802,105
+12.1839,105
+12.1876,106
+12.1913,107
+12.1949,106
+12.1986,107
+12.2023,105
+12.206,106
+12.2097,107
+12.2133,107
+12.217,106
+12.2207,108
+12.2244,106
+12.2281,106
+12.2318,104
+12.2354,107
+12.2391,107
+12.2428,106
+12.2465,106
+12.2502,104
+12.2538,105
+12.2575,104
+12.2612,107
+12.2649,104
+12.2686,104
+12.2722,106
+12.2759,107
+12.2796,105
+12.2833,109
+12.287,106
+12.2907,105
+12.2943,105
+12.298,107
+12.3017,104
+12.3054,105
+12.3091,106
+12.3127,105
+12.3164,106
+12.3201,105
+12.3238,105
+12.3275,107
+12.3312,105
+12.3348,106
+12.3385,106
+12.3422,104
+12.3459,106
+12.3496,106
+12.3532,105
+12.3569,107
+12.3606,105
+12.3643,105
+12.368,104
+12.3717,106
+12.3753,105
+12.379,107
+12.3827,104
+12.3864,105
+12.3901,106
+12.3937,104
+12.3974,106
+12.4011,108
+12.4048,105
+12.4085,106
+12.4122,105
+12.4158,104
+12.4195,107
+12.4232,104
+12.4269,105
+12.4306,104
+12.4342,107
+12.4379,106
+12.4416,105
+12.4453,106
+12.449,107
+12.4527,106
+12.4563,103
+12.46,104
+12.4637,105
+12.4674,107
+12.4711,105
+12.4747,105
+12.4784,107
+12.4821,105
+12.4858,106
+12.4895,105
+12.4932,105
+12.4968,105
+12.5005,106
+12.5042,104
+12.5079,106
+12.5116,107
+12.5152,108
+12.5189,105
+12.5226,104
+12.5263,106
+12.53,104
+12.5337,106
+12.5373,106
+12.541,105
+12.5447,105
+12.5484,104
+12.5521,104
+12.5557,104
+12.5594,104
+12.5631,105
+12.5668,105
+12.5705,105
+12.5742,105
+12.5778,105
+12.5815,105
+12.5852,105
+12.5889,104
+12.5926,106
+12.5962,105
+12.5999,106
+12.6036,105
+12.6073,106
+12.611,104
+12.6147,104
+12.6183,106
+12.622,104
+12.6257,106
+12.6294,107
+12.6331,105
+12.6367,104
+12.6404,105
+12.6441,105
+12.6478,105
+12.6515,105
+12.6552,106
+12.6588,105
+12.6625,105
+12.6662,103
+12.6699,104
+12.6736,108
+12.6772,107
+12.6809,106
+12.6846,105
+12.6883,104
+12.692,105
+12.6957,104
+12.6993,104
+12.703,106
+12.7067,105
+12.7104,105
+12.7141,104
+12.7177,105
+12.7214,104
+12.7251,105
+12.7288,104
+12.7325,104
+12.7362,105
+12.7398,105
+12.7435,105
+12.7472,105
+12.7509,104
+12.7546,104
+12.7582,104
+12.7619,105
+12.7656,103
+12.7693,105
+12.773,105
+12.7767,105
+12.7803,103
+12.784,105
+12.7877,105
+12.7914,104
+12.7951,103
+12.7987,105
+12.8024,104
+12.8061,106
+12.8098,106
+12.8135,105
+12.8172,104
+12.8208,105
+12.8245,104
+12.8282,104
+12.8319,105
+12.8356,105
+12.8392,105
+12.8429,105
+12.8466,105
+12.8503,105
+12.854,102
+12.8577,103
+12.8613,106
+12.865,105
+12.8687,104
+12.8724,105
+12.8761,105
+12.8797,104
+12.8834,103
+12.8871,104
+12.8908,104
+12.8945,103
+12.8981,105
+12.9018,105
+12.9055,106
+12.9092,106
+12.9129,105
+12.9166,105
+12.9202,103
+12.9239,104
+12.9276,104
+12.9313,103
+12.935,103
+12.9386,104
+12.9423,106
+12.946,105
+12.9497,103
+12.9534,103
+12.9571,104
+12.9607,105
+12.9644,105
+12.9681,105
+12.9718,104
+12.9755,106
+12.9791,105
+12.9828,104
+12.9865,105
+12.9902,105
+12.9939,104
+12.9976,104
+13.0012,106
+13.0049,107
+13.0086,104
+13.0123,105
+13.016,103
+13.0196,103
+13.0233,104
+13.027,103
+13.0307,105
+13.0344,103
+13.0381,105
+13.0417,105
+13.0454,104
+13.0491,103
+13.0528,105
+13.0565,104
+13.0601,107
+13.0638,104
+13.0675,107
+13.0712,105
+13.0749,105
+13.0786,105
+13.0822,103
+13.0859,104
+13.0896,104
+13.0933,104
+13.097,104
+13.1006,104
+13.1043,104
+13.108,103
+13.1117,104
+13.1154,105
+13.1191,104
+13.1227,104
+13.1264,105
+13.1301,105
+13.1338,104
+13.1375,103
+13.1411,104
+13.1448,104
+13.1485,103
+13.1522,105
+13.1559,103
+13.1596,104
+13.1632,104
+13.1669,104
+13.1706,105
+13.1743,104
+13.178,104
+13.1816,105
+13.1853,104
+13.189,105
+13.1927,105
+13.1964,106
+13.2001,106
+13.2037,104
+13.2074,105
+13.2111,103
+13.2148,105
+13.2185,104
+13.2221,106
+13.2258,105
+13.2295,106
+13.2332,103
+13.2369,104
+13.2406,105
+13.2442,104
+13.2479,104
+13.2516,105
+13.2553,104
+13.259,104
+13.2626,106
+13.2663,105
+13.27,105
+13.2737,105
+13.2774,105
+13.2811,104
+13.2847,105
+13.2884,104
+13.2921,104
+13.2958,105
+13.2995,104
+13.3031,105
+13.3068,103
+13.3105,104
+13.3142,104
+13.3179,105
+13.3216,108
+13.3252,102
+13.3289,105
+13.3326,105
+13.3363,105
+13.34,104
+13.3436,105
+13.3473,104
+13.351,104
+13.3547,104
+13.3584,103
+13.3621,106
+13.3657,106
+13.3694,104
+13.3731,106
+13.3768,106
+13.3805,106
+13.3841,105
+13.3878,104
+13.3915,105
+13.3952,107
+13.3989,105
+13.4026,105
+13.4062,106
+13.4099,104
+13.4136,104
+13.4173,104
+13.421,105
+13.4246,105
+13.4283,104
+13.432,106
+13.4357,106
+13.4394,105
+13.4431,106
+13.4467,104
+13.4504,104
+13.4541,105
+13.4578,103
+13.4615,106
+13.4651,105
+13.4688,106
+13.4725,103
+13.4762,106
+13.4799,105
+13.4836,105
+13.4872,104
+13.4909,105
+13.4946,105
+13.4983,104
+13.502,105
+13.5056,104
+13.5093,105
+13.513,105
+13.5167,104
+13.5204,106
+13.5241,105
+13.5277,103
+13.5314,104
+13.5351,105
+13.5388,106
+13.5425,104
+13.5461,105
+13.5498,105
+13.5535,104
+13.5572,105
+13.5609,103
+13.5645,105
+13.5682,104
+13.5719,105
+13.5756,104
+13.5793,104
+13.583,104
+13.5866,106
+13.5903,106
+13.594,104
+13.5977,103
+13.6014,102
+13.605,106
+13.6087,105
+13.6124,105
+13.6161,103
+13.6198,104
+13.6235,105
+13.6271,106
+13.6308,105
+13.6345,104
+13.6382,105
+13.6419,105
+13.6455,104
+13.6492,103
+13.6529,104
+13.6566,104
+13.6603,104
+13.664,104
+13.6676,104
+13.6713,105
+13.675,103
+13.6787,104
+13.6824,105
+13.686,105
+13.6897,106
+13.6934,104
+13.6971,105
+13.7008,104
+13.7045,105
+13.7081,103
+13.7118,104
+13.7155,104
+13.7192,103
+13.7229,103
+13.7265,104
+13.7302,105
+13.7339,104
+13.7376,105
+13.7413,105
+13.745,103
+13.7486,104
+13.7523,104
+13.756,105
+13.7597,104
+13.7634,106
+13.767,105
+13.7707,105
+13.7744,105
+13.7781,105
+13.7818,104
+13.7855,105
+13.7891,103
+13.7928,103
+13.7965,104
+13.8002,103
+13.8039,105
+13.8075,104
+13.8112,106
+13.8149,105
+13.8186,104
+13.8223,104
+13.826,104
+13.8296,104
+13.8333,103
+13.837,105
+13.8407,104
+13.8444,105
+13.848,106
+13.8517,104
+13.8554,103
+13.8591,105
+13.8628,105
+13.8665,104
+13.8701,106
+13.8738,104
+13.8775,103
+13.8812,105
+13.8849,105
+13.8885,105
+13.8922,103
+13.8959,104
+13.8996,104
+13.9033,106
+13.907,104
+13.9106,105
+13.9143,105
+13.918,104
+13.9217,106
+13.9254,103
+13.929,105
+13.9327,106
+13.9364,105
+13.9401,104
+13.9438,105
+13.9475,104
+13.9511,105
+13.9548,104
+13.9585,106
+13.9622,105
+13.9659,105
+13.9695,105
+13.9732,106
+13.9769,105
+13.9806,104
+13.9843,104
+13.988,104
+13.9916,104
+13.9953,104
+13.999,105
+14.0027,105
+14.0064,107
+14.01,105
+14.0137,104
+14.0174,104
+14.0211,104
+14.0248,105
+14.0285,104
+14.0321,105
+14.0358,105
+14.0395,104
+14.0432,104
+14.0469,105
+14.0505,105
+14.0542,103
+14.0579,105
+14.0616,105
+14.0653,104
+14.069,105
+14.0726,104
+14.0763,103
+14.08,105
+14.0837,106
+14.0874,104
+14.091,105
+14.0947,104
+14.0984,105
+14.1021,106
+14.1058,106
+14.1095,106
+14.1131,105
+14.1168,104
+14.1205,106
+14.1242,103
+14.1279,103
+14.1315,104
+14.1352,105
+14.1389,105
+14.1426,104
+14.1463,105
+14.15,104
+14.1536,106
+14.1573,107
+14.161,104
+14.1647,105
+14.1684,105
+14.172,106
+14.1757,104
+14.1794,104
+14.1831,103
+14.1868,105
+14.1905,105
+14.1941,104
+14.1978,105
+14.2015,105
+14.2052,103
+14.2089,104
+14.2125,103
+14.2162,105
+14.2199,106
+14.2236,105
+14.2273,105
+14.2309,105
+14.2346,105
+14.2383,104
+14.242,105
+14.2457,104
+14.2494,105
+14.253,106
+14.2567,105
+14.2604,103
+14.2641,106
+14.2678,104
+14.2714,105
+14.2751,104
+14.2788,104
+14.2825,106
+14.2862,103
+14.2899,106
+14.2935,104
+14.2972,105
+14.3009,105
+14.3046,105
+14.3083,105
+14.3119,104
+14.3156,105
+14.3193,104
+14.323,104
+14.3267,105
+14.3304,106
+14.334,105
+14.3377,105
+14.3414,106
+14.3451,105
+14.3488,105
+14.3524,104
+14.3561,105
+14.3598,105
+14.3635,107
+14.3672,106
+14.3709,105
+14.3745,105
+14.3782,104
+14.3819,105
+14.3856,103
+14.3893,104
+14.3929,106
+14.3966,103
+14.4003,105
+14.404,105
+14.4077,105
+14.4114,105
+14.415,104
+14.4187,106
+14.4224,105
+14.4261,104
+14.4298,105
+14.4334,106
+14.4371,105
+14.4408,106
+14.4445,106
+14.4482,105
+14.4519,106
+14.4555,104
+14.4592,105
+14.4629,104
+14.4666,106
+14.4703,105
+14.4739,105
+14.4776,106
+14.4813,105
+14.485,105
+14.4887,106
+14.4924,105
+14.496,107
+14.4997,104
+14.5034,92
+14.5071,92
+14.5108,92
+14.5144,91
+14.5181,92
+14.5218,92
+14.5255,92
+14.5292,92
+14.5329,92
+14.5365,92
+14.5402,92
+14.5439,92
+14.5476,92
+14.5513,93
+14.5549,93
+14.5586,91
+14.5623,93
+14.566,92
+14.5697,93
+14.5734,93
+14.577,92
+14.5807,92
+14.5844,92
+14.5881,92
+14.5918,91
+14.5954,92
+14.5991,92
+14.6028,93
+14.6065,92
+14.6102,94
+14.6139,95
+14.6175,99
+14.6212,104
+14.6249,114
+14.6286,127
+14.6323,146
+14.6359,172
+14.6396,195
+14.6433,221
+14.647,249
+14.6507,258
+14.6544,274
+14.658,271
+14.6617,256
+14.6654,245
+14.6691,233
+14.6728,211
+14.6764,195
+14.6801,177
+14.6838,164
+14.6875,156
+14.6912,142
+14.6949,138
+14.6985,132
+14.7022,130
+14.7059,124
+14.7096,122
+14.7133,118
+14.7169,119
+14.7206,115
+14.7243,114
+14.728,112
+14.7317,109
+14.7354,109
+14.739,108
+14.7427,107
+14.7464,107
+14.7501,107
+14.7538,106
+14.7574,104
+14.7611,106
+14.7648,105
+14.7685,104
+14.7722,103
+14.7759,103
+14.7795,101
+14.7832,102
+14.7869,102
+14.7906,100
+14.7943,101
+14.7979,101
+14.8016,100
+14.8053,101
+14.809,101
+14.8127,100
+14.8164,99
+14.82,99
+14.8237,99
+14.8274,98
+14.8311,99
+14.8348,98
+14.8384,98
+14.8421,98
+14.8458,97
+14.8495,98
+14.8532,98
+14.8569,97
+14.8605,99
+14.8642,98
+14.8679,98
+14.8716,97
+14.8753,96
+14.8789,98
+14.8826,97
+14.8863,96
+14.89,97
+14.8937,97
+14.8973,97
+14.901,96
+14.9047,96
+14.9084,96
+14.9121,98
+14.9158,95
+14.9194,96
+14.9231,94
+14.9268,96
+14.9305,95
+14.9342,94
+14.9378,94
+14.9415,96
+14.9452,95
+14.9489,95
+14.9526,96
+14.9563,95
+14.9599,96
+14.9636,96
+14.9673,94
+14.971,96
+14.9747,96
+14.9783,96
+14.982,95
+14.9857,95
+14.9894,94
+14.9931,94
+14.9968,94
+15.0004,94
+15.0041,95
+15.0078,95
+15.0115,94
+15.0152,95
+15.0188,94
+15.0225,96
+15.0262,95
+15.0299,94
+15.0336,94
+15.0373,93
+15.0409,93
+15.0446,94
+15.0483,94
+15.052,96
+15.0557,95
+15.0593,94
+15.063,94
+15.0667,94
+15.0704,95
+15.0741,95
+15.0778,95
+15.0814,94
+15.0851,93
+15.0888,95
+15.0925,94
+15.0962,95
+15.0998,95
+15.1035,94
+15.1072,95
+15.1109,93
+15.1146,94
+15.1183,93
+15.1219,94
+15.1256,94
+15.1293,94
+15.133,94
+15.1367,94
+15.1403,94
+15.144,95
+15.1477,93
+15.1514,95
+15.1551,93
+15.1588,93
+15.1624,93
+15.1661,95
+15.1698,94
+15.1735,94
+15.1772,93
+15.1808,93
+15.1845,95
+15.1882,92
+15.1919,93
+15.1956,93
+15.1993,95
+15.2029,94
+15.2066,93
+15.2103,93
+15.214,93
+15.2177,94
+15.2213,93
+15.225,95
+15.2287,93
+15.2324,94
+15.2361,94
+15.2398,93
+15.2434,94
+15.2471,93
+15.2508,92
+15.2545,93
+15.2582,93
+15.2618,92
+15.2655,93
+15.2692,93
+15.2729,94
+15.2766,93
+15.2803,95
+15.2839,96
+15.2876,99
+15.2913,102
+15.295,114
+15.2987,126
+15.3023,144
+15.306,167
+15.3097,191
+15.3134,224
+15.3171,244
+15.3208,266
+15.3244,270
+15.3281,279
+15.3318,275
+15.3355,256
+15.3392,235
+15.3428,218
+15.3465,192
+15.3502,183
+15.3539,165
+15.3576,153
+15.3613,144
+15.3649,135
+15.3686,129
+15.3723,126
+15.376,123
+15.3797,118
+15.3833,115
+15.387,113
+15.3907,112
+15.3944,110
+15.3981,111
+15.4018,110
+15.4054,109
+15.4091,106
+15.4128,106
+15.4165,104
+15.4202,104
+15.4238,105
+15.4275,105
+15.4312,104
+15.4349,103
+15.4386,101
+15.4423,102
+15.4459,101
+15.4496,101
+15.4533,101
+15.457,100
+15.4607,100
+15.4643,100
+15.468,99
+15.4717,98
+15.4754,98
+15.4791,100
+15.4828,99
+15.4864,99
+15.4901,97
+15.4938,97
+15.4975,100
+15.5012,100
+15.5048,98
+15.5085,98
+15.5122,99
+15.5159,97
+15.5196,97
+15.5232,97
+15.5269,98
+15.5306,96
+15.5343,98
+15.538,97
+15.5417,97
+15.5453,96
+15.549,95
+15.5527,97
+15.5564,98
+15.5601,96
+15.5637,96
+15.5674,96
+15.5711,96
+15.5748,96
+15.5785,98
+15.5822,96
+15.5858,95
+15.5895,96
+15.5932,96
+15.5969,95
+15.6006,96
+15.6042,94
+15.6079,96
+15.6116,95
+15.6153,95
+15.619,94
+15.6227,96
+15.6263,96
+15.63,95
+15.6337,95
+15.6374,95
+15.6411,95
+15.6447,96
+15.6484,96
+15.6521,95
+15.6558,95
+15.6595,97
+15.6632,95
+15.6668,95
+15.6705,94
+15.6742,94
+15.6779,95
+15.6816,96
+15.6852,94
+15.6889,95
+15.6926,95
+15.6963,95
+15.7,95
+15.7037,94
+15.7073,95
+15.711,94
+15.7147,95
+15.7184,94
+15.7221,93
+15.7257,95
+15.7294,96
+15.7331,95
+15.7368,94
+15.7405,94
+15.7442,95
+15.7478,94
+15.7515,94
+15.7552,94
+15.7589,95
+15.7626,93
+15.7662,95
+15.7699,95
+15.7736,95
+15.7773,95
+15.781,93
+15.7847,95
+15.7883,94
+15.792,94
+15.7957,95
+15.7994,93
+15.8031,94
+15.8067,93
+15.8104,94
+15.8141,94
+15.8178,95
+15.8215,94
+15.8252,94
+15.8288,93
+15.8325,95
+15.8362,94
+15.8399,93
+15.8436,94
+15.8472,94
+15.8509,95
+15.8546,93
+15.8583,94
+15.862,93
+15.8657,93
+15.8693,94
+15.873,93
+15.8767,93
+15.8804,94
+15.8841,94
+15.8877,95
+15.8914,94
+15.8951,94
+15.8988,93
+15.9025,94
+15.9062,95
+15.9098,92
+15.9135,95
+15.9172,94
+15.9209,93
+15.9246,93
+15.9282,94
+15.9319,93
+15.9356,94
+15.9393,94
+15.943,94
+15.9467,94
+15.9503,93
+15.954,93
+15.9577,93
+15.9614,94
+15.9651,94
+15.9687,94
+15.9724,92
+15.9761,94
+15.9798,94
+15.9835,93
+15.9872,94
+15.9908,94
+15.9945,93
+15.9982,93
+16.0019,93
+16.0055,94
+16.0092,94
+16.0129,93
+16.0166,94
+16.0203,92
+16.024,93
+16.0277,93
+16.0313,93
+16.035,93
+16.0387,93
+16.0424,93
+16.0461,93
+16.0497,93
+16.0534,94
+16.0571,94
+16.0608,93
+16.0645,93
+16.0681,94
+16.0718,93
+16.0755,92
+16.0792,93
+16.0829,94
+16.0865,93
+16.0902,92
+16.0939,93
+16.0976,94
+16.1013,93
+16.105,94
+16.1087,95
+16.1123,93
+16.116,92
+16.1197,93
+16.1234,93
+16.1271,93
+16.1307,93
+16.1344,92
+16.1381,93
+16.1418,93
+16.1455,92
+16.1491,93
+16.1528,93
+16.1565,94
+16.1602,94
+16.1639,92
+16.1675,93
+16.1712,93
+16.1749,93
+16.1786,93
+16.1823,93
+16.186,93
+16.1896,92
+16.1933,92
+16.197,92
+16.2007,92
+16.2044,93
+16.2081,92
+16.2117,93
+16.2154,92
+16.2191,93
+16.2228,94
+16.2265,93
+16.2301,94
+16.2338,94
+16.2375,91
+16.2412,94
+16.2449,93
+16.2486,92
+16.2522,93
+16.2559,93
+16.2596,93
+16.2633,92
+16.267,92
+16.2706,92
+16.2743,93
+16.278,93
+16.2817,92
+16.2854,94
+16.2891,92
+16.2927,93
+16.2964,93
+16.3001,93
+16.3038,93
+16.3074,93
+16.3111,92
+16.3148,93
+16.3185,92
+16.3222,93
+16.3259,93
+16.3296,93
+16.3332,93
+16.3369,93
+16.3406,92
+16.3443,93
+16.348,92
+16.3516,92
+16.3553,93
+16.359,92
+16.3627,93
+16.3664,92
+16.37,93
+16.3737,93
+16.3774,93
+16.3811,92
+16.3848,94
+16.3884,92
+16.3921,93
+16.3958,94
+16.3995,92
+16.4032,93
+16.4069,94
+16.4106,93
+16.4142,92
+16.4179,92
+16.4216,92
+16.4253,92
+16.429,92
+16.4326,93
+16.4363,94
+16.44,93
+16.4437,93
+16.4474,92
+16.451,92
+16.4547,92
+16.4584,93
+16.4621,93
+16.4658,94
+16.4694,93
+16.4731,92
+16.4768,92
+16.4805,93
+16.4842,92
+16.4879,92
+16.4916,94
+16.4952,93
+16.4989,92
+16.5026,93
+16.5063,92
+16.51,92
+16.5136,92
+16.5173,92
+16.521,93
+16.5247,92
+16.5284,93
+16.5321,93
+16.5357,92
+16.5394,92
+16.5431,92
+16.5468,92
+16.5505,93
+16.5541,92
+16.5578,93
+16.5615,92
+16.5652,93
+16.5689,93
+16.5726,93
+16.5762,93
+16.5799,93
+16.5836,92
+16.5873,93
+16.5909,93
+16.5946,92
+16.5983,93
+16.602,91
+16.6057,93
+16.6094,93
+16.6131,92
+16.6167,92
+16.6204,92
+16.6241,92
+16.6278,92
+16.6315,93
+16.6351,94
+16.6388,93
+16.6425,93
+16.6462,92
+16.6499,91
+16.6535,92
+16.6572,93
+16.6609,93
+16.6646,93
+16.6683,93
+16.6719,92
+16.6756,93
+16.6793,92
+16.683,93
+16.6867,92
+16.6904,93
+16.6941,93
+16.6977,92
+16.7014,92
+16.7051,93
+16.7088,92
+16.7125,93
+16.7161,92
+16.7198,91
+16.7235,91
+16.7272,92
+16.7309,93
+16.7345,92
+16.7382,93
+16.7419,92
+16.7456,93
+16.7493,92
+16.7529,93
+16.7566,93
+16.7603,92
+16.764,93
+16.7677,92
+16.7714,93
+16.7751,93
+16.7787,92
+16.7824,93
+16.7861,92
+16.7898,92
+16.7935,93
+16.7971,93
+16.8008,93
+16.8045,92
+16.8082,92
+16.8119,93
+16.8156,92
+16.8192,92
+16.8229,94
+16.8266,93
+16.8303,92
+16.834,93
+16.8376,93
+16.8413,93
+16.845,93
+16.8487,92
+16.8524,93
+16.856,92
+16.8597,93
+16.8634,93
+16.8671,92
+16.8708,92
+16.8745,92
+16.8781,91
+16.8818,92
+16.8855,92
+16.8892,92
+16.8929,93
+16.8965,91
+16.9002,92
+16.9039,91
+16.9076,93
+16.9113,93
+16.915,93
+16.9186,92
+16.9223,92
+16.926,92
+16.9297,92
+16.9334,93
+16.937,93
+16.9407,94
+16.9444,93
+16.9481,92
+16.9518,93
+16.9554,93
+16.9591,92
+16.9628,92
+16.9665,93
+16.9702,92
+16.9738,93
+16.9775,92
+16.9812,92
+16.9849,93
+16.9886,93
+16.9923,92
+16.996,92
+16.9996,93
+17.0033,93
+17.007,92
+17.0107,93
+17.0144,93
+17.018,92
+17.0217,92
+17.0254,91
+17.0291,93
+17.0328,92
+17.0364,92
+17.0401,93
+17.0438,91
+17.0475,92
+17.0512,93
+17.0548,93
+17.0585,93
+17.0622,92
+17.0659,92
+17.0696,93
+17.0733,92
+17.077,92
+17.0806,92
+17.0843,92
+17.088,93
+17.0917,93
+17.0954,93
+17.099,92
+17.1027,92
+17.1064,92
+17.1101,92
+17.1138,92
+17.1175,92
+17.1211,92
+17.1248,92
+17.1285,92
+17.1322,93
+17.1359,92
+17.1395,91
+17.1432,92
+17.1469,92
+17.1506,91
+17.1543,92
+17.158,93
+17.1616,91
+17.1653,92
+17.169,92
+17.1727,92
+17.1763,92
+17.18,92
+17.1837,92
+17.1874,92
+17.1911,92
+17.1948,92
+17.1985,92
+17.2021,93
+17.2058,93
+17.2095,93
+17.2132,93
+17.2169,92
+17.2205,92
+17.2242,92
+17.2279,93
+17.2316,93
+17.2353,91
+17.2389,92
+17.2426,92
+17.2463,92
+17.25,93
+17.2537,92
+17.2573,93
+17.261,93
+17.2647,91
+17.2684,91
+17.2721,92
+17.2758,92
+17.2795,93
+17.2831,93
+17.2868,92
+17.2905,92
+17.2942,92
+17.2979,92
+17.3015,93
+17.3052,92
+17.3089,92
+17.3126,91
+17.3163,93
+17.3199,92
+17.3236,91
+17.3273,92
+17.331,92
+17.3347,92
+17.3383,91
+17.342,92
+17.3457,92
+17.3494,92
+17.3531,93
+17.3568,92
+17.3605,93
+17.3641,92
+17.3678,91
+17.3715,91
+17.3752,92
+17.3789,93
+17.3825,91
+17.3862,92
+17.3899,92
+17.3936,92
+17.3973,92
+17.401,92
+17.4046,92
+17.4083,92
+17.412,92
+17.4157,92
+17.4194,92
+17.423,93
+17.4267,92
+17.4304,92
+17.4341,90
+17.4378,92
+17.4415,93
+17.4451,91
+17.4488,92
+17.4525,92
+17.4562,93
+17.4598,92
+17.4635,92
+17.4672,93
+17.4709,92
+17.4746,93
+17.4783,93
+17.4819,92
+17.4856,92
+17.4893,92
+17.493,92
+17.4967,92
+17.5004,91
+17.504,92
+17.5077,92
+17.5114,92
+17.5151,91
+17.5188,92
+17.5224,93
+17.5261,92
+17.5298,93
+17.5335,92
+17.5372,92
+17.5409,92
+17.5445,92
+17.5482,92
+17.5519,92
+17.5556,92
+17.5593,92
+17.5629,93
+17.5666,92
+17.5703,92
+17.574,92
+17.5777,92
+17.5814,93
+17.585,93
+17.5887,92
+17.5924,92
+17.5961,92
+17.5998,92
+17.6034,91
+17.6071,93
+17.6108,92
+17.6145,91
+17.6182,92
+17.6219,92
+17.6255,93
+17.6292,92
+17.6329,93
+17.6366,92
+17.6403,92
+17.6439,92
+17.6476,92
+17.6513,92
+17.655,91
+17.6587,92
+17.6624,92
+17.666,92
+17.6697,92
+17.6734,93
+17.6771,92
+17.6808,92
+17.6844,92
+17.6881,93
+17.6918,92
+17.6955,92
+17.6992,93
+17.7029,92
+17.7065,92
+17.7102,92
+17.7139,91
+17.7176,91
+17.7213,93
+17.7249,92
+17.7286,91
+17.7323,92
+17.736,92
+17.7397,93
+17.7434,92
+17.747,93
+17.7507,92
+17.7544,92
+17.7581,93
+17.7617,92
+17.7654,92
+17.7691,92
+17.7728,92
+17.7765,92
+17.7802,92
+17.7839,93
+17.7875,91
+17.7912,92
+17.7949,91
+17.7986,93
+17.8023,92
+17.8059,92
+17.8096,92
+17.8133,91
+17.817,92
+17.8207,92
+17.8244,92
+17.828,92
+17.8317,91
+17.8354,92
+17.8391,93
+17.8428,92
+17.8464,91
+17.8501,92
+17.8538,92
+17.8575,92
+17.8612,92
+17.8649,92
+17.8685,91
+17.8722,92
+17.8759,92
+17.8796,92
+17.8833,93
+17.8869,92
+17.8906,93
+17.8943,92
+17.898,92
+17.9017,92
+17.9054,92
+17.909,92
+17.9127,92
+17.9164,92
+17.9201,92
+17.9238,92
+17.9274,93
+17.9311,92
+17.9348,92
+17.9385,92
+17.9422,93
+17.9459,92
+17.9495,92
+17.9532,92
+17.9569,92
+17.9606,92
+17.9643,91
+17.9679,93
+17.9716,92
+17.9753,92
+17.979,92
+17.9827,93
+17.9864,92
+17.99,93
+17.9937,92
+17.9974,92
+18.0011,92
+18.0048,92
+18.0084,93
+18.0121,93
+18.0158,93
+18.0195,92
+18.0232,92
+18.0269,92
+18.0305,92
+18.0342,92
+18.0379,92
+18.0416,93
+18.0452,93
+18.0489,91
+18.0526,92
+18.0563,92
+18.06,92
+18.0637,93
+18.0674,91
+18.071,92
+18.0747,92
+18.0784,93
+18.0821,93
+18.0858,92
+18.0894,92
+18.0931,92
+18.0968,92
+18.1005,93
+18.1042,92
+18.1078,92
+18.1115,93
+18.1152,92
+18.1189,92
+18.1226,94
+18.1263,93
+18.1299,92
+18.1336,93
+18.1373,92
+18.141,92
+18.1447,91
+18.1483,92
+18.152,93
+18.1557,92
+18.1594,92
+18.1631,93
+18.1668,92
+18.1704,92
+18.1741,92
+18.1778,92
+18.1815,91
+18.1852,92
+18.1888,92
+18.1925,93
+18.1962,92
+18.1999,93
+18.2036,92
+18.2073,93
+18.2109,91
+18.2146,93
+18.2183,92
+18.222,92
+18.2257,93
+18.2293,93
+18.233,91
+18.2367,92
+18.2404,92
+18.2441,92
+18.2478,92
+18.2514,92
+18.2551,92
+18.2588,92
+18.2625,91
+18.2662,93
+18.2698,92
+18.2735,92
+18.2772,92
+18.2809,92
+18.2846,92
+18.2883,92
+18.2919,93
+18.2956,92
+18.2993,92
+18.303,92
+18.3067,93
+18.3103,92
+18.314,93
+18.3177,93
+18.3214,92
+18.3251,92
+18.3287,93
+18.3324,92
+18.3361,92
+18.3398,92
+18.3435,92
+18.3471,92
+18.3508,91
+18.3545,93
+18.3582,92
+18.3619,92
+18.3656,92
+18.3693,92
+18.3729,92
+18.3766,93
+18.3803,94
+18.384,91
+18.3877,93
+18.3913,92
+18.395,93
+18.3987,92
+18.4024,92
+18.4061,92
+18.4098,91
+18.4134,93
+18.4171,91
+18.4208,92
+18.4245,92
+18.4282,93
+18.4318,93
+18.4355,91
+18.4392,92
+18.4429,91
+18.4466,91
+18.4503,93
+18.4539,92
+18.4576,92
+18.4613,92
+18.465,93
+18.4687,92
+18.4723,92
+18.476,92
+18.4797,92
+18.4834,93
+18.4871,93
+18.4908,92
+18.4944,92
+18.4981,93
+18.5018,93
+18.5055,92
+18.5092,92
+18.5128,93
+18.5165,93
+18.5202,92
+18.5239,92
+18.5276,93
+18.5313,92
+18.5349,93
+18.5386,92
+18.5423,93
+18.546,92
+18.5497,92
+18.5533,93
+18.557,93
+18.5607,93
+18.5644,92
+18.5681,92
+18.5718,92
+18.5754,92
+18.5791,92
+18.5828,93
+18.5865,92
+18.5902,93
+18.5938,93
+18.5975,92
+18.6012,93
+18.6049,92
+18.6086,92
+18.6123,92
+18.6159,92
+18.6196,93
+18.6233,92
+18.627,91
+18.6306,91
+18.6343,92
+18.638,92
+18.6417,92
+18.6454,93
+18.6491,92
+18.6528,92
+18.6564,91
+18.6601,93
+18.6638,94
+18.6675,93
+18.6712,92
+18.6748,92
+18.6785,91
+18.6822,92
+18.6859,92
+18.6896,93
+18.6933,92
+18.6969,92
+18.7006,91
+18.7043,92
+18.708,92
+18.7117,93
+18.7153,92
+18.719,92
+18.7227,92
+18.7264,93
+18.7301,92
+18.7338,93
+18.7374,92
+18.7411,91
+18.7448,92
+18.7485,93
+18.7522,92
+18.7558,92
+18.7595,92
+18.7632,91
+18.7669,93
+18.7706,92
+18.7743,93
+18.7779,91
+18.7816,91
+18.7853,93
+18.789,91
+18.7927,93
+18.7963,93
+18.8,92
+18.8037,92
+18.8074,93
+18.8111,92
+18.8147,92
+18.8184,92
+18.8221,92
+18.8258,93
+18.8295,93
+18.8332,92
+18.8368,93
+18.8405,92
+18.8442,92
+18.8479,93
+18.8516,93
+18.8552,92
+18.8589,93
+18.8626,93
+18.8663,92
+18.87,92
+18.8737,92
+18.8773,92
+18.881,93
+18.8847,93
+18.8884,93
+18.8921,93
+18.8957,92
+18.8994,92
+18.9031,93
+18.9068,93
+18.9105,92
+18.9141,92
+18.9178,92
+18.9215,93
+18.9252,92
+18.9289,92
+18.9326,91
+18.9362,92
+18.9399,92
+18.9436,92
+18.9473,92
+18.951,92
+18.9547,93
+18.9583,91
+18.962,93
+18.9657,93
+18.9694,92
+18.9731,93
+18.9767,92
+18.9804,93
+18.9841,92
+18.9878,93
+18.9915,92
+18.9952,92
+18.9988,92
+19.0025,93
+19.0062,92
+19.0099,92
+19.0136,92
+19.0172,93
+19.0209,93
+19.0246,93
+19.0283,92
+19.032,92
+19.0357,93
+19.0393,92
+19.043,91
+19.0467,93
+19.0504,92
+19.0541,93
+19.0577,92
+19.0614,92
+19.0651,93
+19.0688,93
+19.0725,93
+19.0762,92
+19.0798,92
+19.0835,91
+19.0872,93
+19.0909,92
+19.0946,93
+19.0982,93
+19.1019,92
+19.1056,93
+19.1093,92
+19.113,92
+19.1167,92
+19.1203,93
+19.124,93
+19.1277,92
+19.1314,91
+19.1351,93
+19.1387,94
+19.1424,92
+19.1461,92
+19.1498,93
+19.1535,93
+19.1572,93
+19.1608,92
+19.1645,93
+19.1682,93
+19.1719,92
+19.1756,92
+19.1792,92
+19.1829,92
+19.1866,92
+19.1903,91
+19.194,93
+19.1976,93
+19.2013,93
+19.205,93
+19.2087,92
+19.2124,91
+19.216,90
+19.2197,91
+19.2234,91
+19.2271,91
+19.2308,91
+19.2345,91
+19.2382,91
+19.2418,91
+19.2455,91
+19.2492,91
+19.2529,91
+19.2566,91
+19.2602,91
+19.2639,91
+19.2676,91
+19.2713,92
+19.275,91
+19.2787,91
+19.2823,91
+19.286,91
+19.2897,91
+19.2934,92
+19.2971,92
+19.3007,91
+19.3044,91
+19.3081,91
+19.3118,91
+19.3155,92
+19.3192,93
+19.3228,93
+19.3265,95
+19.3302,95
+19.3339,96
+19.3376,97
+19.3412,96
+19.3449,99
+19.3486,98
+19.3523,98
+19.356,98
+19.3597,98
+19.3633,97
+19.367,96
+19.3707,98
+19.3744,96
+19.3781,97
+19.3817,98
+19.3854,97
+19.3891,96
+19.3928,97
+19.3965,97
+19.4002,96
+19.4038,96
+19.4075,94
+19.4112,96
+19.4149,95
+19.4186,96
+19.4222,97
+19.4259,96
+19.4296,96
+19.4333,96
+19.437,96
+19.4406,98
+19.4443,99
+19.448,101
+19.4517,100
+19.4554,101
+19.4591,101
+19.4627,102
+19.4664,103
+19.4701,102
+19.4738,102
+19.4775,102
+19.4811,101
+19.4848,102
+19.4885,101
+19.4922,101
+19.4959,100
+19.4995,101
+19.5032,102
+19.5069,100
+19.5106,99
+19.5143,100
+19.518,97
+19.5216,98
+19.5253,99
+19.529,98
+19.5327,97
+19.5364,98
+19.5401,97
+19.5437,98
+19.5474,98
+19.5511,97
+19.5548,96
+19.5585,97
+19.5621,98
+19.5658,98
+19.5695,95
+19.5732,97
+19.5769,95
+19.5806,97
+19.5842,97
+19.5879,96
+19.5916,97
+19.5953,95
+19.599,96
+19.6026,96
+19.6063,97
+19.61,96
+19.6137,96
+19.6174,95
+19.6211,94
+19.6247,97
+19.6284,95
+19.6321,95
+19.6358,94
+19.6395,94
+19.6431,95
+19.6468,95
+19.6505,95
+19.6542,94
+19.6579,95
+19.6616,95
+19.6652,95
+19.6689,94
+19.6726,95
+19.6763,95
+19.68,96
+19.6836,94
+19.6873,95
+19.691,94
+19.6947,96
+19.6984,94
+19.7021,94
+19.7057,94
+19.7094,94
+19.7131,94
+19.7168,94
+19.7205,95
+19.7241,95
+19.7278,94
+19.7315,94
+19.7352,94
+19.7389,94
+19.7426,95
+19.7462,94
+19.7499,94
+19.7536,93
+19.7573,94
+19.761,95
+19.7646,94
+19.7683,94
+19.772,94
+19.7757,94
+19.7794,94
+19.783,93
+19.7867,92
+19.7904,93
+19.7941,94
+19.7978,93
+19.8015,93
+19.8051,94
+19.8088,93
+19.8125,93
+19.8162,93
+19.8199,94
+19.8236,95
+19.8272,93
+19.8309,93
+19.8346,93
+19.8383,93
+19.842,93
+19.8456,93
+19.8493,92
+19.853,93
+19.8567,93
+19.8604,93
+19.8641,93
+19.8677,93
+19.8714,92
+19.8751,93
+19.8788,93
+19.8825,93
+19.8861,93
+19.8898,92
+19.8935,92
+19.8972,93
+19.9009,92
+19.9046,93
+19.9082,93
+19.9119,93
+19.9156,93
+19.9193,92
+19.923,92
+19.9266,93
+19.9303,92
+19.934,91
+19.9377,94
+19.9414,93
+19.9451,92
+19.9487,93
+19.9524,92
+19.9561,93
+19.9598,93
+19.9635,92
+19.9671,94
+19.9708,93
+19.9745,93
+19.9782,93
+19.9819,93
+19.9856,92
+19.9892,93
+19.9929,93
+19.9966,92
+20.0003,93
+20.004,92
+20.0076,93
+20.0113,93
+20.015,92
+20.0187,92
+20.0224,93
+20.0261,92
+20.0297,94
+20.0334,92
+20.0371,92
+20.0408,93
+20.0445,92
+20.0481,92
+20.0518,92
+20.0555,93
+20.0592,92
+20.0629,94
+20.0665,92
+20.0702,92
+20.0739,93
+20.0776,93
+20.0813,93
+20.0849,93
+20.0886,92
+20.0923,92
+20.096,92
+20.0997,92
+20.1034,92
+20.107,92
+20.1107,92
+20.1144,94
+20.1181,92
+20.1218,92
+20.1255,92
+20.1291,92
+20.1328,92
+20.1365,91
+20.1402,92
+20.1439,93
+20.1475,92
+20.1512,93
+20.1549,92
+20.1586,93
+20.1623,93
+20.166,92
+20.1696,93
+20.1733,92
+20.177,93
+20.1807,92
+20.1844,93
+20.188,92
+20.1917,92
+20.1954,92
+20.1991,93
+20.2028,93
+20.2065,93
+20.2101,92
+20.2138,93
+20.2175,91
+20.2212,93
+20.2249,92
+20.2285,93
+20.2322,92
+20.2359,92
+20.2396,92
+20.2433,93
+20.247,91
+20.2506,92
+20.2543,92
+20.258,91
+20.2617,92
+20.2654,92
+20.269,93
+20.2727,92
+20.2764,92
+20.2801,92
+20.2838,92
+20.2875,93
+20.2911,92
+20.2948,94
+20.2985,92
+20.3022,92
+20.3059,93
+20.3095,92
+20.3132,93
+20.3169,92
+20.3206,91
+20.3243,93
+20.328,92
+20.3316,92
+20.3353,92
+20.339,92
+20.3427,92
+20.3464,92
+20.35,92
+20.3537,91
+20.3574,93
+20.3611,91
+20.3648,92
+20.3684,93
+20.3721,91
+20.3758,93
+20.3795,91
+20.3832,93
+20.3869,93
+20.3905,93
+20.3942,91
+20.3979,92
+20.4016,92
+20.4053,92
+20.409,92
+20.4126,92
+20.4163,92
+20.42,93
+20.4237,92
+20.4274,92
+20.431,92
+20.4347,92
+20.4384,92
+20.4421,93
+20.4458,92
+20.4495,93
+20.4531,91
+20.4568,92
+20.4605,92
+20.4642,93
+20.4679,93
+20.4715,91
+20.4752,93
+20.4789,91
+20.4826,92
+20.4863,92
+20.49,93
+20.4936,92
+20.4973,92
+20.501,92
+20.5047,93
+20.5084,92
+20.512,91
+20.5157,93
+20.5194,92
+20.5231,91
+20.5268,91
+20.5305,92
+20.5341,93
+20.5378,92
+20.5415,91
+20.5452,91
+20.5489,92
+20.5525,92
+20.5562,92
+20.5599,92
+20.5636,92
+20.5673,93
+20.571,92
+20.5746,91
+20.5783,93
+20.582,92
+20.5857,91
+20.5894,92
+20.593,92
+20.5967,93
+20.6004,92
+20.6041,91
+20.6078,92
+20.6115,94
+20.6151,93
+20.6188,92
+20.6225,92
+20.6262,92
+20.6299,93
+20.6335,93
+20.6372,92
+20.6409,92
+20.6446,91
+20.6483,91
+20.6519,92
+20.6556,92
+20.6593,93
+20.663,91
+20.6667,92
+20.6704,92
+20.674,91
+20.6777,92
+20.6814,92
+20.6851,93
+20.6888,92
+20.6925,92
+20.6961,93
+20.6998,92
+20.7035,92
+20.7072,92
+20.7109,93
+20.7145,92
+20.7182,93
+20.7219,92
+20.7256,92
+20.7293,93
+20.733,91
+20.7366,91
+20.7403,93
+20.744,92
+20.7477,92
+20.7514,91
+20.755,93
+20.7587,92
+20.7624,92
+20.7661,91
+20.7698,92
+20.7734,92
+20.7771,92
+20.7808,92
+20.7845,92
+20.7882,91
+20.7919,92
+20.7955,93
+20.7992,92
+20.8029,92
+20.8066,93
+20.8103,93
+20.8139,91
+20.8176,92
+20.8213,92
+20.825,91
+20.8287,91
+20.8324,92
+20.836,91
+20.8397,93
+20.8434,92
+20.8471,92
+20.8508,93
+20.8544,92
+20.8581,93
+20.8618,92
+20.8655,92
+20.8692,94
+20.8729,92
+20.8765,93
+20.8802,92
+20.8839,94
+20.8876,92
+20.8912,92
+20.8949,92
+20.8986,92
+20.9023,93
+20.906,92
+20.9097,92
+20.9134,93
+20.917,93
+20.9207,93
+20.9244,92
+20.9281,92
+20.9318,92
+20.9354,91
+20.9391,93
+20.9428,92
+20.9465,92
+20.9502,92
+20.9539,92
+20.9575,92
+20.9612,92
+20.9649,92
+20.9686,92
+20.9723,92
+20.9759,93
+20.9796,93
+20.9833,93
+20.987,93
+20.9907,92
+20.9944,92
+20.998,93
+21.0017,94
+21.0054,93
+21.0091,92
+21.0128,93
+21.0164,92
+21.0201,92
+21.0238,92
+21.0275,92
+21.0312,93
+21.0349,93
+21.0385,92
+21.0422,92
+21.0459,92
+21.0496,93
+21.0533,92
+21.0569,92
+21.0606,92
+21.0643,92
+21.068,92
+21.0717,92
+21.0754,93
+21.079,93
+21.0827,93
+21.0864,93
+21.0901,92
+21.0938,92
+21.0974,93
+21.1011,92
+21.1048,93
+21.1085,92
+21.1122,92
+21.1159,94
+21.1195,92
+21.1232,92
+21.1269,92
+21.1306,92
+21.1343,92
+21.1379,92
+21.1416,93
+21.1453,93
+21.149,92
+21.1527,91
+21.1564,92
+21.16,92
+21.1637,92
+21.1674,91
+21.1711,92
+21.1748,92
+21.1784,93
+21.1821,92
+21.1858,93
+21.1895,93
+21.1932,92
+21.1969,92
+21.2005,92
+21.2042,93
+21.2079,93
+21.2116,93
+21.2153,92
+21.2189,93
+21.2226,92
+21.2263,93
+21.23,92
+21.2337,92
+21.2373,93
+21.241,93
+21.2447,92
+21.2484,93
+21.2521,92
+21.2558,92
+21.2594,92
+21.2631,93
+21.2668,92
+21.2705,92
+21.2742,93
+21.2779,93
+21.2815,94
+21.2852,92
+21.2889,92
+21.2926,93
+21.2963,92
+21.2999,92
+21.3036,93
+21.3073,92
+21.311,93
+21.3147,92
+21.3184,93
+21.322,92
+21.3257,94
+21.3294,93
+21.3331,93
+21.3368,94
+21.3404,93
+21.3441,94
+21.3478,92
+21.3515,93
+21.3552,92
+21.3589,92
+21.3625,93
+21.3662,93
+21.3699,94
+21.3736,93
+21.3773,93
+21.3809,93
+21.3846,93
+21.3883,94
+21.392,93
+21.3957,93
+21.3994,93
+21.403,93
+21.4067,93
+21.4104,93
+21.4141,93
+21.4178,94
+21.4214,93
+21.4251,92
+21.4288,93
+21.4325,92
+21.4362,93
+21.4398,92
+21.4435,93
+21.4472,93
+21.4509,94
+21.4546,93
+21.4583,92
+21.4619,92
+21.4656,93
+21.4693,93
+21.473,94
+21.4767,93
+21.4803,94
+21.484,92
+21.4877,94
+21.4914,93
+21.4951,93
+21.4988,92
+21.5024,93
+21.5061,92
+21.5098,93
+21.5135,93
+21.5172,92
+21.5208,93
+21.5245,92
+21.5282,93
+21.5319,94
+21.5356,92
+21.5393,93
+21.5429,94
+21.5466,93
+21.5503,93
+21.554,93
+21.5577,94
+21.5613,93
+21.565,94
+21.5687,93
+21.5724,94
+21.5761,93
+21.5798,94
+21.5834,93
+21.5871,93
+21.5908,94
+21.5945,93
+21.5982,93
+21.6018,93
+21.6055,93
+21.6092,93
+21.6129,93
+21.6166,93
+21.6203,93
+21.6239,93
+21.6276,92
+21.6313,93
+21.635,93
+21.6387,93
+21.6423,94
+21.646,93
+21.6497,93
+21.6534,92
+21.6571,94
+21.6608,93
+21.6644,92
+21.6681,93
+21.6718,93
+21.6755,93
+21.6792,93
+21.6828,94
+21.6865,93
+21.6902,94
+21.6939,93
+21.6976,93
+21.7013,94
+21.7049,95
+21.7086,94
+21.7123,93
+21.716,93
+21.7197,93
+21.7233,93
+21.727,94
+21.7307,93
+21.7344,92
+21.7381,93
+21.7418,94
+21.7454,93
+21.7491,93
+21.7528,93
+21.7565,93
+21.7601,91
+21.7638,92
+21.7675,93
+21.7712,93
+21.7749,93
+21.7786,93
+21.7823,93
+21.7859,93
+21.7896,92
+21.7933,94
+21.797,93
+21.8007,93
+21.8043,93
+21.808,93
+21.8117,94
+21.8154,94
+21.8191,94
+21.8228,93
+21.8264,93
+21.8301,93
+21.8338,94
+21.8375,94
+21.8412,94
+21.8448,93
+21.8485,94
+21.8522,93
+21.8559,94
+21.8596,93
+21.8633,93
+21.8669,93
+21.8706,93
+21.8743,94
+21.878,93
+21.8817,94
+21.8853,93
+21.889,93
+21.8927,93
+21.8964,93
+21.9001,94
+21.9038,93
+21.9074,92
+21.9111,92
+21.9148,93
+21.9185,93
+21.9222,94
+21.9258,94
+21.9295,93
+21.9332,93
+21.9369,93
+21.9406,93
+21.9443,94
+21.9479,94
+21.9516,93
+21.9553,93
+21.959,92
+21.9627,94
+21.9663,93
+21.97,93
+21.9737,93
+21.9774,93
+21.9811,93
+21.9848,93
+21.9884,93
+21.9921,92
+21.9958,93
+21.9995,93
+22.0032,92
+22.0068,93
+22.0105,92
+22.0142,94
+22.0179,93
+22.0216,93
+22.0253,93
+22.0289,93
+22.0326,93
+22.0363,93
+22.04,93
+22.0437,94
+22.0473,93
+22.051,93
+22.0547,93
+22.0584,93
+22.0621,93
+22.0657,93
+22.0694,93
+22.0731,93
+22.0768,93
+22.0805,93
+22.0842,93
+22.0878,94
+22.0915,94
+22.0952,93
+22.0989,94
+22.1026,93
+22.1062,92
+22.1099,94
+22.1136,94
+22.1173,93
+22.121,93
+22.1247,94
+22.1283,94
+22.132,92
+22.1357,95
+22.1394,93
+22.1431,93
+22.1467,93
+22.1504,94
+22.1541,94
+22.1578,94
+22.1615,94
+22.1652,93
+22.1688,93
+22.1725,93
+22.1762,93
+22.1799,94
+22.1836,93
+22.1872,93
+22.1909,93
+22.1946,93
+22.1983,93
+22.202,94
+22.2057,93
+22.2093,94
+22.213,94
+22.2167,94
+22.2204,94
+22.2241,94
+22.2277,93
+22.2314,94
+22.2351,93
+22.2388,94
+22.2425,93
+22.2462,94
+22.2498,93
+22.2535,94
+22.2572,93
+22.2609,93
+22.2646,93
+22.2682,94
+22.2719,93
+22.2756,94
+22.2793,93
+22.283,93
+22.2867,93
+22.2903,94
+22.294,93
+22.2977,94
+22.3014,94
+22.3051,93
+22.3087,94
+22.3124,93
+22.3161,94
+22.3198,93
+22.3235,93
+22.3272,93
+22.3308,93
+22.3345,94
+22.3382,94
+22.3419,94
+22.3455,93
+22.3492,94
+22.3529,93
+22.3566,94
+22.3603,93
+22.364,94
+22.3677,95
+22.3713,93
+22.375,94
+22.3787,93
+22.3824,93
+22.3861,94
+22.3897,96
+22.3934,94
+22.3971,94
+22.4008,93
+22.4045,94
+22.4082,94
+22.4118,94
+22.4155,94
+22.4192,94
+22.4229,93
+22.4266,94
+22.4302,95
+22.4339,93
+22.4376,93
+22.4413,93
+22.445,94
+22.4487,94
+22.4523,93
+22.456,93
+22.4597,94
+22.4634,93
+22.4671,93
+22.4707,94
+22.4744,93
+22.4781,93
+22.4818,93
+22.4855,93
+22.4892,94
+22.4928,93
+22.4965,94
+22.5002,93
+22.5039,93
+22.5076,94
+22.5112,93
+22.5149,94
+22.5186,93
+22.5223,93
+22.526,94
+22.5297,95
+22.5333,94
+22.537,94
+22.5407,94
+22.5444,94
+22.5481,94
+22.5517,93
+22.5554,95
+22.5591,94
+22.5628,93
+22.5665,94
+22.5702,95
+22.5738,94
+22.5775,95
+22.5812,95
+22.5849,94
+22.5886,94
+22.5922,93
+22.5959,93
+22.5996,94
+22.6033,150
+22.607,150
+22.6107,151
+22.6143,154
+22.618,151
+22.6217,152
+22.6254,151
+22.629,154
+22.6327,158
+22.6364,153
+22.6401,152
+22.6438,153
+22.6475,153
+22.6512,152
+22.6548,153
+22.6585,154
+22.6622,151
+22.6659,154
+22.6696,155
+22.6732,155
+22.6769,156
+22.6806,156
+22.6843,155
+22.688,155
+22.6917,159
+22.6953,155
+22.699,157
+22.7027,154
+22.7064,156
+22.7101,158
+22.7137,157
+22.7174,159
+22.7211,160
+22.7248,158
+22.7285,158
+22.7321,155
+22.7358,159
+22.7395,159
+22.7432,159
+22.7469,162
+22.7506,155
+22.7542,155
+22.7579,160
+22.7616,160
+22.7653,160
+22.769,155
+22.7726,160
+22.7763,160
+22.78,161
+22.7837,160
+22.7874,161
+22.7911,159
+22.7947,161
+22.7984,159
+22.8021,159
+22.8058,158
+22.8095,161
+22.8131,163
+22.8168,162
+22.8205,160
+22.8242,161
+22.8279,161
+22.8316,160
+22.8352,161
+22.8389,162
+22.8426,162
+22.8463,163
+22.85,161
+22.8536,164
+22.8573,162
+22.861,159
+22.8647,162
+22.8684,166
+22.8721,166
+22.8757,162
+22.8794,164
+22.8831,162
+22.8868,159
+22.8905,163
+22.8941,164
+22.8978,163
+22.9015,164
+22.9052,162
+22.9089,161
+22.9126,163
+22.9162,165
+22.9199,160
+22.9236,164
+22.9273,163
+22.931,161
+22.9346,161
+22.9383,164
+22.942,165
+22.9457,168
+22.9494,165
+22.9531,166
+22.9567,166
+22.9604,163
+22.9641,165
+22.9678,165
+22.9715,165
+22.9751,161
+22.9788,169
+22.9825,165
+22.9862,165
+22.9899,164
+22.9936,163
+22.9972,162
+23.0009,162
+23.0046,166
+23.0083,167
+23.012,168
+23.0156,171
+23.0193,168
+23.023,169
+23.0267,168
+23.0304,170
+23.0341,168
+23.0377,166
+23.0414,167
+23.0451,165
+23.0488,163
+23.0525,166
+23.0561,168
+23.0598,167
+23.0635,169
+23.0672,167
+23.0709,168
+23.0746,168
+23.0782,168
+23.0819,169
+23.0856,171
+23.0893,167
+23.093,168
+23.0966,168
+23.1003,168
+23.104,169
+23.1077,173
+23.1114,169
+23.1151,169
+23.1187,173
+23.1224,170
+23.1261,169
+23.1298,169
+23.1335,170
+23.1371,171
+23.1408,169
+23.1445,172
+23.1482,168
+23.1519,172
+23.1556,170
+23.1592,171
+23.1629,169
+23.1666,173
+23.1703,172
+23.174,170
+23.1776,171
+23.1813,171
+23.185,171
+23.1887,175
+23.1924,166
+23.1961,173
+23.1997,171
+23.2034,172
+23.2071,170
+23.2108,176
+23.2144,175
+23.2181,173
+23.2218,174
+23.2255,173
+23.2292,172
+23.2329,171
+23.2366,172
+23.2402,172
+23.2439,177
+23.2476,175
+23.2513,173
+23.255,175
+23.2586,173
+23.2623,173
+23.266,173
+23.2697,175
+23.2734,173
+23.2771,175
+23.2807,172
+23.2844,172
+23.2881,176
+23.2918,174
+23.2955,170
+23.2991,172
+23.3028,177
+23.3065,178
+23.3102,177
+23.3139,174
+23.3176,174
+23.3212,175
+23.3249,175
+23.3286,175
+23.3323,176
+23.336,177
+23.3396,176
+23.3433,175
+23.347,177
+23.3507,175
+23.3544,178
+23.3581,179
+23.3617,175
+23.3654,178
+23.3691,173
+23.3728,176
+23.3765,177
+23.3801,176
+23.3838,179
+23.3875,178
+23.3912,179
+23.3949,177
+23.3985,173
+23.4022,179
+23.4059,174
+23.4096,179
+23.4133,174
+23.417,174
+23.4206,177
+23.4243,173
+23.428,180
+23.4317,174
+23.4354,179
+23.439,176
+23.4427,180
+23.4464,177
+23.4501,181
+23.4538,176
+23.4575,179
+23.4611,177
+23.4648,177
+23.4685,183
+23.4722,175
+23.4759,185
+23.4795,175
+23.4832,183
+23.4869,182
+23.4906,184
+23.4943,182
+23.4979,177
+23.5016,185
+23.5053,177
+23.509,179
+23.5127,183
+23.5164,185
+23.52,183
+23.5237,182
+23.5274,183
+23.5311,180
+23.5348,185
+23.5385,183
+23.5421,183
+23.5458,184
+23.5495,183
+23.5532,184
+23.5569,185
+23.5605,181
+23.5642,184
+23.5679,182
+23.5716,182
+23.5753,183
+23.579,184
+23.5826,185
+23.5863,183
+23.59,181
+23.5937,184
+23.5974,184
+23.601,183
+23.6047,183
+23.6084,184
+23.6121,183
+23.6158,182
+23.6195,183
+23.6231,186
+23.6268,189
+23.6305,185
+23.6342,183
+23.6379,185
+23.6415,187
+23.6452,184
+23.6489,186
+23.6526,189
+23.6563,192
+23.66,186
+23.6636,191
+23.6673,183
+23.671,184
+23.6747,185
+23.6784,190
+23.682,186
+23.6857,187
+23.6894,190
+23.6931,184
+23.6968,189
+23.7005,188
+23.7041,186
+23.7078,185
+23.7115,195
+23.7152,189
+23.7189,188
+23.7225,189
+23.7262,191
+23.7299,192
+23.7336,188
+23.7373,190
+23.741,191
+23.7446,192
+23.7483,188
+23.752,190
+23.7557,192
+23.7594,192
+23.763,189
+23.7667,191
+23.7704,186
+23.7741,192
+23.7778,193
+23.7815,188
+23.7851,191
+23.7888,189
+23.7925,187
+23.7962,193
+23.7999,191
+23.8035,193
+23.8072,194
+23.8109,194
+23.8146,190
+23.8183,186
+23.822,190
+23.8256,191
+23.8293,191
+23.833,195
+23.8367,191
+23.8404,189
+23.844,191
+23.8477,193
+23.8514,195
+23.8551,192
+23.8588,193
+23.8625,191
+23.8661,195
+23.8698,190
+23.8735,195
+23.8772,195
+23.8809,191
+23.8845,192
+23.8882,193
+23.8919,195
+23.8956,195
+23.8993,196
+23.903,193
+23.9066,195
+23.9103,192
+23.914,194
+23.9177,195
+23.9214,197
+23.925,194
+23.9287,198
+23.9324,195
+23.9361,194
+23.9398,193
+23.9435,199
+23.9471,193
+23.9508,193
+23.9545,194
+23.9582,198
+23.9619,198
+23.9655,198
+23.9692,196
+23.9729,197
+23.9766,197
+23.9803,197
+23.984,197
+23.9876,199
+23.9913,197
+23.995,202
+23.9987,202
+24.0024,199
+24.006,198
+24.0097,200
+24.0134,199
+24.0171,202
+24.0208,198
+24.0244,200
+24.0281,200
+24.0318,199
+24.0355,197
+24.0392,200
+24.0429,199
+24.0465,201
+24.0502,199
+24.0539,197
+24.0576,197
+24.0613,200
+24.0649,205
+24.0686,200
+24.0723,205
+24.076,199
+24.0797,198
+24.0834,205
+24.087,205
+24.0907,206
+24.0944,201
+24.0981,203
+24.1018,203
+24.1054,199
+24.1091,202
+24.1128,201
+24.1165,203
+24.1202,203
+24.1239,205
+24.1275,202
+24.1312,206
+24.1349,203
+24.1386,206
+24.1423,205
+24.1459,205
+24.1496,206
+24.1533,202
+24.157,205
+24.1607,200
+24.1644,205
+24.168,207
+24.1717,205
+24.1754,204
+24.1791,203
+24.1828,209
+24.1864,203
+24.1901,204
+24.1938,207
+24.1975,207
+24.2012,205
+24.2049,207
+24.2085,208
+24.2122,212
+24.2159,205
+24.2196,204
+24.2233,206
+24.2269,207
+24.2306,210
+24.2343,207
+24.238,207
+24.2417,210
+24.2454,208
+24.249,209
+24.2527,203
+24.2564,206
+24.2601,208
+24.2638,210
+24.2674,212
+24.2711,207
+24.2748,208
+24.2785,209
+24.2822,206
+24.2859,211
+24.2895,209
+24.2932,211
+24.2969,207
+24.3006,211
+24.3043,210
+24.3079,211
+24.3116,209
+24.3153,210
+24.319,210
+24.3227,210
+24.3264,210
+24.33,210
+24.3337,213
+24.3374,210
+24.3411,210
+24.3448,212
+24.3484,209
+24.3521,214
+24.3558,214
+24.3595,214
+24.3632,215
+24.3668,210
+24.3705,217
+24.3742,213
+24.3779,207
+24.3816,213
+24.3853,218
+24.3889,215
+24.3926,211
+24.3963,214
+24.4,210
+24.4037,213
+24.4074,215
+24.411,214
+24.4147,211
+24.4184,212
+24.4221,216
+24.4258,215
+24.4294,216
+24.4331,211
+24.4368,214
+24.4405,216
+24.4442,215
+24.4479,217
+24.4515,220
+24.4552,219
+24.4589,213
+24.4626,217
+24.4663,218
+24.4699,214
+24.4736,215
+24.4773,222
+24.481,218
+24.4847,218
+24.4884,219
+24.492,218
+24.4957,224
+24.4994,221
+24.5031,219
+24.5068,216
+24.5104,222
+24.5141,218
+24.5178,219
+24.5215,219
+24.5252,218
+24.5289,217
+24.5325,219
+24.5362,223
+24.5399,219
+24.5436,227
+24.5473,220
+24.5509,222
+24.5546,220
+24.5583,223
+24.562,221
+24.5657,226
+24.5694,221
+24.573,221
+24.5767,227
+24.5804,220
+24.5841,219
+24.5878,224
+24.5914,224
+24.5951,226
+24.5988,222
+24.6025,230
+24.6062,222
+24.6099,223
+24.6135,225
+24.6172,221
+24.6209,221
+24.6246,228
+24.6283,225
+24.6319,222
+24.6356,225
+24.6393,221
+24.643,227
+24.6467,225
+24.6504,226
+24.654,228
+24.6577,228
+24.6614,229
+24.6651,223
+24.6688,223
+24.6724,225
+24.6761,225
+24.6798,227
+24.6835,230
+24.6872,226
+24.6908,227
+24.6945,225
+24.6982,229
+24.7019,233
+24.7056,229
+24.7093,231
+24.7129,232
+24.7166,229
+24.7203,230
+24.724,221
+24.7277,225
+24.7313,231
+24.735,228
+24.7387,229
+24.7424,231
+24.7461,230
+24.7498,229
+24.7534,230
+24.7571,226
+24.7608,233
+24.7645,231
+24.7682,229
+24.7718,233
+24.7755,227
+24.7792,234
+24.7829,233
+24.7866,233
+24.7903,232
+24.7939,231
+24.7976,233
+24.8013,236
+24.805,231
+24.8087,236
+24.8123,233
+24.816,234
+24.8197,237
+24.8234,231
+24.8271,235
+24.8308,237
+24.8344,233
+24.8381,234
+24.8418,230
+24.8455,238
+24.8492,232
+24.8528,236
+24.8565,233
+24.8602,232
+24.8639,237
+24.8676,235
+24.8713,233
+24.8749,232
+24.8786,240
+24.8823,232
+24.886,236
+24.8897,237
+24.8933,236
+24.897,236
+24.9007,238
+24.9044,241
+24.9081,241
+24.9118,237
+24.9154,239
+24.9191,240
+24.9228,235
+24.9265,239
+24.9302,241
+24.9338,236
+24.9375,243
+24.9412,240
+24.9449,236
+24.9486,235
+24.9523,246
+24.9559,241
+24.9596,241
+24.9633,240
+24.967,241
+24.9707,238
+24.9743,243
+24.978,241
+24.9817,241
+24.9854,241
+24.9891,237
+24.9928,235
+24.9964,244
+25.0001,246
+25.0038,237
+25.0075,243
+25.0112,243
+25.0148,244
+25.0185,248
+25.0222,238
+25.0259,244
+25.0296,240
+25.0333,244
+25.0369,242
+25.0406,243
+25.0443,245
+25.048,245
+25.0517,250
+25.0553,246
+25.059,246
+25.0627,250
+25.0664,247
+25.0701,246
+25.0738,247
+25.0774,247
+25.0811,244
+25.0848,245
+25.0885,248
+25.0922,247
+25.0958,248
+25.0995,248
+25.1032,253
+25.1069,251
+25.1106,244
+25.1143,246
+25.1179,247
+25.1216,247
+25.1253,246
+25.129,250
+25.1327,247
+25.1363,251
+25.14,249
+25.1437,251
+25.1474,252
+25.1511,247
+25.1548,250
+25.1584,250
+25.1621,251
+25.1658,247
+25.1695,251
+25.1732,253
+25.1768,248
+25.1805,249
+25.1842,253
+25.1879,252
+25.1916,249
+25.1953,255
+25.1989,255
+25.2026,256
+25.2063,251
+25.21,255
+25.2137,253
+25.2173,252
+25.221,258
+25.2247,253
+25.2284,255
+25.2321,254
+25.2357,258
+25.2394,260
+25.2431,259
+25.2468,257
+25.2505,251
+25.2542,251
+25.2578,260
+25.2615,261
+25.2652,258
+25.2689,255
+25.2726,259
+25.2763,254
+25.2799,266
+25.2836,261
+25.2873,256
+25.291,256
+25.2947,257
+25.2983,257
+25.302,257
+25.3057,259
+25.3094,263
+25.3131,261
+25.3168,261
+25.3204,253
+25.3241,259
+25.3278,258
+25.3315,261
+25.3352,265
+25.3388,265
+25.3425,263
+25.3462,260
+25.3499,263
+25.3536,264
+25.3572,264
+25.3609,260
+25.3646,262
+25.3683,257
+25.372,261
+25.3757,260
+25.3793,261
+25.383,264
+25.3867,258
+25.3904,261
+25.3941,263
+25.3977,261
+25.4014,265
+25.4051,273
+25.4088,265
+25.4125,264
+25.4162,271
+25.4198,264
+25.4235,264
+25.4272,268
+25.4309,268
+25.4346,260
+25.4382,264
+25.4419,264
+25.4456,266
+25.4493,271
+25.453,267
+25.4567,274
+25.4603,266
+25.464,269
+25.4677,267
+25.4714,267
+25.4751,267
+25.4787,268
+25.4824,274
+25.4861,271
+25.4898,274
+25.4935,270
+25.4972,268
+25.5008,268
+25.5045,268
+25.5082,272
+25.5119,272
+25.5156,273
+25.5192,276
+25.5229,274
+25.5266,275
+25.5303,272
+25.534,268
+25.5377,272
+25.5413,273
+25.545,274
+25.5487,274
+25.5524,271
+25.5561,277
+25.5597,271
+25.5634,267
+25.5671,273
+25.5708,277
+25.5745,275
+25.5782,273
+25.5818,276
+25.5855,275
+25.5892,275
+25.5929,273
+25.5966,276
+25.6002,276
+25.6039,274
+25.6076,267
+25.6113,274
+25.615,274
+25.6187,275
+25.6223,276
+25.626,274
+25.6297,275
+25.6334,273
+25.6371,274
+25.6407,276
+25.6444,279
+25.6481,280
+25.6518,277
+25.6555,273
+25.6592,273
+25.6628,277
+25.6665,274
+25.6702,276
+25.6739,284
+25.6776,279
+25.6812,282
+25.6849,281
+25.6886,275
+25.6923,284
+25.696,276
+25.6997,286
+25.7033,278
+25.707,286
+25.7107,280
+25.7144,283
+25.7181,282
+25.7217,281
+25.7254,283
+25.7291,277
+25.7328,287
+25.7365,281
+25.7402,287
+25.7438,279
+25.7475,278
+25.7512,279
+25.7549,281
+25.7586,281
+25.7622,287
+25.7659,280
+25.7696,285
+25.7733,283
+25.777,291
+25.7807,283
+25.7843,283
+25.788,279
+25.7917,281
+25.7954,288
+25.7991,284
+25.8027,284
+25.8064,284
+25.8101,282
+25.8138,284
+25.8175,285
+25.8212,281
+25.8248,283
+25.8285,291
+25.8322,283
+25.8359,289
+25.8396,284
+25.8432,283
+25.8469,289
+25.8506,285
+25.8543,286
+25.858,283
+25.8617,284
+25.8653,287
+25.869,288
+25.8727,289
+25.8764,287
+25.8801,279
+25.8837,292
+25.8874,288
+25.8911,283
+25.8948,285
+25.8985,283
+25.9022,290
+25.9058,287
+25.9095,290
+25.9132,287
+25.9169,288
+25.9206,288
+25.9242,289
+25.9279,286
+25.9316,291
+25.9353,296
+25.939,289
+25.9427,283
+25.9463,286
+25.95,283
+25.9537,290
+25.9574,292
+25.9611,288
+25.9647,286
+25.9684,289
+25.9721,288
+25.9758,289
+25.9795,291
+25.9831,290
+25.9868,290
+25.9905,290
+25.9942,290
+25.9979,288
+26.0016,287
+26.0052,291
+26.0089,287
+26.0126,289
+26.0163,287
+26.02,292
+26.0236,288
+26.0273,292
+26.031,289
+26.0347,292
+26.0384,296
+26.0421,292
+26.0457,290
+26.0494,289
+26.0531,291
+26.0568,294
+26.0605,290
+26.0641,291
+26.0678,292
+26.0715,296
+26.0752,293
+26.0789,286
+26.0826,292
+26.0862,290
+26.0899,291
+26.0936,296
+26.0973,290
+26.101,293
+26.1046,297
+26.1083,295
+26.112,295
+26.1157,298
+26.1194,295
+26.1231,289
+26.1267,296
+26.1304,293
+26.1341,296
+26.1378,297
+26.1415,297
+26.1451,299
+26.1488,293
+26.1525,289
+26.1562,293
+26.1599,295
+26.1636,296
+26.1672,296
+26.1709,295
+26.1746,296
+26.1783,294
+26.182,292
+26.1856,295
+26.1893,291
+26.193,300
+26.1967,297
+26.2004,294
+26.2041,301
+26.2077,295
+26.2114,298
+26.2151,299
+26.2188,297
+26.2225,301
+26.2261,299
+26.2298,298
+26.2335,288
+26.2372,300
+26.2409,299
+26.2446,300
+26.2482,296
+26.2519,296
+26.2556,293
+26.2593,297
+26.263,291
+26.2666,298
+26.2703,300
+26.274,302
+26.2777,298
+26.2814,295
+26.2851,298
+26.2887,298
+26.2924,295
+26.2961,301
+26.2998,302
+26.3035,295
+26.3071,300
+26.3108,296
+26.3145,296
+26.3182,303
+26.3219,298
+26.3256,299
+26.3292,302
+26.3329,305
+26.3366,297
+26.3403,303
+26.344,300
+26.3476,304
+26.3513,301
+26.355,298
+26.3587,300
+26.3624,299
+26.3661,296
+26.3697,301
+26.3734,298
+26.3771,299
+26.3808,295
+26.3845,299
+26.3881,298
+26.3918,301
+26.3955,307
+26.3992,300
+26.4029,300
+26.4066,304
+26.4102,298
+26.4139,298
+26.4176,298
+26.4213,296
+26.425,302
+26.4286,297
+26.4323,306
+26.436,295
+26.4397,297
+26.4434,304
+26.4471,297
+26.4507,299
+26.4544,297
+26.4581,296
+26.4618,306
+26.4655,302
+26.4691,303
+26.4728,304
+26.4765,302
+26.4802,301
+26.4839,308
+26.4876,299
+26.4912,304
+26.4949,302
+26.4986,307
+26.5023,301
+26.506,302
+26.5096,303
+26.5133,307
+26.517,297
+26.5207,298
+26.5244,298
+26.5281,303
+26.5317,299
+26.5354,301
+26.5391,303
+26.5428,300
+26.5465,303
+26.5501,304
+26.5538,306
+26.5575,302
+26.5612,300
+26.5649,306
+26.5686,304
+26.5722,302
+26.5759,306
+26.5796,302
+26.5833,303
+26.587,298
+26.5906,310
+26.5943,308
+26.598,303
+26.6017,302
+26.6054,198
+26.6124,199
+26.6195,199
+26.6266,199
+26.6336,199
+26.6407,197
+26.6477,198
+26.6548,199
+26.6619,199
+26.6689,200
+26.676,202
+26.6831,197
+26.6901,199
+26.6972,198
+26.7043,200
+26.7113,199
+26.7184,200
+26.7254,200
+26.7325,198
+26.7396,198
+26.7466,197
+26.7537,199
+26.7608,198
+26.7678,199
+26.7749,197
+26.782,198
+26.789,199
+26.7961,199
+26.8031,198
+26.8102,198
+26.8173,199
+26.8243,198
+26.8314,199
+26.8385,199
+26.8455,198
+26.8526,196
+26.8597,198
+26.8667,199
+26.8738,200
+26.8808,197
+26.8879,198
+26.895,200
+26.902,200
+26.9091,198
+26.9162,197
+26.9232,197
+26.9303,198
+26.9374,200
+26.9444,197
+26.9515,197
+26.9585,200
+26.9656,197
+26.9727,197
+26.9797,199
+26.9868,199
+26.9939,199
+27.0009,199
+27.008,199
+27.0151,199
+27.0221,198
+27.0292,199
+27.0362,198
+27.0433,198
+27.0504,199
+27.0574,198
+27.0645,201
+27.0716,197
+27.0786,198
+27.0857,199
+27.0927,200
+27.0998,199
+27.1069,198
+27.1139,199
+27.121,200
+27.1281,198
+27.1351,199
+27.1422,199
+27.1493,201
+27.1563,199
+27.1634,198
+27.1704,201
+27.1775,197
+27.1846,201
+27.1916,197
+27.1987,198
+27.2058,200
+27.2128,199
+27.2199,198
+27.227,198
+27.234,201
+27.2411,202
+27.2481,199
+27.2552,198
+27.2623,199
+27.2693,199
+27.2764,199
+27.2835,200
+27.2905,198
+27.2976,198
+27.3047,200
+27.3117,197
+27.3188,201
+27.3258,202
+27.3329,200
+27.34,201
+27.347,198
+27.3541,198
+27.3612,200
+27.3682,199
+27.3753,199
+27.3824,199
+27.3894,200
+27.3965,197
+27.4035,199
+27.4106,199
+27.4177,199
+27.4247,200
+27.4318,198
+27.4389,198
+27.4459,199
+27.453,200
+27.4601,196
+27.4671,201
+27.4742,199
+27.4812,202
+27.4883,197
+27.4954,200
+27.5024,200
+27.5095,197
+27.5166,200
+27.5236,200
+27.5307,199
+27.5377,197
+27.5448,198
+27.5519,199
+27.5589,199
+27.566,200
+27.5731,200
+27.5801,198
+27.5872,199
+27.5943,199
+27.6013,200
+27.6084,199
+27.6154,199
+27.6225,198
+27.6296,196
+27.6366,198
+27.6437,199
+27.6508,198
+27.6578,199
+27.6649,198
+27.672,200
+27.679,199
+27.6861,200
+27.6931,198
+27.7002,199
+27.7073,199
+27.7143,200
+27.7214,201
+27.7285,198
+27.7355,199
+27.7426,199
+27.7497,199
+27.7567,200
+27.7638,199
+27.7708,198
+27.7779,198
+27.785,199
+27.792,199
+27.7991,199
+27.8062,199
+27.8132,199
+27.8203,198
+27.8274,200
+27.8344,198
+27.8415,197
+27.8485,199
+27.8556,199
+27.8627,198
+27.8697,201
+27.8768,198
+27.8839,199
+27.8909,201
+27.898,199
+27.9051,199
+27.9121,198
+27.9192,200
+27.9262,199
+27.9333,199
+27.9404,201
+27.9474,198
+27.9545,198
+27.9616,199
+27.9686,199
+27.9757,200
+27.9827,197
+27.9898,200
+27.9969,196
+28.0039,199
+28.011,201
+28.0181,200
+28.0251,199
+28.0322,200
+28.0393,199
+28.0463,200
+28.0534,199
+28.0604,201
+28.0675,200
+28.0746,201
+28.0816,199
+28.0887,198
+28.0958,201
+28.1028,199
+28.1099,200
+28.117,197
+28.124,198
+28.1311,200
+28.1381,198
+28.1452,198
+28.1523,199
+28.1593,199
+28.1664,200
+28.1735,201
+28.1805,198
+28.1876,197
+28.1947,198
+28.2017,199
+28.2088,197
+28.2158,200
+28.2229,200
+28.23,199
+28.237,201
+28.2441,199
+28.2512,199
+28.2582,199
+28.2653,198
+28.2724,199
+28.2794,200
+28.2865,198
+28.2935,200
+28.3006,200
+28.3077,199
+28.3147,201
+28.3218,199
+28.3289,199
+28.3359,201
+28.343,199
+28.3501,199
+28.3571,200
+28.3642,201
+28.3712,199
+28.3783,197
+28.3854,199
+28.3924,200
+28.3995,199
+28.4066,200
+28.4136,199
+28.4207,198
+28.4277,202
+28.4348,198
+28.4419,200
+28.4489,200
+28.456,199
+28.4631,199
+28.4701,198
+28.4772,200
+28.4843,200
+28.4913,198
+28.4984,200
+28.5054,199
+28.5125,198
+28.5196,199
+28.5266,199
+28.5337,201
+28.5408,200
+28.5478,200
+28.5549,198
+28.562,200
+28.569,199
+28.5761,200
+28.5831,200
+28.5902,201
+28.5973,198
+28.6043,198
+28.6114,199
+28.6185,203
+28.6255,198
+28.6326,201
+28.6397,198
+28.6467,198
+28.6538,199
+28.6608,200
+28.6679,199
+28.675,197
+28.682,200
+28.6891,200
+28.6962,200
+28.7032,200
+28.7103,200
+28.7174,199
+28.7244,198
+28.7315,200
+28.7385,198
+28.7456,201
+28.7527,199
+28.7597,198
+28.7668,199
+28.7739,199
+28.7809,200
+28.788,198
+28.7951,200
+28.8021,198
+28.8092,199
+28.8162,200
+28.8233,198
+28.8304,200
+28.8374,200
+28.8445,199
+28.8516,200
+28.8586,199
+28.8657,200
+28.8728,198
+28.8798,200
+28.8869,200
+28.8939,199
+28.901,199
+28.9081,199
+28.9151,201
+28.9222,201
+28.9293,201
+28.9363,198
+28.9434,199
+28.9504,199
+28.9575,199
+28.9646,200
+28.9716,201
+28.9787,202
+28.9858,199
+28.9928,200
+28.9999,200
+29.007,201
+29.014,201
+29.0211,202
+29.0281,200
+29.0352,200
+29.0423,200
+29.0493,200
+29.0564,199
+29.0635,199
+29.0705,199
+29.0776,199
+29.0847,198
+29.0917,201
+29.0988,198
+29.1058,199
+29.1129,200
+29.12,198
+29.127,200
+29.1341,200
+29.1412,200
+29.1482,199
+29.1553,201
+29.1624,200
+29.1694,202
+29.1765,198
+29.1835,198
+29.1906,199
+29.1977,200
+29.2047,200
+29.2118,200
+29.2189,200
+29.2259,198
+29.233,200
+29.2401,198
+29.2471,201
+29.2542,199
+29.2612,201
+29.2683,198
+29.2754,200
+29.2824,198
+29.2895,198
+29.2966,199
+29.3036,196
+29.3107,200
+29.3178,200
+29.3248,199
+29.3319,199
+29.3389,201
+29.346,201
+29.3531,200
+29.3601,199
+29.3672,199
+29.3743,199
+29.3813,200
+29.3884,201
+29.3954,201
+29.4025,201
+29.4096,198
+29.4166,199
+29.4237,200
+29.4308,201
+29.4378,197
+29.4449,200
+29.452,200
+29.459,200
+29.4661,200
+29.4731,200
+29.4802,201
+29.4873,200
+29.4943,201
+29.5014,200
+29.5085,199
+29.5155,200
+29.5226,198
+29.5297,201
+29.5367,201
+29.5438,198
+29.5508,199
+29.5579,200
+29.565,200
+29.572,197
+29.5791,199
+29.5862,200
+29.5932,200
+29.6003,198
+29.6074,201
+29.6144,198
+29.6215,199
+29.6285,199
+29.6356,197
+29.6427,200
+29.6497,200
+29.6568,200
+29.6639,199
+29.6709,201
+29.678,198
+29.6851,199
+29.6921,199
+29.6992,199
+29.7062,199
+29.7133,199
+29.7204,198
+29.7274,199
+29.7345,201
+29.7416,200
+29.7486,197
+29.7557,198
+29.7628,201
+29.7698,198
+29.7769,198
+29.7839,201
+29.791,200
+29.7981,199
+29.8051,200
+29.8122,199
+29.8193,199
+29.8263,198
+29.8334,197
+29.8404,200
+29.8475,200
+29.8546,199
+29.8616,199
+29.8687,200
+29.8758,200
+29.8828,201
+29.8899,198
+29.897,201
+29.904,200
+29.9111,201
+29.9181,201
+29.9252,201
+29.9323,201
+29.9393,200
+29.9464,200
+29.9535,199
+29.9605,199
+29.9676,199
+29.9747,198
+29.9817,197
+29.9888,197
+29.9958,200
+30.0029,201
+30.01,197
+30.017,199
+30.0241,201
+30.0312,200
+30.0382,198
+30.0453,197
+30.0524,200
+30.0594,198
+30.0665,199
+30.0735,199
+30.0806,200
+30.0877,199
+30.0947,200
+30.1018,200
+30.1089,199
+30.1159,201
+30.123,201
+30.1301,200
+30.1371,198
+30.1442,200
+30.1512,198
+30.1583,198
+30.1654,198
+30.1724,200
+30.1795,199
+30.1866,201
+30.1936,198
+30.2007,199
+30.2078,198
+30.2148,199
+30.2219,200
+30.2289,199
+30.236,199
+30.2431,201
+30.2501,200
+30.2572,199
+30.2643,200
+30.2713,198
+30.2784,199
+30.2854,200
+30.2925,200
+30.2996,201
+30.3066,199
+30.3137,200
+30.3208,201
+30.3278,198
+30.3349,199
+30.342,201
+30.349,200
+30.3561,198
+30.3631,199
+30.3702,198
+30.3773,201
+30.3843,200
+30.3914,200
+30.3985,199
+30.4055,199
+30.4126,199
+30.4197,200
+30.4267,202
+30.4338,200
+30.4408,201
+30.4479,198
+30.455,200
+30.462,202
+30.4691,198
+30.4762,199
+30.4832,197
+30.4903,198
+30.4974,198
+30.5044,200
+30.5115,200
+30.5185,199
+30.5256,199
+30.5327,199
+30.5397,202
+30.5468,199
+30.5539,201
+30.5609,199
+30.568,198
+30.5751,200
+30.5821,199
+30.5892,201
+30.5962,201
+30.6033,199
+30.6104,200
+30.6174,200
+30.6245,201
+30.6316,200
+30.6386,199
+30.6457,199
+30.6528,200
+30.6598,198
+30.6669,198
+30.6739,199
+30.681,200
+30.6881,199
+30.6951,198
+30.7022,199
+30.7093,199
+30.7163,199
+30.7234,200
+30.7304,199
+30.7375,199
+30.7446,200
+30.7516,198
+30.7587,199
+30.7658,201
+30.7728,199
+30.7799,199
+30.787,203
+30.794,202
+30.8011,201
+30.8081,202
+30.8152,198
+30.8223,199
+30.8293,201
+30.8364,200
+30.8435,201
+30.8505,202
+30.8576,196
+30.8647,198
+30.8717,199
+30.8788,201
+30.8858,199
+30.8929,199
+30.9,198
+30.907,200
+30.9141,199
+30.9212,199
+30.9282,200
+30.9353,201
+30.9424,200
+30.9494,197
+30.9565,198
+30.9635,199
+30.9706,201
+30.9777,200
+30.9847,202
+30.9918,201
+30.9989,198
+31.0059,198
+31.013,199
+31.0201,199
+31.0271,200
+31.0342,200
+31.0412,198
+31.0483,199
+31.0554,201
+31.0624,197
+31.0695,202
+31.0766,200
+31.0836,199
+31.0907,203
+31.0978,200
+31.1048,201
+31.1119,198
+31.1189,198
+31.126,200
+31.1331,199
+31.1401,199
+31.1472,201
+31.1543,201
+31.1613,202
+31.1684,202
+31.1754,199
+31.1825,199
+31.1896,201
+31.1966,196
+31.2037,198
+31.2108,201
+31.2178,199
+31.2249,198
+31.232,200
+31.239,201
+31.2461,200
+31.2531,200
+31.2602,200
+31.2673,201
+31.2743,199
+31.2814,198
+31.2885,198
+31.2955,199
+31.3026,201
+31.3097,201
+31.3167,201
+31.3238,199
+31.3308,201
+31.3379,199
+31.345,198
+31.352,200
+31.3591,200
+31.3662,201
+31.3732,201
+31.3803,200
+31.3874,198
+31.3944,199
+31.4015,199
+31.4085,201
+31.4156,201
+31.4227,200
+31.4297,200
+31.4368,196
+31.4439,201
+31.4509,204
+31.458,200
+31.4651,200
+31.4721,199
+31.4792,199
+31.4862,200
+31.4933,200
+31.5004,199
+31.5074,197
+31.5145,200
+31.5216,200
+31.5286,202
+31.5357,201
+31.5428,201
+31.5498,199
+31.5569,200
+31.5639,199
+31.571,200
+31.5781,200
+31.5851,199
+31.5922,200
+31.5993,198
+31.6063,201
+31.6134,202
+31.6204,201
+31.6275,201
+31.6346,198
+31.6416,198
+31.6487,200
+31.6558,201
+31.6628,202
+31.6699,201
+31.677,199
+31.684,200
+31.6911,200
+31.6981,200
+31.7052,198
+31.7123,199
+31.7193,200
+31.7264,200
+31.7335,200
+31.7405,201
+31.7476,202
+31.7547,200
+31.7617,201
+31.7688,200
+31.7758,200
+31.7829,200
+31.79,201
+31.797,200
+31.8041,198
+31.8112,199
+31.8182,201
+31.8253,200
+31.8324,200
+31.8394,201
+31.8465,199
+31.8535,201
+31.8606,201
+31.8677,201
+31.8747,200
+31.8818,199
+31.8889,201
+31.8959,200
+31.903,199
+31.9101,200
+31.9171,200
+31.9242,201
+31.9312,201
+31.9383,202
+31.9454,202
+31.9524,199
+31.9595,199
+31.9666,200
+31.9736,199
+31.9807,199
+31.9878,200
+31.9948,199
+32.0019,198
+32.0089,201
+32.016,200
+32.0231,199
+32.0301,199
+32.0372,200
+32.0442,201
+32.0513,200
+32.0584,198
+32.0654,201
+32.0725,199
+32.0796,200
+32.0866,199
+32.0937,201
+32.1007,202
+32.1078,199
+32.1149,199
+32.1219,202
+32.129,201
+32.1361,199
+32.1431,199
+32.1502,199
+32.1573,200
+32.1643,200
+32.1714,199
+32.1784,198
+32.1855,200
+32.1926,200
+32.1996,200
+32.2067,201
+32.2138,199
+32.2208,201
+32.2279,201
+32.235,200
+32.242,202
+32.2491,201
+32.2561,198
+32.2632,203
+32.2703,200
+32.2773,199
+32.2844,199
+32.2915,200
+32.2985,199
+32.3056,200
+32.3127,200
+32.3197,197
+32.3268,200
+32.3338,203
+32.3409,200
+32.348,200
+32.355,200
+32.3621,200
+32.3692,200
+32.3762,198
+32.3833,201
+32.3904,202
+32.3974,199
+32.4045,199
+32.4115,199
+32.4186,200
+32.4257,200
diff --git a/dataAnalize.sln b/dataAnalize.sln
new file mode 100644
index 0000000..f32ec2f
--- /dev/null
+++ b/dataAnalize.sln
@@ -0,0 +1,22 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.21005.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "dataAnalize", "dataAnalize\dataAnalize.csproj", "{413C6A2F-A21C-472B-9669-50BDDCC65F51}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {413C6A2F-A21C-472B-9669-50BDDCC65F51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {413C6A2F-A21C-472B-9669-50BDDCC65F51}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {413C6A2F-A21C-472B-9669-50BDDCC65F51}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {413C6A2F-A21C-472B-9669-50BDDCC65F51}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/dataAnalize/FileHelper.cs b/dataAnalize/FileHelper.cs
new file mode 100644
index 0000000..fda15a1
--- /dev/null
+++ b/dataAnalize/FileHelper.cs
@@ -0,0 +1,612 @@
+/**
+* Title: 文件操作的方法工具
+* Author: other
+* Date: long long ago
+* Desp:
+*/
+
+using System;
+using System.IO;
+using System.Text;
+
+namespace dataAnalize
+{
+ public class FileHelper
+ {
+ #region 目录检测相关操作
+
+ ///
+ /// 检测指定目录是否存在
+ ///
+ /// 目录的绝对路径
+ ///
+ public static bool IsExistDirectory(string directoryPath)
+ {
+ return Directory.Exists(directoryPath);
+ }
+
+ ///
+ /// 检测指定目录是否为空
+ ///
+ /// 指定目录的绝对路径
+ public static bool IsEmptyDirectory(string directoryPath)
+ {
+ try
+ {
+ string[] fileNames = GetDirectoryFileNames(directoryPath, "*", false); //判断是否存在文件
+ if (fileNames.Length > 0)
+ {
+ return false;
+ }
+ string[] directoryNames = GetDirectories(directoryPath, "*", false); //判断是否存在文件夹
+ if (directoryNames.Length > 0)
+ {
+ return false;
+ }
+ return true;
+ }
+ catch
+ {
+ return true;
+ }
+ }
+
+ ///
+ /// 检测指定目录中是否存在指定的文件,若要搜索子目录请使用重载方法.
+ ///
+ /// 指定目录的绝对路径
+ /// 模式字符串,"*"代表0或N个字符,"?"代表1个字符。
+ /// 范例:"Log*.xml"表示搜索所有以Log开头的Xml文件。
+ public static bool DirectoryContains(string directoryPath, string searchPattern)
+ {
+ try
+ {
+ string[] fileNames = GetDirectoryFileNames(directoryPath, searchPattern, false); //获取指定的文件列表
+
+ if (fileNames.Length == 0) //判断指定文件是否存在
+ {
+ return false;
+ }
+ else
+ {
+ return true;
+ }
+ }
+ catch (Exception ex)
+ {
+ throw new Exception(ex.Message);
+ }
+ }
+
+ ///
+ /// 检测指定目录中是否存在指定的文件
+ ///
+ /// 指定目录的绝对路径
+ /// 模式字符串,"*"代表0或N个字符,"?"代表1个字符。
+ /// 范例:"Log*.xml"表示搜索所有以Log开头的Xml文件。
+ /// 是否搜索子目录
+ public static bool DirectoryContains(string directoryPath, string searchPattern, bool isSearchChild)
+ {
+ try
+ {
+ //获取指定的文件列表
+ string[] fileNames = GetDirectoryFileNames(directoryPath, searchPattern, true);
+
+ //判断指定文件是否存在
+ if (fileNames.Length == 0)
+ {
+ return false;
+ }
+ else
+ {
+ return true;
+ }
+ }
+ catch (Exception ex)
+ {
+ throw new Exception(ex.Message);
+ //LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message);
+ }
+ }
+
+ ///
+ /// 获取指定目录及子目录中所有子目录列表
+ ///
+ /// 指定目录的绝对路径
+ /// 模式字符串,"*"代表0或N个字符,"?"代表1个字符。
+ /// 范例:"Log*.xml"表示搜索所有以Log开头的Xml文件。
+ /// 是否搜索子目录
+ public static string[] GetDirectories(string directoryPath, string searchPattern, bool isSearchChild)
+ {
+ try
+ {
+ if (isSearchChild)
+ {
+ return Directory.GetDirectories(directoryPath, searchPattern, SearchOption.AllDirectories);
+ }
+ else
+ {
+ return Directory.GetDirectories(directoryPath, searchPattern, SearchOption.TopDirectoryOnly);
+ }
+ }
+ catch (IOException ex)
+ {
+ throw ex;
+ }
+ }
+
+ ///
+ /// 获取指定目录及子目录中所有文件列表
+ ///
+ /// 指定目录的绝对路径
+ /// 模式字符串,"*"代表0或N个字符,"?"代表1个字符。
+ /// 范例:"Log*.xml"表示搜索所有以Log开头的Xml文件。
+ /// 是否搜索子目录
+ public static string[] GetDirectoryFileNames(string directoryPath, string searchPattern, bool isSearchChild)
+ {
+ //如果目录不存在,则抛出异常
+ if (!IsExistDirectory(directoryPath))
+ {
+ throw new FileNotFoundException();
+ }
+
+ try
+ {
+ if (isSearchChild)
+ {
+ return Directory.GetFiles(directoryPath, searchPattern, SearchOption.AllDirectories);
+ }
+ else
+ {
+ return Directory.GetFiles(directoryPath, searchPattern, SearchOption.TopDirectoryOnly);
+ }
+ }
+ catch (IOException ex)
+ {
+ throw ex;
+ }
+ }
+
+ #endregion
+
+ #region 目录相关操作的内容
+
+ ///
+ /// 创建目录
+ ///
+ /// 要创建的目录路径包括目录名
+ public static void CreateDirectory(string dir)
+ {
+ if (dir.Length == 0) return;
+ if (!Directory.Exists(dir))
+ Directory.CreateDirectory(dir);
+ }
+
+ ///
+ /// 删除目录
+ ///
+ /// 要删除的目录路径和名称
+ public static void DeleteDirectory(string dir)
+ {
+ if (dir.Length == 0) return;
+ if (Directory.Exists(dir))
+ Directory.Delete(dir, true);
+ }
+
+ ///
+ /// 清空指定目录下所有文件及子目录,但该目录依然保存.
+ ///
+ /// 指定目录的绝对路径
+ public static void ClearDirectory(string directoryPath)
+ {
+ if (IsExistDirectory(directoryPath))
+ {
+ //删除目录中所有的文件
+ string[] fileNames = GetDirectoryFileNames(directoryPath, "*", false);
+ for (int i = 0; i < fileNames.Length; i++)
+ {
+ DeleteFile(fileNames[i]);
+ }
+ //删除目录中所有的子目录
+ string[] directoryNames = GetDirectories(directoryPath, "*", false);
+ for (int i = 0; i < directoryNames.Length; i++)
+ {
+ DeleteDirectory(directoryNames[i]);
+ }
+ }
+ }
+
+ ///
+ /// 复制文件夹(递归)
+ ///
+ /// 源文件夹路径
+ /// 目标文件夹路径
+ public static void CopyDirectory(string varFromDirectory, string varToDirectory)
+ {
+ Directory.CreateDirectory(varToDirectory);
+
+ if (!Directory.Exists(varFromDirectory)) return;
+
+ string[] directories = Directory.GetDirectories(varFromDirectory);
+
+ if (directories.Length > 0)
+ {
+ foreach (string d in directories)
+ {
+ CopyDirectory(d, varToDirectory + d.Substring(d.LastIndexOf("\\")));
+ }
+ }
+ string[] files = Directory.GetFiles(varFromDirectory);
+ if (files.Length > 0)
+ {
+ foreach (string s in files)
+ {
+ File.Copy(s, varToDirectory + s.Substring(s.LastIndexOf("\\")), true);
+ }
+ }
+ }
+
+ #endregion
+
+ #region 文件本身操作
+
+ ///
+ /// 检测指定文件是否存在,如果存在则返回true。
+ ///
+ /// 文件的绝对路径
+ public static bool IsExistFile(string filePath)
+ {
+ return File.Exists(filePath);
+ }
+
+ ///
+ /// 创建一个文件。
+ ///
+ /// 文件的绝对路径
+ public static void CreateFile(string filePath)
+ {
+ try
+ {
+ //如果文件不存在则创建该文件
+ if (!IsExistFile(filePath))
+ {
+ //创建一个FileInfo对象
+ FileInfo file = new FileInfo(filePath);
+
+ //创建文件
+ FileStream fs = file.Create();
+
+ //关闭文件流
+ fs.Close();
+ }
+ }
+ catch (Exception ex)
+ {
+ //LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message);
+ throw ex;
+ }
+ }
+ ///
+ /// 创建文件
+ ///
+ /// 路径
+ /// 内容
+ public static void CreateFile(string path, string content)
+ {
+ FileInfo fi = new FileInfo(path);
+ var di = fi.Directory;
+ if (!di.Exists)
+ {
+ di.Create();
+ }
+ StreamWriter sw = new StreamWriter(path, false, Encoding.GetEncoding("GB2312"));
+ sw.Write(content);
+ sw.Close();
+
+ //path = path.Replace("/", "\\");
+ //if (path.IndexOf("\\") > -1)
+ // CreateDirectory(dir.Substring(0, path.LastIndexOf("\\")));
+ //StreamWriter sw = new StreamWriter(path, false, Encoding.GetEncoding("GB2312"));
+ //sw.Write(pagestr);
+ //sw.Close();
+ }
+ ///
+ /// 创建一个文件,并将字节流写入文件。
+ ///
+ /// 文件的绝对路径
+ /// 二进制流数据
+ public static void CreateFile(string filePath, byte[] buffer)
+ {
+ try
+ {
+ //如果文件不存在则创建该文件
+ if (!IsExistFile(filePath))
+ {
+ //创建一个FileInfo对象
+ FileInfo file = new FileInfo(filePath);
+
+ //创建文件
+ FileStream fs = file.Create();
+
+ //写入二进制流
+ fs.Write(buffer, 0, buffer.Length);
+
+ //关闭文件流
+ fs.Close();
+ }
+ }
+ catch (Exception ex)
+ {
+ //LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message);
+ throw ex;
+ }
+ }
+
+ ///
+ /// 删除文件
+ ///
+ /// 要删除的文件路径和名称
+ public static void DeleteFile(string file)
+ {
+ if (File.Exists(file))
+ {
+ File.Delete(file);
+ }
+ }
+
+ ///
+ /// 将文件移动到指定目录
+ ///
+ /// 需要移动的源文件的绝对路径
+ /// 移动到的目录的绝对路径
+ public static void MoveFile(string sourceFilePath, string descDirectoryPath)
+ {
+ //获取源文件的名称
+ string sourceFileName = GetFileName(sourceFilePath);
+
+ if (IsExistDirectory(descDirectoryPath))
+ {
+ //如果目标中存在同名文件,则删除
+ if (IsExistFile(descDirectoryPath + "\\" + sourceFileName))
+ {
+ DeleteFile(descDirectoryPath + "\\" + sourceFileName);
+ }
+ //将文件移动到指定目录
+ File.Move(sourceFilePath, descDirectoryPath + "\\" + sourceFileName);
+ }
+ }
+
+ ///
+ /// 复制文件
+ ///
+ /// 要复制的文件的路径已经全名(包括后缀)
+ /// 目标位置,并指定新的文件名
+ public static void CopyFile(string dir1, string dir2)
+ {
+ if (File.Exists(dir1))
+ {
+ File.Copy(dir1, dir2, true);
+ }
+ }
+
+ #endregion
+
+ #region 文件内容检测
+ ///
+ /// 获取文本文件的行数
+ ///
+ /// 文件的绝对路径
+ public static int GetLineCount(string filePath)
+ {
+ //将文本文件的各行读到一个字符串数组中
+ string[] rows = File.ReadAllLines(filePath);
+
+ //返回行数
+ return rows.Length;
+ }
+
+ ///
+ /// 获取一个文件的长度,单位为Byte
+ ///
+ /// 文件的绝对路径
+ public static long GetFileSize(string filePath)
+ {
+ //创建一个文件对象
+ FileInfo fi = new FileInfo(filePath);
+
+ //获取文件的大小
+ return fi.Length;
+ }
+
+ ///
+ /// 计算文件大小函数(保留两位小数),Size为字节大小
+ ///
+ /// 初始文件大小
+ ///
+ public static string ToFileSize(long size)
+ {
+ string m_strSize = "";
+ long FactSize = 0;
+ FactSize = size;
+ if (FactSize < 1024.00)
+ m_strSize = FactSize.ToString("F2") + " 字节";
+ else if (FactSize >= 1024.00 && FactSize < 1048576)
+ m_strSize = (FactSize / 1024.00).ToString("F2") + " KB";
+ else if (FactSize >= 1048576 && FactSize < 1073741824)
+ m_strSize = (FactSize / 1024.00 / 1024.00).ToString("F2") + " MB";
+ else if (FactSize >= 1073741824)
+ m_strSize = (FactSize / 1024.00 / 1024.00 / 1024.00).ToString("F2") + " GB";
+ return m_strSize;
+ }
+ #endregion
+
+ #region 文件内容操作
+
+ ///
+ /// 向文本文件中写入内容
+ ///
+ /// 文件的绝对路径
+ /// 写入的内容
+ /// 编码
+ public static void WriteText(string filePath, string text, Encoding encoding)
+ {
+ //向文件写入内容
+ File.WriteAllText(filePath, text, encoding);
+ }
+
+ ///
+ /// 向文本文件的尾部追加内容
+ ///
+ /// 文件的绝对路径
+ /// 写入的内容
+ public static void AppendText(string filePath, string content)
+ {
+ File.AppendAllText(filePath, content);
+ }
+
+ ///
+ /// 获取文件的所有内容
+ ///
+ ///
+ public static string ReadAllFileContent(string filePath)
+ {
+ StreamReader sr = new StreamReader(filePath);
+ string strRead = sr.ReadToEnd(); //从开始到末尾读取文件的所有内容
+ sr.Close(); //读完文件记得关闭流
+
+ return strRead;
+ }
+
+ ///
+ /// 将文件转换成byte[] 数组
+ ///
+ /// 文件路径文件名称
+ /// byte[]
+ public static byte[] ReadFileByteData(string filePath)
+ {
+ using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
+ {
+ byte[] buffur = new byte[fs.Length];
+ using (BinaryReader br = new BinaryReader(fs))
+ {
+ br.Read(buffur, 0, (int)fs.Length);
+ br.Close();
+ }
+ return buffur;
+ }
+ }
+
+ ///
+ /// 将文件转换成byte[] 数组
+ ///
+ /// 文件路径文件名称
+ /// byte[]
+ public static byte[] ReadFileByteData2(string filePath)
+ {
+ FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
+ try
+ {
+ byte[] buffur = new byte[fs.Length];
+ fs.Read(buffur, 0, (int)fs.Length);
+
+ return buffur;
+ }
+ catch (Exception ex)
+ {
+ return null;
+ }
+ finally
+ {
+ fs.Close();
+ }
+ }
+
+ ///
+ /// 清空文件内容,文件流不会关闭
+ ///
+ /// 文件的绝对路径
+ public static void ClearFile(string filePath)
+ {
+ FileStream fs = new FileStream(filePath, FileMode.Truncate, FileAccess.ReadWrite);
+ fs.Close();
+ }
+
+ ///
+ /// 清空文件内容,文件流不会关闭
+ ///
+ /// 文件的绝对路径
+ public static FileStream ClearFileAndGet(string filePath)
+ {
+ FileStream fs = new FileStream(filePath, FileMode.Truncate, FileAccess.ReadWrite);
+ return fs;
+ }
+
+ #endregion
+
+ #region 文件路径处理
+
+ ///
+ /// 从文件的绝对路径中获取扩展名
+ ///
+ /// 文件的绝对路径
+ public static string GetExtension(string filePath)
+ {
+ filePath = filePath.Trim();
+ //获取文件的名称
+ FileInfo fi = new FileInfo(filePath);
+ string suffix = fi.Extension;
+ return suffix.ToLower();
+ //string suffix = filePath.Substring(filePath.LastIndexOf(".") + 1);
+ //return suffix.ToLower();
+ }
+
+ ///
+ /// 从文件的绝对路径中获取最末层文件夹路径
+ ///
+ /// 文件的绝对路径
+ public static string GetDirectoryPath(string filePath)
+ {
+ FileInfo fi = new FileInfo(filePath);
+ return fi.DirectoryName;
+ }
+
+ ///
+ /// 从文件的绝对路径中获取文件名( 包含扩展名 )
+ ///
+ /// 文件的绝对路径
+ public static string GetFileName(string filePath)
+ {
+ filePath = filePath.Trim();
+ //获取文件的名称
+ FileInfo fi = new FileInfo(filePath);
+ return fi.Name;
+ //string fileName = filePath.Substring(filePath.LastIndexOf('/') + 1);
+ //return fileName;
+ }
+
+ ///
+ /// 从文件的绝对路径中获取文件名( 不包含扩展名 )
+ ///
+ /// 文件的绝对路径
+ public static string GetFileNameNoExtension(string filePath)
+ {
+ //获取文件的名称
+ FileInfo fi = new FileInfo(filePath);
+ return fi.Name.Split('.')[0];
+ }
+
+ ///
+ /// 根据相对路径转化为绝对路径
+ ///
+ /// 相对路径, 直接加文件夹名称即可
+ ///
+ public static string GetFullPath(string relativePath)
+ {
+ string basePath = AppDomain.CurrentDomain.BaseDirectory;
+
+ return basePath + relativePath;
+ }
+
+ #endregion
+ }
+}
diff --git a/dataAnalize/MainForm.Designer.cs b/dataAnalize/MainForm.Designer.cs
new file mode 100644
index 0000000..729bd57
--- /dev/null
+++ b/dataAnalize/MainForm.Designer.cs
@@ -0,0 +1,147 @@
+namespace dataAnalize
+{
+ partial class MainForm
+ {
+ ///
+ /// 必需的设计器变量。
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// 清理所有正在使用的资源。
+ ///
+ /// 如果应释放托管资源,为 true;否则为 false。
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows 窗体设计器生成的代码
+
+ ///
+ /// 设计器支持所需的方法 - 不要
+ /// 使用代码编辑器修改此方法的内容。
+ ///
+ private void InitializeComponent()
+ {
+ this.btnSelFilePath = new System.Windows.Forms.Button();
+ this.TestStart = new System.Windows.Forms.Button();
+ this.txtFilePath = new System.Windows.Forms.TextBox();
+ this.listResult = new System.Windows.Forms.ListBox();
+ this.label1 = new System.Windows.Forms.Label();
+ this.AllStart = new System.Windows.Forms.Button();
+ this.btnSelSavePath = new System.Windows.Forms.Button();
+ this.txtSavePath = new System.Windows.Forms.TextBox();
+ this.SuspendLayout();
+ //
+ // btnSelFilePath
+ //
+ this.btnSelFilePath.Location = new System.Drawing.Point(52, 20);
+ this.btnSelFilePath.Name = "btnSelFilePath";
+ this.btnSelFilePath.Size = new System.Drawing.Size(75, 23);
+ this.btnSelFilePath.TabIndex = 0;
+ this.btnSelFilePath.Text = "文件选择";
+ this.btnSelFilePath.UseVisualStyleBackColor = true;
+ this.btnSelFilePath.Click += new System.EventHandler(this.btnSelFilePath_Click);
+ //
+ // TestStart
+ //
+ this.TestStart.Location = new System.Drawing.Point(249, 96);
+ this.TestStart.Name = "TestStart";
+ this.TestStart.Size = new System.Drawing.Size(75, 23);
+ this.TestStart.TabIndex = 0;
+ this.TestStart.Text = "测试解析";
+ this.TestStart.UseVisualStyleBackColor = true;
+ this.TestStart.Click += new System.EventHandler(this.TestStart_Click);
+ //
+ // txtFilePath
+ //
+ this.txtFilePath.Location = new System.Drawing.Point(134, 21);
+ this.txtFilePath.Name = "txtFilePath";
+ this.txtFilePath.Size = new System.Drawing.Size(291, 21);
+ this.txtFilePath.TabIndex = 1;
+ //
+ // listResult
+ //
+ this.listResult.FormattingEnabled = true;
+ this.listResult.ItemHeight = 12;
+ this.listResult.Location = new System.Drawing.Point(52, 144);
+ this.listResult.Name = "listResult";
+ this.listResult.Size = new System.Drawing.Size(373, 328);
+ this.listResult.TabIndex = 2;
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(50, 128);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(59, 12);
+ this.label1.TabIndex = 3;
+ this.label1.Text = "结果展示:";
+ //
+ // AllStart
+ //
+ this.AllStart.Location = new System.Drawing.Point(350, 96);
+ this.AllStart.Name = "AllStart";
+ this.AllStart.Size = new System.Drawing.Size(75, 23);
+ this.AllStart.TabIndex = 0;
+ this.AllStart.Text = "全部解析";
+ this.AllStart.UseVisualStyleBackColor = true;
+ this.AllStart.Click += new System.EventHandler(this.AllStart_Click);
+ //
+ // btnSelSavePath
+ //
+ this.btnSelSavePath.Location = new System.Drawing.Point(52, 56);
+ this.btnSelSavePath.Name = "btnSelSavePath";
+ this.btnSelSavePath.Size = new System.Drawing.Size(75, 23);
+ this.btnSelSavePath.TabIndex = 0;
+ this.btnSelSavePath.Text = "保存文件";
+ this.btnSelSavePath.UseVisualStyleBackColor = true;
+ this.btnSelSavePath.Click += new System.EventHandler(this.btnSelSavePath_Click);
+ //
+ // txtSavePath
+ //
+ this.txtSavePath.Location = new System.Drawing.Point(134, 57);
+ this.txtSavePath.Name = "txtSavePath";
+ this.txtSavePath.Size = new System.Drawing.Size(291, 21);
+ this.txtSavePath.TabIndex = 1;
+ //
+ // MainForm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(463, 497);
+ this.Controls.Add(this.label1);
+ this.Controls.Add(this.listResult);
+ this.Controls.Add(this.txtSavePath);
+ this.Controls.Add(this.txtFilePath);
+ this.Controls.Add(this.AllStart);
+ this.Controls.Add(this.btnSelSavePath);
+ this.Controls.Add(this.TestStart);
+ this.Controls.Add(this.btnSelFilePath);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
+ this.Name = "MainForm";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "测试界面";
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button btnSelFilePath;
+ private System.Windows.Forms.Button TestStart;
+ private System.Windows.Forms.TextBox txtFilePath;
+ private System.Windows.Forms.ListBox listResult;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Button AllStart;
+ private System.Windows.Forms.Button btnSelSavePath;
+ private System.Windows.Forms.TextBox txtSavePath;
+ }
+}
+
diff --git a/dataAnalize/MainForm.cs b/dataAnalize/MainForm.cs
new file mode 100644
index 0000000..55f8503
--- /dev/null
+++ b/dataAnalize/MainForm.cs
@@ -0,0 +1,175 @@
+using System;
+using System.Diagnostics;
+using System.Windows.Forms;
+
+namespace dataAnalize
+{
+ public partial class MainForm : Form
+ {
+ public MainForm()
+ {
+ InitializeComponent();
+ }
+
+ private void btnSelFilePath_Click(object sender, EventArgs e)
+ {
+ OpenFileDialog ofd = new OpenFileDialog();
+ if (ofd.ShowDialog() == DialogResult.OK)
+ {
+ if (!string.IsNullOrEmpty(ofd.FileName))
+ {
+ txtFilePath.Text = ofd.FileName;
+ }
+ }
+ }
+
+ private void btnSelSavePath_Click(object sender, EventArgs e)
+ {
+ FolderBrowserDialog dialog = new FolderBrowserDialog();
+
+ if (dialog.ShowDialog() == DialogResult.OK)
+ {
+ string foldPath = dialog.SelectedPath;
+ txtSavePath.Text = foldPath;
+ }
+ }
+
+ // 测试解析点击事件
+ private void TestStart_Click(object sender, EventArgs e)
+ {
+ string filePath = txtFilePath.Text;
+ if (string.IsNullOrEmpty(filePath))
+ {
+ MessageBox.Show("请选择数据文件", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ return;
+ }
+
+ ClearShow();
+
+ try
+ {
+ // 获取文件的所有字节信息
+ byte[] allbytes = FileHelper.ReadFileByteData(filePath);
+ AddShow("总体", "总字节数:" + allbytes.Length);
+ AddLine();
+
+ // 获取头信息
+ int sNumber = MsAnalyzeUtil.GetIntLitter(allbytes, 278, 281 - 278 + 1);
+ AddShow("头信息", "色谱数据数量:" + sNumber);
+ int startB = MsAnalyzeUtil.GetIntLitter(allbytes, 260, 263 - 260 + 1);
+ AddShow("头信息", "第一个色谱数据起点:" + startB);
+ AddLine();
+
+ // 第一个色谱数据
+ int sStartA = 2 * (startB - 1);
+ int zStartB = MsAnalyzeUtil.GetIntLitter(allbytes, sStartA, 4);
+ AddShow("色谱数据", "第一个色谱的质谱地址:" + zStartB);
+ int sTime = MsAnalyzeUtil.GetIntLitter(allbytes, sStartA + 4, 4);
+ AddShow("色谱数据", "第一个色谱的保留时间(ms):" + sTime);
+ AddShow("色谱数据", "第一个色谱的保留时间(m):" + MsAnalyzeUtil.MsToMin(sTime));
+ int sAbundance = MsAnalyzeUtil.GetIntLitter(allbytes, sStartA + 8, 4);
+ AddShow("色谱数据", "第一个色谱的信号值:" + sAbundance);
+ AddLine();
+
+ // 第一个质谱数据
+ int zStartA = zStartB * 2;
+ int zTime = MsAnalyzeUtil.GetIntLitter(allbytes, zStartA, 4);
+ AddShow("质谱头", "第一个质谱的保留时间(ms):" + zTime);
+ AddShow("质谱头", "第一个质谱的保留时间(m):" + MsAnalyzeUtil.MsToMin(zTime));
+ int zNumber = MsAnalyzeUtil.GetIntLitter(allbytes, zStartA + 10, 2);
+ AddShow("质谱头", "第一个质谱的峰个数:" + zNumber);
+ int zMaxMass = MsAnalyzeUtil.GetIntLitter(allbytes, zStartA + 12, 2);
+ AddShow("质谱头", "第一个质谱最高峰的质量数:" + zMaxMass);
+ int zMaxAbundance = MsAnalyzeUtil.GetIntLitter(allbytes, zStartA + 14, 2);
+ AddShow("质谱头", "第一个质谱最高峰的信号值:" + zMaxAbundance);
+ AddLine();
+
+ // 第一个色谱的所有质谱点
+ zStartA = zStartA + 16;
+ int zMass = MsAnalyzeUtil.GetIntLitter(allbytes, zStartA, 2);
+ AddShow("质谱数据", "第一个质谱第一峰的质量数:" + zMass);
+ int zAbundance = MsAnalyzeUtil.GetIntLitter(allbytes, zStartA + 2, 2);
+ AddShow("质谱数据", "第一个质谱第一峰的信号值:" + zAbundance);
+ zStartA = zStartA + 4;
+ zMass = MsAnalyzeUtil.GetIntLitter(allbytes, zStartA, 2);
+ AddShow("质谱数据", "第一个质谱第二峰的质量数:" + zMass);
+ zAbundance = MsAnalyzeUtil.GetIntLitter(allbytes, zStartA + 2, 2);
+ AddShow("质谱数据", "第一个质谱第二峰的信号值:" + zAbundance);
+ AddLine();
+
+ // 第二个色谱数据
+ sStartA = sStartA + 12;
+ zStartB = MsAnalyzeUtil.GetIntLitter(allbytes, sStartA, 4);
+ AddShow("色谱数据", "第二个色谱的质谱地址:" + zStartB);
+ sTime = MsAnalyzeUtil.GetIntLitter(allbytes, sStartA + 4, 4);
+ AddShow("色谱数据", "第二个色谱的保留时间(ms):" + sTime);
+ AddShow("色谱数据", "第二个色谱的保留时间(m):" + MsAnalyzeUtil.MsToMin(sTime));
+ sAbundance = MsAnalyzeUtil.GetIntLitter(allbytes, sStartA + 8, 4);
+ AddShow("色谱数据", "第二个色谱的信号值:" + sAbundance);
+ }
+ catch (Exception ex)
+ {
+ AddShow("错误", "文件解析错误:" + ex.Message);
+ }
+ }
+
+ // 全部解析点击事件
+ private void AllStart_Click(object sender, EventArgs e)
+ {
+ // 所有的路径处理
+ string filePath = txtFilePath.Text;
+ string savePath = txtSavePath.Text;
+ if (string.IsNullOrEmpty(filePath) || string.IsNullOrEmpty(savePath))
+ {
+ MessageBox.Show("请选择数据文件与保存路径", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ return;
+ }
+ string saveFilePath = savePath + "\\" + FileHelper.GetFileNameNoExtension(filePath) + ".txt";
+ if (FileHelper.IsExistFile(saveFilePath))
+ FileHelper.ClearFile(saveFilePath);
+ else
+ FileHelper.CreateFile(saveFilePath);
+ MsAnalyzeUtil.Init(saveFilePath);
+
+ // 开始解析
+ ClearShow();
+ AddShow("说明", "开始进行文本解析");
+ AddShow("说明", "保存文件路径:" + saveFilePath);
+ try
+ {
+ Stopwatch stopwatch = Stopwatch.StartNew();
+ // 获取文件的所有字节信息
+ byte[] allDatas = FileHelper.ReadFileByteData(filePath);
+
+ // 进行全部文件的解析导出
+ MsAnalyzeUtil.GetChrom(allDatas);
+ stopwatch.Stop();
+ AddShow("说明", "文件解析完成。用时(ms):" + stopwatch.ElapsedMilliseconds);
+ }
+ catch (Exception ex)
+ {
+ AddShow("错误", "文件解析错误:" + ex.Message);
+ }
+ Process.Start("explorer.exe", savePath);
+ }
+
+ /*--------------- 数据输出的方法 ----------------------*/
+
+ // 清理展示内容
+ private void ClearShow()
+ {
+ listResult.Items.Clear();
+ }
+
+ // 本地输出
+ private void AddShow(string type, string msg)
+ {
+ listResult.Items.Add("【" + type + "】 " + msg);
+ }
+ // 本地输出
+ private void AddLine()
+ {
+ listResult.Items.Add("--------------------------------------");
+ }
+ }
+}
diff --git a/dataAnalize/MainForm.resx b/dataAnalize/MainForm.resx
new file mode 100644
index 0000000..7080a7d
--- /dev/null
+++ b/dataAnalize/MainForm.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/dataAnalize/MsAnalyzeUtil.cs b/dataAnalize/MsAnalyzeUtil.cs
new file mode 100644
index 0000000..9a9777f
--- /dev/null
+++ b/dataAnalize/MsAnalyzeUtil.cs
@@ -0,0 +1,175 @@
+using System;
+using System.Collections.Generic;
+
+namespace dataAnalize
+{
+ ///
+ /// 安捷伦数据MS文件,解析的实现类,具体协议信息,可以找对应的文献对应,这里不单独提供了。
+ ///
+ /// 后续完善考虑:
+ /// 1、 对于解析的数据,可以存放到实体类,然后统一进行输出。
+ /// 2、 转化效率上进行优化提升。
+ /// 3、 单例结构改造 or 静态初始化方法优化,模块封装更集中。
+ ///
+ public class MsAnalyzeUtil
+ {
+ private static string _logFilePath = "";
+
+ ///
+ /// 初始化分析方法
+ /// 可以改造为using方式,将具体操作都私有化,资源释放管理起来。
+ ///
+ ///
+ public static void Init(string logFilePath = "")
+ {
+ _logFilePath = logFilePath;
+ }
+
+ /**------------------- 文件解析的主要方法 -----------------------**/
+
+ ///
+ /// 获取所有的色谱数据,包括其下质谱数据
+ ///
+ /// 全部的数据
+ public static void GetChrom(byte[] allData)
+ {
+ OutResult("总体", "总字节数:" + allData.Length);
+
+ int number = GetIntLitter(allData, 278, 281 - 278 + 1); // 色谱总数量
+ int startAddr = GetIntLitter(allData, 260, 263 - 260 + 1); //第一个色谱的地址
+ OutResult("头信息", string.Format("色谱数据信息: 色谱点数-{0}", number));
+
+ int startBit = 2 * (startAddr - 1); //第一个色谱的位地址
+ int startMass, time, abundance;
+ for (int i = 0; i < number; i++)
+ {
+ startMass = GetIntLitter(allData, startBit, 4);
+ time = GetIntLitter(allData, startBit + 4, 4);
+ abundance = GetIntLitter(allData, startBit + 8, 4);
+
+ OutResult("色谱", String.Format("{0,4}:[{3},{1},{2}]", i + 1, MsToMin(time), abundance, time));
+
+ GetAllMass(allData, startMass, i + 1);
+
+ startBit = startBit + 12;
+ }
+ }
+
+ ///
+ /// 获取所有质谱数据
+ ///
+ ///
+ ///
+ ///
+ private static void GetAllMass(byte[] allData, int startAddr, int sNo)
+ {
+ int startBit = startAddr * 2;
+ int time = GetIntLitter(allData, startBit, 4);
+ int number = GetIntLitter(allData, startBit + 10, 2);
+ int maxMass = GetIntLitter(allData, startBit + 12, 2);
+ int maxAbundance = GetIntLitter(allData, startBit + 14, 2);
+ OutResult("质谱数据", String.Format("{0,4}:保留时间-{1},质谱点数-{2},最高峰-[{3},{4}]",
+ sNo, MsToMin(time), number, maxMass, maxAbundance));
+
+ Dictionary massPoints = new Dictionary();
+ string allPoints = "";
+
+ startBit = startBit + 16;
+ int mass, abundance;
+ for (int i = 0; i < number; i++)
+ {
+ mass = GetIntLitter(allData, startBit, 2);
+ abundance = GetIntLitter(allData, startBit + 2, 2);
+ abundance = abundance / 20;
+
+ massPoints.Add(mass, abundance);
+ allPoints += string.Format("[{0},{1}] ", mass, abundance);
+
+ startBit = startBit + 4;
+ }
+
+ OutResult("质谱数据", String.Format("{0,4}:{1}", sNo, allPoints));
+ }
+
+ ///
+ /// 解析结果的输出
+ ///
+ ///
+ ///
+ private static void OutResult(string type, string msg)
+ {
+ if (string.IsNullOrEmpty(_logFilePath))
+ {
+ string str = string.Format("【{0}】 {1}", type, msg) + Environment.NewLine;
+ FileHelper.AppendText(_logFilePath, str);
+ }
+ }
+
+ /*----------- 对外的公开方法 不测试时,可以私有化 -------------*/
+
+ ///
+ /// 在字节数组的指定位置获取数值
+ ///
+ ///
+ ///
+ /// 可以为:2,4
+ ///
+ public static int GetIntLitter(byte[] srcArr, int start, int count)
+ {
+ byte[] times = new byte[count];
+ Buffer.BlockCopy(srcArr, start, times, 0, count);
+ Array.Reverse(times);
+
+ if (count == 4)
+ {
+ int number = BitConverter.ToInt32(times, 0);
+ return number;
+ }
+ else
+ {
+ int number = BitConverter.ToInt16(times, 0);
+ return number;
+ }
+ }
+
+ ///
+ /// 在字节数组的指定位置获取数值
+ ///
+ ///
+ ///
+ /// 可以为:4,8
+ ///
+ public static double GetFloatLitter(byte[] srcArr, int start, int count)
+ {
+ byte[] times = new byte[count];
+ Buffer.BlockCopy(srcArr, start, times, 0, 4);
+ Array.Reverse(times);
+
+ if (count == 4)
+ {
+ double number = BitConverter.ToSingle(times, 0);
+ return number;
+ }
+ else
+ {
+ double number = BitConverter.ToDouble(times, 0);
+ return number;
+ }
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static double MsToMin(int ms)
+ {
+ int sToMs = 60 * 1000;
+ int m = ms / sToMs;
+ double mx = (ms % sToMs) / (sToMs * 1.0);
+ double min = Math.Round(m + mx, 5, MidpointRounding.AwayFromZero);
+
+ return min;
+ }
+ }
+}
diff --git a/dataAnalize/Program.cs b/dataAnalize/Program.cs
new file mode 100644
index 0000000..22ca853
--- /dev/null
+++ b/dataAnalize/Program.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Windows.Forms;
+
+namespace dataAnalize
+{
+ static class Program
+ {
+ ///
+ /// 应用程序的主入口点。
+ ///
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new MainForm());
+ }
+
+ }
+}
diff --git a/dataAnalize/Properties/AssemblyInfo.cs b/dataAnalize/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..aba7e0f
--- /dev/null
+++ b/dataAnalize/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 有关程序集的常规信息通过以下
+// 特性集控制。更改这些特性值可修改
+// 与程序集关联的信息。
+[assembly: AssemblyTitle("dataAnalize")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("dataAnalize")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2019")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 将 ComVisible 设置为 false 使此程序集中的类型
+// 对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型,
+// 则将该类型上的 ComVisible 特性设置为 true。
+[assembly: ComVisible(false)]
+
+// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
+[assembly: Guid("c1b83702-cb37-4d03-baca-1efef01050ea")]
+
+// 程序集的版本信息由下面四个值组成:
+//
+// 主版本
+// 次版本
+// 生成号
+// 修订号
+//
+// 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
+// 方法是按如下所示使用“*”:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/dataAnalize/Properties/Resources.Designer.cs b/dataAnalize/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..532801c
--- /dev/null
+++ b/dataAnalize/Properties/Resources.Designer.cs
@@ -0,0 +1,63 @@
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.18408
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+namespace dataAnalize.Properties {
+ using System;
+
+
+ ///
+ /// 一个强类型的资源类,用于查找本地化的字符串等。
+ ///
+ // 此类是由 StronglyTypedResourceBuilder
+ // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
+ // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
+ // (以 /str 作为命令选项),或重新生成 VS 项目。
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// 返回此类使用的缓存的 ResourceManager 实例。
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("dataAnalize.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// 使用此强类型资源类,为所有资源查找
+ /// 重写当前线程的 CurrentUICulture 属性。
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/dataAnalize/Properties/Resources.resx b/dataAnalize/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/dataAnalize/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/dataAnalize/Properties/Settings.Designer.cs b/dataAnalize/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..216dd68
--- /dev/null
+++ b/dataAnalize/Properties/Settings.Designer.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.18408
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+namespace dataAnalize.Properties {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/dataAnalize/Properties/Settings.settings b/dataAnalize/Properties/Settings.settings
new file mode 100644
index 0000000..3964565
--- /dev/null
+++ b/dataAnalize/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/dataAnalize/app.config b/dataAnalize/app.config
new file mode 100644
index 0000000..2fa6e95
--- /dev/null
+++ b/dataAnalize/app.config
@@ -0,0 +1,3 @@
+
+
+
diff --git a/dataAnalize/dataAnalize.csproj b/dataAnalize/dataAnalize.csproj
new file mode 100644
index 0000000..7f510a9
--- /dev/null
+++ b/dataAnalize/dataAnalize.csproj
@@ -0,0 +1,89 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {413C6A2F-A21C-472B-9669-50BDDCC65F51}
+ WinExe
+ Properties
+ dataAnalize
+ dataAnalize
+ v3.5
+ 512
+
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ MainForm.cs
+
+
+
+
+
+ MainForm.cs
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+ True
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
\ No newline at end of file